summary refs log tree commit diff
path: root/pkgs/desktops
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/desktops')
-rw-r--r--pkgs/desktops/kde-5/applications-15.12/ark.nix58
-rw-r--r--pkgs/desktops/kde-5/applications-15.12/baloo-widgets.nix35
-rw-r--r--pkgs/desktops/kde-5/applications-15.12/default.nix58
-rw-r--r--pkgs/desktops/kde-5/applications-15.12/dolphin-plugins.nix31
-rw-r--r--pkgs/desktops/kde-5/applications-15.12/dolphin.nix70
-rwxr-xr-xpkgs/desktops/kde-5/applications-15.12/fetchsrcs.sh56
-rw-r--r--pkgs/desktops/kde-5/applications-15.12/ffmpegthumbs.nix21
-rw-r--r--pkgs/desktops/kde-5/applications-15.12/filelight.nix35
-rw-r--r--pkgs/desktops/kde-5/applications-15.12/gpgmepp.nix21
-rw-r--r--pkgs/desktops/kde-5/applications-15.12/gwenview.nix44
-rw-r--r--pkgs/desktops/kde-5/applications-15.12/kate.nix69
-rw-r--r--pkgs/desktops/kde-5/applications-15.12/kcalc.nix38
-rw-r--r--pkgs/desktops/kde-5/applications-15.12/kde-app.nix23
-rw-r--r--pkgs/desktops/kde-5/applications-15.12/kde-locale-4.nix20
-rw-r--r--pkgs/desktops/kde-5/applications-15.12/kde-locale-5.nix17
-rw-r--r--pkgs/desktops/kde-5/applications-15.12/kdegraphics-thumbnailers.nix23
-rw-r--r--pkgs/desktops/kde-5/applications-15.12/kdelibs/0001-old-kde4-cmake-policies.patch56
-rw-r--r--pkgs/desktops/kde-5/applications-15.12/kdelibs/0002-polkit-install-path.patch25
-rw-r--r--pkgs/desktops/kde-5/applications-15.12/kdelibs/0003-remove_xdg_impurities.patch47
-rw-r--r--pkgs/desktops/kde-5/applications-15.12/kdelibs/default.nix43
-rw-r--r--pkgs/desktops/kde-5/applications-15.12/kdelibs/setup-hook.sh10
-rw-r--r--pkgs/desktops/kde-5/applications-15.12/kdenetwork-filesharing.nix29
-rw-r--r--pkgs/desktops/kde-5/applications-15.12/kgpg.nix38
-rw-r--r--pkgs/desktops/kde-5/applications-15.12/kio-extras.nix58
-rw-r--r--pkgs/desktops/kde-5/applications-15.12/konsole.nix68
-rw-r--r--pkgs/desktops/kde-5/applications-15.12/l10n.nix237
-rw-r--r--pkgs/desktops/kde-5/applications-15.12/libkdcraw.nix19
-rw-r--r--pkgs/desktops/kde-5/applications-15.12/libkexiv2.nix19
-rw-r--r--pkgs/desktops/kde-5/applications-15.12/libkipi.nix22
-rw-r--r--pkgs/desktops/kde-5/applications-15.12/okular.nix41
-rw-r--r--pkgs/desktops/kde-5/applications-15.12/print-manager.nix47
-rw-r--r--pkgs/desktops/kde-5/applications-15.12/spectacle.nix46
-rw-r--r--pkgs/desktops/kde-5/applications-15.12/srcs.nix1933
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/attica.nix11
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/baloo.nix25
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/bluez-qt.nix17
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/breeze-icons.nix10
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/default.nix118
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/extra-cmake-modules/0001-extra-cmake-modules-paths.patch74
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/extra-cmake-modules/default.nix18
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/extra-cmake-modules/setup-hook.sh27
-rwxr-xr-xpkgs/desktops/kde-5/frameworks-5.19/fetchsrcs.sh57
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/frameworkintegration.nix17
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kactivities.nix22
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kapidox.nix12
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/karchive.nix11
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kauth/default.nix16
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kauth/kauth-policy-install.patch13
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kbookmarks.nix25
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kcmutils/0001-qdiriterator-follow-symlinks.patch25
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kcmutils/default.nix17
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kcodecs.nix11
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kcompletion.nix14
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kconfig.nix16
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kconfigwidgets/0001-qdiriterator-follow-symlinks.patch25
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kconfigwidgets/default.nix17
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kcoreaddons.nix16
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kcrash.nix16
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kdbusaddons.nix17
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kdeclarative.nix22
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kded.nix19
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kdelibs4support.nix32
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kdesignerplugin.nix34
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kdesu.nix13
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kdewebkit.nix13
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kdnssd.nix13
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kdoctools/default.nix20
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kdoctools/kdoctools-no-find-docbook-xml.patch12
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kdoctools/setup-hook.sh5
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kemoticons.nix17
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kfilemetadata.nix13
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kglobalaccel.nix23
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kguiaddons.nix13
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/khtml.nix21
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/ki18n.nix17
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kiconthemes/default-theme-breeze.patch13
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kiconthemes/default.nix18
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kiconthemes/series1
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kidletime.nix15
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kimageformats.nix13
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kinit/0001-kinit-libpath.patch42
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kinit/default.nix17
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kio/default.nix33
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kio/samba-search-path.patch28
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kio/series1
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kitemmodels.nix11
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kitemviews.nix11
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kjobwidgets.nix16
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kjs.nix16
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kjsembed.nix17
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kmediaplayer.nix15
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/knewstuff.nix17
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/knotifications.nix21
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/knotifyconfig.nix13
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kpackage/allow-external-paths.patch13
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kpackage/default.nix23
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kpackage/qdiriterator-follow-symlinks.patch26
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kpackage/series2
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kparts.nix17
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kpeople.nix15
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kplotting.nix11
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kpty.nix10
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kross.nix14
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/krunner.nix16
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kservice/0001-qdiriterator-follow-symlinks.patch25
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kservice/0002-no-canonicalize-path.patch25
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kservice/default.nix19
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kservice/setup-hook.sh43
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/ktexteditor/default.nix22
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/ktexteditor/no-qcoreapplication.patch36
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/ktexteditor/series1
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/ktextwidgets.nix16
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kunitconversion.nix10
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kwallet.nix21
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kwidgetsaddons.nix11
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kwindowsystem.nix13
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kxmlgui.nix18
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kxmlrpcclient.nix10
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/modemmanager-qt.nix13
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/networkmanager-qt.nix13
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/oxygen-icons5.nix13
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/plasma-framework/default.nix25
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/solid.nix17
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/sonnet.nix13
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/srcs.nix565
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/threadweaver.nix11
-rw-r--r--pkgs/desktops/kde-5/plasma-5.5/bluedevil.nix (renamed from pkgs/desktops/plasma-5.5/bluedevil.nix)0
-rw-r--r--pkgs/desktops/kde-5/plasma-5.5/breeze-gtk.nix (renamed from pkgs/desktops/plasma-5.5/breeze-gtk.nix)0
-rw-r--r--pkgs/desktops/kde-5/plasma-5.5/breeze-qt4.nix (renamed from pkgs/desktops/plasma-5.5/breeze-qt4.nix)0
-rw-r--r--pkgs/desktops/kde-5/plasma-5.5/breeze-qt5.nix (renamed from pkgs/desktops/plasma-5.5/breeze-qt5.nix)0
-rw-r--r--pkgs/desktops/kde-5/plasma-5.5/default.nix (renamed from pkgs/desktops/plasma-5.5/default.nix)0
-rwxr-xr-xpkgs/desktops/kde-5/plasma-5.5/fetchsrcs.sh (renamed from pkgs/desktops/plasma-5.5/fetchsrcs.sh)0
-rw-r--r--pkgs/desktops/kde-5/plasma-5.5/kde-cli-tools.nix (renamed from pkgs/desktops/plasma-5.5/kde-cli-tools.nix)0
-rw-r--r--pkgs/desktops/kde-5/plasma-5.5/kde-gtk-config/0001-follow-symlinks.patch (renamed from pkgs/desktops/plasma-5.5/kde-gtk-config/0001-follow-symlinks.patch)0
-rw-r--r--pkgs/desktops/kde-5/plasma-5.5/kde-gtk-config/default.nix (renamed from pkgs/desktops/plasma-5.5/kde-gtk-config/default.nix)0
-rw-r--r--pkgs/desktops/kde-5/plasma-5.5/kdecoration.nix (renamed from pkgs/desktops/plasma-5.5/kdecoration.nix)0
-rw-r--r--pkgs/desktops/kde-5/plasma-5.5/kdeplasma-addons.nix (renamed from pkgs/desktops/plasma-5.5/kdeplasma-addons.nix)0
-rw-r--r--pkgs/desktops/kde-5/plasma-5.5/kgamma5.nix (renamed from pkgs/desktops/plasma-5.5/kgamma5.nix)0
-rw-r--r--pkgs/desktops/kde-5/plasma-5.5/khelpcenter.nix (renamed from pkgs/desktops/plasma-5.5/khelpcenter.nix)0
-rw-r--r--pkgs/desktops/kde-5/plasma-5.5/khotkeys.nix (renamed from pkgs/desktops/plasma-5.5/khotkeys.nix)0
-rw-r--r--pkgs/desktops/kde-5/plasma-5.5/kinfocenter.nix (renamed from pkgs/desktops/plasma-5.5/kinfocenter.nix)0
-rw-r--r--pkgs/desktops/kde-5/plasma-5.5/kmenuedit.nix (renamed from pkgs/desktops/plasma-5.5/kmenuedit.nix)0
-rw-r--r--pkgs/desktops/kde-5/plasma-5.5/kscreen.nix (renamed from pkgs/desktops/plasma-5.5/kscreen.nix)0
-rw-r--r--pkgs/desktops/kde-5/plasma-5.5/kscreenlocker.nix (renamed from pkgs/desktops/plasma-5.5/kscreenlocker.nix)0
-rw-r--r--pkgs/desktops/kde-5/plasma-5.5/ksshaskpass.nix (renamed from pkgs/desktops/plasma-5.5/ksshaskpass.nix)0
-rw-r--r--pkgs/desktops/kde-5/plasma-5.5/ksysguard.nix (renamed from pkgs/desktops/plasma-5.5/ksysguard.nix)0
-rw-r--r--pkgs/desktops/kde-5/plasma-5.5/kwayland.nix (renamed from pkgs/desktops/plasma-5.5/kwayland.nix)0
-rw-r--r--pkgs/desktops/kde-5/plasma-5.5/kwin/0001-qdiriterator-follow-symlinks.patch (renamed from pkgs/desktops/plasma-5.5/kwin/0001-qdiriterator-follow-symlinks.patch)0
-rw-r--r--pkgs/desktops/kde-5/plasma-5.5/kwin/default.nix (renamed from pkgs/desktops/plasma-5.5/kwin/default.nix)0
-rw-r--r--pkgs/desktops/kde-5/plasma-5.5/kwrited.nix (renamed from pkgs/desktops/plasma-5.5/kwrited.nix)0
-rw-r--r--pkgs/desktops/kde-5/plasma-5.5/libkscreen/default.nix (renamed from pkgs/desktops/plasma-5.5/libkscreen/default.nix)0
-rw-r--r--pkgs/desktops/kde-5/plasma-5.5/libksysguard/0001-qdiriterator-follow-symlinks.patch (renamed from pkgs/desktops/plasma-5.5/libksysguard/0001-qdiriterator-follow-symlinks.patch)0
-rw-r--r--pkgs/desktops/kde-5/plasma-5.5/libksysguard/default.nix (renamed from pkgs/desktops/plasma-5.5/libksysguard/default.nix)0
-rw-r--r--pkgs/desktops/kde-5/plasma-5.5/milou.nix (renamed from pkgs/desktops/plasma-5.5/milou.nix)0
-rw-r--r--pkgs/desktops/kde-5/plasma-5.5/oxygen.nix (renamed from pkgs/desktops/plasma-5.5/oxygen.nix)0
-rw-r--r--pkgs/desktops/kde-5/plasma-5.5/plasma-desktop/0001-qt-5.5-QML-import-paths.patch (renamed from pkgs/desktops/plasma-5.5/plasma-desktop/0001-qt-5.5-QML-import-paths.patch)0
-rw-r--r--pkgs/desktops/kde-5/plasma-5.5/plasma-desktop/0002-hwclock.patch (renamed from pkgs/desktops/plasma-5.5/plasma-desktop/0002-hwclock.patch)0
-rw-r--r--pkgs/desktops/kde-5/plasma-5.5/plasma-desktop/0003-tzdir.patch (renamed from pkgs/desktops/plasma-5.5/plasma-desktop/0003-tzdir.patch)0
-rw-r--r--pkgs/desktops/kde-5/plasma-5.5/plasma-desktop/default.nix (renamed from pkgs/desktops/plasma-5.5/plasma-desktop/default.nix)0
-rw-r--r--pkgs/desktops/kde-5/plasma-5.5/plasma-mediacenter.nix (renamed from pkgs/desktops/plasma-5.5/plasma-mediacenter.nix)0
-rw-r--r--pkgs/desktops/kde-5/plasma-5.5/plasma-nm/0001-mobile-broadband-provider-info-path.patch (renamed from pkgs/desktops/plasma-5.5/plasma-nm/0001-mobile-broadband-provider-info-path.patch)0
-rw-r--r--pkgs/desktops/kde-5/plasma-5.5/plasma-nm/default.nix (renamed from pkgs/desktops/plasma-5.5/plasma-nm/default.nix)0
-rw-r--r--pkgs/desktops/kde-5/plasma-5.5/plasma-pa.nix (renamed from pkgs/desktops/plasma-5.5/plasma-pa.nix)0
-rw-r--r--pkgs/desktops/kde-5/plasma-5.5/plasma-workspace-wallpapers.nix (renamed from pkgs/desktops/plasma-5.5/plasma-workspace-wallpapers.nix)0
-rw-r--r--pkgs/desktops/kde-5/plasma-5.5/plasma-workspace/default.nix (renamed from pkgs/desktops/plasma-5.5/plasma-workspace/default.nix)0
-rw-r--r--pkgs/desktops/kde-5/plasma-5.5/plasma-workspace/qml-import-path.patch (renamed from pkgs/desktops/plasma-5.5/plasma-workspace/qml-import-path.patch)0
-rw-r--r--pkgs/desktops/kde-5/plasma-5.5/plasma-workspace/series (renamed from pkgs/desktops/plasma-5.5/plasma-workspace/series)0
-rw-r--r--pkgs/desktops/kde-5/plasma-5.5/plasma-workspace/startkde.patch (renamed from pkgs/desktops/plasma-5.5/plasma-workspace/startkde.patch)0
-rw-r--r--pkgs/desktops/kde-5/plasma-5.5/polkit-kde-agent.nix (renamed from pkgs/desktops/plasma-5.5/polkit-kde-agent.nix)0
-rw-r--r--pkgs/desktops/kde-5/plasma-5.5/powerdevil.nix (renamed from pkgs/desktops/plasma-5.5/powerdevil.nix)0
-rw-r--r--pkgs/desktops/kde-5/plasma-5.5/setup-hook.sh (renamed from pkgs/desktops/plasma-5.5/setup-hook.sh)0
-rw-r--r--pkgs/desktops/kde-5/plasma-5.5/srcs.nix (renamed from pkgs/desktops/plasma-5.5/srcs.nix)0
-rw-r--r--pkgs/desktops/kde-5/plasma-5.5/systemsettings.nix (renamed from pkgs/desktops/plasma-5.5/systemsettings.nix)0
173 files changed, 5696 insertions, 0 deletions
diff --git a/pkgs/desktops/kde-5/applications-15.12/ark.nix b/pkgs/desktops/kde-5/applications-15.12/ark.nix
new file mode 100644
index 000000000000..36a1ca7cfbd7
--- /dev/null
+++ b/pkgs/desktops/kde-5/applications-15.12/ark.nix
@@ -0,0 +1,58 @@
+{ kdeApp
+, lib
+, extra-cmake-modules
+, kdoctools
+, karchive
+, kconfig
+, kcrash
+, kdbusaddons
+, ki18n
+, kiconthemes
+, khtml
+, kio
+, kservice
+, kpty
+, kwidgetsaddons
+, libarchive
+, p7zip
+, unrar
+, unzipNLS
+, zip
+}:
+
+let PATH = lib.makeSearchPath "bin" [
+      p7zip unrar unzipNLS zip
+    ];
+in
+
+kdeApp {
+  name = "ark";
+  nativeBuildInputs = [
+    extra-cmake-modules
+    kdoctools
+  ];
+  buildInputs = [
+    karchive
+    kconfig
+    kcrash
+    kdbusaddons
+    kiconthemes
+    kservice
+    kpty
+    kwidgetsaddons
+    libarchive
+  ];
+  propagatedBuildInputs = [
+    khtml
+    ki18n
+    kio
+  ];
+  postInstall = ''
+    wrapQtProgram "$out/bin/ark" \
+        --prefix PATH : "${PATH}"
+  '';
+  meta = {
+    license = with lib.licenses; [ gpl2 lgpl3 ];
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/applications-15.12/baloo-widgets.nix b/pkgs/desktops/kde-5/applications-15.12/baloo-widgets.nix
new file mode 100644
index 000000000000..a24928160df1
--- /dev/null
+++ b/pkgs/desktops/kde-5/applications-15.12/baloo-widgets.nix
@@ -0,0 +1,35 @@
+{ kdeApp
+, lib
+, extra-cmake-modules
+, kdoctools
+, kconfig
+, kio
+, ki18n
+, kservice
+, kfilemetadata
+, baloo
+, kdelibs4support
+}:
+
+kdeApp {
+  name = "baloo-widgets";
+  nativeBuildInputs = [
+    extra-cmake-modules
+    kdoctools
+  ];
+  buildInputs = [
+    kconfig
+    kservice
+  ];
+  propagatedBuildInputs = [
+    baloo
+    kdelibs4support
+    kfilemetadata
+    ki18n
+    kio
+  ];
+  meta = {
+    license = [ lib.licenses.lgpl21 ];
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/applications-15.12/default.nix b/pkgs/desktops/kde-5/applications-15.12/default.nix
new file mode 100644
index 000000000000..5db80b45b8f5
--- /dev/null
+++ b/pkgs/desktops/kde-5/applications-15.12/default.nix
@@ -0,0 +1,58 @@
+# Maintainer's Notes:
+#
+# Minor updates:
+#  1. Edit ./manifest.sh to point to the updated URL. Upstream sometimes
+#     releases updates that include only the changed packages; in this case,
+#     multiple URLs can be provided and the results will be merged.
+#  2. Run ./manifest.sh and ./dependencies.sh.
+#  3. Build and enjoy.
+#
+# Major updates:
+#  We prefer not to immediately overwrite older versions with major updates, so
+#  make a copy of this directory first. After copying, be sure to delete ./tmp
+#  if it exists. Then follow the minor update instructions.
+
+{ pkgs, debug ? false }:
+
+let
+
+  inherit (pkgs) lib stdenv;
+
+  srcs = import ./srcs.nix { inherit (pkgs) fetchurl; inherit mirror; };
+  mirror = "mirror://kde";
+
+  packages = self: with self; {
+
+    kdeApp = import ./kde-app.nix {
+      inherit stdenv lib;
+      inherit debug srcs;
+    };
+
+    kdelibs = callPackage ./kdelibs { inherit (pkgs) attica phonon; };
+
+    ark = callPackage ./ark.nix {};
+    baloo-widgets = callPackage ./baloo-widgets.nix {};
+    dolphin = callPackage ./dolphin.nix {};
+    dolphin-plugins = callPackage ./dolphin-plugins.nix {};
+    ffmpegthumbs = callPackage ./ffmpegthumbs.nix {};
+    filelight = callPackage ./filelight.nix {};
+    gpgmepp = callPackage ./gpgmepp.nix {};
+    gwenview = callPackage ./gwenview.nix {};
+    kate = callPackage ./kate.nix {};
+    kcalc = callPackage ./kcalc.nix {};
+    kdegraphics-thumbnailers = callPackage ./kdegraphics-thumbnailers.nix {};
+    kdenetwork-filesharing = callPackage ./kdenetwork-filesharing.nix {};
+    kgpg = callPackage ./kgpg.nix { inherit (pkgs.kde4) kdepimlibs; };
+    kio-extras = callPackage ./kio-extras.nix {};
+    konsole = callPackage ./konsole.nix {};
+    libkdcraw = callPackage ./libkdcraw.nix {};
+    libkexiv2 = callPackage ./libkexiv2.nix {};
+    libkipi = callPackage ./libkipi.nix {};
+    okular = callPackage ./okular.nix {};
+    print-manager = callPackage ./print-manager.nix {};
+    spectacle = callPackage ./spectacle.nix {};
+
+    l10n = pkgs.recurseIntoAttrs (import ./l10n.nix { inherit callPackage lib pkgs; });
+  };
+
+in packages
diff --git a/pkgs/desktops/kde-5/applications-15.12/dolphin-plugins.nix b/pkgs/desktops/kde-5/applications-15.12/dolphin-plugins.nix
new file mode 100644
index 000000000000..72a08c732614
--- /dev/null
+++ b/pkgs/desktops/kde-5/applications-15.12/dolphin-plugins.nix
@@ -0,0 +1,31 @@
+{ kdeApp
+, lib
+, extra-cmake-modules
+, kdoctools
+, kxmlgui
+, ki18n
+, kio
+, kdelibs4support
+, dolphin
+}:
+
+kdeApp {
+  name = "dolphin-plugins";
+  nativeBuildInputs = [
+    extra-cmake-modules
+    kdoctools
+  ];
+  buildInputs = [
+    kxmlgui
+    dolphin
+  ];
+  propagatedBuildInputs = [
+    kdelibs4support
+    ki18n
+    kio
+  ];
+  meta = {
+    license = [ lib.licenses.gpl2 ];
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/applications-15.12/dolphin.nix b/pkgs/desktops/kde-5/applications-15.12/dolphin.nix
new file mode 100644
index 000000000000..3218146f510e
--- /dev/null
+++ b/pkgs/desktops/kde-5/applications-15.12/dolphin.nix
@@ -0,0 +1,70 @@
+{ kdeApp
+, lib
+, extra-cmake-modules
+, kdoctools
+, makeQtWrapper
+, kinit
+, kcmutils
+, kcoreaddons
+, knewstuff
+, ki18n
+, kdbusaddons
+, kbookmarks
+, kconfig
+, kio
+, kparts
+, solid
+, kiconthemes
+, kcompletion
+, ktexteditor
+, kwindowsystem
+, knotifications
+, kactivities
+, phonon
+, baloo
+, baloo-widgets
+, kfilemetadata
+, kdelibs4support
+}:
+
+kdeApp {
+  name = "dolphin";
+  nativeBuildInputs = [
+    extra-cmake-modules
+    kdoctools
+    makeQtWrapper
+  ];
+  buildInputs = [
+    kinit
+    kcmutils
+    kcoreaddons
+    knewstuff
+    kdbusaddons
+    kbookmarks
+    kconfig
+    kparts
+    solid
+    kiconthemes
+    kcompletion
+    knotifications
+    phonon
+    baloo-widgets
+  ];
+  propagatedBuildInputs = [
+    baloo
+    kactivities
+    kdelibs4support
+    kfilemetadata
+    ki18n
+    kio
+    ktexteditor
+    kwindowsystem
+  ];
+  postInstall = ''
+    wrapQtProgram "$out/bin/dolphin"
+  '';
+  meta = {
+    license = with lib.licenses; [ gpl2 fdl12 ];
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/applications-15.12/fetchsrcs.sh b/pkgs/desktops/kde-5/applications-15.12/fetchsrcs.sh
new file mode 100755
index 000000000000..93da9d332f7c
--- /dev/null
+++ b/pkgs/desktops/kde-5/applications-15.12/fetchsrcs.sh
@@ -0,0 +1,56 @@
+#! /usr/bin/env nix-shell
+#! nix-shell -i bash -p coreutils findutils gnused nix wget
+
+set -x
+
+# The trailing slash at the end is necessary!
+WGET_ARGS='http://download.kde.org/stable/applications/15.12.1/ -A *.tar.xz'
+
+mkdir tmp; cd tmp
+
+rm -f ../srcs.csv
+
+wget -nH -r -c --no-parent $WGET_ARGS
+
+find . | while read src; do
+    if [[ -f "${src}" ]]; then
+        # Sanitize file name
+        filename=$(basename "$src" | tr '@' '_')
+        nameVersion="${filename%.tar.*}"
+        name=$(echo "$nameVersion" | sed -e 's,-[[:digit:]].*,,' | sed -e 's,-opensource-src$,,')
+        version=$(echo "$nameVersion" | sed -e 's,^\([[:alpha:]][[:alnum:]]*-\)\+,,')
+        echo "$name,$version,$src,$filename" >>../srcs.csv
+    fi
+done
+
+cat >../srcs.nix <<EOF
+# DO NOT EDIT! This file is generated automatically by fetchsrcs.sh
+{ fetchurl, mirror }:
+
+{
+EOF
+
+gawk -F , "{ print \$1 }" ../srcs.csv | sort | uniq | while read name; do
+    versions=$(gawk -F , "/^$name,/ { print \$2 }" ../srcs.csv)
+    latestVersion=$(echo "$versions" | sort -rV | head -n 1)
+    src=$(gawk -F , "/^$name,$latestVersion,/ { print \$3 }" ../srcs.csv)
+    filename=$(gawk -F , "/^$name,$latestVersion,/ { print \$4 }" ../srcs.csv)
+    url="${src:2}"
+    sha256=$(nix-hash --type sha256 --base32 --flat "$src")
+    cat >>../srcs.nix <<EOF
+  $name = {
+    version = "$latestVersion";
+    src = fetchurl {
+      url = "\${mirror}/$url";
+      sha256 = "$sha256";
+      name = "$filename";
+    };
+  };
+EOF
+done
+
+echo "}" >>../srcs.nix
+
+rm -f ../srcs.csv
+
+cd ..
diff --git a/pkgs/desktops/kde-5/applications-15.12/ffmpegthumbs.nix b/pkgs/desktops/kde-5/applications-15.12/ffmpegthumbs.nix
new file mode 100644
index 000000000000..53e9d807d647
--- /dev/null
+++ b/pkgs/desktops/kde-5/applications-15.12/ffmpegthumbs.nix
@@ -0,0 +1,21 @@
+{ kdeApp
+, lib
+, extra-cmake-modules
+, ffmpeg
+, kio
+}:
+
+kdeApp {
+  name = "ffmpegthumbs";
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    ffmpeg
+    kio
+  ];
+  meta = {
+    license = with lib.licenses; [ gpl2 bsd3 ];
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/applications-15.12/filelight.nix b/pkgs/desktops/kde-5/applications-15.12/filelight.nix
new file mode 100644
index 000000000000..df5e097a540e
--- /dev/null
+++ b/pkgs/desktops/kde-5/applications-15.12/filelight.nix
@@ -0,0 +1,35 @@
+{ kdeApp
+, lib
+, extra-cmake-modules
+, kdoctools
+, makeQtWrapper
+, qtscript
+, kio
+, solid
+, kxmlgui
+, kparts
+}:
+
+kdeApp {
+  name = "filelight";
+  nativeBuildInputs = [
+    extra-cmake-modules
+    kdoctools
+    makeQtWrapper
+  ];
+  buildInputs = [
+    kio
+    kparts
+    qtscript
+    solid
+    kxmlgui
+  ];
+
+  postInstall = ''
+    wrapQtProgram "$out/bin/filelight"
+  '';
+  meta = {
+    license = with lib.licenses; [ gpl2 ];
+    maintainers = with lib.maintainers; [ fridh vcunat ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/applications-15.12/gpgmepp.nix b/pkgs/desktops/kde-5/applications-15.12/gpgmepp.nix
new file mode 100644
index 000000000000..ac14573dcaa3
--- /dev/null
+++ b/pkgs/desktops/kde-5/applications-15.12/gpgmepp.nix
@@ -0,0 +1,21 @@
+{ kdeApp
+, lib
+, extra-cmake-modules
+, boost
+, gpgme
+}:
+
+kdeApp {
+  name = "gpgmepp";
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    boost
+    gpgme
+  ];
+  meta = {
+    license = with lib.licenses; [ lgpl21 bsd3 ];
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/applications-15.12/gwenview.nix b/pkgs/desktops/kde-5/applications-15.12/gwenview.nix
new file mode 100644
index 000000000000..732ac11e96d0
--- /dev/null
+++ b/pkgs/desktops/kde-5/applications-15.12/gwenview.nix
@@ -0,0 +1,44 @@
+{ kdeApp
+, lib
+, extra-cmake-modules
+, kdoctools
+, makeQtWrapper
+, baloo
+, exiv2
+, kactivities
+, kdelibs4support
+, kio
+, lcms2
+, phonon
+, qtsvg
+, qtx11extras
+}:
+
+kdeApp {
+  name = "gwenview";
+  nativeBuildInputs = [
+    extra-cmake-modules
+    kdoctools
+    makeQtWrapper
+  ];
+  buildInputs = [
+    exiv2
+    lcms2
+    phonon
+    qtsvg
+  ];
+  propagatedBuildInputs = [
+    baloo
+    kactivities
+    kdelibs4support
+    kio
+    qtx11extras
+  ];
+  postInstall = ''
+    wrapQtProgram "$out/bin/gwenview"
+  '';
+  meta = {
+    license = with lib.licenses; [ gpl2 fdl12 ];
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/applications-15.12/kate.nix b/pkgs/desktops/kde-5/applications-15.12/kate.nix
new file mode 100644
index 000000000000..91eeb2314a4c
--- /dev/null
+++ b/pkgs/desktops/kde-5/applications-15.12/kate.nix
@@ -0,0 +1,69 @@
+{ kdeApp
+, lib
+, extra-cmake-modules
+, kdoctools
+, qtscript
+, kactivities
+, kconfig
+, kcrash
+, kguiaddons
+, kiconthemes
+, ki18n
+, kinit
+, kjobwidgets
+, kio
+, kparts
+, ktexteditor
+, kwindowsystem
+, kxmlgui
+, kdbusaddons
+, kwallet
+, plasma-framework
+, kitemmodels
+, knotifications
+, threadweaver
+, knewstuff
+, libgit2
+}:
+
+kdeApp {
+  name = "kate";
+  nativeBuildInputs = [
+    extra-cmake-modules
+    kdoctools
+  ];
+  buildInputs = [
+    qtscript
+    kconfig
+    kcrash
+    kguiaddons
+    kiconthemes
+    kinit
+    kjobwidgets
+    kparts
+    kxmlgui
+    kdbusaddons
+    kwallet
+    kitemmodels
+    knotifications
+    threadweaver
+    knewstuff
+    libgit2
+  ];
+  propagatedBuildInputs = [
+    kactivities
+    ki18n
+    kio
+    ktexteditor
+    kwindowsystem
+    plasma-framework
+  ];
+  postInstall = ''
+    wrapQtProgram "$out/bin/kate"
+    wrapQtProgram "$out/bin/kwrite"
+  '';
+  meta = {
+    license = with lib.licenses; [ gpl3 lgpl3 lgpl2 ];
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/applications-15.12/kcalc.nix b/pkgs/desktops/kde-5/applications-15.12/kcalc.nix
new file mode 100644
index 000000000000..a1f0316825da
--- /dev/null
+++ b/pkgs/desktops/kde-5/applications-15.12/kcalc.nix
@@ -0,0 +1,38 @@
+{ kdeApp
+, lib
+, extra-cmake-modules
+, kdoctools
+, makeQtWrapper
+, kconfig
+, kconfigwidgets
+, kguiaddons
+, kinit
+, knotifications
+
+}:
+
+kdeApp {
+  name = "kcalc";
+
+  nativeBuildInputs = [
+    extra-cmake-modules
+    kdoctools
+  ];
+
+  buildInputs = [
+    kconfig
+    kconfigwidgets
+    kguiaddons
+    kinit
+    knotifications
+  ];
+
+  postInstall = ''
+    wrapQtProgram "$out/bin/kcalc"
+  '';
+
+  meta = {
+    license = with lib.licenses; [ gpl2 ];
+    maintainers = [ lib.maintainers.fridh ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/applications-15.12/kde-app.nix b/pkgs/desktops/kde-5/applications-15.12/kde-app.nix
new file mode 100644
index 000000000000..242f3d9c793d
--- /dev/null
+++ b/pkgs/desktops/kde-5/applications-15.12/kde-app.nix
@@ -0,0 +1,23 @@
+{ stdenv, lib, debug, srcs }:
+
+args:
+
+let
+  inherit (args) name;
+  sname = args.sname or name;
+  inherit (srcs."${sname}") src version;
+in
+stdenv.mkDerivation (args // {
+  name = "${name}-${version}";
+  inherit src;
+
+  cmakeFlags =
+    (args.cmakeFlags or [])
+    ++ [ "-DBUILD_TESTING=OFF" ]
+    ++ lib.optional debug "-DCMAKE_BUILD_TYPE=Debug";
+
+  meta = {
+    platforms = lib.platforms.linux;
+    homepage = "http://www.kde.org";
+  } // (args.meta or {});
+})
diff --git a/pkgs/desktops/kde-5/applications-15.12/kde-locale-4.nix b/pkgs/desktops/kde-5/applications-15.12/kde-locale-4.nix
new file mode 100644
index 000000000000..4b612ee3e3c2
--- /dev/null
+++ b/pkgs/desktops/kde-5/applications-15.12/kde-locale-4.nix
@@ -0,0 +1,20 @@
+name: args:
+
+{ kdeApp, automoc4, cmake, gettext, kdelibs, perl }:
+
+kdeApp (args // {
+  sname = "kde-l10n-${name}";
+  name = "kde-l10n-${name}-qt4";
+
+  nativeBuildInputs =
+    [ automoc4 cmake gettext perl ]
+    ++ (args.nativeBuildInputs or []);
+  buildInputs =
+    [ kdelibs ]
+    ++ (args.buildInputs or []);
+
+  preConfigure = ''
+    sed -e 's/add_subdirectory(5)//' -i CMakeLists.txt
+    ${args.preConfigure or ""}
+  '';
+})
diff --git a/pkgs/desktops/kde-5/applications-15.12/kde-locale-5.nix b/pkgs/desktops/kde-5/applications-15.12/kde-locale-5.nix
new file mode 100644
index 000000000000..522fc542aeb2
--- /dev/null
+++ b/pkgs/desktops/kde-5/applications-15.12/kde-locale-5.nix
@@ -0,0 +1,17 @@
+name: args:
+
+{ kdeApp, cmake, extra-cmake-modules, gettext, kdoctools }:
+
+kdeApp (args // {
+  sname = "kde-l10n-${name}";
+  name = "kde-l10n-${name}-qt5";
+
+  nativeBuildInputs =
+    [ cmake extra-cmake-modules gettext kdoctools ]
+    ++ (args.nativeBuildInputs or []);
+
+  preConfigure = ''
+    sed -e 's/add_subdirectory(4)//' -i CMakeLists.txt
+    ${args.preConfigure or ""}
+  '';
+})
diff --git a/pkgs/desktops/kde-5/applications-15.12/kdegraphics-thumbnailers.nix b/pkgs/desktops/kde-5/applications-15.12/kdegraphics-thumbnailers.nix
new file mode 100644
index 000000000000..520bad0d066a
--- /dev/null
+++ b/pkgs/desktops/kde-5/applications-15.12/kdegraphics-thumbnailers.nix
@@ -0,0 +1,23 @@
+{ kdeApp
+, lib
+, extra-cmake-modules
+, kio
+, libkexiv2
+, libkdcraw
+}:
+
+kdeApp {
+  name = "kdegraphics-thumbnailers";
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    kio
+    libkexiv2
+    libkdcraw
+  ];
+  meta = {
+    license = [ lib.licenses.lgpl21 ];
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/applications-15.12/kdelibs/0001-old-kde4-cmake-policies.patch b/pkgs/desktops/kde-5/applications-15.12/kdelibs/0001-old-kde4-cmake-policies.patch
new file mode 100644
index 000000000000..b7d7300e9a84
--- /dev/null
+++ b/pkgs/desktops/kde-5/applications-15.12/kdelibs/0001-old-kde4-cmake-policies.patch
@@ -0,0 +1,56 @@
+From b43c49109694940f0a26240753e879eb629dd02d Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@gmail.com>
+Date: Mon, 7 Sep 2015 13:54:57 -0500
+Subject: [PATCH 1/2] old kde4 cmake policies
+
+---
+ cmake/modules/FindKDE4Internal.cmake | 33 +++++++++++++++++++++++++++++++++
+ 1 file changed, 33 insertions(+)
+
+diff --git a/cmake/modules/FindKDE4Internal.cmake b/cmake/modules/FindKDE4Internal.cmake
+index 7d54b9b..c435571 100644
+--- a/cmake/modules/FindKDE4Internal.cmake
++++ b/cmake/modules/FindKDE4Internal.cmake
+@@ -345,6 +345,39 @@
+ # Redistribution and use is allowed according to the terms of the BSD license.
+ # For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+ 
++# this is required now by cmake 2.6 and so must not be skipped by if(KDE4_FOUND) below
++cmake_minimum_required(VERSION 2.8.9 FATAL_ERROR)
++# set the cmake policies to the 2.4.x compatibility settings (may change for KDE 4.3)
++cmake_policy(VERSION 2.4.5)
++
++# CMake 2.6, set compatibility behaviour to cmake 2.4
++# this must be executed always, because the CMAKE_MINIMUM_REQUIRED() command above
++# resets the policy settings, so we get a lot of warnings
++
++# CMP0000: don't require cmake_minimum_version() directly in the top level CMakeLists.txt, FindKDE4Internal.cmake is good enough
++cmake_policy(SET CMP0000 OLD)
++# CMP0002: in KDE4 we have multiple targets with the same name for the unit tests
++cmake_policy(SET CMP0002 OLD)
++# CMP0003: add the link paths to the link command as with cmake 2.4
++cmake_policy(SET CMP0003 OLD)
++# CMP0005: keep escaping behaviour for definitions added via add_definitions()
++cmake_policy(SET CMP0005 OLD)
++# since cmake 2.6.3: NEW behaviour is that setting policies doesn't "escape" the file
++# where this is done, macros and functions are executed with the policies as they
++# were when the were defined. Keep the OLD behaviour so we can set the policies here
++# for all KDE software without the big warning
++cmake_policy(SET CMP0011 OLD)
++
++# since cmake 2.8.4: when include()ing from inside cmake's module dir, prefer the files
++# in this directory over those from CMAKE_MODULE_PATH
++cmake_policy(SET CMP0017 NEW)
++
++# since cmake 3.0: use of the LOCATION target property is disallowed while it is used in KDE4Macros.cmake
++if (POLICY CMP0026)
++  cmake_policy(SET CMP0026 OLD)
++endif (POLICY CMP0026)
++
++
+ # Only do something if it hasn't been found yet
+ if(NOT KDE4_FOUND)
+ 
+-- 
+2.5.0
+
diff --git a/pkgs/desktops/kde-5/applications-15.12/kdelibs/0002-polkit-install-path.patch b/pkgs/desktops/kde-5/applications-15.12/kdelibs/0002-polkit-install-path.patch
new file mode 100644
index 000000000000..ff0306ea1488
--- /dev/null
+++ b/pkgs/desktops/kde-5/applications-15.12/kdelibs/0002-polkit-install-path.patch
@@ -0,0 +1,25 @@
+From fab35bac146a817f3af80f45531355fd70cd226b Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@gmail.com>
+Date: Mon, 7 Sep 2015 13:56:03 -0500
+Subject: [PATCH 2/2] polkit install path
+
+---
+ kdecore/auth/ConfigureChecks.cmake | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/kdecore/auth/ConfigureChecks.cmake b/kdecore/auth/ConfigureChecks.cmake
+index 7cf9cb5..c8334ae 100644
+--- a/kdecore/auth/ConfigureChecks.cmake
++++ b/kdecore/auth/ConfigureChecks.cmake
+@@ -150,7 +150,7 @@ elseif(KDE4_AUTH_BACKEND_NAME STREQUAL "POLKITQT-1")
+         ${CMAKE_INSTALL_PREFIX} _KDE4_AUTH_POLICY_FILES_INSTALL_DIR
+         ${POLKITQT-1_POLICY_FILES_INSTALL_DIR})
+ 
+-    set(KDE4_AUTH_POLICY_FILES_INSTALL_DIR ${_KDE4_AUTH_POLICY_FILES_INSTALL_DIR} CACHE STRING 
++    set(KDE4_AUTH_POLICY_FILES_INSTALL_DIR "\${CMAKE_INSTALL_PREFIX}/share/polkit-1/actions" CACHE STRING 
+         "Where policy files generated by KAuth will be installed" FORCE)
+ elseif(KDE4_AUTH_BACKEND_NAME STREQUAL "FAKE")
+     set (KAUTH_COMPILING_FAKE_BACKEND TRUE)
+-- 
+2.5.0
+
diff --git a/pkgs/desktops/kde-5/applications-15.12/kdelibs/0003-remove_xdg_impurities.patch b/pkgs/desktops/kde-5/applications-15.12/kdelibs/0003-remove_xdg_impurities.patch
new file mode 100644
index 000000000000..a79d7b2b7d16
--- /dev/null
+++ b/pkgs/desktops/kde-5/applications-15.12/kdelibs/0003-remove_xdg_impurities.patch
@@ -0,0 +1,47 @@
+diff --git a/kdecore/kernel/kstandarddirs.cpp b/kdecore/kernel/kstandarddirs.cpp
+index ab8f76d..2ae5089 100644
+--- a/kdecore/kernel/kstandarddirs.cpp
++++ b/kdecore/kernel/kstandarddirs.cpp
+@@ -1768,12 +1768,6 @@ void KStandardDirs::addKDEDefaults()
+     else
+     {
+         xdgdirList.clear();
+-        xdgdirList.append(QString::fromLatin1("/etc/xdg"));
+-#ifdef Q_WS_WIN
+-        xdgdirList.append(installPath("kdedir") + QString::fromLatin1("etc/xdg"));
+-#else
+-        xdgdirList.append(QFile::decodeName(KDESYSCONFDIR "/xdg"));
+-#endif
+     }
+ 
+     QString localXdgDir = readEnvPath("XDG_CONFIG_HOME");
+@@ -1821,10 +1815,6 @@ void KStandardDirs::addKDEDefaults()
+         }
+     } else {
+         xdgdirList = kdedirDataDirs;
+-#ifndef Q_WS_WIN
+-        xdgdirList.append(QString::fromLatin1("/usr/local/share/"));
+-        xdgdirList.append(QString::fromLatin1("/usr/share/"));
+-#endif
+     }
+ 
+     localXdgDir = readEnvPath("XDG_DATA_HOME");
+diff --git a/solid/solid/xdgbasedirs.cpp b/solid/solid/xdgbasedirs.cpp
+index 4c9cad9..6849d45 100644
+--- a/solid/solid/xdgbasedirs.cpp
++++ b/solid/solid/xdgbasedirs.cpp
+@@ -70,12 +70,12 @@ QStringList Solid::XdgBaseDirs::systemPathList( const char *resource )
+ {
+   if ( qstrncmp( "data", resource, 4 ) == 0 ) {
+     if ( instance()->mDataDirs.isEmpty() ) {
+-      instance()->mDataDirs = instance()->systemPathList( "XDG_DATA_DIRS", "/usr/local/share:/usr/share" );
++      instance()->mDataDirs = instance()->systemPathList( "XDG_DATA_DIRS", "" );
+     }
+     return instance()->mDataDirs;
+   } else if ( qstrncmp( "config", resource, 6 ) == 0 ) {
+     if ( instance()->mConfigDirs.isEmpty() ) {
+-      instance()->mConfigDirs = instance()->systemPathList( "XDG_CONFIG_DIRS", "/etc/xdg" );
++      instance()->mConfigDirs = instance()->systemPathList( "XDG_CONFIG_DIRS", "" );
+     }
+     return instance()->mConfigDirs;
+   }
diff --git a/pkgs/desktops/kde-5/applications-15.12/kdelibs/default.nix b/pkgs/desktops/kde-5/applications-15.12/kdelibs/default.nix
new file mode 100644
index 000000000000..a30b19774f2a
--- /dev/null
+++ b/pkgs/desktops/kde-5/applications-15.12/kdelibs/default.nix
@@ -0,0 +1,43 @@
+{ kdeApp, attica, attr, automoc4, avahi, bison, cmake
+, docbook_xml_dtd_42, docbook_xsl, flex, giflib, ilmbase
+, libdbusmenu_qt, libjpeg, libxml2, libxslt, perl, phonon, pkgconfig
+, polkit_qt4, qca2, qt4, shared_desktop_ontologies, shared_mime_info
+, soprano, strigi, udev, xz
+, lib
+}:
+
+kdeApp {
+  name = "kdelibs";
+
+  buildInputs = [
+    attica attr avahi giflib libdbusmenu_qt libjpeg libxml2
+    polkit_qt4 qca2 shared_desktop_ontologies udev xz
+  ];
+  propagatedBuildInputs = [ qt4 soprano phonon strigi ];
+  nativeBuildInputs = [
+    automoc4 bison cmake flex libxslt perl pkgconfig shared_mime_info
+  ];
+
+  patches = [
+    ./0001-old-kde4-cmake-policies.patch
+    ./0002-polkit-install-path.patch
+    ./0003-remove_xdg_impurities.patch
+  ];
+
+  # cmake does not detect path to `ilmbase`
+  NIX_CFLAGS_COMPILE = "-I${ilmbase}/include/OpenEXR";
+
+  cmakeFlags = [
+    "-DDOCBOOKXML_CURRENTDTD_DIR=${docbook_xml_dtd_42}/xml/dtd/docbook"
+    "-DDOCBOOKXSL_DIR=${docbook_xsl}/xml/xsl/docbook"
+    "-DWITH_SOLID_UDISKS2=ON"
+    "-DKDE_DEFAULT_HOME=.kde"
+  ];
+
+  setupHook = ./setup-hook.sh;
+
+  meta = {
+    licenses = with lib.licenses; [ gpl2 fdl12 lgpl21 ];
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/applications-15.12/kdelibs/setup-hook.sh b/pkgs/desktops/kde-5/applications-15.12/kdelibs/setup-hook.sh
new file mode 100644
index 000000000000..e0a75dc8acd0
--- /dev/null
+++ b/pkgs/desktops/kde-5/applications-15.12/kdelibs/setup-hook.sh
@@ -0,0 +1,10 @@
+addQt4Plugins() {
+  if [[ -d "$1/lib/qt4/plugins" ]]; then
+      propagatedUserEnvPkgs+=" $1"
+  fi
+
+  if [[ -d "$1/lib/kde4/plugins" ]]; then
+      propagatedUserEnvPkgs+=" $1"
+  fi
+}
+envHooks+=(addQt4Plugins)
diff --git a/pkgs/desktops/kde-5/applications-15.12/kdenetwork-filesharing.nix b/pkgs/desktops/kde-5/applications-15.12/kdenetwork-filesharing.nix
new file mode 100644
index 000000000000..4e99a43b3913
--- /dev/null
+++ b/pkgs/desktops/kde-5/applications-15.12/kdenetwork-filesharing.nix
@@ -0,0 +1,29 @@
+{ kdeApp
+, lib
+, extra-cmake-modules
+, kdoctools
+, kcoreaddons
+, ki18n
+, kio
+, kwidgetsaddons
+, samba
+}:
+
+kdeApp {
+  name = "kdenetwork-filesharing";
+  nativeBuildInputs = [
+    extra-cmake-modules
+    kdoctools
+  ];
+  buildInputs = [
+    kcoreaddons
+    ki18n
+    kio
+    kwidgetsaddons
+    samba
+  ];
+  meta = {
+    license = [ lib.licenses.gpl2 lib.licenses.lgpl21 ];
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/applications-15.12/kgpg.nix b/pkgs/desktops/kde-5/applications-15.12/kgpg.nix
new file mode 100644
index 000000000000..3ee925197189
--- /dev/null
+++ b/pkgs/desktops/kde-5/applications-15.12/kgpg.nix
@@ -0,0 +1,38 @@
+{ kdeApp
+, lib
+, automoc4
+, cmake
+, makeWrapper
+, perl
+, pkgconfig
+, boost
+, gpgme
+, kdelibs
+, kdepimlibs
+, gnupg
+}:
+
+kdeApp {
+  name = "kgpg";
+  nativeBuildInputs = [
+    automoc4
+    cmake
+    makeWrapper
+    perl
+    pkgconfig
+  ];
+  buildInputs = [
+    boost
+    gpgme
+    kdelibs
+    kdepimlibs
+  ];
+  postInstall = ''
+    wrapProgram "$out/bin/kgpg" \
+        --prefix PATH : "${gnupg}/bin"
+  '';
+  meta = {
+    license = [ lib.licenses.gpl2 ];
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/applications-15.12/kio-extras.nix b/pkgs/desktops/kde-5/applications-15.12/kio-extras.nix
new file mode 100644
index 000000000000..77b42f1fc586
--- /dev/null
+++ b/pkgs/desktops/kde-5/applications-15.12/kio-extras.nix
@@ -0,0 +1,58 @@
+{ kdeApp, lib
+, extra-cmake-modules, kdoctools
+, shared_mime_info
+, exiv2
+, karchive
+, kbookmarks
+, kconfig, kconfigwidgets
+, kcoreaddons, kdbusaddons, kguiaddons
+, kdnssd
+, kiconthemes
+, ki18n
+, kio
+, khtml
+, kdelibs4support
+, kpty
+, libmtp
+, libssh
+, openexr
+, openslp
+, phonon
+, qtsvg
+, samba
+, solid
+}:
+
+kdeApp {
+  name = "kio-extras";
+  nativeBuildInputs = [
+    extra-cmake-modules kdoctools
+    shared_mime_info
+  ];
+  buildInputs = [
+    exiv2
+    karchive
+    kbookmarks
+    kconfig kconfigwidgets
+    kcoreaddons kdbusaddons kguiaddons
+    kdnssd
+    kiconthemes
+    ki18n
+    kio
+    khtml
+    kdelibs4support
+    kpty
+    libmtp
+    libssh
+    openexr
+    openslp
+    phonon
+    qtsvg
+    samba
+    solid
+  ];
+  meta = {
+    license = with lib.licenses; [ gpl2 lgpl21 ];
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/applications-15.12/konsole.nix b/pkgs/desktops/kde-5/applications-15.12/konsole.nix
new file mode 100644
index 000000000000..4b4cba2a3779
--- /dev/null
+++ b/pkgs/desktops/kde-5/applications-15.12/konsole.nix
@@ -0,0 +1,68 @@
+{ kdeApp
+, lib
+, extra-cmake-modules
+, kdoctools
+, makeQtWrapper
+, qtscript
+, kbookmarks
+, kcompletion
+, kconfig
+, kconfigwidgets
+, kcoreaddons
+, kguiaddons
+, ki18n
+, kiconthemes
+, kinit
+, kdelibs4support
+, kio
+, knotifications
+, knotifyconfig
+, kparts
+, kpty
+, kservice
+, ktextwidgets
+, kwidgetsaddons
+, kwindowsystem
+, kxmlgui
+}:
+
+kdeApp {
+  name = "konsole";
+  nativeBuildInputs = [
+    extra-cmake-modules
+    kdoctools
+    makeQtWrapper
+  ];
+  buildInputs = [
+    qtscript
+    kbookmarks
+    kcompletion
+    kconfig
+    kconfigwidgets
+    kcoreaddons
+    kguiaddons
+    kiconthemes
+    kinit
+    kio
+    knotifications
+    knotifyconfig
+    kparts
+    kpty
+    kservice
+    ktextwidgets
+    kwidgetsaddons
+    kxmlgui
+  ];
+  propagatedBuildInputs = [
+    kdelibs4support
+    ki18n
+    kwindowsystem
+  ];
+  postInstall = ''
+    wrapQtProgram "$out/bin/konsole"
+  '';
+  meta = {
+    license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/applications-15.12/l10n.nix b/pkgs/desktops/kde-5/applications-15.12/l10n.nix
new file mode 100644
index 000000000000..a0605e3bd55d
--- /dev/null
+++ b/pkgs/desktops/kde-5/applications-15.12/l10n.nix
@@ -0,0 +1,237 @@
+{ callPackage, pkgs, lib }:
+
+let
+
+  kdeLocale4 = import ./kde-locale-4.nix;
+  kdeLocale5 = import ./kde-locale-5.nix;
+
+in
+
+lib.mapAttrs (name: attr: pkgs.recurseIntoAttrs attr) {
+  ar = {
+    qt4 = callPackage (kdeLocale4 "ar" {}) {};
+    qt5 = callPackage (kdeLocale5 "ar" {}) {};
+  };
+  bg = {
+    qt4 = callPackage (kdeLocale4 "bg" {}) {};
+    qt5 = callPackage (kdeLocale5 "bg" {}) {};
+  };
+  bs = {
+    qt4 = callPackage (kdeLocale4 "bs" {}) {};
+    qt5 = callPackage (kdeLocale5 "bs" {}) {};
+  };
+  ca = {
+    qt4 = callPackage (kdeLocale4 "ca" {}) {};
+    qt5 = callPackage (kdeLocale5 "ca" {}) {};
+  };
+  ca_valencia = {
+    qt4 = callPackage (kdeLocale4 "ca_valencia" {}) {};
+    qt5 = callPackage (kdeLocale5 "ca_valencia" {}) {};
+  };
+  cs = {
+    qt4 = callPackage (kdeLocale4 "cs" {}) {};
+    qt5 = callPackage (kdeLocale5 "cs" {}) {};
+  };
+  da = {
+    qt4 = callPackage (kdeLocale4 "da" {}) {};
+    qt5 = callPackage (kdeLocale5 "da" {}) {};
+  };
+  de = {
+    qt4 = callPackage (kdeLocale4 "de" {}) {};
+    qt5 = callPackage (kdeLocale5 "de" {}) {};
+  };
+  el = {
+    qt4 = callPackage (kdeLocale4 "el" {}) {};
+    qt5 = callPackage (kdeLocale5 "el" {}) {};
+  };
+  en_GB = {
+    qt4 = callPackage (kdeLocale4 "en_GB" {}) {};
+    qt5 = callPackage (kdeLocale5 "en_GB" {}) {};
+  };
+  eo = {
+    qt4 = callPackage (kdeLocale4 "eo" {}) {};
+    qt5 = callPackage (kdeLocale5 "eo" {}) {};
+  };
+  es = {
+    qt4 = callPackage (kdeLocale4 "es" {}) {};
+    qt5 = callPackage (kdeLocale5 "es" {}) {};
+  };
+  et = {
+    qt4 = callPackage (kdeLocale4 "et" {}) {};
+    qt5 = callPackage (kdeLocale5 "et" {}) {};
+  };
+  eu = {
+    qt4 = callPackage (kdeLocale4 "eu" {}) {};
+    qt5 = callPackage (kdeLocale5 "eu" {}) {};
+  };
+  fa = {
+    qt4 = callPackage (kdeLocale4 "fa" {}) {};
+    qt5 = callPackage (kdeLocale5 "fa" {}) {};
+  };
+  fi = {
+    qt4 = callPackage (kdeLocale4 "fi" {}) {};
+    qt5 = callPackage (kdeLocale5 "fi" {}) {};
+  };
+  fr = {
+    qt4 = callPackage (kdeLocale4 "fr" {}) {};
+    qt5 = callPackage (kdeLocale5 "fr" {}) {};
+  };
+  ga = {
+    qt4 = callPackage (kdeLocale4 "ga" {}) {};
+    qt5 = callPackage (kdeLocale5 "ga" {}) {};
+  };
+  gl = {
+    qt4 = callPackage (kdeLocale4 "gl" {}) {};
+    qt5 = callPackage (kdeLocale5 "gl" {}) {};
+  };
+  he = {
+    qt4 = callPackage (kdeLocale4 "he" {}) {};
+    qt5 = callPackage (kdeLocale5 "he" {}) {};
+  };
+  hi = {
+    qt4 = callPackage (kdeLocale4 "hi" {}) {};
+    qt5 = callPackage (kdeLocale5 "hi" {}) {};
+  };
+  hr = {
+    qt4 = callPackage (kdeLocale4 "hr" {}) {};
+    qt5 = callPackage (kdeLocale5 "hr" {}) {};
+  };
+  hu = {
+    qt4 = callPackage (kdeLocale4 "hu" {}) {};
+    qt5 = callPackage (kdeLocale5 "hu" {}) {};
+  };
+  ia = {
+    qt4 = callPackage (kdeLocale4 "ia" {}) {};
+    qt5 = callPackage (kdeLocale5 "ia" {}) {};
+  };
+  id = {
+    qt4 = callPackage (kdeLocale4 "id" {}) {};
+    qt5 = callPackage (kdeLocale5 "id" {}) {};
+  };
+  is = {
+    qt4 = callPackage (kdeLocale4 "is" {}) {};
+    qt5 = callPackage (kdeLocale5 "is" {}) {};
+  };
+  it = {
+    qt4 = callPackage (kdeLocale4 "it" {}) {};
+    qt5 = callPackage (kdeLocale5 "it" {}) {};
+  };
+  ja = {
+    qt4 = callPackage (kdeLocale4 "ja" {}) {};
+    qt5 = callPackage (kdeLocale5 "ja" {}) {};
+  };
+  kk = {
+    qt4 = callPackage (kdeLocale4 "kk" {}) {};
+    qt5 = callPackage (kdeLocale5 "kk" {}) {};
+  };
+  km = {
+    qt4 = callPackage (kdeLocale4 "km" {}) {};
+    qt5 = callPackage (kdeLocale5 "km" {}) {};
+  };
+  ko = {
+    qt4 = callPackage (kdeLocale4 "ko" {}) {};
+    qt5 = callPackage (kdeLocale5 "ko" {}) {};
+  };
+  lt = {
+    qt4 = callPackage (kdeLocale4 "lt" {}) {};
+    qt5 = callPackage (kdeLocale5 "lt" {}) {};
+  };
+  lv = {
+    qt4 = callPackage (kdeLocale4 "lv" {}) {};
+    qt5 = callPackage (kdeLocale5 "lv" {}) {};
+  };
+  mr = {
+    qt4 = callPackage (kdeLocale4 "mr" {}) {};
+    qt5 = callPackage (kdeLocale5 "mr" {}) {};
+  };
+  nb = {
+    qt4 = callPackage (kdeLocale4 "nb" {}) {};
+    qt5 = callPackage (kdeLocale5 "nb" {}) {};
+  };
+  nds = {
+    qt4 = callPackage (kdeLocale4 "nds" {}) {};
+    qt5 = callPackage (kdeLocale5 "nds" {}) {};
+  };
+  # TODO: build broken in 15.11.80; re-enable in next release
+  /*
+  nl = {
+    qt4 = callPackage (kdeLocale4 "nl" {}) {};
+    qt5 = callPackage (kdeLocale5 "nl" {}) {};
+  };
+  */
+  nn = {
+    qt4 = callPackage (kdeLocale4 "nn" {}) {};
+    qt5 = callPackage (kdeLocale5 "nn" {}) {};
+  };
+  pa = {
+    qt4 = callPackage (kdeLocale4 "pa" {}) {};
+    qt5 = callPackage (kdeLocale5 "pa" {}) {};
+  };
+  pl = {
+    qt4 = callPackage (kdeLocale4 "pl" {}) {};
+    qt5 = callPackage (kdeLocale5 "pl" {}) {};
+  };
+  pt = {
+    qt4 = callPackage (kdeLocale4 "pt" {}) {};
+    qt5 = callPackage (kdeLocale5 "pt" {}) {};
+  };
+  pt_BR = {
+    qt4 = callPackage (kdeLocale4 "pt_BR" {}) {};
+    qt5 = callPackage (kdeLocale5 "pt_BR" {}) {};
+  };
+  ro = {
+    qt4 = callPackage (kdeLocale4 "ro" {}) {};
+    qt5 = callPackage (kdeLocale5 "ro" {}) {};
+  };
+  ru = {
+    qt4 = callPackage (kdeLocale4 "ru" {}) {};
+    qt5 = callPackage (kdeLocale5 "ru" {}) {};
+  };
+  sk = {
+    qt4 = callPackage (kdeLocale4 "sk" {}) {};
+    qt5 = callPackage (kdeLocale5 "sk" {}) {};
+  };
+  sl = {
+    qt4 = callPackage (kdeLocale4 "sl" {}) {};
+    qt5 = callPackage (kdeLocale5 "sl" {}) {};
+  };
+  sr = {
+    qt4 = callPackage (kdeLocale4 "sr" {}) {};
+    qt5 = callPackage (kdeLocale5 "sr" {
+      preConfigure = ''
+        sed -e 's/add_subdirectory(kdesdk)//' -i 5/sr/data/CMakeLists.txt
+      '';
+    }) {};
+  };
+  sv = {
+    qt4 = callPackage (kdeLocale4 "sv" {}) {};
+    qt5 = callPackage (kdeLocale5 "sv" {}) {};
+  };
+  tr = {
+    qt4 = callPackage (kdeLocale4 "tr" {}) {};
+    qt5 = callPackage (kdeLocale5 "tr" {}) {};
+  };
+  ug = {
+    qt4 = callPackage (kdeLocale4 "ug" {}) {};
+    qt5 = callPackage (kdeLocale5 "ug" {}) {};
+  };
+  # TODO: build broken in 15.11.80; re-enable in next release
+  /*
+  uk = {
+    qt4 = callPackage (kdeLocale4 "uk" {}) {};
+    qt5 = callPackage (kdeLocale5 "uk" {}) {};
+  };
+  */
+  wa = {
+    qt4 = callPackage (kdeLocale4 "wa" {}) {};
+    qt5 = callPackage (kdeLocale5 "wa" {}) {};
+  };
+  zh_CN = {
+    qt4 = callPackage (kdeLocale4 "zh_CN" {}) {};
+    qt5 = callPackage (kdeLocale5 "zh_CN" {}) {};
+  };
+  zh_TW = {
+    qt4 = callPackage (kdeLocale4 "zh_TW" {}) {};
+    qt5 = callPackage (kdeLocale5 "zh_TW" {}) {};
+  };
+}
diff --git a/pkgs/desktops/kde-5/applications-15.12/libkdcraw.nix b/pkgs/desktops/kde-5/applications-15.12/libkdcraw.nix
new file mode 100644
index 000000000000..319c7fc6583d
--- /dev/null
+++ b/pkgs/desktops/kde-5/applications-15.12/libkdcraw.nix
@@ -0,0 +1,19 @@
+{ kdeApp
+, lib
+, extra-cmake-modules
+, libraw
+}:
+
+kdeApp {
+  name = "libkdcraw";
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    libraw
+  ];
+  meta = {
+    license = with lib.licenses; [ gpl2 lgpl21 bsd3 ];
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/applications-15.12/libkexiv2.nix b/pkgs/desktops/kde-5/applications-15.12/libkexiv2.nix
new file mode 100644
index 000000000000..afb1ac836537
--- /dev/null
+++ b/pkgs/desktops/kde-5/applications-15.12/libkexiv2.nix
@@ -0,0 +1,19 @@
+{ kdeApp
+, lib
+, exiv2
+, extra-cmake-modules
+}:
+
+kdeApp {
+  name = "libkexiv2";
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    exiv2
+  ];
+  meta = {
+    license = with lib.licenses; [ gpl2 lgpl21 bsd3 ];
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/applications-15.12/libkipi.nix b/pkgs/desktops/kde-5/applications-15.12/libkipi.nix
new file mode 100644
index 000000000000..c23cd8578fb9
--- /dev/null
+++ b/pkgs/desktops/kde-5/applications-15.12/libkipi.nix
@@ -0,0 +1,22 @@
+{ kdeApp
+, lib
+, extra-cmake-modules
+, kconfig
+, ki18n
+, kservice
+, kxmlgui
+}:
+
+kdeApp {
+  name = "libkipi";
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    kconfig ki18n kservice kxmlgui
+  ];
+  meta = {
+    license = with lib.licenses; [ gpl2 lgpl21 bsd3 ];
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/applications-15.12/okular.nix b/pkgs/desktops/kde-5/applications-15.12/okular.nix
new file mode 100644
index 000000000000..0691325d7a52
--- /dev/null
+++ b/pkgs/desktops/kde-5/applications-15.12/okular.nix
@@ -0,0 +1,41 @@
+{ kdeApp
+, lib
+, automoc4
+, cmake
+, perl
+, pkgconfig
+, kdelibs
+, qimageblitz
+, poppler_qt4
+, libspectre
+, libkexiv2
+, djvulibre
+, libtiff
+, freetype
+, ebook_tools
+}:
+
+kdeApp {
+  name = "okular";
+  nativeBuildInputs = [
+    automoc4
+    cmake
+    perl
+    pkgconfig
+  ];
+  buildInputs = [
+    kdelibs
+    qimageblitz
+    poppler_qt4
+    libspectre
+    libkexiv2
+    djvulibre
+    libtiff
+    freetype
+    ebook_tools
+  ];
+  meta = {
+    license = with lib.licenses; [ gpl2 lgpl21 fdl12 bsd3 ];
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/applications-15.12/print-manager.nix b/pkgs/desktops/kde-5/applications-15.12/print-manager.nix
new file mode 100644
index 000000000000..b4eab372789d
--- /dev/null
+++ b/pkgs/desktops/kde-5/applications-15.12/print-manager.nix
@@ -0,0 +1,47 @@
+{ kdeApp
+, lib
+, extra-cmake-modules
+, qtdeclarative
+, cups
+, kconfig
+, kconfigwidgets
+, kdbusaddons
+, kiconthemes
+, ki18n
+, kcmutils
+, kio
+, knotifications
+, plasma-framework
+, kwidgetsaddons
+, kwindowsystem
+, kitemviews
+}:
+
+kdeApp {
+  name = "print-manager";
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    cups
+    kconfig
+    kconfigwidgets
+    kdbusaddons
+    kiconthemes
+    kcmutils
+    knotifications
+    kwidgetsaddons
+    kitemviews
+  ];
+  propagatedBuildInputs = [
+    ki18n
+    kio
+    kwindowsystem
+    plasma-framework
+    qtdeclarative
+  ];
+  meta = {
+    license = [ lib.licenses.gpl2 ];
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/applications-15.12/spectacle.nix b/pkgs/desktops/kde-5/applications-15.12/spectacle.nix
new file mode 100644
index 000000000000..849334fb7364
--- /dev/null
+++ b/pkgs/desktops/kde-5/applications-15.12/spectacle.nix
@@ -0,0 +1,46 @@
+{ kdeApp, lib
+, extra-cmake-modules
+, kdoctools
+, makeQtWrapper
+, kconfig
+, kcoreaddons
+, kdbusaddons
+, ki18n
+, kio
+, knotifications
+, kscreen
+, kwidgetsaddons
+, kwindowsystem
+, kxmlgui
+, libkipi
+, xcb-util-cursor
+}:
+
+kdeApp {
+  name = "spectacle";
+  nativeBuildInputs = [
+    extra-cmake-modules
+    kdoctools
+    makeQtWrapper
+  ];
+  buildInputs = [
+    kconfig
+    kcoreaddons
+    kdbusaddons
+    ki18n
+    kio
+    knotifications
+    kscreen
+    kwidgetsaddons
+    kwindowsystem
+    kxmlgui
+    libkipi
+    xcb-util-cursor
+  ];
+  postFixup = ''
+    wrapQtProgram "$out/bin/spectacle"
+  '';
+  meta = with lib; {
+    maintainers = with maintainers; [ ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/applications-15.12/srcs.nix b/pkgs/desktops/kde-5/applications-15.12/srcs.nix
new file mode 100644
index 000000000000..cd123f49f76b
--- /dev/null
+++ b/pkgs/desktops/kde-5/applications-15.12/srcs.nix
@@ -0,0 +1,1933 @@
+# DO NOT EDIT! This file is generated automatically by fetchsrcs.sh
+{ fetchurl, mirror }:
+
+{
+  akonadi = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/akonadi-15.12.1.tar.xz";
+      sha256 = "1v9l1i9yny1ckyvq95wvd0bn3ain3fdlba76gf4f2zjwd57kw4il";
+      name = "akonadi-15.12.1.tar.xz";
+    };
+  };
+  akonadi-calendar = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/akonadi-calendar-15.12.1.tar.xz";
+      sha256 = "120fzy2l7c3rl4jlvk021wsrkp0gihqxhihmk6jrlwj4v7nswp69";
+      name = "akonadi-calendar-15.12.1.tar.xz";
+    };
+  };
+  akonadi-search = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/akonadi-search-15.12.1.tar.xz";
+      sha256 = "1kzjhqxa3n8216x1cs2xkyqyzjq7i8py5y5d303yr38m62z3f4qr";
+      name = "akonadi-search-15.12.1.tar.xz";
+    };
+  };
+  analitza = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/analitza-15.12.1.tar.xz";
+      sha256 = "0lvjsrraffqfl53gkdsbzmrsznrz1sqnhpsbx015v21pgiwnx6ll";
+      name = "analitza-15.12.1.tar.xz";
+    };
+  };
+  ark = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/ark-15.12.1.tar.xz";
+      sha256 = "0x61k21rjydcjz4b2z52xa559kymsji52ik0hjdkljvwhggcw96a";
+      name = "ark-15.12.1.tar.xz";
+    };
+  };
+  artikulate = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/artikulate-15.12.1.tar.xz";
+      sha256 = "1nlpyslrsqs0zirkaryq4sk2cb53sh2b8mk3cdzpj9w9isx9565x";
+      name = "artikulate-15.12.1.tar.xz";
+    };
+  };
+  audiocd-kio = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/audiocd-kio-15.12.1.tar.xz";
+      sha256 = "0x9x25x096grhm5lb3zibvrdy1x0hf2ryqkgp3l05580iirdjwss";
+      name = "audiocd-kio-15.12.1.tar.xz";
+    };
+  };
+  baloo-widgets = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/baloo-widgets-15.12.1.tar.xz";
+      sha256 = "01nrw2wrvzkvnh1xgzxqzy6zpx2p74iwrz44rrgr5dixciy5bqf5";
+      name = "baloo-widgets-15.12.1.tar.xz";
+    };
+  };
+  blinken = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/blinken-15.12.1.tar.xz";
+      sha256 = "1x9pdji26s0hwrni26wl8r0rqbykxdpl348671d0jwmnidq6rabv";
+      name = "blinken-15.12.1.tar.xz";
+    };
+  };
+  bomber = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/bomber-15.12.1.tar.xz";
+      sha256 = "0666ghxjcpscnc4d0q1jh29kx6knabkglbvggpkk1zqq3zl0fw6y";
+      name = "bomber-15.12.1.tar.xz";
+    };
+  };
+  bovo = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/bovo-15.12.1.tar.xz";
+      sha256 = "0cma6b1896nj2m7gra5g7jc9lwb7m70mhd593nib93w1i2mkamfr";
+      name = "bovo-15.12.1.tar.xz";
+    };
+  };
+  cantor = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/cantor-15.12.1.tar.xz";
+      sha256 = "15bdh85hrcx54ynq70jh42aw4m46g9sszg1rvymjpqi0za80srrj";
+      name = "cantor-15.12.1.tar.xz";
+    };
+  };
+  cervisia = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/cervisia-15.12.1.tar.xz";
+      sha256 = "1kgnvv3az7mdl6q29wxwaj8k3cnxzyizri7l6zjkp6n5jywxpq5h";
+      name = "cervisia-15.12.1.tar.xz";
+    };
+  };
+  dolphin = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/dolphin-15.12.1.tar.xz";
+      sha256 = "0lpc21abdw242cans08jnswbsf9avckf6v12za029g6p4nnvmspx";
+      name = "dolphin-15.12.1.tar.xz";
+    };
+  };
+  dolphin-plugins = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/dolphin-plugins-15.12.1.tar.xz";
+      sha256 = "0k438rhcscqin9735mjq8qrapc4ff4kimwp8bl6b77743b2bk59f";
+      name = "dolphin-plugins-15.12.1.tar.xz";
+    };
+  };
+  dragon = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/dragon-15.12.1.tar.xz";
+      sha256 = "0kqd7m8vjpc4ywz3hpqa8cy3fdlznnhv291wrgvvgm7dv83wylq3";
+      name = "dragon-15.12.1.tar.xz";
+    };
+  };
+  ffmpegthumbs = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/ffmpegthumbs-15.12.1.tar.xz";
+      sha256 = "1apcafjdjzhpqm72h2rvzxcy00fjdl8dah49ss7mj2ld0f36vl07";
+      name = "ffmpegthumbs-15.12.1.tar.xz";
+    };
+  };
+  filelight = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/filelight-15.12.1.tar.xz";
+      sha256 = "0za42abixfhkxczcddy9n4b98ryf3wvq2gngnqwgrs0m4wv3y530";
+      name = "filelight-15.12.1.tar.xz";
+    };
+  };
+  gpgmepp = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/gpgmepp-15.12.1.tar.xz";
+      sha256 = "0ygmdmampd3yc0mkfbw7ihrdc6vmxb178kd5y3dxms4kiilxw6lv";
+      name = "gpgmepp-15.12.1.tar.xz";
+    };
+  };
+  granatier = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/granatier-15.12.1.tar.xz";
+      sha256 = "09v0fwwkz7k8dx2rqc18qdrlmzkbmxna0ppxwq4cdhxixyppi0py";
+      name = "granatier-15.12.1.tar.xz";
+    };
+  };
+  gwenview = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/gwenview-15.12.1.tar.xz";
+      sha256 = "1bqcq277h6421rwhqvy8b2dn95h0zqqiskw38xfzrablfmr4ba9h";
+      name = "gwenview-15.12.1.tar.xz";
+    };
+  };
+  jovie = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/jovie-15.12.1.tar.xz";
+      sha256 = "0z6lxvzv92z5hkbin6l7d75l6alnk94l3mhdkfa6p9mfimxvzixy";
+      name = "jovie-15.12.1.tar.xz";
+    };
+  };
+  juk = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/juk-15.12.1.tar.xz";
+      sha256 = "1k9js66kmbpc6wyxxgp3z2zx7zhyvdsawy8fra9j76zd2fjyja60";
+      name = "juk-15.12.1.tar.xz";
+    };
+  };
+  kaccessible = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kaccessible-15.12.1.tar.xz";
+      sha256 = "1vjla5wf63h88y738f0p8prqkmzdifl0l6akmjvkasjipy3bcdw6";
+      name = "kaccessible-15.12.1.tar.xz";
+    };
+  };
+  kaccounts-integration = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kaccounts-integration-15.12.1.tar.xz";
+      sha256 = "1q7gjv4jr534q42am40x27kbk2sqs8im800xjw214y3dgw146g6d";
+      name = "kaccounts-integration-15.12.1.tar.xz";
+    };
+  };
+  kaccounts-providers = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kaccounts-providers-15.12.1.tar.xz";
+      sha256 = "1ir7cb3ma8j1jfnjk4m9xx5mj7yj769pblsjz1v6nh6s846ri1fh";
+      name = "kaccounts-providers-15.12.1.tar.xz";
+    };
+  };
+  kajongg = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kajongg-15.12.1.tar.xz";
+      sha256 = "1dzw9dvh3an26i6w8zf319337x7d4iggfgz0v9c46kngh8b9lydx";
+      name = "kajongg-15.12.1.tar.xz";
+    };
+  };
+  kalarmcal = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kalarmcal-15.12.1.tar.xz";
+      sha256 = "1kdbqy6hb19sip49nca05375rjwj2502mq1vmylrqfggbrh277wz";
+      name = "kalarmcal-15.12.1.tar.xz";
+    };
+  };
+  kalgebra = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kalgebra-15.12.1.tar.xz";
+      sha256 = "1f4kqjljw2rwzi82vzfbk7j9h4b9i127lnhklw47vyapllw2jjjc";
+      name = "kalgebra-15.12.1.tar.xz";
+    };
+  };
+  kalzium = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kalzium-15.12.1.tar.xz";
+      sha256 = "00fh91p4rrw7y6qdkg33dqf74c15q4j76b8xp1a6ydcvwjjcp4cv";
+      name = "kalzium-15.12.1.tar.xz";
+    };
+  };
+  kamera = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kamera-15.12.1.tar.xz";
+      sha256 = "01vd2zg2gyzbzcgdk6yd10vndn41wrf4cqg6vk65y0idk2gqjfbi";
+      name = "kamera-15.12.1.tar.xz";
+    };
+  };
+  kanagram = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kanagram-15.12.1.tar.xz";
+      sha256 = "0pifl0qh33cm09m1fl8ma7p4nzd6bw2sisq3aj1x6r2yal48n5l7";
+      name = "kanagram-15.12.1.tar.xz";
+    };
+  };
+  kapman = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kapman-15.12.1.tar.xz";
+      sha256 = "1fygp0v0s4dk6cb30samg63dbzdspx0fmd7shijhx4rdphq6jr5f";
+      name = "kapman-15.12.1.tar.xz";
+    };
+  };
+  kapptemplate = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kapptemplate-15.12.1.tar.xz";
+      sha256 = "045v0gb8gbhsnqk63zvwhmq7nncf6wd8zpbrp1s92sjkyjc7p8rn";
+      name = "kapptemplate-15.12.1.tar.xz";
+    };
+  };
+  kate = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kate-15.12.1.tar.xz";
+      sha256 = "1nwg578z49pswj098awlqblxzj7a5isqg6j9fy28zdg29rzfwchx";
+      name = "kate-15.12.1.tar.xz";
+    };
+  };
+  katomic = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/katomic-15.12.1.tar.xz";
+      sha256 = "1xvqpazmak4xdzg0wlan5ysn0xnpjqfz8c0j5vhsbglhfw8a71d6";
+      name = "katomic-15.12.1.tar.xz";
+    };
+  };
+  kblackbox = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kblackbox-15.12.1.tar.xz";
+      sha256 = "1dgla3c0wd1vl3yx8civn60xv10kab7nkngmclp6kw4v6f4vqk7q";
+      name = "kblackbox-15.12.1.tar.xz";
+    };
+  };
+  kblocks = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kblocks-15.12.1.tar.xz";
+      sha256 = "1zzdwg8bmf28r8yfjw4105j96xja30yq0aqg5cvpp0krmnr3254i";
+      name = "kblocks-15.12.1.tar.xz";
+    };
+  };
+  kblog = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kblog-15.12.1.tar.xz";
+      sha256 = "0yzi0q64szwgrda3x1w6vblfymgaqp3rq61z71fr327n8hngnpq8";
+      name = "kblog-15.12.1.tar.xz";
+    };
+  };
+  kbounce = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kbounce-15.12.1.tar.xz";
+      sha256 = "18z8q2ny5m3fik4q0zi0hkqy3w87qfhbpffp9nd6vrsi3wdj013p";
+      name = "kbounce-15.12.1.tar.xz";
+    };
+  };
+  kbreakout = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kbreakout-15.12.1.tar.xz";
+      sha256 = "02d964h3ay2sr5xk2g2kam80w9pi8ah98k6ld3vx5l5mjs5qffib";
+      name = "kbreakout-15.12.1.tar.xz";
+    };
+  };
+  kbruch = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kbruch-15.12.1.tar.xz";
+      sha256 = "05s8ghmg562za2y7g9vqwdh4jbifz7kjd9fj45j9mjwb5rxdckpr";
+      name = "kbruch-15.12.1.tar.xz";
+    };
+  };
+  kcachegrind = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kcachegrind-15.12.1.tar.xz";
+      sha256 = "0v036sc9lmvc00gllyzzvlgbap3m7q2gx4m0c931iaw6sal473q0";
+      name = "kcachegrind-15.12.1.tar.xz";
+    };
+  };
+  kcalc = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kcalc-15.12.1.tar.xz";
+      sha256 = "1dgpifj3w26d595gbv6m4r16729i92lkwl6p8hk0l5v5hxx82dkw";
+      name = "kcalc-15.12.1.tar.xz";
+    };
+  };
+  kcalcore = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kcalcore-15.12.1.tar.xz";
+      sha256 = "14w47ljak5v5nnbcgilsqc1hxf212vi8vycfxddflvmxzcy6b9c3";
+      name = "kcalcore-15.12.1.tar.xz";
+    };
+  };
+  kcalutils = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kcalutils-15.12.1.tar.xz";
+      sha256 = "0p10vvbnn01qnaxgyinyil4dwqfbwgqk7ngkgblfbmfg9h8drwfp";
+      name = "kcalutils-15.12.1.tar.xz";
+    };
+  };
+  kcharselect = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kcharselect-15.12.1.tar.xz";
+      sha256 = "1jagbaxs9nfih2wic0i9cgbmz76kwnrscrmcvd0w8jg4w5rnf59d";
+      name = "kcharselect-15.12.1.tar.xz";
+    };
+  };
+  kcolorchooser = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kcolorchooser-15.12.1.tar.xz";
+      sha256 = "1djcknlp97zlwvrs9fswg4v188qs2acb7lzw8y9j2p982d0g1idc";
+      name = "kcolorchooser-15.12.1.tar.xz";
+    };
+  };
+  kcontacts = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kcontacts-15.12.1.tar.xz";
+      sha256 = "0i6mx1ss19g86j55kj47qvrcvqwp6ax7wyg0ar436aa18digfa96";
+      name = "kcontacts-15.12.1.tar.xz";
+    };
+  };
+  kcron = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kcron-15.12.1.tar.xz";
+      sha256 = "04w3017y3955fj3z76ng28fksyzjbqlw09g6g6b9l8nyi5y1zgm0";
+      name = "kcron-15.12.1.tar.xz";
+    };
+  };
+  kde-baseapps = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-baseapps-15.12.1.tar.xz";
+      sha256 = "0n0g7jjb2kf8h9nr9sc0l5ia796nc2nzlfxnibyvvlp68sj4ffwd";
+      name = "kde-baseapps-15.12.1.tar.xz";
+    };
+  };
+  kdebugsettings = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kdebugsettings-15.12.1.tar.xz";
+      sha256 = "1b7w5rnbxg0m4xlrlisd1ipv4w0xl5125m5vxvrqdrcsl647xbk0";
+      name = "kdebugsettings-15.12.1.tar.xz";
+    };
+  };
+  kde-dev-scripts = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-dev-scripts-15.12.1.tar.xz";
+      sha256 = "1d2d1r11xnk3wbxgmnkm8k6azbjxz8gm0mpp37lrx5aq181i8598";
+      name = "kde-dev-scripts-15.12.1.tar.xz";
+    };
+  };
+  kde-dev-utils = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-dev-utils-15.12.1.tar.xz";
+      sha256 = "1igpf4qa502nsz7rxqmv3phrlj58fgjdbamlrz9fz4czlcd4j8fb";
+      name = "kde-dev-utils-15.12.1.tar.xz";
+    };
+  };
+  kdeedu-data = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kdeedu-data-15.12.1.tar.xz";
+      sha256 = "0avpy6w5n554hxi2qhsfi8n9m1x9wf3faklqzfj650j1574n17yj";
+      name = "kdeedu-data-15.12.1.tar.xz";
+    };
+  };
+  kdegraphics-mobipocket = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kdegraphics-mobipocket-15.12.1.tar.xz";
+      sha256 = "0ya6cli7c0yh7myh00b818qydlm481cnszc39b3557iq43qrxd89";
+      name = "kdegraphics-mobipocket-15.12.1.tar.xz";
+    };
+  };
+  kdegraphics-strigi-analyzer = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kdegraphics-strigi-analyzer-15.12.1.tar.xz";
+      sha256 = "1i0sqdyl2fcg7v0q9c7pvk5v4klzsfphv82knapmkpvlddj7mwyz";
+      name = "kdegraphics-strigi-analyzer-15.12.1.tar.xz";
+    };
+  };
+  kdegraphics-thumbnailers = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kdegraphics-thumbnailers-15.12.1.tar.xz";
+      sha256 = "03fvrlk6dgj6s6dr3vvhxn9877ay3798kf156hjn9pqx4iypqhz3";
+      name = "kdegraphics-thumbnailers-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-ar = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-ar-15.12.1.tar.xz";
+      sha256 = "1p417hkkikggy01awyazd1njyq2bs6y1jvspd7ijr3y4w1jia78q";
+      name = "kde-l10n-ar-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-bg = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-bg-15.12.1.tar.xz";
+      sha256 = "1l2s8h2rpyp71xs8jkww6s5zi58xxizf38k5xh4jrvx9vias4cl8";
+      name = "kde-l10n-bg-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-bs = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-bs-15.12.1.tar.xz";
+      sha256 = "10a5680bl5w30ynndf019627l235bx2v5bi5yyx27l7ki3infs86";
+      name = "kde-l10n-bs-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-ca = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-ca-15.12.1.tar.xz";
+      sha256 = "1841vmsf1iya41zwkcpgmcs2agc825l8mjbpmvpa5d5xyh9nsyp3";
+      name = "kde-l10n-ca-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-ca_valencia = {
+    version = "ca_valencia-15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-ca@valencia-15.12.1.tar.xz";
+      sha256 = "0yz30y1khvsng166wkq49kr17vv8y67n3cns5y6zrnq6wb7zplri";
+      name = "kde-l10n-ca_valencia-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-cs = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-cs-15.12.1.tar.xz";
+      sha256 = "1vvi8mlj3sxwvpbz5fp2yhkzm1933nfmmhhfklpj264dynw6jxzm";
+      name = "kde-l10n-cs-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-da = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-da-15.12.1.tar.xz";
+      sha256 = "00vy9if529za7iybb8i7xxdazd8f4y9kiy1yjpgky39yhsjp65bw";
+      name = "kde-l10n-da-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-de = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-de-15.12.1.tar.xz";
+      sha256 = "0s9ibm1sjw1xa4gx36g0midy2wvc8baixaq7ldv23a56gr9ls37a";
+      name = "kde-l10n-de-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-el = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-el-15.12.1.tar.xz";
+      sha256 = "16xfri6pv01vvxh47h0an2gy9hd38l0lvnmvq33kf60424p20iy9";
+      name = "kde-l10n-el-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-en_GB = {
+    version = "en_GB-15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-en_GB-15.12.1.tar.xz";
+      sha256 = "170hd2g8a7dafsjr35lkpc9wwiwj0gsg0bmrir3dmqjw78fkfrjw";
+      name = "kde-l10n-en_GB-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-eo = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-eo-15.12.1.tar.xz";
+      sha256 = "0jrhrr4rxz9qfapx2gvw8i7q17fc4zzp45q1scz0h7cvnmw087ac";
+      name = "kde-l10n-eo-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-es = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-es-15.12.1.tar.xz";
+      sha256 = "1f54wg365mqbcgf93rs6lay78ac9zijff0kszylzjm1k2a2vl5wj";
+      name = "kde-l10n-es-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-et = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-et-15.12.1.tar.xz";
+      sha256 = "0arrgznymzv4vfc97g40b51z3szbg7y4k1nncl01w0758szrp6c0";
+      name = "kde-l10n-et-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-eu = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-eu-15.12.1.tar.xz";
+      sha256 = "15dpm0isgh8645qwqw5mza295hb8ls6lp2pnil1iy2lpcmsr53cr";
+      name = "kde-l10n-eu-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-fa = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-fa-15.12.1.tar.xz";
+      sha256 = "1867bxi0bvy5dgig41z4gwghnkjgy43h4i5w65al8djf0haqyr52";
+      name = "kde-l10n-fa-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-fi = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-fi-15.12.1.tar.xz";
+      sha256 = "1028psgc58wk5lp245jk905w54m654pmwkfj24g06jxas65pglrd";
+      name = "kde-l10n-fi-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-fr = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-fr-15.12.1.tar.xz";
+      sha256 = "0hi3dzd07ns8hrm7rv6hxx1b6idwmgvr3jgdmzs2883gkjivv6g8";
+      name = "kde-l10n-fr-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-ga = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-ga-15.12.1.tar.xz";
+      sha256 = "1gq7j053c3lv30pmf0q2xlsazyl21jgpcr0kfmza6yrg5cxaivjb";
+      name = "kde-l10n-ga-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-gl = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-gl-15.12.1.tar.xz";
+      sha256 = "1pmizbmfqi95lcwbka5h87f015p3ml1vf59npkchfq6v7iv45zxf";
+      name = "kde-l10n-gl-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-he = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-he-15.12.1.tar.xz";
+      sha256 = "1kyf48hpj42hzc75r1s1js730n0gw94ldcrap3ypd1vjzg67f6wn";
+      name = "kde-l10n-he-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-hi = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-hi-15.12.1.tar.xz";
+      sha256 = "0rarsx7y0plr1l0vh5nx4dm9xdq69wr3szcdcvlxx1xdx0f2xyxk";
+      name = "kde-l10n-hi-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-hr = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-hr-15.12.1.tar.xz";
+      sha256 = "15gxrrla5gwvwsx5ncf97naj9p09x3g03jbxkpzjf2vn4xgkq7wf";
+      name = "kde-l10n-hr-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-hu = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-hu-15.12.1.tar.xz";
+      sha256 = "15cw97fjcbqn6n6h03mldf40vjsmzzjwgb63z0qlcg5s87yl8lik";
+      name = "kde-l10n-hu-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-ia = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-ia-15.12.1.tar.xz";
+      sha256 = "1ab7pivq4xbzvjwq18rnw1c7lyaz0yyhfqkkw0w31qdvh8zx91xg";
+      name = "kde-l10n-ia-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-id = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-id-15.12.1.tar.xz";
+      sha256 = "1w7s7m7p4mia0q9x32rcmdszsz0x7zw210pssw1zk3vh9dc29f1j";
+      name = "kde-l10n-id-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-is = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-is-15.12.1.tar.xz";
+      sha256 = "0w1b8fsw3q6ry63bs27s7rbv9q5cps3kd5rd4bhkja0v950p2lfg";
+      name = "kde-l10n-is-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-it = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-it-15.12.1.tar.xz";
+      sha256 = "03cal5i75540q6vk8ln32lfg93s1hy02qnnajggm96ncpmlw1fp4";
+      name = "kde-l10n-it-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-ja = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-ja-15.12.1.tar.xz";
+      sha256 = "1d8p2pvz5h9mr0agbazggjd363h4ggmxs35lfkc41sw2ka8wc7zk";
+      name = "kde-l10n-ja-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-kk = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-kk-15.12.1.tar.xz";
+      sha256 = "06pr04sq9szkgvgrj0saiwc5axqv09sz48alz97qvhprfi63k7gm";
+      name = "kde-l10n-kk-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-km = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-km-15.12.1.tar.xz";
+      sha256 = "1j0jf01j12y1jsyx8n47nz5wjwk545z6wn3hp8shkf3gfrda6x8h";
+      name = "kde-l10n-km-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-ko = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-ko-15.12.1.tar.xz";
+      sha256 = "08hknapyy10205h71zapj3n5k46gqjjfd7acpqz85ff92l0iryxd";
+      name = "kde-l10n-ko-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-lt = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-lt-15.12.1.tar.xz";
+      sha256 = "0l844nsr0najfhfbqzwhi4pvagir9fvq2gx2p1xkfk06m1ki1krw";
+      name = "kde-l10n-lt-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-lv = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-lv-15.12.1.tar.xz";
+      sha256 = "09pnn4m70655pn9ycqpmxlich8pih5j0kgqa64r3ip2gsw4gx5js";
+      name = "kde-l10n-lv-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-mr = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-mr-15.12.1.tar.xz";
+      sha256 = "1nqvacfyar88zgq1h836r6amm56qk8whr4xh7q571969qmcbz8mc";
+      name = "kde-l10n-mr-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-nb = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-nb-15.12.1.tar.xz";
+      sha256 = "0h9w9ya8ridprsav2ypn1rl92gdkx7cdnzjhjfyb028c6mrzx2xl";
+      name = "kde-l10n-nb-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-nds = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-nds-15.12.1.tar.xz";
+      sha256 = "0xj644sdicdqg4f5qvvmb3gzdw46rcma1bz2wr19prismswm61q4";
+      name = "kde-l10n-nds-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-nl = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-nl-15.12.1.tar.xz";
+      sha256 = "00wimacv53ggjrccm33mm406yd501c57pkvzdvzzx6ljdq0gz3j1";
+      name = "kde-l10n-nl-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-nn = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-nn-15.12.1.tar.xz";
+      sha256 = "13cb7inz00i0cj9da3zhlbh6mb3rrya4c79ydy2gvwj5p54bdbxy";
+      name = "kde-l10n-nn-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-pa = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-pa-15.12.1.tar.xz";
+      sha256 = "1f58fnmlzgsyfmn9f2lfsla1v0ynpmg4d5x6kk8b92a6ad2an9dc";
+      name = "kde-l10n-pa-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-pl = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-pl-15.12.1.tar.xz";
+      sha256 = "0wfl6sgdbzwbg00c8rqj9i2avi46vdppdjk48w222j9cibf1ifwp";
+      name = "kde-l10n-pl-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-pt = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-pt-15.12.1.tar.xz";
+      sha256 = "0ljxz362ahz1r8hvvh8zliiki3jmsqzx656jn5f6g3c4xjxmmhd9";
+      name = "kde-l10n-pt-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-pt_BR = {
+    version = "pt_BR-15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-pt_BR-15.12.1.tar.xz";
+      sha256 = "072jn9r4sfi62mb5yh6ayisana18da0xrvdf9r2c03rhl1hlqiiq";
+      name = "kde-l10n-pt_BR-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-ro = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-ro-15.12.1.tar.xz";
+      sha256 = "0pp328zj5v50paf7xgajh2l4mk75hg3am6xyiw7p94fx3m6lnw9g";
+      name = "kde-l10n-ro-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-ru = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-ru-15.12.1.tar.xz";
+      sha256 = "1sg38y0778ld1cjvvm2zfn8gmav195dak52596lpzklh6ahnp9dc";
+      name = "kde-l10n-ru-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-sk = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-sk-15.12.1.tar.xz";
+      sha256 = "16nxrz95x558n5kqvs8q0rdy8lqas0w7zlgr910v92497hsmxmsg";
+      name = "kde-l10n-sk-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-sl = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-sl-15.12.1.tar.xz";
+      sha256 = "128jp5pis4np8734dn8j77xf2h8a8hq041gnjdlfd0yvq61pn9dk";
+      name = "kde-l10n-sl-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-sr = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-sr-15.12.1.tar.xz";
+      sha256 = "0cmchn7niddx48lvjflzvqv0xlbp1fxwr492ldb8vs0l71ifsl6v";
+      name = "kde-l10n-sr-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-sv = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-sv-15.12.1.tar.xz";
+      sha256 = "02sh0z394bd03m0as4n6qdk9mm8yy8z80b2xk9d42f27v6snqr29";
+      name = "kde-l10n-sv-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-tr = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-tr-15.12.1.tar.xz";
+      sha256 = "18rlg2xdif54npfi2dhw2my494pbg089r3wvl6msc17nf0c72w10";
+      name = "kde-l10n-tr-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-ug = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-ug-15.12.1.tar.xz";
+      sha256 = "1dkv3vqa66fvyksqxjdvrm6jmks07dp34934ccx9dm2kqq0nciz9";
+      name = "kde-l10n-ug-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-uk = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-uk-15.12.1.tar.xz";
+      sha256 = "15vl45g85f9xncn2dxz527kxig151iddf1pbh57hngdhdirz98cd";
+      name = "kde-l10n-uk-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-wa = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-wa-15.12.1.tar.xz";
+      sha256 = "192rb9hrfw9b525czwc33x2djjg9klm5icdx4l7jp0qsrwzdgr0g";
+      name = "kde-l10n-wa-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-zh_CN = {
+    version = "zh_CN-15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-zh_CN-15.12.1.tar.xz";
+      sha256 = "055prxx6dspsyp3j51a8chmg6fdzl0ncjkhhyr21hlfiwv91fac0";
+      name = "kde-l10n-zh_CN-15.12.1.tar.xz";
+    };
+  };
+  kde-l10n-zh_TW = {
+    version = "zh_TW-15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-l10n/kde-l10n-zh_TW-15.12.1.tar.xz";
+      sha256 = "14kargm5s1vb6ylf7nrnv1s3pbjaplmbi8kr4qrggcyinda4wp74";
+      name = "kde-l10n-zh_TW-15.12.1.tar.xz";
+    };
+  };
+  kdelibs = {
+    version = "4.14.16";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kdelibs-4.14.16.tar.xz";
+      sha256 = "1amkwrwjm2v0jd1rl1n0pfi8ahvzaszj03093bmxqllrqhqbkxkv";
+      name = "kdelibs-4.14.16.tar.xz";
+    };
+  };
+  kdenetwork-filesharing = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kdenetwork-filesharing-15.12.1.tar.xz";
+      sha256 = "15fj3kk76gg6vk43yiz508cks1l9yazlhmqf7s4q0b9xwmvdahsj";
+      name = "kdenetwork-filesharing-15.12.1.tar.xz";
+    };
+  };
+  kdenetwork-strigi-analyzers = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kdenetwork-strigi-analyzers-15.12.1.tar.xz";
+      sha256 = "1nwckiggwrmvsdhyfmhqv1w79zcvzh4s2jyivyprvk418c1qy69b";
+      name = "kdenetwork-strigi-analyzers-15.12.1.tar.xz";
+    };
+  };
+  kdenlive = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kdenlive-15.12.1.tar.xz";
+      sha256 = "1j7mpjwis9n99dsyax7swqmx45g9mw46lcn063m0rsdzsh905yrk";
+      name = "kdenlive-15.12.1.tar.xz";
+    };
+  };
+  kdepim = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kdepim-15.12.1.tar.xz";
+      sha256 = "0r1l3za5jbdvr4x6hv0d94d8lwa1a5qcg3q83wn1jrb6mlfc1f03";
+      name = "kdepim-15.12.1.tar.xz";
+    };
+  };
+  kdepimlibs = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kdepimlibs-15.12.1.tar.xz";
+      sha256 = "1f5j4alzmpm4scvn6k4mg9ykdsi0b6r28h2bisq39apn0k6fzadl";
+      name = "kdepimlibs-15.12.1.tar.xz";
+    };
+  };
+  kdepim-runtime = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kdepim-runtime-15.12.1.tar.xz";
+      sha256 = "0l6la5jds6byg9ibphlbf8yywgfjyin4w02ik16h3mm01rl5d1mn";
+      name = "kdepim-runtime-15.12.1.tar.xz";
+    };
+  };
+  kde-runtime = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kde-runtime-15.12.1.tar.xz";
+      sha256 = "19arkcj95dysxhanbh0armwimxph3s7ljhvgbzdi7r4glm9aq0kn";
+      name = "kde-runtime-15.12.1.tar.xz";
+    };
+  };
+  kdesdk-kioslaves = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kdesdk-kioslaves-15.12.1.tar.xz";
+      sha256 = "198i8cfz194smlhj8rafmkjbgzk1wmiw1gki4mb9vvk1gddgxc65";
+      name = "kdesdk-kioslaves-15.12.1.tar.xz";
+    };
+  };
+  kdesdk-strigi-analyzers = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kdesdk-strigi-analyzers-15.12.1.tar.xz";
+      sha256 = "0lcn0b58574kwsg7j5qyf46vjkbvsl7w8y9wi983rd06dhfgql5l";
+      name = "kdesdk-strigi-analyzers-15.12.1.tar.xz";
+    };
+  };
+  kdesdk-thumbnailers = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kdesdk-thumbnailers-15.12.1.tar.xz";
+      sha256 = "18fbgwb8bil90arbylw4605xk240g21saaw39zlx203q8bmnm7cm";
+      name = "kdesdk-thumbnailers-15.12.1.tar.xz";
+    };
+  };
+  kdewebdev = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kdewebdev-15.12.1.tar.xz";
+      sha256 = "1zmbagi1fqlr2y74hghlbs8y7kbaxx739vjhxxvd8qn4akhgij92";
+      name = "kdewebdev-15.12.1.tar.xz";
+    };
+  };
+  kdf = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kdf-15.12.1.tar.xz";
+      sha256 = "0g0b2hqsls8nrwrqj78v6m38h4szsr0hs9bwfbrv63ppjm6a8272";
+      name = "kdf-15.12.1.tar.xz";
+    };
+  };
+  kdiamond = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kdiamond-15.12.1.tar.xz";
+      sha256 = "12xl2h3hcb4c7sm1v9p9cqcflqi30cfqhjj6vjwwb474pjffxfdw";
+      name = "kdiamond-15.12.1.tar.xz";
+    };
+  };
+  kfloppy = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kfloppy-15.12.1.tar.xz";
+      sha256 = "1hrr4rfk63q4r7lbqq6nn96camcm5jq41qnvx6cm4pqqd4a8z6hp";
+      name = "kfloppy-15.12.1.tar.xz";
+    };
+  };
+  kfourinline = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kfourinline-15.12.1.tar.xz";
+      sha256 = "1xj3krs20j3df3mkbav1nmwjaw524kif6g5qp36jipv9f58zw73g";
+      name = "kfourinline-15.12.1.tar.xz";
+    };
+  };
+  kgeography = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kgeography-15.12.1.tar.xz";
+      sha256 = "0rvq9a4l4yjyk2bmlwppjmik3pfkhbxrp9105136n4vskizhrm8h";
+      name = "kgeography-15.12.1.tar.xz";
+    };
+  };
+  kget = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kget-15.12.1.tar.xz";
+      sha256 = "1nqiw64yaz7kw58cldjjwdmlilrg9hxrlqwd2r7d0ip3mid5clkj";
+      name = "kget-15.12.1.tar.xz";
+    };
+  };
+  kgoldrunner = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kgoldrunner-15.12.1.tar.xz";
+      sha256 = "0rlhqvksyi0b79z955d3anagk5p5k4b9nikr8fsb64xzq7pjwn42";
+      name = "kgoldrunner-15.12.1.tar.xz";
+    };
+  };
+  kgpg = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kgpg-15.12.1.tar.xz";
+      sha256 = "1ylns50237qr3af9i66n3v31qm6n1dd64j09smbjy6ij010ja4l3";
+      name = "kgpg-15.12.1.tar.xz";
+    };
+  };
+  khangman = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/khangman-15.12.1.tar.xz";
+      sha256 = "12xkqa8i53km3nwi9kzlclr29hg185pcjmsd6grzkyh3brqz40y2";
+      name = "khangman-15.12.1.tar.xz";
+    };
+  };
+  kholidays = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kholidays-15.12.1.tar.xz";
+      sha256 = "01ycl8j4nsc454wkk7ir5q38j4xlqcq05bgapks04s9lws1582dz";
+      name = "kholidays-15.12.1.tar.xz";
+    };
+  };
+  kidentitymanagement = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kidentitymanagement-15.12.1.tar.xz";
+      sha256 = "12adkn01h5392fqixiap62cql20sijjm23c666kabwdmji98183p";
+      name = "kidentitymanagement-15.12.1.tar.xz";
+    };
+  };
+  kig = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kig-15.12.1.tar.xz";
+      sha256 = "0x3g1ipxrqvd7pxpc2kccv0r4m2qnasarjcxz6ljz3227xzcc5zf";
+      name = "kig-15.12.1.tar.xz";
+    };
+  };
+  kigo = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kigo-15.12.1.tar.xz";
+      sha256 = "0b3ngl9ndgfbbihp1dikii40r8kbpi8yz9s0f4jadp6gqna6xjl5";
+      name = "kigo-15.12.1.tar.xz";
+    };
+  };
+  killbots = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/killbots-15.12.1.tar.xz";
+      sha256 = "1qvy6y4rbapp2y7vd2ammbiqxxqp3dbpyy16fyd7h08639wbrl7f";
+      name = "killbots-15.12.1.tar.xz";
+    };
+  };
+  kimap = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kimap-15.12.1.tar.xz";
+      sha256 = "0q1n8p4h7n5zad0lwaawh5kb5k6z4wzdr8kbpvhlw0dkp8a504ds";
+      name = "kimap-15.12.1.tar.xz";
+    };
+  };
+  kio-extras = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kio-extras-15.12.1.tar.xz";
+      sha256 = "0crl21kq8ya49hhcgfcch4x9xxjakwgs90yv0qp8zj19k12kl8fn";
+      name = "kio-extras-15.12.1.tar.xz";
+    };
+  };
+  kiriki = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kiriki-15.12.1.tar.xz";
+      sha256 = "04zyq7nmdlnskzlw0hn78hpcf8rwjq53d7imnai7gvbxgcv2qf7a";
+      name = "kiriki-15.12.1.tar.xz";
+    };
+  };
+  kiten = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kiten-15.12.1.tar.xz";
+      sha256 = "0wr3zr26y07m911fy6ar4n53fp8b9jvms49i9cf7qwx4dc4a0wvr";
+      name = "kiten-15.12.1.tar.xz";
+    };
+  };
+  kjumpingcube = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kjumpingcube-15.12.1.tar.xz";
+      sha256 = "1xsza01v0c6d1p6ydng1pkqq8g9397x1xbzfzq3fal8l8bf1nnl7";
+      name = "kjumpingcube-15.12.1.tar.xz";
+    };
+  };
+  kldap = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kldap-15.12.1.tar.xz";
+      sha256 = "1dr8pavgr3hrlk0xxvfnsk9p05bzg9rgwzgqw4xci9cx22jmyaxi";
+      name = "kldap-15.12.1.tar.xz";
+    };
+  };
+  klettres = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/klettres-15.12.1.tar.xz";
+      sha256 = "0b1sw7x3miqivryc6bq1qn5gnfm8x8ns5v8qpvq5a2j76ifwkj54";
+      name = "klettres-15.12.1.tar.xz";
+    };
+  };
+  klickety = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/klickety-15.12.1.tar.xz";
+      sha256 = "1cfrn7fvrrvn9s22d8ry1nck6h0hg0l8ccdy6405wjiks9wb5jra";
+      name = "klickety-15.12.1.tar.xz";
+    };
+  };
+  klines = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/klines-15.12.1.tar.xz";
+      sha256 = "1b0plhc79cpxag02ij5zj3ix1hg4rpsnbc272gdy6kzl2862brdd";
+      name = "klines-15.12.1.tar.xz";
+    };
+  };
+  kmag = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kmag-15.12.1.tar.xz";
+      sha256 = "1j7vgzpl61b2bm4csh6y9m58451nj0d7sxvjhxbimz0vzv9hh90x";
+      name = "kmag-15.12.1.tar.xz";
+    };
+  };
+  kmahjongg = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kmahjongg-15.12.1.tar.xz";
+      sha256 = "1ng2495vrk7czfd1zlmij1qch6ir3vm2dfm63y8vnyf1dj39g1z3";
+      name = "kmahjongg-15.12.1.tar.xz";
+    };
+  };
+  kmailtransport = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kmailtransport-15.12.1.tar.xz";
+      sha256 = "04c9pq16aaf1fmyy25jlnq2wcsninbr19j7ygaaiqm2scj2mikk3";
+      name = "kmailtransport-15.12.1.tar.xz";
+    };
+  };
+  kmbox = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kmbox-15.12.1.tar.xz";
+      sha256 = "17ri9ay28v7f8yar8a33gx2wm99shby8bi9pj0sflxnzvawnlrwq";
+      name = "kmbox-15.12.1.tar.xz";
+    };
+  };
+  kmime = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kmime-15.12.1.tar.xz";
+      sha256 = "0r5scbsq21zhxs6c2lj0ay6sizrkyfczzjrnyv15izxh18jm7h7d";
+      name = "kmime-15.12.1.tar.xz";
+    };
+  };
+  kmines = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kmines-15.12.1.tar.xz";
+      sha256 = "0za53gh6v74c2rwmm2f084z80w9gqrdx5g6zqdlxwiml8m9ybzq1";
+      name = "kmines-15.12.1.tar.xz";
+    };
+  };
+  kmix = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kmix-15.12.1.tar.xz";
+      sha256 = "10vbb5x9hbd124avs68x39zlp7jrqww0gp2avsgvgv8hr7caxwlv";
+      name = "kmix-15.12.1.tar.xz";
+    };
+  };
+  kmousetool = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kmousetool-15.12.1.tar.xz";
+      sha256 = "16lr93v2jmj0851afiz63p317fbnfdjavi2f2j49dxd51dayxydl";
+      name = "kmousetool-15.12.1.tar.xz";
+    };
+  };
+  kmouth = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kmouth-15.12.1.tar.xz";
+      sha256 = "0hfkmj3gd71fjp3fvqyv2ds42rlrgyzd1g0scrjpaql9d28g5q7f";
+      name = "kmouth-15.12.1.tar.xz";
+    };
+  };
+  kmplot = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kmplot-15.12.1.tar.xz";
+      sha256 = "1bniv6aahgmdh4kqkcvhi34jpd5i6g4q9s1gyjsfi4b65lhvb908";
+      name = "kmplot-15.12.1.tar.xz";
+    };
+  };
+  knavalbattle = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/knavalbattle-15.12.1.tar.xz";
+      sha256 = "1ky6wx26l1dk244py2j59rh1yyyhdv00kv698i44w71g21g0zg2h";
+      name = "knavalbattle-15.12.1.tar.xz";
+    };
+  };
+  knetwalk = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/knetwalk-15.12.1.tar.xz";
+      sha256 = "0zxq3rcs62q2q393b5nrf9496h0ahja7rwydgqmim0gywfnq1xk6";
+      name = "knetwalk-15.12.1.tar.xz";
+    };
+  };
+  kolf = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kolf-15.12.1.tar.xz";
+      sha256 = "182196bjz721vxll4d1j6kflrpqnzrx2ws369p2wm7sy72md5d9s";
+      name = "kolf-15.12.1.tar.xz";
+    };
+  };
+  kollision = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kollision-15.12.1.tar.xz";
+      sha256 = "09cf6dkq499wlafdlzvgkvs4vbkz4pws1q2x1w8ayl0qg4d85a5g";
+      name = "kollision-15.12.1.tar.xz";
+    };
+  };
+  kolourpaint = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kolourpaint-15.12.1.tar.xz";
+      sha256 = "1dnzgyd61n09ia4nvzdc94z2w82akv386kqvla85yrjyr11jcr2j";
+      name = "kolourpaint-15.12.1.tar.xz";
+    };
+  };
+  kompare = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kompare-15.12.1.tar.xz";
+      sha256 = "00mibqn1ca09z3i12ic7vkpdr48sh6ry302jmlcbbmx9pfwlnvdv";
+      name = "kompare-15.12.1.tar.xz";
+    };
+  };
+  konquest = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/konquest-15.12.1.tar.xz";
+      sha256 = "1lhfv8l2yn49bdbkh41pjdjin7g1xgy6qh5hcixvh5sizhnax3yd";
+      name = "konquest-15.12.1.tar.xz";
+    };
+  };
+  konsole = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/konsole-15.12.1.tar.xz";
+      sha256 = "0vpaq3081y8x0sybnnkhq6sz6gdpsl73yvzpgnbmshxr34xnn26z";
+      name = "konsole-15.12.1.tar.xz";
+    };
+  };
+  kontactinterface = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kontactinterface-15.12.1.tar.xz";
+      sha256 = "1j95qcfiwbij7l2fwls4wmpsad2mzsrzg82cdfy6wddgl86v1i1n";
+      name = "kontactinterface-15.12.1.tar.xz";
+    };
+  };
+  kopete = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kopete-15.12.1.tar.xz";
+      sha256 = "0cv22hx0xk2yfwbqh7dqhpdsifb63gyjng2k4zbjjgiixhyg82z8";
+      name = "kopete-15.12.1.tar.xz";
+    };
+  };
+  kpat = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kpat-15.12.1.tar.xz";
+      sha256 = "1qjrs2sblwkhb9avrjsximfshabpc0gqznhq6lwwm41i8kql261m";
+      name = "kpat-15.12.1.tar.xz";
+    };
+  };
+  kpimtextedit = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kpimtextedit-15.12.1.tar.xz";
+      sha256 = "1qgr5bcqmlqngi1g2ylxik80pixa5nijj2ii8qvjh7wkbd7m549y";
+      name = "kpimtextedit-15.12.1.tar.xz";
+    };
+  };
+  kppp = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kppp-15.12.1.tar.xz";
+      sha256 = "0v03mp295h184dhx0kps7r1aygmbdyxr7yz2ab8m259pzb6mfv5l";
+      name = "kppp-15.12.1.tar.xz";
+    };
+  };
+  kqtquickcharts = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kqtquickcharts-15.12.1.tar.xz";
+      sha256 = "1vwx3qb8hrwn4r89a9kb8ycvgv43d94zhfi46l0a5msl94k2kigr";
+      name = "kqtquickcharts-15.12.1.tar.xz";
+    };
+  };
+  krdc = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/krdc-15.12.1.tar.xz";
+      sha256 = "1vhxl6h4xjqvckl2zxhfcb633wllj1xx5dv4lwpvpqk2zpihkrli";
+      name = "krdc-15.12.1.tar.xz";
+    };
+  };
+  kremotecontrol = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kremotecontrol-15.12.1.tar.xz";
+      sha256 = "0v59y8ilgyyjl327qf25d21z0gr7ii2p9wd985xj9lcdx2gax811";
+      name = "kremotecontrol-15.12.1.tar.xz";
+    };
+  };
+  kreversi = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kreversi-15.12.1.tar.xz";
+      sha256 = "1hlh2ddxg1kcg9pmd0pmw8kwnnvv7jy45sq8dhw1wnfmqxyni5m9";
+      name = "kreversi-15.12.1.tar.xz";
+    };
+  };
+  krfb = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/krfb-15.12.1.tar.xz";
+      sha256 = "1dw7jwny6qqffykdkv1ic0xb4qbn5kymxv3rpy9g0gzwgyphgg3c";
+      name = "krfb-15.12.1.tar.xz";
+    };
+  };
+  kross-interpreters = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kross-interpreters-15.12.1.tar.xz";
+      sha256 = "1lwxk5p5mb4760bwi5b10yqdrbr7vw1g4xq9g8krd9k3nz5gkkqg";
+      name = "kross-interpreters-15.12.1.tar.xz";
+    };
+  };
+  kruler = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kruler-15.12.1.tar.xz";
+      sha256 = "0y7cli4k0hhdrsw1c0mldlrw9nh7smsayik108na5wyd10ps2yyl";
+      name = "kruler-15.12.1.tar.xz";
+    };
+  };
+  ksaneplugin = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/ksaneplugin-15.12.1.tar.xz";
+      sha256 = "1fs19rs6kkh2vq5kg1i2n1650349qanw03v6wziqnar4ay243grp";
+      name = "ksaneplugin-15.12.1.tar.xz";
+    };
+  };
+  kscd = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kscd-15.12.1.tar.xz";
+      sha256 = "16hzmxgc73p0n154clnyqz5hc3xliqcra37hrsbx2g0mkbm15p8g";
+      name = "kscd-15.12.1.tar.xz";
+    };
+  };
+  kshisen = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kshisen-15.12.1.tar.xz";
+      sha256 = "1kkzpf4dvlfaqs6f5rxabjn0n95nqxadfw1rp6aqxj0v2qb60pcp";
+      name = "kshisen-15.12.1.tar.xz";
+    };
+  };
+  ksirk = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/ksirk-15.12.1.tar.xz";
+      sha256 = "1hfq7c77y9wia4534j4cwai3xj4xn4nny9mxx6jwj9hfw6yh3lj6";
+      name = "ksirk-15.12.1.tar.xz";
+    };
+  };
+  ksnakeduel = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/ksnakeduel-15.12.1.tar.xz";
+      sha256 = "0mdfv4slh2nj50jc27p2hslqxzghyv0mvx270wk2b1n53zg079q9";
+      name = "ksnakeduel-15.12.1.tar.xz";
+    };
+  };
+  kspaceduel = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kspaceduel-15.12.1.tar.xz";
+      sha256 = "0wi6zcmgihw42w4hxrcwc5bq3cksgc71m4a53hqs9j3pq1lz1ykr";
+      name = "kspaceduel-15.12.1.tar.xz";
+    };
+  };
+  ksquares = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/ksquares-15.12.1.tar.xz";
+      sha256 = "0cmls8lpm271m55wflg1cbj88nvqzfawqn27nxfrg313j7n3a04b";
+      name = "ksquares-15.12.1.tar.xz";
+    };
+  };
+  kstars = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kstars-15.12.1.tar.xz";
+      sha256 = "1jfha7s54rcs76kzw2v445k4s0qnkfdfipbylhkd0jd50a5j7wvl";
+      name = "kstars-15.12.1.tar.xz";
+    };
+  };
+  ksudoku = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/ksudoku-15.12.1.tar.xz";
+      sha256 = "0pm0a3b59wv30pkl50mcaqn37pmq4yjyviy2l62gbvb229sw9cl2";
+      name = "ksudoku-15.12.1.tar.xz";
+    };
+  };
+  ksystemlog = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/ksystemlog-15.12.1.tar.xz";
+      sha256 = "0k3bwjmxs0xzxdvmq6s5sm1x84bfglf347f5bxdcfjmv95vp9bq6";
+      name = "ksystemlog-15.12.1.tar.xz";
+    };
+  };
+  kteatime = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kteatime-15.12.1.tar.xz";
+      sha256 = "12fjqq5n6305203b05q1lkwq7a56jynlkwykjai0yfjg2phxwa1c";
+      name = "kteatime-15.12.1.tar.xz";
+    };
+  };
+  ktimer = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/ktimer-15.12.1.tar.xz";
+      sha256 = "0nwjyd7z6gz45291w50qa356nlbva6mc4qa53z8jl8nqn6c74iwn";
+      name = "ktimer-15.12.1.tar.xz";
+    };
+  };
+  ktnef = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/ktnef-15.12.1.tar.xz";
+      sha256 = "178r4ql1jyfk40l6s3jwabqvx5i25fzq3kv83csvd7p3y2299xbh";
+      name = "ktnef-15.12.1.tar.xz";
+    };
+  };
+  ktouch = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/ktouch-15.12.1.tar.xz";
+      sha256 = "1d7nkq060h5wvjxrgsqdjhmilgaaakk48a6qnx4yv5bc0gpd47rl";
+      name = "ktouch-15.12.1.tar.xz";
+    };
+  };
+  ktp-accounts-kcm = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/ktp-accounts-kcm-15.12.1.tar.xz";
+      sha256 = "1nfk33cxl278p4a3f3hiwxn25crvc0bvggfsmmkqd5m1iq1y2vid";
+      name = "ktp-accounts-kcm-15.12.1.tar.xz";
+    };
+  };
+  ktp-approver = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/ktp-approver-15.12.1.tar.xz";
+      sha256 = "10h40f8hhxv5a50yby728znfsl8w3jhy4cpp3a15bl21y0javb8p";
+      name = "ktp-approver-15.12.1.tar.xz";
+    };
+  };
+  ktp-auth-handler = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/ktp-auth-handler-15.12.1.tar.xz";
+      sha256 = "00r0r46vqd4y89djmkdibb566i23nkd0viz7rfp46s35mlwlfylf";
+      name = "ktp-auth-handler-15.12.1.tar.xz";
+    };
+  };
+  ktp-common-internals = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/ktp-common-internals-15.12.1.tar.xz";
+      sha256 = "0bswmvzr78amwpcrmsvpr49854rcq6c9d1g475bgwwi9h2qjajqg";
+      name = "ktp-common-internals-15.12.1.tar.xz";
+    };
+  };
+  ktp-contact-list = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/ktp-contact-list-15.12.1.tar.xz";
+      sha256 = "1awidixqp12i29bm15vr1c6lf6m5mwqs9yvfczdvhxmq1vkniwxr";
+      name = "ktp-contact-list-15.12.1.tar.xz";
+    };
+  };
+  ktp-contact-runner = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/ktp-contact-runner-15.12.1.tar.xz";
+      sha256 = "0b7gj3vandgqyd27rc7cdr61l7f7ph0whq9pggfxcbly7xmhyhh1";
+      name = "ktp-contact-runner-15.12.1.tar.xz";
+    };
+  };
+  ktp-desktop-applets = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/ktp-desktop-applets-15.12.1.tar.xz";
+      sha256 = "0h6zw79canpwlnngkn9w7qnz4jch0ksqvn2vw4vfqgy3w91dxxkj";
+      name = "ktp-desktop-applets-15.12.1.tar.xz";
+    };
+  };
+  ktp-filetransfer-handler = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/ktp-filetransfer-handler-15.12.1.tar.xz";
+      sha256 = "13mzc2brzfxfpsqya35iyf76mllp7bhs6yjfcy4rhvazdf79p3dm";
+      name = "ktp-filetransfer-handler-15.12.1.tar.xz";
+    };
+  };
+  ktp-kded-module = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/ktp-kded-module-15.12.1.tar.xz";
+      sha256 = "1bn22k1ai2bsncim1k55nm0k0k34xkxs2cvvf4f8y4za5s0hsyix";
+      name = "ktp-kded-module-15.12.1.tar.xz";
+    };
+  };
+  ktp-send-file = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/ktp-send-file-15.12.1.tar.xz";
+      sha256 = "18l6il6b70bqs9ggjah2yrmbw229k8cjr8gf1kvkckwh1rv3z343";
+      name = "ktp-send-file-15.12.1.tar.xz";
+    };
+  };
+  ktp-text-ui = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/ktp-text-ui-15.12.1.tar.xz";
+      sha256 = "0ydk503b8gn84jk5l1v061g9zdi79mb5xjpa7lffgqzjippsb5y1";
+      name = "ktp-text-ui-15.12.1.tar.xz";
+    };
+  };
+  ktuberling = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/ktuberling-15.12.1.tar.xz";
+      sha256 = "1rxn6ih2jy36jisaxf8gxs6rnsdbgmbhv0xmczn74vlzfi35izja";
+      name = "ktuberling-15.12.1.tar.xz";
+    };
+  };
+  kturtle = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kturtle-15.12.1.tar.xz";
+      sha256 = "1d3vmkjww7zc0blc0i62jbay3mqgcccnkr6wxfabmcsz8cp062f4";
+      name = "kturtle-15.12.1.tar.xz";
+    };
+  };
+  kubrick = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kubrick-15.12.1.tar.xz";
+      sha256 = "1r2pwrj8hd5vb18m3ad72cfka6kjz9rab0nsk33sp2yg23zwrg2y";
+      name = "kubrick-15.12.1.tar.xz";
+    };
+  };
+  kuser = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kuser-15.12.1.tar.xz";
+      sha256 = "1qg67d6r2ng217r5f36qgqyyvy16bv1pv0xy3i35d1qpq6y7indy";
+      name = "kuser-15.12.1.tar.xz";
+    };
+  };
+  kwalletmanager = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kwalletmanager-15.12.1.tar.xz";
+      sha256 = "09801vnq6c2cq10ywg68fddwbmvly6lyaybdffw27h8cl4qkxy9f";
+      name = "kwalletmanager-15.12.1.tar.xz";
+    };
+  };
+  kwordquiz = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/kwordquiz-15.12.1.tar.xz";
+      sha256 = "1brihl4a488nmi5s1yk4jy8bb1a5l5576j9vldh2ad9y5mqdq68d";
+      name = "kwordquiz-15.12.1.tar.xz";
+    };
+  };
+  libkcddb = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/libkcddb-15.12.1.tar.xz";
+      sha256 = "0y5jsimz71a8dilb3gwa8xa2r6bgfh3giwqbg0vl5xsnmq5q282k";
+      name = "libkcddb-15.12.1.tar.xz";
+    };
+  };
+  libkcompactdisc = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/libkcompactdisc-15.12.1.tar.xz";
+      sha256 = "1cmabgzv1lliqlc0yc3y365g5rdvqpjfs8am4179h2mr1vibvx6b";
+      name = "libkcompactdisc-15.12.1.tar.xz";
+    };
+  };
+  libkdcraw = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/libkdcraw-15.12.1.tar.xz";
+      sha256 = "0gl1a5dk63jmdh7ip8b1z8179daz1hx0w0p2pqgyklaxg883r88v";
+      name = "libkdcraw-15.12.1.tar.xz";
+    };
+  };
+  libkdeedu = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/libkdeedu-15.12.1.tar.xz";
+      sha256 = "1fp41cx2gsdax8iqx2kw790i8j718q46ss4c5zhxagshnkd3czmz";
+      name = "libkdeedu-15.12.1.tar.xz";
+    };
+  };
+  libkdegames = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/libkdegames-15.12.1.tar.xz";
+      sha256 = "003ypjiqi3mk00a6iv9d8nf6d4kq7l6nflgwf0d3sq0y4cbkix0m";
+      name = "libkdegames-15.12.1.tar.xz";
+    };
+  };
+  libkeduvocdocument = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/libkeduvocdocument-15.12.1.tar.xz";
+      sha256 = "0v1ssh4m59kb7b82r06fwgb0cmj9xm5yy9vcrmhs1167l1s8vr6w";
+      name = "libkeduvocdocument-15.12.1.tar.xz";
+    };
+  };
+  libkexiv2 = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/libkexiv2-15.12.1.tar.xz";
+      sha256 = "1z4z77psaiqwh62spsvqpkd21agsfjjrpaiiqdaxinsimw5pagb0";
+      name = "libkexiv2-15.12.1.tar.xz";
+    };
+  };
+  libkface = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/libkface-15.12.1.tar.xz";
+      sha256 = "0x6pz72vxmrsncc0kkwdaci9i9nxkdqkdklwlg7q4wbn8kxxa8n6";
+      name = "libkface-15.12.1.tar.xz";
+    };
+  };
+  libkgeomap = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/libkgeomap-15.12.1.tar.xz";
+      sha256 = "127flkwgkmcdkd40ccrvxmyq2nzb1jshpj79pjyhwirh9iqbw773";
+      name = "libkgeomap-15.12.1.tar.xz";
+    };
+  };
+  libkipi = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/libkipi-15.12.1.tar.xz";
+      sha256 = "0x14adzkla7cpiwbs75n87x5gb8ifcby1zkw2f2i69g6w9x8nnps";
+      name = "libkipi-15.12.1.tar.xz";
+    };
+  };
+  libkmahjongg = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/libkmahjongg-15.12.1.tar.xz";
+      sha256 = "1q04c91j78hzk5x7iiwxkn2is3c5cy7wca1wmxlbqbw3q3zc5jlh";
+      name = "libkmahjongg-15.12.1.tar.xz";
+    };
+  };
+  libkomparediff2 = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/libkomparediff2-15.12.1.tar.xz";
+      sha256 = "0vkndb5l5lv50id8fik6zbg0ph5mv0kmcxz6ywh2i6mh3nf5h0m2";
+      name = "libkomparediff2-15.12.1.tar.xz";
+    };
+  };
+  libksane = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/libksane-15.12.1.tar.xz";
+      sha256 = "112w0hpnq4rzp40rq68wjdkx0w2p06z1chxribgh032wh09j21by";
+      name = "libksane-15.12.1.tar.xz";
+    };
+  };
+  lokalize = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/lokalize-15.12.1.tar.xz";
+      sha256 = "0ldmw4rgli64dq4xllxbrgvc8wz52a5xhmbcb7m31yr7vpsav533";
+      name = "lokalize-15.12.1.tar.xz";
+    };
+  };
+  lskat = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/lskat-15.12.1.tar.xz";
+      sha256 = "116vfahyh65bhfp8z5ay2xj8gb7s935d3cbd4f9ppidva493lpvp";
+      name = "lskat-15.12.1.tar.xz";
+    };
+  };
+  marble = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/marble-15.12.1.tar.xz";
+      sha256 = "15zybdm28a0q3nanv43y5g3xbl2gpi19fdx1smslypkz33srfwlm";
+      name = "marble-15.12.1.tar.xz";
+    };
+  };
+  mplayerthumbs = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/mplayerthumbs-15.12.1.tar.xz";
+      sha256 = "16wgsg3s0a0mcn1p3ixy8xw8qci082qq415hcy4vr1ycbxzypcd0";
+      name = "mplayerthumbs-15.12.1.tar.xz";
+    };
+  };
+  okteta = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/okteta-15.12.1.tar.xz";
+      sha256 = "1fzk1qlsxw5mkvk5sbzaxs902waagf9i8rggis00c6cpgd2il75q";
+      name = "okteta-15.12.1.tar.xz";
+    };
+  };
+  okular = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/okular-15.12.1.tar.xz";
+      sha256 = "17d2xhwdlqf2jcx34hh0l7gj3n3lpidv9wha8xp2vww8hibmdmn3";
+      name = "okular-15.12.1.tar.xz";
+    };
+  };
+  palapeli = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/palapeli-15.12.1.tar.xz";
+      sha256 = "1kq06xi6d6f47chzzcknr1v1jd3pajzg7s45zc78sfwvq1lkcwpj";
+      name = "palapeli-15.12.1.tar.xz";
+    };
+  };
+  parley = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/parley-15.12.1.tar.xz";
+      sha256 = "1imkxanm5nzjkvgyskj3bcnn7rz7hwggspg3iyq75vmrqvmnd17y";
+      name = "parley-15.12.1.tar.xz";
+    };
+  };
+  picmi = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/picmi-15.12.1.tar.xz";
+      sha256 = "0ka8ksq2v7j313i0iki07d2rn6d0ga7qi5zmwvz0c7c0yk1ndpd0";
+      name = "picmi-15.12.1.tar.xz";
+    };
+  };
+  poxml = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/poxml-15.12.1.tar.xz";
+      sha256 = "08qyhw1x4lf5lgbi55cdvvlizbfjjrg2xncgnnvcc2xvs0vbsdrx";
+      name = "poxml-15.12.1.tar.xz";
+    };
+  };
+  print-manager = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/print-manager-15.12.1.tar.xz";
+      sha256 = "0n11ras6zk68zb901jwg5dkay04cl4qwplh57yvcvkaqzp7dx29h";
+      name = "print-manager-15.12.1.tar.xz";
+    };
+  };
+  rocs = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/rocs-15.12.1.tar.xz";
+      sha256 = "1car9wdw3jrnczcws8hp15nky6fm04asqh6z64v1x46xpgqq15s8";
+      name = "rocs-15.12.1.tar.xz";
+    };
+  };
+  signon-kwallet-extension = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/signon-kwallet-extension-15.12.1.tar.xz";
+      sha256 = "1s96924sahamdiw6gs42c7f6fmxacccy0x7a7vcm25jrdw2y8rny";
+      name = "signon-kwallet-extension-15.12.1.tar.xz";
+    };
+  };
+  spectacle = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/spectacle-15.12.1.tar.xz";
+      sha256 = "0ikv29g85fzk4k84a3p56krsabg92na1kc3r1dvg6vmhprr5ar0y";
+      name = "spectacle-15.12.1.tar.xz";
+    };
+  };
+  step = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/step-15.12.1.tar.xz";
+      sha256 = "0g85cwr4ixh254i75af0pvqs6rp9zmzifnn8757dmqb0z0l31l9r";
+      name = "step-15.12.1.tar.xz";
+    };
+  };
+  svgpart = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/svgpart-15.12.1.tar.xz";
+      sha256 = "1l86kvgrjbhyqaldw3cdm483lc1j9lrf8rif059qnq20r35llfp0";
+      name = "svgpart-15.12.1.tar.xz";
+    };
+  };
+  sweeper = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/sweeper-15.12.1.tar.xz";
+      sha256 = "1ykk3msicf71p3p9y6135hdrv3szjfv9khb0bl2nzqg2i28psdad";
+      name = "sweeper-15.12.1.tar.xz";
+    };
+  };
+  syndication = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/syndication-15.12.1.tar.xz";
+      sha256 = "1kq97rid82dv70ii4imh6aq1bwc2i0x7yzw95g855khxbd485a1m";
+      name = "syndication-15.12.1.tar.xz";
+    };
+  };
+  umbrello = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/umbrello-15.12.1.tar.xz";
+      sha256 = "1qxqkqvkp19vj8zkl39cwn077sncl3wqkgv0a1a16cdxhhvfbf23";
+      name = "umbrello-15.12.1.tar.xz";
+    };
+  };
+  zeroconf-ioslave = {
+    version = "15.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/15.12.1/src/zeroconf-ioslave-15.12.1.tar.xz";
+      sha256 = "0q9q1vj62h3lw0451csg4sa2cgm9h5r9jxbgn8yg4xa31vx1cw03";
+      name = "zeroconf-ioslave-15.12.1.tar.xz";
+    };
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/attica.nix b/pkgs/desktops/kde-5/frameworks-5.19/attica.nix
new file mode 100644
index 000000000000..98721876c120
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/attica.nix
@@ -0,0 +1,11 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+}:
+
+kdeFramework {
+  name = "attica";
+  nativeBuildInputs = [ extra-cmake-modules ];
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/baloo.nix b/pkgs/desktops/kde-5/frameworks-5.19/baloo.nix
new file mode 100644
index 000000000000..38c41d9271d8
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/baloo.nix
@@ -0,0 +1,25 @@
+{ kdeFramework, lib, extra-cmake-modules, kauth, kconfig
+, kcoreaddons, kcrash, kdbusaddons, kfilemetadata, ki18n, kidletime
+, kio, lmdb, makeQtWrapper, qtbase, qtquick1, solid
+}:
+
+kdeFramework {
+  name = "baloo";
+  nativeBuildInputs = [ extra-cmake-modules makeQtWrapper ];
+  buildInputs = [
+    kconfig kcrash kdbusaddons lmdb qtquick1 solid
+  ];
+  propagatedBuildInputs = [
+    kauth kcoreaddons kfilemetadata ki18n kio kidletime qtbase
+  ];
+  postInstall = ''
+    wrapQtProgram "$out/bin/baloo_file"
+    wrapQtProgram "$out/bin/baloo_file_extractor"
+    wrapQtProgram "$out/bin/balooctl"
+    wrapQtProgram "$out/bin/baloosearch"
+    wrapQtProgram "$out/bin/balooshow"
+  '';
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/bluez-qt.nix b/pkgs/desktops/kde-5/frameworks-5.19/bluez-qt.nix
new file mode 100644
index 000000000000..f981b0516f72
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/bluez-qt.nix
@@ -0,0 +1,17 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, qtdeclarative
+}:
+
+kdeFramework {
+  name = "bluez-qt";
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [ qtdeclarative ];
+  preConfigure = ''
+    substituteInPlace CMakeLists.txt \
+      --replace /lib/udev/rules.d "$out/lib/udev/rules.d"
+  '';
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/breeze-icons.nix b/pkgs/desktops/kde-5/frameworks-5.19/breeze-icons.nix
new file mode 100644
index 000000000000..879262c56a41
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/breeze-icons.nix
@@ -0,0 +1,10 @@
+{ kdeFramework
+, extra-cmake-modules
+, qtsvg
+}:
+
+kdeFramework {
+  name = "breeze-icons";
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedUserEnvPkgs = [ qtsvg ];
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/default.nix b/pkgs/desktops/kde-5/frameworks-5.19/default.nix
new file mode 100644
index 000000000000..cd314e27cacb
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/default.nix
@@ -0,0 +1,118 @@
+# Maintainer's Notes:
+#
+# Minor updates:
+#  1. Edit ./fetchsrcs.sh to point to the updated URL.
+#  2. Run ./fetchsrcs.sh.
+#  3. Build and enjoy.
+#
+# Major updates:
+#  We prefer not to immediately overwrite older versions with major updates, so
+#  make a copy of this directory first. After copying, be sure to delete ./tmp
+#  if it exists. Then follow the minor update instructions. Be sure to check if
+#  any new components have been added and package them as necessary.
+
+{ pkgs, debug ? false }:
+
+let
+
+  inherit (pkgs) lib makeSetupHook stdenv;
+
+  mirror = "mirror://kde";
+  srcs = import ./srcs.nix { inherit (pkgs) fetchurl; inherit mirror; };
+
+  packages = self: with self; {
+    kdeFramework = args:
+      let
+        inherit (args) name;
+        inherit (srcs."${name}") src version;
+      in stdenv.mkDerivation (args // {
+        name = "${name}-${version}";
+        inherit src;
+
+        cmakeFlags =
+          (args.cmakeFlags or [])
+          ++ [ "-DBUILD_TESTING=OFF" ]
+          ++ lib.optional debug "-DCMAKE_BUILD_TYPE=Debug";
+
+        meta = {
+          license = with lib.licenses; [
+            lgpl21Plus lgpl3Plus bsd2 mit gpl2Plus gpl3Plus fdl12
+          ];
+          platforms = lib.platforms.linux;
+          homepage = "http://www.kde.org";
+        } // (args.meta or {});
+      });
+
+    attica = callPackage ./attica.nix {};
+    baloo = callPackage ./baloo.nix {};
+    bluez-qt = callPackage ./bluez-qt.nix {};
+    breeze-icons = callPackage ./breeze-icons.nix {};
+    extra-cmake-modules = callPackage ./extra-cmake-modules {};
+    frameworkintegration = callPackage ./frameworkintegration.nix {};
+    kactivities = callPackage ./kactivities.nix {};
+    kapidox = callPackage ./kapidox.nix {};
+    karchive = callPackage ./karchive.nix {};
+    kauth = callPackage ./kauth {};
+    kbookmarks = callPackage ./kbookmarks.nix {};
+    kcmutils = callPackage ./kcmutils {};
+    kcodecs = callPackage ./kcodecs.nix {};
+    kcompletion = callPackage ./kcompletion.nix {};
+    kconfig = callPackage ./kconfig.nix {};
+    kconfigwidgets = callPackage ./kconfigwidgets {};
+    kcoreaddons = callPackage ./kcoreaddons.nix {};
+    kcrash = callPackage ./kcrash.nix {};
+    kdbusaddons = callPackage ./kdbusaddons.nix {};
+    kdeclarative = callPackage ./kdeclarative.nix {};
+    kded = callPackage ./kded.nix {};
+    kdelibs4support = callPackage ./kdelibs4support.nix {};
+    kdesignerplugin = callPackage ./kdesignerplugin.nix {};
+    kdewebkit = callPackage ./kdewebkit.nix {};
+    kdesu = callPackage ./kdesu.nix {};
+    kdnssd = callPackage ./kdnssd.nix {};
+    kdoctools = callPackage ./kdoctools {};
+    kemoticons = callPackage ./kemoticons.nix {};
+    kfilemetadata = callPackage ./kfilemetadata.nix {};
+    kglobalaccel = callPackage ./kglobalaccel.nix {};
+    kguiaddons = callPackage ./kguiaddons.nix {};
+    khtml = callPackage ./khtml.nix {};
+    ki18n = callPackage ./ki18n.nix {};
+    kiconthemes = callPackage ./kiconthemes {};
+    kidletime = callPackage ./kidletime.nix {};
+    kimageformats = callPackage ./kimageformats.nix {};
+    kinit = callPackage ./kinit {};
+    kio = callPackage ./kio {};
+    kitemmodels = callPackage ./kitemmodels.nix {};
+    kitemviews = callPackage ./kitemviews.nix {};
+    kjobwidgets = callPackage ./kjobwidgets.nix {};
+    kjs = callPackage ./kjs.nix {};
+    kjsembed = callPackage ./kjsembed.nix {};
+    kmediaplayer = callPackage ./kmediaplayer.nix {};
+    knewstuff = callPackage ./knewstuff.nix {};
+    knotifications = callPackage ./knotifications.nix {};
+    knotifyconfig = callPackage ./knotifyconfig.nix {};
+    kpackage = callPackage ./kpackage {};
+    kparts = callPackage ./kparts.nix {};
+    kpeople = callPackage ./kpeople.nix {};
+    kplotting = callPackage ./kplotting.nix {};
+    kpty = callPackage ./kpty.nix {};
+    kross = callPackage ./kross.nix {};
+    krunner = callPackage ./krunner.nix {};
+    kservice = callPackage ./kservice {};
+    ktexteditor = callPackage ./ktexteditor {};
+    ktextwidgets = callPackage ./ktextwidgets.nix {};
+    kunitconversion = callPackage ./kunitconversion.nix {};
+    kwallet = callPackage ./kwallet.nix {};
+    kwidgetsaddons = callPackage ./kwidgetsaddons.nix {};
+    kwindowsystem = callPackage ./kwindowsystem.nix {};
+    kxmlgui = callPackage ./kxmlgui.nix {};
+    kxmlrpcclient = callPackage ./kxmlrpcclient.nix {};
+    modemmanager-qt = callPackage ./modemmanager-qt.nix {};
+    networkmanager-qt = callPackage ./networkmanager-qt.nix {};
+    oxygen-icons5 = callPackage ./oxygen-icons5.nix {};
+    plasma-framework = callPackage ./plasma-framework {};
+    solid = callPackage ./solid.nix {};
+    sonnet = callPackage ./sonnet.nix {};
+    threadweaver = callPackage ./threadweaver.nix {};
+  };
+
+in packages
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/extra-cmake-modules/0001-extra-cmake-modules-paths.patch b/pkgs/desktops/kde-5/frameworks-5.19/extra-cmake-modules/0001-extra-cmake-modules-paths.patch
new file mode 100644
index 000000000000..9717716faf5b
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/extra-cmake-modules/0001-extra-cmake-modules-paths.patch
@@ -0,0 +1,74 @@
+From 3cc148e878b69fc3e0228f3e3bf1bbe689dad87c Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@gmail.com>
+Date: Fri, 20 Feb 2015 23:17:39 -0600
+Subject: [PATCH] extra-cmake-modules paths
+
+---
+ kde-modules/KDEInstallDirs.cmake | 37 ++++---------------------------------
+ 1 file changed, 4 insertions(+), 33 deletions(-)
+
+diff --git a/kde-modules/KDEInstallDirs.cmake b/kde-modules/KDEInstallDirs.cmake
+index b7cd34d..2f868ac 100644
+--- a/kde-modules/KDEInstallDirs.cmake
++++ b/kde-modules/KDEInstallDirs.cmake
+@@ -193,37 +193,8 @@
+ # (To distribute this file outside of extra-cmake-modules, substitute the full
+ #  License text for the above reference.)
+ 
+-# Figure out what the default install directory for libraries should be.
+-# This is based on the logic in GNUInstallDirs, but simplified (the
+-# GNUInstallDirs code deals with re-configuring, but that is dealt with
+-# by the _define_* macros in this module).
++# The default library directory on NixOS is *always* /lib.
+ set(_LIBDIR_DEFAULT "lib")
+-# Override this default 'lib' with 'lib64' iff:
+-#  - we are on a Linux, kFreeBSD or Hurd system but NOT cross-compiling
+-#  - we are NOT on debian
+-#  - we are on a 64 bits system
+-# reason is: amd64 ABI: http://www.x86-64.org/documentation/abi.pdf
+-# For Debian with multiarch, use 'lib/${CMAKE_LIBRARY_ARCHITECTURE}' if
+-# CMAKE_LIBRARY_ARCHITECTURE is set (which contains e.g. "i386-linux-gnu"
+-# See http://wiki.debian.org/Multiarch
+-if((CMAKE_SYSTEM_NAME MATCHES "Linux|kFreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "GNU")
+-   AND NOT CMAKE_CROSSCOMPILING)
+-  if (EXISTS "/etc/debian_version") # is this a debian system ?
+-    if(CMAKE_LIBRARY_ARCHITECTURE)
+-      set(_LIBDIR_DEFAULT "lib/${CMAKE_LIBRARY_ARCHITECTURE}")
+-    endif()
+-  else() # not debian, rely on CMAKE_SIZEOF_VOID_P:
+-    if(NOT DEFINED CMAKE_SIZEOF_VOID_P)
+-      message(AUTHOR_WARNING
+-        "Unable to determine default LIB_INSTALL_LIBDIR directory because no target architecture is known. "
+-        "Please enable at least one language before including KDEInstallDirs.")
+-    else()
+-      if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
+-        set(_LIBDIR_DEFAULT "lib64")
+-      endif()
+-    endif()
+-  endif()
+-endif()
+ 
+ set(_gnu_install_dirs_vars
+     BINDIR
+@@ -445,15 +416,15 @@ if(KDE_INSTALL_USE_QT_SYS_PATHS)
+         "QtQuick2 imports"
+         QML_INSTALL_DIR)
+ else()
+-    _define_relative(QTPLUGINDIR LIBDIR "plugins"
++    _define_relative(QTPLUGINDIR LIBDIR "qt5/plugins"
+         "Qt plugins"
+         QT_PLUGIN_INSTALL_DIR)
+ 
+-    _define_relative(QTQUICKIMPORTSDIR QTPLUGINDIR "imports"
++    _define_relative(QTQUICKIMPORTSDIR QTPLUGINDIR "qt5/imports"
+         "QtQuick1 imports"
+         IMPORTS_INSTALL_DIR)
+ 
+-    _define_relative(QMLDIR LIBDIR "qml"
++    _define_relative(QMLDIR LIBDIR "qt5/qml"
+         "QtQuick2 imports"
+         QML_INSTALL_DIR)
+ endif()
+-- 
+2.3.0
+
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/extra-cmake-modules/default.nix b/pkgs/desktops/kde-5/frameworks-5.19/extra-cmake-modules/default.nix
new file mode 100644
index 000000000000..4e1b1aff3bd1
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/extra-cmake-modules/default.nix
@@ -0,0 +1,18 @@
+{ kdeFramework, lib, stdenv, cmake, pkgconfig, qttools }:
+
+kdeFramework {
+  name = "extra-cmake-modules";
+  patches = [ ./0001-extra-cmake-modules-paths.patch ];
+
+  setupHook = ./setup-hook.sh;
+
+  # It is OK to propagate these inputs as long as
+  # extra-cmake-modules is never a propagated input
+  # of some other derivation.
+  propagatedNativeBuildInputs = [ cmake pkgconfig qttools ];
+
+  meta = {
+    license = stdenv.lib.licenses.bsd2;
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/extra-cmake-modules/setup-hook.sh b/pkgs/desktops/kde-5/frameworks-5.19/extra-cmake-modules/setup-hook.sh
new file mode 100644
index 000000000000..a6fa6189240b
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/extra-cmake-modules/setup-hook.sh
@@ -0,0 +1,27 @@
+addMimePkg() {
+    local propagated
+
+    if [[ -d "$1/share/mime" ]]; then
+        propagated=
+        for pkg in $propagatedBuildInputs; do
+            if [[ "z$pkg" == "z$1" ]]; then
+                propagated=1
+            fi
+        done
+        if [[ -z $propagated ]]; then
+            propagatedBuildInputs="$propagatedBuildInputs $1"
+        fi
+
+        propagated=
+        for pkg in $propagatedUserEnvPkgs; do
+            if [[ "z$pkg" == "z$1" ]]; then
+                propagated=1
+            fi
+        done
+        if [[ -z $propagated ]]; then
+            propagatedUserEnvPkgs="$propagatedUserEnvPkgs $1"
+        fi
+    fi
+}
+
+envHooks+=(addMimePkg)
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/fetchsrcs.sh b/pkgs/desktops/kde-5/frameworks-5.19/fetchsrcs.sh
new file mode 100755
index 000000000000..7937e6f8bed9
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/fetchsrcs.sh
@@ -0,0 +1,57 @@
+#! /usr/bin/env nix-shell
+#! nix-shell -i bash -p coreutils findutils gnused nix wget
+
+set -x
+
+# The trailing slash at the end is necessary!
+RELEASE_URL="http://download.kde.org/stable/frameworks/5.19/"
+EXTRA_WGET_ARGS='-A *.tar.xz'
+
+mkdir tmp; cd tmp
+
+rm -f ../srcs.csv
+
+wget -nH -r -c --no-parent $RELEASE_URL $EXTRA_WGET_ARGS
+
+find . | while read src; do
+    if [[ -f "${src}" ]]; then
+        # Sanitize file name
+        filename=$(basename "$src" | tr '@' '_')
+        nameVersion="${filename%.tar.*}"
+        name=$(echo "$nameVersion" | sed -e 's,-[[:digit:]].*,,' | sed -e 's,-opensource-src$,,')
+        version=$(echo "$nameVersion" | sed -e 's,^\([[:alpha:]][[:alnum:]]*-\)\+,,')
+        echo "$name,$version,$src,$filename" >>../srcs.csv
+    fi
+done
+
+cat >../srcs.nix <<EOF
+# DO NOT EDIT! This file is generated automatically by fetchsrcs.sh
+{ fetchurl, mirror }:
+
+{
+EOF
+
+gawk -F , "{ print \$1 }" ../srcs.csv | sort | uniq | while read name; do
+    versions=$(gawk -F , "/^$name,/ { print \$2 }" ../srcs.csv)
+    latestVersion=$(echo "$versions" | sort -rV | head -n 1)
+    src=$(gawk -F , "/^$name,$latestVersion,/ { print \$3 }" ../srcs.csv)
+    filename=$(gawk -F , "/^$name,$latestVersion,/ { print \$4 }" ../srcs.csv)
+    url="${src:2}"
+    sha256=$(nix-hash --type sha256 --base32 --flat "$src")
+    cat >>../srcs.nix <<EOF
+  $name = {
+    version = "$latestVersion";
+    src = fetchurl {
+      url = "\${mirror}/$url";
+      sha256 = "$sha256";
+      name = "$filename";
+    };
+  };
+EOF
+done
+
+echo "}" >>../srcs.nix
+
+rm -f ../srcs.csv
+
+cd ..
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/frameworkintegration.nix b/pkgs/desktops/kde-5/frameworks-5.19/frameworkintegration.nix
new file mode 100644
index 000000000000..26987c385ad5
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/frameworkintegration.nix
@@ -0,0 +1,17 @@
+{ kdeFramework, lib, extra-cmake-modules, kbookmarks, kcompletion
+, kconfig, kconfigwidgets, ki18n, kiconthemes, kio, knotifications
+, kwidgetsaddons, libXcursor, qtx11extras
+}:
+
+kdeFramework {
+  name = "frameworkintegration";
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [
+    kbookmarks kcompletion kconfig knotifications kwidgetsaddons
+    libXcursor
+  ];
+  propagatedBuildInputs = [ kconfigwidgets ki18n kio kiconthemes qtx11extras ];
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kactivities.nix b/pkgs/desktops/kde-5/frameworks-5.19/kactivities.nix
new file mode 100644
index 000000000000..3225098f4398
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kactivities.nix
@@ -0,0 +1,22 @@
+{ kdeFramework, lib, extra-cmake-modules, boost, kcmutils, kconfig
+, kcoreaddons, kdbusaddons, kdeclarative, kglobalaccel, ki18n
+, kio, kservice, kwindowsystem, kxmlgui, makeQtWrapper, qtdeclarative
+}:
+
+kdeFramework {
+  name = "kactivities";
+  nativeBuildInputs = [ extra-cmake-modules makeQtWrapper ];
+  buildInputs = [
+    boost kcmutils kconfig kcoreaddons kdbusaddons kservice
+    kxmlgui
+  ];
+  propagatedBuildInputs = [
+    kdeclarative kglobalaccel ki18n kio kwindowsystem qtdeclarative
+  ];
+  postInstall = ''
+    wrapQtProgram "$out/bin/kactivitymanagerd"
+  '';
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kapidox.nix b/pkgs/desktops/kde-5/frameworks-5.19/kapidox.nix
new file mode 100644
index 000000000000..647be8f052c3
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kapidox.nix
@@ -0,0 +1,12 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, python
+}:
+
+kdeFramework {
+  name = "kapidox";
+  nativeBuildInputs = [ extra-cmake-modules python ];
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/karchive.nix b/pkgs/desktops/kde-5/frameworks-5.19/karchive.nix
new file mode 100644
index 000000000000..a8d9a0003c3b
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/karchive.nix
@@ -0,0 +1,11 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+}:
+
+kdeFramework {
+  name = "karchive";
+  nativeBuildInputs = [ extra-cmake-modules ];
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kauth/default.nix b/pkgs/desktops/kde-5/frameworks-5.19/kauth/default.nix
new file mode 100644
index 000000000000..2b000ff3c041
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kauth/default.nix
@@ -0,0 +1,16 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, kcoreaddons
+, polkit-qt
+}:
+
+kdeFramework {
+  name = "kauth";
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [ polkit-qt ];
+  propagatedBuildInputs = [ kcoreaddons ];
+  patches = [ ./kauth-policy-install.patch ];
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kauth/kauth-policy-install.patch b/pkgs/desktops/kde-5/frameworks-5.19/kauth/kauth-policy-install.patch
new file mode 100644
index 000000000000..340155256f28
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kauth/kauth-policy-install.patch
@@ -0,0 +1,13 @@
+diff --git a/KF5AuthConfig.cmake.in b/KF5AuthConfig.cmake.in
+index e859ec7..9a8ab18 100644
+--- a/KF5AuthConfig.cmake.in
++++ b/KF5AuthConfig.cmake.in
+@@ -4,7 +4,7 @@ set(KAUTH_STUB_FILES_DIR "${PACKAGE_PREFIX_DIR}/@KF5_DATA_INSTALL_DIR@/kauth/")
+ 
+ set(KAUTH_BACKEND_NAME "@KAUTH_BACKEND_NAME@")
+ set(KAUTH_HELPER_BACKEND_NAME "@KAUTH_HELPER_BACKEND_NAME@")
+-set(KAUTH_POLICY_FILES_INSTALL_DIR "@KAUTH_POLICY_FILES_INSTALL_DIR@")
++set(KAUTH_POLICY_FILES_INSTALL_DIR "\${CMAKE_INSTALL_PREFIX}/share/polkit-1/actions")
+ set(KAUTH_HELPER_INSTALL_DIR "@KAUTH_HELPER_INSTALL_DIR@")
+ 
+ find_dependency(KF5CoreAddons "@KF5_DEP_VERSION@")
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kbookmarks.nix b/pkgs/desktops/kde-5/frameworks-5.19/kbookmarks.nix
new file mode 100644
index 000000000000..1a469ab4db6d
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kbookmarks.nix
@@ -0,0 +1,25 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, kcodecs
+, kconfig
+, kconfigwidgets
+, kcoreaddons
+, kiconthemes
+, kxmlgui
+}:
+
+kdeFramework {
+  name = "kbookmarks";
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [
+    kcodecs
+    kconfig
+    kconfigwidgets
+    kcoreaddons
+    kiconthemes
+    kxmlgui
+  ];
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kcmutils/0001-qdiriterator-follow-symlinks.patch b/pkgs/desktops/kde-5/frameworks-5.19/kcmutils/0001-qdiriterator-follow-symlinks.patch
new file mode 100644
index 000000000000..0d861fa95012
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kcmutils/0001-qdiriterator-follow-symlinks.patch
@@ -0,0 +1,25 @@
+From f14d2a275323a47104b33eb61c5b6910ae1a9f59 Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@gmail.com>
+Date: Wed, 14 Oct 2015 06:43:53 -0500
+Subject: [PATCH] qdiriterator follow symlinks
+
+---
+ src/kpluginselector.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/kpluginselector.cpp b/src/kpluginselector.cpp
+index 9c3431d..d6b1ee2 100644
+--- a/src/kpluginselector.cpp
++++ b/src/kpluginselector.cpp
+@@ -305,7 +305,7 @@ void KPluginSelector::addPlugins(const QString &componentName,
+     QStringList desktopFileNames;
+     const QStringList dirs = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, componentName + QStringLiteral("/kpartplugins"), QStandardPaths::LocateDirectory);
+     Q_FOREACH (const QString &dir, dirs) {
+-        QDirIterator it(dir, QStringList() << QStringLiteral("*.desktop"), QDir::NoFilter, QDirIterator::Subdirectories);
++      QDirIterator it(dir, QStringList() << QStringLiteral("*.desktop"), QDir::NoFilter, QDirIterator::Subdirectories | QDirIterator::FollowSymlinks);
+         while (it.hasNext()) {
+             desktopFileNames.append(it.next());
+         }
+-- 
+2.5.2
+
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kcmutils/default.nix b/pkgs/desktops/kde-5/frameworks-5.19/kcmutils/default.nix
new file mode 100644
index 000000000000..dbbb783ac615
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kcmutils/default.nix
@@ -0,0 +1,17 @@
+{ kdeFramework, lib, extra-cmake-modules, kconfigwidgets
+, kcoreaddons, kdeclarative, ki18n, kiconthemes, kitemviews
+, kpackage, kservice, kxmlgui
+}:
+
+kdeFramework {
+  name = "kcmutils";
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [
+    kcoreaddons kiconthemes kitemviews kpackage kxmlgui
+  ];
+  propagatedBuildInputs = [ kconfigwidgets kdeclarative ki18n kservice ];
+  patches = [ ./0001-qdiriterator-follow-symlinks.patch ];
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kcodecs.nix b/pkgs/desktops/kde-5/frameworks-5.19/kcodecs.nix
new file mode 100644
index 000000000000..53a69a69b69c
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kcodecs.nix
@@ -0,0 +1,11 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+}:
+
+kdeFramework {
+  name = "kcodecs";
+  nativeBuildInputs = [ extra-cmake-modules ];
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kcompletion.nix b/pkgs/desktops/kde-5/frameworks-5.19/kcompletion.nix
new file mode 100644
index 000000000000..e393774f16a5
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kcompletion.nix
@@ -0,0 +1,14 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, kconfig
+, kwidgetsaddons
+}:
+
+kdeFramework {
+  name = "kcompletion";
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [ kconfig kwidgetsaddons ];
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kconfig.nix b/pkgs/desktops/kde-5/frameworks-5.19/kconfig.nix
new file mode 100644
index 000000000000..e132afe59886
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kconfig.nix
@@ -0,0 +1,16 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, makeQtWrapper
+}:
+
+kdeFramework {
+  name = "kconfig";
+  nativeBuildInputs = [ extra-cmake-modules makeQtWrapper ];
+  postInstall = ''
+    wrapQtProgram "$out/bin/kreadconfig5"
+    wrapQtProgram "$out/bin/kwriteconfig5"
+  '';
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kconfigwidgets/0001-qdiriterator-follow-symlinks.patch b/pkgs/desktops/kde-5/frameworks-5.19/kconfigwidgets/0001-qdiriterator-follow-symlinks.patch
new file mode 100644
index 000000000000..7a6c0ee90534
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kconfigwidgets/0001-qdiriterator-follow-symlinks.patch
@@ -0,0 +1,25 @@
+From 4f84780893d505b2d62a14633dd983baa8ec6e28 Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@gmail.com>
+Date: Wed, 14 Oct 2015 06:47:01 -0500
+Subject: [PATCH] qdiriterator follow symlinks
+
+---
+ src/khelpclient.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/khelpclient.cpp b/src/khelpclient.cpp
+index 53a331e..80fbb01 100644
+--- a/src/khelpclient.cpp
++++ b/src/khelpclient.cpp
+@@ -48,7 +48,7 @@ void KHelpClient::invokeHelp(const QString &anchor, const QString &_appname)
+     QString docPath;
+     const QStringList desktopDirs = QStandardPaths::standardLocations(QStandardPaths::ApplicationsLocation);
+     Q_FOREACH (const QString &dir, desktopDirs) {
+-        QDirIterator it(dir, QStringList() << appname + QLatin1String(".desktop"), QDir::NoFilter, QDirIterator::Subdirectories);
++        QDirIterator it(dir, QStringList() << appname + QLatin1String(".desktop"), QDir::NoFilter, QDirIterator::Subdirectories | QDirIterator::FollowSymlinks);
+         while (it.hasNext()) {
+             const QString desktopPath(it.next());
+             KDesktopFile desktopFile(desktopPath);
+-- 
+2.5.2
+
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kconfigwidgets/default.nix b/pkgs/desktops/kde-5/frameworks-5.19/kconfigwidgets/default.nix
new file mode 100644
index 000000000000..0e14d06edd36
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kconfigwidgets/default.nix
@@ -0,0 +1,17 @@
+{ kdeFramework, lib, extra-cmake-modules, kauth, kcodecs, kconfig
+, kdoctools, kguiaddons, ki18n, kwidgetsaddons, makeQtWrapper
+}:
+
+kdeFramework {
+  name = "kconfigwidgets";
+  nativeBuildInputs = [ extra-cmake-modules kdoctools makeQtWrapper ];
+  buildInputs = [ kguiaddons ];
+  propagatedBuildInputs = [ kauth kconfig kcodecs ki18n kwidgetsaddons ];
+  patches = [ ./0001-qdiriterator-follow-symlinks.patch ];
+  postInstall = ''
+    wrapQtProgram "$out/bin/preparetips5"
+  '';
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kcoreaddons.nix b/pkgs/desktops/kde-5/frameworks-5.19/kcoreaddons.nix
new file mode 100644
index 000000000000..f3a1db7bd484
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kcoreaddons.nix
@@ -0,0 +1,16 @@
+{ kdeFramework, lib, makeQtWrapper
+, extra-cmake-modules
+, shared_mime_info
+}:
+
+kdeFramework {
+  name = "kcoreaddons";
+  nativeBuildInputs = [ extra-cmake-modules makeQtWrapper ];
+  buildInputs = [ shared_mime_info ];
+  postInstall = ''
+    wrapQtProgram "$out/bin/desktoptojson"
+  '';
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kcrash.nix b/pkgs/desktops/kde-5/frameworks-5.19/kcrash.nix
new file mode 100644
index 000000000000..bbab78ccb409
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kcrash.nix
@@ -0,0 +1,16 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, kcoreaddons
+, kwindowsystem
+, qtx11extras
+}:
+
+kdeFramework {
+  name = "kcrash";
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [ kcoreaddons ];
+  propagatedBuildInputs = [ kwindowsystem qtx11extras ];
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kdbusaddons.nix b/pkgs/desktops/kde-5/frameworks-5.19/kdbusaddons.nix
new file mode 100644
index 000000000000..d2ceab31d14b
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kdbusaddons.nix
@@ -0,0 +1,17 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, makeQtWrapper
+, qtx11extras
+}:
+
+kdeFramework {
+  name = "kdbusaddons";
+  nativeBuildInputs = [ extra-cmake-modules makeQtWrapper ];
+  propagatedBuildInputs = [ qtx11extras ];
+  postInstall = ''
+    wrapQtProgram "$out/bin/kquitapp5"
+  '';
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kdeclarative.nix b/pkgs/desktops/kde-5/frameworks-5.19/kdeclarative.nix
new file mode 100644
index 000000000000..74d107466cfc
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kdeclarative.nix
@@ -0,0 +1,22 @@
+{ kdeFramework, lib, extra-cmake-modules, epoxy, kconfig
+, kglobalaccel, kguiaddons, ki18n, kiconthemes, kio, kpackage
+, kwidgetsaddons, kwindowsystem, makeQtWrapper, pkgconfig
+, qtdeclarative
+}:
+
+kdeFramework {
+  name = "kdeclarative";
+  nativeBuildInputs = [ extra-cmake-modules makeQtWrapper ];
+  buildInputs = [
+    epoxy kguiaddons kiconthemes kwidgetsaddons
+  ];
+  propagatedBuildInputs = [
+    kconfig kglobalaccel ki18n kio kpackage kwindowsystem qtdeclarative
+  ];
+  postInstall = ''
+    wrapQtProgram "$out/bin/kpackagelauncherqml"
+  '';
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kded.nix b/pkgs/desktops/kde-5/frameworks-5.19/kded.nix
new file mode 100644
index 000000000000..47ae2d68c68e
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kded.nix
@@ -0,0 +1,19 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, kconfig
+, kcoreaddons
+, kcrash
+, kdbusaddons
+, kdoctools
+, kinit
+, kservice
+}:
+
+kdeFramework {
+  name = "kded";
+  buildInputs = [ kconfig kcoreaddons kcrash kdbusaddons kinit kservice ];
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kdelibs4support.nix b/pkgs/desktops/kde-5/frameworks-5.19/kdelibs4support.nix
new file mode 100644
index 000000000000..e61c4bb86e7c
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kdelibs4support.nix
@@ -0,0 +1,32 @@
+{ kdeFramework, lib, extra-cmake-modules, docbook_xml_dtd_45, kauth
+, karchive, kcompletion, kconfig, kconfigwidgets, kcoreaddons
+, kcrash, kdbusaddons, kded, kdesignerplugin, kdoctools, kemoticons
+, kglobalaccel, kguiaddons, ki18n, kiconthemes, kio, kitemmodels
+, kinit, knotifications, kparts, kservice, ktextwidgets
+, kunitconversion, kwidgetsaddons, kwindowsystem, kxmlgui
+, networkmanager, qtsvg, qtx11extras, xlibs
+}:
+
+# TODO: debug docbook detection
+
+kdeFramework {
+  name = "kdelibs4support";
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  buildInputs = [
+    kcompletion kconfig kded kservice kwidgetsaddons
+    kxmlgui networkmanager qtsvg qtx11extras xlibs.libSM
+  ];
+  propagatedBuildInputs = [
+    kauth karchive kconfigwidgets kcoreaddons kcrash kdbusaddons
+    kdesignerplugin kemoticons kglobalaccel kguiaddons ki18n kio
+    kiconthemes kitemmodels kinit knotifications kparts ktextwidgets
+    kunitconversion kwindowsystem
+  ];
+  cmakeFlags = [
+    "-DDocBookXML4_DTD_DIR=${docbook_xml_dtd_45}/xml/dtd/docbook"
+    "-DDocBookXML4_DTD_VERSION=4.5"
+  ];
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kdesignerplugin.nix b/pkgs/desktops/kde-5/frameworks-5.19/kdesignerplugin.nix
new file mode 100644
index 000000000000..cbc114ccca03
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kdesignerplugin.nix
@@ -0,0 +1,34 @@
+{ kdeFramework, lib, makeQtWrapper
+, extra-cmake-modules
+, kcompletion
+, kconfig
+, kconfigwidgets
+, kcoreaddons
+, kdewebkit
+, kdoctools
+, kiconthemes
+, kio
+, kitemviews
+, kplotting
+, ktextwidgets
+, kwidgetsaddons
+, kxmlgui
+, sonnet
+}:
+
+kdeFramework {
+  name = "kdesignerplugin";
+  nativeBuildInputs = [ extra-cmake-modules kdoctools makeQtWrapper ];
+  buildInputs = [
+    kcompletion kconfig kconfigwidgets kcoreaddons kdewebkit
+    kiconthemes kitemviews kplotting ktextwidgets kwidgetsaddons
+    kxmlgui
+  ];
+  propagatedBuildInputs = [ kio sonnet ];
+  postInstall = ''
+    wrapQtProgram "$out/bin/kgendesignerplugin"
+  '';
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kdesu.nix b/pkgs/desktops/kde-5/frameworks-5.19/kdesu.nix
new file mode 100644
index 000000000000..364fbd6a720b
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kdesu.nix
@@ -0,0 +1,13 @@
+{ kdeFramework, lib, extra-cmake-modules, kcoreaddons, ki18n, kpty
+, kservice
+}:
+
+kdeFramework {
+  name = "kdesu";
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [ kcoreaddons kservice ];
+  propagatedBuildInputs = [ ki18n kpty ];
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kdewebkit.nix b/pkgs/desktops/kde-5/frameworks-5.19/kdewebkit.nix
new file mode 100644
index 000000000000..d361313d1d49
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kdewebkit.nix
@@ -0,0 +1,13 @@
+{ kdeFramework, lib, extra-cmake-modules, kconfig, kcoreaddons
+, ki18n, kio, kjobwidgets, kparts, kservice, kwallet, qtwebkit
+}:
+
+kdeFramework {
+  name = "kdewebkit";
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [ kconfig kcoreaddons kjobwidgets kparts kservice kwallet ];
+  propagatedBuildInputs = [ ki18n kio qtwebkit ];
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kdnssd.nix b/pkgs/desktops/kde-5/frameworks-5.19/kdnssd.nix
new file mode 100644
index 000000000000..f00432b0c9ce
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kdnssd.nix
@@ -0,0 +1,13 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, avahi
+}:
+
+kdeFramework {
+  name = "kdnssd";
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [ avahi ];
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kdoctools/default.nix b/pkgs/desktops/kde-5/frameworks-5.19/kdoctools/default.nix
new file mode 100644
index 000000000000..138c3fc33b94
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kdoctools/default.nix
@@ -0,0 +1,20 @@
+{ kdeFramework, lib, extra-cmake-modules, docbook_xml_dtd_45
+, docbook5_xsl, karchive, ki18n, makeQtWrapper, perl, perlPackages
+}:
+
+kdeFramework {
+  name = "kdoctools";
+  setupHook = ./setup-hook.sh;
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [ karchive ];
+  propagatedBuildInputs = [ ki18n ];
+  propagatedNativeBuildInputs = [ makeQtWrapper perl perlPackages.URI ];
+  cmakeFlags = [
+    "-DDocBookXML4_DTD_DIR=${docbook_xml_dtd_45}/xml/dtd/docbook"
+    "-DDocBookXSL_DIR=${docbook5_xsl}/xml/xsl/docbook"
+  ];
+  patches = [ ./kdoctools-no-find-docbook-xml.patch ];
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kdoctools/kdoctools-no-find-docbook-xml.patch b/pkgs/desktops/kde-5/frameworks-5.19/kdoctools/kdoctools-no-find-docbook-xml.patch
new file mode 100644
index 000000000000..4e3a33efab32
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kdoctools/kdoctools-no-find-docbook-xml.patch
@@ -0,0 +1,12 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 5c4863c..f731775 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -46,7 +46,6 @@ set_package_properties(LibXml2 PROPERTIES
+                       )
+ 
+ 
+-find_package(DocBookXML4 "4.5")
+ 
+ set_package_properties(DocBookXML4 PROPERTIES
+                        TYPE REQUIRED
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kdoctools/setup-hook.sh b/pkgs/desktops/kde-5/frameworks-5.19/kdoctools/setup-hook.sh
new file mode 100644
index 000000000000..5cfffbd622d1
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kdoctools/setup-hook.sh
@@ -0,0 +1,5 @@
+addXdgData() {
+    addToSearchPath XDG_DATA_DIRS "$1/share"
+}
+
+envHooks+=(addXdgData)
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kemoticons.nix b/pkgs/desktops/kde-5/frameworks-5.19/kemoticons.nix
new file mode 100644
index 000000000000..d165f84e3a2d
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kemoticons.nix
@@ -0,0 +1,17 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, karchive
+, kconfig
+, kcoreaddons
+, kservice
+}:
+
+kdeFramework {
+  name = "kemoticons";
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [ karchive kconfig kcoreaddons ];
+  propagatedBuildInputs = [ kservice ];
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kfilemetadata.nix b/pkgs/desktops/kde-5/frameworks-5.19/kfilemetadata.nix
new file mode 100644
index 000000000000..be99c58d5504
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kfilemetadata.nix
@@ -0,0 +1,13 @@
+{ kdeFramework, lib, extra-cmake-modules, attr, ebook_tools, exiv2
+, ffmpeg, karchive, ki18n, poppler, qtbase, taglib
+}:
+
+kdeFramework {
+  name = "kfilemetadata";
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [ attr ebook_tools exiv2 ffmpeg karchive poppler taglib ];
+  propagatedBuildInputs = [ qtbase ki18n ];
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kglobalaccel.nix b/pkgs/desktops/kde-5/frameworks-5.19/kglobalaccel.nix
new file mode 100644
index 000000000000..c535b3590a38
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kglobalaccel.nix
@@ -0,0 +1,23 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, kconfig
+, kcoreaddons
+, kcrash
+, kdbusaddons
+, kwindowsystem
+, makeQtWrapper
+, qtx11extras
+}:
+
+kdeFramework {
+  name = "kglobalaccel";
+  nativeBuildInputs = [ extra-cmake-modules makeQtWrapper ];
+  buildInputs = [ kconfig kcoreaddons kcrash kdbusaddons ];
+  propagatedBuildInputs = [ kwindowsystem qtx11extras ];
+  postInstall = ''
+    wrapQtProgram "$out/bin/kglobalaccel5"
+  '';
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kguiaddons.nix b/pkgs/desktops/kde-5/frameworks-5.19/kguiaddons.nix
new file mode 100644
index 000000000000..bc4e9ab11843
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kguiaddons.nix
@@ -0,0 +1,13 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, qtx11extras
+}:
+
+kdeFramework {
+  name = "kguiaddons";
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [ qtx11extras ];
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/khtml.nix b/pkgs/desktops/kde-5/frameworks-5.19/khtml.nix
new file mode 100644
index 000000000000..d40df466ebbd
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/khtml.nix
@@ -0,0 +1,21 @@
+{ kdeFramework, lib, extra-cmake-modules, giflib, karchive
+, kcodecs, kglobalaccel, ki18n, kiconthemes, kio, kjs
+, knotifications, kparts, ktextwidgets, kwallet, kwidgetsaddons
+, kwindowsystem, kxmlgui, perl, phonon, qtx11extras, sonnet
+}:
+
+kdeFramework {
+  name = "khtml";
+  nativeBuildInputs = [ extra-cmake-modules perl ];
+  buildInputs = [
+    giflib karchive kiconthemes knotifications kwallet kwidgetsaddons
+    kxmlgui phonon
+  ];
+  propagatedBuildInputs = [
+    kcodecs kglobalaccel ki18n kio kjs kparts ktextwidgets
+    kwindowsystem qtx11extras sonnet
+  ];
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/ki18n.nix b/pkgs/desktops/kde-5/frameworks-5.19/ki18n.nix
new file mode 100644
index 000000000000..268006512e7c
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/ki18n.nix
@@ -0,0 +1,17 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, gettext
+, python
+, qtdeclarative
+, qtscript
+}:
+
+kdeFramework {
+  name = "ki18n";
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [ qtdeclarative qtscript ];
+  propagatedNativeBuildInputs = [ gettext python ];
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kiconthemes/default-theme-breeze.patch b/pkgs/desktops/kde-5/frameworks-5.19/kiconthemes/default-theme-breeze.patch
new file mode 100644
index 000000000000..5b3b15d5d5b5
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kiconthemes/default-theme-breeze.patch
@@ -0,0 +1,13 @@
+Index: kiconthemes-5.17.0/src/kicontheme.cpp
+===================================================================
+--- kiconthemes-5.17.0.orig/src/kicontheme.cpp
++++ kiconthemes-5.17.0/src/kicontheme.cpp
+@@ -557,7 +557,7 @@ void KIconTheme::reconfigure()
+ // static
+ QString KIconTheme::defaultThemeName()
+ {
+-    return QStringLiteral("oxygen");
++    return QStringLiteral("breeze");
+ }
+ 
+ void KIconTheme::assignIconsToContextMenu(ContextMenus type,
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kiconthemes/default.nix b/pkgs/desktops/kde-5/frameworks-5.19/kiconthemes/default.nix
new file mode 100644
index 000000000000..b78b25582beb
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kiconthemes/default.nix
@@ -0,0 +1,18 @@
+{ kdeFramework, lib, copyPathsToStore
+, extra-cmake-modules, makeQtWrapper
+, kconfigwidgets, ki18n, breeze-icons, kitemviews, qtsvg
+}:
+
+kdeFramework {
+  name = "kiconthemes";
+  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  nativeBuildInputs = [ extra-cmake-modules makeQtWrapper ];
+  buildInputs = [ kconfigwidgets kitemviews qtsvg ];
+  propagatedBuildInputs = [ breeze-icons ki18n ];
+  postInstall = ''
+    wrapQtProgram "$out/bin/kiconfinder5"
+  '';
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kiconthemes/series b/pkgs/desktops/kde-5/frameworks-5.19/kiconthemes/series
new file mode 100644
index 000000000000..ab5cc8a3edb2
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kiconthemes/series
@@ -0,0 +1 @@
+default-theme-breeze.patch
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kidletime.nix b/pkgs/desktops/kde-5/frameworks-5.19/kidletime.nix
new file mode 100644
index 000000000000..fc0865600239
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kidletime.nix
@@ -0,0 +1,15 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, qtbase
+, qtx11extras
+}:
+
+kdeFramework {
+  name = "kidletime";
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [ qtx11extras ];
+  propagatedBuildInputs = [ qtbase ];
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kimageformats.nix b/pkgs/desktops/kde-5/frameworks-5.19/kimageformats.nix
new file mode 100644
index 000000000000..49d66bbcc2c6
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kimageformats.nix
@@ -0,0 +1,13 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, ilmbase
+}:
+
+kdeFramework {
+  name = "kimageformats";
+  nativeBuildInputs = [ extra-cmake-modules ];
+  NIX_CFLAGS_COMPILE = "-I${ilmbase}/include/OpenEXR";
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kinit/0001-kinit-libpath.patch b/pkgs/desktops/kde-5/frameworks-5.19/kinit/0001-kinit-libpath.patch
new file mode 100644
index 000000000000..9c76079a382a
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kinit/0001-kinit-libpath.patch
@@ -0,0 +1,42 @@
+From 723c9b1268a04127647a1c20eebe9804150566dd Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@gmail.com>
+Date: Sat, 13 Jun 2015 08:57:55 -0500
+Subject: [PATCH] kinit libpath
+
+---
+ src/kdeinit/kinit.cpp | 18 ++++++++++--------
+ 1 file changed, 10 insertions(+), 8 deletions(-)
+
+diff --git a/src/kdeinit/kinit.cpp b/src/kdeinit/kinit.cpp
+index 9e775b6..0ac5646 100644
+--- a/src/kdeinit/kinit.cpp
++++ b/src/kdeinit/kinit.cpp
+@@ -660,15 +660,17 @@ static pid_t launch(int argc, const char *_name, const char *args,
+         if (!libpath.isEmpty()) {
+             if (!l.load()) {
+                 if (libpath_relative) {
+-                    // NB: Because Qt makes the actual dlopen() call, the
+-                    //     RUNPATH of kdeinit is *not* respected - see
+-                    //     https://sourceware.org/bugzilla/show_bug.cgi?id=13945
+-                    //     - so we try hacking it in ourselves
+-                    QString install_lib_dir = QFile::decodeName(
+-                            CMAKE_INSTALL_PREFIX "/" LIB_INSTALL_DIR "/");
+-                    libpath = install_lib_dir + libpath;
+-                    l.setFileName(libpath);
++                  // Use QT_PLUGIN_PATH to find shared library directories
++                  // For KF5, the plugin path is /lib/qt5/plugins/, so kdeinit5
++                  // shared libraries should be in /lib/qt5/plugins/../../
++                  const QRegExp pathSepRegExp(QString::fromLatin1("[:\b]"));
++                  const QString up = QString::fromLocal8Bit("/../../");
++                  const QStringList paths = QString::fromLocal8Bit(qgetenv("QT_PLUGIN_PATH")).split(pathSepRegExp, QString::KeepEmptyParts);
++                  Q_FOREACH (const QString &path, paths) {
++                    l.setFileName(path + up + libpath);
+                     l.load();
++                    if (l.isLoaded()) break;
++                  }
+                 }
+             }
+             if (!l.isLoaded()) {
+-- 
+2.4.2
+
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kinit/default.nix b/pkgs/desktops/kde-5/frameworks-5.19/kinit/default.nix
new file mode 100644
index 000000000000..5f644d7c424e
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kinit/default.nix
@@ -0,0 +1,17 @@
+{ kdeFramework, lib, extra-cmake-modules, kconfig, kcrash
+, kdoctools, ki18n, kio, kservice, kwindowsystem, libcap
+, libcap_progs
+}:
+
+# TODO: setuid wrapper
+
+kdeFramework {
+  name = "kinit";
+  nativeBuildInputs = [ extra-cmake-modules kdoctools libcap_progs ];
+  buildInputs = [ kconfig kcrash kservice libcap ];
+  propagatedBuildInputs = [ ki18n kio kwindowsystem ];
+  patches = [ ./0001-kinit-libpath.patch ];
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kio/default.nix b/pkgs/desktops/kde-5/frameworks-5.19/kio/default.nix
new file mode 100644
index 000000000000..a2131ff33850
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kio/default.nix
@@ -0,0 +1,33 @@
+{ kdeFramework, lib, copyPathsToStore
+, extra-cmake-modules, acl, karchive
+, kbookmarks, kcompletion, kconfig, kconfigwidgets, kcoreaddons
+, kdbusaddons, kdoctools, ki18n, kiconthemes, kitemviews
+, kjobwidgets, knotifications, kservice, ktextwidgets, kwallet
+, kwidgetsaddons, kwindowsystem, kxmlgui, makeQtWrapper
+, qtscript, qtx11extras, solid
+}:
+
+kdeFramework {
+  name = "kio";
+  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  nativeBuildInputs = [ extra-cmake-modules kdoctools makeQtWrapper ];
+  buildInputs = [
+    acl karchive kconfig kcoreaddons kdbusaddons kiconthemes
+    knotifications ktextwidgets kwallet kwidgetsaddons
+    qtscript
+  ];
+  propagatedBuildInputs = [
+    kbookmarks kcompletion kconfigwidgets ki18n kitemviews kjobwidgets
+    kservice kwindowsystem kxmlgui solid qtx11extras
+  ];
+  postInstall = ''
+    wrapQtProgram "$out/bin/kcookiejar5"
+    wrapQtProgram "$out/bin/ktelnetservice5"
+    wrapQtProgram "$out/bin/ktrash5"
+    wrapQtProgram "$out/bin/kmailservice5"
+    wrapQtProgram "$out/bin/protocoltojson"
+  '';
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kio/samba-search-path.patch b/pkgs/desktops/kde-5/frameworks-5.19/kio/samba-search-path.patch
new file mode 100644
index 000000000000..c9ad46b41bb7
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kio/samba-search-path.patch
@@ -0,0 +1,28 @@
+Index: kio-5.17.0/src/core/ksambashare.cpp
+===================================================================
+--- kio-5.17.0.orig/src/core/ksambashare.cpp
++++ kio-5.17.0/src/core/ksambashare.cpp
+@@ -67,13 +67,18 @@ KSambaSharePrivate::~KSambaSharePrivate(
+ 
+ bool KSambaSharePrivate::isSambaInstalled()
+ {
+-    if (QFile::exists(QStringLiteral("/usr/sbin/smbd"))
+-            || QFile::exists(QStringLiteral("/usr/local/sbin/smbd"))) {
+-        return true;
++    const QByteArray pathEnv = qgetenv("PATH");
++    if (!pathEnv.isEmpty()) {
++        QLatin1Char pathSep(':');
++        QStringList paths = QFile::decodeName(pathEnv).split(pathSep, QString::SkipEmptyParts);
++        for (QStringList::iterator it = paths.begin(); it != paths.end(); ++it) {
++            it->append("/smbd");
++            if (QFile::exists(*it)) {
++                return true;
++            }
++        }
+     }
+ 
+-    //qDebug() << "Samba is not installed!";
+-
+     return false;
+ }
+ 
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kio/series b/pkgs/desktops/kde-5/frameworks-5.19/kio/series
new file mode 100644
index 000000000000..77ca15450047
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kio/series
@@ -0,0 +1 @@
+samba-search-path.patch
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kitemmodels.nix b/pkgs/desktops/kde-5/frameworks-5.19/kitemmodels.nix
new file mode 100644
index 000000000000..a9024d771cc3
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kitemmodels.nix
@@ -0,0 +1,11 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+}:
+
+kdeFramework {
+  name = "kitemmodels";
+  nativeBuildInputs = [ extra-cmake-modules ];
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kitemviews.nix b/pkgs/desktops/kde-5/frameworks-5.19/kitemviews.nix
new file mode 100644
index 000000000000..931019ce495d
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kitemviews.nix
@@ -0,0 +1,11 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+}:
+
+kdeFramework {
+  name = "kitemviews";
+  nativeBuildInputs = [ extra-cmake-modules ];
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kjobwidgets.nix b/pkgs/desktops/kde-5/frameworks-5.19/kjobwidgets.nix
new file mode 100644
index 000000000000..746edf12eea0
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kjobwidgets.nix
@@ -0,0 +1,16 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, kcoreaddons
+, kwidgetsaddons
+, qtx11extras
+}:
+
+kdeFramework {
+  name = "kjobwidgets";
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [ kcoreaddons kwidgetsaddons ];
+  propagatedBuildInputs = [ qtx11extras ];
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kjs.nix b/pkgs/desktops/kde-5/frameworks-5.19/kjs.nix
new file mode 100644
index 000000000000..768720f178c8
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kjs.nix
@@ -0,0 +1,16 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, kdoctools
+, makeQtWrapper
+}:
+
+kdeFramework {
+  name = "kjs";
+  nativeBuildInputs = [ extra-cmake-modules kdoctools makeQtWrapper ];
+  postInstall = ''
+    wrapQtProgram "$out/bin/kjs5"
+  '';
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kjsembed.nix b/pkgs/desktops/kde-5/frameworks-5.19/kjsembed.nix
new file mode 100644
index 000000000000..22eef2d47bde
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kjsembed.nix
@@ -0,0 +1,17 @@
+{ kdeFramework, lib, extra-cmake-modules, kdoctools, ki18n, kjs
+, makeQtWrapper, qtsvg
+}:
+
+kdeFramework {
+  name = "kjsembed";
+  nativeBuildInputs = [ extra-cmake-modules kdoctools makeQtWrapper ];
+  buildInputs = [ qtsvg ];
+  propagatedBuildInputs = [ ki18n kjs ];
+  postInstall = ''
+    wrapQtProgram "$out/bin/kjscmd5"
+    wrapQtProgram "$out/bin/kjsconsole"
+  '';
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kmediaplayer.nix b/pkgs/desktops/kde-5/frameworks-5.19/kmediaplayer.nix
new file mode 100644
index 000000000000..460458b22323
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kmediaplayer.nix
@@ -0,0 +1,15 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, kparts
+, kxmlgui
+}:
+
+kdeFramework {
+  name = "kmediaplayer";
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [ kxmlgui ];
+  propagatedBuildInputs = [ kparts ];
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/knewstuff.nix b/pkgs/desktops/kde-5/frameworks-5.19/knewstuff.nix
new file mode 100644
index 000000000000..5bcd6f301462
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/knewstuff.nix
@@ -0,0 +1,17 @@
+{ kdeFramework, lib, extra-cmake-modules, attica, karchive
+, kcompletion, kconfig, kcoreaddons, ki18n, kiconthemes, kio
+, kitemviews, kservice, ktextwidgets, kwidgetsaddons, kxmlgui
+}:
+
+kdeFramework {
+  name = "knewstuff";
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [
+    karchive kcompletion kconfig kcoreaddons kiconthemes
+    kitemviews ktextwidgets kwidgetsaddons
+  ];
+  propagatedBuildInputs = [ attica ki18n kio kservice kxmlgui ];
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/knotifications.nix b/pkgs/desktops/kde-5/frameworks-5.19/knotifications.nix
new file mode 100644
index 000000000000..7e301dd0f268
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/knotifications.nix
@@ -0,0 +1,21 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, kcodecs
+, kconfig
+, kcoreaddons
+, kwindowsystem
+, phonon
+, qtx11extras
+}:
+
+kdeFramework {
+  name = "knotifications";
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [
+    kcodecs kconfig kcoreaddons phonon
+  ];
+  propagatedBuildInputs = [ kwindowsystem qtx11extras ];
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/knotifyconfig.nix b/pkgs/desktops/kde-5/frameworks-5.19/knotifyconfig.nix
new file mode 100644
index 000000000000..dd99d2d4f1e5
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/knotifyconfig.nix
@@ -0,0 +1,13 @@
+{ kdeFramework, lib, extra-cmake-modules, kcompletion, kconfig
+, ki18n, kio, phonon
+}:
+
+kdeFramework {
+  name = "knotifyconfig";
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [ kcompletion kconfig phonon ];
+  propagatedBuildInputs = [ ki18n kio ];
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kpackage/allow-external-paths.patch b/pkgs/desktops/kde-5/frameworks-5.19/kpackage/allow-external-paths.patch
new file mode 100644
index 000000000000..e9d744448148
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kpackage/allow-external-paths.patch
@@ -0,0 +1,13 @@
+Index: kpackage-5.18.0/src/kpackage/package.cpp
+===================================================================
+--- kpackage-5.18.0.orig/src/kpackage/package.cpp
++++ kpackage-5.18.0/src/kpackage/package.cpp
+@@ -808,7 +808,7 @@ PackagePrivate::PackagePrivate()
+     : QSharedData(),
+       fallbackPackage(0),
+       metadata(0),
+-      externalPaths(false),
++      externalPaths(true),
+       valid(false),
+       checkedValid(false)
+ {
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kpackage/default.nix b/pkgs/desktops/kde-5/frameworks-5.19/kpackage/default.nix
new file mode 100644
index 000000000000..aea1b0d31a0d
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kpackage/default.nix
@@ -0,0 +1,23 @@
+{ kdeFramework, lib, copyPathsToStore
+, extra-cmake-modules
+, karchive
+, kconfig
+, kcoreaddons
+, kdoctools
+, ki18n
+, makeQtWrapper
+}:
+
+kdeFramework {
+  name = "kpackage";
+  nativeBuildInputs = [ extra-cmake-modules kdoctools makeQtWrapper ];
+  buildInputs = [ karchive kconfig ];
+  propagatedBuildInputs = [ kcoreaddons ki18n ];
+  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  postInstall = ''
+    wrapQtProgram "$out/bin/kpackagetool5"
+  '';
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kpackage/qdiriterator-follow-symlinks.patch b/pkgs/desktops/kde-5/frameworks-5.19/kpackage/qdiriterator-follow-symlinks.patch
new file mode 100644
index 000000000000..ddbf17d00064
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kpackage/qdiriterator-follow-symlinks.patch
@@ -0,0 +1,26 @@
+Index: kpackage-5.18.0/src/kpackage/packageloader.cpp
+===================================================================
+--- kpackage-5.18.0.orig/src/kpackage/packageloader.cpp
++++ kpackage-5.18.0/src/kpackage/packageloader.cpp
+@@ -241,7 +241,7 @@ QList<KPluginMetaData> PackageLoader::li
+         } else {
+             //qDebug() << "Not cached";
+             // If there's no cache file, fall back to listing the directory
+-            const QDirIterator::IteratorFlags flags = QDirIterator::Subdirectories;
++            const QDirIterator::IteratorFlags flags = QDirIterator::Subdirectories | QDirIterator::FollowSymlinks;
+             const QStringList nameFilters = QStringList(QStringLiteral("metadata.desktop")) << QStringLiteral("metadata.json");
+ 
+             QDirIterator it(plugindir, nameFilters, QDir::Files, flags);
+Index: kpackage-5.18.0/src/kpackage/private/packagejobthread.cpp
+===================================================================
+--- kpackage-5.18.0.orig/src/kpackage/private/packagejobthread.cpp
++++ kpackage-5.18.0/src/kpackage/private/packagejobthread.cpp
+@@ -146,7 +146,7 @@ bool indexDirectory(const QString& dir,
+ 
+     QJsonArray plugins;
+ 
+-    QDirIterator it(dir, *metaDataFiles, QDir::Files, QDirIterator::Subdirectories);
++    QDirIterator it(dir, *metaDataFiles, QDir::Files, QDirIterator::Subdirectories | QDirIterator::FollowSymlinks);
+     while (it.hasNext()) {
+         it.next();
+         const QString path = it.fileInfo().absoluteFilePath();
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kpackage/series b/pkgs/desktops/kde-5/frameworks-5.19/kpackage/series
new file mode 100644
index 000000000000..9b7f076efc70
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kpackage/series
@@ -0,0 +1,2 @@
+allow-external-paths.patch
+qdiriterator-follow-symlinks.patch
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kparts.nix b/pkgs/desktops/kde-5/frameworks-5.19/kparts.nix
new file mode 100644
index 000000000000..1c3e0b2cbc51
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kparts.nix
@@ -0,0 +1,17 @@
+{ kdeFramework, lib, extra-cmake-modules, kconfig, kcoreaddons
+, ki18n, kiconthemes, kio, kjobwidgets, knotifications, kservice
+, ktextwidgets, kwidgetsaddons, kxmlgui
+}:
+
+kdeFramework {
+  name = "kparts";
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [
+    kconfig kcoreaddons kiconthemes kjobwidgets knotifications
+    kservice kwidgetsaddons
+  ];
+  propagatedBuildInputs = [ ki18n kio ktextwidgets kxmlgui ];
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kpeople.nix b/pkgs/desktops/kde-5/frameworks-5.19/kpeople.nix
new file mode 100644
index 000000000000..4c3877e7efd2
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kpeople.nix
@@ -0,0 +1,15 @@
+{ kdeFramework, lib, extra-cmake-modules, kcoreaddons, ki18n
+, kitemviews, kservice, kwidgetsaddons, qtdeclarative
+}:
+
+kdeFramework {
+  name = "kpeople";
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [
+    kcoreaddons kitemviews kservice kwidgetsaddons
+  ];
+  propagatedBuildInputs = [ ki18n qtdeclarative ];
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kplotting.nix b/pkgs/desktops/kde-5/frameworks-5.19/kplotting.nix
new file mode 100644
index 000000000000..c16f51b5ac3c
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kplotting.nix
@@ -0,0 +1,11 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+}:
+
+kdeFramework {
+  name = "kplotting";
+  nativeBuildInputs = [ extra-cmake-modules ];
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kpty.nix b/pkgs/desktops/kde-5/frameworks-5.19/kpty.nix
new file mode 100644
index 000000000000..2e34e6f674ce
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kpty.nix
@@ -0,0 +1,10 @@
+{ kdeFramework, lib, extra-cmake-modules, kcoreaddons, ki18n }:
+
+kdeFramework {
+  name = "kpty";
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedBuildInputs = [ kcoreaddons ki18n ];
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kross.nix b/pkgs/desktops/kde-5/frameworks-5.19/kross.nix
new file mode 100644
index 000000000000..7c6f079feaa7
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kross.nix
@@ -0,0 +1,14 @@
+{ kdeFramework, lib, extra-cmake-modules, kcompletion, kcoreaddons
+, kdoctools, ki18n, kiconthemes, kio, kparts, kwidgetsaddons
+, kxmlgui, qtscript
+}:
+
+kdeFramework {
+  name = "kross";
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  buildInputs = [ kcompletion kcoreaddons kxmlgui ];
+  propagatedBuildInputs = [ ki18n kiconthemes kio kparts kwidgetsaddons qtscript ];
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/krunner.nix b/pkgs/desktops/kde-5/frameworks-5.19/krunner.nix
new file mode 100644
index 000000000000..12d2b54d0eb3
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/krunner.nix
@@ -0,0 +1,16 @@
+{ kdeFramework, lib, extra-cmake-modules, kconfig, kcoreaddons
+, ki18n, kio, kservice, plasma-framework, qtquick1, solid
+, threadweaver
+}:
+
+kdeFramework {
+  name = "krunner";
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [
+    kconfig kcoreaddons kservice qtquick1 solid threadweaver
+  ];
+  propagatedBuildInputs = [ ki18n kio plasma-framework ];
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kservice/0001-qdiriterator-follow-symlinks.patch b/pkgs/desktops/kde-5/frameworks-5.19/kservice/0001-qdiriterator-follow-symlinks.patch
new file mode 100644
index 000000000000..3d8397d8ee2d
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kservice/0001-qdiriterator-follow-symlinks.patch
@@ -0,0 +1,25 @@
+From ae8919eb81abad369e4a26ffcd845b140983398d Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@gmail.com>
+Date: Wed, 14 Oct 2015 06:28:57 -0500
+Subject: [PATCH 1/2] qdiriterator follow symlinks
+
+---
+ src/sycoca/kbuildsycoca.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/sycoca/kbuildsycoca.cpp b/src/sycoca/kbuildsycoca.cpp
+index 1deae14..250baa8 100644
+--- a/src/sycoca/kbuildsycoca.cpp
++++ b/src/sycoca/kbuildsycoca.cpp
+@@ -208,7 +208,7 @@ bool KBuildSycoca::build()
+         QStringList relFiles;
+         const QStringList dirs = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, m_resourceSubdir, QStandardPaths::LocateDirectory);
+         Q_FOREACH (const QString &dir, dirs) {
+-            QDirIterator it(dir, QDirIterator::Subdirectories);
++            QDirIterator it(dir, QDirIterator::Subdirectories | QDirIterator::FollowSymlinks);
+             while (it.hasNext()) {
+                 const QString filePath = it.next();
+                 Q_ASSERT(filePath.startsWith(dir)); // due to the line below...
+-- 
+2.5.2
+
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kservice/0002-no-canonicalize-path.patch b/pkgs/desktops/kde-5/frameworks-5.19/kservice/0002-no-canonicalize-path.patch
new file mode 100644
index 000000000000..685c68526119
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kservice/0002-no-canonicalize-path.patch
@@ -0,0 +1,25 @@
+From 46d124da602d84b7611a7ff0ac0862168d451cdb Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@gmail.com>
+Date: Wed, 14 Oct 2015 06:31:29 -0500
+Subject: [PATCH 2/2] no canonicalize path
+
+---
+ src/sycoca/vfolder_menu.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/sycoca/vfolder_menu.cpp b/src/sycoca/vfolder_menu.cpp
+index d3e31c3..d15d743 100644
+--- a/src/sycoca/vfolder_menu.cpp
++++ b/src/sycoca/vfolder_menu.cpp
+@@ -415,7 +415,7 @@ VFolderMenu::absoluteDir(const QString &_dir, const QString &baseDir, bool keepR
+     }
+ 
+     if (!relative) {
+-        QString resolved = QDir(dir).canonicalPath();
++      QString resolved = QDir::cleanPath(dir);
+         if (!resolved.isEmpty()) {
+             dir = resolved;
+         }
+-- 
+2.5.2
+
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kservice/default.nix b/pkgs/desktops/kde-5/frameworks-5.19/kservice/default.nix
new file mode 100644
index 000000000000..03b7c7c2f51d
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kservice/default.nix
@@ -0,0 +1,19 @@
+{ kdeFramework, lib, extra-cmake-modules, kconfig, kcoreaddons
+, kcrash, kdbusaddons, kdoctools, ki18n, kwindowsystem
+}:
+
+kdeFramework {
+  name = "kservice";
+  setupHook = ./setup-hook.sh;
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  buildInputs = [ kcrash kdbusaddons ];
+  propagatedBuildInputs = [ kconfig kcoreaddons ki18n kwindowsystem ];
+  propagatedUserEnvPkgs = [ kcoreaddons ];
+  patches = [
+    ./0001-qdiriterator-follow-symlinks.patch
+    ./0002-no-canonicalize-path.patch
+  ];
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kservice/setup-hook.sh b/pkgs/desktops/kde-5/frameworks-5.19/kservice/setup-hook.sh
new file mode 100644
index 000000000000..c28e862ff8ae
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kservice/setup-hook.sh
@@ -0,0 +1,43 @@
+addServicePkg() {
+    local propagated
+    for dir in "share/kservices5" "share/kservicetypes5"; do
+        if [[ -d "$1/$dir" ]]; then
+            propagated=
+            for pkg in $propagatedBuildInputs; do
+                if [[ "z$pkg" == "z$1" ]]; then
+                    propagated=1
+                    break
+                fi
+            done
+            if [[ -z $propagated ]]; then
+                propagatedBuildInputs="$propagatedBuildInputs $1"
+            fi
+
+            propagated=
+            for pkg in $propagatedUserEnvPkgs; do
+                if [[ "z$pkg" == "z$1" ]]; then
+                    propagated=1
+                    break
+                fi
+            done
+            if [[ -z $propagated ]]; then
+                propagatedUserEnvPkgs="$propagatedUserEnvPkgs $1"
+            fi
+
+            break
+        fi
+    done
+}
+
+envHooks+=(addServicePkg)
+
+local propagated
+for pkg in $propagatedBuildInputs; do
+    if [[ "z$pkg" == "z@out@" ]]; then
+        propagated=1
+        break
+    fi
+done
+if [[ -z $propagated ]]; then
+    propagatedBuildInputs="$propagatedBuildInputs @out@"
+fi
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/ktexteditor/default.nix b/pkgs/desktops/kde-5/frameworks-5.19/ktexteditor/default.nix
new file mode 100644
index 000000000000..b8df6a5f4c0d
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/ktexteditor/default.nix
@@ -0,0 +1,22 @@
+{ kdeFramework, lib, copyPathsToStore
+, extra-cmake-modules, makeQtWrapper, perl
+, karchive, kconfig, kguiaddons, kiconthemes, kparts
+, libgit2
+, qtscript, qtxmlpatterns
+, ki18n, kio, sonnet
+}:
+
+kdeFramework {
+  name = "ktexteditor";
+  nativeBuildInputs = [ extra-cmake-modules makeQtWrapper perl ];
+  buildInputs = [
+    karchive kconfig kguiaddons kiconthemes kparts
+    libgit2
+    qtscript qtxmlpatterns
+  ];
+  propagatedBuildInputs = [ ki18n kio sonnet ];
+  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/ktexteditor/no-qcoreapplication.patch b/pkgs/desktops/kde-5/frameworks-5.19/ktexteditor/no-qcoreapplication.patch
new file mode 100644
index 000000000000..19ab1e1e5513
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/ktexteditor/no-qcoreapplication.patch
@@ -0,0 +1,36 @@
+Index: ktexteditor-5.18.0/src/syntax/data/katehighlightingindexer.cpp
+===================================================================
+--- ktexteditor-5.18.0.orig/src/syntax/data/katehighlightingindexer.cpp
++++ ktexteditor-5.18.0/src/syntax/data/katehighlightingindexer.cpp
+@@ -55,19 +55,16 @@ QStringList readListing(const QString &f
+ 
+ int main(int argc, char *argv[])
+ {
+-    // get app instance
+-    QCoreApplication app(argc, argv);
+-
+     // ensure enough arguments are passed
+-    if (app.arguments().size() < 3)
++    if (argc < 3)
+         return 1;
+ 
+     // open schema
+     QXmlSchema schema;
+-    if (!schema.load(QUrl::fromLocalFile(app.arguments().at(2))))
++    if (!schema.load(QUrl::fromLocalFile(QString::fromLocal8Bit(argv[2]))))
+         return 2;
+ 
+-    const QString hlFilenamesListing = app.arguments().value(3);
++    const QString hlFilenamesListing = QString::fromLocal8Bit(argv[3]);
+     if (hlFilenamesListing.isEmpty()) {
+         return 1;
+     }
+@@ -152,7 +149,7 @@ int main(int argc, char *argv[])
+         return anyError;
+ 
+     // create outfile, after all has worked!
+-    QFile outFile(app.arguments().at(1));
++    QFile outFile(QString::fromLocal8Bit(argv[1]));
+     if (!outFile.open(QIODevice::WriteOnly | QIODevice::Truncate))
+         return 7;
+ 
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/ktexteditor/series b/pkgs/desktops/kde-5/frameworks-5.19/ktexteditor/series
new file mode 100644
index 000000000000..46cd23829a2f
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/ktexteditor/series
@@ -0,0 +1 @@
+no-qcoreapplication.patch
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/ktextwidgets.nix b/pkgs/desktops/kde-5/frameworks-5.19/ktextwidgets.nix
new file mode 100644
index 000000000000..e332d4ff9a83
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/ktextwidgets.nix
@@ -0,0 +1,16 @@
+{ kdeFramework, lib, extra-cmake-modules, kcompletion, kconfig
+, kconfigwidgets, ki18n, kiconthemes, kservice, kwindowsystem
+, sonnet
+}:
+
+kdeFramework {
+  name = "ktextwidgets";
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [
+    kcompletion kconfig kconfigwidgets kiconthemes kservice
+  ];
+  propagatedBuildInputs = [ ki18n kwindowsystem sonnet ];
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kunitconversion.nix b/pkgs/desktops/kde-5/frameworks-5.19/kunitconversion.nix
new file mode 100644
index 000000000000..3cf0f847d83d
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kunitconversion.nix
@@ -0,0 +1,10 @@
+{ kdeFramework, lib, extra-cmake-modules, ki18n }:
+
+kdeFramework {
+  name = "kunitconversion";
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedBuildInputs = [ ki18n ];
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kwallet.nix b/pkgs/desktops/kde-5/frameworks-5.19/kwallet.nix
new file mode 100644
index 000000000000..46e3cb37d112
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kwallet.nix
@@ -0,0 +1,21 @@
+{ kdeFramework, lib, extra-cmake-modules, kconfig, kconfigwidgets
+, kcoreaddons, kdbusaddons, kdoctools, ki18n, kiconthemes, knotifications
+, kservice, kwidgetsaddons, kwindowsystem, libgcrypt, makeQtWrapper
+}:
+
+kdeFramework {
+  name = "kwallet";
+  nativeBuildInputs = [ extra-cmake-modules kdoctools makeQtWrapper ];
+  buildInputs = [
+    kconfig kconfigwidgets kcoreaddons kdbusaddons kiconthemes
+    knotifications kservice kwidgetsaddons libgcrypt
+  ];
+  propagatedBuildInputs = [ ki18n kwindowsystem ];
+  postInstall = ''
+    wrapQtProgram "$out/bin/kwalletd5"
+    wrapQtProgram "$out/bin/kwallet-query"
+  '';
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kwidgetsaddons.nix b/pkgs/desktops/kde-5/frameworks-5.19/kwidgetsaddons.nix
new file mode 100644
index 000000000000..d95f44d3fecf
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kwidgetsaddons.nix
@@ -0,0 +1,11 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+}:
+
+kdeFramework {
+  name = "kwidgetsaddons";
+  nativeBuildInputs = [ extra-cmake-modules ];
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kwindowsystem.nix b/pkgs/desktops/kde-5/frameworks-5.19/kwindowsystem.nix
new file mode 100644
index 000000000000..09ab1f2200de
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kwindowsystem.nix
@@ -0,0 +1,13 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, qtx11extras
+}:
+
+kdeFramework {
+  name = "kwindowsystem";
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [ qtx11extras ];
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kxmlgui.nix b/pkgs/desktops/kde-5/frameworks-5.19/kxmlgui.nix
new file mode 100644
index 000000000000..f081d5f9170e
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kxmlgui.nix
@@ -0,0 +1,18 @@
+{ kdeFramework, lib, extra-cmake-modules, attica, kconfig
+, kconfigwidgets, kglobalaccel, ki18n, kiconthemes, kitemviews
+, ktextwidgets, kwindowsystem, sonnet
+}:
+
+kdeFramework {
+  name = "kxmlgui";
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [
+    attica kconfig kiconthemes kitemviews ktextwidgets
+  ];
+  propagatedBuildInputs = [
+    kconfigwidgets kglobalaccel ki18n kwindowsystem sonnet
+  ];
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kxmlrpcclient.nix b/pkgs/desktops/kde-5/frameworks-5.19/kxmlrpcclient.nix
new file mode 100644
index 000000000000..20a300b68bc8
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kxmlrpcclient.nix
@@ -0,0 +1,10 @@
+{ kdeFramework, lib, extra-cmake-modules, ki18n, kio }:
+
+kdeFramework {
+  name = "kxmlrpcclient";
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedBuildInputs = [ ki18n kio ];
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/modemmanager-qt.nix b/pkgs/desktops/kde-5/frameworks-5.19/modemmanager-qt.nix
new file mode 100644
index 000000000000..7d7f769d6a9b
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/modemmanager-qt.nix
@@ -0,0 +1,13 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, modemmanager
+}:
+
+kdeFramework {
+  name = "modemmanager-qt";
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedBuildInputs = [ modemmanager ];
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/networkmanager-qt.nix b/pkgs/desktops/kde-5/frameworks-5.19/networkmanager-qt.nix
new file mode 100644
index 000000000000..333378bd1431
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/networkmanager-qt.nix
@@ -0,0 +1,13 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, networkmanager
+}:
+
+kdeFramework {
+  name = "networkmanager-qt";
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedBuildInputs = [ networkmanager ];
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/oxygen-icons5.nix b/pkgs/desktops/kde-5/frameworks-5.19/oxygen-icons5.nix
new file mode 100644
index 000000000000..ee350f8e1536
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/oxygen-icons5.nix
@@ -0,0 +1,13 @@
+{ kdeFramework
+, lib
+, extra-cmake-modules
+}:
+
+kdeFramework {
+  name = "oxygen-icons5";
+  nativeBuildInputs = [ extra-cmake-modules ];
+  meta = {
+    license = lib.licenses.lgpl3Plus;
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/plasma-framework/default.nix b/pkgs/desktops/kde-5/frameworks-5.19/plasma-framework/default.nix
new file mode 100644
index 000000000000..d8846f777231
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/plasma-framework/default.nix
@@ -0,0 +1,25 @@
+{ kdeFramework, lib, extra-cmake-modules, kactivities, karchive
+, kconfig, kconfigwidgets, kcoreaddons, kdbusaddons, kdeclarative
+, kdoctools, kglobalaccel, kguiaddons, ki18n, kiconthemes, kio
+, knotifications, kpackage, kservice, kwindowsystem, kxmlgui
+, makeQtWrapper, qtscript, qtx11extras
+}:
+
+kdeFramework {
+  name = "plasma-framework";
+  nativeBuildInputs = [ extra-cmake-modules kdoctools makeQtWrapper ];
+  buildInputs = [
+    karchive kconfig kconfigwidgets kcoreaddons kdbusaddons kguiaddons
+    kiconthemes knotifications kxmlgui qtscript
+  ];
+  propagatedBuildInputs = [
+    kactivities kdeclarative kglobalaccel ki18n kio kpackage kservice kwindowsystem
+    qtx11extras
+  ];
+  postInstall = ''
+    wrapQtProgram "$out/bin/plasmapkg2"
+  '';
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/solid.nix b/pkgs/desktops/kde-5/frameworks-5.19/solid.nix
new file mode 100644
index 000000000000..afd125e3c597
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/solid.nix
@@ -0,0 +1,17 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, makeQtWrapper
+, qtdeclarative
+}:
+
+kdeFramework {
+  name = "solid";
+  nativeBuildInputs = [ extra-cmake-modules makeQtWrapper ];
+  buildInputs = [ qtdeclarative ];
+  postInstall = ''
+    wrapQtProgram "$out/bin/solid-hardware5"
+  '';
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/sonnet.nix b/pkgs/desktops/kde-5/frameworks-5.19/sonnet.nix
new file mode 100644
index 000000000000..943fe04a1c92
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/sonnet.nix
@@ -0,0 +1,13 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, hunspell
+}:
+
+kdeFramework {
+  name = "sonnet";
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [ hunspell ];
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/srcs.nix b/pkgs/desktops/kde-5/frameworks-5.19/srcs.nix
new file mode 100644
index 000000000000..b86c0b71224d
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/srcs.nix
@@ -0,0 +1,565 @@
+# DO NOT EDIT! This file is generated automatically by fetchsrcs.sh
+{ fetchurl, mirror }:
+
+{
+  attica = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/attica-5.19.0.tar.xz";
+      sha256 = "0cbvjnv2fcqsxspiy5pzmnnzrpfamlsc9j927kd6gpzai1ckf1lv";
+      name = "attica-5.19.0.tar.xz";
+    };
+  };
+  baloo = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/baloo-5.19.0.tar.xz";
+      sha256 = "02yy0w13h5wxm74a87zi439f6yd9miid6rb54nia0pgvcka98svg";
+      name = "baloo-5.19.0.tar.xz";
+    };
+  };
+  bluez-qt = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/bluez-qt-5.19.0.tar.xz";
+      sha256 = "0609i7rzhnnnp4fqnwscwp6y646ji8kl2hw5sy7azc87yllisnyv";
+      name = "bluez-qt-5.19.0.tar.xz";
+    };
+  };
+  breeze-icons = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/breeze-icons-5.19.0.tar.xz";
+      sha256 = "0bwix0jl1dscqfb7ygn9drpd9ivfx4g15vz6h01mswvxa9lz1vj0";
+      name = "breeze-icons-5.19.0.tar.xz";
+    };
+  };
+  extra-cmake-modules = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/extra-cmake-modules-5.19.0.tar.xz";
+      sha256 = "1dl3hhbara7iswb5wsc5dp17ar3ljw5f0nrncl8vry9smaz2zl63";
+      name = "extra-cmake-modules-5.19.0.tar.xz";
+    };
+  };
+  frameworkintegration = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/frameworkintegration-5.19.0.tar.xz";
+      sha256 = "00la7p7wcyqpxyi73h4fjrmm9d2gqzdaljn4468xya4bfns5ijy3";
+      name = "frameworkintegration-5.19.0.tar.xz";
+    };
+  };
+  kactivities = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/kactivities-5.19.0.tar.xz";
+      sha256 = "0yml1sbn3z4jd4vsfs25kqrl03pmlcgamzbgpw3248sabhyg7ks3";
+      name = "kactivities-5.19.0.tar.xz";
+    };
+  };
+  kapidox = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/kapidox-5.19.0.tar.xz";
+      sha256 = "0a9731xrkd6mnqh72592rx6gfnxxdfd7xl8pdpgdn7qs3394k1yz";
+      name = "kapidox-5.19.0.tar.xz";
+    };
+  };
+  karchive = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/karchive-5.19.0.tar.xz";
+      sha256 = "043spmi7s2d1bj8d3wbgzbhisip6h92kqjhlvg8gyv0a7vy54ymv";
+      name = "karchive-5.19.0.tar.xz";
+    };
+  };
+  kauth = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/kauth-5.19.0.tar.xz";
+      sha256 = "0fm9ih2hkh2rpmlf98yw8z1r5bn2qmpva2k7mrv6ijd5h767fxss";
+      name = "kauth-5.19.0.tar.xz";
+    };
+  };
+  kbookmarks = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/kbookmarks-5.19.0.tar.xz";
+      sha256 = "0q418jpdc348nqgdavsmxxka4g8sldpdi9n89i1pllfmq10kw9sd";
+      name = "kbookmarks-5.19.0.tar.xz";
+    };
+  };
+  kcmutils = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/kcmutils-5.19.0.tar.xz";
+      sha256 = "0qhdjb3zvqq9ycfgb52lz4flgipyplj5ksz8h8y71bbs4w6lazd8";
+      name = "kcmutils-5.19.0.tar.xz";
+    };
+  };
+  kcodecs = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/kcodecs-5.19.0.tar.xz";
+      sha256 = "1rzp314fv9n5168j7nhv1c8fjaszpmgdx6javrx4w0hyrjdfkg66";
+      name = "kcodecs-5.19.0.tar.xz";
+    };
+  };
+  kcompletion = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/kcompletion-5.19.0.tar.xz";
+      sha256 = "05n0y5kf3bcc4wgn6k0js5cravv1k93xxzrgapm21323qgvfagwd";
+      name = "kcompletion-5.19.0.tar.xz";
+    };
+  };
+  kconfig = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/kconfig-5.19.0.tar.xz";
+      sha256 = "0nk5hfl8yh0kgaa7xi0cc05dl6nf7prvbvxv0i99207xh9dafdmm";
+      name = "kconfig-5.19.0.tar.xz";
+    };
+  };
+  kconfigwidgets = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/kconfigwidgets-5.19.0.tar.xz";
+      sha256 = "1nld27chcjwjgwv76s2j77ifmca235yp10bm08rjmvnfn6778ypv";
+      name = "kconfigwidgets-5.19.0.tar.xz";
+    };
+  };
+  kcoreaddons = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/kcoreaddons-5.19.0.tar.xz";
+      sha256 = "07sm0givfdx28p302fkynzsd3xkpn1hbs43d4rscyx18yxfsldcw";
+      name = "kcoreaddons-5.19.0.tar.xz";
+    };
+  };
+  kcrash = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/kcrash-5.19.0.tar.xz";
+      sha256 = "1dy03gp1sj96wn0zfa0dpbvz8pz0ia1j7p1wcif3iqk55pjxdgyl";
+      name = "kcrash-5.19.0.tar.xz";
+    };
+  };
+  kdbusaddons = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/kdbusaddons-5.19.0.tar.xz";
+      sha256 = "1bb5aik0kl3kab5399drfjxrm8iysgkf813xgr0y4k64c9kwfp28";
+      name = "kdbusaddons-5.19.0.tar.xz";
+    };
+  };
+  kdeclarative = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/kdeclarative-5.19.0.tar.xz";
+      sha256 = "03g02zy7wjzmpvqzxx32z8ap7jyj9sf432g1d3csb0dcbx2ny52g";
+      name = "kdeclarative-5.19.0.tar.xz";
+    };
+  };
+  kded = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/kded-5.19.0.tar.xz";
+      sha256 = "0nyvg0h2aqy7qr57bad6wyc2rmcv9nhdq0py4fxc3irb6516p9hz";
+      name = "kded-5.19.0.tar.xz";
+    };
+  };
+  kdelibs4support = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/portingAids/kdelibs4support-5.19.0.tar.xz";
+      sha256 = "0iqnb2j6gfy8006arwv65vljfhxdnk6aia0zppngb481jnd9n2pn";
+      name = "kdelibs4support-5.19.0.tar.xz";
+    };
+  };
+  kdesignerplugin = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/kdesignerplugin-5.19.0.tar.xz";
+      sha256 = "11inmvyair796rx4842naf1dnxqvc6bqqzrv700ycvisad646ws5";
+      name = "kdesignerplugin-5.19.0.tar.xz";
+    };
+  };
+  kdesu = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/kdesu-5.19.0.tar.xz";
+      sha256 = "19w8m7ji61bpd368lzkwlizcwa1l968l568lksgm2mm9pnyjjhgz";
+      name = "kdesu-5.19.0.tar.xz";
+    };
+  };
+  kdewebkit = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/kdewebkit-5.19.0.tar.xz";
+      sha256 = "04b5qanhxggffnvmi28lspyi8kj4kq7mxhxndar9fmkzzgvy70hj";
+      name = "kdewebkit-5.19.0.tar.xz";
+    };
+  };
+  kdnssd = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/kdnssd-5.19.0.tar.xz";
+      sha256 = "15a8w2i29mrbhadw6y123mr0cc45ijabnwdfp3lbkd40lk8nq314";
+      name = "kdnssd-5.19.0.tar.xz";
+    };
+  };
+  kdoctools = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/kdoctools-5.19.0.tar.xz";
+      sha256 = "06g77n9wxpiv4skc1kz794ppfb2mkmd3fgn6an5kr301xc76cnpn";
+      name = "kdoctools-5.19.0.tar.xz";
+    };
+  };
+  kemoticons = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/kemoticons-5.19.0.tar.xz";
+      sha256 = "0fiix2sf2wrvmrpx8whdr1bzm7gbv7pvg02y47w5bl6s9gh176g5";
+      name = "kemoticons-5.19.0.tar.xz";
+    };
+  };
+  kfilemetadata = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/kfilemetadata-5.19.0.tar.xz";
+      sha256 = "11j8if3xhp3xxwibwm6nxb4lh8wx40ni3zf5hki327pxv4vpq3qr";
+      name = "kfilemetadata-5.19.0.tar.xz";
+    };
+  };
+  kglobalaccel = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/kglobalaccel-5.19.0.tar.xz";
+      sha256 = "021j98f7217m83aqxpamg0lzlaiskdaqsd9iabc8wrp1g0nkm05d";
+      name = "kglobalaccel-5.19.0.tar.xz";
+    };
+  };
+  kguiaddons = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/kguiaddons-5.19.0.tar.xz";
+      sha256 = "019xaf7vpgifcw8wibli9d2b50brhgdaypsqknh6mqq8q9g06jhy";
+      name = "kguiaddons-5.19.0.tar.xz";
+    };
+  };
+  khtml = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/portingAids/khtml-5.19.0.tar.xz";
+      sha256 = "0hqa54a9nxy954vy8gf52y89xd3ibz9b4jgh6w347b1alp1zn145";
+      name = "khtml-5.19.0.tar.xz";
+    };
+  };
+  ki18n = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/ki18n-5.19.0.tar.xz";
+      sha256 = "0v3arc20y5d8afm9zfrz1skd2xg3ng62cq1xvxiq645w6mxf7y05";
+      name = "ki18n-5.19.0.tar.xz";
+    };
+  };
+  kiconthemes = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/kiconthemes-5.19.0.tar.xz";
+      sha256 = "0riicirgda3w2b30dzsa2lq9xrr4y04qwhxyzq1p8gn2x4pp3g3n";
+      name = "kiconthemes-5.19.0.tar.xz";
+    };
+  };
+  kidletime = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/kidletime-5.19.0.tar.xz";
+      sha256 = "0jlbzqv36ddhfhk8xkkgw0xhq8s371z9ama1cyv2xq8kk4vjywc6";
+      name = "kidletime-5.19.0.tar.xz";
+    };
+  };
+  kimageformats = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/kimageformats-5.19.0.tar.xz";
+      sha256 = "1ydizc6b0ncndazk62h8y249yfcx381pwzyivfpka1f69zfgyvv5";
+      name = "kimageformats-5.19.0.tar.xz";
+    };
+  };
+  kinit = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/kinit-5.19.0.tar.xz";
+      sha256 = "03l7pijqdnnsfg6yz9p73p7xa86sldayggl6rc5hpkzmgyczcfzm";
+      name = "kinit-5.19.0.tar.xz";
+    };
+  };
+  kio = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/kio-5.19.0.tar.xz";
+      sha256 = "0c7smp7cajivx53shy65mp9zcc51pha9iyvh37dggfflxy3xf9nv";
+      name = "kio-5.19.0.tar.xz";
+    };
+  };
+  kitemmodels = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/kitemmodels-5.19.0.tar.xz";
+      sha256 = "0skmim986qnncbzd84vm1wp1fr41jn04af2dgckirsk23d35bln7";
+      name = "kitemmodels-5.19.0.tar.xz";
+    };
+  };
+  kitemviews = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/kitemviews-5.19.0.tar.xz";
+      sha256 = "118zv46mvrfwbvl06bb1m8axv92wnp4pfs36hsxvnjl7gfjk5xjn";
+      name = "kitemviews-5.19.0.tar.xz";
+    };
+  };
+  kjobwidgets = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/kjobwidgets-5.19.0.tar.xz";
+      sha256 = "1qzf8nzy8rxkdai9aj2lyrww90245v0p2q115xiz73bsg9rahmji";
+      name = "kjobwidgets-5.19.0.tar.xz";
+    };
+  };
+  kjs = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/portingAids/kjs-5.19.0.tar.xz";
+      sha256 = "08m01762hb25vm020g3v37bh40cgvcfrj45ql135klx96x9imfaf";
+      name = "kjs-5.19.0.tar.xz";
+    };
+  };
+  kjsembed = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/portingAids/kjsembed-5.19.0.tar.xz";
+      sha256 = "1wmkgy8jgm21y2cvcbv1fdv29dxxla8n6ws78kzzbbw4cgqwwl48";
+      name = "kjsembed-5.19.0.tar.xz";
+    };
+  };
+  kmediaplayer = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/portingAids/kmediaplayer-5.19.0.tar.xz";
+      sha256 = "1vhqr2c7q8vwzdj29vpmfjfhyal8wp9ffirrnqc98vb6sffs85ay";
+      name = "kmediaplayer-5.19.0.tar.xz";
+    };
+  };
+  knewstuff = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/knewstuff-5.19.0.tar.xz";
+      sha256 = "12acd12vxk9z83zg3yz8lvmmb8737z9lzd4hs9a3jcs1z5k2nhb4";
+      name = "knewstuff-5.19.0.tar.xz";
+    };
+  };
+  knotifications = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/knotifications-5.19.0.tar.xz";
+      sha256 = "0grgm0ws16gp2j77nslqpl1jpxbi0m6g59zr7v1xnmzdk2j6n4av";
+      name = "knotifications-5.19.0.tar.xz";
+    };
+  };
+  knotifyconfig = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/knotifyconfig-5.19.0.tar.xz";
+      sha256 = "161brvryxzdkny7sf6icn1jpyi6rnw6jc808gdf5g41v50xpnxfj";
+      name = "knotifyconfig-5.19.0.tar.xz";
+    };
+  };
+  kpackage = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/kpackage-5.19.0.tar.xz";
+      sha256 = "1km4sjgxfljp2pnjnzj48q3c574zvj7341a57n4ifhjwj37yzxdv";
+      name = "kpackage-5.19.0.tar.xz";
+    };
+  };
+  kparts = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/kparts-5.19.0.tar.xz";
+      sha256 = "05g59x2mrqygawzcwgw3igl5n96l649h0kpzh37sfq4i8kg15g7l";
+      name = "kparts-5.19.0.tar.xz";
+    };
+  };
+  kpeople = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/kpeople-5.19.0.tar.xz";
+      sha256 = "1ksf6g71li1xk4q98cvwkam8m8g32x2815kj1gfwbg4g6iw74w98";
+      name = "kpeople-5.19.0.tar.xz";
+    };
+  };
+  kplotting = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/kplotting-5.19.0.tar.xz";
+      sha256 = "169x4m9ms8yhfha8zclnl8wrnfhfqshpwwg4b5bd046pcrkqmnqq";
+      name = "kplotting-5.19.0.tar.xz";
+    };
+  };
+  kpty = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/kpty-5.19.0.tar.xz";
+      sha256 = "0289vzfjwppwqj9h03flzhwm18dnxz11hqhdhr9990x7rw6a4n03";
+      name = "kpty-5.19.0.tar.xz";
+    };
+  };
+  kross = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/portingAids/kross-5.19.0.tar.xz";
+      sha256 = "1nv7mrhn7wa4bs2a164x42d3b37akyvhkxqs8cg5fqp4vr2wkw0p";
+      name = "kross-5.19.0.tar.xz";
+    };
+  };
+  krunner = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/portingAids/krunner-5.19.0.tar.xz";
+      sha256 = "054s8309lxi27gpbg7iygbcxsp0pwrzbzww3h8zp2a9yiic4s5mx";
+      name = "krunner-5.19.0.tar.xz";
+    };
+  };
+  kservice = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/kservice-5.19.0.tar.xz";
+      sha256 = "02lbia26r2462nwksizaxjfkhxfqqs732dp495yx8bjc7wcv3srm";
+      name = "kservice-5.19.0.tar.xz";
+    };
+  };
+  ktexteditor = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/ktexteditor-5.19.0.tar.xz";
+      sha256 = "0v3l44w4k43ajs81i8386hszk3x7rajjlb6z3jb7q98vhp91b5dp";
+      name = "ktexteditor-5.19.0.tar.xz";
+    };
+  };
+  ktextwidgets = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/ktextwidgets-5.19.0.tar.xz";
+      sha256 = "1xydb76r6x1p10bkr2nlqg3md78jw8zvqad0h42dgvl4f5xvjknp";
+      name = "ktextwidgets-5.19.0.tar.xz";
+    };
+  };
+  kunitconversion = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/kunitconversion-5.19.0.tar.xz";
+      sha256 = "11g1vhqkrb1k748drj7klkbb7jca3dybakcmcgqf53g8vxfih8kb";
+      name = "kunitconversion-5.19.0.tar.xz";
+    };
+  };
+  kwallet = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/kwallet-5.19.0.tar.xz";
+      sha256 = "0z0c62fdfx9syrq6z7bk0ihac4yqyxpycll7h3mijj29km4jnpjm";
+      name = "kwallet-5.19.0.tar.xz";
+    };
+  };
+  kwidgetsaddons = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/kwidgetsaddons-5.19.0.tar.xz";
+      sha256 = "0b85ng0dj5gpzifqmhyzgx61nb37vq7d0gvfpfazlcp5n27ywivm";
+      name = "kwidgetsaddons-5.19.0.tar.xz";
+    };
+  };
+  kwindowsystem = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/kwindowsystem-5.19.0.tar.xz";
+      sha256 = "115xs34r74j9zcsw69glnh8w59iyh764n3gniawwrk23c6yb8fch";
+      name = "kwindowsystem-5.19.0.tar.xz";
+    };
+  };
+  kxmlgui = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/kxmlgui-5.19.0.tar.xz";
+      sha256 = "1al2xifiyvl3zpva9nqap8gb6vqfgmf2fnhkmymm02rwg4yn4gah";
+      name = "kxmlgui-5.19.0.tar.xz";
+    };
+  };
+  kxmlrpcclient = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/kxmlrpcclient-5.19.0.tar.xz";
+      sha256 = "0lji7cxvh2lmjz42lx6ymz962gr4cyqfzksz0n5vgzfk5z0vq98g";
+      name = "kxmlrpcclient-5.19.0.tar.xz";
+    };
+  };
+  modemmanager-qt = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/modemmanager-qt-5.19.0.tar.xz";
+      sha256 = "05x9jicryjw9fj02arpya8xsh79rsnljnqjfpwbb7pi38f9i8v4w";
+      name = "modemmanager-qt-5.19.0.tar.xz";
+    };
+  };
+  networkmanager-qt = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/networkmanager-qt-5.19.0.tar.xz";
+      sha256 = "0wi0mkygzbvvyil1nyzc3ihgilvpx6j7caqaa9k38p85g93vsq13";
+      name = "networkmanager-qt-5.19.0.tar.xz";
+    };
+  };
+  oxygen-icons5 = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/oxygen-icons5-5.19.0.tar.xz";
+      sha256 = "09vfwcyidj3bl0qr4sq78bkc69zp9x8dwp8bsay5y05q8591dkg0";
+      name = "oxygen-icons5-5.19.0.tar.xz";
+    };
+  };
+  plasma-framework = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/plasma-framework-5.19.0.tar.xz";
+      sha256 = "1588r1jag0s9hhw4qq7mr2mcdd3d9az5ngb3z1l58xdhvfcc4497";
+      name = "plasma-framework-5.19.0.tar.xz";
+    };
+  };
+  solid = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/solid-5.19.0.tar.xz";
+      sha256 = "02bnvhscb55r6q5hkyh7rqi6zsc3r974y3x9shi8l0xbs78snkgz";
+      name = "solid-5.19.0.tar.xz";
+    };
+  };
+  sonnet = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/sonnet-5.19.0.tar.xz";
+      sha256 = "02ringh0wyiq1n19c200bcyf5x2w5jhw0pcxvfjzjai1sjig03x7";
+      name = "sonnet-5.19.0.tar.xz";
+    };
+  };
+  threadweaver = {
+    version = "5.19.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.19/threadweaver-5.19.0.tar.xz";
+      sha256 = "1jm1sw7xq76s2ggghm6qqdn7452myy9n7p5zzdb01qbaw2y1x4pw";
+      name = "threadweaver-5.19.0.tar.xz";
+    };
+  };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/threadweaver.nix b/pkgs/desktops/kde-5/frameworks-5.19/threadweaver.nix
new file mode 100644
index 000000000000..52817921cc72
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/threadweaver.nix
@@ -0,0 +1,11 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+}:
+
+kdeFramework {
+  name = "threadweaver";
+  nativeBuildInputs = [ extra-cmake-modules ];
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/desktops/plasma-5.5/bluedevil.nix b/pkgs/desktops/kde-5/plasma-5.5/bluedevil.nix
index 6596c246202f..6596c246202f 100644
--- a/pkgs/desktops/plasma-5.5/bluedevil.nix
+++ b/pkgs/desktops/kde-5/plasma-5.5/bluedevil.nix
diff --git a/pkgs/desktops/plasma-5.5/breeze-gtk.nix b/pkgs/desktops/kde-5/plasma-5.5/breeze-gtk.nix
index 179f15dc8763..179f15dc8763 100644
--- a/pkgs/desktops/plasma-5.5/breeze-gtk.nix
+++ b/pkgs/desktops/kde-5/plasma-5.5/breeze-gtk.nix
diff --git a/pkgs/desktops/plasma-5.5/breeze-qt4.nix b/pkgs/desktops/kde-5/plasma-5.5/breeze-qt4.nix
index f8092bc9d376..f8092bc9d376 100644
--- a/pkgs/desktops/plasma-5.5/breeze-qt4.nix
+++ b/pkgs/desktops/kde-5/plasma-5.5/breeze-qt4.nix
diff --git a/pkgs/desktops/plasma-5.5/breeze-qt5.nix b/pkgs/desktops/kde-5/plasma-5.5/breeze-qt5.nix
index 63ade168805d..63ade168805d 100644
--- a/pkgs/desktops/plasma-5.5/breeze-qt5.nix
+++ b/pkgs/desktops/kde-5/plasma-5.5/breeze-qt5.nix
diff --git a/pkgs/desktops/plasma-5.5/default.nix b/pkgs/desktops/kde-5/plasma-5.5/default.nix
index c9fcbdd8e6a0..c9fcbdd8e6a0 100644
--- a/pkgs/desktops/plasma-5.5/default.nix
+++ b/pkgs/desktops/kde-5/plasma-5.5/default.nix
diff --git a/pkgs/desktops/plasma-5.5/fetchsrcs.sh b/pkgs/desktops/kde-5/plasma-5.5/fetchsrcs.sh
index 714e0fc75097..714e0fc75097 100755
--- a/pkgs/desktops/plasma-5.5/fetchsrcs.sh
+++ b/pkgs/desktops/kde-5/plasma-5.5/fetchsrcs.sh
diff --git a/pkgs/desktops/plasma-5.5/kde-cli-tools.nix b/pkgs/desktops/kde-5/plasma-5.5/kde-cli-tools.nix
index 7f19af6959ec..7f19af6959ec 100644
--- a/pkgs/desktops/plasma-5.5/kde-cli-tools.nix
+++ b/pkgs/desktops/kde-5/plasma-5.5/kde-cli-tools.nix
diff --git a/pkgs/desktops/plasma-5.5/kde-gtk-config/0001-follow-symlinks.patch b/pkgs/desktops/kde-5/plasma-5.5/kde-gtk-config/0001-follow-symlinks.patch
index 759eda4cc134..759eda4cc134 100644
--- a/pkgs/desktops/plasma-5.5/kde-gtk-config/0001-follow-symlinks.patch
+++ b/pkgs/desktops/kde-5/plasma-5.5/kde-gtk-config/0001-follow-symlinks.patch
diff --git a/pkgs/desktops/plasma-5.5/kde-gtk-config/default.nix b/pkgs/desktops/kde-5/plasma-5.5/kde-gtk-config/default.nix
index 6b41599994d5..6b41599994d5 100644
--- a/pkgs/desktops/plasma-5.5/kde-gtk-config/default.nix
+++ b/pkgs/desktops/kde-5/plasma-5.5/kde-gtk-config/default.nix
diff --git a/pkgs/desktops/plasma-5.5/kdecoration.nix b/pkgs/desktops/kde-5/plasma-5.5/kdecoration.nix
index eb65f7f90afb..eb65f7f90afb 100644
--- a/pkgs/desktops/plasma-5.5/kdecoration.nix
+++ b/pkgs/desktops/kde-5/plasma-5.5/kdecoration.nix
diff --git a/pkgs/desktops/plasma-5.5/kdeplasma-addons.nix b/pkgs/desktops/kde-5/plasma-5.5/kdeplasma-addons.nix
index d6a96a3276d7..d6a96a3276d7 100644
--- a/pkgs/desktops/plasma-5.5/kdeplasma-addons.nix
+++ b/pkgs/desktops/kde-5/plasma-5.5/kdeplasma-addons.nix
diff --git a/pkgs/desktops/plasma-5.5/kgamma5.nix b/pkgs/desktops/kde-5/plasma-5.5/kgamma5.nix
index 965c33e6eef8..965c33e6eef8 100644
--- a/pkgs/desktops/plasma-5.5/kgamma5.nix
+++ b/pkgs/desktops/kde-5/plasma-5.5/kgamma5.nix
diff --git a/pkgs/desktops/plasma-5.5/khelpcenter.nix b/pkgs/desktops/kde-5/plasma-5.5/khelpcenter.nix
index 6ba860b9dfb2..6ba860b9dfb2 100644
--- a/pkgs/desktops/plasma-5.5/khelpcenter.nix
+++ b/pkgs/desktops/kde-5/plasma-5.5/khelpcenter.nix
diff --git a/pkgs/desktops/plasma-5.5/khotkeys.nix b/pkgs/desktops/kde-5/plasma-5.5/khotkeys.nix
index 141320e6b3e6..141320e6b3e6 100644
--- a/pkgs/desktops/plasma-5.5/khotkeys.nix
+++ b/pkgs/desktops/kde-5/plasma-5.5/khotkeys.nix
diff --git a/pkgs/desktops/plasma-5.5/kinfocenter.nix b/pkgs/desktops/kde-5/plasma-5.5/kinfocenter.nix
index ed717790cd0d..ed717790cd0d 100644
--- a/pkgs/desktops/plasma-5.5/kinfocenter.nix
+++ b/pkgs/desktops/kde-5/plasma-5.5/kinfocenter.nix
diff --git a/pkgs/desktops/plasma-5.5/kmenuedit.nix b/pkgs/desktops/kde-5/plasma-5.5/kmenuedit.nix
index 3834ca1328f8..3834ca1328f8 100644
--- a/pkgs/desktops/plasma-5.5/kmenuedit.nix
+++ b/pkgs/desktops/kde-5/plasma-5.5/kmenuedit.nix
diff --git a/pkgs/desktops/plasma-5.5/kscreen.nix b/pkgs/desktops/kde-5/plasma-5.5/kscreen.nix
index 2cfd0df2e1d3..2cfd0df2e1d3 100644
--- a/pkgs/desktops/plasma-5.5/kscreen.nix
+++ b/pkgs/desktops/kde-5/plasma-5.5/kscreen.nix
diff --git a/pkgs/desktops/plasma-5.5/kscreenlocker.nix b/pkgs/desktops/kde-5/plasma-5.5/kscreenlocker.nix
index 562797b546e9..562797b546e9 100644
--- a/pkgs/desktops/plasma-5.5/kscreenlocker.nix
+++ b/pkgs/desktops/kde-5/plasma-5.5/kscreenlocker.nix
diff --git a/pkgs/desktops/plasma-5.5/ksshaskpass.nix b/pkgs/desktops/kde-5/plasma-5.5/ksshaskpass.nix
index f274512e027a..f274512e027a 100644
--- a/pkgs/desktops/plasma-5.5/ksshaskpass.nix
+++ b/pkgs/desktops/kde-5/plasma-5.5/ksshaskpass.nix
diff --git a/pkgs/desktops/plasma-5.5/ksysguard.nix b/pkgs/desktops/kde-5/plasma-5.5/ksysguard.nix
index d47f9215a41a..d47f9215a41a 100644
--- a/pkgs/desktops/plasma-5.5/ksysguard.nix
+++ b/pkgs/desktops/kde-5/plasma-5.5/ksysguard.nix
diff --git a/pkgs/desktops/plasma-5.5/kwayland.nix b/pkgs/desktops/kde-5/plasma-5.5/kwayland.nix
index e4d6eb631f95..e4d6eb631f95 100644
--- a/pkgs/desktops/plasma-5.5/kwayland.nix
+++ b/pkgs/desktops/kde-5/plasma-5.5/kwayland.nix
diff --git a/pkgs/desktops/plasma-5.5/kwin/0001-qdiriterator-follow-symlinks.patch b/pkgs/desktops/kde-5/plasma-5.5/kwin/0001-qdiriterator-follow-symlinks.patch
index 797a32fc5f83..797a32fc5f83 100644
--- a/pkgs/desktops/plasma-5.5/kwin/0001-qdiriterator-follow-symlinks.patch
+++ b/pkgs/desktops/kde-5/plasma-5.5/kwin/0001-qdiriterator-follow-symlinks.patch
diff --git a/pkgs/desktops/plasma-5.5/kwin/default.nix b/pkgs/desktops/kde-5/plasma-5.5/kwin/default.nix
index 2e86068b486f..2e86068b486f 100644
--- a/pkgs/desktops/plasma-5.5/kwin/default.nix
+++ b/pkgs/desktops/kde-5/plasma-5.5/kwin/default.nix
diff --git a/pkgs/desktops/plasma-5.5/kwrited.nix b/pkgs/desktops/kde-5/plasma-5.5/kwrited.nix
index a6ed9d9bb287..a6ed9d9bb287 100644
--- a/pkgs/desktops/plasma-5.5/kwrited.nix
+++ b/pkgs/desktops/kde-5/plasma-5.5/kwrited.nix
diff --git a/pkgs/desktops/plasma-5.5/libkscreen/default.nix b/pkgs/desktops/kde-5/plasma-5.5/libkscreen/default.nix
index 9fccbd6834c3..9fccbd6834c3 100644
--- a/pkgs/desktops/plasma-5.5/libkscreen/default.nix
+++ b/pkgs/desktops/kde-5/plasma-5.5/libkscreen/default.nix
diff --git a/pkgs/desktops/plasma-5.5/libksysguard/0001-qdiriterator-follow-symlinks.patch b/pkgs/desktops/kde-5/plasma-5.5/libksysguard/0001-qdiriterator-follow-symlinks.patch
index fbbb11ae7556..fbbb11ae7556 100644
--- a/pkgs/desktops/plasma-5.5/libksysguard/0001-qdiriterator-follow-symlinks.patch
+++ b/pkgs/desktops/kde-5/plasma-5.5/libksysguard/0001-qdiriterator-follow-symlinks.patch
diff --git a/pkgs/desktops/plasma-5.5/libksysguard/default.nix b/pkgs/desktops/kde-5/plasma-5.5/libksysguard/default.nix
index 402b3ce3beee..402b3ce3beee 100644
--- a/pkgs/desktops/plasma-5.5/libksysguard/default.nix
+++ b/pkgs/desktops/kde-5/plasma-5.5/libksysguard/default.nix
diff --git a/pkgs/desktops/plasma-5.5/milou.nix b/pkgs/desktops/kde-5/plasma-5.5/milou.nix
index 760de2d79ab4..760de2d79ab4 100644
--- a/pkgs/desktops/plasma-5.5/milou.nix
+++ b/pkgs/desktops/kde-5/plasma-5.5/milou.nix
diff --git a/pkgs/desktops/plasma-5.5/oxygen.nix b/pkgs/desktops/kde-5/plasma-5.5/oxygen.nix
index 02918100408a..02918100408a 100644
--- a/pkgs/desktops/plasma-5.5/oxygen.nix
+++ b/pkgs/desktops/kde-5/plasma-5.5/oxygen.nix
diff --git a/pkgs/desktops/plasma-5.5/plasma-desktop/0001-qt-5.5-QML-import-paths.patch b/pkgs/desktops/kde-5/plasma-5.5/plasma-desktop/0001-qt-5.5-QML-import-paths.patch
index ead7452daa84..ead7452daa84 100644
--- a/pkgs/desktops/plasma-5.5/plasma-desktop/0001-qt-5.5-QML-import-paths.patch
+++ b/pkgs/desktops/kde-5/plasma-5.5/plasma-desktop/0001-qt-5.5-QML-import-paths.patch
diff --git a/pkgs/desktops/plasma-5.5/plasma-desktop/0002-hwclock.patch b/pkgs/desktops/kde-5/plasma-5.5/plasma-desktop/0002-hwclock.patch
index 17b01486d928..17b01486d928 100644
--- a/pkgs/desktops/plasma-5.5/plasma-desktop/0002-hwclock.patch
+++ b/pkgs/desktops/kde-5/plasma-5.5/plasma-desktop/0002-hwclock.patch
diff --git a/pkgs/desktops/plasma-5.5/plasma-desktop/0003-tzdir.patch b/pkgs/desktops/kde-5/plasma-5.5/plasma-desktop/0003-tzdir.patch
index aba97b032f8a..aba97b032f8a 100644
--- a/pkgs/desktops/plasma-5.5/plasma-desktop/0003-tzdir.patch
+++ b/pkgs/desktops/kde-5/plasma-5.5/plasma-desktop/0003-tzdir.patch
diff --git a/pkgs/desktops/plasma-5.5/plasma-desktop/default.nix b/pkgs/desktops/kde-5/plasma-5.5/plasma-desktop/default.nix
index a73060ad1af1..a73060ad1af1 100644
--- a/pkgs/desktops/plasma-5.5/plasma-desktop/default.nix
+++ b/pkgs/desktops/kde-5/plasma-5.5/plasma-desktop/default.nix
diff --git a/pkgs/desktops/plasma-5.5/plasma-mediacenter.nix b/pkgs/desktops/kde-5/plasma-5.5/plasma-mediacenter.nix
index afd8a18bbbd6..afd8a18bbbd6 100644
--- a/pkgs/desktops/plasma-5.5/plasma-mediacenter.nix
+++ b/pkgs/desktops/kde-5/plasma-5.5/plasma-mediacenter.nix
diff --git a/pkgs/desktops/plasma-5.5/plasma-nm/0001-mobile-broadband-provider-info-path.patch b/pkgs/desktops/kde-5/plasma-5.5/plasma-nm/0001-mobile-broadband-provider-info-path.patch
index 79b5cfb437e2..79b5cfb437e2 100644
--- a/pkgs/desktops/plasma-5.5/plasma-nm/0001-mobile-broadband-provider-info-path.patch
+++ b/pkgs/desktops/kde-5/plasma-5.5/plasma-nm/0001-mobile-broadband-provider-info-path.patch
diff --git a/pkgs/desktops/plasma-5.5/plasma-nm/default.nix b/pkgs/desktops/kde-5/plasma-5.5/plasma-nm/default.nix
index 249c6d8aac94..249c6d8aac94 100644
--- a/pkgs/desktops/plasma-5.5/plasma-nm/default.nix
+++ b/pkgs/desktops/kde-5/plasma-5.5/plasma-nm/default.nix
diff --git a/pkgs/desktops/plasma-5.5/plasma-pa.nix b/pkgs/desktops/kde-5/plasma-5.5/plasma-pa.nix
index ff56d1199b15..ff56d1199b15 100644
--- a/pkgs/desktops/plasma-5.5/plasma-pa.nix
+++ b/pkgs/desktops/kde-5/plasma-5.5/plasma-pa.nix
diff --git a/pkgs/desktops/plasma-5.5/plasma-workspace-wallpapers.nix b/pkgs/desktops/kde-5/plasma-5.5/plasma-workspace-wallpapers.nix
index bc87abcad153..bc87abcad153 100644
--- a/pkgs/desktops/plasma-5.5/plasma-workspace-wallpapers.nix
+++ b/pkgs/desktops/kde-5/plasma-5.5/plasma-workspace-wallpapers.nix
diff --git a/pkgs/desktops/plasma-5.5/plasma-workspace/default.nix b/pkgs/desktops/kde-5/plasma-5.5/plasma-workspace/default.nix
index 2d9364d446eb..2d9364d446eb 100644
--- a/pkgs/desktops/plasma-5.5/plasma-workspace/default.nix
+++ b/pkgs/desktops/kde-5/plasma-5.5/plasma-workspace/default.nix
diff --git a/pkgs/desktops/plasma-5.5/plasma-workspace/qml-import-path.patch b/pkgs/desktops/kde-5/plasma-5.5/plasma-workspace/qml-import-path.patch
index 1d34001be597..1d34001be597 100644
--- a/pkgs/desktops/plasma-5.5/plasma-workspace/qml-import-path.patch
+++ b/pkgs/desktops/kde-5/plasma-5.5/plasma-workspace/qml-import-path.patch
diff --git a/pkgs/desktops/plasma-5.5/plasma-workspace/series b/pkgs/desktops/kde-5/plasma-5.5/plasma-workspace/series
index 88b54af793e7..88b54af793e7 100644
--- a/pkgs/desktops/plasma-5.5/plasma-workspace/series
+++ b/pkgs/desktops/kde-5/plasma-5.5/plasma-workspace/series
diff --git a/pkgs/desktops/plasma-5.5/plasma-workspace/startkde.patch b/pkgs/desktops/kde-5/plasma-5.5/plasma-workspace/startkde.patch
index 802c92da64d0..802c92da64d0 100644
--- a/pkgs/desktops/plasma-5.5/plasma-workspace/startkde.patch
+++ b/pkgs/desktops/kde-5/plasma-5.5/plasma-workspace/startkde.patch
diff --git a/pkgs/desktops/plasma-5.5/polkit-kde-agent.nix b/pkgs/desktops/kde-5/plasma-5.5/polkit-kde-agent.nix
index 3fc3a441ac34..3fc3a441ac34 100644
--- a/pkgs/desktops/plasma-5.5/polkit-kde-agent.nix
+++ b/pkgs/desktops/kde-5/plasma-5.5/polkit-kde-agent.nix
diff --git a/pkgs/desktops/plasma-5.5/powerdevil.nix b/pkgs/desktops/kde-5/plasma-5.5/powerdevil.nix
index 475e8878206a..475e8878206a 100644
--- a/pkgs/desktops/plasma-5.5/powerdevil.nix
+++ b/pkgs/desktops/kde-5/plasma-5.5/powerdevil.nix
diff --git a/pkgs/desktops/plasma-5.5/setup-hook.sh b/pkgs/desktops/kde-5/plasma-5.5/setup-hook.sh
index a8d9b7e0e36f..a8d9b7e0e36f 100644
--- a/pkgs/desktops/plasma-5.5/setup-hook.sh
+++ b/pkgs/desktops/kde-5/plasma-5.5/setup-hook.sh
diff --git a/pkgs/desktops/plasma-5.5/srcs.nix b/pkgs/desktops/kde-5/plasma-5.5/srcs.nix
index 3b63c864045d..3b63c864045d 100644
--- a/pkgs/desktops/plasma-5.5/srcs.nix
+++ b/pkgs/desktops/kde-5/plasma-5.5/srcs.nix
diff --git a/pkgs/desktops/plasma-5.5/systemsettings.nix b/pkgs/desktops/kde-5/plasma-5.5/systemsettings.nix
index a921e153dbc2..a921e153dbc2 100644
--- a/pkgs/desktops/plasma-5.5/systemsettings.nix
+++ b/pkgs/desktops/kde-5/plasma-5.5/systemsettings.nix