summary refs log tree commit diff
path: root/pkgs/development/libraries/kde-frameworks-5.18
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/libraries/kde-frameworks-5.18')
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/attica.nix11
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/baloo.nix25
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/bluez-qt.nix17
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/breeze-icons.nix10
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/default.nix112
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/extra-cmake-modules/0001-extra-cmake-modules-paths.patch74
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/extra-cmake-modules/default.nix18
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/extra-cmake-modules/setup-hook.sh27
-rwxr-xr-xpkgs/development/libraries/kde-frameworks-5.18/fetchsrcs.sh57
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/frameworkintegration.nix17
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kactivities.nix22
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kapidox.nix12
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/karchive.nix11
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kauth/default.nix16
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kauth/kauth-policy-install.patch13
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kbookmarks.nix25
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kcmutils/0001-qdiriterator-follow-symlinks.patch25
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kcmutils/default.nix17
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kcodecs.nix11
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kcompletion.nix14
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kconfig.nix16
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kconfigwidgets/0001-qdiriterator-follow-symlinks.patch25
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kconfigwidgets/default.nix17
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kcoreaddons.nix16
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kcrash.nix16
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kdbusaddons.nix17
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kdeclarative.nix22
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kded.nix19
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kdelibs4support.nix32
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kdesignerplugin.nix34
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kdesu.nix13
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kdewebkit.nix13
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kdnssd.nix13
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kdoctools/default.nix20
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kdoctools/kdoctools-no-find-docbook-xml.patch12
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kdoctools/setup-hook.sh5
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kemoticons.nix17
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kfilemetadata.nix13
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kglobalaccel.nix23
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kguiaddons.nix13
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/khtml.nix21
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/ki18n.nix17
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kiconthemes/default-theme-breeze.patch13
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kiconthemes/default.nix18
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kiconthemes/series1
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kidletime.nix15
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kimageformats.nix13
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kinit/0001-kinit-libpath.patch42
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kinit/default.nix17
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kio/default.nix33
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kio/samba-search-path.patch28
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kio/series1
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kitemmodels.nix11
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kitemviews.nix11
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kjobwidgets.nix16
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kjs.nix16
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kjsembed.nix17
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kmediaplayer.nix15
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/knewstuff.nix17
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/knotifications.nix21
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/knotifyconfig.nix13
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kpackage/allow-external-paths.patch13
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kpackage/default.nix23
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kpackage/qdiriterator-follow-symlinks.patch26
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kpackage/series2
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kparts.nix17
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kpeople.nix15
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kplotting.nix11
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kpty.nix10
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kross.nix14
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/krunner.nix16
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kservice/0001-qdiriterator-follow-symlinks.patch25
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kservice/0002-no-canonicalize-path.patch25
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kservice/default.nix19
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kservice/setup-hook.sh43
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/ktexteditor/default.nix22
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/ktexteditor/no-qcoreapplication.patch36
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/ktexteditor/series1
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/ktextwidgets.nix16
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kunitconversion.nix10
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kwallet.nix21
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kwidgetsaddons.nix11
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kwindowsystem.nix13
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kxmlgui.nix18
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kxmlrpcclient.nix10
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/modemmanager-qt.nix13
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/networkmanager-qt.nix13
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/oxygen-icons5.nix13
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/plasma-framework/default.nix25
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/solid.nix17
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/sonnet.nix13
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/srcs.nix565
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/threadweaver.nix11
93 files changed, 2333 insertions, 0 deletions
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/attica.nix b/pkgs/development/libraries/kde-frameworks-5.18/attica.nix
new file mode 100644
index 000000000000..98721876c120
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/baloo.nix b/pkgs/development/libraries/kde-frameworks-5.18/baloo.nix
new file mode 100644
index 000000000000..38c41d9271d8
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/bluez-qt.nix b/pkgs/development/libraries/kde-frameworks-5.18/bluez-qt.nix
new file mode 100644
index 000000000000..f981b0516f72
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/breeze-icons.nix b/pkgs/development/libraries/kde-frameworks-5.18/breeze-icons.nix
new file mode 100644
index 000000000000..879262c56a41
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/default.nix b/pkgs/development/libraries/kde-frameworks-5.18/default.nix
new file mode 100644
index 000000000000..f41aebcb59d3
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/default.nix
@@ -0,0 +1,112 @@
+# Maintainer's Notes:
+#
+# How To Update
+#  1. Edit the URL in ./manifest.sh
+#  2. Run ./manifest.sh
+#  3. Fix build errors.
+
+{ 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/development/libraries/kde-frameworks-5.18/extra-cmake-modules/0001-extra-cmake-modules-paths.patch b/pkgs/development/libraries/kde-frameworks-5.18/extra-cmake-modules/0001-extra-cmake-modules-paths.patch
new file mode 100644
index 000000000000..9717716faf5b
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/extra-cmake-modules/default.nix b/pkgs/development/libraries/kde-frameworks-5.18/extra-cmake-modules/default.nix
new file mode 100644
index 000000000000..4e1b1aff3bd1
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/extra-cmake-modules/setup-hook.sh b/pkgs/development/libraries/kde-frameworks-5.18/extra-cmake-modules/setup-hook.sh
new file mode 100644
index 000000000000..a6fa6189240b
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/fetchsrcs.sh b/pkgs/development/libraries/kde-frameworks-5.18/fetchsrcs.sh
new file mode 100755
index 000000000000..84b882a0a075
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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.18/"
+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/development/libraries/kde-frameworks-5.18/frameworkintegration.nix b/pkgs/development/libraries/kde-frameworks-5.18/frameworkintegration.nix
new file mode 100644
index 000000000000..26987c385ad5
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kactivities.nix b/pkgs/development/libraries/kde-frameworks-5.18/kactivities.nix
new file mode 100644
index 000000000000..3225098f4398
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kapidox.nix b/pkgs/development/libraries/kde-frameworks-5.18/kapidox.nix
new file mode 100644
index 000000000000..647be8f052c3
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/karchive.nix b/pkgs/development/libraries/kde-frameworks-5.18/karchive.nix
new file mode 100644
index 000000000000..a8d9a0003c3b
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kauth/default.nix b/pkgs/development/libraries/kde-frameworks-5.18/kauth/default.nix
new file mode 100644
index 000000000000..2b000ff3c041
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kauth/kauth-policy-install.patch b/pkgs/development/libraries/kde-frameworks-5.18/kauth/kauth-policy-install.patch
new file mode 100644
index 000000000000..340155256f28
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kbookmarks.nix b/pkgs/development/libraries/kde-frameworks-5.18/kbookmarks.nix
new file mode 100644
index 000000000000..1a469ab4db6d
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kcmutils/0001-qdiriterator-follow-symlinks.patch b/pkgs/development/libraries/kde-frameworks-5.18/kcmutils/0001-qdiriterator-follow-symlinks.patch
new file mode 100644
index 000000000000..0d861fa95012
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kcmutils/default.nix b/pkgs/development/libraries/kde-frameworks-5.18/kcmutils/default.nix
new file mode 100644
index 000000000000..dbbb783ac615
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kcodecs.nix b/pkgs/development/libraries/kde-frameworks-5.18/kcodecs.nix
new file mode 100644
index 000000000000..53a69a69b69c
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kcompletion.nix b/pkgs/development/libraries/kde-frameworks-5.18/kcompletion.nix
new file mode 100644
index 000000000000..e393774f16a5
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kconfig.nix b/pkgs/development/libraries/kde-frameworks-5.18/kconfig.nix
new file mode 100644
index 000000000000..e132afe59886
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kconfigwidgets/0001-qdiriterator-follow-symlinks.patch b/pkgs/development/libraries/kde-frameworks-5.18/kconfigwidgets/0001-qdiriterator-follow-symlinks.patch
new file mode 100644
index 000000000000..7a6c0ee90534
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kconfigwidgets/default.nix b/pkgs/development/libraries/kde-frameworks-5.18/kconfigwidgets/default.nix
new file mode 100644
index 000000000000..0e14d06edd36
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kcoreaddons.nix b/pkgs/development/libraries/kde-frameworks-5.18/kcoreaddons.nix
new file mode 100644
index 000000000000..f3a1db7bd484
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kcrash.nix b/pkgs/development/libraries/kde-frameworks-5.18/kcrash.nix
new file mode 100644
index 000000000000..bbab78ccb409
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kdbusaddons.nix b/pkgs/development/libraries/kde-frameworks-5.18/kdbusaddons.nix
new file mode 100644
index 000000000000..d2ceab31d14b
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kdeclarative.nix b/pkgs/development/libraries/kde-frameworks-5.18/kdeclarative.nix
new file mode 100644
index 000000000000..74d107466cfc
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kded.nix b/pkgs/development/libraries/kde-frameworks-5.18/kded.nix
new file mode 100644
index 000000000000..47ae2d68c68e
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kdelibs4support.nix b/pkgs/development/libraries/kde-frameworks-5.18/kdelibs4support.nix
new file mode 100644
index 000000000000..e61c4bb86e7c
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kdesignerplugin.nix b/pkgs/development/libraries/kde-frameworks-5.18/kdesignerplugin.nix
new file mode 100644
index 000000000000..cbc114ccca03
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kdesu.nix b/pkgs/development/libraries/kde-frameworks-5.18/kdesu.nix
new file mode 100644
index 000000000000..364fbd6a720b
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kdewebkit.nix b/pkgs/development/libraries/kde-frameworks-5.18/kdewebkit.nix
new file mode 100644
index 000000000000..d361313d1d49
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kdnssd.nix b/pkgs/development/libraries/kde-frameworks-5.18/kdnssd.nix
new file mode 100644
index 000000000000..f00432b0c9ce
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kdoctools/default.nix b/pkgs/development/libraries/kde-frameworks-5.18/kdoctools/default.nix
new file mode 100644
index 000000000000..138c3fc33b94
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kdoctools/kdoctools-no-find-docbook-xml.patch b/pkgs/development/libraries/kde-frameworks-5.18/kdoctools/kdoctools-no-find-docbook-xml.patch
new file mode 100644
index 000000000000..4e3a33efab32
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kdoctools/setup-hook.sh b/pkgs/development/libraries/kde-frameworks-5.18/kdoctools/setup-hook.sh
new file mode 100644
index 000000000000..5cfffbd622d1
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/kdoctools/setup-hook.sh
@@ -0,0 +1,5 @@
+addXdgData() {
+    addToSearchPath XDG_DATA_DIRS "$1/share"
+}
+
+envHooks+=(addXdgData)
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kemoticons.nix b/pkgs/development/libraries/kde-frameworks-5.18/kemoticons.nix
new file mode 100644
index 000000000000..d165f84e3a2d
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kfilemetadata.nix b/pkgs/development/libraries/kde-frameworks-5.18/kfilemetadata.nix
new file mode 100644
index 000000000000..be99c58d5504
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kglobalaccel.nix b/pkgs/development/libraries/kde-frameworks-5.18/kglobalaccel.nix
new file mode 100644
index 000000000000..c535b3590a38
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kguiaddons.nix b/pkgs/development/libraries/kde-frameworks-5.18/kguiaddons.nix
new file mode 100644
index 000000000000..bc4e9ab11843
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/khtml.nix b/pkgs/development/libraries/kde-frameworks-5.18/khtml.nix
new file mode 100644
index 000000000000..d40df466ebbd
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/ki18n.nix b/pkgs/development/libraries/kde-frameworks-5.18/ki18n.nix
new file mode 100644
index 000000000000..268006512e7c
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kiconthemes/default-theme-breeze.patch b/pkgs/development/libraries/kde-frameworks-5.18/kiconthemes/default-theme-breeze.patch
new file mode 100644
index 000000000000..5b3b15d5d5b5
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kiconthemes/default.nix b/pkgs/development/libraries/kde-frameworks-5.18/kiconthemes/default.nix
new file mode 100644
index 000000000000..b78b25582beb
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kiconthemes/series b/pkgs/development/libraries/kde-frameworks-5.18/kiconthemes/series
new file mode 100644
index 000000000000..ab5cc8a3edb2
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/kiconthemes/series
@@ -0,0 +1 @@
+default-theme-breeze.patch
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kidletime.nix b/pkgs/development/libraries/kde-frameworks-5.18/kidletime.nix
new file mode 100644
index 000000000000..fc0865600239
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kimageformats.nix b/pkgs/development/libraries/kde-frameworks-5.18/kimageformats.nix
new file mode 100644
index 000000000000..49d66bbcc2c6
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kinit/0001-kinit-libpath.patch b/pkgs/development/libraries/kde-frameworks-5.18/kinit/0001-kinit-libpath.patch
new file mode 100644
index 000000000000..9c76079a382a
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kinit/default.nix b/pkgs/development/libraries/kde-frameworks-5.18/kinit/default.nix
new file mode 100644
index 000000000000..5f644d7c424e
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kio/default.nix b/pkgs/development/libraries/kde-frameworks-5.18/kio/default.nix
new file mode 100644
index 000000000000..a2131ff33850
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kio/samba-search-path.patch b/pkgs/development/libraries/kde-frameworks-5.18/kio/samba-search-path.patch
new file mode 100644
index 000000000000..c9ad46b41bb7
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kio/series b/pkgs/development/libraries/kde-frameworks-5.18/kio/series
new file mode 100644
index 000000000000..77ca15450047
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/kio/series
@@ -0,0 +1 @@
+samba-search-path.patch
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kitemmodels.nix b/pkgs/development/libraries/kde-frameworks-5.18/kitemmodels.nix
new file mode 100644
index 000000000000..a9024d771cc3
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kitemviews.nix b/pkgs/development/libraries/kde-frameworks-5.18/kitemviews.nix
new file mode 100644
index 000000000000..931019ce495d
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kjobwidgets.nix b/pkgs/development/libraries/kde-frameworks-5.18/kjobwidgets.nix
new file mode 100644
index 000000000000..746edf12eea0
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kjs.nix b/pkgs/development/libraries/kde-frameworks-5.18/kjs.nix
new file mode 100644
index 000000000000..768720f178c8
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kjsembed.nix b/pkgs/development/libraries/kde-frameworks-5.18/kjsembed.nix
new file mode 100644
index 000000000000..22eef2d47bde
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kmediaplayer.nix b/pkgs/development/libraries/kde-frameworks-5.18/kmediaplayer.nix
new file mode 100644
index 000000000000..460458b22323
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/knewstuff.nix b/pkgs/development/libraries/kde-frameworks-5.18/knewstuff.nix
new file mode 100644
index 000000000000..5bcd6f301462
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/knotifications.nix b/pkgs/development/libraries/kde-frameworks-5.18/knotifications.nix
new file mode 100644
index 000000000000..7e301dd0f268
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/knotifyconfig.nix b/pkgs/development/libraries/kde-frameworks-5.18/knotifyconfig.nix
new file mode 100644
index 000000000000..dd99d2d4f1e5
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kpackage/allow-external-paths.patch b/pkgs/development/libraries/kde-frameworks-5.18/kpackage/allow-external-paths.patch
new file mode 100644
index 000000000000..e9d744448148
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kpackage/default.nix b/pkgs/development/libraries/kde-frameworks-5.18/kpackage/default.nix
new file mode 100644
index 000000000000..aea1b0d31a0d
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kpackage/qdiriterator-follow-symlinks.patch b/pkgs/development/libraries/kde-frameworks-5.18/kpackage/qdiriterator-follow-symlinks.patch
new file mode 100644
index 000000000000..ddbf17d00064
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kpackage/series b/pkgs/development/libraries/kde-frameworks-5.18/kpackage/series
new file mode 100644
index 000000000000..9b7f076efc70
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/kpackage/series
@@ -0,0 +1,2 @@
+allow-external-paths.patch
+qdiriterator-follow-symlinks.patch
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kparts.nix b/pkgs/development/libraries/kde-frameworks-5.18/kparts.nix
new file mode 100644
index 000000000000..1c3e0b2cbc51
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kpeople.nix b/pkgs/development/libraries/kde-frameworks-5.18/kpeople.nix
new file mode 100644
index 000000000000..4c3877e7efd2
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kplotting.nix b/pkgs/development/libraries/kde-frameworks-5.18/kplotting.nix
new file mode 100644
index 000000000000..c16f51b5ac3c
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kpty.nix b/pkgs/development/libraries/kde-frameworks-5.18/kpty.nix
new file mode 100644
index 000000000000..2e34e6f674ce
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kross.nix b/pkgs/development/libraries/kde-frameworks-5.18/kross.nix
new file mode 100644
index 000000000000..7c6f079feaa7
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/krunner.nix b/pkgs/development/libraries/kde-frameworks-5.18/krunner.nix
new file mode 100644
index 000000000000..12d2b54d0eb3
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kservice/0001-qdiriterator-follow-symlinks.patch b/pkgs/development/libraries/kde-frameworks-5.18/kservice/0001-qdiriterator-follow-symlinks.patch
new file mode 100644
index 000000000000..3d8397d8ee2d
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kservice/0002-no-canonicalize-path.patch b/pkgs/development/libraries/kde-frameworks-5.18/kservice/0002-no-canonicalize-path.patch
new file mode 100644
index 000000000000..685c68526119
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kservice/default.nix b/pkgs/development/libraries/kde-frameworks-5.18/kservice/default.nix
new file mode 100644
index 000000000000..03b7c7c2f51d
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kservice/setup-hook.sh b/pkgs/development/libraries/kde-frameworks-5.18/kservice/setup-hook.sh
new file mode 100644
index 000000000000..c28e862ff8ae
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/ktexteditor/default.nix b/pkgs/development/libraries/kde-frameworks-5.18/ktexteditor/default.nix
new file mode 100644
index 000000000000..b8df6a5f4c0d
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/ktexteditor/no-qcoreapplication.patch b/pkgs/development/libraries/kde-frameworks-5.18/ktexteditor/no-qcoreapplication.patch
new file mode 100644
index 000000000000..19ab1e1e5513
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/ktexteditor/series b/pkgs/development/libraries/kde-frameworks-5.18/ktexteditor/series
new file mode 100644
index 000000000000..46cd23829a2f
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/ktexteditor/series
@@ -0,0 +1 @@
+no-qcoreapplication.patch
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/ktextwidgets.nix b/pkgs/development/libraries/kde-frameworks-5.18/ktextwidgets.nix
new file mode 100644
index 000000000000..e332d4ff9a83
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kunitconversion.nix b/pkgs/development/libraries/kde-frameworks-5.18/kunitconversion.nix
new file mode 100644
index 000000000000..3cf0f847d83d
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kwallet.nix b/pkgs/development/libraries/kde-frameworks-5.18/kwallet.nix
new file mode 100644
index 000000000000..7c4177e009d2
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/kwallet.nix
@@ -0,0 +1,21 @@
+{ kdeFramework, lib, extra-cmake-modules, kconfig, kcoreaddons
+, kdbusaddons, kdoctools, ki18n, kiconthemes, knotifications
+, kservice, kwidgetsaddons, kwindowsystem, libgcrypt, makeQtWrapper
+}:
+
+kdeFramework {
+  name = "kwallet";
+  nativeBuildInputs = [ extra-cmake-modules kdoctools makeQtWrapper ];
+  buildInputs = [
+    kconfig 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/development/libraries/kde-frameworks-5.18/kwidgetsaddons.nix b/pkgs/development/libraries/kde-frameworks-5.18/kwidgetsaddons.nix
new file mode 100644
index 000000000000..d95f44d3fecf
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kwindowsystem.nix b/pkgs/development/libraries/kde-frameworks-5.18/kwindowsystem.nix
new file mode 100644
index 000000000000..09ab1f2200de
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kxmlgui.nix b/pkgs/development/libraries/kde-frameworks-5.18/kxmlgui.nix
new file mode 100644
index 000000000000..f081d5f9170e
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/kxmlrpcclient.nix b/pkgs/development/libraries/kde-frameworks-5.18/kxmlrpcclient.nix
new file mode 100644
index 000000000000..20a300b68bc8
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/modemmanager-qt.nix b/pkgs/development/libraries/kde-frameworks-5.18/modemmanager-qt.nix
new file mode 100644
index 000000000000..7d7f769d6a9b
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/networkmanager-qt.nix b/pkgs/development/libraries/kde-frameworks-5.18/networkmanager-qt.nix
new file mode 100644
index 000000000000..333378bd1431
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/oxygen-icons5.nix b/pkgs/development/libraries/kde-frameworks-5.18/oxygen-icons5.nix
new file mode 100644
index 000000000000..ee350f8e1536
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/plasma-framework/default.nix b/pkgs/development/libraries/kde-frameworks-5.18/plasma-framework/default.nix
new file mode 100644
index 000000000000..d8846f777231
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/solid.nix b/pkgs/development/libraries/kde-frameworks-5.18/solid.nix
new file mode 100644
index 000000000000..afd125e3c597
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/sonnet.nix b/pkgs/development/libraries/kde-frameworks-5.18/sonnet.nix
new file mode 100644
index 000000000000..943fe04a1c92
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/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/development/libraries/kde-frameworks-5.18/srcs.nix b/pkgs/development/libraries/kde-frameworks-5.18/srcs.nix
new file mode 100644
index 000000000000..12c5c30a2471
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/srcs.nix
@@ -0,0 +1,565 @@
+# DO NOT EDIT! This file is generated automatically by fetchsrcs.sh
+{ fetchurl, mirror }:
+
+{
+  attica = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/attica-5.18.0.tar.xz";
+      sha256 = "1n6pkaak9xf7nyi0b1wr8fm5qkv7mgpsws9igd7g2xqvvqzyp5xw";
+      name = "attica-5.18.0.tar.xz";
+    };
+  };
+  baloo = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/baloo-5.18.0.tar.xz";
+      sha256 = "0sdnd6v01rcgq7v2jny0655jrghfamwyj0win7xfhx1622dfi8l8";
+      name = "baloo-5.18.0.tar.xz";
+    };
+  };
+  bluez-qt = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/bluez-qt-5.18.0.tar.xz";
+      sha256 = "17vx77w4fwdi7y394s2pqph2vmfs8n0107rmz4q7aa62q9iwdrbr";
+      name = "bluez-qt-5.18.0.tar.xz";
+    };
+  };
+  breeze-icons = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/breeze-icons-5.18.0.tar.xz";
+      sha256 = "0a4iqr5zrb56aln5hdsk5zrl23w8w8y5nmrxb093h205r36hfw4z";
+      name = "breeze-icons-5.18.0.tar.xz";
+    };
+  };
+  extra-cmake-modules = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/extra-cmake-modules-5.18.0.tar.xz";
+      sha256 = "1kp0pysa154cbp1ysgyqk03w8s335v3wmfrx4pshyfpg1s24k83y";
+      name = "extra-cmake-modules-5.18.0.tar.xz";
+    };
+  };
+  frameworkintegration = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/frameworkintegration-5.18.0.tar.xz";
+      sha256 = "06hw885mk0i2173lfdqz3hyp1fx2bndpj00hk32s3i2ggnn2y1rv";
+      name = "frameworkintegration-5.18.0.tar.xz";
+    };
+  };
+  kactivities = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/kactivities-5.18.0.tar.xz";
+      sha256 = "0nqa63ds7vj87zg2gz1mx42c30l3ypfk4ghhgxwziab315bpcpmr";
+      name = "kactivities-5.18.0.tar.xz";
+    };
+  };
+  kapidox = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/kapidox-5.18.0.tar.xz";
+      sha256 = "1hackjnpxijqqpn9cvnwcn9yc0jni21qgjccj74025ihdgigp70s";
+      name = "kapidox-5.18.0.tar.xz";
+    };
+  };
+  karchive = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/karchive-5.18.0.tar.xz";
+      sha256 = "0ph59w8y49b3znaj9c1qk0zwkg0pmjjcyr4jlv5w56mh0zkq37h5";
+      name = "karchive-5.18.0.tar.xz";
+    };
+  };
+  kauth = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/kauth-5.18.0.tar.xz";
+      sha256 = "14kvy7cbw31sc48f0aldpi52wxhwd69prwadvjhqwy912s8kr04n";
+      name = "kauth-5.18.0.tar.xz";
+    };
+  };
+  kbookmarks = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/kbookmarks-5.18.0.tar.xz";
+      sha256 = "0qi2f612s756qh5ldibscfhcq8q802vgr2497fm9xl95kfqmcg1n";
+      name = "kbookmarks-5.18.0.tar.xz";
+    };
+  };
+  kcmutils = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/kcmutils-5.18.0.tar.xz";
+      sha256 = "1m53308icq1x1877afcxlhygl56dsl50fiwmfjf0g5pfmnql3qfp";
+      name = "kcmutils-5.18.0.tar.xz";
+    };
+  };
+  kcodecs = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/kcodecs-5.18.0.tar.xz";
+      sha256 = "1injdpz7kdf2j6is2w3v3xgd9ahgls0j632q03q7qa48xp4wx64h";
+      name = "kcodecs-5.18.0.tar.xz";
+    };
+  };
+  kcompletion = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/kcompletion-5.18.0.tar.xz";
+      sha256 = "0gkj4gplm7qwx4nqhhph5h3jp4h8b22ssmw0vvv6bpsnq7idk76b";
+      name = "kcompletion-5.18.0.tar.xz";
+    };
+  };
+  kconfig = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/kconfig-5.18.0.tar.xz";
+      sha256 = "1s7fvhflsvv8zwb9cr50m3hxh0d4z5grh0nkri5ngzqb123wi91n";
+      name = "kconfig-5.18.0.tar.xz";
+    };
+  };
+  kconfigwidgets = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/kconfigwidgets-5.18.0.tar.xz";
+      sha256 = "08i12040prs2nxybxbbf3w0n91c9p0c64j8fz18axi4yszrmv8im";
+      name = "kconfigwidgets-5.18.0.tar.xz";
+    };
+  };
+  kcoreaddons = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/kcoreaddons-5.18.0.tar.xz";
+      sha256 = "05y8pan8hdn6qj2si9v9igjrx00l7bqzhdm2qq9vbjrv5xj8axzf";
+      name = "kcoreaddons-5.18.0.tar.xz";
+    };
+  };
+  kcrash = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/kcrash-5.18.0.tar.xz";
+      sha256 = "0rk27zr0mb4jlicm1s175x139avzi0q4jk3mlczfg4rkrxzgbx5w";
+      name = "kcrash-5.18.0.tar.xz";
+    };
+  };
+  kdbusaddons = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/kdbusaddons-5.18.0.tar.xz";
+      sha256 = "0l9ww3zaz1x6bk9axmm6zlj1dcn0gr0z61v9lw5y31rypxclhza8";
+      name = "kdbusaddons-5.18.0.tar.xz";
+    };
+  };
+  kdeclarative = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/kdeclarative-5.18.0.tar.xz";
+      sha256 = "0mpvwn26msg3sc9z1r1vnw32rkl842jxpvpx2vg8kwcd9snwx9a6";
+      name = "kdeclarative-5.18.0.tar.xz";
+    };
+  };
+  kded = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/kded-5.18.0.tar.xz";
+      sha256 = "0y5sn7yxalylcwcz2j4h349lll2vkf44bw3n6w2cbqqf5wnr2za5";
+      name = "kded-5.18.0.tar.xz";
+    };
+  };
+  kdelibs4support = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/portingAids/kdelibs4support-5.18.0.tar.xz";
+      sha256 = "0flhhjnnm2wh6869q8gxk45wlpq0679xlklzqlxvqx7a4kxdl8d8";
+      name = "kdelibs4support-5.18.0.tar.xz";
+    };
+  };
+  kdesignerplugin = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/kdesignerplugin-5.18.0.tar.xz";
+      sha256 = "163lfx8vxxdhxbn090k5r4m9vy940kfwvsyjsi8v0pp9ww49g13n";
+      name = "kdesignerplugin-5.18.0.tar.xz";
+    };
+  };
+  kdesu = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/kdesu-5.18.0.tar.xz";
+      sha256 = "0dqjmvi440p4n62w9y3qw4n7fcivyg3d54fv9nrf1sx87vdw7r83";
+      name = "kdesu-5.18.0.tar.xz";
+    };
+  };
+  kdewebkit = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/kdewebkit-5.18.0.tar.xz";
+      sha256 = "1ahr62xfk085kb9p2axx04gf7bpnr0vv2d4kpc4s0xrj3xi0alnl";
+      name = "kdewebkit-5.18.0.tar.xz";
+    };
+  };
+  kdnssd = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/kdnssd-5.18.0.tar.xz";
+      sha256 = "12vplqfsc3zks1grmb5i4hdww0g51lv54nb1drpj42mzyi1q1v1l";
+      name = "kdnssd-5.18.0.tar.xz";
+    };
+  };
+  kdoctools = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/kdoctools-5.18.0.tar.xz";
+      sha256 = "10h74lb4597fs1h88x60ykpkz47pgfa4k04h4i5l0qb5vb1jlw7d";
+      name = "kdoctools-5.18.0.tar.xz";
+    };
+  };
+  kemoticons = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/kemoticons-5.18.0.tar.xz";
+      sha256 = "0lba6rzmij20ndkq0vw9zkxbjq6g98may3ypyj0kc82d3sw9hkhs";
+      name = "kemoticons-5.18.0.tar.xz";
+    };
+  };
+  kfilemetadata = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/kfilemetadata-5.18.0.tar.xz";
+      sha256 = "19b8nh5x8c0w516afh8ln72vi5dk91wl8bcsqd84h3s6gw55rsm4";
+      name = "kfilemetadata-5.18.0.tar.xz";
+    };
+  };
+  kglobalaccel = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/kglobalaccel-5.18.0.tar.xz";
+      sha256 = "1v22rh8c103zl63cgg4gx430qw29f9yn9k5219pcw5n57jx0n5c1";
+      name = "kglobalaccel-5.18.0.tar.xz";
+    };
+  };
+  kguiaddons = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/kguiaddons-5.18.0.tar.xz";
+      sha256 = "153mjbiwg4p65c2msj8j3pycn5gys39ahg9ik7jqg7w4cjcl2jxz";
+      name = "kguiaddons-5.18.0.tar.xz";
+    };
+  };
+  khtml = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/portingAids/khtml-5.18.0.tar.xz";
+      sha256 = "0kgin1bhbx95kypsg1k318qjxz3258x3a6kkdbky3cvfmq8r5ka5";
+      name = "khtml-5.18.0.tar.xz";
+    };
+  };
+  ki18n = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/ki18n-5.18.0.tar.xz";
+      sha256 = "14vlq49a0bp1vpjb2zxkgqsd5yjmb0azri2iq9sgxxx1v6gyy9h9";
+      name = "ki18n-5.18.0.tar.xz";
+    };
+  };
+  kiconthemes = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/kiconthemes-5.18.0.tar.xz";
+      sha256 = "10pj2q28y57ng26xg2211v9vy91hqqmcyxh90q1qj89clykimwid";
+      name = "kiconthemes-5.18.0.tar.xz";
+    };
+  };
+  kidletime = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/kidletime-5.18.0.tar.xz";
+      sha256 = "0726nq508rpzjxvfp354jd8n14m49grv6nfv09q2zyw02cf6n9bi";
+      name = "kidletime-5.18.0.tar.xz";
+    };
+  };
+  kimageformats = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/kimageformats-5.18.0.tar.xz";
+      sha256 = "1y6zc04sx4sqyfavr8nf05a1p4kyb8ic335iy5s869r6zrvljpnc";
+      name = "kimageformats-5.18.0.tar.xz";
+    };
+  };
+  kinit = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/kinit-5.18.0.tar.xz";
+      sha256 = "142xm7yglssw771340bs0lk1xgsr53218zh87v6n9hchrd34zg08";
+      name = "kinit-5.18.0.tar.xz";
+    };
+  };
+  kio = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/kio-5.18.0.tar.xz";
+      sha256 = "020gvxs5xp9v4pra814200nv79c9b9j59skbrxq9cazhnywnnlns";
+      name = "kio-5.18.0.tar.xz";
+    };
+  };
+  kitemmodels = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/kitemmodels-5.18.0.tar.xz";
+      sha256 = "0r5r7ia1lwqll6bz92k4qgj737hsg6pfhxmycr6g88b9fiab1qw4";
+      name = "kitemmodels-5.18.0.tar.xz";
+    };
+  };
+  kitemviews = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/kitemviews-5.18.0.tar.xz";
+      sha256 = "10pbh0fpzrh0ijbadjx81690p9iw34rs2waks99fc0jy3hamny3b";
+      name = "kitemviews-5.18.0.tar.xz";
+    };
+  };
+  kjobwidgets = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/kjobwidgets-5.18.0.tar.xz";
+      sha256 = "0gxvh9wxnfkrxm9zc7yx579vlxs3xmihfyqs92fpkjhy2shfd2sg";
+      name = "kjobwidgets-5.18.0.tar.xz";
+    };
+  };
+  kjs = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/portingAids/kjs-5.18.0.tar.xz";
+      sha256 = "0z89l2yhs3vld1qbd6v506lksmxvwrzgdq77aghy3mbkfgz3jd62";
+      name = "kjs-5.18.0.tar.xz";
+    };
+  };
+  kjsembed = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/portingAids/kjsembed-5.18.0.tar.xz";
+      sha256 = "0mpq7aywspm6l13afrr2dis8ygyld5il21g90ij0fc1jwp95zk3d";
+      name = "kjsembed-5.18.0.tar.xz";
+    };
+  };
+  kmediaplayer = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/portingAids/kmediaplayer-5.18.0.tar.xz";
+      sha256 = "07m3agz73yzmfn8ykg0f6a2c39rkzchzqc1iam2zfydqxyvh4bxb";
+      name = "kmediaplayer-5.18.0.tar.xz";
+    };
+  };
+  knewstuff = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/knewstuff-5.18.0.tar.xz";
+      sha256 = "0mda1n0py6nm9wp89z5hkhhk9ah5sjrkzl1dshd4lq77f7p7i1g4";
+      name = "knewstuff-5.18.0.tar.xz";
+    };
+  };
+  knotifications = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/knotifications-5.18.0.tar.xz";
+      sha256 = "1npir2v4irhm6xmzf60aj5388slq6fw7jbcwjjscldrwk2ca06hz";
+      name = "knotifications-5.18.0.tar.xz";
+    };
+  };
+  knotifyconfig = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/knotifyconfig-5.18.0.tar.xz";
+      sha256 = "0q2735m2m1wrnp7g4ycnbjy7qgpjxc5fvx9zrwnd0jl5rmdw4sbb";
+      name = "knotifyconfig-5.18.0.tar.xz";
+    };
+  };
+  kpackage = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/kpackage-5.18.0.tar.xz";
+      sha256 = "14q2ssf3g7ljakzpq7q9q2zbm8jqk01ybjx4s16qpw9gakcrbli9";
+      name = "kpackage-5.18.0.tar.xz";
+    };
+  };
+  kparts = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/kparts-5.18.0.tar.xz";
+      sha256 = "1q4xd4dy40mh4a8vgpvdamy1242isjy9ma94cf95qqc6qgjnqxhy";
+      name = "kparts-5.18.0.tar.xz";
+    };
+  };
+  kpeople = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/kpeople-5.18.0.tar.xz";
+      sha256 = "0d0mp2qz3f1bki6rfw8x6zc0rmv4n43mi06k3vh30qpiaj7crl5k";
+      name = "kpeople-5.18.0.tar.xz";
+    };
+  };
+  kplotting = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/kplotting-5.18.0.tar.xz";
+      sha256 = "1jiqx9gdv69frfh8vanphp6lzc3vxn2q1lhibi7v03qkc2qaw5cc";
+      name = "kplotting-5.18.0.tar.xz";
+    };
+  };
+  kpty = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/kpty-5.18.0.tar.xz";
+      sha256 = "1baz1xs22r4qli74sqwpcjmxnfrd0iqyyzg1fmljr8fvs4pdy1x1";
+      name = "kpty-5.18.0.tar.xz";
+    };
+  };
+  kross = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/portingAids/kross-5.18.0.tar.xz";
+      sha256 = "1ky13yqxhkghxqd21jrnrpjfnrkgspv0p3dfij994rkaqq8rm1r6";
+      name = "kross-5.18.0.tar.xz";
+    };
+  };
+  krunner = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/portingAids/krunner-5.18.0.tar.xz";
+      sha256 = "14c51kiwr49dbdxg8y6ivmmfr9h6p8jjd32k35pi4gpi2vlh29pf";
+      name = "krunner-5.18.0.tar.xz";
+    };
+  };
+  kservice = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/kservice-5.18.0.tar.xz";
+      sha256 = "0pbs1n2i7vjgjh7j87ps8gkzmj5igw1aib1aq089m4hfrl8pbrq8";
+      name = "kservice-5.18.0.tar.xz";
+    };
+  };
+  ktexteditor = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/ktexteditor-5.18.0.tar.xz";
+      sha256 = "0fx82s5y1wya3v36qq3agmfrnff9a7v94fhifvfiwmhk2ddwwg3v";
+      name = "ktexteditor-5.18.0.tar.xz";
+    };
+  };
+  ktextwidgets = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/ktextwidgets-5.18.0.tar.xz";
+      sha256 = "1wflqfmgqa3lh3apf22sami6caclvyv7li6qiskwfkzkb0a6x373";
+      name = "ktextwidgets-5.18.0.tar.xz";
+    };
+  };
+  kunitconversion = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/kunitconversion-5.18.0.tar.xz";
+      sha256 = "0gpmndyly977dzfyfhrd0q434c0qr1sinh75dwf9clmqw576jl6i";
+      name = "kunitconversion-5.18.0.tar.xz";
+    };
+  };
+  kwallet = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/kwallet-5.18.0.tar.xz";
+      sha256 = "0w69y0xdvvrvcydv160z7s03y1n5vxjj3sfk530zc6bjszplvxis";
+      name = "kwallet-5.18.0.tar.xz";
+    };
+  };
+  kwidgetsaddons = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/kwidgetsaddons-5.18.0.tar.xz";
+      sha256 = "06fqz7cwczp5sahg54zi46rf9jf2si88w5yizp61z8yv57kvpvk1";
+      name = "kwidgetsaddons-5.18.0.tar.xz";
+    };
+  };
+  kwindowsystem = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/kwindowsystem-5.18.0.tar.xz";
+      sha256 = "01hzd4r8y4hdpynnh32qf418hxzbd67fkdq6a4vabl384aipnmk7";
+      name = "kwindowsystem-5.18.0.tar.xz";
+    };
+  };
+  kxmlgui = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/kxmlgui-5.18.0.tar.xz";
+      sha256 = "0yimy0r73sv8z4wq0mkdx24icjrzmy5bciblwlnzagd61f8j8qri";
+      name = "kxmlgui-5.18.0.tar.xz";
+    };
+  };
+  kxmlrpcclient = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/kxmlrpcclient-5.18.0.tar.xz";
+      sha256 = "0h88pc3h5z3q58b7qxdn69klwr0p9ffbirzncyvxjrhr7dq36nv9";
+      name = "kxmlrpcclient-5.18.0.tar.xz";
+    };
+  };
+  modemmanager-qt = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/modemmanager-qt-5.18.0.tar.xz";
+      sha256 = "09k07wxkn511sa4hwmrs6jfx4lnnw3zcac5dzz43hhsmw74yj9az";
+      name = "modemmanager-qt-5.18.0.tar.xz";
+    };
+  };
+  networkmanager-qt = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/networkmanager-qt-5.18.0.tar.xz";
+      sha256 = "11j818ws5jz23hyilfpf3npk893hs388v1xpwhh0lkjwm60wkzln";
+      name = "networkmanager-qt-5.18.0.tar.xz";
+    };
+  };
+  oxygen-icons5 = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/oxygen-icons5-5.18.0.tar.xz";
+      sha256 = "11zmxc9n7x6iwdckwxwjji0497yjcsjli7pzr8d049lbc7xsjvi8";
+      name = "oxygen-icons5-5.18.0.tar.xz";
+    };
+  };
+  plasma-framework = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/plasma-framework-5.18.0.tar.xz";
+      sha256 = "1lxhlzx3jcqzx90kjl8w8p53nrgrkjiz1xf92ah3mygjyvi5rlh8";
+      name = "plasma-framework-5.18.0.tar.xz";
+    };
+  };
+  solid = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/solid-5.18.0.tar.xz";
+      sha256 = "0ilki4s3f3gjsdj6z41a8k4h2b52w8xrh2api0sqj0ifk2yhx6wh";
+      name = "solid-5.18.0.tar.xz";
+    };
+  };
+  sonnet = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/sonnet-5.18.0.tar.xz";
+      sha256 = "1780jvsfkasabdbk9xjhjcihcc6mxxipi2rsq2001flxnnx4kykg";
+      name = "sonnet-5.18.0.tar.xz";
+    };
+  };
+  threadweaver = {
+    version = "5.18.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.18/threadweaver-5.18.0.tar.xz";
+      sha256 = "00c9vvyhyysg0cdlmvpls0h3pdbbhhwfxlm9l9i9r3j8x6rigm54";
+      name = "threadweaver-5.18.0.tar.xz";
+    };
+  };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/threadweaver.nix b/pkgs/development/libraries/kde-frameworks-5.18/threadweaver.nix
new file mode 100644
index 000000000000..52817921cc72
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.18/threadweaver.nix
@@ -0,0 +1,11 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+}:
+
+kdeFramework {
+  name = "threadweaver";
+  nativeBuildInputs = [ extra-cmake-modules ];
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}