about summary refs log tree commit diff
path: root/pkgs/applications
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications')
-rw-r--r--pkgs/applications/audio/audacious/qt-5.nix18
-rw-r--r--pkgs/applications/audio/cantata/default.nix8
-rw-r--r--pkgs/applications/audio/dfasma/default.nix10
-rw-r--r--pkgs/applications/audio/fmit/default.nix4
-rw-r--r--pkgs/applications/audio/iannix/default.nix5
-rw-r--r--pkgs/applications/audio/keyfinder/default.nix5
-rw-r--r--pkgs/applications/audio/sonic-visualiser/default.nix10
-rw-r--r--pkgs/applications/display-managers/sddm/default.nix159
-rw-r--r--pkgs/applications/display-managers/sddm/sddm-ignore-config-mtime.patch (renamed from pkgs/applications/display-managers/sddm/0001-ignore-config-mtime.patch)0
-rw-r--r--pkgs/applications/display-managers/sddm/series1
-rw-r--r--pkgs/applications/editors/kdevelop5/kdevelop.nix22
-rw-r--r--pkgs/applications/editors/kdevelop5/kdevplatform.nix7
-rw-r--r--pkgs/applications/editors/kile/default.nix79
-rw-r--r--pkgs/applications/editors/neovim/qt.nix8
-rw-r--r--pkgs/applications/editors/rstudio/default.nix5
-rw-r--r--pkgs/applications/editors/tiled/default.nix4
-rw-r--r--pkgs/applications/graphics/awesomebump/default.nix5
-rw-r--r--pkgs/applications/graphics/digikam/default.nix57
-rw-r--r--pkgs/applications/graphics/ipe/default.nix9
-rw-r--r--pkgs/applications/graphics/krita/default.nix16
-rw-r--r--pkgs/applications/graphics/photoqt/default.nix9
-rw-r--r--pkgs/applications/graphics/phototonic/default.nix4
-rw-r--r--pkgs/applications/graphics/rapcad/default.nix4
-rw-r--r--pkgs/applications/graphics/renderdoc/default.nix8
-rw-r--r--pkgs/applications/kde/akonadi-contacts.nix12
-rw-r--r--pkgs/applications/kde/akonadi-mime.nix9
-rw-r--r--pkgs/applications/kde/akonadi.nix20
-rw-r--r--pkgs/applications/kde/akonadi/akonadi-paths.patch191
-rw-r--r--pkgs/applications/kde/akonadi/akonadi-timestamps.patch14
-rw-r--r--pkgs/applications/kde/akonadi/default.nix36
-rw-r--r--pkgs/applications/kde/akonadi/series2
-rw-r--r--pkgs/applications/kde/ark/default.nix60
-rw-r--r--pkgs/applications/kde/baloo-widgets.nix5
-rw-r--r--pkgs/applications/kde/build-support/application.nix9
-rw-r--r--pkgs/applications/kde/default.nix13
-rw-r--r--pkgs/applications/kde/dolphin-plugins.nix6
-rw-r--r--pkgs/applications/kde/dolphin.nix40
-rw-r--r--pkgs/applications/kde/ffmpegthumbs.nix4
-rw-r--r--pkgs/applications/kde/filelight.nix29
-rw-r--r--pkgs/applications/kde/gwenview.nix38
-rw-r--r--pkgs/applications/kde/k3b.nix66
-rw-r--r--pkgs/applications/kde/kate.nix39
-rw-r--r--pkgs/applications/kde/kcachegrind.nix29
-rw-r--r--pkgs/applications/kde/kcalc.nix30
-rw-r--r--pkgs/applications/kde/kcolorchooser.nix29
-rw-r--r--pkgs/applications/kde/kcontacts.nix12
-rw-r--r--pkgs/applications/kde/kde-locale-4.nix4
-rw-r--r--pkgs/applications/kde/kde-locale-5.nix4
-rw-r--r--pkgs/applications/kde/kdegraphics-mobipocket.nix4
-rw-r--r--pkgs/applications/kde/kdegraphics-thumbnailers.nix4
-rw-r--r--pkgs/applications/kde/kdelibs/default.nix4
-rw-r--r--pkgs/applications/kde/kdenetwork-filesharing.nix4
-rw-r--r--pkgs/applications/kde/kdenlive.nix38
-rw-r--r--pkgs/applications/kde/kdf.nix27
-rw-r--r--pkgs/applications/kde/kgpg.nix23
-rw-r--r--pkgs/applications/kde/khelpcenter.nix24
-rw-r--r--pkgs/applications/kde/kig.nix35
-rw-r--r--pkgs/applications/kde/kio-extras.nix4
-rw-r--r--pkgs/applications/kde/kmime.nix8
-rw-r--r--pkgs/applications/kde/kmix.nix39
-rw-r--r--pkgs/applications/kde/kolourpaint.nix31
-rw-r--r--pkgs/applications/kde/kompare.nix23
-rw-r--r--pkgs/applications/kde/konsole.nix35
-rw-r--r--pkgs/applications/kde/krfb.nix26
-rw-r--r--pkgs/applications/kde/kwalletmanager.nix34
-rw-r--r--pkgs/applications/kde/libkcddb.nix5
-rw-r--r--pkgs/applications/kde/libkdcraw.nix4
-rw-r--r--pkgs/applications/kde/libkexiv2.nix4
-rw-r--r--pkgs/applications/kde/libkipi.nix4
-rw-r--r--pkgs/applications/kde/libkomparediff2.nix4
-rw-r--r--pkgs/applications/kde/marble.nix30
-rw-r--r--pkgs/applications/kde/okteta.nix30
-rw-r--r--pkgs/applications/kde/okular.nix38
-rw-r--r--pkgs/applications/kde/print-manager.nix14
-rw-r--r--pkgs/applications/kde/spectacle.nix33
-rw-r--r--pkgs/applications/misc/albert/default.nix12
-rw-r--r--pkgs/applications/misc/calibre/default.nix4
-rw-r--r--pkgs/applications/misc/cool-retro-term/default.nix8
-rw-r--r--pkgs/applications/misc/cura/default.nix10
-rw-r--r--pkgs/applications/misc/golden-cheetah/default.nix10
-rw-r--r--pkgs/applications/misc/goldendict/default.nix9
-rw-r--r--pkgs/applications/misc/gpxsee/default.nix5
-rw-r--r--pkgs/applications/misc/kdeconnect/default.nix10
-rw-r--r--pkgs/applications/misc/krename/default.nix43
-rw-r--r--pkgs/applications/misc/krusader/default.nix36
-rw-r--r--pkgs/applications/misc/latte-dock/default.nix45
-rw-r--r--pkgs/applications/misc/openbrf/default.nix6
-rw-r--r--pkgs/applications/misc/qsyncthingtray/default.nix12
-rw-r--r--pkgs/applications/misc/qtpass/default.nix8
-rw-r--r--pkgs/applications/misc/redis-desktop-manager/default.nix5
-rw-r--r--pkgs/applications/misc/twmn/default.nix5
-rw-r--r--pkgs/applications/misc/xca/default.nix17
-rw-r--r--pkgs/applications/misc/yakuake/default.nix49
-rw-r--r--pkgs/applications/networking/browsers/qutebrowser/default.nix9
-rw-r--r--pkgs/applications/networking/browsers/vivaldi/default.nix45
-rw-r--r--pkgs/applications/networking/dropbox/default.nix13
-rw-r--r--pkgs/applications/networking/instant-messengers/qtox/default.nix13
-rw-r--r--pkgs/applications/networking/instant-messengers/quaternion/default.nix12
-rw-r--r--pkgs/applications/networking/instant-messengers/ricochet/default.nix7
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/cutegram/default.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/libqtelegram-aseman-edition/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix11
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/telegram-qml/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/tensor/default.nix6
-rw-r--r--pkgs/applications/networking/irc/communi/default.nix5
-rw-r--r--pkgs/applications/networking/irc/konversation/default.nix92
-rw-r--r--pkgs/applications/networking/linssid/default.nix5
-rw-r--r--pkgs/applications/networking/mailreaders/trojita/default.nix18
-rw-r--r--pkgs/applications/networking/mumble/default.nix8
-rw-r--r--pkgs/applications/networking/newsreaders/quiterss/default.nix9
-rw-r--r--pkgs/applications/networking/p2p/qbittorrent/default.nix6
-rw-r--r--pkgs/applications/office/cb2bib/default.nix4
-rw-r--r--pkgs/applications/office/mendeley/default.nix5
-rw-r--r--pkgs/applications/office/mytetra/default.nix7
-rw-r--r--pkgs/applications/office/skrooge/default.nix16
-rw-r--r--pkgs/applications/science/astronomy/stellarium/default.nix27
-rw-r--r--pkgs/applications/science/electronics/fritzing/default.nix10
-rw-r--r--pkgs/applications/science/math/speedcrunch/default.nix14
-rw-r--r--pkgs/applications/science/programming/fdr/default.nix2
-rw-r--r--pkgs/applications/science/robotics/qgroundcontrol/default.nix28
-rw-r--r--pkgs/applications/video/bomi/default.nix10
-rw-r--r--pkgs/applications/video/openshot-qt/default.nix2
-rw-r--r--pkgs/applications/video/shotcut/default.nix12
-rw-r--r--pkgs/applications/video/smplayer/default.nix4
-rw-r--r--pkgs/applications/video/smtube/default.nix5
-rw-r--r--pkgs/applications/video/vokoscreen/default.nix5
-rw-r--r--pkgs/applications/virtualization/virt-manager/qt.nix18
-rw-r--r--pkgs/applications/virtualization/virtualbox/default.nix8
128 files changed, 1142 insertions, 1289 deletions
diff --git a/pkgs/applications/audio/audacious/qt-5.nix b/pkgs/applications/audio/audacious/qt-5.nix
index 663e0eb0cc8c3..da143c7d946a1 100644
--- a/pkgs/applications/audio/audacious/qt-5.nix
+++ b/pkgs/applications/audio/audacious/qt-5.nix
@@ -1,6 +1,6 @@
 {
-  stdenv, lib, fetchurl,
-  gettext, makeQtWrapper, pkgconfig,
+  mkDerivation, lib, fetchurl,
+  gettext, pkgconfig,
   qtbase,
   alsaLib, curl, faad2, ffmpeg, flac, fluidsynth, gdk_pixbuf, lame, libbs2b,
   libcddb, libcdio082, libcue, libjack2, libmad, libmcs, libmms, libmodplug,
@@ -24,16 +24,14 @@ let
   };
 in
 
-stdenv.mkDerivation {
+mkDerivation {
   inherit version;
   name = "audacious-qt5-${version}";
 
   sourceFiles = lib.attrValues sources;
   sourceRoots = lib.attrNames sources;
 
-  nativeBuildInputs = [
-    gettext makeQtWrapper pkgconfig
-  ];
+  nativeBuildInputs = [ gettext pkgconfig ];
 
   buildInputs = [
     # Core dependencies
@@ -68,15 +66,9 @@ stdenv.mkDerivation {
       fi
 
     done
-
-    source $stdenv/setup
-    wrapQtProgram $out/bin/audacious
-    wrapQtProgram $out/bin/audtool
   '';
 
-  enableParallelBuilding = true;
-
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Audio player";
     homepage = http://audacious-media-player.org/;
     maintainers = with maintainers; [ ttuegel ];
diff --git a/pkgs/applications/audio/cantata/default.nix b/pkgs/applications/audio/cantata/default.nix
index 3231e3e530171..82a6d44f64363 100644
--- a/pkgs/applications/audio/cantata/default.nix
+++ b/pkgs/applications/audio/cantata/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, cmake, vlc
 , withQt4 ? false, qt4
-, withQt5 ? true, qtbase, qtsvg, qttools, makeQtWrapper
+, withQt5 ? true, qtbase, qtsvg, qttools
 
 # Cantata doesn't build with cdparanoia enabled so we disable that
 # default for now until I (or someone else) figure it out.
@@ -63,8 +63,6 @@ stdenv.mkDerivation rec {
     ++ stdenv.lib.optional withMusicbrainz libmusicbrainz5
     ++ stdenv.lib.optional (withTaglib && withDevices) udisks2;
 
-  nativeBuildInputs = stdenv.lib.optional withQt5 makeQtWrapper;
-
   cmakeFlags = stdenv.lib.flatten [
     (fstat withQt5 "QT5")
     (fstats withTaglib [ "TAGLIB" "TAGLIB_EXTRAS" ])
@@ -88,10 +86,6 @@ stdenv.mkDerivation rec {
     sed -i -e 's/STRLESS/VERSION_LESS/g' cmake/FindTaglib.cmake
   '';
 
-  postInstall = stdenv.lib.optionalString withQt5 ''
-    wrapQtProgram "$out/bin/cantata"
-  '';
-
   meta = with stdenv.lib; {
     homepage = https://github.com/cdrummond/cantata;
     description = "A graphical client for MPD";
diff --git a/pkgs/applications/audio/dfasma/default.nix b/pkgs/applications/audio/dfasma/default.nix
index d006f2c01781c..918accb4e167f 100644
--- a/pkgs/applications/audio/dfasma/default.nix
+++ b/pkgs/applications/audio/dfasma/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, fftw, libsndfile, qtbase, qtmultimedia, qmakeHook, makeQtWrapper }:
+{ stdenv, fetchFromGitHub, fftw, libsndfile, qtbase, qtmultimedia, qmake }:
 
 let
 
@@ -37,9 +37,9 @@ in stdenv.mkDerivation rec {
     owner = "gillesdegottex";
   };
 
-  buildInputs = [ fftw libsndfile qtbase qtmultimedia qmakeHook ];
+  buildInputs = [ fftw libsndfile qtbase qtmultimedia ];
 
-  nativeBuildInputs = [ makeQtWrapper ];
+  nativeBuildInputs = [ qmake ];
 
   postPatch = ''
     substituteInPlace dfasma.pro --replace '$$DFASMAVERSIONGITPRO' '${version}'
@@ -53,10 +53,6 @@ in stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  postInstall = ''
-    wrapQtProgram "$out/bin/dfasma"
-  '';
-
   meta = with stdenv.lib; {
     description = "Analyse and compare audio files in time and frequency";
     longDescription = ''
diff --git a/pkgs/applications/audio/fmit/default.nix b/pkgs/applications/audio/fmit/default.nix
index bb4df5ea1db50..e4c6c658efd76 100644
--- a/pkgs/applications/audio/fmit/default.nix
+++ b/pkgs/applications/audio/fmit/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, fftw, freeglut, mesa_glu, qtbase, qtmultimedia, qmakeHook
+{ stdenv, fetchFromGitHub, fftw, freeglut, mesa_glu, qtbase, qtmultimedia, qmake
 , alsaSupport ? true, alsaLib ? null
 , jackSupport ? false, libjack2 ? null
 , portaudioSupport ? false, portaudio ? null }:
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
     owner = "gillesdegottex";
   };
 
-  nativeBuildInputs = [ qmakeHook ];
+  nativeBuildInputs = [ qmake ];
   buildInputs = [ fftw qtbase qtmultimedia ]
     ++ optionals alsaSupport [ alsaLib ]
     ++ optionals jackSupport [ libjack2 ]
diff --git a/pkgs/applications/audio/iannix/default.nix b/pkgs/applications/audio/iannix/default.nix
index 83fd2b14ed2e8..d72a2b13c42dc 100644
--- a/pkgs/applications/audio/iannix/default.nix
+++ b/pkgs/applications/audio/iannix/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, alsaLib, pkgconfig, qtbase, qtscript, qmakeHook
+{ stdenv, fetchFromGitHub, alsaLib, pkgconfig, qtbase, qtscript, qmake
 }:
 
 stdenv.mkDerivation rec {
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "184ydb9f1303v332k5k3f1ki7cb6nkxhh6ij0yn72v7dp7figrgj";
   };
 
-  buildInputs = [ alsaLib pkgconfig qtbase qtscript qmakeHook ];
+  nativeBuildInputs = [ qmake ];
+  buildInputs = [ alsaLib pkgconfig qtbase qtscript ];
 
   qmakeFlags = [ "PREFIX=/" ];
 
diff --git a/pkgs/applications/audio/keyfinder/default.nix b/pkgs/applications/audio/keyfinder/default.nix
index 0cacd77249397..6aaf14a5763a8 100644
--- a/pkgs/applications/audio/keyfinder/default.nix
+++ b/pkgs/applications/audio/keyfinder/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, libav_0_8, libkeyfinder, qtbase, qtxmlpatterns, qmakeHook, taglib }:
+{ stdenv, fetchFromGitHub, libav_0_8, libkeyfinder, qtbase, qtxmlpatterns, qmake, taglib }:
 
 stdenv.mkDerivation rec {
   name = "keyfinder-${version}";
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
     owner = "ibsh";
   };
 
-  buildInputs = [ libav_0_8 libkeyfinder qtbase qtxmlpatterns qmakeHook taglib ];
+  nativeBuildInputs = [ qmake ];
+  buildInputs = [ libav_0_8 libkeyfinder qtbase qtxmlpatterns taglib ];
 
   postPatch = ''
     substituteInPlace is_KeyFinder.pro \
diff --git a/pkgs/applications/audio/sonic-visualiser/default.nix b/pkgs/applications/audio/sonic-visualiser/default.nix
index d48f1eb851b78..bdb9911d36508 100644
--- a/pkgs/applications/audio/sonic-visualiser/default.nix
+++ b/pkgs/applications/audio/sonic-visualiser/default.nix
@@ -2,8 +2,8 @@
 
 { stdenv, fetchurl, alsaLib, bzip2, fftw, libjack2, libX11, liblo
 , libmad, libogg, librdf, librdf_raptor, librdf_rasqal, libsamplerate
-, libsndfile, pkgconfig, libpulseaudio, makeQtWrapper, qtbase, redland
-, qmakeHook, rubberband, serd, sord, vampSDK, fftwFloat
+, libsndfile, pkgconfig, libpulseaudio, qtbase, redland
+, qmake, rubberband, serd, sord, vampSDK, fftwFloat
 }:
 
 stdenv.mkDerivation rec {
@@ -16,11 +16,10 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs =
-    [ libsndfile qtbase qmakeHook fftw fftwFloat bzip2 librdf rubberband
+    [ libsndfile qtbase fftw fftwFloat bzip2 librdf rubberband
       libsamplerate vampSDK alsaLib librdf_raptor librdf_rasqal redland
       serd
       sord
-      pkgconfig
       # optional
       libjack2
       # portaudio
@@ -32,7 +31,7 @@ stdenv.mkDerivation rec {
       libX11
     ];
 
-  nativeBuildInputs = [ makeQtWrapper qmakeHook ];
+  nativeBuildInputs = [ pkgconfig qmake ];
 
   configurePhase = ''
     for i in sonic-visualiser svapp svcore svgui;
@@ -44,7 +43,6 @@ stdenv.mkDerivation rec {
     mkdir -p $out/{bin,share/sonic-visualiser}
     cp sonic-visualiser $out/bin/
     cp -r samples $out/share/sonic-visualiser/
-    wrapQtProgram "$out/bin/sonic-visualiser"
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/display-managers/sddm/default.nix b/pkgs/applications/display-managers/sddm/default.nix
index d1f487b37acf8..d54fb455fcb10 100644
--- a/pkgs/applications/display-managers/sddm/default.nix
+++ b/pkgs/applications/display-managers/sddm/default.nix
@@ -1,121 +1,72 @@
-{ stdenv, lib, makeQtWrapper, fetchFromGitHub, fetchpatch
+{ mkDerivation, lib, copyPathsToStore, fetchFromGitHub, fetchpatch
 , cmake, extra-cmake-modules, pkgconfig, libxcb, libpthreadstubs, lndir
 , libXdmcp, libXau, qtbase, qtdeclarative, qttools, pam, systemd
-, themes
 }:
 
 let
-  version = "0.14.0";
-
-  unwrapped = stdenv.mkDerivation rec {
-    name = "sddm-unwrapped-${version}";
-
-    src = fetchFromGitHub {
-      owner = "sddm";
-      repo = "sddm";
-      rev = "v${version}";
-      sha256 = "0wwid23kw0725zpw67zchalg9mmharr7sn4yzhijq7wqpsczjfxj";
-    };
-
-    patches = [
-      ./0001-ignore-config-mtime.patch
-      (fetchpatch { /* Fix display of user avatars. */
-        url = https://github.com/sddm/sddm/commit/ecb903e48822bd90650bdd64fe80754e3e9664cb.patch;
-        sha256 = "0zm88944pwdad8grmv0xwnxl23xml85ryc71x2xac233jxdyx6ms";
-      })
-    ];
-
-    postPatch =
-      # Module Qt5::Test must be included in `find_package` before it is used.
-      ''
-        sed -i CMakeLists.txt -e '/find_package(Qt5/ s|)| Test)|'
-      '';
-
-    nativeBuildInputs = [ cmake extra-cmake-modules pkgconfig qttools ];
-
-    buildInputs = [
-      libxcb libpthreadstubs libXdmcp libXau pam systemd
-    ];
-
-    propagatedBuildInputs = [
-      qtbase qtdeclarative
-    ];
-
-    cmakeFlags = [
-      "-DCONFIG_FILE=/etc/sddm.conf"
-      # Set UID_MIN and UID_MAX so that the build script won't try
-      # to read them from /etc/login.defs (fails in chroot).
-      # The values come from NixOS; they may not be appropriate
-      # for running SDDM outside NixOS, but that configuration is
-      # not supported anyway.
-      "-DUID_MIN=1000"
-      "-DUID_MAX=29999"
-    ];
-
-    preConfigure = ''
-      export cmakeFlags="$cmakeFlags -DQT_IMPORTS_DIR=$out/lib/qt5/qml -DCMAKE_INSTALL_SYSCONFDIR=$out/etc -DSYSTEMD_SYSTEM_UNIT_DIR=$out/lib/systemd/system"
-    '';
 
-    enableParallelBuilding = true;
-
-    postInstall = ''
-      # remove empty scripts
-      rm "$out/share/sddm/scripts/Xsetup" "$out/share/sddm/scripts/Xstop"
-    '';
+  version = "0.14.0";
 
-    meta = with stdenv.lib; {
-      description = "QML based X11 display manager";
-      homepage = "https://github.com/sddm/sddm";
-      platforms = platforms.linux;
-      maintainers = with maintainers; [ abbradar ttuegel ];
-    };
+  /* Fix display of user avatars. */
+  patchFixUserAvatars = fetchpatch {
+    url = https://github.com/sddm/sddm/commit/ecb903e48822bd90650bdd64fe80754e3e9664cb.patch;
+    sha256 = "0zm88944pwdad8grmv0xwnxl23xml85ryc71x2xac233jxdyx6ms";
   };
 
-in
-
-stdenv.mkDerivation {
-  name = "sddm-${version}";
-
-  nativeBuildInputs = [ lndir makeQtWrapper ];
-  buildInputs = [ unwrapped ] ++ themes;
-  themes = map (pkg: pkg.out or pkg) themes;
-  inherit unwrapped;
-
-  unpackPhase = "true";
-  configurePhase = "runHook preConfigure; runHook postConfigure";
-  buildPhase = "runHook preBuild; runHook postBuild";
+in mkDerivation rec {
+  name = "sddm-unwrapped-${version}";
 
-  installPhase = ''
-    runHook preInstall
-
-    propagated=
-    for i in $unwrapped $themes; do
-      findInputs $i propagated propagated-user-env-packages
-      if [ -z "$crossConfig" ]; then
-          findInputs $i propagated propagated-native-build-inputs
-      else
-          findInputs $i propagated propagated-build-inputs
-      fi
-    done
+  src = fetchFromGitHub {
+    owner = "sddm";
+    repo = "sddm";
+    rev = "v${version}";
+    sha256 = "0wwid23kw0725zpw67zchalg9mmharr7sn4yzhijq7wqpsczjfxj";
+  };
 
-    for pkg in $propagated; do
-      addToSearchPath RUNTIME_XDG_DATA_DIRS "$pkg/share"
-      addToSearchPath RUNTIME_XDG_CONFIG_DIRS "$pkg/etc/xdg"
-    done
+  patches =
+    copyPathsToStore (lib.readPathsFromFile ./. ./series)
+    ++ [ patchFixUserAvatars ];
 
-    mkdir -p "$out/bin"
-    makeQtWrapper "$unwrapped/bin/sddm" "$out/bin/sddm"
+  postPatch =
+    # Module Qt5::Test must be included in `find_package` before it is used.
+    ''
+      sed -i CMakeLists.txt -e '/find_package(Qt5/ s|)| Test)|'
+    '';
 
-    mkdir -p "$out/share/sddm"
-    for pkg in $unwrapped $themes; do
-        local sddmDir="$pkg/share/sddm"
-        if [ -d "$sddmDir" ]; then
-            lndir -silent "$sddmDir" "$out/share/sddm"
-        fi
-    done
+  nativeBuildInputs = [ cmake extra-cmake-modules pkgconfig qttools ];
+
+  buildInputs = [
+    libxcb libpthreadstubs libXdmcp libXau pam systemd
+  ];
+
+  propagatedBuildInputs = [
+    qtbase qtdeclarative
+  ];
+
+  cmakeFlags = [
+    "-DCONFIG_FILE=/etc/sddm.conf"
+    # Set UID_MIN and UID_MAX so that the build script won't try
+    # to read them from /etc/login.defs (fails in chroot).
+    # The values come from NixOS; they may not be appropriate
+    # for running SDDM outside NixOS, but that configuration is
+    # not supported anyway.
+    "-DUID_MIN=1000"
+    "-DUID_MAX=29999"
+  ];
+
+  preConfigure = ''
+    export cmakeFlags="$cmakeFlags -DQT_IMPORTS_DIR=$out/$qtQmlPrefix -DCMAKE_INSTALL_SYSCONFDIR=$out/etc -DSYSTEMD_SYSTEM_UNIT_DIR=$out/lib/systemd/system"
+  '';
 
-    runHook postInstall
+  postInstall = ''
+    # remove empty scripts
+    rm "$out/share/sddm/scripts/Xsetup" "$out/share/sddm/scripts/Xstop"
   '';
 
-  inherit (unwrapped) meta;
+  meta = with lib; {
+    description = "QML based X11 display manager";
+    homepage = "https://github.com/sddm/sddm";
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ abbradar ttuegel ];
+  };
 }
diff --git a/pkgs/applications/display-managers/sddm/0001-ignore-config-mtime.patch b/pkgs/applications/display-managers/sddm/sddm-ignore-config-mtime.patch
index 836df2de292d0..836df2de292d0 100644
--- a/pkgs/applications/display-managers/sddm/0001-ignore-config-mtime.patch
+++ b/pkgs/applications/display-managers/sddm/sddm-ignore-config-mtime.patch
diff --git a/pkgs/applications/display-managers/sddm/series b/pkgs/applications/display-managers/sddm/series
new file mode 100644
index 0000000000000..cb6ea65fedb17
--- /dev/null
+++ b/pkgs/applications/display-managers/sddm/series
@@ -0,0 +1 @@
+sddm-ignore-config-mtime.patch
\ No newline at end of file
diff --git a/pkgs/applications/editors/kdevelop5/kdevelop.nix b/pkgs/applications/editors/kdevelop5/kdevelop.nix
index c599666f4d522..bbd9be2207443 100644
--- a/pkgs/applications/editors/kdevelop5/kdevelop.nix
+++ b/pkgs/applications/editors/kdevelop5/kdevelop.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, cmake, gettext, pkgconfig, extra-cmake-modules, makeQtWrapper
+{ mkDerivation, lib, fetchurl, cmake, gettext, pkgconfig, extra-cmake-modules
 , qtquickcontrols, qtwebkit, qttools, kde-cli-tools
 , kconfig, kdeclarative, kdoctools, kiconthemes, ki18n, kitemmodels, kitemviews
 , kjobwidgets, kcmutils, kio, knewstuff, knotifyconfig, kparts, ktexteditor
@@ -12,7 +12,7 @@ let
   version = "5.1.1";
 
 in
-stdenv.mkDerivation rec {
+mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
@@ -21,24 +21,26 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [
-    cmake gettext pkgconfig extra-cmake-modules makeWrapper makeQtWrapper
+    cmake gettext pkgconfig extra-cmake-modules makeWrapper
   ];
 
   buildInputs = [
+    kdevelop-pg-qt
+    llvmPackages.llvm llvmPackages.clang-unwrapped
+  ];
+
+  propagatedBuildInputs = [
     qtquickcontrols qtwebkit
     kconfig kdeclarative kdoctools kiconthemes ki18n kitemmodels kitemviews
     kjobwidgets kcmutils kio knewstuff knotifyconfig kparts ktexteditor
     threadweaver kxmlgui kwindowsystem grantlee plasma-framework krunner
-    kdevplatform kdevelop-pg-qt shared_mime_info libksysguard konsole.unwrapped
-    llvmPackages.llvm llvmPackages.clang-unwrapped
+    kdevplatform shared_mime_info libksysguard konsole
   ];
 
   postInstall = ''
-    wrapQtProgram "$out/bin/kdevelop"
-    
     # The kdevelop! script (shell environment) needs qdbus and kioclient5 in PATH.
     wrapProgram "$out/bin/kdevelop!" --prefix PATH ":" "${qttools}/bin:${kde-cli-tools}/bin"
-    
+
     # Fix the (now wrapped) kdevelop! to find things in right places:
     # - Make KDEV_BASEDIR point to bin directory of kdevplatform.
     kdev_fixup_sed="s|^export KDEV_BASEDIR=.*$|export KDEV_BASEDIR=${kdevplatform}/bin|"
@@ -47,7 +49,7 @@ stdenv.mkDerivation rec {
     sed -E -i "$kdev_fixup_sed" "$out/bin/.kdevelop!-wrapped"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     maintainers = [ maintainers.ambrop72 ];
     platforms = platforms.linux;
     description = "KDE official IDE";
@@ -60,6 +62,6 @@ stdenv.mkDerivation rec {
         libraries and is under development since 1998.
       '';
     homepage = https://www.kdevelop.org;
-    license = with stdenv.lib.licenses; [ gpl2Plus lgpl2Plus ];
+    license = with licenses; [ gpl2Plus lgpl2Plus ];
   };
 }
diff --git a/pkgs/applications/editors/kdevelop5/kdevplatform.nix b/pkgs/applications/editors/kdevelop5/kdevplatform.nix
index d3680aff3d855..3efc1335c075f 100644
--- a/pkgs/applications/editors/kdevelop5/kdevplatform.nix
+++ b/pkgs/applications/editors/kdevelop5/kdevplatform.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, fetchpatch, cmake, gettext, pkgconfig, extra-cmake-modules, makeQtWrapper
+{ stdenv, fetchurl, fetchpatch, cmake, gettext, pkgconfig, extra-cmake-modules
 , boost, subversion, apr, aprutil
 , qtscript, qtwebkit, grantlee, karchive, kconfig, kcoreaddons, kguiaddons, kiconthemes, ki18n
 , kitemmodels, kitemviews, kio, kparts, sonnet, kcmutils, knewstuff, knotifications
@@ -11,7 +11,7 @@ let
 in
 stdenv.mkDerivation rec {
   name = "${pname}-${version}";
-  
+
   src = fetchurl {
     url = "mirror://kde/stable/kdevelop/${version}/src/${name}.tar.xz";
     sha256 = "3159440512b1373c1a4b35f401ba1f81217de9578372b45137af141eeda6e726";
@@ -25,9 +25,8 @@ stdenv.mkDerivation rec {
     })
   ];
 
-  nativeBuildInputs = [ cmake gettext pkgconfig extra-cmake-modules makeQtWrapper ];
+  nativeBuildInputs = [ cmake gettext pkgconfig extra-cmake-modules ];
 
-  propagatedBuildInputs = [ ];
   buildInputs = [
     boost subversion apr aprutil
     qtscript qtwebkit grantlee karchive kconfig kcoreaddons kguiaddons kiconthemes
diff --git a/pkgs/applications/editors/kile/default.nix b/pkgs/applications/editors/kile/default.nix
index fa8d4d8313ea9..259c319c70ff4 100644
--- a/pkgs/applications/editors/kile/default.nix
+++ b/pkgs/applications/editors/kile/default.nix
@@ -1,9 +1,9 @@
-{ kdeDerivation
+{ mkDerivation
 , lib
 , fetchgit
 , extra-cmake-modules
 , kdoctools
-, kdeWrapper
+, wrapGAppsHook
 , qtscript
 , kconfig
 , kcrash
@@ -21,50 +21,43 @@
 , poppler
 }:
 
-let
-  unwrapped =
-    kdeDerivation rec {
-      name = "kile-${version}";
-      version = "2017-02-09";
+mkDerivation rec {
+  name = "kile-${version}";
+  version = "2017-02-09";
 
-      src = fetchgit {
-        url = git://anongit.kde.org/kile.git;
-        rev = "f77f6e627487c152f111e307ad6dc71699ade746";
-        sha256 = "0wpqaix9ssa28cm7qqjj0zfrscjgk8s3kmi5b4kk8h583gsrikib";
+  src = fetchgit {
+    url = git://anongit.kde.org/kile.git;
+    rev = "f77f6e627487c152f111e307ad6dc71699ade746";
+    sha256 = "0wpqaix9ssa28cm7qqjj0zfrscjgk8s3kmi5b4kk8h583gsrikib";
 
-      };
+  };
 
-      nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  nativeBuildInputs = [ extra-cmake-modules wrapGAppsHook ];
 
-      buildInputs = [
-        kconfig
-        kcrash
-        kdbusaddons
-        kdelibs4support
-        kdoctools
-        kguiaddons
-        kiconthemes
-        kinit
-        khtml
-        kparts
-        ktexteditor
-        kwindowsystem
-        okular.unwrapped
-        poppler
-        qtscript
-      ];
+  propagatedBuildInputs = [
+    kconfig
+    kcrash
+    kdbusaddons
+    kdelibs4support
+    kdoctools
+    kguiaddons
+    kiconthemes
+    kinit
+    khtml
+    kparts
+    ktexteditor
+    kwindowsystem
+    okular
+    poppler
+    qtscript
+  ];
 
-      meta = {
-        description = "Kile is a user friendly TeX/LaTeX authoring tool for the KDE desktop environment";
-        homepage = https://www.kde.org/applications/office/kile/;
-        maintainers = with lib.maintainers; [ fridh ];
-        license = lib.licenses.gpl2Plus;
-      };
-    };
-in
-kdeWrapper
-{
-  inherit unwrapped;
-  targets = [ "bin/kile" ];
-  paths = [ konsole.unwrapped okular.unwrapped ];
+  propagatedUserEnvPkgs = [ konsole ];
+
+  meta = {
+    description = "Kile is a user friendly TeX/LaTeX authoring tool for the KDE desktop environment";
+    homepage = https://www.kde.org/applications/office/kile/;
+    maintainers = with lib.maintainers; [ fridh ];
+    license = lib.licenses.gpl2Plus;
+  };
 }
diff --git a/pkgs/applications/editors/neovim/qt.nix b/pkgs/applications/editors/neovim/qt.nix
index 57f52f0e5fcf3..e24ca50a02478 100644
--- a/pkgs/applications/editors/neovim/qt.nix
+++ b/pkgs/applications/editors/neovim/qt.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchFromGitHub, cmake, doxygen
-, libmsgpack, makeQtWrapper, neovim, pythonPackages, qtbase }:
+{ stdenv, fetchFromGitHub, cmake, doxygen, makeWrapper
+, libmsgpack, neovim, pythonPackages, qtbase }:
 
 stdenv.mkDerivation rec {
   name = "neovim-qt-${version}";
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
     jinja2 msgpack python
   ]);
 
-  nativeBuildInputs = [ cmake doxygen makeQtWrapper ];
+  nativeBuildInputs = [ cmake doxygen makeWrapper ];
 
   enableParallelBuilding = true;
 
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
   '';
 
   postInstall = ''
-    wrapQtProgram "$out/bin/nvim-qt" \
+    wrapProgram "$out/bin/nvim-qt" \
       --prefix PATH : "${neovim}/bin"
   '';
 
diff --git a/pkgs/applications/editors/rstudio/default.nix b/pkgs/applications/editors/rstudio/default.nix
index eab1228da1ac5..9ac91e7086abe 100644
--- a/pkgs/applications/editors/rstudio/default.nix
+++ b/pkgs/applications/editors/rstudio/default.nix
@@ -10,7 +10,8 @@ in
 stdenv.mkDerivation rec {
   name = "RStudio-${version}";
 
-  buildInputs = [ cmake boost163 zlib openssl R qt5.full qt5.qtwebkit qt5.qmakeHook libuuid unzip ant jdk makeWrapper pandoc ];
+  buildInputs = [ cmake boost163 zlib openssl R qt5.full qt5.qtwebkit libuuid unzip ant jdk makeWrapper pandoc ];
+  nativeBuildInputs = [ qt5.qmake ];
 
   src = fetchurl {
     url = "https://github.com/rstudio/rstudio/archive/v${version}.tar.gz";
@@ -90,7 +91,7 @@ stdenv.mkDerivation rec {
       cp ${pandoc}/bin/pandoc dependencies/common/pandoc/
     '';
 
-  cmakeFlags = [ "-DRSTUDIO_TARGET=Desktop" "-DQT_QMAKE_EXECUTABLE=${qt5.qmakeHook}/bin/qmake" ];
+  cmakeFlags = [ "-DRSTUDIO_TARGET=Desktop" "-DQT_QMAKE_EXECUTABLE=${qt5.qmake}/bin/qmake" ];
 
   desktopItem = makeDesktopItem {
     name = name;
diff --git a/pkgs/applications/editors/tiled/default.nix b/pkgs/applications/editors/tiled/default.nix
index be518b9336a84..9bfa3998926fe 100644
--- a/pkgs/applications/editors/tiled/default.nix
+++ b/pkgs/applications/editors/tiled/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, pkgconfig, qmakeHook
+{ stdenv, fetchFromGitHub, pkgconfig, qmake
 , python, qtbase, qttools, zlib }:
 
 let
@@ -14,7 +14,7 @@ in stdenv.mkDerivation rec {
     sha256 = "087jl36g6w2g5l70gz573iwyvx3r7i8fijl3y4mmmf8pyqdyq1n2";
   };
 
-  nativeBuildInputs = [ pkgconfig qmakeHook ];
+  nativeBuildInputs = [ pkgconfig qmake ];
   buildInputs = [ python qtbase qttools ];
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/graphics/awesomebump/default.nix b/pkgs/applications/graphics/awesomebump/default.nix
index b89e18ed148c1..9e0916bab9cf9 100644
--- a/pkgs/applications/graphics/awesomebump/default.nix
+++ b/pkgs/applications/graphics/awesomebump/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, qtbase, qmakeHook, makeWrapper }:
+{ lib, stdenv, fetchurl, qtbase, qmake, makeWrapper }:
 
 stdenv.mkDerivation {
   name = "awesomebump-4.0";
@@ -10,7 +10,8 @@ stdenv.mkDerivation {
 
   setSourceRoot = "sourceRoot=$(echo */Sources)";
 
-  buildInputs = [ qtbase qmakeHook makeWrapper ];
+  nativeBuildInputs = [ makeWrapper qmake ];
+  buildInputs = [ qtbase ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/applications/graphics/digikam/default.nix b/pkgs/applications/graphics/digikam/default.nix
index f117910169235..96b1ca54d5583 100644
--- a/pkgs/applications/graphics/digikam/default.nix
+++ b/pkgs/applications/graphics/digikam/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, cmake, extra-cmake-modules, makeQtWrapper
+{ mkDerivation, lib, fetchurl, cmake, extra-cmake-modules, wrapGAppsHook
 
 # For `digitaglinktree`
 , perl, sqlite
@@ -44,7 +44,7 @@
 , oxygen
 }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   name    = "digikam-${version}";
   version = "5.4.0";
 
@@ -53,26 +53,11 @@ stdenv.mkDerivation rec {
     sha256 = "0dgsgji14l5zvxny36hrfsp889fsfrsbbn9bg57m18404xp903kg";
   };
 
-  nativeBuildInputs = [ cmake extra-cmake-modules makeQtWrapper ];
+  nativeBuildInputs = [ cmake extra-cmake-modules kdoctools wrapGAppsHook ];
 
   patches = [ ./0001-Disable-fno-operator-names.patch ];
 
   buildInputs = [
-    qtbase
-    qtxmlpatterns
-    qtsvg
-    qtwebkit
-
-    kconfigwidgets
-    kcoreaddons
-    kdoctools
-    kfilemetadata
-    knotifications
-    knotifyconfig
-    ktextwidgets
-    kwidgetsaddons
-    kxmlgui
-
     bison
     boost
     eigen
@@ -86,12 +71,28 @@ stdenv.mkDerivation rec {
     liblqr1
     libqtav
     libusb1
-    marble.unwrapped
     mysql
     opencv
-    threadweaver
+  ];
 
+  propagatedBuildInputs = [
+    qtbase
+    qtxmlpatterns
+    qtsvg
+    qtwebkit
+
+    kconfigwidgets
+    kcoreaddons
+    kfilemetadata
+    knotifications
+    knotifyconfig
+    ktextwidgets
+    kwidgetsaddons
+    kxmlgui
+
+    marble
     oxygen
+    threadweaver
   ];
 
   enableParallelBuilding = true;
@@ -104,22 +105,18 @@ stdenv.mkDerivation rec {
     "-DENABLE_MEDIAPLAYER=1"
   ];
 
-  fixupPhase = ''
+  preFixup = ''
+    gappsWrapperArgs+=(--prefix PATH : ${lib.makeBinPath [ gnumake hugin enblend-enfuse ]})
     substituteInPlace $out/bin/digitaglinktree \
       --replace "/usr/bin/perl" "${perl}/bin/perl" \
       --replace "/usr/bin/sqlite3" "${sqlite}/bin/sqlite3"
-
-    wrapQtProgram $out/bin/digikam \
-      --prefix PATH : "${gnumake}/bin:${hugin}/bin:${enblend-enfuse}/bin"
-
-    wrapQtProgram $out/bin/showfoto
   '';
 
-  meta = {
+  meta = with lib; {
     description = "Photo Management Program";
-    license = stdenv.lib.licenses.gpl2;
+    license = licenses.gpl2;
     homepage = http://www.digikam.org;
-    maintainers = with stdenv.lib.maintainers; [ the-kenny ];
-    platforms = stdenv.lib.platforms.linux;
+    maintainers = with maintainers; [ the-kenny ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/graphics/ipe/default.nix b/pkgs/applications/graphics/ipe/default.nix
index 4a99d0ea4a17b..2b1b1f8da8a68 100644
--- a/pkgs/applications/graphics/ipe/default.nix
+++ b/pkgs/applications/graphics/ipe/default.nix
@@ -1,6 +1,5 @@
-{ stdenv, fetchurl, pkgconfig, zlib, freetype, cairo, lua5, texlive, ghostscript
+{ stdenv, fetchurl, makeWrapper, pkgconfig, zlib, freetype, cairo, lua5, texlive, ghostscript
 , libjpeg, qtbase
-, makeQtWrapper
 }:
 
 stdenv.mkDerivation rec {
@@ -28,14 +27,14 @@ stdenv.mkDerivation rec {
   LUA_PACKAGE = "lua";
 
   buildInputs = [
-    libjpeg pkgconfig zlib qtbase freetype cairo lua5 texlive ghostscript
+    libjpeg zlib qtbase freetype cairo lua5 texlive ghostscript
   ];
 
-  nativeBuildInputs = [ makeQtWrapper ];
+  nativeBuildInputs = [ makeWrapper pkgconfig ];
 
   postFixup = ''
     for prog in $out/bin/*; do
-      wrapQtProgram "$prog" --prefix PATH : "${texlive}/bin"
+      wrapProgram "$prog" --prefix PATH : "${texlive}/bin"
     done
   '';
 
diff --git a/pkgs/applications/graphics/krita/default.nix b/pkgs/applications/graphics/krita/default.nix
index c82d1565a550e..121afdf2084b5 100644
--- a/pkgs/applications/graphics/krita/default.nix
+++ b/pkgs/applications/graphics/krita/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, cmake, extra-cmake-modules, makeQtWrapper
+{ mkDerivation, lib, fetchurl, cmake, extra-cmake-modules
 , karchive, kconfig, kwidgetsaddons, kcompletion, kcoreaddons
 , kguiaddons, ki18n, kitemmodels, kitemviews, kwindowsystem
 , kio, kcrash
@@ -6,7 +6,7 @@
 , openjpeg, opencolorio, vc, poppler_qt5, curl, ilmbase
 }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   name = "krita-${version}";
   ver_min = "3.1.3";
   version = "${ver_min}";
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     sha256 = "125js6c8aw4bqhs28pwnl3rbgqx5yx4zsklw7bfdhy3vf6lrysw1";
   };
 
-  nativeBuildInputs = [ cmake extra-cmake-modules makeQtWrapper ];
+  nativeBuildInputs = [ cmake extra-cmake-modules ];
 
   buildInputs = [
     karchive kconfig kwidgetsaddons kcompletion kcoreaddons kguiaddons
@@ -27,15 +27,7 @@ stdenv.mkDerivation rec {
 
   NIX_CFLAGS_COMPILE = [ "-I${ilmbase.dev}/include/OpenEXR" ];
 
-  enableParallelBuilding = true;
-
-  postInstall = ''
-    for i in $out/bin/*; do
-      wrapQtProgram "$i"
-    done
-  '';
-
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A free an open source painting application";
     homepage = "https://krita.org/";
     maintainers = with maintainers; [ abbradar ];
diff --git a/pkgs/applications/graphics/photoqt/default.nix b/pkgs/applications/graphics/photoqt/default.nix
index f9b24581929a2..d6bcdee41375d 100644
--- a/pkgs/applications/graphics/photoqt/default.nix
+++ b/pkgs/applications/graphics/photoqt/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, cmake, makeQtWrapper, exiv2, graphicsmagick
+{ stdenv, fetchurl, cmake, exiv2, graphicsmagick
 , qtbase, qtdeclarative, qtmultimedia, qtquickcontrols, qttools
 }:
 
@@ -12,8 +12,9 @@ stdenv.mkDerivation rec {
     sha256 = "0j2kvxfb5pd9abciv161nkcsyam6n8kfqs8ymwj2mxiqflwbmfl1";
   };
 
+  nativeBuildInputs = [ cmake ];
   buildInputs = [
-    cmake makeQtWrapper qtbase qtquickcontrols qttools exiv2 graphicsmagick
+    qtbase qtquickcontrols qttools exiv2 graphicsmagick
     qtmultimedia qtdeclarative
   ];
 
@@ -21,10 +22,6 @@ stdenv.mkDerivation rec {
     export MAGICK_LOCATION="${graphicsmagick}/include/GraphicsMagick"
   '';
 
-  postInstall = ''
-    wrapQtProgram $out/bin/photoqt
-  '';
-
   meta = {
     homepage = "http://photoqt.org/";
     description = "Simple, yet powerful and good looking image viewer";
diff --git a/pkgs/applications/graphics/phototonic/default.nix b/pkgs/applications/graphics/phototonic/default.nix
index 4782376d1e0b6..8ce9d407aade7 100644
--- a/pkgs/applications/graphics/phototonic/default.nix
+++ b/pkgs/applications/graphics/phototonic/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, qtbase, qmakeHook, exiv2 }:
+{ stdenv, fetchFromGitHub, qtbase, qmake, exiv2 }:
 
 stdenv.mkDerivation rec {
   name = "phototonic-${version}";
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ qtbase exiv2 ];
-  nativeBuildInputs = [ qmakeHook ];
+  nativeBuildInputs = [ qmake ];
 
   preConfigure = ''
     sed -i 's;/usr;$$PREFIX/;g' phototonic.pro
diff --git a/pkgs/applications/graphics/rapcad/default.nix b/pkgs/applications/graphics/rapcad/default.nix
index b7672a39d0df1..451eaae79b2e4 100644
--- a/pkgs/applications/graphics/rapcad/default.nix
+++ b/pkgs/applications/graphics/rapcad/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, fetchurl, cgal, boost, gmp, mpfr, flex, bison, dxflib, readline
-, qtbase, qmakeHook, mesa_glu
+, qtbase, qmake, mesa_glu
 }:
 
 stdenv.mkDerivation rec {
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
     })
   ];
 
-  nativeBuildInputs = [ qmakeHook ];
+  nativeBuildInputs = [ qmake ];
   buildInputs = [ qtbase cgal boost gmp mpfr flex bison dxflib readline mesa_glu ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/graphics/renderdoc/default.nix b/pkgs/applications/graphics/renderdoc/default.nix
index be4457c932fa3..d69f9a676c1b1 100644
--- a/pkgs/applications/graphics/renderdoc/default.nix
+++ b/pkgs/applications/graphics/renderdoc/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchFromGitHub, cmake, qtbase, qtx11extras
-, pkgconfig, xorg, makeQtWrapper, vulkan-loader
+{ stdenv, fetchFromGitHub, cmake, makeWrapper, pkgconfig
+, qtbase, qtx11extras, vulkan-loader, xorg
 }:
 
 stdenv.mkDerivation rec {
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     qtbase xorg.libpthreadstubs xorg.libXdmcp qtx11extras vulkan-loader
   ];
-  nativeBuildInputs = [ cmake makeQtWrapper pkgconfig ];
+  nativeBuildInputs = [ cmake makeWrapper pkgconfig ];
 
   cmakeFlags = [
     "-DBUILD_VERSION_HASH=${src.rev}-distro-nix"
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
     mkdir $out/bin/.bin
     mv $out/bin/qrenderdoc $out/bin/.bin/qrenderdoc
     ln -s $out/bin/.bin/qrenderdoc $out/bin/qrenderdoc
-    wrapQtProgram $out/bin/qrenderdoc --suffix LD_LIBRARY_PATH : $out/lib --suffix LD_LIBRARY_PATH : ${vulkan-loader}/lib
+    wrapProgram $out/bin/qrenderdoc --suffix LD_LIBRARY_PATH : $out/lib --suffix LD_LIBRARY_PATH : ${vulkan-loader}/lib
     mv $out/bin/renderdoccmd $out/bin/.bin/renderdoccmd
     ln -s $out/bin/.bin/renderdoccmd $out/bin/renderdoccmd
     wrapProgram $out/bin/renderdoccmd --suffix LD_LIBRARY_PATH : $out/lib --suffix LD_LIBRARY_PATH : ${vulkan-loader}/lib
diff --git a/pkgs/applications/kde/akonadi-contacts.nix b/pkgs/applications/kde/akonadi-contacts.nix
index 830c9e6899ea5..3f410b7b8b914 100644
--- a/pkgs/applications/kde/akonadi-contacts.nix
+++ b/pkgs/applications/kde/akonadi-contacts.nix
@@ -1,11 +1,11 @@
 {
-  kdeApp, lib,
+  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,
 }:
 
-kdeApp {
+mkDerivation {
   name = "akonadi-contacts";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 ];
@@ -13,7 +13,9 @@ kdeApp {
   };
   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 ba4b4b50242cd..1fb50756665e6 100644
--- a/pkgs/applications/kde/akonadi-mime.nix
+++ b/pkgs/applications/kde/akonadi-mime.nix
@@ -1,15 +1,16 @@
 {
-  kdeApp, lib,
+  mkDerivation, lib,
   extra-cmake-modules,
-  akonadi, kdbusaddons, kio, kitemmodels, kmime
+  akonadi, kdbusaddons, ki18n, kio, kitemmodels, kmime
 }:
 
-kdeApp {
+mkDerivation {
   name = "akonadi-mime";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 ];
     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/akonadi.nix b/pkgs/applications/kde/akonadi.nix
deleted file mode 100644
index 284ed60a9cbd2..0000000000000
--- a/pkgs/applications/kde/akonadi.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{
-  kdeApp, lib,
-  extra-cmake-modules,
-  kcompletion, kconfigwidgets, kdbusaddons, kdesignerplugin, kiconthemes,
-  kio,
-  boost, kitemmodels
-}:
-
-kdeApp {
-  name = "akonadi";
-  meta = {
-    license = [ lib.licenses.lgpl21 ];
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-  nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [
-    kcompletion kconfigwidgets kdbusaddons kdesignerplugin kiconthemes kio
-  ];
-  propagatedBuildInputs = [ boost kitemmodels ];
-}
diff --git a/pkgs/applications/kde/akonadi/akonadi-paths.patch b/pkgs/applications/kde/akonadi/akonadi-paths.patch
new file mode 100644
index 0000000000000..f1ae1f23cc959
--- /dev/null
+++ b/pkgs/applications/kde/akonadi/akonadi-paths.patch
@@ -0,0 +1,191 @@
+Index: akonadi-17.04.0/src/server/storage/dbconfigmysql.cpp
+===================================================================
+--- akonadi-17.04.0.orig/src/server/storage/dbconfigmysql.cpp
++++ akonadi-17.04.0/src/server/storage/dbconfigmysql.cpp
+@@ -63,7 +63,6 @@ bool DbConfigMysql::init(QSettings &sett
+     // determine default settings depending on the driver
+     QString defaultHostName;
+     QString defaultOptions;
+-    QString defaultServerPath;
+     QString defaultCleanShutdownCommand;
+ 
+ #ifndef Q_OS_WIN
+@@ -71,25 +70,8 @@ bool DbConfigMysql::init(QSettings &sett
+ #endif
+ 
+     const bool defaultInternalServer = true;
+-#ifdef MYSQLD_EXECUTABLE
+-    if (QFile::exists(QStringLiteral(MYSQLD_EXECUTABLE))) {
+-        defaultServerPath = QStringLiteral(MYSQLD_EXECUTABLE);
+-    }
+-#endif
+-    const QStringList mysqldSearchPath = QStringList()
+-                                         << QStringLiteral("/usr/bin")
+-                                         << QStringLiteral("/usr/sbin")
+-                                         << QStringLiteral("/usr/local/sbin")
+-                                         << QStringLiteral("/usr/local/libexec")
+-                                         << QStringLiteral("/usr/libexec")
+-                                         << QStringLiteral("/opt/mysql/libexec")
+-                                         << QStringLiteral("/opt/local/lib/mysql5/bin")
+-                                         << QStringLiteral("/opt/mysql/sbin");
+-    if (defaultServerPath.isEmpty()) {
+-        defaultServerPath = XdgBaseDirs::findExecutableFile(QStringLiteral("mysqld"), mysqldSearchPath);
+-    }
+ 
+-    const QString mysqladminPath = XdgBaseDirs::findExecutableFile(QStringLiteral("mysqladmin"), mysqldSearchPath);
++    const QString mysqladminPath = QStringLiteral(NIXPKGS_MYSQL_MYSQLADMIN);
+     if (!mysqladminPath.isEmpty()) {
+ #ifndef Q_OS_WIN
+         defaultCleanShutdownCommand = QStringLiteral("%1 --defaults-file=%2/mysql.conf --socket=%3/mysql.socket shutdown")
+@@ -99,10 +81,10 @@ bool DbConfigMysql::init(QSettings &sett
+ #endif
+     }
+ 
+-    mMysqlInstallDbPath = XdgBaseDirs::findExecutableFile(QStringLiteral("mysql_install_db"), mysqldSearchPath);
++    mMysqlInstallDbPath = QStringLiteral(NIXPKGS_MYSQL_MYSQL_INSTALL_DB);
+     qCDebug(AKONADISERVER_LOG) << "Found mysql_install_db: " << mMysqlInstallDbPath;
+ 
+-    mMysqlCheckPath = XdgBaseDirs::findExecutableFile(QStringLiteral("mysqlcheck"), mysqldSearchPath);
++    mMysqlCheckPath = QStringLiteral(NIXPKGS_MYSQL_MYSQLCHECK);
+     qCDebug(AKONADISERVER_LOG) << "Found mysqlcheck: " << mMysqlCheckPath;
+ 
+     mInternalServer = settings.value(QStringLiteral("QMYSQL/StartServer"), defaultInternalServer).toBool();
+@@ -119,7 +101,7 @@ bool DbConfigMysql::init(QSettings &sett
+     mUserName = settings.value(QStringLiteral("User")).toString();
+     mPassword = settings.value(QStringLiteral("Password")).toString();
+     mConnectionOptions = settings.value(QStringLiteral("Options"), defaultOptions).toString();
+-    mMysqldPath = settings.value(QStringLiteral("ServerPath"), defaultServerPath).toString();
++    mMysqldPath = QStringLiteral(NIXPKGS_MYSQL_MYSQLD);
+     mCleanServerShutdownCommand = settings.value(QStringLiteral("CleanServerShutdownCommand"), defaultCleanShutdownCommand).toString();
+     settings.endGroup();
+ 
+@@ -129,9 +111,6 @@ bool DbConfigMysql::init(QSettings &sett
+         // intentionally not namespaced as we are the only one in this db instance when using internal mode
+         mDatabaseName = QStringLiteral("akonadi");
+     }
+-    if (mInternalServer && (mMysqldPath.isEmpty() || !QFile::exists(mMysqldPath))) {
+-        mMysqldPath = defaultServerPath;
+-    }
+ 
+     qCDebug(AKONADISERVER_LOG) << "Using mysqld:" << mMysqldPath;
+ 
+@@ -140,9 +119,6 @@ bool DbConfigMysql::init(QSettings &sett
+     settings.setValue(QStringLiteral("Name"), mDatabaseName);
+     settings.setValue(QStringLiteral("Host"), mHostName);
+     settings.setValue(QStringLiteral("Options"), mConnectionOptions);
+-    if (!mMysqldPath.isEmpty()) {
+-        settings.setValue(QStringLiteral("ServerPath"), mMysqldPath);
+-    }
+     settings.setValue(QStringLiteral("StartServer"), mInternalServer);
+     settings.endGroup();
+     settings.sync();
+@@ -196,7 +172,7 @@ bool DbConfigMysql::startInternalServer(
+ #endif
+ 
+     // generate config file
+-    const QString globalConfig = XdgBaseDirs::findResourceFile("config", QStringLiteral("akonadi/mysql-global.conf"));
++    const QString globalConfig = QStringLiteral(NIX_OUT "/etc/xdg/akonadi/mysql-global.conf");
+     const QString localConfig  = XdgBaseDirs::findResourceFile("config", QStringLiteral("akonadi/mysql-local.conf"));
+     const QString actualConfig = StandardDirs::saveDir("data") + QLatin1String("/mysql.conf");
+     if (globalConfig.isEmpty()) {
+Index: akonadi-17.04.0/src/server/storage/dbconfigpostgresql.cpp
+===================================================================
+--- akonadi-17.04.0.orig/src/server/storage/dbconfigpostgresql.cpp
++++ akonadi-17.04.0/src/server/storage/dbconfigpostgresql.cpp
+@@ -58,7 +58,6 @@ bool DbConfigPostgresql::init(QSettings
+     // determine default settings depending on the driver
+     QString defaultHostName;
+     QString defaultOptions;
+-    QString defaultServerPath;
+     QString defaultInitDbPath;
+     QString defaultPgData;
+ 
+@@ -70,35 +69,7 @@ bool DbConfigPostgresql::init(QSettings
+ 
+     mInternalServer = settings.value(QStringLiteral("QPSQL/StartServer"), defaultInternalServer).toBool();
+     if (mInternalServer) {
+-        QStringList postgresSearchPath;
+-
+-#ifdef POSTGRES_PATH
+-        const QString dir(QStringLiteral(POSTGRES_PATH));
+-        if (QDir(dir).exists()) {
+-            postgresSearchPath << QStringLiteral(POSTGRES_PATH);
+-        }
+-#endif
+-        postgresSearchPath << QStringLiteral("/usr/sbin")
+-                           << QStringLiteral("/usr/local/sbin");
+-        // Locale all versions in /usr/lib/postgresql (i.e. /usr/lib/postgresql/X.Y) in reversed
+-        // sorted order, so we search from the newest one to the oldest.
+-        QStringList postgresVersionedSearchPaths;
+-        QDir versionedDir(QStringLiteral("/usr/lib/postgresql"));
+-        if (versionedDir.exists()) {
+-            const auto versionedDirs = versionedDir.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot, QDir::Name | QDir::Reversed);
+-            for (const auto &path : versionedDirs) {
+-                // Don't break once PostgreSQL 10 is released, but something more future-proof will be needed
+-                if (path.fileName().startsWith(QLatin1String("10."))) {
+-                    postgresVersionedSearchPaths.prepend(path.absoluteFilePath() + QStringLiteral("/bin"));
+-                } else {
+-                    postgresVersionedSearchPaths.append(path.absoluteFilePath() + QStringLiteral("/bin"));
+-                }
+-            }
+-        }
+-        postgresSearchPath.append(postgresVersionedSearchPaths);
+-
+-        defaultServerPath = XdgBaseDirs::findExecutableFile(QStringLiteral("pg_ctl"), postgresSearchPath);
+-        defaultInitDbPath = XdgBaseDirs::findExecutableFile(QStringLiteral("initdb"), postgresSearchPath);
++        defaultInitDbPath = QStringLiteral(NIXPKGS_POSTGRES_INITDB);
+         defaultHostName = Utils::preferredSocketDirectory(StandardDirs::saveDir("data", QStringLiteral("db_misc")));
+         defaultPgData = StandardDirs::saveDir("data", QStringLiteral("db_data"));
+     }
+@@ -118,10 +89,7 @@ bool DbConfigPostgresql::init(QSettings
+     mUserName = settings.value(QStringLiteral("User")).toString();
+     mPassword = settings.value(QStringLiteral("Password")).toString();
+     mConnectionOptions = settings.value(QStringLiteral("Options"), defaultOptions).toString();
+-    mServerPath = settings.value(QStringLiteral("ServerPath"), defaultServerPath).toString();
+-    if (mInternalServer && mServerPath.isEmpty()) {
+-        mServerPath = defaultServerPath;
+-    }
++    mServerPath = QStringLiteral(NIXPKGS_POSTGRES_PG_CTL);
+     qCDebug(AKONADISERVER_LOG) << "Found pg_ctl:" << mServerPath;
+     mInitDbPath = settings.value(QStringLiteral("InitDbPath"), defaultInitDbPath).toString();
+     if (mInternalServer && mInitDbPath.isEmpty()) {
+@@ -142,7 +110,6 @@ bool DbConfigPostgresql::init(QSettings
+         settings.setValue(QStringLiteral("Port"), mHostPort);
+     }
+     settings.setValue(QStringLiteral("Options"), mConnectionOptions);
+-    settings.setValue(QStringLiteral("ServerPath"), mServerPath);
+     settings.setValue(QStringLiteral("InitDbPath"), mInitDbPath);
+     settings.setValue(QStringLiteral("StartServer"), mInternalServer);
+     settings.endGroup();
+Index: akonadi-17.04.0/src/akonadicontrol/agentprocessinstance.cpp
+===================================================================
+--- akonadi-17.04.0.orig/src/akonadicontrol/agentprocessinstance.cpp
++++ akonadi-17.04.0/src/akonadicontrol/agentprocessinstance.cpp
+@@ -62,7 +62,7 @@ bool AgentProcessInstance::start(const A
+     } else {
+         Q_ASSERT(agentInfo.launchMethod == AgentType::Launcher);
+         const QStringList arguments = QStringList() << executable << identifier();
+-        const QString agentLauncherExec = XdgBaseDirs::findExecutableFile(QStringLiteral("akonadi_agent_launcher"));
++        const QString agentLauncherExec = QStringLiteral(NIX_OUT "/bin/akonadi_agent_launcher");
+         mController->start(agentLauncherExec, arguments);
+     }
+     return true;
+Index: akonadi-17.04.0/src/akonadicontrol/agentmanager.cpp
+===================================================================
+--- akonadi-17.04.0.orig/src/akonadicontrol/agentmanager.cpp
++++ akonadi-17.04.0/src/akonadicontrol/agentmanager.cpp
+@@ -102,12 +102,12 @@ AgentManager::AgentManager(bool verbose,
+     mStorageController = new Akonadi::ProcessControl;
+     mStorageController->setShutdownTimeout(15 * 1000);   // the server needs more time for shutdown if we are using an internal mysqld
+     connect(mStorageController, &Akonadi::ProcessControl::unableToStart, this, &AgentManager::serverFailure);
+-    mStorageController->start(QStringLiteral("akonadiserver"), serviceArgs, Akonadi::ProcessControl::RestartOnCrash);
++    mStorageController->start(QStringLiteral(NIX_OUT "/bin/akonadiserver"), serviceArgs, Akonadi::ProcessControl::RestartOnCrash);
+ 
+     if (mAgentServerEnabled) {
+         mAgentServer = new Akonadi::ProcessControl;
+         connect(mAgentServer, &Akonadi::ProcessControl::unableToStart, this, &AgentManager::agentServerFailure);
+-        mAgentServer->start(QStringLiteral("akonadi_agent_server"), serviceArgs, Akonadi::ProcessControl::RestartOnCrash);
++        mAgentServer->start(QStringLiteral(NIX_OUT "/bin/akonadi_agent_server"), serviceArgs, Akonadi::ProcessControl::RestartOnCrash);
+     }
+ 
+ #ifndef QT_NO_DEBUG
diff --git a/pkgs/applications/kde/akonadi/akonadi-timestamps.patch b/pkgs/applications/kde/akonadi/akonadi-timestamps.patch
new file mode 100644
index 0000000000000..25a835f5ba243
--- /dev/null
+++ b/pkgs/applications/kde/akonadi/akonadi-timestamps.patch
@@ -0,0 +1,14 @@
+Index: akonadi-17.04.0/src/server/storage/dbconfigmysql.cpp
+===================================================================
+--- akonadi-17.04.0.orig/src/server/storage/dbconfigmysql.cpp
++++ akonadi-17.04.0/src/server/storage/dbconfigmysql.cpp
+@@ -229,8 +229,7 @@ bool DbConfigMysql::startInternalServer(
+     bool confUpdate = false;
+     QFile actualFile(actualConfig);
+     // update conf only if either global (or local) is newer than actual
+-    if ((QFileInfo(globalConfig).lastModified() > QFileInfo(actualFile).lastModified()) ||
+-            (QFileInfo(localConfig).lastModified()  > QFileInfo(actualFile).lastModified())) {
++    if (true) {
+         QFile globalFile(globalConfig);
+         QFile localFile(localConfig);
+         if (globalFile.open(QFile::ReadOnly) && actualFile.open(QFile::WriteOnly)) {
diff --git a/pkgs/applications/kde/akonadi/default.nix b/pkgs/applications/kde/akonadi/default.nix
new file mode 100644
index 0000000000000..a264ebc9f098f
--- /dev/null
+++ b/pkgs/applications/kde/akonadi/default.nix
@@ -0,0 +1,36 @@
+{
+  mkDerivation, copyPathsToStore, lib,
+  extra-cmake-modules,
+  kcompletion, kconfigwidgets, kdbusaddons, kdesignerplugin, kiconthemes,
+  kio,
+  boost, kitemmodels,
+  mysql
+}:
+
+mkDerivation {
+  name = "akonadi";
+  meta = {
+    license = [ lib.licenses.lgpl21 ];
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [
+    kcompletion kconfigwidgets kdbusaddons kdesignerplugin kiconthemes kio
+  ];
+  propagatedBuildInputs = [ boost kitemmodels ];
+  cmakeFlags = [
+    "-DMYSQLD_EXECUTABLE=${lib.getBin mysql}/bin/mysqld"
+  ];
+  NIX_CFLAGS_COMPILE = [
+    ''-DNIXPKGS_MYSQL_MYSQLD="${lib.getBin mysql}/bin/mysqld"''
+    ''-DNIXPKGS_MYSQL_MYSQLADMIN="${lib.getBin mysql}/bin/mysqladmin"''
+    ''-DNIXPKGS_MYSQL_MYSQL_INSTALL_DB="${lib.getBin mysql}/bin/mysql_install_db"''
+    ''-DNIXPKGS_MYSQL_MYSQLCHECK="${lib.getBin mysql}/bin/mysqlcheck"''
+    ''-DNIXPKGS_POSTGRES_PG_CTL=""''
+    ''-DNIXPKGS_POSTGRES_INITDB=""''
+  ];
+  preConfigure = ''
+    NIX_CFLAGS_COMPILE+=" -DNIX_OUT=\"$out\""
+  '';
+}
diff --git a/pkgs/applications/kde/akonadi/series b/pkgs/applications/kde/akonadi/series
new file mode 100644
index 0000000000000..9e067f0a0008d
--- /dev/null
+++ b/pkgs/applications/kde/akonadi/series
@@ -0,0 +1,2 @@
+akonadi-paths.patch
+akonadi-timestamps.patch
diff --git a/pkgs/applications/kde/ark/default.nix b/pkgs/applications/kde/ark/default.nix
index 52cb403f2022f..df15f6b0f188e 100644
--- a/pkgs/applications/kde/ark/default.nix
+++ b/pkgs/applications/kde/ark/default.nix
@@ -1,10 +1,10 @@
 {
-  kdeApp, lib, config, kdeWrapper,
+  mkDerivation, lib, config, makeWrapper,
 
-  extra-cmake-modules, kdoctools, makeWrapper,
+  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,
@@ -13,35 +13,25 @@
   unfreeEnableUnrar ? false, unrar,
 }:
 
-let
-  unwrapped =
-    kdeApp {
-      name = "ark";
-      nativeBuildInputs = [
-        extra-cmake-modules kdoctools makeWrapper
-      ];
-      propagatedBuildInputs = [
-        khtml ki18n kio karchive kconfig kcrash kdbusaddons kiconthemes kservice
-        kpty kwidgetsaddons libarchive kitemmodels
-      ];
-      postInstall =
-        let
-          PATH =
-            lib.makeBinPath
-            ([ p7zip unzipNLS zip ] ++ lib.optional unfreeEnableUnrar unrar);
-        in ''
-          wrapProgram "$out/bin/ark" \
-              --prefix PATH : "${PATH}"
-        '';
-      meta = {
-        license = with lib.licenses;
-          [ gpl2 lgpl3 ] ++ lib.optional unfreeEnableUnrar unfree;
-        maintainers = [ lib.maintainers.ttuegel ];
-      };
-    };
-in
-kdeWrapper
-{
-  inherit unwrapped;
-  targets = [ "bin/ark" ];
+mkDerivation {
+  name = "ark";
+  nativeBuildInputs = [ extra-cmake-modules kdoctools makeWrapper ];
+  propagatedBuildInputs = [
+    karchive kconfig kcrash kdbusaddons khtml ki18n kiconthemes kio kitemmodels
+    kparts kpty kservice kwidgetsaddons libarchive
+  ];
+  outputs = [ "out" "dev" ];
+  postFixup =
+    let
+      PATH =
+        lib.makeBinPath
+        ([ p7zip unzipNLS zip ] ++ lib.optional unfreeEnableUnrar unrar);
+    in ''
+      wrapProgram "$out/bin/ark" --prefix PATH: "${PATH}"
+    '';
+  meta = {
+    license = with lib.licenses;
+      [ gpl2 lgpl3 ] ++ lib.optional unfreeEnableUnrar unfree;
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
 }
diff --git a/pkgs/applications/kde/baloo-widgets.nix b/pkgs/applications/kde/baloo-widgets.nix
index bb6803057096b..3479b6600fc96 100644
--- a/pkgs/applications/kde/baloo-widgets.nix
+++ b/pkgs/applications/kde/baloo-widgets.nix
@@ -1,10 +1,10 @@
 {
-  kdeApp, lib,
+  mkDerivation, lib,
   extra-cmake-modules, kdoctools,
   baloo, kconfig, kdelibs4support, kfilemetadata, ki18n, kio, kservice
 }:
 
-kdeApp {
+mkDerivation {
   name = "baloo-widgets";
   meta = {
     license = [ lib.licenses.lgpl21 ];
@@ -14,4 +14,5 @@ kdeApp {
   propagatedBuildInputs = [
     baloo kconfig kdelibs4support kfilemetadata ki18n kio kservice
   ];
+  outputs = [ "out" "dev" ];
 }
diff --git a/pkgs/applications/kde/build-support/application.nix b/pkgs/applications/kde/build-support/application.nix
index 92fdb439330da..892d82fb51e8e 100644
--- a/pkgs/applications/kde/build-support/application.nix
+++ b/pkgs/applications/kde/build-support/application.nix
@@ -1,4 +1,4 @@
-{ kdeDerivation, lib, debug, srcs }:
+{ mkDerivation, lib, srcs }:
 
 args:
 
@@ -7,14 +7,11 @@ let
   sname = args.sname or name;
   inherit (srcs."${sname}") src version;
 in
-kdeDerivation (args // {
+mkDerivation (args // {
   name = "${name}-${version}";
   inherit src;
 
-  cmakeFlags =
-    (args.cmakeFlags or [])
-    ++ [ "-DBUILD_TESTING=OFF" ]
-    ++ lib.optional debug "-DCMAKE_BUILD_TYPE=Debug";
+  outputs = args.outputs or [ "out" "dev" ];
 
   meta = {
     platforms = lib.platforms.linux;
diff --git a/pkgs/applications/kde/default.nix b/pkgs/applications/kde/default.nix
index 81c50147cb683..d8b8c4242cb8b 100644
--- a/pkgs/applications/kde/default.nix
+++ b/pkgs/applications/kde/default.nix
@@ -27,9 +27,7 @@ still shows most of the available features is in `./gwenview.nix`.
 
 {
   stdenv, lib, libsForQt5, fetchurl, recurseIntoAttrs,
-  kdeDerivation, plasma5,
-  attica, phonon,
-  debug ? false,
+  plasma5, attica, phonon,
 }:
 
 let
@@ -42,14 +40,15 @@ let
   packages = self: with self;
     let
       callPackage = self.newScope {
-        kdeApp = import ./build-support/application.nix {
-          inherit lib kdeDerivation;
-          inherit debug srcs;
+        mkDerivation = import ./build-support/application.nix {
+          inherit lib;
+          inherit srcs;
+          mkDerivation = libsForQt5.callPackage ({ mkDerivation }: mkDerivation) {};
         };
       };
     in {
       kdelibs = callPackage ./kdelibs { inherit attica phonon; };
-      akonadi = callPackage ./akonadi.nix {};
+      akonadi = callPackage ./akonadi {};
       akonadi-contacts = callPackage ./akonadi-contacts.nix {};
       akonadi-mime = callPackage ./akonadi-mime.nix {};
       ark = callPackage ./ark/default.nix {};
diff --git a/pkgs/applications/kde/dolphin-plugins.nix b/pkgs/applications/kde/dolphin-plugins.nix
index 7f436c7a55a9c..eb823641ae446 100644
--- a/pkgs/applications/kde/dolphin-plugins.nix
+++ b/pkgs/applications/kde/dolphin-plugins.nix
@@ -1,10 +1,10 @@
 {
-  kdeApp, lib,
+  mkDerivation, lib,
   extra-cmake-modules, kdoctools,
   dolphin, kdelibs4support, ki18n, kio, kxmlgui
 }:
 
-kdeApp {
+mkDerivation {
   name = "dolphin-plugins";
   meta = {
     license = [ lib.licenses.gpl2 ];
@@ -12,6 +12,6 @@ kdeApp {
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   propagatedBuildInputs = [
-    dolphin.unwrapped kdelibs4support ki18n kio kxmlgui
+    dolphin kdelibs4support ki18n kio kxmlgui
   ];
 }
diff --git a/pkgs/applications/kde/dolphin.nix b/pkgs/applications/kde/dolphin.nix
index 6515c230c2848..2570e37bf2c9a 100644
--- a/pkgs/applications/kde/dolphin.nix
+++ b/pkgs/applications/kde/dolphin.nix
@@ -1,32 +1,24 @@
 {
-  kdeApp, lib, kdeWrapper,
-  extra-cmake-modules, kdoctools, makeQtWrapper,
+  mkDerivation, lib,
+  extra-cmake-modules, kdoctools,
   baloo, baloo-widgets, dolphin-plugins, kactivities, kbookmarks, kcmutils,
   kcompletion, kconfig, kcoreaddons, kdelibs4support, kdbusaddons,
   kfilemetadata, ki18n, kiconthemes, kinit, kio, knewstuff, knotifications,
   konsole, kparts, ktexteditor, kwindowsystem, phonon, solid
 }:
 
-let
-  unwrapped =
-    kdeApp {
-      name = "dolphin";
-      meta = {
-        license = with lib.licenses; [ gpl2 fdl12 ];
-        maintainers = [ lib.maintainers.ttuegel ];
-      };
-      nativeBuildInputs = [ extra-cmake-modules kdoctools makeQtWrapper ];
-      propagatedBuildInputs = [
-        baloo baloo-widgets kactivities kbookmarks kcmutils kcompletion kconfig
-        kcoreaddons kdelibs4support kdbusaddons kfilemetadata ki18n kiconthemes
-        kinit kio knewstuff knotifications kparts ktexteditor kwindowsystem
-        phonon solid
-      ];
-    };
-in
-kdeWrapper
-{
-  inherit unwrapped;
-  targets = [ "bin/dolphin" ];
-  paths = [ dolphin-plugins konsole.unwrapped ];
+mkDerivation {
+  name = "dolphin";
+  meta = {
+    license = with lib.licenses; [ gpl2 fdl12 ];
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  propagatedBuildInputs = [
+    baloo baloo-widgets kactivities kbookmarks kcmutils kcompletion kconfig
+    kcoreaddons kdelibs4support kdbusaddons kfilemetadata ki18n kiconthemes
+    kinit kio knewstuff knotifications kparts ktexteditor kwindowsystem
+    phonon solid
+  ];
+  outputs = [ "out" "dev" ];
 }
diff --git a/pkgs/applications/kde/ffmpegthumbs.nix b/pkgs/applications/kde/ffmpegthumbs.nix
index 5dde6d8a64ea0..4e915422d1474 100644
--- a/pkgs/applications/kde/ffmpegthumbs.nix
+++ b/pkgs/applications/kde/ffmpegthumbs.nix
@@ -1,10 +1,10 @@
 {
-  kdeApp, lib,
+  mkDerivation, lib,
   extra-cmake-modules,
   ffmpeg, kio
 }:
 
-kdeApp {
+mkDerivation {
   name = "ffmpegthumbs";
   meta = {
     license = with lib.licenses; [ gpl2 bsd3 ];
diff --git a/pkgs/applications/kde/filelight.nix b/pkgs/applications/kde/filelight.nix
index 71ab51320ab1f..6eb219d8da966 100644
--- a/pkgs/applications/kde/filelight.nix
+++ b/pkgs/applications/kde/filelight.nix
@@ -1,24 +1,17 @@
 {
-  kdeApp, lib, kdeWrapper,
+  mkDerivation, lib,
   extra-cmake-modules, kdoctools,
   kio, kparts, kxmlgui, qtscript, solid
 }:
 
-let
-  unwrapped =
-    kdeApp {
-      name = "filelight";
-      meta = {
-        license = with lib.licenses; [ gpl2 ];
-        maintainers = with lib.maintainers; [ fridh vcunat ];
-      };
-      nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-      propagatedBuildInputs = [
-        kio kparts kxmlgui qtscript solid
-      ];
-    };
-in
-kdeWrapper {
-  inherit unwrapped;
-  targets = [ "bin/filelight" ];
+mkDerivation {
+  name = "filelight";
+  meta = {
+    license = with lib.licenses; [ gpl2 ];
+    maintainers = with lib.maintainers; [ fridh vcunat ];
+  };
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  propagatedBuildInputs = [
+    kio kparts kxmlgui qtscript solid
+  ];
 }
diff --git a/pkgs/applications/kde/gwenview.nix b/pkgs/applications/kde/gwenview.nix
index 0fa06ed0fbe2b..233566c1bdaf3 100644
--- a/pkgs/applications/kde/gwenview.nix
+++ b/pkgs/applications/kde/gwenview.nix
@@ -1,27 +1,21 @@
 {
-  kdeApp, lib, kdeWrapper,
+  mkDerivation, lib,
   extra-cmake-modules, kdoctools,
-  baloo, exiv2, kactivities, kdelibs4support, kio, kipi-plugins, lcms2,
-  libkdcraw, libkipi, phonon, qtimageformats, qtsvg, qtx11extras
+  exiv2, lcms2,
+  baloo, kactivities, kdelibs4support, kio, kipi-plugins, libkdcraw, libkipi,
+  phonon, qtimageformats, qtsvg, qtx11extras
 }:
 
-let
-  unwrapped =
-    kdeApp {
-      name = "gwenview";
-      meta = {
-        license = with lib.licenses; [ gpl2 fdl12 ];
-        maintainers = [ lib.maintainers.ttuegel ];
-      };
-      nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-      propagatedBuildInputs = [
-        baloo kactivities kdelibs4support kio exiv2 lcms2 libkdcraw
-        libkipi phonon qtimageformats qtsvg qtx11extras
-      ];
-    };
-in
-kdeWrapper {
-  inherit unwrapped;
-  targets = [ "bin/gwenview" ];
-  paths = [ kipi-plugins ];
+mkDerivation {
+  name = "gwenview";
+  meta = {
+    license = with lib.licenses; [ gpl2 fdl12 ];
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  buildInputs = [
+    baloo exiv2 kactivities kdelibs4support kio libkdcraw lcms2 libkipi phonon
+    qtimageformats qtsvg qtx11extras
+  ];
+  propagatedUserEnvPkgs = [ kipi-plugins ];
 }
diff --git a/pkgs/applications/kde/k3b.nix b/pkgs/applications/kde/k3b.nix
index d1cd33a520891..e1f1132a08f35 100644
--- a/pkgs/applications/kde/k3b.nix
+++ b/pkgs/applications/kde/k3b.nix
@@ -1,41 +1,41 @@
-{ kdeApp, lib, kdeWrapper, extra-cmake-modules
+{ mkDerivation, lib
+, extra-cmake-modules, kdoctools, makeWrapper
 , qtwebkit
-, libkcddb, kcmutils, kdoctools, kfilemetadata, knewstuff, knotifyconfig, solid, kxmlgui
+, libkcddb, kcmutils, kfilemetadata, knewstuff, knotifyconfig, solid, kxmlgui
 , flac, lame, libmad, libmpcdec, libvorbis
 , libsamplerate, libsndfile, taglib
 , cdparanoia, cdrdao, cdrtools, dvdplusrwtools, libburn, libdvdcss, libdvdread, vcdimager
 , ffmpeg, libmusicbrainz2, normalize, sox, transcode
 }:
 
-let
-  unwrapped =
-    kdeApp {
-      name = "k3b";
-      meta = with lib; {
-        license = with licenses; [ gpl2Plus ];
-        maintainers = with maintainers; [ sander phreedom ];
-        platforms = platforms.linux;
-      };
-      nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-      propagatedBuildInputs = [
-        # qt
-        qtwebkit
-        # kde
-        libkcddb kcmutils kfilemetadata knewstuff knotifyconfig solid kxmlgui
-        # formats
-        flac lame libmad libmpcdec libvorbis
-        # sound utilities
-        libsamplerate libsndfile taglib
-        # cd/dvd
-        cdparanoia libdvdcss libdvdread
-        # others
-        ffmpeg libmusicbrainz2
-      ];
-      enableParallelBuilding = true;
-    };
-
-in kdeWrapper {
-  inherit unwrapped;
-  targets = [ "bin/k3b" ];
-  paths = [ cdrdao cdrtools dvdplusrwtools libburn normalize sox transcode vcdimager ];
+mkDerivation {
+  name = "k3b";
+  meta = with lib; {
+    license = with licenses; [ gpl2Plus ];
+    maintainers = with maintainers; [ sander phreedom ];
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [ extra-cmake-modules kdoctools makeWrapper ];
+  propagatedBuildInputs = [
+    # qt
+    qtwebkit
+    # kde
+    libkcddb kcmutils kfilemetadata knewstuff knotifyconfig solid kxmlgui
+    # formats
+    flac lame libmad libmpcdec libvorbis
+    # sound utilities
+    libsamplerate libsndfile taglib
+    # cd/dvd
+    cdparanoia libdvdcss libdvdread
+    # others
+    ffmpeg libmusicbrainz2
+  ];
+  postFixup =
+    let k3bPath = lib.makeBinPath [
+          cdrdao cdrtools dvdplusrwtools libburn normalize sox transcode
+          vcdimager
+        ];
+    in ''
+      wrapProgram "$out/bin/k3b" --prefix PATH : "${k3bPath}"
+    '';
 }
diff --git a/pkgs/applications/kde/kate.nix b/pkgs/applications/kde/kate.nix
index cd320afd8d3bc..e6b4f6b6bdd43 100644
--- a/pkgs/applications/kde/kate.nix
+++ b/pkgs/applications/kde/kate.nix
@@ -1,5 +1,5 @@
 {
-  kdeApp, lib, kdeWrapper,
+  mkDerivation, lib,
   extra-cmake-modules, kdoctools,
   kactivities, kconfig, kcrash, kdbusaddons, kguiaddons, kiconthemes, ki18n,
   kinit, kio, kitemmodels, kjobwidgets, knewstuff, knotifications, konsole,
@@ -7,26 +7,19 @@
   plasma-framework, qtscript, threadweaver
 }:
 
-let
-  unwrapped =
-    kdeApp {
-      name = "kate";
-      meta = {
-        license = with lib.licenses; [ gpl3 lgpl3 lgpl2 ];
-        maintainers = [ lib.maintainers.ttuegel ];
-      };
-      nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-      propagatedBuildInputs = [
-        kactivities ki18n kio ktexteditor kwindowsystem plasma-framework
-        qtscript kconfig kcrash kguiaddons kiconthemes kinit kjobwidgets kparts
-        kxmlgui kdbusaddons kwallet kitemmodels knotifications threadweaver
-        knewstuff libgit2
-      ];
-    };
-in
-kdeWrapper
-{
-  inherit unwrapped;
-  targets = [ "bin/kate" "bin/kwrite" ];
-  paths = [ konsole.unwrapped ];
+mkDerivation {
+  name = "kate";
+  meta = {
+    license = with lib.licenses; [ gpl3 lgpl3 lgpl2 ];
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  buildInputs = [ libgit2 ];
+  propagatedBuildInputs = [
+    kactivities ki18n kio ktexteditor kwindowsystem plasma-framework
+    qtscript kconfig kcrash kguiaddons kiconthemes kinit kjobwidgets kparts
+    kxmlgui kdbusaddons kwallet kitemmodels knotifications threadweaver
+    knewstuff
+  ];
+  propagatedUserEnvPkgs = [ konsole ];
 }
diff --git a/pkgs/applications/kde/kcachegrind.nix b/pkgs/applications/kde/kcachegrind.nix
index d43de1fdc366f..a8833cfbf592a 100644
--- a/pkgs/applications/kde/kcachegrind.nix
+++ b/pkgs/applications/kde/kcachegrind.nix
@@ -1,28 +1,17 @@
 {
-  kdeApp, lib, kdeWrapper,
+  mkDerivation, lib,
   extra-cmake-modules, kdoctools,
   kio, ki18n,
   perl, python, php
 }:
 
-kdeWrapper {
-  unwrapped = kdeApp {
-    name = "kcachegrind";
-    meta = {
-      license = with lib.licenses; [ gpl2 ];
-      maintainers = with lib.maintainers; [ orivej ];
-    };
-    nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-    buildInputs = [ perl python php kio ki18n ];
-    enableParallelBuilding = true;
+mkDerivation {
+  name = "kcachegrind";
+  meta = {
+    license = with lib.licenses; [ gpl2 ];
+    maintainers = with lib.maintainers; [ orivej ];
   };
-
-  targets = [
-    "bin/kcachegrind"
-    "bin/dprof2calltree"    # perl
-    "bin/hotshot2calltree"  # python
-    "bin/memprof2calltree"  # perl
-    "bin/op2calltree"       # perl
-    "bin/pprof2calltree"    # php
-  ];
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  propagatedBuildInputs = [ kio ];
+  buildInputs = [ perl python php ki18n ];
 }
diff --git a/pkgs/applications/kde/kcalc.nix b/pkgs/applications/kde/kcalc.nix
index 8ec7591460e76..856da42c835a2 100644
--- a/pkgs/applications/kde/kcalc.nix
+++ b/pkgs/applications/kde/kcalc.nix
@@ -1,24 +1,18 @@
 {
-  kdeApp, lib, kdeWrapper,
+  mkDerivation, lib,
   extra-cmake-modules, kdoctools,
   kconfig, kconfigwidgets, kguiaddons, kinit, knotifications, gmp
 }:
 
-let
-  unwrapped =
-    kdeApp {
-      name = "kcalc";
-      meta = {
-        license = with lib.licenses; [ gpl2 ];
-        maintainers = [ lib.maintainers.fridh ];
-      };
-      nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-      propagatedBuildInputs = [
-        gmp kconfig kconfigwidgets kguiaddons kinit knotifications
-      ];
-    };
-in
-kdeWrapper {
-  inherit unwrapped;
-  targets = [ "bin/kcalc" ];
+mkDerivation {
+  name = "kcalc";
+  meta = {
+    license = with lib.licenses; [ gpl2 ];
+    maintainers = [ lib.maintainers.fridh ];
+  };
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  buildInputs = [ gmp ];
+  propagatedBuildInputs = [
+    kconfig kconfigwidgets kguiaddons kinit knotifications
+  ];
 }
diff --git a/pkgs/applications/kde/kcolorchooser.nix b/pkgs/applications/kde/kcolorchooser.nix
index c1266009b686c..186505a050c3d 100644
--- a/pkgs/applications/kde/kcolorchooser.nix
+++ b/pkgs/applications/kde/kcolorchooser.nix
@@ -1,21 +1,16 @@
 {
-  kdeApp, lib, kdeWrapper,
-  extra-cmake-modules, ki18n, kwidgetsaddons, kxmlgui
+  mkDerivation, lib,
+  extra-cmake-modules,
+  ki18n, kwidgetsaddons, kxmlgui
 }:
 
-let
-  unwrapped =
-    kdeApp {
-      name = "kcolorchooser";
-      meta = {
-        license = with lib.licenses; [ mit ];
-        maintainers = [ lib.maintainers.ttuegel ];
-      };
-      nativeBuildInputs = [ extra-cmake-modules ];
-      propagatedBuildInputs = [ ki18n kwidgetsaddons kxmlgui ];
-    };
-in
-kdeWrapper {
-  inherit unwrapped;
-  targets = [ "bin/kcolorchooser" ];
+mkDerivation {
+  name = "kcolorchooser";
+  meta = {
+    license = with lib.licenses; [ mit ];
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [ ki18n ];
+  propagatedBuildInputs = [ kwidgetsaddons kxmlgui ];
 }
diff --git a/pkgs/applications/kde/kcontacts.nix b/pkgs/applications/kde/kcontacts.nix
index 5143df60ef441..96828af9d170c 100644
--- a/pkgs/applications/kde/kcontacts.nix
+++ b/pkgs/applications/kde/kcontacts.nix
@@ -1,15 +1,15 @@
 {
-  kdeApp, lib,
-  extra-cmake-modules, ki18n,
-  kcoreaddons, kconfig, kcodecs
+  mkDerivation, lib,
+  extra-cmake-modules,
+  kcoreaddons, kconfig, kcodecs, ki18n, qtbase,
 }:
 
-kdeApp {
+mkDerivation {
   name = "kcontacts";
   meta = {
     license = [ lib.licenses.lgpl21 ];
     maintainers = [ lib.maintainers.ttuegel ];
   };
-  nativeBuildInputs = [ extra-cmake-modules ki18n ];
-  buildInputs = [ kcoreaddons kconfig kcodecs ];
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [ kcoreaddons kconfig kcodecs ki18n qtbase ];
 }
diff --git a/pkgs/applications/kde/kde-locale-4.nix b/pkgs/applications/kde/kde-locale-4.nix
index e83794c60d818..daf0a55b19e5f 100644
--- a/pkgs/applications/kde/kde-locale-4.nix
+++ b/pkgs/applications/kde/kde-locale-4.nix
@@ -1,8 +1,8 @@
 name: args:
 
-{ kdeApp, automoc4, cmake, gettext, kdelibs, perl }:
+{ mkDerivation, automoc4, cmake, gettext, kdelibs, perl }:
 
-kdeApp (args // {
+mkDerivation (args // {
   sname = "kde-l10n-${name}";
   name = "kde-l10n-${name}-qt4";
 
diff --git a/pkgs/applications/kde/kde-locale-5.nix b/pkgs/applications/kde/kde-locale-5.nix
index 772ebe37e44f1..76d601cbdc0f1 100644
--- a/pkgs/applications/kde/kde-locale-5.nix
+++ b/pkgs/applications/kde/kde-locale-5.nix
@@ -1,8 +1,8 @@
 name: args:
 
-{ kdeApp, cmake, extra-cmake-modules, gettext, kdoctools }:
+{ mkDerivation, cmake, extra-cmake-modules, gettext, kdoctools }:
 
-kdeApp (args // {
+mkDerivation (args // {
   sname = "kde-l10n-${name}";
   name = "kde-l10n-${name}-qt5";
 
diff --git a/pkgs/applications/kde/kdegraphics-mobipocket.nix b/pkgs/applications/kde/kdegraphics-mobipocket.nix
index e50c92f888488..09f761df8517a 100644
--- a/pkgs/applications/kde/kdegraphics-mobipocket.nix
+++ b/pkgs/applications/kde/kdegraphics-mobipocket.nix
@@ -1,10 +1,10 @@
 {
-  kdeApp, lib,
+  mkDerivation, lib,
   extra-cmake-modules,
   kio
 }:
 
-kdeApp {
+mkDerivation {
   name = "kdegraphics-mobipocket";
   meta = {
     license = [ lib.licenses.gpl2Plus ];
diff --git a/pkgs/applications/kde/kdegraphics-thumbnailers.nix b/pkgs/applications/kde/kdegraphics-thumbnailers.nix
index 5aa974a9c9609..3302681bd8520 100644
--- a/pkgs/applications/kde/kdegraphics-thumbnailers.nix
+++ b/pkgs/applications/kde/kdegraphics-thumbnailers.nix
@@ -1,9 +1,9 @@
 {
-  kdeApp, lib,
+  mkDerivation, lib,
   extra-cmake-modules, kio, libkexiv2, libkdcraw
 }:
 
-kdeApp {
+mkDerivation {
   name = "kdegraphics-thumbnailers";
   meta = {
     license = [ lib.licenses.lgpl21 ];
diff --git a/pkgs/applications/kde/kdelibs/default.nix b/pkgs/applications/kde/kdelibs/default.nix
index cae1b9b7e7f7e..e3abe89eaded0 100644
--- a/pkgs/applications/kde/kdelibs/default.nix
+++ b/pkgs/applications/kde/kdelibs/default.nix
@@ -1,12 +1,12 @@
 {
-  kdeApp, lib,
+  mkDerivation, lib,
   automoc4, bison, cmake, flex, libxslt, perl, pkgconfig, shared_mime_info,
   attica, attr, avahi, docbook_xml_dtd_42, docbook_xsl, giflib, ilmbase,
   libdbusmenu_qt, libjpeg, libxml2, phonon, polkit_qt4, qca2, qt4,
   shared_desktop_ontologies, soprano, strigi, udev, xz, pcre, fetchpatch
 }:
 
-kdeApp {
+mkDerivation {
   name = "kdelibs";
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/applications/kde/kdenetwork-filesharing.nix b/pkgs/applications/kde/kdenetwork-filesharing.nix
index 20f81563c3b4f..62176f3f3bbd1 100644
--- a/pkgs/applications/kde/kdenetwork-filesharing.nix
+++ b/pkgs/applications/kde/kdenetwork-filesharing.nix
@@ -1,10 +1,10 @@
 {
-  kdeApp, lib,
+  mkDerivation, lib,
   extra-cmake-modules, kdoctools,
   kcoreaddons, ki18n, kio, kwidgetsaddons, samba
 }:
 
-kdeApp {
+mkDerivation {
   name = "kdenetwork-filesharing";
   meta = {
     license = [ lib.licenses.gpl2 lib.licenses.lgpl21 ];
diff --git a/pkgs/applications/kde/kdenlive.nix b/pkgs/applications/kde/kdenlive.nix
index e543a3d84bf36..854e346e2909e 100644
--- a/pkgs/applications/kde/kdenlive.nix
+++ b/pkgs/applications/kde/kdenlive.nix
@@ -1,5 +1,4 @@
-{ kdeApp
-, kdeWrapper
+{ mkDerivation
 , lib
 , extra-cmake-modules
 , kdoctools
@@ -31,8 +30,7 @@
 , qtquickcontrols
 }:
 
-let
-unwrapped = kdeApp {
+mkDerivation {
   name = "kdenlive";
   patches = [
     ./kdenlive-cmake-concurrent-module.patch
@@ -42,13 +40,14 @@ unwrapped = kdeApp {
     kdoctools
   ];
   buildInputs = [
-    qtscript
     kconfig
     kcrash
+    kdbusaddons
+    kfilemetadata
     kguiaddons
+    ki18n
     kiconthemes
     kinit
-    kdbusaddons
     knotifications
     knewstuff
     karchive
@@ -56,30 +55,19 @@ unwrapped = kdeApp {
     kplotting
     ktextwidgets
     mlt
+    phonon-backend-gstreamer
+    qtquickcontrols
+    qtscript
     shared_mime_info
     libv4l
     ffmpeg
   ];
-  propagatedBuildInputs = [
-    kactivities
-    ki18n
-    kio
-    kio-extras
-    kwindowsystem
-    kfilemetadata
-    plasma-framework
-    phonon-backend-gstreamer
-    qtquickcontrols
-  ];
-  enableParallelBuilding = true;
+  postPatch =
+    # Module Qt5::Concurrent must be included in `find_package` before it is used.
+    ''
+      sed -i CMakeLists.txt -e '/find_package(Qt5 REQUIRED/ s|)| Concurrent)|'
+    '';
   meta = {
     license = with lib.licenses; [ gpl2Plus ];
   };
-};
-in
-kdeWrapper
-{
-  inherit unwrapped;
-  targets = [ "bin/kdenlive" ];
-  paths = [ kinit ];
 }
diff --git a/pkgs/applications/kde/kdf.nix b/pkgs/applications/kde/kdf.nix
index 97e74eb2e1257..333fea3df53ee 100644
--- a/pkgs/applications/kde/kdf.nix
+++ b/pkgs/applications/kde/kdf.nix
@@ -1,24 +1,15 @@
 {
-  kdeApp, lib, kdeWrapper,
+  mkDerivation, lib,
   extra-cmake-modules, kdoctools,
   kcmutils
 }:
 
-let
-  unwrapped =
-    kdeApp {
-      name = "kdf";
-      meta = {
-        license = with lib.licenses; [ gpl2 ];
-        maintainers = [ lib.maintainers.peterhoeg ];
-      };
-      nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-      propagatedBuildInputs = [
-        kcmutils
-      ];
-    };
-in
-kdeWrapper {
-  inherit unwrapped;
-  targets = [ "bin/kdf" ];
+mkDerivation {
+  name = "kdf";
+  meta = {
+    license = with lib.licenses; [ gpl2 ];
+    maintainers = [ lib.maintainers.peterhoeg ];
+  };
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  propagatedBuildInputs = [ kcmutils ];
 }
diff --git a/pkgs/applications/kde/kgpg.nix b/pkgs/applications/kde/kgpg.nix
index 58e9cb0d1e9b2..ca495a1ae2690 100644
--- a/pkgs/applications/kde/kgpg.nix
+++ b/pkgs/applications/kde/kgpg.nix
@@ -1,21 +1,22 @@
 {
-  kdeApp, lib, makeQtWrapper,
-  extra-cmake-modules, kdoctools, ki18n,
-  akonadi-contacts, gnupg1, gpgme, karchive, kcodecs, kcontacts, kcoreaddons, kcrash,
-  kdbusaddons, kiconthemes, kjobwidgets, kio, knotifications, kservice,
+  mkDerivation, lib,
+  extra-cmake-modules, kdoctools, ki18n, makeWrapper,
+  akonadi-contacts, gnupg1, gpgme, karchive, kcodecs, kcontacts, kcoreaddons,
+  kcrash, kdbusaddons, kiconthemes, kjobwidgets, kio, knotifications, kservice,
   ktextwidgets, kxmlgui, kwidgetsaddons, kwindowsystem
 }:
 
-kdeApp {
+mkDerivation {
   name = "kgpg";
-  nativeBuildInputs = [ extra-cmake-modules kdoctools ki18n ];
-  buildInputs = [
-    akonadi-contacts gnupg1 gpgme karchive kcodecs kcontacts kcoreaddons kcrash kdbusaddons
+  nativeBuildInputs = [ extra-cmake-modules kdoctools makeWrapper ];
+  buildInputs = [ gnupg1 gpgme ki18n ];
+  propagatedBuildInputs = [
+    akonadi-contacts karchive kcodecs kcontacts kcoreaddons kcrash kdbusaddons
     kiconthemes kjobwidgets kio knotifications kservice ktextwidgets kxmlgui
-    kwidgetsaddons kwindowsystem makeQtWrapper
+    kwidgetsaddons kwindowsystem
   ];
-  postInstall = ''
-    wrapQtProgram $out/bin/kgpg --suffix PATH : ${lib.makeBinPath [ gnupg1 ]}
+  postFixup = ''
+    wrapProgram "$out/bin/kgpg" --prefix PATH : "${lib.makeBinPath [ gnupg1 ]}"
   '';
   meta = {
     license = [ lib.licenses.gpl2 ];
diff --git a/pkgs/applications/kde/khelpcenter.nix b/pkgs/applications/kde/khelpcenter.nix
index 0579faa72a018..db68cec976e3e 100644
--- a/pkgs/applications/kde/khelpcenter.nix
+++ b/pkgs/applications/kde/khelpcenter.nix
@@ -1,22 +1,16 @@
 {
-  kdeApp, kdeWrapper,
+  mkDerivation,
   extra-cmake-modules, kdoctools,
   grantlee, kconfig, kcoreaddons, kdbusaddons, ki18n, kinit, kcmutils,
   kdelibs4support, khtml, kservice, xapian
 }:
 
-let
-  unwrapped =
-    kdeApp {
-      name = "khelpcenter";
-      nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-      buildInputs = [
-        grantlee kdelibs4support khtml ki18n kconfig kcoreaddons kdbusaddons
-        kinit kcmutils kservice xapian
-      ];
-    };
-in
-kdeWrapper {
-  inherit unwrapped;
-  targets = [ "bin/khelpcenter" ];
+mkDerivation {
+  name = "khelpcenter";
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  buildInputs = [ ki18n xapian ];
+  propagatedBuildInputs = [
+    grantlee kdelibs4support khtml kconfig kcoreaddons kdbusaddons
+    kinit kcmutils kservice
+  ];
 }
diff --git a/pkgs/applications/kde/kig.nix b/pkgs/applications/kde/kig.nix
index 9f38079316fae..f2a1d275f6e5d 100644
--- a/pkgs/applications/kde/kig.nix
+++ b/pkgs/applications/kde/kig.nix
@@ -1,26 +1,19 @@
 {
-  kdeApp, lib, kdeWrapper
-  , extra-cmake-modules, kdoctools, kparts
-  , qtsvg, qtxmlpatterns, ktexteditor, boost
+  mkDerivation, lib,
+  extra-cmake-modules, kdoctools,
+  kparts, qtsvg, qtxmlpatterns, ktexteditor, boost
 }:
 
-let
-  unwrapped =
-    kdeApp {
-      name = "kig";
-      meta = {
-        license = with lib.licenses; [ gpl2 ];
-        maintainers = with lib.maintainers; [ raskin ];
-      };
-      nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-      buildInputs = [
-        kparts qtsvg qtxmlpatterns ktexteditor boost
-      ];
-    };
-in
-kdeWrapper {
-  inherit unwrapped;
-  targets = [ "bin/kig" ];
+mkDerivation {
+  name = "kig";
+  meta = {
+    license = with lib.licenses; [ gpl2 ];
+    maintainers = with lib.maintainers; [ raskin ];
+  };
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  buildInputs = [ boost ];
+  propagatedBuildInputs = [
+    kparts qtsvg qtxmlpatterns ktexteditor
+  ];
 }
 
-
diff --git a/pkgs/applications/kde/kio-extras.nix b/pkgs/applications/kde/kio-extras.nix
index 77f795167fc0b..50709a7ddef7a 100644
--- a/pkgs/applications/kde/kio-extras.nix
+++ b/pkgs/applications/kde/kio-extras.nix
@@ -1,12 +1,12 @@
 {
-  kdeApp, lib, extra-cmake-modules, kdoctools, shared_mime_info,
+  mkDerivation, lib, extra-cmake-modules, kdoctools, shared_mime_info,
   exiv2, kactivities, karchive, kbookmarks, kconfig, kconfigwidgets,
   kcoreaddons, kdbusaddons, kguiaddons, kdnssd, kiconthemes, ki18n, kio, khtml,
   kdelibs4support, kpty, libmtp, libssh, openexr, ilmbase, openslp, phonon,
   qtsvg, samba, solid
 }:
 
-kdeApp {
+mkDerivation {
   name = "kio-extras";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 ];
diff --git a/pkgs/applications/kde/kmime.nix b/pkgs/applications/kde/kmime.nix
index c17b3fdcd8e99..b14e0abcc3f12 100644
--- a/pkgs/applications/kde/kmime.nix
+++ b/pkgs/applications/kde/kmime.nix
@@ -1,15 +1,15 @@
 {
-  kdeApp, lib,
+  mkDerivation, lib,
   extra-cmake-modules, ki18n,
-  kcodecs
+  kcodecs, qtbase,
 }:
 
-kdeApp {
+mkDerivation {
   name = "kmime";
   meta = {
     license = [ lib.licenses.lgpl21 ];
     maintainers = [ lib.maintainers.ttuegel ];
   };
   nativeBuildInputs = [ extra-cmake-modules ki18n ];
-  buildInputs = [ kcodecs ];
+  buildInputs = [ kcodecs qtbase ];
 }
diff --git a/pkgs/applications/kde/kmix.nix b/pkgs/applications/kde/kmix.nix
index 6ab653cfce06e..058fd8178c4ac 100644
--- a/pkgs/applications/kde/kmix.nix
+++ b/pkgs/applications/kde/kmix.nix
@@ -1,30 +1,23 @@
 {
-  kdeApp, lib, kdeWrapper,
+  mkDerivation, lib,
   extra-cmake-modules, kdoctools,
   kglobalaccel, kxmlgui, kcoreaddons, kdelibs4support,
   plasma-framework, libpulseaudio, alsaLib, libcanberra_kde
 }:
 
-let
-  unwrapped =
-    kdeApp {
-      name = "kmix";
-      meta = {
-        license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
-        maintainers = [ lib.maintainers.rongcuid ];
-      };
-      nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-      buildInputs = [ libpulseaudio alsaLib libcanberra_kde ];
-      propagatedBuildInputs = [
-        kglobalaccel kxmlgui kcoreaddons kdelibs4support
-        plasma-framework
-      ];
-      cmakeFlags = [
-        "-DKMIX_KF5_BUILD=1"
-      ];
-    };
-in
-kdeWrapper {
-  inherit unwrapped;
-  targets = [ "bin/kmix" ];
+mkDerivation {
+  name = "kmix";
+  meta = {
+    license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+    maintainers = [ lib.maintainers.rongcuid ];
+  };
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  buildInputs = [ libpulseaudio alsaLib libcanberra_kde ];
+  propagatedBuildInputs = [
+    kglobalaccel kxmlgui kcoreaddons kdelibs4support
+    plasma-framework
+  ];
+  cmakeFlags = [
+    "-DKMIX_KF5_BUILD=1"
+  ];
 }
diff --git a/pkgs/applications/kde/kolourpaint.nix b/pkgs/applications/kde/kolourpaint.nix
index 75d5b6fca6592..db4cb75cc35c7 100644
--- a/pkgs/applications/kde/kolourpaint.nix
+++ b/pkgs/applications/kde/kolourpaint.nix
@@ -1,28 +1,17 @@
 { lib
-, kdeApp
-, kdeWrapper
+, mkDerivation
 , extra-cmake-modules
 , kdoctools
 , kdelibs4support
 , libkexiv2
 }:
 
-let
-  unwrapped =
-    kdeApp {
-      name = "kolourpaint";
-      nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-      propagatedBuildInputs = [
-        kdelibs4support
-        libkexiv2
-      ];
-
-      meta = {
-        maintainers = [ lib.maintainers.fridh ];
-        license = with lib.licenses; [ gpl2 ];
-      };
-    };
-in kdeWrapper {
-  inherit unwrapped;
-  targets = ["bin/kolourpaint"];
-}
\ No newline at end of file
+mkDerivation {
+  name = "kolourpaint";
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  propagatedBuildInputs = [ kdelibs4support libkexiv2 ];
+  meta = {
+    maintainers = [ lib.maintainers.fridh ];
+    license = with lib.licenses; [ gpl2 ];
+  };
+}
diff --git a/pkgs/applications/kde/kompare.nix b/pkgs/applications/kde/kompare.nix
index 660090dc84aef..cf2fa2e6a10f7 100644
--- a/pkgs/applications/kde/kompare.nix
+++ b/pkgs/applications/kde/kompare.nix
@@ -1,21 +1,14 @@
 {
-  kdeApp, lib, kdeWrapper,
+  mkDerivation, lib,
   extra-cmake-modules, kdoctools,
   kparts, ktexteditor, kwidgetsaddons, libkomparediff2
 }:
 
-let
-  unwrapped =
-    kdeApp {
-      name = "kompare";
-      meta = { license = with lib.licenses; [ gpl2 ]; };
-      nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-      propagatedBuildInputs = [
-        kparts ktexteditor kwidgetsaddons libkomparediff2
-      ];
-    };
-in
-kdeWrapper {
-  inherit unwrapped;
-  targets = [ "bin/kompare" ];
+mkDerivation {
+  name = "kompare";
+  meta = { license = with lib.licenses; [ gpl2 ]; };
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  propagatedBuildInputs = [
+    kparts ktexteditor kwidgetsaddons libkomparediff2
+  ];
 }
diff --git a/pkgs/applications/kde/konsole.nix b/pkgs/applications/kde/konsole.nix
index 15b6373bdb023..bd026c6f03950 100644
--- a/pkgs/applications/kde/konsole.nix
+++ b/pkgs/applications/kde/konsole.nix
@@ -1,5 +1,5 @@
 {
-  kdeApp, lib, kdeWrapper,
+  mkDerivation, lib,
   extra-cmake-modules, kdoctools,
   kbookmarks, kcompletion, kconfig, kconfigwidgets, kcoreaddons, kguiaddons,
   ki18n, kiconthemes, kinit, kdelibs4support, kio, knotifications,
@@ -7,24 +7,17 @@
   kwindowsystem, kxmlgui, qtscript
 }:
 
-let
-  unwrapped =
-    kdeApp {
-      name = "konsole";
-      meta = {
-        license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
-        maintainers = [ lib.maintainers.ttuegel ];
-      };
-      nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-      propagatedBuildInputs = [
-        kdelibs4support ki18n kwindowsystem qtscript kbookmarks kcompletion
-        kconfig kconfigwidgets kcoreaddons kguiaddons kiconthemes kinit kio
-        knotifications knotifyconfig kparts kpty kservice ktextwidgets
-        kwidgetsaddons kxmlgui
-      ];
-    };
-in
-kdeWrapper {
-  inherit unwrapped;
-  targets = [ "bin/konsole" ];
+mkDerivation {
+  name = "konsole";
+  meta = {
+    license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  buildInputs = [ ki18n ];
+  propagatedBuildInputs = [
+    kbookmarks kcompletion kconfig kconfigwidgets kcoreaddons kdelibs4support
+    kguiaddons kiconthemes kinit kio knotifications knotifyconfig kparts kpty
+    kservice ktextwidgets kwidgetsaddons kwindowsystem kxmlgui qtscript
+  ];
 }
diff --git a/pkgs/applications/kde/krfb.nix b/pkgs/applications/kde/krfb.nix
index ef5530be6fa66..0f4aecb83d412 100644
--- a/pkgs/applications/kde/krfb.nix
+++ b/pkgs/applications/kde/krfb.nix
@@ -1,22 +1,16 @@
 {
-  kdeApp, lib, kdeWrapper,
+  mkDerivation, lib,
   extra-cmake-modules, kdoctools,
   kdelibs4support, kdnssd, libvncserver, libXtst
 }:
 
-let
-  unwrapped =
-    kdeApp {
-      name = "krfb";
-      meta = {
-        license = with lib.licenses; [ gpl2 fdl12 ];
-        maintainers = with lib.maintainers; [ jerith666 ];
-      };
-      nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-      propagatedBuildInputs = [ kdelibs4support kdnssd libvncserver libXtst ];
-    };
-in
-kdeWrapper {
-  inherit unwrapped;
-  targets = [ "bin/krfb" ];
+mkDerivation {
+  name = "krfb";
+  meta = {
+    license = with lib.licenses; [ gpl2 fdl12 ];
+    maintainers = with lib.maintainers; [ jerith666 ];
+  };
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  buildInputs = [ libvncserver libXtst ];
+  propagatedBuildInputs = [ kdelibs4support kdnssd ];
 }
diff --git a/pkgs/applications/kde/kwalletmanager.nix b/pkgs/applications/kde/kwalletmanager.nix
index afa870d90a544..e39e7e5157d2a 100644
--- a/pkgs/applications/kde/kwalletmanager.nix
+++ b/pkgs/applications/kde/kwalletmanager.nix
@@ -1,6 +1,5 @@
 { lib
-, kdeApp
-, kdeWrapper
+, mkDerivation
 , extra-cmake-modules
 , kdoctools
 , kauth
@@ -9,28 +8,19 @@
 , kcoreaddons
 , kdbusaddons
 , kdelibs4support
+, kwallet
 , kxmlgui
 }:
 
-let
-  unwrapped = kdeApp {
-    name = "kwalletmanager";
-    meta = {
-      license = with lib.licenses; [ gpl2 ];
-      maintainers = with lib.maintainers; [ fridh ];
-    };
-    nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-    propagatedBuildInputs = [
-      kauth
-      kcmutils
-      kconfigwidgets
-      kcoreaddons
-      kdbusaddons
-      kdelibs4support
-      kxmlgui
-    ];
+mkDerivation {
+  name = "kwalletmanager";
+  meta = {
+    license = with lib.licenses; [ gpl2 ];
+    maintainers = with lib.maintainers; [ fridh ];
   };
-in kdeWrapper {
-  inherit unwrapped;
-  targets = ["bin/kwalletmanager5"];
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  buildInputs = [
+    kauth kcmutils kconfigwidgets kcoreaddons kdbusaddons kdelibs4support
+    kwallet kxmlgui
+  ];
 }
diff --git a/pkgs/applications/kde/libkcddb.nix b/pkgs/applications/kde/libkcddb.nix
index 3d05714e8248b..edd9732d051bc 100644
--- a/pkgs/applications/kde/libkcddb.nix
+++ b/pkgs/applications/kde/libkcddb.nix
@@ -1,8 +1,8 @@
-{ kdeApp, lib, extra-cmake-modules, qtbase, kdoctools
+{ mkDerivation, lib, extra-cmake-modules, qtbase, kdoctools
 , kcodecs, ki18n, kio, kwidgetsaddons
 , libmusicbrainz5 }:
 
-kdeApp {
+mkDerivation {
   name = "libkcddb";
   meta = with lib; {
     license = with licenses; [ gpl2 lgpl21 bsd3 ];
@@ -14,5 +14,4 @@ kdeApp {
     kcodecs ki18n kio kwidgetsaddons
     libmusicbrainz5
   ];
-  enableParallelBuilding = true;
 }
diff --git a/pkgs/applications/kde/libkdcraw.nix b/pkgs/applications/kde/libkdcraw.nix
index 179e9f414dc32..383bd3b67037a 100644
--- a/pkgs/applications/kde/libkdcraw.nix
+++ b/pkgs/applications/kde/libkdcraw.nix
@@ -1,6 +1,6 @@
-{ kdeApp, lib, extra-cmake-modules, libraw, qtbase }:
+{ mkDerivation, lib, extra-cmake-modules, libraw, qtbase }:
 
-kdeApp {
+mkDerivation {
   name = "libkdcraw";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 bsd3 ];
diff --git a/pkgs/applications/kde/libkexiv2.nix b/pkgs/applications/kde/libkexiv2.nix
index 0991c5df5ab49..816d4168967c7 100644
--- a/pkgs/applications/kde/libkexiv2.nix
+++ b/pkgs/applications/kde/libkexiv2.nix
@@ -1,6 +1,6 @@
-{ kdeApp, lib, exiv2, extra-cmake-modules, qtbase }:
+{ mkDerivation, lib, exiv2, extra-cmake-modules, qtbase }:
 
-kdeApp {
+mkDerivation {
   name = "libkexiv2";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 bsd3 ];
diff --git a/pkgs/applications/kde/libkipi.nix b/pkgs/applications/kde/libkipi.nix
index 32eeb171ff891..3a28d8c2e8c3e 100644
--- a/pkgs/applications/kde/libkipi.nix
+++ b/pkgs/applications/kde/libkipi.nix
@@ -1,6 +1,6 @@
-{ kdeApp, lib, extra-cmake-modules, kconfig, ki18n, kservice, kxmlgui }:
+{ mkDerivation, lib, extra-cmake-modules, kconfig, ki18n, kservice, kxmlgui }:
 
-kdeApp {
+mkDerivation {
   name = "libkipi";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 bsd3 ];
diff --git a/pkgs/applications/kde/libkomparediff2.nix b/pkgs/applications/kde/libkomparediff2.nix
index aacc89a0efe3e..52aa2b10e2414 100644
--- a/pkgs/applications/kde/libkomparediff2.nix
+++ b/pkgs/applications/kde/libkomparediff2.nix
@@ -1,6 +1,6 @@
-{ kdeApp, lib, extra-cmake-modules, ki18n, kxmlgui, kcodecs, kio }:
+{ mkDerivation, lib, extra-cmake-modules, ki18n, kxmlgui, kcodecs, kio }:
 
-kdeApp {
+mkDerivation {
   name = "libkomparediff2";
   nativeBuildInputs = [ extra-cmake-modules ];
   propagatedBuildInputs = [ kcodecs ki18n kxmlgui kio ];
diff --git a/pkgs/applications/kde/marble.nix b/pkgs/applications/kde/marble.nix
index 5322c66b01d18..1217c29032b40 100644
--- a/pkgs/applications/kde/marble.nix
+++ b/pkgs/applications/kde/marble.nix
@@ -1,28 +1,16 @@
-{ kdeApp, lib, kdeWrapper
+{ mkDerivation, lib
 , extra-cmake-modules, kdoctools
 , qtscript, qtsvg, qtquickcontrols, qtwebkit
 , krunner, shared_mime_info, kparts, knewstuff
 , gpsd, perl
 }:
 
-let
-  unwrapped =
-    kdeApp {
-      name = "marble";
-      meta.license = with lib.licenses; [ lgpl21 gpl3 ];
-
-      nativeBuildInputs = [ extra-cmake-modules kdoctools perl ];
-      propagatedBuildInputs = [
-        qtscript qtsvg qtquickcontrols qtwebkit shared_mime_info
-        krunner kparts knewstuff
-        gpsd
-      ];
-
-      enableParallelBuilding = true;
-    };
-in
-kdeWrapper {
-  inherit unwrapped;
-  targets = [ "bin/marble-qt" "bin/marble" ];
-  paths = [ unwrapped ];
+mkDerivation {
+  name = "marble";
+  meta.license = with lib.licenses; [ lgpl21 gpl3 ];
+  nativeBuildInputs = [ extra-cmake-modules kdoctools perl ];
+  propagatedBuildInputs = [
+    qtscript qtsvg qtquickcontrols qtwebkit shared_mime_info krunner kparts
+    knewstuff gpsd
+  ];
 }
diff --git a/pkgs/applications/kde/okteta.nix b/pkgs/applications/kde/okteta.nix
index 59520e285327f..deeffa3207b8b 100644
--- a/pkgs/applications/kde/okteta.nix
+++ b/pkgs/applications/kde/okteta.nix
@@ -1,26 +1,18 @@
 {
-  kdeApp, lib, kdeWrapper,
+  mkDerivation, lib,
   extra-cmake-modules, kdoctools,
   kconfig, kinit,
   kcmutils, kconfigwidgets, knewstuff, kparts, qca-qt5
 }:
 
-let
-  unwrapped =
-    kdeApp {
-      name = "okteta";
-      meta = {
-        license = with lib.licenses; [ gpl2 ];
-        maintainers = with lib.maintainers; [ peterhoeg ];
-      };
-      nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-      propagatedBuildInputs = [
-        kconfig kinit
-        kcmutils kconfigwidgets knewstuff kparts qca-qt5
-      ];
-    };
-
-in kdeWrapper {
-  inherit unwrapped;
-  targets = [ "bin/okteta" ];
+mkDerivation {
+  name = "okteta";
+  meta = {
+    license = with lib.licenses; [ gpl2 ];
+    maintainers = with lib.maintainers; [ peterhoeg ];
+  };
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  propagatedBuildInputs = [
+    kconfig kinit kcmutils kconfigwidgets knewstuff kparts qca-qt5
+  ];
 }
diff --git a/pkgs/applications/kde/okular.nix b/pkgs/applications/kde/okular.nix
index f5b3e38ca7c73..99b69f45e1eb1 100644
--- a/pkgs/applications/kde/okular.nix
+++ b/pkgs/applications/kde/okular.nix
@@ -1,31 +1,25 @@
 {
-  kdeApp, lib, kdeWrapper,
+  mkDerivation, lib,
   extra-cmake-modules, kdoctools,
   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
 }:
 
-let
-  unwrapped = kdeApp {
-    name = "okular";
-    nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-    propagatedBuildInputs = [
-      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
-    ];
-    meta = {
-      platforms = lib.platforms.linux;
-      homepage = "http://www.kde.org";
-      license = with lib.licenses; [ gpl2 lgpl21 fdl12 bsd3 ];
-      maintainers = [ lib.maintainers.ttuegel ];
-    };
+mkDerivation {
+  name = "okular";
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  buildInputs = [
+    djvulibre ebook_tools kactivities karchive kbookmarks kcompletion kconfig kconfigwidgets
+    kcoreaddons kdbusaddons kdegraphics-mobipocket kiconthemes kjs khtml kio
+    kparts kpty kwallet kwindowsystem libkexiv2 libspectre phonon poppler
+    qca-qt5 qtdeclarative qtsvg threadweaver
+  ];
+  meta = {
+    platforms = lib.platforms.linux;
+    homepage = "http://www.kde.org";
+    license = with lib.licenses; [ gpl2 lgpl21 fdl12 bsd3 ];
+    maintainers = [ lib.maintainers.ttuegel ];
   };
-in
-kdeWrapper {
-  inherit unwrapped;
-  targets = [ "bin/okular" ];
 }
diff --git a/pkgs/applications/kde/print-manager.nix b/pkgs/applications/kde/print-manager.nix
index 0a3d311eb27ab..085b53de0f393 100644
--- a/pkgs/applications/kde/print-manager.nix
+++ b/pkgs/applications/kde/print-manager.nix
@@ -1,20 +1,22 @@
 {
-  kdeApp, lib, extra-cmake-modules,
-  cups, kconfig, kconfigwidgets, kdbusaddons, kiconthemes, ki18n, kcmutils, kio,
+  mkDerivation, lib,
+  extra-cmake-modules,
+  cups, ki18n,
+  kconfig, kconfigwidgets, kdbusaddons, kiconthemes, kcmutils, kio,
   knotifications, kwidgetsaddons, kwindowsystem, kitemviews, plasma-framework,
   qtdeclarative
 }:
 
-kdeApp {
+mkDerivation {
   name = "print-manager";
   meta = {
     license = [ lib.licenses.gpl2 ];
     maintainers = [ lib.maintainers.ttuegel ];
   };
   nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [ cups ki18n ];
   propagatedBuildInputs = [
-    cups kconfig kconfigwidgets kdbusaddons kiconthemes kcmutils knotifications
-    kwidgetsaddons kitemviews ki18n kio kwindowsystem plasma-framework
-    qtdeclarative
+    kconfig kconfigwidgets kdbusaddons kiconthemes kcmutils knotifications
+    kwidgetsaddons kitemviews kio kwindowsystem plasma-framework qtdeclarative
   ];
 }
diff --git a/pkgs/applications/kde/spectacle.nix b/pkgs/applications/kde/spectacle.nix
index 30abfc23e834f..db1bf2aee6593 100644
--- a/pkgs/applications/kde/spectacle.nix
+++ b/pkgs/applications/kde/spectacle.nix
@@ -1,25 +1,20 @@
 {
-  kdeApp, lib, kdeWrapper,
+  mkDerivation, lib,
   extra-cmake-modules, kdoctools,
-  kconfig, kcoreaddons, kdbusaddons, kdeclarative, ki18n, kio, kipi-plugins,
+  ki18n, xcb-util-cursor,
+  kconfig, kcoreaddons, kdbusaddons, kdeclarative, kio, kipi-plugins,
   knotifications, kscreen, kwidgetsaddons, kwindowsystem, kxmlgui, libkipi,
-  xcb-util-cursor
+  qtx11extras
 }:
 
-let
-  unwrapped =
-    kdeApp {
-      name = "spectacle";
-      meta = with lib; { maintainers = with maintainers; [ ttuegel ]; };
-      nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-      propagatedBuildInputs = [
-        kconfig kcoreaddons kdbusaddons kdeclarative ki18n kio knotifications
-        kscreen kwidgetsaddons kwindowsystem kxmlgui libkipi xcb-util-cursor
-      ];
-    };
-in
-kdeWrapper {
-  inherit unwrapped;
-  targets = [ "bin/spectacle" ];
-  paths = [ kipi-plugins ];
+mkDerivation {
+  name = "spectacle";
+  meta = with lib; { maintainers = with maintainers; [ ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  buildInputs = [ ki18n xcb-util-cursor ];
+  propagatedBuildInputs = [
+    kconfig kcoreaddons kdbusaddons kdeclarative kio knotifications
+    kscreen kwidgetsaddons kwindowsystem kxmlgui libkipi qtx11extras
+  ];
+  propagatedUserEnvPkgs = [ kipi-plugins ];
 }
diff --git a/pkgs/applications/misc/albert/default.nix b/pkgs/applications/misc/albert/default.nix
index f3c011e333354..854408e6e3e67 100644
--- a/pkgs/applications/misc/albert/default.nix
+++ b/pkgs/applications/misc/albert/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchFromGitHub, qtbase, qtsvg, qtx11extras, makeQtWrapper, muparser, cmake }:
+{ mkDerivation, lib, fetchFromGitHub, qtbase, qtsvg, qtx11extras, muparser, cmake }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   name    = "albert-${version}";
   version = "0.11.3";
 
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "0ddz6h1334b9kqy1lfi7qa21znm3l0b9h0d4s62llxdasv103jh5";
   };
 
-  nativeBuildInputs = [ cmake makeQtWrapper ];
+  nativeBuildInputs = [ cmake ];
 
   buildInputs = [ qtbase qtsvg qtx11extras muparser ];
 
@@ -31,11 +31,7 @@ stdenv.mkDerivation rec {
     rm "$out/lib"
   '';
 
-  fixupPhase = ''
-    wrapQtProgram $out/bin/albert
-  '';
-
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage    = https://albertlauncher.github.io/;
     description = "Desktop agnostic launcher";
     license     = licenses.gpl3Plus;
diff --git a/pkgs/applications/misc/calibre/default.nix b/pkgs/applications/misc/calibre/default.nix
index 49c005cf739d5..5845fe85ccb50 100644
--- a/pkgs/applications/misc/calibre/default.nix
+++ b/pkgs/applications/misc/calibre/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, fetchpatch, poppler_utils, pkgconfig, libpng
-, imagemagick, libjpeg, fontconfig, podofo, qtbase, qmakeHook, icu, sqlite
+, imagemagick, libjpeg, fontconfig, podofo, qtbase, qmake, icu, sqlite
 , makeWrapper, unrarSupport ? false, chmlib, python2Packages, xz, libusb1, libmtp
 , xdg_utils, makeDesktopItem, wrapGAppsHook
 }:
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  nativeBuildInputs = [ makeWrapper pkgconfig qmakeHook ];
+  nativeBuildInputs = [ makeWrapper pkgconfig qmake ];
 
   buildInputs = [
     poppler_utils libpng imagemagick libjpeg
diff --git a/pkgs/applications/misc/cool-retro-term/default.nix b/pkgs/applications/misc/cool-retro-term/default.nix
index 9ff27c7470918..48e08be54748e 100644
--- a/pkgs/applications/misc/cool-retro-term/default.nix
+++ b/pkgs/applications/misc/cool-retro-term/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchgit, makeQtWrapper, qtbase, qtquick1, qmltermwidget,
-qtquickcontrols, qtgraphicaleffects, qmakeHook }:
+{ stdenv, fetchgit, qtbase, qtquick1, qmltermwidget,
+qtquickcontrols, qtgraphicaleffects, qmake }:
 
 stdenv.mkDerivation rec {
   version = "1.0.0";
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   '';
 
   buildInputs = [ qtbase qtquick1 qmltermwidget qtquickcontrols qtgraphicaleffects ];
-  nativeBuildInputs = [ makeQtWrapper qmakeHook ];
+  nativeBuildInputs = [ qmake ];
 
   installFlags = [ "INSTALL_ROOT=$(out)" ];
 
@@ -25,8 +25,6 @@ stdenv.mkDerivation rec {
     mv $out/usr/share $out/share
     mv $out/usr/bin $out/bin
     rmdir $out/usr
-
-    wrapQtProgram $out/bin/cool-retro-term
   '';
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/misc/cura/default.nix b/pkgs/applications/misc/cura/default.nix
index ff18796e39d60..e33edfb0a4406 100644
--- a/pkgs/applications/misc/cura/default.nix
+++ b/pkgs/applications/misc/cura/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, lib, fetchFromGitHub, cmake, python3, qtbase, makeQtWrapper, curaengine }:
+{ mkDerivation, lib, fetchFromGitHub, cmake, python3, qtbase, curaengine }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   name = "cura-${version}";
   version = "2.4.0";
 
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ qtbase ];
   propagatedBuildInputs = with python3.pkgs; [ uranium zeroconf pyserial ];
-  nativeBuildInputs = [ cmake python3.pkgs.wrapPython makeQtWrapper ];
+  nativeBuildInputs = [ cmake python3.pkgs.wrapPython ];
 
   cmakeFlags = [ "-DCMAKE_MODULE_PATH=${python3.pkgs.uranium}/share/cmake-${cmake.majorVersion}/Modules" ];
 
@@ -24,11 +24,9 @@ stdenv.mkDerivation rec {
 
   postFixup = ''
     wrapPythonPrograms
-    mv $out/bin/cura $out/bin/.cura-noqtpath
-    makeQtWrapper $out/bin/.cura-noqtpath $out/bin/cura
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "3D printer / slicing GUI built on top of the Uranium framework";
     homepage = "https://github.com/Ultimaker/Cura";
     license = licenses.agpl3;
diff --git a/pkgs/applications/misc/golden-cheetah/default.nix b/pkgs/applications/misc/golden-cheetah/default.nix
index d6da900656cc2..358d9dff44a6b 100644
--- a/pkgs/applications/misc/golden-cheetah/default.nix
+++ b/pkgs/applications/misc/golden-cheetah/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl
 , qtbase, qtsvg, qtserialport, qtwebkit, qtmultimedia, qttools, qtconnectivity
-, yacc, flex, zlib, config, qmakeHook, makeQtWrapper
+, yacc, flex, zlib, config, qmake, makeWrapper
 }:
 stdenv.mkDerivation rec {
   name = "golden-cheetah-${version}";
@@ -10,11 +10,11 @@ stdenv.mkDerivation rec {
     url = "https://github.com/GoldenCheetah/GoldenCheetah/archive/V${version}.tar.gz";
     sha256 = "0fiz2pj155cd357kph50lc6rjyzwp045glfv4y68qls9j7m9ayaf";
   };
-  qtInputs = [
-    qtbase qtsvg qtserialport qtwebkit qtmultimedia qttools yacc flex zlib
+  buildInputs = [
+    qtbase qtsvg qtserialport qtwebkit qtmultimedia qttools zlib
     qtconnectivity
   ];
-  nativeBuildInputs = [ makeQtWrapper qmakeHook ] ++ qtInputs;
+  nativeBuildInputs = [ flex makeWrapper qmake yacc ];
   preConfigure = ''
     cp src/gcconfig.pri.in src/gcconfig.pri
     cp qwt/qwtconfig.pri.in qwt/qwtconfig.pri
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
 
     mkdir -p $out/bin
     cp src/GoldenCheetah $out/bin
-    wrapQtProgram $out/bin/GoldenCheetah --set LD_LIBRARY_PATH "${zlib.out}/lib"
+    wrapProgram $out/bin/GoldenCheetah --set LD_LIBRARY_PATH "${zlib.out}/lib"
 
     runHook postInstall
   '';
diff --git a/pkgs/applications/misc/goldendict/default.nix b/pkgs/applications/misc/goldendict/default.nix
index be36eeceb6b69..278c685b7cf7b 100644
--- a/pkgs/applications/misc/goldendict/default.nix
+++ b/pkgs/applications/misc/goldendict/default.nix
@@ -1,7 +1,8 @@
 { stdenv, fetchurl, pkgconfig, libXtst, libvorbis, hunspell
 , libao, ffmpeg, libeb, lzo, xz, libtiff
-, qtbase, qtsvg, qtwebkit, qtx11extras, qttools, qmakeHook }:
+, qtbase, qtsvg, qtwebkit, qtx11extras, qttools, qmake }:
 stdenv.mkDerivation rec {
+
   name = "goldendict-1.5.0.rc2";
   src = fetchurl {
     url = "https://github.com/goldendict/goldendict/archive/1.5.0-RC2.tar.gz";
@@ -9,10 +10,12 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [
-    pkgconfig qtbase qtsvg qtwebkit qtx11extras qttools libXtst libvorbis hunspell libao ffmpeg libeb
-    lzo xz libtiff qmakeHook
+    pkgconfig qtbase qtsvg qtwebkit qtx11extras qttools
+    libXtst libvorbis hunspell libao ffmpeg libeb lzo xz libtiff
   ];
 
+  nativeBuildInputs = [ qmake ];
+
   qmakeFlags = [ "CONFIG+=zim_support" ];
 
   meta = {
diff --git a/pkgs/applications/misc/gpxsee/default.nix b/pkgs/applications/misc/gpxsee/default.nix
index 42fc1e46e33fe..16147715705e3 100644
--- a/pkgs/applications/misc/gpxsee/default.nix
+++ b/pkgs/applications/misc/gpxsee/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, qmakeHook, qtbase, qttools, makeQtWrapper }:
+{ stdenv, fetchFromGitHub, qmake, qtbase, qttools }:
 
 stdenv.mkDerivation rec {
   name = "gpxsee-${version}";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "17s1v6b1j7pi0yj554bd0cg14bl854gssp5gj2pl51rxji6zr0wp";
   };
 
-  nativeBuildInputs = [ qmakeHook qttools makeQtWrapper ];
+  nativeBuildInputs = [ qmake qttools ];
 
   preConfigure = ''
     substituteInPlace src/config.h --replace /usr/share/gpxsee $out/share/gpxsee
@@ -20,7 +20,6 @@ stdenv.mkDerivation rec {
 
   preFixup = ''
     install -Dm755 GPXSee $out/bin/GPXSee
-    wrapQtProgram $out/bin/GPXSee
 
     mkdir -p $out/share/gpxsee
     cp pkg/maps.txt $out/share/gpxsee
diff --git a/pkgs/applications/misc/kdeconnect/default.nix b/pkgs/applications/misc/kdeconnect/default.nix
index 22c9cfc7e986a..743a20b6bfc57 100644
--- a/pkgs/applications/misc/kdeconnect/default.nix
+++ b/pkgs/applications/misc/kdeconnect/default.nix
@@ -2,7 +2,6 @@
 , lib
 , fetchurl
 , extra-cmake-modules
-, makeQtWrapper
 , kcmutils
 , kconfigwidgets
 , kdbusaddons
@@ -35,14 +34,7 @@ stdenv.mkDerivation rec {
     libXtst
   ];
 
-  nativeBuildInputs = [
-    extra-cmake-modules
-    makeQtWrapper
-  ];
-
-  postInstall = ''
-    wrapQtProgram "$out/bin/kdeconnect-cli"
-  '';
+  nativeBuildInputs = [ extra-cmake-modules ];
 
   meta = {
     description = "KDE Connect provides several features to integrate your phone and your computer";
diff --git a/pkgs/applications/misc/krename/default.nix b/pkgs/applications/misc/krename/default.nix
index c6baab21ee016..22cd14c195252 100644
--- a/pkgs/applications/misc/krename/default.nix
+++ b/pkgs/applications/misc/krename/default.nix
@@ -1,35 +1,30 @@
 {
-  kdeDerivation, kdeWrapper, fetchFromGitHub, lib,
-  extra-cmake-modules, kdoctools, kconfig, kinit, kjsembed,
-  taglib, exiv2, podofo
+  mkDerivation, fetchFromGitHub, lib,
+  extra-cmake-modules, kdoctools, wrapGAppsHook,
+  kconfig, kinit, kjsembed, taglib, exiv2, podofo
 }:
 
 let
   pname = "krename";
   version = "20170610";
-  unwrapped = kdeDerivation rec {
-    name = "${pname}-${version}";
+in mkDerivation rec {
+  name = "${pname}-${version}";
 
-    src = fetchFromGitHub {
-      owner  = "KDE";
-      repo   = "krename";
-      rev    = "18000edfec52de0b417d575e14eb078b4bd7b2f3";
-      sha256 = "0hsrlfrbi42jqqnkcz682c6yrfi3xpl299672knj22074wr6sv0j";
-    };
-
-    meta = with lib; {
-      homepage = http://www.krename.net;
-      description = "A powerful batch renamer for KDE";
-      inherit (kconfig.meta) platforms;
-      maintainers = with maintainers; [ peterhoeg ];
-    };
+  src = fetchFromGitHub {
+    owner  = "KDE";
+    repo   = "krename";
+    rev    = "18000edfec52de0b417d575e14eb078b4bd7b2f3";
+    sha256 = "0hsrlfrbi42jqqnkcz682c6yrfi3xpl299672knj22074wr6sv0j";
+  };
 
-    buildInputs = [ taglib exiv2 podofo ];
-    nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-    propagatedBuildInputs = [ kconfig kinit kjsembed ];
+  meta = with lib; {
+    homepage = http://www.krename.net;
+    description = "A powerful batch renamer for KDE";
+    inherit (kconfig.meta) platforms;
+    maintainers = with maintainers; [ peterhoeg ];
   };
 
-in kdeWrapper {
-  inherit unwrapped;
-  targets = [ "bin/krename" ];
+  buildInputs = [ taglib exiv2 podofo ];
+  nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ];
+  propagatedBuildInputs = [ kconfig kinit kjsembed ];
 }
diff --git a/pkgs/applications/misc/krusader/default.nix b/pkgs/applications/misc/krusader/default.nix
index c085d916d86c1..7f5dad62d2649 100644
--- a/pkgs/applications/misc/krusader/default.nix
+++ b/pkgs/applications/misc/krusader/default.nix
@@ -1,33 +1,27 @@
 {
-  kdeDerivation, kdeWrapper, fetchurl, lib,
-  extra-cmake-modules, kdoctools,
+  mkDerivation, fetchurl, lib,
+  extra-cmake-modules, kdoctools, wrapGAppsHook,
   kconfig, kinit, kparts
 }:
 
 let
   pname = "krusader";
   version = "2.6.0";
-  unwrapped = kdeDerivation rec {
-    name = "krusader-${version}";
+in mkDerivation rec {
+  name = "krusader-${version}";
 
-    src = fetchurl {
-      url = "mirror://kde/stable/${pname}/${version}/${name}.tar.xz";
-      sha256 = "0f9skfvp0hdml8qq6v22z9293ndijd8kwbpdj7wpvgd6mlya8qbh";
-    };
-
-    meta = with lib; {
-      description = "Norton/Total Commander clone for KDE";
-      license = licenses.gpl2;
-      homepage = http://www.krusader.org;
-      maintainers = with maintainers; [ sander ];
-    };
+  src = fetchurl {
+    url = "mirror://kde/stable/${pname}/${version}/${name}.tar.xz";
+    sha256 = "0f9skfvp0hdml8qq6v22z9293ndijd8kwbpdj7wpvgd6mlya8qbh";
+  };
 
-    nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-    propagatedBuildInputs = [ kconfig kinit kparts ];
-    enableParallelBuilding = true;
+  meta = with lib; {
+    description = "Norton/Total Commander clone for KDE";
+    license = licenses.gpl2;
+    homepage = http://www.krusader.org;
+    maintainers = with maintainers; [ sander ];
   };
 
-in kdeWrapper {
-  inherit unwrapped;
-  targets = [ "bin/krusader" ];
+  nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ];
+  propagatedBuildInputs = [ kconfig kinit kparts ];
 }
diff --git a/pkgs/applications/misc/latte-dock/default.nix b/pkgs/applications/misc/latte-dock/default.nix
index cdde0beb8270f..1b2cf94d173d4 100644
--- a/pkgs/applications/misc/latte-dock/default.nix
+++ b/pkgs/applications/misc/latte-dock/default.nix
@@ -1,33 +1,26 @@
-{ stdenv, lib, cmake, xorg, plasma-framework, fetchFromGitHub, kdeWrapper }:
+{ mkDerivation, lib, cmake, xorg, plasma-framework, fetchFromGitHub }:
 
-let version = "0.6.0";
+let version = "0.6.0"; in
 
-    unwrapped = stdenv.mkDerivation {
-      name = "latte-dock-${version}";
+mkDerivation {
+  name = "latte-dock-${version}";
 
-      src = fetchFromGitHub {
-        owner = "psifidotos";
-        repo = "Latte-Dock";
-        rev = "v${version}";
-        sha256 = "1967hx4lavy96vvik8d5m2c6ycd2mlf9cmhrv40zr0784ni0ikyv";
-      };
+  src = fetchFromGitHub {
+    owner = "psifidotos";
+    repo = "Latte-Dock";
+    rev = "v${version}";
+    sha256 = "1967hx4lavy96vvik8d5m2c6ycd2mlf9cmhrv40zr0784ni0ikyv";
+  };
 
-      buildInputs = [ plasma-framework xorg.libpthreadstubs xorg.libXdmcp ];
+  buildInputs = [ plasma-framework xorg.libpthreadstubs xorg.libXdmcp ];
 
-      nativeBuildInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
 
-      enableParallelBuilding = true;
-
-      meta = with stdenv.lib; {
-        description = "Dock-style app launcher based on Plasma frameworks";
-        homepage = https://github.com/psifidotos/Latte-Dock;
-        license = licenses.gpl2;
-        platforms = platforms.unix;
-        maintainers = [ maintainers.benley ];
-      };
-    };
-
-in kdeWrapper {
-  inherit unwrapped;
-  targets = [ "bin/latte-dock" ];
+  meta = with lib; {
+    description = "Dock-style app launcher based on Plasma frameworks";
+    homepage = https://github.com/psifidotos/Latte-Dock;
+    license = licenses.gpl2;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.benley ];
+  };
 }
diff --git a/pkgs/applications/misc/openbrf/default.nix b/pkgs/applications/misc/openbrf/default.nix
index 50c8fc7bcecdb..5016acfff124f 100644
--- a/pkgs/applications/misc/openbrf/default.nix
+++ b/pkgs/applications/misc/openbrf/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, qtbase, vcg, glew, qmakeHook, makeQtWrapper, mesa }:
+{ stdenv, fetchFromGitHub, qtbase, vcg, glew, qmake, mesa }:
 
 
 stdenv.mkDerivation {
@@ -12,9 +12,9 @@ stdenv.mkDerivation {
   };
 
   buildInputs = [ qtbase vcg glew ];
-  nativeBuildInputs = [ qmakeHook makeQtWrapper ];
 
   enableParallelBuilding = true;
+  nativeBuildInputs = [ qmake ];
 
   qmakeFlags = [ "openBrf.pro" ];
 
@@ -31,7 +31,7 @@ stdenv.mkDerivation {
       --set-rpath "${stdenv.lib.makeLibraryPath [ qtbase glew stdenv.cc.cc mesa ]}" \
       $out/share/openBrf/openBrf
 
-    makeQtWrapper "$out/share/openBrf/openBrf" "$out/bin/openBrf"
+    ln -s "$out/share/openBrf/openBrf" "$out/bin/openBrf"
   '';
 
   dontPatchELF = true;
diff --git a/pkgs/applications/misc/qsyncthingtray/default.nix b/pkgs/applications/misc/qsyncthingtray/default.nix
index d6aea74d9972c..671370252a795 100644
--- a/pkgs/applications/misc/qsyncthingtray/default.nix
+++ b/pkgs/applications/misc/qsyncthingtray/default.nix
@@ -1,10 +1,10 @@
-{ stdenv, lib, fetchFromGitHub, procps ? null
+{ mkDerivation, stdenv, lib, fetchFromGitHub, procps ? null
 , qtbase, qtwebengine, qtwebkit
-, cmake, makeQtWrapper
+, cmake
 , syncthing, syncthing-inotify ? null
 , preferQWebView ? false }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   version = "0.5.7";
   name = "qsyncthingtray-${version}";
 
@@ -16,8 +16,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ qtbase qtwebengine ] ++ lib.optional preferQWebView qtwebkit;
-  nativeBuildInputs = [ cmake makeQtWrapper ];
-  enableParallelBuilding = true;
+  nativeBuildInputs = [ cmake ];
 
   cmakeFlags = lib.optional preferQWebView "-DQST_BUILD_WEBKIT=1";
 
@@ -41,12 +40,11 @@ stdenv.mkDerivation rec {
     mkdir -p $out/bin
     install -m755 QSyncthingTray $out/bin/${qst}
     ln -s $out/bin/${qst} $out/bin/QSyncthingTray
-    wrapQtProgram $out/bin/qsyncthingtray
 
     runHook postInstall
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = https://github.com/sieren/QSyncthingTray/;
     description = "A Traybar Application for Syncthing written in C++";
     longDescription = ''
diff --git a/pkgs/applications/misc/qtpass/default.nix b/pkgs/applications/misc/qtpass/default.nix
index 4cdb6591465eb..d300e411c9426 100644
--- a/pkgs/applications/misc/qtpass/default.nix
+++ b/pkgs/applications/misc/qtpass/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, git, gnupg, makeQtWrapper, pass, qtbase, qtsvg, qttools, qmakeHook }:
+{ stdenv, fetchFromGitHub, git, gnupg, pass, qtbase, qtsvg, qttools, qmake, makeWrapper }:
 
 stdenv.mkDerivation rec {
   name = "qtpass-${version}";
@@ -13,10 +13,10 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ git gnupg pass qtbase qtsvg qttools ];
 
-  nativeBuildInputs = [ makeQtWrapper qmakeHook ];
+  nativeBuildInputs = [ makeWrapper qmake ];
 
   preConfigure = ''
-    qmakeFlags="$qmakeFlags CONFIG+=release DESTDIR=$out"
+    qmakeFlags="$qmakeFlags DESTDIR=$out"
   '';
 
   installPhase = ''
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   '';
 
   postInstall = ''
-    wrapQtProgram $out/bin/qtpass \
+    wrapProgram $out/bin/qtpass \
       --suffix PATH : ${git}/bin \
       --suffix PATH : ${gnupg}/bin \
       --suffix PATH : ${pass}/bin
diff --git a/pkgs/applications/misc/redis-desktop-manager/default.nix b/pkgs/applications/misc/redis-desktop-manager/default.nix
index 9d333da01cb65..0ba850a346074 100644
--- a/pkgs/applications/misc/redis-desktop-manager/default.nix
+++ b/pkgs/applications/misc/redis-desktop-manager/default.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, fetchgit, pkgconfig , libssh2
 , qtbase, qtdeclarative, qtgraphicaleffects, qtimageformats, qtquickcontrols
 , qtsvg, qttools, qtquick1
-, makeQtWrapper, qmakeHook
+, qmake
 }:
 
 let
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     sha256 = "0a7xa39qp1q32zkypw32mm3wi8wbhxhvrm6l3xsa3k1jzih7hzxr";
   };
 
-  nativeBuildInputs = [ makeQtWrapper qmakeHook ];
+  nativeBuildInputs = [ qmake ];
 
   buildInputs = [
     pkgconfig libssh2 qtbase qtdeclarative qtgraphicaleffects qtimageformats
@@ -68,7 +68,6 @@ EOF
     mkdir -p $out/bin
     instdir="$srcdir/bin/linux/release"
     cp $instdir/rdm $out/bin
-    wrapQtProgram $out/bin/rdm
   '';
 
   meta = with lib; {
diff --git a/pkgs/applications/misc/twmn/default.nix b/pkgs/applications/misc/twmn/default.nix
index c38b97b0e9806..7ec3d66f31cf8 100644
--- a/pkgs/applications/misc/twmn/default.nix
+++ b/pkgs/applications/misc/twmn/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, stdenv, fetchgit, qtbase, qtx11extras, qmakeHook, pkgconfig, boost }:
+{ fetchurl, stdenv, fetchgit, qtbase, qtx11extras, qmake, pkgconfig, boost }:
 
 stdenv.mkDerivation rec {
   name = "twmn-git-2014-09-23";
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "1a68gka9gyxyzhc9rn8df59rzcdwkjw90cxp1kk0rdfp6svhxhsa";
   };
 
-  buildInputs = [ qtbase qtx11extras pkgconfig boost qmakeHook ];
+  nativeBuildInputs = [ pkgconfig qmake ];
+  buildInputs = [ qtbase qtx11extras boost ];
 
   postPatch = ''
     sed -i s/-Werror// twmnd/twmnd.pro
diff --git a/pkgs/applications/misc/xca/default.nix b/pkgs/applications/misc/xca/default.nix
index 09da875e23603..80ecbdeba77fc 100644
--- a/pkgs/applications/misc/xca/default.nix
+++ b/pkgs/applications/misc/xca/default.nix
@@ -1,9 +1,9 @@
-{ stdenv, fetchurl, pkgconfig, which, makeQtWrapper,
-  libtool, openssl, qtbase, qttools }:
+{ mkDerivation, lib, fetchurl, pkgconfig, which
+, libtool, openssl, qtbase, qttools }:
 
-with stdenv.lib;
+with lib;
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   name = "xca-${version}";
   version = "1.3.2";
 
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ libtool openssl qtbase qttools ];
 
-  nativeBuildInputs = [ makeQtWrapper pkgconfig which ];
+  nativeBuildInputs = [ pkgconfig which ];
 
   configureFlags = [ "CXXFLAGS=-std=c++11" ];
 
@@ -26,12 +26,7 @@ stdenv.mkDerivation rec {
       --replace ${qtbase}/bin/uic ${qtbase.dev}/bin/uic
   '';
 
-  postInstall = ''
-    wrapQtProgram "$out/bin/xca"
-    wrapQtProgram "$out/bin/xca_db_stat"
-  '';
-
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Interface for managing asymetric keys like RSA or DSA";
     homepage = http://xca.sourceforge.net/;
     platforms = platforms.all;
diff --git a/pkgs/applications/misc/yakuake/default.nix b/pkgs/applications/misc/yakuake/default.nix
index a70b4be287c54..4a25f88ac75bb 100644
--- a/pkgs/applications/misc/yakuake/default.nix
+++ b/pkgs/applications/misc/yakuake/default.nix
@@ -1,8 +1,8 @@
-{ kdeDerivation
+{ mkDerivation
 , lib
 , fetchurl
 , kdoctools
-, kdeWrapper
+, wrapGAppsHook
 , extra-cmake-modules
 , karchive
 , kcrash
@@ -18,11 +18,10 @@
 }:
 
 let
-  unwrapped = let
-    pname = "yakuake";
-    version = "3.0.3";
-  in kdeDerivation rec {
-    name = "${pname}-${version}";
+  pname = "yakuake";
+  version = "3.0.3";
+in mkDerivation rec {
+  name = "${pname}-${version}";
 
     src = fetchurl {
       url = "http://download.kde.org/stable/${pname}/${version}/src/${name}.tar.xz";
@@ -42,22 +41,28 @@ let
       kwindowsystem
     ];
 
-    nativeBuildInputs = [
-      extra-cmake-modules kdoctools
-    ];
+  propagatedBuildInputs = [
+    karchive
+    kcrash
+    kdbusaddons
+    ki18n
+    kiconthemes
+    knewstuff
+    knotifications
+    knotifyconfig
+    kparts
+    kwindowsystem
+  ];
 
-    meta = {
-      homepage = https://yakuake.kde.org;
-      description = "Quad-style terminal emulator for KDE";
-      maintainers = with lib.maintainers; [ fridh ];
-    };
-  };
+  propagatedUserEnvPkgs = [ konsole ];
 
+  nativeBuildInputs = [
+    extra-cmake-modules kdoctools wrapGAppsHook
+  ];
 
-in
-kdeWrapper
-{
-  inherit unwrapped;
-  targets = [ "bin/yakuake" ];
-  paths = [ konsole.unwrapped ];
+  meta = {
+    homepage = https://yakuake.kde.org;
+    description = "Quad-style terminal emulator for KDE";
+    maintainers = with lib.maintainers; [ fridh ];
+  };
 }
diff --git a/pkgs/applications/networking/browsers/qutebrowser/default.nix b/pkgs/applications/networking/browsers/qutebrowser/default.nix
index a8c49b9fd4ad1..614473d39eec8 100644
--- a/pkgs/applications/networking/browsers/qutebrowser/default.nix
+++ b/pkgs/applications/networking/browsers/qutebrowser/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, unzip, buildPythonApplication, makeQtWrapper, wrapGAppsHook
+{ stdenv, lib, fetchurl, unzip, buildPythonApplication, makeWrapper, wrapGAppsHook
 , qtbase, pyqt5, jinja2, pygments, pyyaml, pypeg2, cssutils, glib_networking
 , asciidoc, docbook_xml_dtd_45, docbook_xsl, libxml2, libxslt
 , gst-plugins-base, gst-plugins-good, gst-plugins-bad, gst-plugins-ugly, gst-libav
@@ -44,7 +44,7 @@ in buildPythonApplication rec {
   ];
 
   nativeBuildInputs = [
-    makeQtWrapper wrapGAppsHook asciidoc docbook_xml_dtd_45 docbook_xsl libxml2 libxslt
+    makeWrapper wrapGAppsHook asciidoc docbook_xml_dtd_45 docbook_xsl libxml2 libxslt
   ];
 
   propagatedBuildInputs = [
@@ -73,9 +73,8 @@ in buildPythonApplication rec {
     install -Dm755 -t "$out/share/qutebrowser/userscripts/" misc/userscripts/*
   '';
 
-  postFixup = ''
-    wrapQtProgram $out/bin/qutebrowser \
-      ${lib.optionalString withWebEngineDefault ''--add-flags "--backend webengine"''}
+  postFixup = lib.optionalString withWebEngineDefault ''
+    wrapProgram $out/bin/qutebrowser --add-flags "--backend webengine"
   '';
 
   meta = {
diff --git a/pkgs/applications/networking/browsers/vivaldi/default.nix b/pkgs/applications/networking/browsers/vivaldi/default.nix
index 3489aeb4cf52c..749fc8557881d 100644
--- a/pkgs/applications/networking/browsers/vivaldi/default.nix
+++ b/pkgs/applications/networking/browsers/vivaldi/default.nix
@@ -4,31 +4,19 @@
 , freetype, fontconfig, libXft, libXrender, libxcb, expat, libXau, libXdmcp
 , libuuid, xz
 , gstreamer, gst-plugins-base, libxml2
-, glib, gtk2, pango, gdk_pixbuf, cairo, atk, gnome3
+, glib, gtk3, pango, gdk_pixbuf, cairo, atk, gnome3
 , nss, nspr
 , patchelf
 }:
 
-let
-  version = "1.9";
-  build = "818.44-1";
-  fullVersion = "stable_${version}.${build}";
-
-  info = if stdenv.is64bit then {
-      arch = "amd64";
-      sha256 = "0apkwgd98ld5k77nplzmk67nz6mb5pi8jyrnkp96m93mr41b08bq";
-    } else {
-      arch = "i386";
-      sha256 = "0xyf0z1cnzmb3pv6rgsbd7jdjf1v137priz4kkymr8jgmpq0mmfx";
-    };
-
-in stdenv.mkDerivation rec {
-  product    = "vivaldi";
-  name       = "${product}-${version}";
+stdenv.mkDerivation rec {
+  name = "${product}-${version}";
+  product = "vivaldi";
+  version = "1.10.867.38-1";
 
   src = fetchurl {
-    inherit (info) sha256;
-    url = "https://downloads.vivaldi.com/stable/${product}-${fullVersion}_${info.arch}.deb";
+    url = "https://downloads.vivaldi.com/stable/${product}-stable_${version}_amd64.deb";
+    sha256 = "1h3iygzvw3rb5kmn0pam6gqy9baq6l630yllff1vnvychdg8d9vi";
   };
 
   unpackPhase = ''
@@ -36,14 +24,15 @@ in stdenv.mkDerivation rec {
     tar -xvf data.tar.xz
   '';
 
-  buildInputs =
-    [ stdenv.cc.cc stdenv.cc.libc zlib libX11 libXt libXext libSM libICE libxcb
-      libXi libXft libXcursor libXfixes libXScrnSaver libXcomposite libXdamage libXtst libXrandr
-      atk alsaLib dbus_libs cups gtk2 gdk_pixbuf libexif ffmpeg systemd
-      freetype fontconfig libXrender libuuid expat glib nss nspr
-      gstreamer libxml2 gst-plugins-base pango cairo gnome3.gconf
-      patchelf
-    ];
+  nativeBuildInputs = [ patchelf ];
+
+  buildInputs = [
+    stdenv.cc.cc stdenv.cc.libc zlib libX11 libXt libXext libSM libICE libxcb
+    libXi libXft libXcursor libXfixes libXScrnSaver libXcomposite libXdamage libXtst libXrandr
+    atk alsaLib dbus_libs cups gtk3 gdk_pixbuf libexif ffmpeg systemd
+    freetype fontconfig libXrender libuuid expat glib nss nspr
+    gstreamer libxml2 gst-plugins-base pango cairo gnome3.gconf
+  ];
 
   libPath = stdenv.lib.makeLibraryPath buildInputs
     + stdenv.lib.optionalString (stdenv.is64bit)
@@ -85,6 +74,6 @@ in stdenv.mkDerivation rec {
     homepage    = "https://vivaldi.com";
     license     = licenses.unfree;
     maintainers = with maintainers; [ otwieracz nequissimus ];
-    platforms   = platforms.linux;
+    platforms   = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/applications/networking/dropbox/default.nix b/pkgs/applications/networking/dropbox/default.nix
index 12ed28979d292..cda86d2e65243 100644
--- a/pkgs/applications/networking/dropbox/default.nix
+++ b/pkgs/applications/networking/dropbox/default.nix
@@ -1,4 +1,5 @@
-{ stdenv, fetchurl, makeDesktopItem, patchelf, makeWrapper, makeQtWrapper
+{ mkDerivation, stdenv, lib, fetchurl, makeDesktopItem
+, makeWrapper, patchelf
 , dbus_libs, fontconfig, freetype, gcc, glib
 , libdrm, libffi, libICE, libSM
 , libX11, libXcomposite, libXext, libXmu, libXrender, libxcb
@@ -58,7 +59,7 @@ let
     startupNotify = "false";
   };
 
-in stdenv.mkDerivation {
+in mkDerivation {
   name = "dropbox-${version}";
   src = fetchurl {
     name = "dropbox-${version}.tar.gz";
@@ -68,7 +69,7 @@ in stdenv.mkDerivation {
 
   sourceRoot = ".dropbox-dist";
 
-  nativeBuildInputs = [ makeQtWrapper patchelf ];
+  nativeBuildInputs = [ makeWrapper patchelf ];
   dontStrip = true; # already done
 
   installPhase = ''
@@ -94,7 +95,7 @@ in stdenv.mkDerivation {
 
     mkdir -p "$out/bin"
     RPATH="${ldpath}:$out/${appdir}"
-    makeQtWrapper "$out/${appdir}/dropbox" "$out/bin/dropbox" \
+    makeWrapper "$out/${appdir}/dropbox" "$out/bin/dropbox" \
       --prefix LD_LIBRARY_PATH : "$RPATH"
 
     chmod 755 $out/${appdir}/dropbox
@@ -137,8 +138,8 @@ in stdenv.mkDerivation {
   meta = {
     homepage = "http://www.dropbox.com";
     description = "Online stored folders (daemon version)";
-    maintainers = with stdenv.lib.maintainers; [ ttuegel ];
+    maintainers = with lib.maintainers; [ ttuegel ];
     platforms = [ "i686-linux" "x86_64-linux" ];
-    license = stdenv.lib.licenses.unfree;
+    license = lib.licenses.unfree;
   };
 }
diff --git a/pkgs/applications/networking/instant-messengers/qtox/default.nix b/pkgs/applications/networking/instant-messengers/qtox/default.nix
index d1773456df2ef..2c6cf473f1c49 100644
--- a/pkgs/applications/networking/instant-messengers/qtox/default.nix
+++ b/pkgs/applications/networking/instant-messengers/qtox/default.nix
@@ -1,10 +1,10 @@
-{ stdenv, fetchFromGitHub, cmake, pkgconfig, openal, opencv,
+{ mkDerivation, lib, fetchFromGitHub, cmake, pkgconfig, openal, opencv,
   libtoxcore, libsodium, libXScrnSaver, glib, gdk_pixbuf, gtk2, cairo, xorg,
-  pango, atk, qrencode, ffmpeg, filter-audio, makeQtWrapper,
+  pango, atk, qrencode, ffmpeg, filter-audio,
   qtbase, qtsvg, qttools, qttranslations, sqlcipher,
   libvpx, libopus }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   name = "qtox-${version}";
   version = "1.10.2";
 
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
     libpthreadstubs libXdmcp
   ]);
 
-  nativeBuildInputs = [ cmake makeQtWrapper pkgconfig ];
+  nativeBuildInputs = [ cmake pkgconfig ];
 
   cmakeFlags = [
     "-DGIT_DESCRIBE=${version}"
@@ -35,14 +35,11 @@ stdenv.mkDerivation rec {
     runHook preInstall
 
     install -Dm755 qtox $out/bin/qtox
-    wrapQtProgram $out/bin/qtox
 
     runHook postInstall
   '';
 
-  enableParallelBuilding = true;
-
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Qt Tox client";
     license = licenses.gpl3;
     maintainers = with maintainers; [ viric jgeerds akaWolf peterhoeg ];
diff --git a/pkgs/applications/networking/instant-messengers/quaternion/default.nix b/pkgs/applications/networking/instant-messengers/quaternion/default.nix
index 781a4a18b9cce..03fc0d85292ab 100644
--- a/pkgs/applications/networking/instant-messengers/quaternion/default.nix
+++ b/pkgs/applications/networking/instant-messengers/quaternion/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchgit, qtbase, qtquickcontrols, cmake, makeQtWrapper }:
+{ mkDerivation, lib, fetchgit, qtbase, qtquickcontrols, cmake }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   name = "quaternion-git-${version}";
   version = "2017-04-15";
 
@@ -18,25 +18,21 @@ stdenv.mkDerivation rec {
     fetchSubmodules = true;
   };
 
-  enableParallelBuilding = true;
-
   buildInputs = [ qtbase qtquickcontrols ];
-  nativeBuildInputs = [ cmake makeQtWrapper ];
+  nativeBuildInputs = [ cmake ];
 
   cmakeFlags = [
     "-Wno-dev"
   ];
 
   postInstall = ''
-    wrapQtProgram $out/bin/quaternion
-
     substituteInPlace $out/share/applications/quaternion.desktop \
       --replace 'Exec=quaternion' "Exec=$out/bin/quaternion"
 
     rm $out/share/icons/hicolor/icon-theme.cache
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = https://matrix.org/docs/projects/client/quaternion.html;
     description = "Cross-platform desktop IM client for the Matrix protocol";
     license = licenses.gpl3;
diff --git a/pkgs/applications/networking/instant-messengers/ricochet/default.nix b/pkgs/applications/networking/instant-messengers/ricochet/default.nix
index d1af2ad70d19f..b1dd7a4c90f30 100644
--- a/pkgs/applications/networking/instant-messengers/ricochet/default.nix
+++ b/pkgs/applications/networking/instant-messengers/ricochet/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, pkgconfig, makeDesktopItem, unzip
-, qtbase, qttools, makeQtWrapper, qtmultimedia, qtquick1, qtquickcontrols
-, openssl, protobuf, qmakeHook
+, qtbase, qttools, qtmultimedia, qtquick1, qtquickcontrols
+, openssl, protobuf, qmake
 }:
 
 stdenv.mkDerivation rec {
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     openssl protobuf
   ];
 
-  nativeBuildInputs = [ pkgconfig makeQtWrapper qmakeHook ];
+  nativeBuildInputs = [ pkgconfig qmake ];
 
   preConfigure = ''
     export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE $(pkg-config --cflags openssl)"
@@ -38,7 +38,6 @@ stdenv.mkDerivation rec {
   installPhase = ''
     mkdir -p $out/bin
     cp ricochet $out/bin
-    wrapQtProgram $out/bin/ricochet
 
     mkdir -p $out/share/applications
     cp $desktopItem/share/applications"/"* $out/share/applications
diff --git a/pkgs/applications/networking/instant-messengers/telegram/cutegram/default.nix b/pkgs/applications/networking/instant-messengers/telegram/cutegram/default.nix
index a20119e0d7313..67d1f55f2fe00 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/cutegram/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/cutegram/default.nix
@@ -3,7 +3,7 @@
 , qtimageformats, qtgraphicaleffects, qtwebkit
 , telegram-qml, libqtelegram-aseman-edition
 , gst_all_1
-, makeQtWrapper, qmakeHook }:
+, makeWrapper, qmake }:
 
 stdenv.mkDerivation rec {
   name = "cutegram-${meta.version}";
@@ -20,12 +20,12 @@ stdenv.mkDerivation rec {
     telegram-qml libqtelegram-aseman-edition
   ] ++ (with gst_all_1; [ gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly ]);
 
-  nativeBuildInputs = [ makeQtWrapper qmakeHook ];
 
   enableParallelBuilding = true;
+  nativeBuildInputs = [ makeWrapper qmake ];
 
   fixupPhase = ''
-    wrapQtProgram $out/bin/cutegram \
+    wrapProgram $out/bin/cutegram \
       --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0"
   '';
 
diff --git a/pkgs/applications/networking/instant-messengers/telegram/libqtelegram-aseman-edition/default.nix b/pkgs/applications/networking/instant-messengers/telegram/libqtelegram-aseman-edition/default.nix
index 322c40afc7dc4..ec2e65dc4997b 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/libqtelegram-aseman-edition/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/libqtelegram-aseman-edition/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub
-, qtbase, qtmultimedia, qtquick1, qmakeHook }:
+, qtbase, qtmultimedia, qtquick1, qmake }:
 
 stdenv.mkDerivation rec {
   name = "libqtelegram-aseman-edition-${meta.version}";
@@ -12,8 +12,8 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ qtbase qtmultimedia qtquick1 ];
-  nativeBuildInputs = [ qmakeHook ];
   enableParallelBuilding = true;
+  nativeBuildInputs = [ qmake ];
 
   patchPhase = ''
     substituteInPlace libqtelegram-ae.pro --replace "/libqtelegram-ae" ""
diff --git a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
index d64b5be816aac..0af0c0b1d1bae 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
@@ -1,10 +1,10 @@
-{ stdenv, lib, fetchFromGitHub, fetchgit, pkgconfig, gyp, cmake
-, qtbase, qtimageformats, makeQtWrapper
+{ mkDerivation, lib, fetchFromGitHub, fetchgit, pkgconfig, gyp, cmake
+, qtbase, qtimageformats
 , breakpad, gtk3, libappindicator-gtk3, dee
 , ffmpeg, openalSoft, minizip
 }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   name = "telegram-desktop-${version}";
   version = "1.0.27";
 
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
     gtk3 libappindicator-gtk3 dee qtbase qtimageformats ffmpeg openalSoft minizip
   ];
 
-  nativeBuildInputs = [ pkgconfig gyp cmake makeQtWrapper ];
+  nativeBuildInputs = [ pkgconfig gyp cmake ];
 
   patches = [ "${tgaur}/aur-build-fixes.patch" ];
 
@@ -86,10 +86,9 @@ stdenv.mkDerivation rec {
     for icon_size in 16 32 48 64 128 256 512; do
       install -Dm644 "../../../Telegram/Resources/art/icon''${icon_size}.png" "$out/share/icons/hicolor/''${icon_size}x''${icon_size}/apps/telegram-desktop.png"
     done
-    wrapQtProgram $out/bin/telegram-desktop
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Telegram Desktop messaging app";
     license = licenses.gpl3;
     platforms = platforms.linux;
diff --git a/pkgs/applications/networking/instant-messengers/telegram/telegram-qml/default.nix b/pkgs/applications/networking/instant-messengers/telegram/telegram-qml/default.nix
index 854648d97862c..c8d24c9b28c1e 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/telegram-qml/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/telegram-qml/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub
-, qtbase, qtmultimedia, qtquick1, qmakeHook
+, qtbase, qtmultimedia, qtquick1, qmake
 , libqtelegram-aseman-edition }:
 
 stdenv.mkDerivation rec {
@@ -13,8 +13,8 @@ stdenv.mkDerivation rec {
   };
 
   propagatedBuildInputs = [ qtbase qtmultimedia qtquick1 libqtelegram-aseman-edition ];
-  nativeBuildInputs = [ qmakeHook ];
   enableParallelBuilding = true;
+  nativeBuildInputs = [ qmake ];
 
   patchPhase = ''
     substituteInPlace telegramqml.pro --replace "/\$\$LIB_PATH" ""
diff --git a/pkgs/applications/networking/instant-messengers/tensor/default.nix b/pkgs/applications/networking/instant-messengers/tensor/default.nix
index 0dfda79e767cb..0571946061bc3 100644
--- a/pkgs/applications/networking/instant-messengers/tensor/default.nix
+++ b/pkgs/applications/networking/instant-messengers/tensor/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchgit, qtbase, qtquickcontrols, qmakeHook, makeQtWrapper, makeDesktopItem }:
+{ stdenv, fetchgit, qtbase, qtquickcontrols, qmake, makeDesktopItem }:
 
 stdenv.mkDerivation rec {
   name = "tensor-git-${version}";
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   buildInputs = [ qtbase qtquickcontrols ];
-  nativeBuildInputs = [ qmakeHook makeQtWrapper ];
+  nativeBuildInputs = [ qmake ];
 
   desktopItem = makeDesktopItem {
     name        = "tensor";
@@ -36,8 +36,6 @@ stdenv.mkDerivation rec {
     install -Dm644 ${desktopItem}/share/applications/tensor.desktop \
                    $out/share/applications/tensor.desktop
 
-    wrapQtProgram $out/bin/tensor
-
     substituteInPlace $out/share/applications/tensor.desktop \
       --subst-var-by bin $out/bin/tensor
 
diff --git a/pkgs/applications/networking/irc/communi/default.nix b/pkgs/applications/networking/irc/communi/default.nix
index c521084213eee..9bfdd8408dac8 100644
--- a/pkgs/applications/networking/irc/communi/default.nix
+++ b/pkgs/applications/networking/irc/communi/default.nix
@@ -1,4 +1,4 @@
-{ fetchgit, libcommuni, makeQtWrapper, qtbase, qmakeHook, stdenv }:
+{ fetchgit, libcommuni, qtbase, qmake, stdenv }:
 
 stdenv.mkDerivation rec {
   name = "communi-${version}";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     fetchSubmodules = true;
   };
 
-  nativeBuildInputs = [ makeQtWrapper qmakeHook ];
+  nativeBuildInputs = [ qmake ];
 
   buildInputs = [ libcommuni qtbase ];
 
@@ -30,7 +30,6 @@ stdenv.mkDerivation rec {
   '';
 
   postInstall = ''
-    wrapQtProgram "$out/bin/communi"
     substituteInPlace "$out/share/applications/communi.desktop" \
       --replace "/usr/bin" "$out/bin"
   '';
diff --git a/pkgs/applications/networking/irc/konversation/default.nix b/pkgs/applications/networking/irc/konversation/default.nix
index 6f4bc2af79f26..4cfde1f9b0787 100644
--- a/pkgs/applications/networking/irc/konversation/default.nix
+++ b/pkgs/applications/networking/irc/konversation/default.nix
@@ -1,15 +1,14 @@
-{ kdeDerivation
+{ mkDerivation
 , lib
 , fetchurl
 , extra-cmake-modules
+, kdoctools
 , kbookmarks
 , karchive
 , kconfig
 , kconfigwidgets
 , kcoreaddons
 , kdbusaddons
-, kdeWrapper
-, kdoctools
 , kemoticons
 , kglobalaccel
 , ki18n
@@ -21,62 +20,55 @@
 , kio
 , kparts
 , kwallet
-, makeQtWrapper
 , solid
 , sonnet
 , phonon
 }:
 
 let
-  unwrapped = let
-    pname = "konversation";
-    version = "1.6.2";
-  in kdeDerivation rec {
-    name = "${pname}-${version}";
+  pname = "konversation";
+  version = "1.6.2";
+in mkDerivation rec {
+  name = "${pname}-${version}";
 
-    src = fetchurl {
-      url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.xz";
-      sha256 = "1798sslwz7a3h1v524ra33p0j5iqvcg0v1insyvb5qp4kv11slmn";
-    };
+  src = fetchurl {
+    url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.xz";
+    sha256 = "1798sslwz7a3h1v524ra33p0j5iqvcg0v1insyvb5qp4kv11slmn";
+  };
 
-    buildInputs = [
-      kbookmarks
-      karchive
-      kconfig
-      kconfigwidgets
-      kcoreaddons
-      kdbusaddons
-      kdoctools
-      kemoticons
-      kglobalaccel
-      ki18n
-      kiconthemes
-      kidletime
-      kitemviews
-      knotifications
-      knotifyconfig
-      kio
-      kparts
-      kwallet
-      solid
-      sonnet
-      phonon
-    ];
+  buildInputs = [
+    kbookmarks
+    karchive
+    kconfig
+    kconfigwidgets
+    kcoreaddons
+    kdbusaddons
+    kdoctools
+    kemoticons
+    kglobalaccel
+    ki18n
+    kiconthemes
+    kidletime
+    kitemviews
+    knotifications
+    knotifyconfig
+    kio
+    kparts
+    kwallet
+    solid
+    sonnet
+    phonon
+  ];
 
-    nativeBuildInputs = [
-      extra-cmake-modules
-      kdoctools
-    ];
+  nativeBuildInputs = [
+    extra-cmake-modules
+    kdoctools
+  ];
 
-    meta = {
-      description = "Integrated IRC client for KDE";
-      license = with lib.licenses; [ gpl2 ];
-      maintainers = with lib.maintainers; [ fridh ];
-      homepage = https://konversation.kde.org;
-    };
+  meta = {
+    description = "Integrated IRC client for KDE";
+    license = with lib.licenses; [ gpl2 ];
+    maintainers = with lib.maintainers; [ fridh ];
+    homepage = https://konversation.kde.org;
   };
-in kdeWrapper {
-  inherit unwrapped;
-  targets = [ "bin/konversation" ];
 }
-
diff --git a/pkgs/applications/networking/linssid/default.nix b/pkgs/applications/networking/linssid/default.nix
index d35c2e100e4c8..ad571888a9cac 100644
--- a/pkgs/applications/networking/linssid/default.nix
+++ b/pkgs/applications/networking/linssid/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, qtbase, qtsvg, qmakeHook, pkgconfig, boost, wirelesstools, iw, qwt6 }:
+{ stdenv, fetchurl, qtbase, qtsvg, qmake, pkgconfig, boost, wirelesstools, iw, qwt6 }:
 
 stdenv.mkDerivation rec {
   name = "linssid-${version}";
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "13d35rlcjncd8lx3khkgn9x8is2xjd5fp6ns5xsn3w6l4xj9b4gl";
   };
 
-  buildInputs = [ qtbase qtsvg pkgconfig boost qwt6 qmakeHook ];
+  nativeBuildInputs = [ qmake ];
+  buildInputs = [ qtbase qtsvg pkgconfig boost qwt6 ];
 
   patches = [ ./0001-unbundled-qwt.patch ];
 
diff --git a/pkgs/applications/networking/mailreaders/trojita/default.nix b/pkgs/applications/networking/mailreaders/trojita/default.nix
index fa6e4db0a0d22..26cb9e40a2638 100644
--- a/pkgs/applications/networking/mailreaders/trojita/default.nix
+++ b/pkgs/applications/networking/mailreaders/trojita/default.nix
@@ -1,13 +1,12 @@
-{ stdenv
+{ mkDerivation
 , lib
 , fetchgit
 , cmake
 , qtbase
 , qtwebkit
-, makeQtWrapper
 }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   name = "trojita-${version}";
   version = "0.7";
 
@@ -18,25 +17,20 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [
-    cmake
     qtbase
     qtwebkit
   ];
 
   nativeBuildInputs = [
-    makeQtWrapper
+    cmake
   ];
 
-  postInstall = ''
-    wrapQtProgram "$out/bin/trojita"
-  '';
-
 
-  meta = {
+  meta = with lib; {
     description = "A Qt IMAP e-mail client";
     homepage = http://trojita.flaska.net/;
-    license = with lib.licenses; [ gpl2 gpl3 ];
-    platforms = stdenv.lib.platforms.linux;
+    license = with licenses; [ gpl2 gpl3 ];
+    platforms = platforms.linux;
   };
 
 }
diff --git a/pkgs/applications/networking/mumble/default.nix b/pkgs/applications/networking/mumble/default.nix
index fa8ccf60a2a0d..696681dce2772 100644
--- a/pkgs/applications/networking/mumble/default.nix
+++ b/pkgs/applications/networking/mumble/default.nix
@@ -20,7 +20,7 @@ let
     patches = optional jackSupport ./mumble-jack-support.patch;
 
     nativeBuildInputs = [ pkgconfig python ]
-      ++ { qt4 = [ qmake4Hook ]; qt5 = [ qt5.qmakeHook ]; }."qt${toString source.qtVersion}"
+      ++ { qt4 = [ qmake4Hook ]; qt5 = [ qt5.qmake ]; }."qt${toString source.qtVersion}"
       ++ (overrides.nativeBuildInputs or [ ]);
     buildInputs = [ boost protobuf avahi ]
       ++ { qt4 = [ qt4 ]; qt5 = [ qt5.qtbase ]; }."qt${toString source.qtVersion}"
@@ -70,7 +70,7 @@ let
   client = source: generic {
     type = "mumble";
 
-    nativeBuildInputs = optionals (source.qtVersion == 5) [ qt5.qttools qt5.makeQtWrapper ];
+    nativeBuildInputs = optionals (source.qtVersion == 5) [ qt5.qttools ];
     buildInputs = [ libopus libsndfile speex ]
       ++ optional (source.qtVersion == 5) qt5.qtsvg
       ++ optional stdenv.isLinux alsaLib
@@ -91,10 +91,6 @@ let
       mkdir -p $out/share/icons{,/hicolor/scalable/apps}
       cp icons/mumble.svg $out/share/icons
       ln -s $out/share/icon/mumble.svg $out/share/icons/hicolor/scalable/apps
-
-      ${optionalString (source.qtVersion == 5) ''
-        wrapQtProgram $out/bin/mumble
-      ''}
     '';
   } source;
 
diff --git a/pkgs/applications/networking/newsreaders/quiterss/default.nix b/pkgs/applications/networking/newsreaders/quiterss/default.nix
index 2f20710a9096d..4bf571a93d83f 100644
--- a/pkgs/applications/networking/newsreaders/quiterss/default.nix
+++ b/pkgs/applications/networking/newsreaders/quiterss/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, qt5, qmakeHook, makeQtWrapper, pkgconfig, sqlite }:
+{ stdenv, fetchFromGitHub, qtbase, qmake, qttools, qtwebkit, pkgconfig, sqlite }:
 
 stdenv.mkDerivation rec {
   name = "quiterss-${version}";
@@ -11,11 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "1y0n5ps1z4wgf9hkfjrw7dfyncrw22bf9mi3052vmf3s7xzz6vbb";
   };
 
-  buildInputs = [ qt5.qtbase qt5.qttools qt5.qtwebkit qmakeHook makeQtWrapper pkgconfig sqlite.dev ];
-
-  postInstall = ''
-    wrapQtProgram "$out/bin/quiterss"
-  '';
+  nativeBuildInputs = [ pkgconfig qmake ];
+  buildInputs = [ qtbase qttools qtwebkit sqlite.dev ];
 
   meta = with stdenv.lib; {
     description = "A Qt-based RSS/Atom news feed reader";
diff --git a/pkgs/applications/networking/p2p/qbittorrent/default.nix b/pkgs/applications/networking/p2p/qbittorrent/default.nix
index de05555633eb3..4db6c9dc16bb9 100644
--- a/pkgs/applications/networking/p2p/qbittorrent/default.nix
+++ b/pkgs/applications/networking/p2p/qbittorrent/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, pkgconfig, which
-, boost, libtorrentRasterbar, qmakeHook, qt5
+, boost, libtorrentRasterbar, qmake, qtbase, qttools
 , debugSupport ? false # Debugging
 , guiSupport ? true, dbus_libs ? null # GUI (disable to run headless)
 , webuiSupport ? true # WebUI
@@ -17,9 +17,9 @@ stdenv.mkDerivation rec {
     sha256 = "0vs626khavhqqnq2hrwrxyc8ihbngharcf1fd37nwccvy13qqljn";
   };
 
-  nativeBuildInputs = [ pkgconfig which ];
+  nativeBuildInputs = [ pkgconfig which qmake ];
 
-  buildInputs = [ boost libtorrentRasterbar qt5.qtbase qt5.qttools ]
+  buildInputs = [ boost libtorrentRasterbar qtbase qttools ]
     ++ optional guiSupport dbus_libs;
 
   preConfigure = ''
diff --git a/pkgs/applications/office/cb2bib/default.nix b/pkgs/applications/office/cb2bib/default.nix
index abff61b881fc1..1004733a18b52 100644
--- a/pkgs/applications/office/cb2bib/default.nix
+++ b/pkgs/applications/office/cb2bib/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, qmakeHook, qtbase, qtwebkit, qtx11extras, lzo, libX11 }:
+{ stdenv, fetchurl, qmake, qtbase, qtwebkit, qtx11extras, lzo, libX11 }:
 
 stdenv.mkDerivation rec {
   name = pname + "-" + version;
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "0yz79v023w1229wzck3gij0iqah1xg8rg4a352q8idvg7bdmyfin";
   };
   buildInputs = [ qtbase qtwebkit qtx11extras lzo libX11 ];
-  nativeBuildInputs = [ qmakeHook ];
+  nativeBuildInputs = [ qmake ];
 
   configurePhase = ''
     runHook preConfigure
diff --git a/pkgs/applications/office/mendeley/default.nix b/pkgs/applications/office/mendeley/default.nix
index 95286f3ab6507..7178a0930e773 100644
--- a/pkgs/applications/office/mendeley/default.nix
+++ b/pkgs/applications/office/mendeley/default.nix
@@ -1,4 +1,5 @@
 { fetchurl, stdenv, dpkg, which
+, makeWrapper
 , alsaLib
 , desktop_file_utils
 , dbus
@@ -92,7 +93,7 @@ stdenv.mkDerivation {
     sha256 = sha256;
   };
 
-  nativeBuildInputs = [ qt5.makeQtWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
   buildInputs = [ dpkg which ] ++ deps;
 
   unpackPhase = "true";
@@ -107,7 +108,7 @@ stdenv.mkDerivation {
              $out/bin/mendeleydesktop
     paxmark m $out/bin/mendeleydesktop
 
-    wrapQtProgram $out/bin/mendeleydesktop \
+    wrapProgram $out/bin/mendeleydesktop \
       --add-flags "--unix-distro-build" \
       ${stdenv.lib.optionalString autorunLinkHandler
       ''--run "$out/bin/install-mendeley-link-handler.sh $out/bin/mendeleydesktop"''}
diff --git a/pkgs/applications/office/mytetra/default.nix b/pkgs/applications/office/mytetra/default.nix
index b35e60cf2d617..9f54f2df6bf2e 100644
--- a/pkgs/applications/office/mytetra/default.nix
+++ b/pkgs/applications/office/mytetra/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, qmakeHook, makeQtWrapper, qtsvg }:
+{ stdenv, fetchurl, qmake, qtsvg }:
 
 let
   version = "1.42.2";
@@ -9,7 +9,8 @@ in stdenv.mkDerivation rec {
     sha256 = "1ah44nf4ksxkh01a2zmgvvby4pwczhyq5vcp270rf6visp8v9804";
   };
 
-  buildInputs = [ qmakeHook makeQtWrapper qtsvg ];
+  nativeBuildInputs = [ qmake ];
+  buildInputs = [ qtsvg ];
 
   hardeningDisable = [ "format" ];
 
@@ -22,8 +23,6 @@ in stdenv.mkDerivation rec {
       --replace ":/resource/pic/logo.svg" "$out/share/icons/hicolor/48x48/apps/mytetra.png"
   '';
 
-  postInstall = "wrapQtProgram $out/bin/mytetra";
-
   meta = with stdenv.lib; {
     description = "Smart manager for information collecting";
     homepage = http://webhamster.ru/site/page/index/articles/projectcode/138;
diff --git a/pkgs/applications/office/skrooge/default.nix b/pkgs/applications/office/skrooge/default.nix
index acf60bd037559..38ec107bcf731 100644
--- a/pkgs/applications/office/skrooge/default.nix
+++ b/pkgs/applications/office/skrooge/default.nix
@@ -1,9 +1,10 @@
-{ stdenv, fetchurl, cmake, extra-cmake-modules, makeQtWrapper, qtwebkit, qtscript, grantlee,
+{ mkDerivation, lib, fetchurl,
+  cmake, extra-cmake-modules, qtwebkit, qtscript, grantlee,
   kxmlgui, kwallet, kparts, kdoctools, kjobwidgets, kdesignerplugin,
   kiconthemes, knewstuff, sqlcipher, qca-qt5, kdelibs4support, kactivities,
   knotifyconfig, krunner, libofx }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   name = "skrooge-${version}";
   version = "2.7.0";
 
@@ -12,21 +13,14 @@ stdenv.mkDerivation rec {
     sha256 = "1xrh9nal122rzlv4m0x8qah6zpqb6891al3351piarpk2xgjgj4x";
   };
 
-  nativeBuildInputs = [ cmake extra-cmake-modules makeQtWrapper ];
+  nativeBuildInputs = [ cmake extra-cmake-modules ];
 
   buildInputs = [ qtwebkit qtscript grantlee kxmlgui kwallet kparts kdoctools
     kjobwidgets kdesignerplugin kiconthemes knewstuff sqlcipher qca-qt5
     kdelibs4support kactivities knotifyconfig krunner libofx
   ];
 
-  enableParallelBuilding = true;
-
-  postInstall = ''
-    wrapQtProgram "$out/bin/skrooge"
-    wrapQtProgram "$out/bin/skroogeconvert"
-  '';
-
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A personal finances manager, powered by KDE";
     license = with licenses; [ gpl3 ];
     maintainers = with maintainers; [ joko ];
diff --git a/pkgs/applications/science/astronomy/stellarium/default.nix b/pkgs/applications/science/astronomy/stellarium/default.nix
index 49c774f7039a6..da6aa38d746a2 100644
--- a/pkgs/applications/science/astronomy/stellarium/default.nix
+++ b/pkgs/applications/science/astronomy/stellarium/default.nix
@@ -1,9 +1,10 @@
-{ stdenv, fetchurl, cmake, freetype, libpng, mesa, gettext, openssl, perl, libiconv
-, qtscript, qtserialport, qttools, makeQtWrapper
+{ mkDerivation, lib, fetchurl
+, cmake, freetype, libpng, mesa, gettext, openssl, perl, libiconv
+, qtscript, qtserialport, qttools
 , qtmultimedia
 }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   name = "stellarium-${version}";
   version = "0.15.0";
 
@@ -12,25 +13,19 @@ stdenv.mkDerivation rec {
     sha256 = "0il751lgnfkx35h1m8fzwwnrygpxjx2a80gng1i1rbybkykf7l3l";
   };
 
-  nativeBuildInputs = [ makeQtWrapper ];
+  nativeBuildInputs = [ cmake perl ];
 
   buildInputs = [
-    cmake freetype libpng mesa gettext openssl perl libiconv qtscript
-    qtserialport qttools qtmultimedia
+    freetype libpng mesa openssl libiconv qtscript qtserialport qttools
+    qtmultimedia
   ];
 
-  enableParallelBuilding = true;
-
-  postInstall = ''
-    wrapQtProgram "$out/bin/stellarium"
-  '';
-
-  meta = {
+  meta = with lib; {
     description = "Free open-source planetarium";
     homepage = "http://stellarium.org/";
-    license = stdenv.lib.licenses.gpl2;
+    license = licenses.gpl2;
 
-    platforms = stdenv.lib.platforms.linux; # should be mesaPlatforms, but we don't have qt on darwin
-    maintainers = [ stdenv.lib.maintainers.peti ];
+    platforms = platforms.linux; # should be mesaPlatforms, but we don't have qt on darwin
+    maintainers = [ maintainers.peti ];
   };
 }
diff --git a/pkgs/applications/science/electronics/fritzing/default.nix b/pkgs/applications/science/electronics/fritzing/default.nix
index 838697f1394f5..ab50885431027 100644
--- a/pkgs/applications/science/electronics/fritzing/default.nix
+++ b/pkgs/applications/science/electronics/fritzing/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchpatch, fetchFromGitHub, makeQtWrapper, qmakeHook, pkgconfig
+{ stdenv, fetchpatch, fetchFromGitHub, qmake, pkgconfig
 , qtbase, qtsvg, qtserialport, boost, libgit2
 }:
 
@@ -28,20 +28,14 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ qtbase qtsvg qtserialport boost libgit2 ];
 
-  nativeBuildInputs = [ qmakeHook makeQtWrapper pkgconfig ];
+  nativeBuildInputs = [ qmake pkgconfig ];
 
   qmakeFlags = [ "phoenix.pro" ];
 
-  enableParallelBuilding = true;
-
   preConfigure = ''
     ln -s "$parts" parts
   '';
 
-  postInstall = ''
-    wrapQtProgram $out/bin/Fritzing
-  '';
-
   meta = {
     description = "An open source prototyping tool for Arduino-based projects";
     homepage = http://fritzing.org/;
diff --git a/pkgs/applications/science/math/speedcrunch/default.nix b/pkgs/applications/science/math/speedcrunch/default.nix
index 861deaff741cd..d36b135531c24 100644
--- a/pkgs/applications/science/math/speedcrunch/default.nix
+++ b/pkgs/applications/science/math/speedcrunch/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchgit, cmake, makeQtWrapper, qtbase, qttools }:
+{ mkDerivation, lib, fetchgit, cmake, qtbase, qttools }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   name = "speedcrunch-${version}";
   version = "0.12.0";
 
@@ -11,21 +11,15 @@ stdenv.mkDerivation rec {
     sha256 = "0vh7cd1915bjqzkdp3sk25ngy8cq624mkh8c53c5bnzk357kb0fk";
   };
 
-  enableParallelBuilding = true;
-
   buildInputs = [ qtbase qttools ];
 
-  nativeBuildInputs = [ cmake makeQtWrapper ];
+  nativeBuildInputs = [ cmake ];
 
   preConfigure = ''
     cd src
   '';
 
-  postFixup = ''
-    wrapQtProgram $out/bin/speedcrunch
-  '';
-
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage    = http://speedcrunch.org;
     license     = licenses.gpl2Plus;
     description = "A fast power user calculator";
diff --git a/pkgs/applications/science/programming/fdr/default.nix b/pkgs/applications/science/programming/fdr/default.nix
index a82027a628f3b..8ed8e0e73b000 100644
--- a/pkgs/applications/science/programming/fdr/default.nix
+++ b/pkgs/applications/science/programming/fdr/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation {
     cp -r * "$out"
     # Hack around lack of libtinfo in NixOS
     ln -s ${ncurses.out}/lib/libncursesw.so.6 $out/lib/libtinfo.so.5
-    ln -s ${qtbase.out}/lib/qt5/plugins $out/lib/qt_plugins
+    ln -s ${qtbase.out}/$qtPluginPrefix $out/lib/qt_plugins
     ln -s ${zlib.out}/lib/libz.so.1 $out/lib/libz.so.1
 
     for b in fdr4 _fdr4 refines _refines cspmprofiler cspmexplorerprof
diff --git a/pkgs/applications/science/robotics/qgroundcontrol/default.nix b/pkgs/applications/science/robotics/qgroundcontrol/default.nix
index e323b42d7ae60..98ec39eb20642 100644
--- a/pkgs/applications/science/robotics/qgroundcontrol/default.nix
+++ b/pkgs/applications/science/robotics/qgroundcontrol/default.nix
@@ -1,19 +1,16 @@
 { stdenv, fetchgit, git,  espeak, SDL, udev, doxygen, cmake
-  , qtbase, qtlocation, qtserialport, qtdeclarative, qtconnectivity, qtxmlpatterns
-  , qtsvg, qtquick1, qtquickcontrols, qtgraphicaleffects, qmakeHook
-  , makeQtWrapper, lndir
-  , gst_all_1, qt-gstreamer1, pkgconfig, glibc
-  , version ? "2.9.4"
+, qtbase, qtlocation, qtserialport, qtdeclarative, qtconnectivity, qtxmlpatterns
+, qtsvg, qtquick1, qtquickcontrols, qtgraphicaleffects, qmake
+, makeWrapper, lndir
+, gst_all_1, qt-gstreamer1, pkgconfig, glibc
+, version ? "2.9.4"
 }:
 
 stdenv.mkDerivation rec {
   name = "qgroundcontrol-${version}";
-  buildInputs = [
-   SDL udev doxygen git
-  ] ++ gstInputs;
 
   qtInputs = [
-    qtbase qtlocation qtserialport qtdeclarative qtconnectivity qtxmlpatterns qtsvg 
+    qtbase qtlocation qtserialport qtdeclarative qtconnectivity qtxmlpatterns qtsvg
     qtquick1 qtquickcontrols qtgraphicaleffects
   ];
 
@@ -22,9 +19,8 @@ stdenv.mkDerivation rec {
   ];
 
   enableParallelBuilding = true;
-  nativeBuildInputs = [
-    pkgconfig makeQtWrapper qmakeHook
- ] ++ qtInputs;
+  buildInputs = [ SDL udev doxygen git ] ++ gstInputs ++ qtInputs;
+  nativeBuildInputs = [ pkgconfig makeWrapper qmake ];
 
   patches = [ ./0001-fix-gcc-cmath-namespace-issues.patch ];
   postPatch = ''
@@ -56,10 +52,10 @@ stdenv.mkDerivation rec {
 
     # we need to link to our Qt deps in our own output if we want
     # this package to work without being installed as a system pkg
-    mkdir -p $out/lib/qt5 $out/etc/xdg
+    mkdir -p $out/lib/qt-$qtCompatVersion $out/etc/xdg
     for pkg in $qtInputs; do
-      if [[ -d $pkg/lib/qt5 ]]; then
-        for dir in lib/qt5 share etc/xdg; do
+      if [[ -d $pkg/lib/qt-$qtCompatVersion ]]; then
+        for dir in lib/qt-$qtCompatVersion share etc/xdg; do
           if [[ -d $pkg/$dir ]]; then
             ${lndir}/bin/lndir "$pkg/$dir" "$out/$dir"
           fi
@@ -70,7 +66,7 @@ stdenv.mkDerivation rec {
 
 
   postInstall = ''
-    wrapQtProgram "$out/bin/qgroundcontrol" \
+    wrapProgram "$out/bin/qgroundcontrol" \
       --prefix GST_PLUGIN_SYSTEM_PATH : "$GST_PLUGIN_SYSTEM_PATH"
   '';
   
diff --git a/pkgs/applications/video/bomi/default.nix b/pkgs/applications/video/bomi/default.nix
index c98e27479894c..bffb038f65366 100644
--- a/pkgs/applications/video/bomi/default.nix
+++ b/pkgs/applications/video/bomi/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchFromGitHub, fetchpatch, pkgconfig, perl, python, which, makeQtWrapper
+{ stdenv, fetchFromGitHub, fetchpatch, pkgconfig, perl, python, which
 , libX11, libxcb, mesa
-, qtbase, qtdeclarative, qtquickcontrols, qttools, qtx11extras, qmakeHook
+, qtbase, qtdeclarative, qtquickcontrols, qttools, qtx11extras, qmake, makeWrapper
 , libchardet
 , ffmpeg
 
@@ -90,7 +90,7 @@ stdenv.mkDerivation rec {
   '';
 
   postInstall = ''
-    wrapQtProgram $out/bin/bomi \
+    wrapProgram $out/bin/bomi \
       ${optionalString youtubeSupport "--prefix PATH ':' '${youtube-dl}/bin'"}
   '';
 
@@ -104,9 +104,7 @@ stdenv.mkDerivation rec {
                    ++ optional cddaSupport "--enable-cdda"
                    ;
 
-  nativeBuildInputs = [ pkgconfig perl python which qttools makeQtWrapper qmakeHook ];
-
-  enableParallelBuilding = true;
+  nativeBuildInputs = [ makeWrapper pkgconfig perl python which qttools qmake ];
 
   meta = with stdenv.lib; {
     description = "Powerful and easy-to-use multimedia player";
diff --git a/pkgs/applications/video/openshot-qt/default.nix b/pkgs/applications/video/openshot-qt/default.nix
index 656ec1163dc22..f67ab412c26ef 100644
--- a/pkgs/applications/video/openshot-qt/default.nix
+++ b/pkgs/applications/video/openshot-qt/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub
 , doxygen, python3Packages, libopenshot
-, makeQtWrapper, wrapGAppsHook, gtk3 }:
+, wrapGAppsHook, gtk3 }:
 
 python3Packages.buildPythonApplication rec {
   name = "openshot-qt-${version}";
diff --git a/pkgs/applications/video/shotcut/default.nix b/pkgs/applications/video/shotcut/default.nix
index 140c8e5863d17..4ca31916965c9 100644
--- a/pkgs/applications/video/shotcut/default.nix
+++ b/pkgs/applications/video/shotcut/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, SDL, frei0r, gettext, mlt, jack1, pkgconfig, qtbase,
 qtmultimedia, qtwebkit, qtx11extras, qtwebsockets, qtquickcontrols,
 qtgraphicaleffects,
-qmakeHook, makeQtWrapper }:
+qmake, makeWrapper }:
 
 stdenv.mkDerivation rec {
   name = "shotcut-${version}";
@@ -12,10 +12,14 @@ stdenv.mkDerivation rec {
     sha256 = "09nygz1x9fvqf33gqpc6jnr1j7ny0yny3w2ngwqqfkf3f8n83qhr";
   };
 
-  buildInputs = [ SDL frei0r gettext mlt pkgconfig qtbase qtmultimedia qtwebkit
-    qtx11extras qtwebsockets qtquickcontrols qtgraphicaleffects qmakeHook makeQtWrapper ];
 
   enableParallelBuilding = true;
+  nativeBuildInputs = [ makeWrapper pkgconfig qmake ];
+  buildInputs = [
+    SDL frei0r gettext mlt
+    qtbase qtmultimedia qtwebkit qtx11extras qtwebsockets qtquickcontrols
+    qtgraphicaleffects
+  ];
 
   prePatch = ''
     sed 's_shotcutPath, "qmelt"_"${mlt}/bin/melt"_' -i src/jobs/meltjob.cpp
@@ -27,7 +31,7 @@ stdenv.mkDerivation rec {
   postInstall = ''
     mkdir -p $out/share/shotcut
     cp -r src/qml $out/share/shotcut/
-    wrapQtProgram $out/bin/shotcut --prefix FREI0R_PATH : ${frei0r}/lib/frei0r-1 --prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath [ jack1 SDL ]} --prefix PATH : ${mlt}/bin
+    wrapProgram $out/bin/shotcut --prefix FREI0R_PATH : ${frei0r}/lib/frei0r-1 --prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath [ jack1 SDL ]} --prefix PATH : ${mlt}/bin
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/video/smplayer/default.nix b/pkgs/applications/video/smplayer/default.nix
index 146cb3b0e464a..b7e4fe6b7c6df 100644
--- a/pkgs/applications/video/smplayer/default.nix
+++ b/pkgs/applications/video/smplayer/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, qmakeHook, qtscript }:
+{ stdenv, fetchurl, qmake, qtscript }:
 
 stdenv.mkDerivation rec {
   name = "smplayer-17.6.0";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ qtscript ];
-  nativeBuildInputs = [ qmakeHook ];
+  nativeBuildInputs = [ qmake ];
 
   dontUseQmakeConfigure = true;
 
diff --git a/pkgs/applications/video/smtube/default.nix b/pkgs/applications/video/smtube/default.nix
index 3f0aff6a15b9a..b058879670935 100644
--- a/pkgs/applications/video/smtube/default.nix
+++ b/pkgs/applications/video/smtube/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, qmakeHook, qtscript, qtwebkit }:
+{ stdenv, fetchurl, qmake, qtscript, qtwebkit }:
 
 stdenv.mkDerivation rec {
   version = "17.5.0";
@@ -15,7 +15,8 @@ stdenv.mkDerivation rec {
 
   dontUseQmakeConfigure = true;
 
-  buildInputs = [ qmakeHook qtscript qtwebkit ];
+  nativeBuildInputs = [ qmake ];
+  buildInputs = [ qtscript qtwebkit ];
 
   meta = with stdenv.lib; {
     description = "Play and download Youtube videos";
diff --git a/pkgs/applications/video/vokoscreen/default.nix b/pkgs/applications/video/vokoscreen/default.nix
index 204580b108f77..b10495434b997 100644
--- a/pkgs/applications/video/vokoscreen/default.nix
+++ b/pkgs/applications/video/vokoscreen/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchgit
-, pkgconfig, qtbase, qttools, qmakeHook, qtx11extras, alsaLib, libv4l, libXrandr
+, pkgconfig, qtbase, qttools, qmake, qtx11extras, alsaLib, libv4l, libXrandr
 , ffmpeg
 }:
 
@@ -11,13 +11,12 @@ stdenv.mkDerivation {
     sha256 = "1hvw7xz1mj16ishbaip73wddbmgibsz0pad4y586zbarpynss25z";
   };
 
+  nativeBuildInputs = [ pkgconfig qmake ];
   buildInputs = [
     alsaLib
     libv4l
-    pkgconfig
     qtbase
     qttools
-    qmakeHook
     qtx11extras
     libXrandr
   ];
diff --git a/pkgs/applications/virtualization/virt-manager/qt.nix b/pkgs/applications/virtualization/virt-manager/qt.nix
index 7e05324a046bd..783a424e18c27 100644
--- a/pkgs/applications/virtualization/virt-manager/qt.nix
+++ b/pkgs/applications/virtualization/virt-manager/qt.nix
@@ -1,9 +1,9 @@
-{ stdenv, fetchFromGitHub, cmake, pkgconfig
-, qtbase, qtmultimedia, qtsvg, makeQtWrapper
+{ mkDerivation, lib, fetchFromGitHub, cmake, pkgconfig
+, qtbase, qtmultimedia, qtsvg
 , lxqt, libvncserver, libvirt, pixman, spice_gtk, spice_protocol
 }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   name = "virt-manager-qt-${version}";
   version = "0.43.70.2";
 
@@ -23,17 +23,9 @@ stdenv.mkDerivation rec {
     libvirt libvncserver pixman spice_gtk spice_protocol
   ];
 
-  nativeBuildInputs = [ cmake pkgconfig makeQtWrapper ];
+  nativeBuildInputs = [ cmake pkgconfig ];
 
-  postFixup = ''
-    for f in $out/bin/* ; do
-      wrapQtProgram $f
-    done
-  '';
-
-  enableParallelBuilding = true;
-
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = http://f1ash.github.io/qt-virt-manager;
     description = "Desktop user interface for managing virtual machines (QT)";
     longDescription = ''
diff --git a/pkgs/applications/virtualization/virtualbox/default.nix b/pkgs/applications/virtualization/virtualbox/default.nix
index 6c49e95b6b944..32e8f9d23f4bf 100644
--- a/pkgs/applications/virtualization/virtualbox/default.nix
+++ b/pkgs/applications/virtualization/virtualbox/default.nix
@@ -58,7 +58,7 @@ in stdenv.mkDerivation {
     ++ optional pythonBindings python # Python is needed even when not building bindings
     ++ optional pulseSupport libpulseaudio
     ++ optionals (headless) [ libXrandr ]
-    ++ optionals (!headless) [ qt5.qtbase qt5.qtx11extras qt5.makeQtWrapper libXinerama SDL ];
+    ++ optionals (!headless) [ qt5.qtbase qt5.qtx11extras libXinerama SDL ];
 
   hardeningDisable = [ "fortify" "pic" "stackprotector" ];
 
@@ -153,12 +153,8 @@ in stdenv.mkDerivation {
     find out/linux.*/${buildType}/bin -mindepth 1 -maxdepth 1 \
       -name src -o -exec cp -avt "$libexec" {} +
 
-    # Create wrapper script
     mkdir -p $out/bin
-    ${optionalString (!headless) ''
-      makeQtWrapper "$libexec/VirtualBox" $out/bin/VirtualBox
-    ''}
-    for file in ${optionalString (!headless) "VBoxSDL rdesktop-vrdp"} VBoxManage VBoxBalloonCtrl VBoxHeadless; do
+    for file in ${optionalString (!headless) "VirtualBox VBoxSDL rdesktop-vrdp"} VBoxManage VBoxBalloonCtrl VBoxHeadless; do
         echo "Linking $file to /bin"
         test -x "$libexec/$file"
         ln -s "$libexec/$file" $out/bin/$file