From 8abd44f249624fddb2cf66c6063b453406ea079b Mon Sep 17 00:00:00 2001
From: "Yury G. Kudryashov" <urkud.urkud@gmail.com>
Date: Mon, 15 Aug 2011 18:06:26 +0000
Subject: [PATCH] Big kde-4.7.0 update

* Remove a lot of code duplication.
* Package almost all (except for smoke-based bindings).

svn path=/nixpkgs/trunk/; revision=28597
---
 pkgs/desktops/kde-4.7/accessibility/jovie.nix |  17 -
 .../kde-4.7/accessibility/kaccessible.nix     |  14 -
 pkgs/desktops/kde-4.7/accessibility/kmag.nix  |  16 -
 .../kde-4.7/accessibility/kmousetool.nix      |  15 -
 .../desktops/kde-4.7/accessibility/kmouth.nix |  14 -
 pkgs/desktops/kde-4.7/artwork/aurorae.nix     |  14 -
 .../kde-4.7/artwork/color-schemes.nix         |  15 -
 .../kde-4.7/artwork/desktop-themes.nix        |  15 -
 pkgs/desktops/kde-4.7/artwork/emoticons.nix   |  15 -
 .../artwork/high-resolution-wallpapers.nix    |  15 -
 .../desktops/kde-4.7/artwork/kscreensaver.nix |  18 --
 pkgs/desktops/kde-4.7/artwork/kwin-styles.nix |  13 -
 .../kde-4.7/artwork/nuvola-icon-theme.nix     |  17 -
 pkgs/desktops/kde-4.7/artwork/phase-style.nix |  15 -
 pkgs/desktops/kde-4.7/artwork/sounds.nix      |  15 -
 pkgs/desktops/kde-4.7/artwork/wallpapers.nix  |  15 -
 .../kde-4.7/artwork/weather-wallpapers.nix    |  15 -
 pkgs/desktops/kde-4.7/baseapps.nix            |  17 -
 pkgs/desktops/kde-4.7/bindings/default.nix    |  34 --
 .../python-site-packages-install-dir.diff     |  54 ----
 pkgs/desktops/kde-4.7/bindings/sip-4.11.patch |  67 ----
 pkgs/desktops/kde-4.7/default.nix             | 291 +++++++-----------
 pkgs/desktops/kde-4.7/edu/klettres.nix        |  12 -
 pkgs/desktops/kde-4.7/edu/kstars.nix          |  12 -
 pkgs/desktops/kde-4.7/edu/step.nix            |  12 -
 .../{libs => files}/polkit-install.patch      |   0
 pkgs/desktops/kde-4.7/games.nix               |  23 --
 pkgs/desktops/kde-4.7/graphics/gwenview.nix   |  17 -
 pkgs/desktops/kde-4.7/graphics/kamera.nix     |  12 -
 pkgs/desktops/kde-4.7/graphics/kgamma.nix     |  12 -
 .../desktops/kde-4.7/graphics/kolourpaint.nix |  12 -
 pkgs/desktops/kde-4.7/graphics/kruler.nix     |  12 -
 pkgs/desktops/kde-4.7/graphics/ksnapshot.nix  |  12 -
 pkgs/desktops/kde-4.7/graphics/okular.nix     |  16 -
 pkgs/desktops/kde-4.7/kate.nix                |  12 -
 pkgs/desktops/kde-4.7/kcolorchooser.nix       |  12 -
 pkgs/desktops/kde-4.7/kde-package/4.7.0.nix   |   1 +
 pkgs/desktops/kde-4.7/kde-package/default.nix |  63 ----
 .../kde-4.7/kde-package/kde-manifest.sh       | 139 ++++++++-
 .../kde-4.7/kde-package/kde-submodules.xslt   |  22 ++
 .../kde-4.7/kde-package/manifest-4.7.0.nix    | 286 -----------------
 .../{wallpapers.nix => kde-wallpapers.nix}    |   7 +-
 .../kde-4.7/kdeaccessibility/jovie.nix        |   9 +
 .../kde-4.7/kdeaccessibility/kaccessible.nix  |   9 +
 .../kde-4.7/kdeaccessibility/kmag.nix         |   9 +
 .../kde-4.7/kdeaccessibility/kmousetool.nix   |   9 +
 .../kde-4.7/kdeaccessibility/kmouth.nix       |   9 +
 pkgs/desktops/kde-4.7/kdeadmin/kcron.nix      |   5 +
 pkgs/desktops/kde-4.7/kdeadmin/ksystemlog.nix |   5 +
 pkgs/desktops/kde-4.7/kdeadmin/kuser.nix      |   5 +
 .../system-config-printer-kde.nix}            |  35 +--
 .../kde-4.7/kdeartwork/ColorSchemes.nix       |  11 +
 .../FindXscreensaver.cmake                    |   0
 .../kdeartwork/HighResolutionWallpapers.nix   |  11 +
 .../kde-4.7/kdeartwork/IconThemes.nix         |  13 +
 .../kde-4.7/kdeartwork/WeatherWallpapers.nix  |  11 +
 pkgs/desktops/kde-4.7/kdeartwork/aurorae.nix  |   7 +
 .../kde-4.7/kdeartwork/desktopthemes.nix      |  11 +
 .../desktops/kde-4.7/kdeartwork/emoticons.nix |  11 +
 .../kde-4.7/kdeartwork/kscreensaver.nix       |  13 +
 .../kde-4.7/kdeartwork/kwin-styles.nix        |   9 +
 pkgs/desktops/kde-4.7/kdeartwork/sounds.nix   |  11 +
 pkgs/desktops/kde-4.7/kdeartwork/styles.nix   |  11 +
 .../kde-4.7/kdeartwork/wallpapers.nix         |  11 +
 pkgs/desktops/kde-4.7/kdebase/kate.nix        |  10 +
 .../desktops/kde-4.7/kdebase/kde-baseapps.nix |  10 +
 pkgs/desktops/kde-4.7/kdebase/kde-runtime.nix |  20 ++
 .../kde-workspace.nix}                        |  18 +-
 pkgs/desktops/kde-4.7/kdebase/konsole.nix     |  11 +
 pkgs/desktops/kde-4.7/kdebindings/perlqt.nix  |  10 +
 .../kde-4.7/kdebindings/pykde-purity.patch    |  49 +++
 pkgs/desktops/kde-4.7/kdebindings/pykde4.nix  |  30 ++
 .../desktops/kde-4.7/kdebindings/smokegen.nix |  13 +
 .../desktops/kde-4.7/kdebindings/smokekde.nix |  10 +
 pkgs/desktops/kde-4.7/kdebindings/smokeqt.nix |  12 +
 .../kde-4.7/kdeedu/FindLibfacile.cmake        |  32 ++
 pkgs/desktops/kde-4.7/kdeedu/blinken.nix      |   8 +
 pkgs/desktops/kde-4.7/kdeedu/cantor.nix       |   8 +
 pkgs/desktops/kde-4.7/kdeedu/kalgebra.nix     |   8 +
 .../kde-4.7/kdeedu/kalzium-feature-log.patch  |  15 +
 pkgs/desktops/kde-4.7/kdeedu/kalzium.nix      |  15 +
 pkgs/desktops/kde-4.7/kdeedu/kanagram.nix     |   8 +
 pkgs/desktops/kde-4.7/kdeedu/kbruch.nix       |   8 +
 pkgs/desktops/kde-4.7/kdeedu/kgeography.nix   |   8 +
 pkgs/desktops/kde-4.7/kdeedu/khangman.nix     |   8 +
 pkgs/desktops/kde-4.7/kdeedu/kig.nix          |  12 +
 pkgs/desktops/kde-4.7/kdeedu/kiten.nix        |   9 +
 pkgs/desktops/kde-4.7/kdeedu/klettres.nix     |   9 +
 .../kde-4.7/{edu => kdeedu}/kmplot.nix        |   6 +-
 pkgs/desktops/kde-4.7/kdeedu/kstars.nix       |   9 +
 pkgs/desktops/kde-4.7/kdeedu/ktouch.nix       |   9 +
 pkgs/desktops/kde-4.7/kdeedu/kturtle.nix      |   9 +
 pkgs/desktops/kde-4.7/kdeedu/kwordquiz.nix    |   9 +
 pkgs/desktops/kde-4.7/kdeedu/libkdeedu.nix    |   8 +
 pkgs/desktops/kde-4.7/kdeedu/marble.nix       |   9 +
 pkgs/desktops/kde-4.7/kdeedu/parley.nix       |   9 +
 .../desktops/kde-4.7/{edu => kdeedu}/rocs.nix |   6 +-
 pkgs/desktops/kde-4.7/kdeedu/step.nix         |  12 +
 pkgs/desktops/kde-4.7/kdegames.nix            |  18 ++
 .../desktops/kde-4.7/kdegraphics/gwenview.nix |  12 +
 pkgs/desktops/kde-4.7/kdegraphics/kamera.nix  |  10 +
 .../kde-4.7/kdegraphics/kcolorchooser.nix     |  10 +
 .../kdegraphics-strigi-analyzer.nix           |  10 +
 .../kdegraphics/kdegraphics-thumbnailers.nix  |  10 +
 pkgs/desktops/kde-4.7/kdegraphics/kgamma.nix  |  10 +
 .../kde-4.7/kdegraphics/kolourpaint.nix       |  10 +
 pkgs/desktops/kde-4.7/kdegraphics/kruler.nix  |  10 +
 .../kde-4.7/kdegraphics/ksaneplugin.nix       |  10 +
 .../kde-4.7/kdegraphics/ksnapshot.nix         |  10 +
 .../kde-4.7/kdegraphics/libkdcraw.nix         |  10 +
 .../kde-4.7/kdegraphics/libkexiv2.nix         |  10 +
 pkgs/desktops/kde-4.7/kdegraphics/libkipi.nix |  10 +
 .../desktops/kde-4.7/kdegraphics/libksane.nix |  10 +
 .../kde-4.7/kdegraphics/mobipocket.nix        |  10 +
 pkgs/desktops/kde-4.7/kdegraphics/okular.nix  |  12 +
 pkgs/desktops/kde-4.7/kdegraphics/svgpart.nix |  10 +
 .../kde-4.7/{libs/default.nix => kdelibs.nix} |  29 +-
 pkgs/desktops/kde-4.7/kdemultimedia.nix       |  16 +
 .../kde-4.7/kdenetwork/FindmsiLBC.cmake       |  19 ++
 .../kde-4.7/kdenetwork/filesharing.nix        |   7 +
 .../kde-4.7/kdenetwork/kdenetwork.patch       |  24 ++
 pkgs/desktops/kde-4.7/kdenetwork/kdnssd.nix   |   7 +
 .../kde-4.7/kdenetwork/kfile-plugins.nix      |  11 +
 pkgs/desktops/kde-4.7/kdenetwork/kget.nix     |  11 +
 pkgs/desktops/kde-4.7/kdenetwork/kopete.nix   |  21 ++
 pkgs/desktops/kde-4.7/kdenetwork/kppp.nix     |   7 +
 pkgs/desktops/kde-4.7/kdenetwork/krdc.nix     |   7 +
 pkgs/desktops/kde-4.7/kdenetwork/krfb.nix     |   7 +
 .../{network => kdenetwork}/log-feature.diff  |   0
 pkgs/desktops/kde-4.7/kdepim-runtime.nix      |  12 +
 pkgs/desktops/kde-4.7/kdepim.nix              |  19 ++
 pkgs/desktops/kde-4.7/kdepimlibs.nix          |  14 +
 pkgs/desktops/kde-4.7/kdeplasma-addons.nix    |  19 ++
 pkgs/desktops/kde-4.7/kdesdk/cervisia.nix     |   9 +
 .../kde-4.7/kdesdk/dolphin-plugins-git.nix    |  10 +
 .../kde-4.7/kdesdk/dolphin-plugins-svn.nix    |  10 +
 .../kde-4.7/{sdk => kdesdk}/find-svn.patch    |   0
 pkgs/desktops/kde-4.7/kdesdk/kapptemplate.nix |   9 +
 pkgs/desktops/kde-4.7/kdesdk/kcachegrind.nix  |   9 +
 .../kde-4.7/kdesdk/kdeaccounts-plugin.nix     |   9 +
 .../kde-4.7/kdesdk/kioslave-perldoc.nix       |  11 +
 pkgs/desktops/kde-4.7/kdesdk/kioslave-svn.nix |  11 +
 pkgs/desktops/kde-4.7/kdesdk/kmtrace.nix      |  11 +
 pkgs/desktops/kde-4.7/kdesdk/kompare.nix      |   9 +
 pkgs/desktops/kde-4.7/kdesdk/kpartloader.nix  |   9 +
 .../kde-4.7/kdesdk/kprofilemethod.nix         |   9 +
 pkgs/desktops/kde-4.7/kdesdk/kstartperf.nix   |   9 +
 pkgs/desktops/kde-4.7/kdesdk/kuiviewer.nix    |   9 +
 pkgs/desktops/kde-4.7/kdesdk/lokalize.nix     |  13 +
 pkgs/desktops/kde-4.7/kdesdk/okteta.nix       |  11 +
 .../{sdk => kdesdk}/optional-docs.diff        |   0
 pkgs/desktops/kde-4.7/kdesdk/poxml.nix        |   9 +
 pkgs/desktops/kde-4.7/kdesdk/scripts.nix      |   9 +
 .../{sdk => kdesdk}/strigi-analyzer.nix       |   6 +-
 pkgs/desktops/kde-4.7/kdesdk/umbrello.nix     |   9 +
 pkgs/desktops/kde-4.7/kdetoys/amor.nix        |   9 +
 pkgs/desktops/kde-4.7/kdetoys/kteatime.nix    |   9 +
 pkgs/desktops/kde-4.7/kdetoys/ktux.nix        |   9 +
 pkgs/desktops/kde-4.7/kdeutils/ark.nix        |   9 +
 pkgs/desktops/kde-4.7/kdeutils/filelight.nix  |   9 +
 pkgs/desktops/kde-4.7/kdeutils/kcalc.nix      |   9 +
 .../desktops/kde-4.7/kdeutils/kcharselect.nix |   9 +
 pkgs/desktops/kde-4.7/kdeutils/kdf.nix        |   9 +
 pkgs/desktops/kde-4.7/kdeutils/kfloppy.nix    |   9 +
 pkgs/desktops/kde-4.7/kdeutils/kgpg.nix       |   9 +
 .../kde-4.7/kdeutils/kremotecontrol.nix       |   9 +
 pkgs/desktops/kde-4.7/kdeutils/ktimer.nix     |   9 +
 pkgs/desktops/kde-4.7/kdeutils/kwallet.nix    |   9 +
 .../kde-4.7/kdeutils/printer-applet.nix       |  28 ++
 .../kde-4.7/kdeutils/superkaramba.nix         |  11 +
 pkgs/desktops/kde-4.7/kdeutils/sweeper.nix    |   9 +
 .../kde-4.7/kdewebdev/kfilereplace.nix        |  10 +
 .../kde-4.7/kdewebdev/kimagemapeditor.nix     |  10 +
 .../kde-4.7/kdewebdev/klinkstatus.nix         |  12 +
 pkgs/desktops/kde-4.7/kdewebdev/kommander.nix |   9 +
 pkgs/desktops/kde-4.7/konsole.nix             |  12 -
 pkgs/desktops/kde-4.7/l10n/default.nix        |  10 +-
 pkgs/desktops/kde-4.7/libkdcraw.nix           |  12 -
 pkgs/desktops/kde-4.7/libkexiv2.nix           |  12 -
 pkgs/desktops/kde-4.7/libkipi.nix             |  12 -
 pkgs/desktops/kde-4.7/multimedia.nix          |  18 --
 pkgs/desktops/kde-4.7/network/default.nix     |  33 --
 .../default.nix => oxygen-icons.nix}          |   7 +-
 pkgs/desktops/kde-4.7/pim-runtime.nix         |  17 -
 pkgs/desktops/kde-4.7/pim.nix                 |  34 --
 pkgs/desktops/kde-4.7/pimlibs.nix             |  17 -
 .../kde-4.7/plasma-addons/default.nix         |  20 --
 pkgs/desktops/kde-4.7/pykde4.nix              |  33 --
 pkgs/desktops/kde-4.7/runtime.nix             |  26 --
 pkgs/desktops/kde-4.7/sdk/cervisia.nix        |  15 -
 pkgs/desktops/kde-4.7/sdk/dolphin-plugins.nix |  16 -
 pkgs/desktops/kde-4.7/sdk/kapptemplate.nix    |  15 -
 pkgs/desktops/kde-4.7/sdk/kcachegrind.nix     |  15 -
 .../kde-4.7/sdk/kdeaccounts-plugin.nix        |  13 -
 .../desktops/kde-4.7/sdk/kioslave-perldoc.nix |  17 -
 pkgs/desktops/kde-4.7/sdk/kioslave-svn.nix    |  16 -
 pkgs/desktops/kde-4.7/sdk/kmtrace.nix         |  15 -
 pkgs/desktops/kde-4.7/sdk/kompare.nix         |  15 -
 pkgs/desktops/kde-4.7/sdk/kpartloader.nix     |  15 -
 pkgs/desktops/kde-4.7/sdk/kprofilemethod.nix  |  13 -
 pkgs/desktops/kde-4.7/sdk/kstartperf.nix      |  15 -
 pkgs/desktops/kde-4.7/sdk/kuiviewer.nix       |  15 -
 pkgs/desktops/kde-4.7/sdk/lokalize.nix        |  19 --
 pkgs/desktops/kde-4.7/sdk/okteta.nix          |  15 -
 pkgs/desktops/kde-4.7/sdk/poxml.nix           |  13 -
 pkgs/desktops/kde-4.7/sdk/scripts.nix         |  13 -
 pkgs/desktops/kde-4.7/sdk/umbrello.nix        |  14 -
 .../kde-4.7/support/soprano/default.nix       |   4 +-
 pkgs/desktops/kde-4.7/toys/amor.nix           |  15 -
 pkgs/desktops/kde-4.7/toys/kteatime.nix       |  14 -
 pkgs/desktops/kde-4.7/toys/ktux.nix           |  15 -
 pkgs/desktops/kde-4.7/utils/ark.nix           |  19 --
 pkgs/desktops/kde-4.7/utils/filelight.nix     |  14 -
 pkgs/desktops/kde-4.7/utils/kcalc.nix         |  15 -
 pkgs/desktops/kde-4.7/utils/kcharselect.nix   |  15 -
 pkgs/desktops/kde-4.7/utils/kdf.nix           |  15 -
 pkgs/desktops/kde-4.7/utils/kfloppy.nix       |  13 -
 pkgs/desktops/kde-4.7/utils/kgpg.nix          |  15 -
 .../desktops/kde-4.7/utils/kremotecontrol.nix |  13 -
 pkgs/desktops/kde-4.7/utils/ktimer.nix        |  15 -
 pkgs/desktops/kde-4.7/utils/kwallet.nix       |  15 -
 .../desktops/kde-4.7/utils/printer-applet.nix |  32 --
 pkgs/desktops/kde-4.7/utils/superkaramba.nix  |  17 -
 pkgs/desktops/kde-4.7/utils/sweeper.nix       |  15 -
 pkgs/desktops/kde-4.7/webdev/kfilereplace.nix |  16 -
 .../kde-4.7/webdev/kimagemapeditor.nix        |  16 -
 pkgs/desktops/kde-4.7/webdev/klinkstatus.nix  |  18 --
 pkgs/desktops/kde-4.7/webdev/kommander.nix    |  14 -
 228 files changed, 1683 insertions(+), 2060 deletions(-)
 delete mode 100644 pkgs/desktops/kde-4.7/accessibility/jovie.nix
 delete mode 100644 pkgs/desktops/kde-4.7/accessibility/kaccessible.nix
 delete mode 100644 pkgs/desktops/kde-4.7/accessibility/kmag.nix
 delete mode 100644 pkgs/desktops/kde-4.7/accessibility/kmousetool.nix
 delete mode 100644 pkgs/desktops/kde-4.7/accessibility/kmouth.nix
 delete mode 100644 pkgs/desktops/kde-4.7/artwork/aurorae.nix
 delete mode 100644 pkgs/desktops/kde-4.7/artwork/color-schemes.nix
 delete mode 100644 pkgs/desktops/kde-4.7/artwork/desktop-themes.nix
 delete mode 100644 pkgs/desktops/kde-4.7/artwork/emoticons.nix
 delete mode 100644 pkgs/desktops/kde-4.7/artwork/high-resolution-wallpapers.nix
 delete mode 100644 pkgs/desktops/kde-4.7/artwork/kscreensaver.nix
 delete mode 100644 pkgs/desktops/kde-4.7/artwork/kwin-styles.nix
 delete mode 100644 pkgs/desktops/kde-4.7/artwork/nuvola-icon-theme.nix
 delete mode 100644 pkgs/desktops/kde-4.7/artwork/phase-style.nix
 delete mode 100644 pkgs/desktops/kde-4.7/artwork/sounds.nix
 delete mode 100644 pkgs/desktops/kde-4.7/artwork/wallpapers.nix
 delete mode 100644 pkgs/desktops/kde-4.7/artwork/weather-wallpapers.nix
 delete mode 100644 pkgs/desktops/kde-4.7/baseapps.nix
 delete mode 100644 pkgs/desktops/kde-4.7/bindings/default.nix
 delete mode 100644 pkgs/desktops/kde-4.7/bindings/python-site-packages-install-dir.diff
 delete mode 100644 pkgs/desktops/kde-4.7/bindings/sip-4.11.patch
 delete mode 100644 pkgs/desktops/kde-4.7/edu/klettres.nix
 delete mode 100644 pkgs/desktops/kde-4.7/edu/kstars.nix
 delete mode 100644 pkgs/desktops/kde-4.7/edu/step.nix
 rename pkgs/desktops/kde-4.7/{libs => files}/polkit-install.patch (100%)
 delete mode 100644 pkgs/desktops/kde-4.7/games.nix
 delete mode 100644 pkgs/desktops/kde-4.7/graphics/gwenview.nix
 delete mode 100644 pkgs/desktops/kde-4.7/graphics/kamera.nix
 delete mode 100644 pkgs/desktops/kde-4.7/graphics/kgamma.nix
 delete mode 100644 pkgs/desktops/kde-4.7/graphics/kolourpaint.nix
 delete mode 100644 pkgs/desktops/kde-4.7/graphics/kruler.nix
 delete mode 100644 pkgs/desktops/kde-4.7/graphics/ksnapshot.nix
 delete mode 100644 pkgs/desktops/kde-4.7/graphics/okular.nix
 delete mode 100644 pkgs/desktops/kde-4.7/kate.nix
 delete mode 100644 pkgs/desktops/kde-4.7/kcolorchooser.nix
 create mode 100644 pkgs/desktops/kde-4.7/kde-package/4.7.0.nix
 delete mode 100644 pkgs/desktops/kde-4.7/kde-package/default.nix
 create mode 100644 pkgs/desktops/kde-4.7/kde-package/kde-submodules.xslt
 delete mode 100644 pkgs/desktops/kde-4.7/kde-package/manifest-4.7.0.nix
 rename pkgs/desktops/kde-4.7/{wallpapers.nix => kde-wallpapers.nix} (57%)
 create mode 100644 pkgs/desktops/kde-4.7/kdeaccessibility/jovie.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdeaccessibility/kaccessible.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdeaccessibility/kmag.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdeaccessibility/kmousetool.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdeaccessibility/kmouth.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdeadmin/kcron.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdeadmin/ksystemlog.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdeadmin/kuser.nix
 rename pkgs/desktops/kde-4.7/{admin.nix => kdeadmin/system-config-printer-kde.nix} (55%)
 create mode 100644 pkgs/desktops/kde-4.7/kdeartwork/ColorSchemes.nix
 rename pkgs/desktops/kde-4.7/{artwork => kdeartwork}/FindXscreensaver.cmake (100%)
 create mode 100644 pkgs/desktops/kde-4.7/kdeartwork/HighResolutionWallpapers.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdeartwork/IconThemes.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdeartwork/WeatherWallpapers.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdeartwork/aurorae.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdeartwork/desktopthemes.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdeartwork/emoticons.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdeartwork/kscreensaver.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdeartwork/kwin-styles.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdeartwork/sounds.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdeartwork/styles.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdeartwork/wallpapers.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdebase/kate.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdebase/kde-baseapps.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdebase/kde-runtime.nix
 rename pkgs/desktops/kde-4.7/{workspace.nix => kdebase/kde-workspace.nix} (54%)
 create mode 100644 pkgs/desktops/kde-4.7/kdebase/konsole.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdebindings/perlqt.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdebindings/pykde-purity.patch
 create mode 100644 pkgs/desktops/kde-4.7/kdebindings/pykde4.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdebindings/smokegen.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdebindings/smokekde.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdebindings/smokeqt.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdeedu/FindLibfacile.cmake
 create mode 100644 pkgs/desktops/kde-4.7/kdeedu/blinken.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdeedu/cantor.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdeedu/kalgebra.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdeedu/kalzium-feature-log.patch
 create mode 100644 pkgs/desktops/kde-4.7/kdeedu/kalzium.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdeedu/kanagram.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdeedu/kbruch.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdeedu/kgeography.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdeedu/khangman.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdeedu/kig.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdeedu/kiten.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdeedu/klettres.nix
 rename pkgs/desktops/kde-4.7/{edu => kdeedu}/kmplot.nix (50%)
 create mode 100644 pkgs/desktops/kde-4.7/kdeedu/kstars.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdeedu/ktouch.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdeedu/kturtle.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdeedu/kwordquiz.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdeedu/libkdeedu.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdeedu/marble.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdeedu/parley.nix
 rename pkgs/desktops/kde-4.7/{edu => kdeedu}/rocs.nix (51%)
 create mode 100644 pkgs/desktops/kde-4.7/kdeedu/step.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdegames.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdegraphics/gwenview.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdegraphics/kamera.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdegraphics/kcolorchooser.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdegraphics/kdegraphics-strigi-analyzer.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdegraphics/kdegraphics-thumbnailers.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdegraphics/kgamma.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdegraphics/kolourpaint.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdegraphics/kruler.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdegraphics/ksaneplugin.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdegraphics/ksnapshot.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdegraphics/libkdcraw.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdegraphics/libkexiv2.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdegraphics/libkipi.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdegraphics/libksane.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdegraphics/mobipocket.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdegraphics/okular.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdegraphics/svgpart.nix
 rename pkgs/desktops/kde-4.7/{libs/default.nix => kdelibs.nix} (56%)
 create mode 100644 pkgs/desktops/kde-4.7/kdemultimedia.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdenetwork/FindmsiLBC.cmake
 create mode 100644 pkgs/desktops/kde-4.7/kdenetwork/filesharing.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdenetwork/kdenetwork.patch
 create mode 100644 pkgs/desktops/kde-4.7/kdenetwork/kdnssd.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdenetwork/kfile-plugins.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdenetwork/kget.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdenetwork/kopete.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdenetwork/kppp.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdenetwork/krdc.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdenetwork/krfb.nix
 rename pkgs/desktops/kde-4.7/{network => kdenetwork}/log-feature.diff (100%)
 create mode 100644 pkgs/desktops/kde-4.7/kdepim-runtime.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdepim.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdepimlibs.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdeplasma-addons.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdesdk/cervisia.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdesdk/dolphin-plugins-git.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdesdk/dolphin-plugins-svn.nix
 rename pkgs/desktops/kde-4.7/{sdk => kdesdk}/find-svn.patch (100%)
 create mode 100644 pkgs/desktops/kde-4.7/kdesdk/kapptemplate.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdesdk/kcachegrind.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdesdk/kdeaccounts-plugin.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdesdk/kioslave-perldoc.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdesdk/kioslave-svn.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdesdk/kmtrace.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdesdk/kompare.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdesdk/kpartloader.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdesdk/kprofilemethod.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdesdk/kstartperf.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdesdk/kuiviewer.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdesdk/lokalize.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdesdk/okteta.nix
 rename pkgs/desktops/kde-4.7/{sdk => kdesdk}/optional-docs.diff (100%)
 create mode 100644 pkgs/desktops/kde-4.7/kdesdk/poxml.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdesdk/scripts.nix
 rename pkgs/desktops/kde-4.7/{sdk => kdesdk}/strigi-analyzer.nix (53%)
 create mode 100644 pkgs/desktops/kde-4.7/kdesdk/umbrello.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdetoys/amor.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdetoys/kteatime.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdetoys/ktux.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdeutils/ark.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdeutils/filelight.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdeutils/kcalc.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdeutils/kcharselect.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdeutils/kdf.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdeutils/kfloppy.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdeutils/kgpg.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdeutils/kremotecontrol.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdeutils/ktimer.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdeutils/kwallet.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdeutils/printer-applet.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdeutils/superkaramba.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdeutils/sweeper.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdewebdev/kfilereplace.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdewebdev/kimagemapeditor.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdewebdev/klinkstatus.nix
 create mode 100644 pkgs/desktops/kde-4.7/kdewebdev/kommander.nix
 delete mode 100644 pkgs/desktops/kde-4.7/konsole.nix
 delete mode 100644 pkgs/desktops/kde-4.7/libkdcraw.nix
 delete mode 100644 pkgs/desktops/kde-4.7/libkexiv2.nix
 delete mode 100644 pkgs/desktops/kde-4.7/libkipi.nix
 delete mode 100644 pkgs/desktops/kde-4.7/multimedia.nix
 delete mode 100644 pkgs/desktops/kde-4.7/network/default.nix
 rename pkgs/desktops/kde-4.7/{support/oxygen-icons/default.nix => oxygen-icons.nix} (80%)
 delete mode 100644 pkgs/desktops/kde-4.7/pim-runtime.nix
 delete mode 100644 pkgs/desktops/kde-4.7/pim.nix
 delete mode 100644 pkgs/desktops/kde-4.7/pimlibs.nix
 delete mode 100644 pkgs/desktops/kde-4.7/plasma-addons/default.nix
 delete mode 100644 pkgs/desktops/kde-4.7/pykde4.nix
 delete mode 100644 pkgs/desktops/kde-4.7/runtime.nix
 delete mode 100644 pkgs/desktops/kde-4.7/sdk/cervisia.nix
 delete mode 100644 pkgs/desktops/kde-4.7/sdk/dolphin-plugins.nix
 delete mode 100644 pkgs/desktops/kde-4.7/sdk/kapptemplate.nix
 delete mode 100644 pkgs/desktops/kde-4.7/sdk/kcachegrind.nix
 delete mode 100644 pkgs/desktops/kde-4.7/sdk/kdeaccounts-plugin.nix
 delete mode 100644 pkgs/desktops/kde-4.7/sdk/kioslave-perldoc.nix
 delete mode 100644 pkgs/desktops/kde-4.7/sdk/kioslave-svn.nix
 delete mode 100644 pkgs/desktops/kde-4.7/sdk/kmtrace.nix
 delete mode 100644 pkgs/desktops/kde-4.7/sdk/kompare.nix
 delete mode 100644 pkgs/desktops/kde-4.7/sdk/kpartloader.nix
 delete mode 100644 pkgs/desktops/kde-4.7/sdk/kprofilemethod.nix
 delete mode 100644 pkgs/desktops/kde-4.7/sdk/kstartperf.nix
 delete mode 100644 pkgs/desktops/kde-4.7/sdk/kuiviewer.nix
 delete mode 100644 pkgs/desktops/kde-4.7/sdk/lokalize.nix
 delete mode 100644 pkgs/desktops/kde-4.7/sdk/okteta.nix
 delete mode 100644 pkgs/desktops/kde-4.7/sdk/poxml.nix
 delete mode 100644 pkgs/desktops/kde-4.7/sdk/scripts.nix
 delete mode 100644 pkgs/desktops/kde-4.7/sdk/umbrello.nix
 delete mode 100644 pkgs/desktops/kde-4.7/toys/amor.nix
 delete mode 100644 pkgs/desktops/kde-4.7/toys/kteatime.nix
 delete mode 100644 pkgs/desktops/kde-4.7/toys/ktux.nix
 delete mode 100644 pkgs/desktops/kde-4.7/utils/ark.nix
 delete mode 100644 pkgs/desktops/kde-4.7/utils/filelight.nix
 delete mode 100644 pkgs/desktops/kde-4.7/utils/kcalc.nix
 delete mode 100644 pkgs/desktops/kde-4.7/utils/kcharselect.nix
 delete mode 100644 pkgs/desktops/kde-4.7/utils/kdf.nix
 delete mode 100644 pkgs/desktops/kde-4.7/utils/kfloppy.nix
 delete mode 100644 pkgs/desktops/kde-4.7/utils/kgpg.nix
 delete mode 100644 pkgs/desktops/kde-4.7/utils/kremotecontrol.nix
 delete mode 100644 pkgs/desktops/kde-4.7/utils/ktimer.nix
 delete mode 100644 pkgs/desktops/kde-4.7/utils/kwallet.nix
 delete mode 100644 pkgs/desktops/kde-4.7/utils/printer-applet.nix
 delete mode 100644 pkgs/desktops/kde-4.7/utils/superkaramba.nix
 delete mode 100644 pkgs/desktops/kde-4.7/utils/sweeper.nix
 delete mode 100644 pkgs/desktops/kde-4.7/webdev/kfilereplace.nix
 delete mode 100644 pkgs/desktops/kde-4.7/webdev/kimagemapeditor.nix
 delete mode 100644 pkgs/desktops/kde-4.7/webdev/klinkstatus.nix
 delete mode 100644 pkgs/desktops/kde-4.7/webdev/kommander.nix

diff --git a/pkgs/desktops/kde-4.7/accessibility/jovie.nix b/pkgs/desktops/kde-4.7/accessibility/jovie.nix
deleted file mode 100644
index 6b270534e441..000000000000
--- a/pkgs/desktops/kde-4.7/accessibility/jovie.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ kde, cmake, qt4, kdelibs, automoc4, phonon }:
-
-kde.package {
-  buildInputs = [ cmake qt4 kdelibs automoc4 phonon ];
-
-#TODO: working backend: speechd or opentts
-  meta = {
-    description = "Text-to-speech synthesis daemon";
-    kde = {
-      name = "jovie";
-      module = "kdeaccessibility";
-      version = "0.6.0";
-      versionFile = "jovie/jovie/main.cpp";
-    };
-  };
-}
-
diff --git a/pkgs/desktops/kde-4.7/accessibility/kaccessible.nix b/pkgs/desktops/kde-4.7/accessibility/kaccessible.nix
deleted file mode 100644
index 80878db4eccd..000000000000
--- a/pkgs/desktops/kde-4.7/accessibility/kaccessible.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{ kde, cmake, qt4, kdelibs, automoc4, phonon }:
-
-kde.package {
-  buildInputs = [ cmake qt4 kdelibs automoc4 phonon ];
-
-  meta = {
-    description = "Bridge that provides accessibility services to applications";
-    kde = {
-      name = "kaccessible";
-      module = "kdeaccessibility";
-    };
-  };
-}
-  
\ No newline at end of file
diff --git a/pkgs/desktops/kde-4.7/accessibility/kmag.nix b/pkgs/desktops/kde-4.7/accessibility/kmag.nix
deleted file mode 100644
index b8ddf55cea61..000000000000
--- a/pkgs/desktops/kde-4.7/accessibility/kmag.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ kde, cmake, qt4, kdelibs, automoc4, phonon }:
-
-kde.package {
-  buildInputs = [ cmake qt4 kdelibs automoc4 phonon ];
-
-  meta = {
-    description = "Screen magnifier for KDE";
-    kde = {
-      name = "kmag";
-      module = "kdeaccessibility";
-      version = "1.0";
-      versionFile = "kmag/version.h";
-    };
-  };
-}
-
diff --git a/pkgs/desktops/kde-4.7/accessibility/kmousetool.nix b/pkgs/desktops/kde-4.7/accessibility/kmousetool.nix
deleted file mode 100644
index cbde5728ef78..000000000000
--- a/pkgs/desktops/kde-4.7/accessibility/kmousetool.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ kde, cmake, qt4, kdelibs, automoc4, phonon, libXtst }:
-
-kde.package {
-  buildInputs = [ cmake qt4 kdelibs automoc4 phonon libXtst ];
-
-  meta = {
-    description = "A program that clicks the mouse for you";
-    kde = {
-      name = "kmousetool";
-      module = "kdeaccessibility";
-      version = "1.12";
-      versionFile = "kmousetool/kmousetool/version.h";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/accessibility/kmouth.nix b/pkgs/desktops/kde-4.7/accessibility/kmouth.nix
deleted file mode 100644
index ad6a565e1b64..000000000000
--- a/pkgs/desktops/kde-4.7/accessibility/kmouth.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{ kde, cmake, qt4, kdelibs, automoc4, phonon }:
-
-kde.package {
-  buildInputs = [ cmake qt4 kdelibs automoc4 phonon ];
-
-  meta = {
-    description = "A type-and-say front end for speech synthesizers";
-    kde = {
-      name = "kmouth";
-      module = "kdeaccessibility";
-      version = "1.1.1";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/artwork/aurorae.nix b/pkgs/desktops/kde-4.7/artwork/aurorae.nix
deleted file mode 100644
index c48cbad4e847..000000000000
--- a/pkgs/desktops/kde-4.7/artwork/aurorae.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{ cmake, kde, qt4, automoc4, kdelibs, phonon }:
-
-kde.package rec {
-  name = "aurorae-themes-${kde.release}";
-
-  buildInputs = [ cmake qt4 automoc4 kdelibs phonon ];
-  
-  meta = {
-    kde = {
-      name = "aurorae";
-      module = "kdeartwork";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/artwork/color-schemes.nix b/pkgs/desktops/kde-4.7/artwork/color-schemes.nix
deleted file mode 100644
index ec0fabcea82b..000000000000
--- a/pkgs/desktops/kde-4.7/artwork/color-schemes.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ cmake, kde, qt4, automoc4, kdelibs, phonon }:
-
-kde.package rec {
-  name = "kde-color-schemes-${kde.release}";
-
-  buildInputs = [ cmake qt4 automoc4 kdelibs phonon ];
-  
-  meta = {
-    description = "Additional KDE color schemes";
-    kde = {
-      name = "ColorSchemes";
-      module = "kdeartwork";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/artwork/desktop-themes.nix b/pkgs/desktops/kde-4.7/artwork/desktop-themes.nix
deleted file mode 100644
index 6490e75aaa51..000000000000
--- a/pkgs/desktops/kde-4.7/artwork/desktop-themes.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ cmake, kde, qt4, automoc4, kdelibs, phonon }:
-
-kde.package rec {
-  name = "kde-desktop-themes-${kde.release}";
-
-  buildInputs = [ cmake qt4 automoc4 kdelibs phonon ];
-
-  meta = {
-    description = "Additional KDE desktop themes";
-    kde = {
-      name = "desktopthemes";
-      module = "kdeartwork";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/artwork/emoticons.nix b/pkgs/desktops/kde-4.7/artwork/emoticons.nix
deleted file mode 100644
index b5086efa4fff..000000000000
--- a/pkgs/desktops/kde-4.7/artwork/emoticons.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ cmake, kde, qt4, automoc4, kdelibs, phonon }:
-
-kde.package rec {
-  name = "kde-emotion-icons-${kde.release}";
-
-  buildInputs = [ cmake qt4 automoc4 kdelibs phonon ];
-
-  meta = {
-    description = "Additional KDE emotion icons (smiles)";
-    kde = {
-      name = "emoticons";
-      module = "kdeartwork";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/artwork/high-resolution-wallpapers.nix b/pkgs/desktops/kde-4.7/artwork/high-resolution-wallpapers.nix
deleted file mode 100644
index 07103168c0ab..000000000000
--- a/pkgs/desktops/kde-4.7/artwork/high-resolution-wallpapers.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ cmake, kde, qt4, automoc4, kdelibs, phonon }:
-
-kde.package rec {
-  name = "kde-wallpapers-high-resolution-${kde.release}";
-
-  buildInputs = [ cmake qt4 automoc4 kdelibs phonon ];
-  
-  meta = {
-    description = "KDE wallpapers in high resolution";
-    kde = {
-      name = "HighResolutionWallpapers";
-      module = "kdeartwork";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/artwork/kscreensaver.nix b/pkgs/desktops/kde-4.7/artwork/kscreensaver.nix
deleted file mode 100644
index 422eba781d5e..000000000000
--- a/pkgs/desktops/kde-4.7/artwork/kscreensaver.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ cmake, kde, qt4, automoc4, kdelibs, phonon, xscreensaver, kde_workspace, eigen, libkexiv2 }:
-
-kde.package rec {
-  buildInputs =
-    [ cmake automoc4 qt4 kdelibs phonon xscreensaver kde_workspace eigen libkexiv2 ];
-  
-  preConfigure = "cp -v ${./FindXscreensaver.cmake} cmake/modules/FindXscreensaver.cmake";
-  
-  meta = {
-    description = "KDE screensavers";
-    kde = {
-      name = "kscreensaver";
-      module = "kdeartwork";
-      version = "1.0";
-      versionFile = "kscreensaver/kpartsaver/kpartsaver.cpp";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/artwork/kwin-styles.nix b/pkgs/desktops/kde-4.7/artwork/kwin-styles.nix
deleted file mode 100644
index ebec090ef9e3..000000000000
--- a/pkgs/desktops/kde-4.7/artwork/kwin-styles.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{ cmake, kde, qt4, automoc4, kdelibs, phonon, kde_workspace }:
-
-kde.package rec {
-  buildInputs = [ cmake qt4 automoc4 kdelibs phonon kde_workspace ];
-
-  meta = {
-    description = "Styles for KWin";
-    kde = {
-      name = "kwin-styles";
-      module = "kdeartwork";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/artwork/nuvola-icon-theme.nix b/pkgs/desktops/kde-4.7/artwork/nuvola-icon-theme.nix
deleted file mode 100644
index fd084ebb6927..000000000000
--- a/pkgs/desktops/kde-4.7/artwork/nuvola-icon-theme.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ cmake, kde, qt4, automoc4, kdelibs, phonon }:
-
-kde.package rec {
-  name = "nuvola-icon-theme-${kde.release}";
-  
-  # Sources contain primary and kdeclassic as well but they're not installed
-
-  buildInputs = [ cmake qt4 automoc4 kdelibs phonon ];
-  
-  meta = {
-    description = "KDE nuvola icon theme";
-    kde = {
-      name = "IconThemes";
-      module = "kdeartwork";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/artwork/phase-style.nix b/pkgs/desktops/kde-4.7/artwork/phase-style.nix
deleted file mode 100644
index c2876f2df296..000000000000
--- a/pkgs/desktops/kde-4.7/artwork/phase-style.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ cmake, kde, qt4, automoc4, kdelibs, phonon }:
-
-kde.package rec {
-  name = "kde-style-phase-${kde.release}";
-
-  buildInputs = [ cmake qt4 automoc4 kdelibs phonon ];
-
-  meta = {
-    description = "Phase, a widget style for KDE";
-    kde = {
-      name = "styles";
-      module = "kdeartwork";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/artwork/sounds.nix b/pkgs/desktops/kde-4.7/artwork/sounds.nix
deleted file mode 100644
index 7789c4f09c57..000000000000
--- a/pkgs/desktops/kde-4.7/artwork/sounds.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ cmake, kde, qt4, automoc4, kdelibs, phonon }:
-
-kde.package rec {
-  name = "kde-sounds-${kde.release}";
-
-  buildInputs = [ cmake qt4 automoc4 kdelibs phonon ];
-
-  meta = {
-    description = "New login/logout sounds";
-    kde = {
-      name = "sounds";
-      module = "kdeartwork";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/artwork/wallpapers.nix b/pkgs/desktops/kde-4.7/artwork/wallpapers.nix
deleted file mode 100644
index 0543813a0eff..000000000000
--- a/pkgs/desktops/kde-4.7/artwork/wallpapers.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ cmake, kde, qt4, automoc4, kdelibs, phonon }:
-
-kde.package rec {
-  name = "kde-wallpapers-${kde.release}";
-
-  buildInputs = [ cmake qt4 automoc4 kdelibs phonon ];
-
-  meta = {
-    description = "Additional KDE wallpapers";
-    kde = {
-      name = "wallpapers";
-      module = "kdeartwork";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/artwork/weather-wallpapers.nix b/pkgs/desktops/kde-4.7/artwork/weather-wallpapers.nix
deleted file mode 100644
index 9579ceca74c1..000000000000
--- a/pkgs/desktops/kde-4.7/artwork/weather-wallpapers.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ cmake, kde, qt4, automoc4, kdelibs, phonon }:
-
-kde.package rec {
-  name = "kde-weather-wallpapers-${kde.release}";
-
-  buildInputs = [ cmake qt4 automoc4 kdelibs phonon ];
-
-  meta = {
-    description = "Additional KDE wallpapers (weather)";
-    kde = {
-      name = "WeatherWallpapers";
-      module = "kdeartwork";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/baseapps.nix b/pkgs/desktops/kde-4.7/baseapps.nix
deleted file mode 100644
index 61f52cc74543..000000000000
--- a/pkgs/desktops/kde-4.7/baseapps.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ automoc4, cmake, kde, kdelibs, qt4, strigi, soprano
-, shared_desktop_ontologies, glib, phonon
-}:
-
-kde.package {
-
-  buildInputs =
-    [ cmake kdelibs qt4 automoc4 strigi soprano shared_desktop_ontologies
-      glib phonon
-    ];
-
-  meta = {
-    description = "Base KDE applications, including the Dolphin file manager and Konqueror web browser";
-    license = "GPLv2";
-    kde.name = "kde-baseapps";
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/bindings/default.nix b/pkgs/desktops/kde-4.7/bindings/default.nix
deleted file mode 100644
index f7e35c5dba72..000000000000
--- a/pkgs/desktops/kde-4.7/bindings/default.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ kde, lib, cmake, perl, python, sip, pyqt4, zlib, libpng, freetype, fontconfig, qt4, boost
-, kdelibs, kdepimlibs, automoc4, soprano, akonadi, attica, polkit_qt_1, ruby
-}:
-
-# This function will only build the pykde4 module. I don't need the other bindings and
-# some bindings are even broken.
-
-kde.package rec {
-  patches = [ ./python-site-packages-install-dir.diff ./sip-4.11.patch ];
-
-  preConfigure = ''
-    CUSTOM_RUBY_SITE_ARCH_DIR=$(ruby -r rbconfig -e "print Config::CONFIG['sitearchdir']" | sed -e "s@${ruby}@$out@")
-    CUSTOM_RUBY_SITE_LIB_DIR=$(ruby -r rbconfig -e "print Config::CONFIG['sitelibdir']" | sed -e "s@${ruby}@$out@")
-    CUSTOM_PERL_SITE_ARCH_DIR=$(perl -MConfig -e 'print $Config{sitearch}' | sed -e "s@${perl}@$out@")
-    cmakeFlagsArray+=(
-      -DSIP_DEFAULT_SIP_DIR=$out/share/sip
-      -DCUSTOM_RUBY_SITE_ARCH_DIR=$CUSTOM_RUBY_SITE_ARCH_DIR
-      -DCUSTOM_RUBY_SITE_LIB_DIR=$CUSTOM_RUBY_SITE_LIB_DIR
-      -DCUSTOM_PERL_SITE_ARCH_DIR=$CUSTOM_PERL_SITE_ARCH_DIR
-    )
-  '';
-  
-  # TODO: okular, qimageblitz, qwt5, qscintilla2, c#
-  buildInputs = [ cmake perl python sip pyqt4 zlib libpng freetype fontconfig qt4 boost
-          kdelibs kdepimlibs automoc4 soprano akonadi attica polkit_qt_1 ruby ];
-
-  meta = {
-    description = "KDE bindings";
-    longDescription = "Provides KDE bindings for several languages such as Java, Smoke and Python";
-    license = "LGPL";
-    kde.name = "kdebindings";
-  };
-}
-
diff --git a/pkgs/desktops/kde-4.7/bindings/python-site-packages-install-dir.diff b/pkgs/desktops/kde-4.7/bindings/python-site-packages-install-dir.diff
deleted file mode 100644
index 7fe64e7eff55..000000000000
--- a/pkgs/desktops/kde-4.7/bindings/python-site-packages-install-dir.diff
+++ /dev/null
@@ -1,54 +0,0 @@
-diff --git a/python/pykde4/CMakeLists.txt b/python/pykde4/CMakeLists.txt
-index 01b69dc..375661d 100644
---- a/python/pykde4/CMakeLists.txt
-+++ b/python/pykde4/CMakeLists.txt
-@@ -188,12 +188,12 @@ IF(POLKITQT_FOUND)
-     SET(PYKDE_MODULES "${PYKDE_MODULES} polkitqt")
- ENDIF(POLKITQT_FOUND)
- 
--PYTHON_INSTALL(__init__.py ${PYTHON_SITE_PACKAGES_DIR}/PyKDE4)
-+PYTHON_INSTALL(__init__.py ${PYTHON_SITE_PACKAGES_INSTALL_DIR}/PyKDE4)
- 
- MESSAGE(STATUS "KDE_VERSION: ${KDE_VERSION}")
- MESSAGE(STATUS "KDE4_INCLUDE_DIR: ${KDE4_INCLUDE_DIR}")
- MESSAGE(STATUS "KDE4_LIB_DIR: ${KDE4_LIB_DIR}")
--MESSAGE(STATUS "PYTHON_SITE_PACKAGES_DIR: ${PYTHON_SITE_PACKAGES_DIR}")
-+MESSAGE(STATUS "PYTHON_SITE_PACKAGES_INSTALL_DIR: ${PYTHON_SITE_PACKAGES_INSTALL_DIR}")
- 
- # Setup and install pykdeconfig.py
- 
-@@ -225,7 +225,7 @@ _pkg_config = {
-     'konsolepart':          'False',
-     'libdir':               '${LIB_DIR}',
-     'pykde_kde_sip_flags':  '${_SIP_TAGS} ${_SIP_X} ${SIP_EXTRA_OPTIONS}',
--    'pykde_mod_dir':        '${PYTHON_SITE_PACKAGES_DIR}/PyKDE4',
-+    'pykde_mod_dir':        '${PYTHON_SITE_PACKAGES_INSTALL_DIR}/PyKDE4',
-     'pykde_modules':        '${PYKDE_MODULES}',
-     'pykde_sip_dir':        '${SIP_DEFAULT_SIP_DIR}/PyKDE4',
-     'pykde_version':        kde_version_hex,
-@@ -235,7 +235,7 @@ _pkg_config = {
- _default_macros = None")
- 
- CONFIGURE_FILE(pykdeconfig.py.in ${CMAKE_CURRENT_BINARY_DIR}/pykdeconfig.py)
--PYTHON_INSTALL(${CMAKE_CURRENT_BINARY_DIR}/pykdeconfig.py ${PYTHON_SITE_PACKAGES_DIR}/PyKDE4)
-+PYTHON_INSTALL(${CMAKE_CURRENT_BINARY_DIR}/pykdeconfig.py ${PYTHON_SITE_PACKAGES_INSTALL_DIR}/PyKDE4)
- 
- # Install the .sip files for anyone that wants to build bindings on top of PyKDE4.
- # (Don't forget the / at the end of sip/.)
-diff --git a/python/pykde4/tools/pykdeuic4/CMakeLists.txt b/python/pykde4/tools/pykdeuic4/CMakeLists.txt
-index ea711ba..115c777 100644
---- a/python/pykde4/tools/pykdeuic4/CMakeLists.txt
-+++ b/python/pykde4/tools/pykdeuic4/CMakeLists.txt
-@@ -1,5 +1,9 @@
- 
--PYTHON_INSTALL(kde4.py ${PYTHON_SITE_PACKAGES_DIR}/PyQt4/uic/widget-plugins/)
--PYTHON_INSTALL(pykdeuic4.py ${PYTHON_SITE_PACKAGES_DIR}/PyQt4/uic/)
-+PYTHON_INSTALL(kde4.py ${PYTHON_SITE_PACKAGES_INSTALL_DIR}/PyQt4/uic/widget-plugins/)
-+PYTHON_INSTALL(pykdeuic4.py ${PYTHON_SITE_PACKAGES_INSTALL_DIR}/PyQt4/uic/)
- find_path(cmake_module_dir create_exe_symlink.cmake ${CMAKE_MODULE_PATH})
--INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -DTARGET=${PYTHON_SITE_PACKAGES_DIR}/PyQt4/uic/pykdeuic4.py -DLINK_NAME=${BIN_INSTALL_DIR}/pykdeuic4 -P ${cmake_module_dir}/create_exe_symlink.cmake)" )
-+IF(IS_ABSOLUTE ${PYTHON_SITE_PACKAGES_INSTALL_DIR})
-+  INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -DTARGET=${PYTHON_SITE_PACKAGES_INSTALL_DIR}/PyQt4/uic/pykdeuic4.py -DLINK_NAME=${BIN_INSTALL_DIR}/pykdeuic4 -P ${cmake_module_dir}/create_exe_symlink.cmake)" )
-+ELSE(IS_ABSOLUTE ${PYTHON_SITE_PACKAGES_INSTALL_DIR})
-+  INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -DTARGET=${CMAKE_INSTALL_PREFIX}/${PYTHON_SITE_PACKAGES_INSTALL_DIR}/PyQt4/uic/pykdeuic4.py -DLINK_NAME=${BIN_INSTALL_DIR}/pykdeuic4 -P ${cmake_module_dir}/create_exe_symlink.cmake)" )
-+ENDIF(IS_ABSOLUTE ${PYTHON_SITE_PACKAGES_INSTALL_DIR})
diff --git a/pkgs/desktops/kde-4.7/bindings/sip-4.11.patch b/pkgs/desktops/kde-4.7/bindings/sip-4.11.patch
deleted file mode 100644
index 15059e2526d2..000000000000
--- a/pkgs/desktops/kde-4.7/bindings/sip-4.11.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-Make kdebindings compile against sip-4.11, from KDE svn
-Index: kdebindings/python/pykde4/sip/kdecore/typedefs.sip
-===================================================================
---- kdebindings/python/pykde4/sip/kdecore/typedefs.sip	(revision 1170601)
-+++ kdebindings/python/pykde4/sip/kdecore/typedefs.sip	(revision 1170602)
-@@ -733,61 +733,6 @@
- };
- 
- 
--%MappedType QList<uint>
--{
--%TypeHeaderCode
--#include <qlist.h>
--%End
--
--%ConvertFromTypeCode
--    // Create the list.
--    PyObject *l;
--
--    if ((l = PyList_New(sipCpp->size())) == NULL)
--        return NULL;
--
--    // Set the list elements.
--    for (int i = 0; i < sipCpp->size(); ++i) {
--        PyObject *pobj;
--
--#if PY_MAJOR_VERSION >= 3
--        if ((pobj = PyLong_FromLong(sipCpp->value(i))) == NULL) {
--#else
--        if ((pobj = PyInt_FromLong(sipCpp->value(i))) == NULL) {
--#endif
--            Py_DECREF(l);
--
--            return NULL;
--        }
--
--        PyList_SET_ITEM(l, i, pobj);
--    }
--
--    return l;
--%End
--
--%ConvertToTypeCode
--    // Check the type if that is all that is required.
--    if (sipIsErr == NULL)
--        return PyList_Check(sipPy);
--
--    QList<uint> *ql = new QList<uint>;
-- 
--    for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i) {
--#if PY_MAJOR_VERSION >= 3
--        ql->append(PyLong_AsLong(PyList_GET_ITEM(sipPy, i)));
--#else
--        ql->append(PyInt_AsLong(PyList_GET_ITEM(sipPy, i)));
--#endif        
--    }
--    
--    *sipCppPtr = ql;
-- 
--    return sipGetState(sipTransferObj);
--%End
--};
--
--
- template <TYPE*>
- %MappedType QStack<TYPE*>
- {
diff --git a/pkgs/desktops/kde-4.7/default.nix b/pkgs/desktops/kde-4.7/default.nix
index 0bf9cafd1c46..4a24eaed2e70 100644
--- a/pkgs/desktops/kde-4.7/default.nix
+++ b/pkgs/desktops/kde-4.7/default.nix
@@ -1,200 +1,125 @@
-{ callPackage, recurseIntoAttrs, runCommand, stdenv, fetchurl, qt47, system_config_printer, boost } @ args:
+{ callPackage, runCommand, stdenv, fetchurl, qt47, cmake, automoc4 }:
 
 let
-
   release = "4.7.0";
 
-  # Various packages (e.g. kdesdk) have been split up into many
-  # smaller packages.  Some people may want to install the entire
-  # package, so provide a wrapper package that recombines them.
-  combinePkgs = name: pkgs:
-    let pkgs' = stdenv.lib.attrValues pkgs; in
-    runCommand "${name}-${release}" ({ passthru = pkgs // { inherit pkgs; }; })
-      ''
-        mkdir -p $out/nix-support
-        echo ${toString pkgs'} > $out/nix-support/propagated-user-env-packages
-      '';
+  manifest = import (./kde-package + "/${release}.nix");
+
+  kdesrc = name: fetchurl {
+    url = "mirror://kde/" + (if manifest.stable then "" else "un")
+      + "stable/${release}/src/${name}-${release}.tar.bz2";
+    sha256 = builtins.getAttr name manifest.hashes;
+  };
+
+  mergeMeta = meta:
+    {
+      homepage = http://www.kde.org;
+      inherit (qt47.meta) platforms maintainers;
+    } // meta;
+
+  kdeMonoPkg = name: a@{meta, ...}:
+    stdenv.mkDerivation ({
+        name = "${name}-${release}";
+        src = kdesrc name;
+        meta = mergeMeta meta;
+        } // (builtins.removeAttrs a [ "meta" ]));
+  kdeMonolithic = name: path: callPackage path { kde = kdeMonoPkg name; };
+
+  kdeSubdirPkg = module:
+    {name, subdir ? name, sane ? name}:
+    let name_ = name; in
+    a@{cmakeFlags ? [], name ? name_, ...}:
+    stdenv.mkDerivation ({
+      name = "${name}-${release}";
+      src = kdesrc module;
+      cmakeFlags = ["-DDISABLE_ALL_OPTIONAL_SUBDIRECTORIES=TRUE"
+      "-DBUILD_doc=TRUE" "-DBUILD_${subdir}=TRUE"] ++ cmakeFlags;
+    } // (removeAttrs a [ "name" "cmakeFlags" ]));
+
+  kdeSplittedPkg = module: {name, sane ? name}: kdeMonoPkg name;
+
+  combinePkgs = pkgFun: module: pkgs:
+    let
+      f = p@{name, ...}:
+        callPackage (./. + "/${module}/${name}.nix") { kde = pkgFun module p; };
+      list = map f pkgs;
+      attrs = builtins.listToAttrs (map
+        ({name, sane ? name, ...}@p: { name = sane; value = f p; })
+        pkgs);
+    in
+      runCommand "${module}-${release}"
+      ({passthru = attrs // { propagatedUserEnvPackages = list; recurseForDerivations = true;};})
+        ''
+          mkdir -pv $out/nix-support
+          echo "${toString list}" | tee $out/nix-support/propagated-user-env-packages
+        '';
+
+  kdeModule = { module, sane ? module, split, pkgs ? [] }:
+    let pkgs_ = filterPkgs module pkgs; in
+    {
+      name = sane;
+      value =
+        # Module is splitted by upstream
+        if split then combinePkgs kdeSplittedPkg module pkgs_
+        # Monolithic module
+        else if pkgs == [] then kdeMonolithic module (./. + "/${module}.nix")
+        # Module is splitted by us
+        else combinePkgs kdeSubdirPkg module pkgs_;
+    };
+
+  kdepkgs = builtins.listToAttrs (map kdeModule manifest.modules);
+
+  filterPkgs = module: (p:
+      removeNames (stdenv.lib.attrByPath [module] [] ignoreList) p
+      ++ (stdenv.lib.attrByPath [module] [] extraSubpkgs));
+
+# List difference, big - subst; optimised for empty subst
+  removeNames = subst: big: stdenv.lib.fold (s: out: stdenv.lib.filter (x: x.name != s) out) big subst;
+
+  ignoreList = {
+    kdeadmin = [ "strigi-analyzer" ];
+    kdesdk = [ "kioslave" ];
+    kdebindings = [ "kimono" "korundum" "kross-interpreters" "perlkde" "perlqt"
+      "qtruby" "qyoto" "smokekde" ];
+  };
+
+  extraSubpkgs = {
+    kdesdk =
+      [
+      {
+        name = "kioslave-svn";
+        sane = "kioslave_svn";
+        subdir = "kioslave";
+      }
+      {
+        name = "kioslave-perldoc";
+        sane = "kioslave_perldoc";
+        subdir = "kioslave";
+      }
+      ];
+  };
 
 in
-
-recurseIntoAttrs rec {
+kdepkgs // kdepkgs.kdebase //
+{
   recurseForRelease = true;
-
-  inherit callPackage stdenv;
+  akonadi = callPackage ./support/akonadi { };
+  soprano = callPackage ./support/soprano { };
 
   qt4 = qt47;
 
-  kde = callPackage ./kde-package { inherit release; stable = true; };
+  kdebase_workspace = kdepkgs.kdebase.kde_workspace;
 
-### SUPPORT
+# Propagate some libraries to the top-level
+  inherit (kdepkgs.kdegraphics) libkdcraw libkipi libkexiv2 libksane;
+  inherit (kdepkgs.kdebindings) pykde4;
+  inherit (kdepkgs.kdeedu) libkdeedu;
 
-  system_config_printer = args.system_config_printer.override { withGUI = false; };
+  inherit release;
 
-  akonadi = callPackage ./support/akonadi { };
-
-  oxygen_icons = callPackage ./support/oxygen-icons { };
-
-  soprano = callPackage ./support/soprano { };
-
-  libkexiv2 = callPackage ./libkexiv2.nix { };
-
-  libkipi = callPackage ./libkipi.nix { };
-
-  libkdcraw = callPackage ./libkdcraw.nix { };
-
-  kipi_plugins = callPackage ./kipi-plugins.nix { };
-
-### LIBS
-
-  kdelibs = callPackage ./libs { };
-
-  kdepimlibs = callPackage ./pimlibs.nix { };
-
-### BASE
-
-  kde_baseapps = callPackage ./baseapps.nix { };
-
-  kde_workspace = callPackage ./workspace.nix { };
-
-  kde_runtime = callPackage ./runtime.nix { };
-
-  # Backwards compatibility.
-  kdebase_workspace = kde_workspace;
-
-### BINDINGS
-
-  pykde4 = callPackage ./pykde4.nix { };
-
-### OTHER MODULES
-
-  konsole = callPackage ./konsole.nix { };
-
-  kcolorchooser = callPackage ./kcolorchooser.nix { };
-
-  kate = callPackage ./kate.nix { };
-
-  kde_wallpapers = callPackage ./wallpapers.nix { };
-
-  kdeadmin = callPackage ./admin.nix { };
-
-  kdegames = callPackage ./games.nix { };
-  
-  kdemultimedia = callPackage ./multimedia.nix { };
-
-  kdeaccessibility = combinePkgs "kdeaccessibility" {
-    #jovie = callPackage ./accessibility/jovie.nix { };
-    kmag = callPackage ./accessibility/kmag.nix { };
-    kmousetool = callPackage ./accessibility/kmousetool.nix { };
-    kmouth = callPackage ./accessibility/kmouth.nix { };
-    kaccessible = callPackage ./accessibility/kaccessible.nix { };
-  };
-
-  kdeartwork = combinePkgs "kdeartwork" {
-    aurorae = callPackage ./artwork/aurorae.nix { };
-    color_schemes = callPackage ./artwork/color-schemes.nix { };
-    desktop_themes = callPackage ./artwork/desktop-themes.nix { };
-    emoticons = callPackage ./artwork/emoticons.nix { };
-    high_resolution_wallpapers = callPackage ./artwork/high-resolution-wallpapers.nix { };
-    wallpapers = callPackage ./artwork/wallpapers.nix { };
-    nuvola_icon_theme = callPackage ./artwork/nuvola-icon-theme.nix { };
-    sounds = callPackage ./artwork/sounds.nix { };
-    weather_wallpapers = callPackage ./artwork/weather-wallpapers.nix { };
-    phase_style = callPackage ./artwork/phase-style.nix { };
-    kscreensaver = callPackage ./artwork/kscreensaver.nix { };
-    kwin_styles = callPackage ./artwork/kwin-styles.nix { };
-  };
-  
-  /*
-  kdeedu = callPackage ./edu { };
-  kdenetwork = callPackage ./network { };
-  kdeplasma_addons = callPackage ./plasma-addons { };
-  */
-
-  kdeedu = combinePkgs "kdeedu" {
-    klettres = callPackage ./edu/klettres.nix { };
-    kmplot = callPackage ./edu/kmplot.nix { };
-    kstars = callPackage ./edu/kstars.nix { };
-    rocs = callPackage ./edu/rocs.nix {
-      boost = args.boost.override {enableExceptions = true;};
-    };
-    step = callPackage ./edu/step.nix { };
-  };
-
-  kdegraphics = combinePkgs "kdegraphics" {
-    gwenview = callPackage ./graphics/gwenview.nix { };
-    kamera = callPackage ./graphics/kamera.nix { };
-    kgamma = callPackage ./graphics/kgamma.nix { };
-    kolourpaint = callPackage ./graphics/kolourpaint.nix { };
-    kruler = callPackage ./graphics/kruler.nix { };
-    ksnapshot = callPackage ./graphics/ksnapshot.nix { };
-    okular = callPackage ./graphics/okular.nix { };
-  };
-
-  kdesdk = combinePkgs "kdesdk" {
-    cervisia = callPackage ./sdk/cervisia.nix { };
-    kapptemplate = callPackage ./sdk/kapptemplate.nix { };
-    kcachegrind = callPackage ./sdk/kcachegrind.nix { };
-    kdeaccounts_plugin = callPackage ./sdk/kdeaccounts-plugin.nix { };
-    dolphin_plugins = callPackage ./sdk/dolphin-plugins.nix { };
-    kioslave_perldoc = callPackage ./sdk/kioslave-perldoc.nix { };
-    kioslave_svn = callPackage ./sdk/kioslave-svn.nix { };
-    strigi_analyzer = callPackage ./sdk/strigi-analyzer.nix { };
-    kmtrace = callPackage ./sdk/kmtrace.nix { };
-    kompare = callPackage ./sdk/kompare.nix { };
-    kpartloader = callPackage ./sdk/kpartloader.nix { };
-    kprofilemethod = callPackage ./sdk/kprofilemethod.nix { };
-    kstartperf = callPackage ./sdk/kstartperf.nix { };
-    kuiviewer = callPackage ./sdk/kuiviewer.nix { };
-    lokalize = callPackage ./sdk/lokalize.nix { };
-    poxml = callPackage ./sdk/poxml.nix { };
-    scripts = callPackage ./sdk/scripts.nix { };
-    umbrello = callPackage ./sdk/umbrello.nix { };
-    okteta = callPackage ./sdk/okteta.nix { };
-  };
-
-  kdetoys = combinePkgs "kdetoys" {
-    amor = callPackage ./toys/amor.nix { };
-    kteatime = callPackage ./toys/kteatime.nix { };
-    ktux = callPackage ./toys/ktux.nix { };
-  };
-
-  kdeutils = combinePkgs "kdeutils" {
-    ark = callPackage ./utils/ark.nix { };
-    kcalc = callPackage ./utils/kcalc.nix { };
-    kcharselect = callPackage ./utils/kcharselect.nix { };
-    kdf = callPackage ./utils/kdf.nix { };
-    kfloppy = callPackage ./utils/kfloppy.nix { };
-    kgpg = callPackage ./utils/kgpg.nix { };
-    kremotecontrol = callPackage ./utils/kremotecontrol.nix { };
-    ktimer = callPackage ./utils/ktimer.nix { };
-    kwallet = callPackage ./utils/kwallet.nix { };
-    printer_applet = callPackage ./utils/printer-applet.nix { };
-    superkaramba = callPackage ./utils/superkaramba.nix { };
-    sweeper = callPackage ./utils/sweeper.nix { };
-    filelight = callPackage ./utils/filelight.nix { };
-  };
-
-  kdewebdev = combinePkgs "kdewebdev" {
-    klinkstatus = callPackage ./webdev/klinkstatus.nix { };
-    kommander = callPackage ./webdev/kommander.nix { };
-    kfilereplace = callPackage ./webdev/kfilereplace.nix { };
-    kimagemapeditor = callPackage ./webdev/kimagemapeditor.nix { };
-  };
-
-  kdepim_runtime = callPackage ./pim-runtime.nix { };
-  
-  kdepim = callPackage ./pim.nix { };
-
-### DEVELOPMENT
-
-  /*
-  kdebindings = callPackage ./bindings { };
-  */
+  full = stdenv.lib.attrValues kdepkgs;
 
   l10n = callPackage ./l10n { inherit release; };
 
-  # Make the split packages visible to `nix-env -q'.
-  misc = recurseIntoAttrs
-    (kdeaccessibility.pkgs // kdeartwork.pkgs // kdesdk.pkgs // kdetoys.pkgs // kdeutils.pkgs // kdewebdev.pkgs);
-
+  subdirNames = map (x: x.module) (stdenv.lib.filter (x: !x.split && (x ? pkgs)) manifest.modules);
 }
diff --git a/pkgs/desktops/kde-4.7/edu/klettres.nix b/pkgs/desktops/kde-4.7/edu/klettres.nix
deleted file mode 100644
index 80863eae5001..000000000000
--- a/pkgs/desktops/kde-4.7/edu/klettres.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{ kde, cmake, kdelibs, qt4, automoc4, phonon }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs qt4 automoc4 phonon ];
-
-  meta = {
-    description = "A KDE alphabet tutorial";
-    kde = {
-      name = "klettres";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/edu/kstars.nix b/pkgs/desktops/kde-4.7/edu/kstars.nix
deleted file mode 100644
index ce6f6795056a..000000000000
--- a/pkgs/desktops/kde-4.7/edu/kstars.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{ kde, cmake, kdelibs, qt4, automoc4, phonon, eigen, xplanet, indilib }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs qt4 automoc4 phonon eigen xplanet indilib ];
-
-  meta = {
-    description = "A KDE graphical desktop planetarium";
-    kde = {
-      name = "kstars";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/edu/step.nix b/pkgs/desktops/kde-4.7/edu/step.nix
deleted file mode 100644
index 50fca449bc49..000000000000
--- a/pkgs/desktops/kde-4.7/edu/step.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{ kde, cmake, kdelibs, qt4, automoc4, phonon, gsl, libqalculate, eigen }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs qt4 automoc4 phonon gsl libqalculate eigen ];
-
-  meta = {
-    description = "A KDE interactive physical simulator";
-    kde = {
-      name = "step";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/libs/polkit-install.patch b/pkgs/desktops/kde-4.7/files/polkit-install.patch
similarity index 100%
rename from pkgs/desktops/kde-4.7/libs/polkit-install.patch
rename to pkgs/desktops/kde-4.7/files/polkit-install.patch
diff --git a/pkgs/desktops/kde-4.7/games.nix b/pkgs/desktops/kde-4.7/games.nix
deleted file mode 100644
index c005e5088687..000000000000
--- a/pkgs/desktops/kde-4.7/games.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ kde, cmake, qt4, perl, shared_mime_info, kdelibs, automoc4, qca2
-, twisted, pythonPackages, pyqt4, sip, makeWrapper, phonon, pykde4 }:
-
-kde.package rec {
-
-  buildInputs =
-    [ cmake kdelibs qt4 automoc4 phonon shared_mime_info qca2
-      pythonPackages.python pythonPackages.wrapPython
-    ] ++ pythonPath;
-
-  pythonPath =
-    [ pythonPackages.twisted pyqt4 pykde4 ];
-    
-  # TODO: ggz
-
-  postInstall = "wrapPythonPrograms";
-
-  meta = {
-    description = "KDE Games";
-    license = "GPL";
-    kde.name = "kdegames";
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/graphics/gwenview.nix b/pkgs/desktops/kde-4.7/graphics/gwenview.nix
deleted file mode 100644
index 26687c709a1a..000000000000
--- a/pkgs/desktops/kde-4.7/graphics/gwenview.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ kde, cmake, qt4, kdelibs, automoc4, exiv2, soprano
-, shared_desktop_ontologies, kde_baseapps, libkipi, phonon
-}:
-
-kde.package {
-
-  buildInputs =
-    [ cmake qt4 kdelibs automoc4 exiv2 soprano shared_desktop_ontologies
-      kde_baseapps libkipi phonon
-    ];
-
-  meta = {
-    description = "Gwenview, the KDE image viewer";
-    license = "GPLv2";
-    kde.name = "gwenview";
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/graphics/kamera.nix b/pkgs/desktops/kde-4.7/graphics/kamera.nix
deleted file mode 100644
index 056136ecd121..000000000000
--- a/pkgs/desktops/kde-4.7/graphics/kamera.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{ automoc4, cmake, kde, kdelibs, qt4, phonon, libgphoto2 }:
-
-kde.package {
-
-  buildInputs = [ cmake kdelibs qt4 automoc4 phonon libgphoto2 ];
-
-  meta = {
-    description = "KDE camera interface library";
-    license = "GPLv2";
-    kde.name = "kamera";
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/graphics/kgamma.nix b/pkgs/desktops/kde-4.7/graphics/kgamma.nix
deleted file mode 100644
index 017f7f00c7be..000000000000
--- a/pkgs/desktops/kde-4.7/graphics/kgamma.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{ automoc4, cmake, kde, kdelibs, qt4, phonon, libXxf86vm }:
-
-kde.package {
-
-  buildInputs = [ cmake kdelibs qt4 automoc4 phonon libXxf86vm ];
-
-  meta = {
-    description = "KDE monitor calibration tool";
-    license = "GPLv2";
-    kde.name = "kgamma";
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/graphics/kolourpaint.nix b/pkgs/desktops/kde-4.7/graphics/kolourpaint.nix
deleted file mode 100644
index 54565f1d2752..000000000000
--- a/pkgs/desktops/kde-4.7/graphics/kolourpaint.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{ automoc4, cmake, kde, kdelibs, qt4, phonon, qimageblitz }:
-
-kde.package {
-
-  buildInputs = [ cmake kdelibs qt4 automoc4 phonon qimageblitz ];
-
-  meta = {
-    description = "KDE paint program"; 
-    license = "GPLv2";
-    kde.name = "kolourpaint";
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/graphics/kruler.nix b/pkgs/desktops/kde-4.7/graphics/kruler.nix
deleted file mode 100644
index adfd50ae0160..000000000000
--- a/pkgs/desktops/kde-4.7/graphics/kruler.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{ automoc4, cmake, kde, kdelibs, qt4, phonon }:
-
-kde.package {
-
-  buildInputs = [ cmake kdelibs qt4 automoc4 phonon ];
-
-  meta = {
-    description = "KDE screen ruler";
-    license = "GPLv2";
-    kde.name = "kruler";
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/graphics/ksnapshot.nix b/pkgs/desktops/kde-4.7/graphics/ksnapshot.nix
deleted file mode 100644
index 6eadbd88c65b..000000000000
--- a/pkgs/desktops/kde-4.7/graphics/ksnapshot.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{ automoc4, cmake, kde, kdelibs, qt4, libkipi, phonon }:
-
-kde.package {
-
-  buildInputs = [ cmake kdelibs qt4 automoc4 libkipi phonon ];
-
-  meta = {
-    description = "KDE screenshot utility";
-    license = "GPLv2";
-    kde.name = "ksnapshot";
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/graphics/okular.nix b/pkgs/desktops/kde-4.7/graphics/okular.nix
deleted file mode 100644
index 1b9ab5f2706b..000000000000
--- a/pkgs/desktops/kde-4.7/graphics/okular.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ automoc4, chmlib, cmake, djvulibre, ebook_tools, kde, kdelibs, libspectre
-, popplerQt4, qca2, qimageblitz, qt4, phonon }:
-
-kde.package {
-
-  buildInputs =
-    [ automoc4 chmlib cmake djvulibre ebook_tools kdelibs libspectre popplerQt4
-      qca2 qimageblitz qt4 phonon
-    ];
-
-  meta = {
-    description = "Okular, the KDE document viewer";
-    license = "GPLv2";
-    kde.name = "okular";
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/kate.nix b/pkgs/desktops/kde-4.7/kate.nix
deleted file mode 100644
index f5b445791b15..000000000000
--- a/pkgs/desktops/kde-4.7/kate.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{ automoc4, cmake, kde, kdelibs, qt4, shared_mime_info, perl, phonon }:
-
-kde.package {
-
-  buildInputs = [ cmake kdelibs qt4 automoc4 shared_mime_info perl phonon ];
-
-  meta = {
-    description = "Kate, the KDE Advanced Text Editor, as well as KWrite";
-    license = "GPLv2";
-    kde.name = "kate";
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/kcolorchooser.nix b/pkgs/desktops/kde-4.7/kcolorchooser.nix
deleted file mode 100644
index 0b9f2dcba74c..000000000000
--- a/pkgs/desktops/kde-4.7/kcolorchooser.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{ automoc4, cmake, kde, kdelibs, qt4, phonon }:
-
-kde.package {
-
-  buildInputs = [ cmake kdelibs qt4 automoc4 phonon ];
-
-  meta = {
-    description = "KDE color chooser utility";
-    license = "GPLv2";
-    kde.name = "kcolorchooser";
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/kde-package/4.7.0.nix b/pkgs/desktops/kde-4.7/kde-package/4.7.0.nix
new file mode 100644
index 000000000000..b3192fadb8ba
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kde-package/4.7.0.nix
@@ -0,0 +1 @@
+{stable=true;hashes=builtins.listToAttrs[{name="blinken";value="1g4vpwbal6d7ypmq6l8dh17gi249cd261hsa4bjkvb0wx88i66qr";}{name="cantor";value="0xb4xja9ab4kzgzpikhlkrl68287lqdigvl6pzbh9m6g0ghlp697";}{name="gwenview";value="14a1mjcfcw4nq2c5qkvca8mgdrr31gm24l9nlkcj7p8yrpkxfykh";}{name="kalgebra";value="140528rn3zx489g1lawr1n19i3rrc58h2ii8gh46dnlfcgig13bb";}{name="kalzium";value="1vfa9kdxrdfqqfad0dp2pwi919qs5pbgdk7jmi4dccwlhgmv3226";}{name="kamera";value="02g3mh14rfyrmpa3r8m5pqzxhs4kdb3xvg34434g9r51v3am3ypk";}{name="kanagram";value="04hv13mij4kg8bifs690q4qxr4qk7dnviihlc297x434l0iz2spd";}{name="kate";value="0bd0b354a7cx8cmw2d5pbqn0an38xls86454gclyjd1ilr3l41m9";}{name="kbruch";value="169c6xq0jvp9cv6p9ypk8sryxsh711xdgbs02yiqd476ykavj3jv";}{name="kcolorchooser";value="1f7nj9ccvf1bg3nnm7xchaqvfnskkbnd1h2xd5fxmj9fz1195kqv";}{name="kdeaccessibility";value="01qx0w5dylkbxchj5kg9iawdc0rjbxv1w1dg90ld98fn583g70ws";}{name="kdeadmin";value="1zm6p65wgdn0rv9vzcm89vsiw1696g0bf7kshvwnjmsfc9whsgq3";}{name="kdeartwork";value="12cqpam82k086088i2p1318y1vjr7c8iffppnm6mkbllg2g8ydip";}{name="kde-baseapps";value="0jpi3fjsav52v6ziwdldy03akfpahaagjp3g3m015cmn9bhk2l71";}{name="kdegames";value="1n98jiax7s4m8gb2jq5vdwsg6sfkls7m4mfm627dfsqmvpcgf9k0";}{name="kdegraphics-strigi-analyzer";value="15p0wsiawhygdq9fwp451vcbxbf1sv9pvlwz3x4ma5mp8la7k4vd";}{name="kdegraphics-thumbnailers";value="1gl08an6gzdxvam9fvq5c98zm8m95h6184y0hf0zlqjzkqgg312l";}{name="kdelibs";value="1f0wmcsw0lkfaqdil2yxjfpldr0ckwy5iblkwwaad4n1b4hyssyv";}{name="kdemultimedia";value="0b53vg6gp4qv92w7y721xwbv23bzzljvyl18j05z8ig2l6m57kf5";}{name="kdenetwork";value="1ifg2hxbh80fpszm9r1jzamy65jlkqb6y8fcfa0sngwsklkxn5sh";}{name="kdepim";value="140n4q1rf2jbxmqmkwzam1fipk4k30n3wn9ik8mlqfmxm06dhgqs";}{name="kdepimlibs";value="020irkn43q999idk4kwfi9250fvk98ffi9m998ywgzfl9wps01g0";}{name="kdepim-runtime";value="11ad82hisya8ysx6p1ik6nw1hbyqwksxhimlxcrjkkjh76nphs2g";}{name="kdeplasma-addons";value="1bi7n6lav9z08pvarhsgx9wmm14mr34mvjm4vk9jszrdi7vl2ayj";}{name="kde-runtime";value="1wm91hkj8h1rbavcxwgjfsfrzhr3rs1xd6zf2kxyh1hh9fkdrx3w";}{name="kdesdk";value="04kx9srv8a4z9lic9v3f375rglpz87hhq6wppxksi9qgyc0vzqnv";}{name="kdetoys";value="1ahsk0990a3zx665mjqaljb5w392qkk1pnla5srqg57g62yhig8f";}{name="kdeutils";value="1n031c1i42bq08md156k7fhzw67b28b0a6168m9c9hnhh3483r7l";}{name="kde-wallpapers";value="1xb9k9w479xcwa4caxqn4z1h942lvx7ahy0crxkk41ra3xgw7fg9";}{name="kdewebdev";value="0v8v45rwfldk299ny0jhxqa7xsa1x0ywz7lbqc9i0m3g808ifa29";}{name="kde-workspace";value="0s1l7airb92dd4vprry39nzikarv03qfsmd2j0brif5jjfjd2c3y";}{name="kgamma";value="1xgxnb8x2iy1ikychs8bh5jplkdlk7br6yrmivzrz7s2337dlm35";}{name="kgeography";value="1pm4y5d4d0cl36wgwrkm48yk60m73ljys2awahjsfdpwxs0x42ca";}{name="khangman";value="0ccp1qsji6jjybcbc0rwkw78ypl5kwk1kb74vrnz2ss9anxky2c3";}{name="kig";value="06nk38wg43rxxdzr535vrw4f3d1v9kym5bir6vfpyay8xdxqgf5f";}{name="kimono";value="1p4scmzn0kbkpbrv27658bh56ll9zazaf3rk1p2c6lm6zglvm9gd";}{name="kiten";value="119h7fslp975r0kd7i1zmvhrfrr19rlhm4ni99pd4jxnhz05n47k";}{name="klettres";value="0znca4iqgxlmldyzmd5rf9z2c0jhmmijwxyxaqjffrphq407wms0";}{name="kmplot";value="1zyk3701mhga9d53bm8xyzbw4zn6s9ijfnp0ww2hq9dcm81w12ga";}{name="kolourpaint";value="0ckqz8fmaq92lkaxm87c2nfdjvwp4l310vnicqm2bkkmkma9p6cs";}{name="konsole";value="1apchw8n1k2xyi3h0n3w4fxwy6vx6lxhx7ll3vhfmyl8wa0gzwf5";}{name="korundum";value="1ndhbn6i5napfgp5czsbww1vknss49xhxlj6rn5ci1m5j2zfajic";}{name="kross-interpreters";value="0hzx08r60z9pl7i1hnh6q1zq4s7wmny4015b55prllaa94yb1ya2";}{name="kruler";value="1bydk587las6dx447mihkg7qmn0hn6iis20xfl4wygx7a81imnw3";}{name="ksaneplugin";value="02g4vdgz4k7rahkwss5m1vfv22rzhr6gzmzf79vrbg15mci57jzz";}{name="ksnapshot";value="1dllmx8v2qzkfhy9b3j87yjmkyl3fdkjbmdfqlk5kq2n40k3fha0";}{name="kstars";value="0qgsphimg200kapnjwqh3186z27ypszmhr4knk46jyyczmj2k4nd";}{name="ktouch";value="1w1ps11xazqvvh66v78r714283kd5icvz6dgbh7wfangpqya2g9i";}{name="kturtle";value="0xiz13nb2wgajgm2z105pywi0fcw09appp4k4wbg6nykqdcql0n5";}{name="kwordquiz";value="1rja09mvp7j264ap27m4413dy8l1867ds1w3yizlqlcrl92fby7b";}{name="libkdcraw";value="0dcplib41s5cnv5jjnx2y7d9gd4vls6qlf1vpr1iqsbhrr0az50a";}{name="libkdeedu";value="0nq2b4l5134lkyv0vzfqpp5w7vbr0b6lg88xyjlpih6n9bywiv16";}{name="libkexiv2";value="1fgawizv09vv0almb05sf5f93iqsp3w8x9nx4p9hys66qiz8n467";}{name="libkipi";value="09gpjx4vyncf6js79jf7w4w55lgnzawii40ar7ssrhnxspckbdn0";}{name="libksane";value="1ffwz2g4y12fg8pckz1a0qizziljv17zbn7g1vjf30pw8dpk0x12";}{name="marble";value="0x5yhs28g0z1s9qjmgkdidfp0hmy526l9cmqjccaqn7a61ziv0qz";}{name="mobipocket";value="06qh1xdijc4fscpbxfc7f6mmy1dkxvhx7sb4fmhk2m3z569ir2jx";}{name="okular";value="016xa6i0n1nyq1h9z8nhwc9br9k09l0c2gxhzfd9g6nf528zlbdf";}{name="oxygen-icons";value="1a4dkhay0qrbz9gz2xx3d7vbk18qyjrx9hxgdazjxr35ba6xipgc";}{name="parley";value="0zkj272wrih66mcpr27am9qnp3ab4275is06c8h6hzf5wmfq6sib";}{name="perlkde";value="0pp8ljvck68b45yxhknmyn8z1a1xnq3ahcpz8m6pfch77hlg7fhj";}{name="perlqt";value="0sw1dpxshmmdvp93x59wclslm5xza0yy0f8nmqgdns8c77g0b3k8";}{name="pykde4";value="1mdq474f4jj637k0a9jpb2vcvq4f90vwrhgjs7mqqwmvkh6vv6h0";}{name="qtruby";value="1h7m17d36y5vgaxcqwa814yxmsx19v0xh9m83cq1zznxl62sbmh1";}{name="qyoto";value="1lbdv00hd0s0m5ywjnb52wgz3hb5nx45kwpjkjrjcj1jg76rvk72";}{name="rocs";value="1ma5ylc4rvzjrn1l8rv8684map78zk73fa1a3iz996z1c5fg09wm";}{name="smokegen";value="1g05if9k9ichxlrfly5lha6n2mcihbaz681yg14cjj806s0qs53l";}{name="smokekde";value="0b8kx8a3990l6f7pf252diz7b50r81kxkhigkzkc9lzq833a2siq";}{name="smokeqt";value="0cgjdh9dr4pn1yh423mhifv2yvd283k2mhwkmfn2i0398h71a252";}{name="step";value="1pg7k60rbvr6nfq47xnj98w121703s79z8rap601xrmb8wyfhmyy";}{name="svgpart";value="0xyp4sibcdjxq2ny348m4z95bh71r3q3pm8xfwb1j50my9g8ijir";}];modules=[{module="kdegraphics";split=true;pkgs=[{name="gwenview";}{name="kamera";}{name="kcolorchooser";}{name="kdegraphics-strigi-analyzer";sane="kdegraphics_strigi_analyzer";}{name="kdegraphics-thumbnailers";sane="kdegraphics_thumbnailers";}{name="kgamma";}{name="kolourpaint";}{name="kruler";}{name="ksaneplugin";}{name="ksnapshot";}{name="libkdcraw";}{name="libkexiv2";}{name="libkipi";}{name="libksane";}{name="mobipocket";}{name="okular";}{name="svgpart";}];}{module="kdebase";split=true;pkgs=[{name="kate";}{name="kde-baseapps";sane="kde_baseapps";}{name="kde-runtime";sane="kde_runtime";}{name="kde-workspace";sane="kde_workspace";}{name="konsole";}];}{module="kdeedu";split=true;pkgs=[{name="blinken";}{name="cantor";}{name="kalgebra";}{name="kalzium";}{name="kanagram";}{name="kbruch";}{name="kgeography";}{name="khangman";}{name="kig";}{name="kiten";}{name="klettres";}{name="kmplot";}{name="kstars";}{name="ktouch";}{name="kturtle";}{name="kwordquiz";}{name="libkdeedu";}{name="marble";}{name="parley";}{name="rocs";}{name="step";}];}{module="kdebindings";split=true;pkgs=[{name="kimono";}{name="korundum";}{name="kross-interpreters";sane="kross_interpreters";}{name="perlkde";}{name="perlqt";}{name="pykde4";}{name="qtruby";}{name="qyoto";}{name="smokegen";}{name="smokekde";}{name="smokeqt";}];}{module="kdeaccessibility";split=false;pkgs=[{name="kaccessible";}{name="kmag";}{name="kmouth";}{name="kmousetool";}{name="jovie";}];}{module="kdeadmin";split=false;pkgs=[{name="strigi-analyzer";sane="strigi_analyzer";}{name="kuser";}{name="kcron";}{name="ksystemlog";}{name="system-config-printer-kde";sane="system_config_printer_kde";}];}{module="kdeartwork";split=false;pkgs=[{name="ColorSchemes";}{name="IconThemes";}{name="emoticons";}{name="kscreensaver";}{name="kwin-styles";sane="kwin_styles";}{name="sounds";}{name="styles";}{name="wallpapers";}{name="HighResolutionWallpapers";}{name="WeatherWallpapers";}{name="desktopthemes";}{name="aurorae";}];}{module="kdegames";split=false;}{module="kdelibs";split=false;}{module="kdemultimedia";split=false;}{module="kdenetwork";split=false;pkgs=[{name="kfile-plugins";sane="kfile_plugins";}{name="kget";}{name="kopete";}{name="krdc";}{name="kppp";}{name="krfb";}{name="kdnssd";}{name="filesharing";}];}{module="kdepim";split=false;}{module="kdepimlibs";split=false;}{module="kdepim-runtime";sane="kdepim_runtime";split=false;}{module="kdeplasma-addons";sane="kdeplasma_addons";split=false;}{module="kdesdk";split=false;pkgs=[{name="cervisia";}{name="lokalize";}{name="kdeaccounts-plugin";sane="kdeaccounts_plugin";}{name="dolphin-plugins-svn";sane="dolphin_plugins_svn";subdir="dolphin-plugins/svn";}{name="dolphin-plugins-git";sane="dolphin_plugins_git";subdir="dolphin-plugins/git";}{name="kcachegrind";}{name="kapptemplate";}{name="kpartloader";}{name="strigi-analyzer";sane="strigi_analyzer";}{name="kioslave";}{name="okteta";}{name="kmtrace";}{name="kompare";}{name="kprofilemethod";}{name="kstartperf";}{name="kuiviewer";}{name="poxml";}{name="scripts";}{name="umbrello";}];}{module="kdetoys";split=false;pkgs=[{name="kteatime";}{name="ktux";}{name="amor";}];}{module="kdeutils";split=false;pkgs=[{name="ark";}{name="kcalc";}{name="kremotecontrol";}{name="kdf";}{name="kfloppy";}{name="printer-applet";sane="printer_applet";}{name="filelight";}{name="kcharselect";}{name="kgpg";}{name="ktimer";}{name="kwallet";}{name="sweeper";}{name="superkaramba";}];}{module="kde-wallpapers";sane="kde_wallpapers";split=false;}{module="kdewebdev";split=false;pkgs=[{name="klinkstatus";}{name="kfilereplace";}{name="kimagemapeditor";}{name="kommander";}];}{module="oxygen-icons";sane="oxygen_icons";split=false;}];}
\ No newline at end of file
diff --git a/pkgs/desktops/kde-4.7/kde-package/default.nix b/pkgs/desktops/kde-4.7/kde-package/default.nix
deleted file mode 100644
index fe5e7a4a20da..000000000000
--- a/pkgs/desktops/kde-4.7/kde-package/default.nix
+++ /dev/null
@@ -1,63 +0,0 @@
-{ stdenv, fetchurl, release, stable ? true }:
-
-rec {
-  inherit release;
-  
-  stable_ = stable;
-
-  defaultArgs = { name, stable ? stable_, version ? release, module ? name, ... }:
-
-    (
-      {
-        name = "${name}-${version}";
-
-        src = fetchurl {
-          url = "mirror://kde/" + (if stable then "" else "un")
-            + "stable/${release}/src/${module}-${release}.tar.bz2";
-          sha256 = (stdenv.lib.findFirst
-              (x: x.module == module)
-              (throw "No module ${module} in release ${release}!")
-              (import (./manifest + "-${release}.nix"))
-            ).sha256;
-        };
-
-        enableParallelBuilding = true;
-
-        meta = {
-          maintainers = with stdenv.lib.maintainers; [ sander urkud ];
-          platforms = stdenv.lib.platforms.linux;
-          homepage = if name == module
-            then http://www.kde.org
-            else assert builtins.substring 0 3 module == "kde";
-              "http://"
-              + builtins.substring 3
-                (builtins.sub (builtins.stringLength module) 3) module
-              + ".kde.org/projects/${name}";
-        };
-      } // (if module == name then { } else {
-        cmakeFlags = ''
-          -DDISABLE_ALL_OPTIONAL_SUBDIRECTORIES=TRUE
-          -DBUILD_doc=TRUE -DBUILD_${name}=TRUE'';
-      })
-    );
-
-  package = a@{meta, ...}:
-    assert a.meta ? kde;
-    let
-      default = defaultArgs a.meta.kde;
-    in
-# hand-written merge
-    stdenv.mkDerivation (
-      default
-        // removeAttrs a [ "meta" "cmakeFlags" ]
-        // {
-          meta = default.meta // a.meta;
-        }
-        // (if default ? cmakeFlags || a ? cmakeFlags then {
-          cmakeFlags =
-            (if default ? cmakeFlags then "${default.cmakeFlags}" else "")
-            + (if default ? cmakeFlags && a ? cmakeFlags then " " else "")
-            + (if a ? cmakeFlags then a.cmakeFlags else "");
-        } else { }
-      ));
-}
diff --git a/pkgs/desktops/kde-4.7/kde-package/kde-manifest.sh b/pkgs/desktops/kde-4.7/kde-package/kde-manifest.sh
index 3811769c57ae..10ce57cee6af 100755
--- a/pkgs/desktops/kde-4.7/kde-package/kde-manifest.sh
+++ b/pkgs/desktops/kde-4.7/kde-package/kde-manifest.sh
@@ -1,30 +1,141 @@
-#!/bin/sh
+#!/usr/bin/env bash
 
 # Usage: download kde release to $dir, then run
 # $0 $dir
 
-dir=$1
+dir="$1"
 
+# Detect release number & whether it is a stable release
 if [[ ! -d "${dir}" ]]; then
   echo "${dir} is not a directory (or doesn't exist)!" >&2
   exit 1
 fi
 
 release=$(ls "${dir}"/kdelibs-*.tar.bz2 | \
-	sed -e 's/.*kdelibs-//' -e 's/\.tar\.bz2//')
+  sed -e 's/.*kdelibs-//' -e 's/\.tar\.bz2//')
+
+if [[ ${release##*.} -gt 50 ]]; then
+  stable="false"
+else
+  stable="true"
+fi
 
 echo "Detected release ${release}" >&2
 
-exec > "manifest-${release}.nix"
-echo "["
+declare -A hash
+declare -A modules
+declare -a packages
+declare -a top_level
+
+# xsltproc output declares -A module
+if [[ ! -f kde_projects.xml ]]; then
+  curl -O -J http://projects.kde.org/kde_projects.xml
+fi
+eval `xsltproc kde-submodules.xslt kde_projects.xml`
+
+print_sane() {
+  echo "Called print_sane $1" >&2
+  sane="${1//[^a-z0-9_]/_}"
+  if [[ "$sane" != "$1" ]]; then
+    echo "Sane version is $sane" >&2
+    echo -n "sane=\"$sane\";"
+  fi
+}
+
 for i in `cd "${dir}"; ls *-${release}.tar.bz2`; do
-  module=${i%-${release}.tar.bz2}
-  echo -n "${module}.. " >&2
-  hash=$(nix-hash --type sha256 --flat --base32 "${dir}/${i}")
-  echo "{"
-  echo "  module = \"${module}\";"
-  echo "  sha256 = \"${hash}\";"
-  echo "}"
-  echo $hash >&2
+  package=${i%-${release}.tar.bz2}
+  packages+=( "$package" )
+  echo -n "${package}.. " >&2
+  hash[$package]=$(nix-hash --type sha256 --flat --base32 "${dir}/${i}")
+  echo -n ${hash[$package]} >&2
+
+  if [ -n "${module[$package]}" ]; then
+    m="${module[$package]}"
+    echo " (${m})" >&2
+    modules[$m]=1
+  else
+    top_level+=( "$package" )
+    echo " (top-level)" >&2
+  fi
+  #nix-store --add-fixed sha256 "${dir}/${i}" >&2
 done
-echo "]"
+
+
+print_pkg_hash() {
+  echo -n "{name=\"${1}\";value=\"${hash[$1]}\";}"
+}
+
+print_hashes(){
+  echo -n "hashes=builtins.listToAttrs["
+  for p in "${packages[@]}"; do print_pkg_hash "$p"; done
+  echo -n "];"
+}
+
+print_split_module(){
+  echo -n "$1:" >&2
+  echo -n "{module=\"$1\";"
+  print_sane "$1"
+  echo -n "split=true;"
+  echo -n "pkgs=["
+  for p in "${packages[@]}"; do
+    if [[ "${module[$p]}" == "$1" ]]; then
+      echo -n "{name=\"$p\";"
+      print_sane "$p"
+      echo -n "}"
+      echo -n " $p" >&2
+    fi
+  done
+  echo -n "];}"
+  echo >&2
+}
+
+print_mono_module(){
+  echo -n "{module=\"$1\";"
+  print_sane "$1"
+  echo -n "$1 ... " >&2
+  echo -n "split=false;"
+  cml="$1-$release/CMakeLists.txt"
+  tar -xf "${dir}/$1-${release}.tar.bz2" "$cml"
+  if grep '^[^#]*add_subdirectory' $cml >/dev/null; then
+    if grep '^[^#]*add_subdirectory' $cml | grep -v macro_optional_add_subdirectory >/dev/null; then
+      echo " is monolithic (has unconditionally added subdirs)" >&2
+    else
+      subdirs=( `grep '^[^#]*add_subdirectory' $cml |
+        sed -e 's/[^#]*add_subdirectory *( *\(.*\) *)/\1/' |
+        grep -v '\(doc\|cmake\)'` )
+      echo " seems splittable, subdirs: ${subdirs[*]}" >&2
+      echo -n "pkgs=["
+      for s in "${subdirs[@]}"; do
+        echo -n "{name=\"${s//\//-}\";"
+        print_sane "$s"
+        if [[ $s != "${s//\//-}" ]]; then
+          echo -n "subdir=\"$s\";"
+        fi
+        echo -n "}"
+      done
+    echo -n "];"
+    fi
+  else
+    echo " is monolithic (has no subdirs)" >&2
+  fi
+  rm $cml
+  rmdir $1-$release
+  echo -n "}"
+}
+
+print_modules(){
+  echo -n "modules=["
+  echo "Printing modules splitted by upstream" >&2
+  for m in "${!modules[@]}"; do print_split_module "$m"; done
+  echo >&2
+  echo "Printing modules not splitted by upstream (${top_level[*]})" >&2
+  for m in "${top_level[@]}"; do print_mono_module "$m"; done
+  echo -n "];"
+}
+
+echo "Writing ${release}.nix" >&2
+exec > "${release}.nix"
+echo -n "{stable=${stable};"
+print_hashes
+print_modules
+echo -n "}"
diff --git a/pkgs/desktops/kde-4.7/kde-package/kde-submodules.xslt b/pkgs/desktops/kde-4.7/kde-package/kde-submodules.xslt
new file mode 100644
index 000000000000..952a05a9d274
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kde-package/kde-submodules.xslt
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- xslt file for http://projects.kde.org/kde_projects.xml -->
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+	<xsl:output method="text" />
+	<xsl:template match="/">
+		<xsl:for-each select="kdeprojects/component[@identifier='kde']">
+			<xsl:text>declare -A module
</xsl:text>
+			<xsl:for-each select="module">
+				<xsl:variable name="module" select='@identifier' />
+				<xsl:for-each select=".//project[repo]">
+					<xsl:text>module["</xsl:text>
+					<xsl:value-of select='@identifier' />
+					<xsl:text>"]="</xsl:text>
+					<xsl:value-of select="$module" />
+					<xsl:text>"
</xsl:text>
+				</xsl:for-each>
+			</xsl:for-each>
+		</xsl:for-each>
+	</xsl:template>
+</xsl:stylesheet>
diff --git a/pkgs/desktops/kde-4.7/kde-package/manifest-4.7.0.nix b/pkgs/desktops/kde-4.7/kde-package/manifest-4.7.0.nix
deleted file mode 100644
index 82e1ead117c6..000000000000
--- a/pkgs/desktops/kde-4.7/kde-package/manifest-4.7.0.nix
+++ /dev/null
@@ -1,286 +0,0 @@
-[
-{
-  module = "blinken";
-  sha256 = "1g4vpwbal6d7ypmq6l8dh17gi249cd261hsa4bjkvb0wx88i66qr";
-}
-{
-  module = "cantor";
-  sha256 = "0xb4xja9ab4kzgzpikhlkrl68287lqdigvl6pzbh9m6g0ghlp697";
-}
-{
-  module = "gwenview";
-  sha256 = "14a1mjcfcw4nq2c5qkvca8mgdrr31gm24l9nlkcj7p8yrpkxfykh";
-}
-{
-  module = "kalgebra";
-  sha256 = "140528rn3zx489g1lawr1n19i3rrc58h2ii8gh46dnlfcgig13bb";
-}
-{
-  module = "kalzium";
-  sha256 = "1vfa9kdxrdfqqfad0dp2pwi919qs5pbgdk7jmi4dccwlhgmv3226";
-}
-{
-  module = "kamera";
-  sha256 = "02g3mh14rfyrmpa3r8m5pqzxhs4kdb3xvg34434g9r51v3am3ypk";
-}
-{
-  module = "kanagram";
-  sha256 = "04hv13mij4kg8bifs690q4qxr4qk7dnviihlc297x434l0iz2spd";
-}
-{
-  module = "kate";
-  sha256 = "0bd0b354a7cx8cmw2d5pbqn0an38xls86454gclyjd1ilr3l41m9";
-}
-{
-  module = "kbruch";
-  sha256 = "169c6xq0jvp9cv6p9ypk8sryxsh711xdgbs02yiqd476ykavj3jv";
-}
-{
-  module = "kcolorchooser";
-  sha256 = "1f7nj9ccvf1bg3nnm7xchaqvfnskkbnd1h2xd5fxmj9fz1195kqv";
-}
-{
-  module = "kdeaccessibility";
-  sha256 = "01qx0w5dylkbxchj5kg9iawdc0rjbxv1w1dg90ld98fn583g70ws";
-}
-{
-  module = "kdeadmin";
-  sha256 = "1zm6p65wgdn0rv9vzcm89vsiw1696g0bf7kshvwnjmsfc9whsgq3";
-}
-{
-  module = "kdeartwork";
-  sha256 = "12cqpam82k086088i2p1318y1vjr7c8iffppnm6mkbllg2g8ydip";
-}
-{
-  module = "kde-baseapps";
-  sha256 = "0jpi3fjsav52v6ziwdldy03akfpahaagjp3g3m015cmn9bhk2l71";
-}
-{
-  module = "kdegames";
-  sha256 = "1n98jiax7s4m8gb2jq5vdwsg6sfkls7m4mfm627dfsqmvpcgf9k0";
-}
-{
-  module = "kdegraphics-strigi-analyzer";
-  sha256 = "15p0wsiawhygdq9fwp451vcbxbf1sv9pvlwz3x4ma5mp8la7k4vd";
-}
-{
-  module = "kdegraphics-thumbnailers";
-  sha256 = "1gl08an6gzdxvam9fvq5c98zm8m95h6184y0hf0zlqjzkqgg312l";
-}
-{
-  module = "kdelibs";
-  sha256 = "1f0wmcsw0lkfaqdil2yxjfpldr0ckwy5iblkwwaad4n1b4hyssyv";
-}
-{
-  module = "kdemultimedia";
-  sha256 = "0b53vg6gp4qv92w7y721xwbv23bzzljvyl18j05z8ig2l6m57kf5";
-}
-{
-  module = "kdenetwork";
-  sha256 = "1ifg2hxbh80fpszm9r1jzamy65jlkqb6y8fcfa0sngwsklkxn5sh";
-}
-{
-  module = "kdepim";
-  sha256 = "140n4q1rf2jbxmqmkwzam1fipk4k30n3wn9ik8mlqfmxm06dhgqs";
-}
-{
-  module = "kdepimlibs";
-  sha256 = "020irkn43q999idk4kwfi9250fvk98ffi9m998ywgzfl9wps01g0";
-}
-{
-  module = "kdepim-runtime";
-  sha256 = "11ad82hisya8ysx6p1ik6nw1hbyqwksxhimlxcrjkkjh76nphs2g";
-}
-{
-  module = "kdeplasma-addons";
-  sha256 = "1bi7n6lav9z08pvarhsgx9wmm14mr34mvjm4vk9jszrdi7vl2ayj";
-}
-{
-  module = "kde-runtime";
-  sha256 = "1wm91hkj8h1rbavcxwgjfsfrzhr3rs1xd6zf2kxyh1hh9fkdrx3w";
-}
-{
-  module = "kdesdk";
-  sha256 = "04kx9srv8a4z9lic9v3f375rglpz87hhq6wppxksi9qgyc0vzqnv";
-}
-{
-  module = "kdetoys";
-  sha256 = "1ahsk0990a3zx665mjqaljb5w392qkk1pnla5srqg57g62yhig8f";
-}
-{
-  module = "kdeutils";
-  sha256 = "1n031c1i42bq08md156k7fhzw67b28b0a6168m9c9hnhh3483r7l";
-}
-{
-  module = "kde-wallpapers";
-  sha256 = "1xb9k9w479xcwa4caxqn4z1h942lvx7ahy0crxkk41ra3xgw7fg9";
-}
-{
-  module = "kdewebdev";
-  sha256 = "0v8v45rwfldk299ny0jhxqa7xsa1x0ywz7lbqc9i0m3g808ifa29";
-}
-{
-  module = "kde-workspace";
-  sha256 = "0s1l7airb92dd4vprry39nzikarv03qfsmd2j0brif5jjfjd2c3y";
-}
-{
-  module = "kgamma";
-  sha256 = "1xgxnb8x2iy1ikychs8bh5jplkdlk7br6yrmivzrz7s2337dlm35";
-}
-{
-  module = "kgeography";
-  sha256 = "1pm4y5d4d0cl36wgwrkm48yk60m73ljys2awahjsfdpwxs0x42ca";
-}
-{
-  module = "khangman";
-  sha256 = "0ccp1qsji6jjybcbc0rwkw78ypl5kwk1kb74vrnz2ss9anxky2c3";
-}
-{
-  module = "kig";
-  sha256 = "06nk38wg43rxxdzr535vrw4f3d1v9kym5bir6vfpyay8xdxqgf5f";
-}
-{
-  module = "kimono";
-  sha256 = "1p4scmzn0kbkpbrv27658bh56ll9zazaf3rk1p2c6lm6zglvm9gd";
-}
-{
-  module = "kiten";
-  sha256 = "119h7fslp975r0kd7i1zmvhrfrr19rlhm4ni99pd4jxnhz05n47k";
-}
-{
-  module = "klettres";
-  sha256 = "0znca4iqgxlmldyzmd5rf9z2c0jhmmijwxyxaqjffrphq407wms0";
-}
-{
-  module = "kmplot";
-  sha256 = "1zyk3701mhga9d53bm8xyzbw4zn6s9ijfnp0ww2hq9dcm81w12ga";
-}
-{
-  module = "kolourpaint";
-  sha256 = "0ckqz8fmaq92lkaxm87c2nfdjvwp4l310vnicqm2bkkmkma9p6cs";
-}
-{
-  module = "konsole";
-  sha256 = "1apchw8n1k2xyi3h0n3w4fxwy6vx6lxhx7ll3vhfmyl8wa0gzwf5";
-}
-{
-  module = "korundum";
-  sha256 = "1ndhbn6i5napfgp5czsbww1vknss49xhxlj6rn5ci1m5j2zfajic";
-}
-{
-  module = "kross-interpreters";
-  sha256 = "0hzx08r60z9pl7i1hnh6q1zq4s7wmny4015b55prllaa94yb1ya2";
-}
-{
-  module = "kruler";
-  sha256 = "1bydk587las6dx447mihkg7qmn0hn6iis20xfl4wygx7a81imnw3";
-}
-{
-  module = "ksaneplugin";
-  sha256 = "02g4vdgz4k7rahkwss5m1vfv22rzhr6gzmzf79vrbg15mci57jzz";
-}
-{
-  module = "ksnapshot";
-  sha256 = "1dllmx8v2qzkfhy9b3j87yjmkyl3fdkjbmdfqlk5kq2n40k3fha0";
-}
-{
-  module = "kstars";
-  sha256 = "0qgsphimg200kapnjwqh3186z27ypszmhr4knk46jyyczmj2k4nd";
-}
-{
-  module = "ktouch";
-  sha256 = "1w1ps11xazqvvh66v78r714283kd5icvz6dgbh7wfangpqya2g9i";
-}
-{
-  module = "kturtle";
-  sha256 = "0xiz13nb2wgajgm2z105pywi0fcw09appp4k4wbg6nykqdcql0n5";
-}
-{
-  module = "kwordquiz";
-  sha256 = "1rja09mvp7j264ap27m4413dy8l1867ds1w3yizlqlcrl92fby7b";
-}
-{
-  module = "libkdcraw";
-  sha256 = "0dcplib41s5cnv5jjnx2y7d9gd4vls6qlf1vpr1iqsbhrr0az50a";
-}
-{
-  module = "libkdeedu";
-  sha256 = "0nq2b4l5134lkyv0vzfqpp5w7vbr0b6lg88xyjlpih6n9bywiv16";
-}
-{
-  module = "libkexiv2";
-  sha256 = "1fgawizv09vv0almb05sf5f93iqsp3w8x9nx4p9hys66qiz8n467";
-}
-{
-  module = "libkipi";
-  sha256 = "09gpjx4vyncf6js79jf7w4w55lgnzawii40ar7ssrhnxspckbdn0";
-}
-{
-  module = "libksane";
-  sha256 = "1ffwz2g4y12fg8pckz1a0qizziljv17zbn7g1vjf30pw8dpk0x12";
-}
-{
-  module = "marble";
-  sha256 = "0x5yhs28g0z1s9qjmgkdidfp0hmy526l9cmqjccaqn7a61ziv0qz";
-}
-{
-  module = "mobipocket";
-  sha256 = "06qh1xdijc4fscpbxfc7f6mmy1dkxvhx7sb4fmhk2m3z569ir2jx";
-}
-{
-  module = "okular";
-  sha256 = "016xa6i0n1nyq1h9z8nhwc9br9k09l0c2gxhzfd9g6nf528zlbdf";
-}
-{
-  module = "oxygen-icons";
-  sha256 = "1a4dkhay0qrbz9gz2xx3d7vbk18qyjrx9hxgdazjxr35ba6xipgc";
-}
-{
-  module = "parley";
-  sha256 = "0zkj272wrih66mcpr27am9qnp3ab4275is06c8h6hzf5wmfq6sib";
-}
-{
-  module = "perlkde";
-  sha256 = "0pp8ljvck68b45yxhknmyn8z1a1xnq3ahcpz8m6pfch77hlg7fhj";
-}
-{
-  module = "perlqt";
-  sha256 = "0sw1dpxshmmdvp93x59wclslm5xza0yy0f8nmqgdns8c77g0b3k8";
-}
-{
-  module = "pykde4";
-  sha256 = "1mdq474f4jj637k0a9jpb2vcvq4f90vwrhgjs7mqqwmvkh6vv6h0";
-}
-{
-  module = "qtruby";
-  sha256 = "1h7m17d36y5vgaxcqwa814yxmsx19v0xh9m83cq1zznxl62sbmh1";
-}
-{
-  module = "qyoto";
-  sha256 = "1lbdv00hd0s0m5ywjnb52wgz3hb5nx45kwpjkjrjcj1jg76rvk72";
-}
-{
-  module = "rocs";
-  sha256 = "1ma5ylc4rvzjrn1l8rv8684map78zk73fa1a3iz996z1c5fg09wm";
-}
-{
-  module = "smokegen";
-  sha256 = "1g05if9k9ichxlrfly5lha6n2mcihbaz681yg14cjj806s0qs53l";
-}
-{
-  module = "smokekde";
-  sha256 = "0b8kx8a3990l6f7pf252diz7b50r81kxkhigkzkc9lzq833a2siq";
-}
-{
-  module = "smokeqt";
-  sha256 = "0cgjdh9dr4pn1yh423mhifv2yvd283k2mhwkmfn2i0398h71a252";
-}
-{
-  module = "step";
-  sha256 = "1pg7k60rbvr6nfq47xnj98w121703s79z8rap601xrmb8wyfhmyy";
-}
-{
-  module = "svgpart";
-  sha256 = "0xyp4sibcdjxq2ny348m4z95bh71r3q3pm8xfwb1j50my9g8ijir";
-}
-]
diff --git a/pkgs/desktops/kde-4.7/wallpapers.nix b/pkgs/desktops/kde-4.7/kde-wallpapers.nix
similarity index 57%
rename from pkgs/desktops/kde-4.7/wallpapers.nix
rename to pkgs/desktops/kde-4.7/kde-wallpapers.nix
index 9b83b4a9f085..60298e567fbc 100644
--- a/pkgs/desktops/kde-4.7/wallpapers.nix
+++ b/pkgs/desktops/kde-4.7/kde-wallpapers.nix
@@ -1,8 +1,8 @@
-{ automoc4, cmake, kde, kdelibs, qt4, phonon }:
+{ kde, kdelibs }:
 
-kde.package {
+kde {
 
-  buildInputs = [ cmake kdelibs qt4 automoc4 phonon ];
+  buildInputs = [ kdelibs ];
 
   outputHashAlgo = "sha256";
   outputHashMode = "recursive";
@@ -10,6 +10,5 @@ kde.package {
 
   meta = {
     description = "Wallpapers for KDE";
-    kde.name = "kde-wallpapers";
   };
 }
diff --git a/pkgs/desktops/kde-4.7/kdeaccessibility/jovie.nix b/pkgs/desktops/kde-4.7/kdeaccessibility/jovie.nix
new file mode 100644
index 000000000000..d38c80c4c36a
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeaccessibility/jovie.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs, speechd }:
+
+kde {
+  buildInputs = [ kdelibs speechd ];
+
+  meta = {
+    description = "Text-to-speech synthesis daemon";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeaccessibility/kaccessible.nix b/pkgs/desktops/kde-4.7/kdeaccessibility/kaccessible.nix
new file mode 100644
index 000000000000..98fae7c983f8
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeaccessibility/kaccessible.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs, speechd }:
+
+kde {
+  buildInputs = [ kdelibs speechd ];
+
+  meta = {
+    description = "Bridge that provides accessibility services to applications";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeaccessibility/kmag.nix b/pkgs/desktops/kde-4.7/kdeaccessibility/kmag.nix
new file mode 100644
index 000000000000..f3b27dacf672
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeaccessibility/kmag.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Screen magnifier for KDE";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeaccessibility/kmousetool.nix b/pkgs/desktops/kde-4.7/kdeaccessibility/kmousetool.nix
new file mode 100644
index 000000000000..42306049c5d5
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeaccessibility/kmousetool.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs, libXtst }:
+
+kde {
+  buildInputs = [ kdelibs libXtst ];
+
+  meta = {
+    description = "A program that clicks the mouse for you";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeaccessibility/kmouth.nix b/pkgs/desktops/kde-4.7/kdeaccessibility/kmouth.nix
new file mode 100644
index 000000000000..4159501967cd
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeaccessibility/kmouth.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "A type-and-say front end for speech synthesizers";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeadmin/kcron.nix b/pkgs/desktops/kde-4.7/kdeadmin/kcron.nix
new file mode 100644
index 000000000000..bada0c1cb108
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeadmin/kcron.nix
@@ -0,0 +1,5 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+}
diff --git a/pkgs/desktops/kde-4.7/kdeadmin/ksystemlog.nix b/pkgs/desktops/kde-4.7/kdeadmin/ksystemlog.nix
new file mode 100644
index 000000000000..bada0c1cb108
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeadmin/ksystemlog.nix
@@ -0,0 +1,5 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+}
diff --git a/pkgs/desktops/kde-4.7/kdeadmin/kuser.nix b/pkgs/desktops/kde-4.7/kdeadmin/kuser.nix
new file mode 100644
index 000000000000..571674a461ad
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeadmin/kuser.nix
@@ -0,0 +1,5 @@
+{ kde, kdelibs, kdepimlibs }:
+
+kde {
+  buildInputs = [ kdelibs kdepimlibs ];
+}
diff --git a/pkgs/desktops/kde-4.7/admin.nix b/pkgs/desktops/kde-4.7/kdeadmin/system-config-printer-kde.nix
similarity index 55%
rename from pkgs/desktops/kde-4.7/admin.nix
rename to pkgs/desktops/kde-4.7/kdeadmin/system-config-printer-kde.nix
index f6722da307e9..2c462f67c159 100644
--- a/pkgs/desktops/kde-4.7/admin.nix
+++ b/pkgs/desktops/kde-4.7/kdeadmin/system-config-printer-kde.nix
@@ -1,27 +1,18 @@
-{ kde, cmake, qt4, pkgconfig, perl, pythonPackages
-, sip, pycups, pygobject, system_config_printer
-, kdelibs, automoc4, phonon, kdepimlibs, pykde4
-, cups, nettools }:
+{ kde, pkgconfig, pythonPackages, sip, pycups, pygobject, system_config_printer,
+  kdelibs, kdepimlibs, pykde4, cups, nettools }:
 
-let
+let s_c_p = system_config_printer.override { withGUI = false; }; in
+kde {
+  buildInputs = [ kdelibs kdepimlibs pythonPackages.python pycups pykde4 sip
+    pygobject s_c_p ];
 
-in
-
-kde.package rec {
-
-  buildInputs =
-    [ cmake kdelibs qt4 automoc4 phonon kdepimlibs
-      pythonPackages.python
-      pycups pykde4 sip pygobject system_config_printer
-    ];
-
-  passthru = { inherit system_config_printer; };
+  passthru = { system_config_printer = s_c_p; };
 
   preConfigure =
     ''
       for i in system-config-printer-kde/cmake-modules/FindSystemConfigPrinter.py system-config-printer-kde/system-config-printer-kde.py; do
         substituteInPlace $i \
-          --replace /usr/share/system-config-printer ${system_config_printer}/share/system-config-printer \
+          --replace /usr/share/system-config-printer ${s_c_p}/share/system-config-printer \
           --replace /usr/bin/cupstestppd ${cups}/bin/cupstestppd \
           --replace /bin/hostname ${nettools}/bin/hostname
       done
@@ -32,17 +23,11 @@ kde.package rec {
       # Bake the required Python path into the printer configuration program.
       res=
       for i in $(IFS=:; echo $PYTHONPATH); do res="$res''${res:+,} '$i'"; done
-      
+
       sed -i $out/share/apps/system-config-printer-kde/system-config-printer-kde.py \
           -e "1 a import sys\nsys.path = [$res] + sys.path"
-      
+
       mkdir -p $out/nix-support
       echo ${pykde4} > $out/nix-support/propagated-user-env-packages
     '';
-    
-  meta = {
-    description = "KDE Administration Utilities";
-    license = "GPL";
-    kde.name = "kdeadmin";
-  };
 }
diff --git a/pkgs/desktops/kde-4.7/kdeartwork/ColorSchemes.nix b/pkgs/desktops/kde-4.7/kdeartwork/ColorSchemes.nix
new file mode 100644
index 000000000000..acccf66976fc
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeartwork/ColorSchemes.nix
@@ -0,0 +1,11 @@
+{ kde, kdelibs }:
+
+kde {
+  name = "kde-color-schemes";
+
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Additional KDE color schemes";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/artwork/FindXscreensaver.cmake b/pkgs/desktops/kde-4.7/kdeartwork/FindXscreensaver.cmake
similarity index 100%
rename from pkgs/desktops/kde-4.7/artwork/FindXscreensaver.cmake
rename to pkgs/desktops/kde-4.7/kdeartwork/FindXscreensaver.cmake
diff --git a/pkgs/desktops/kde-4.7/kdeartwork/HighResolutionWallpapers.nix b/pkgs/desktops/kde-4.7/kdeartwork/HighResolutionWallpapers.nix
new file mode 100644
index 000000000000..edffca1562e1
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeartwork/HighResolutionWallpapers.nix
@@ -0,0 +1,11 @@
+{ kde, kdelibs }:
+
+kde rec {
+  name = "kde-wallpapers-high-resolution";
+
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "KDE wallpapers in high resolution";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeartwork/IconThemes.nix b/pkgs/desktops/kde-4.7/kdeartwork/IconThemes.nix
new file mode 100644
index 000000000000..43071e8bd142
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeartwork/IconThemes.nix
@@ -0,0 +1,13 @@
+{ kde, kdelibs }:
+
+kde {
+  name = "kdeartwork-icon-themes";
+
+  # Sources contain primary and kdeclassic as well but they're not installed
+
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "KDE nuvola and mono icon themes";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeartwork/WeatherWallpapers.nix b/pkgs/desktops/kde-4.7/kdeartwork/WeatherWallpapers.nix
new file mode 100644
index 000000000000..947e5e17ab0c
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeartwork/WeatherWallpapers.nix
@@ -0,0 +1,11 @@
+{ kde, kdelibs }:
+
+kde rec {
+  name = "kde-weather-wallpapers";
+
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Additional KDE wallpapers (weather)";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeartwork/aurorae.nix b/pkgs/desktops/kde-4.7/kdeartwork/aurorae.nix
new file mode 100644
index 000000000000..4bce95217cc6
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeartwork/aurorae.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs }:
+
+kde {
+  name = "aurorae-themes";
+
+  buildInputs = [ kdelibs ];
+}
diff --git a/pkgs/desktops/kde-4.7/kdeartwork/desktopthemes.nix b/pkgs/desktops/kde-4.7/kdeartwork/desktopthemes.nix
new file mode 100644
index 000000000000..93dd361af738
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeartwork/desktopthemes.nix
@@ -0,0 +1,11 @@
+{ kde, kdelibs }:
+
+kde {
+  name = "kde-desktop-themes";
+
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Additional KDE desktop themes";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeartwork/emoticons.nix b/pkgs/desktops/kde-4.7/kdeartwork/emoticons.nix
new file mode 100644
index 000000000000..5ef9f78a7195
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeartwork/emoticons.nix
@@ -0,0 +1,11 @@
+{ kde, kdelibs }:
+
+kde {
+  name = "kde-emotion-icons";
+
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Additional KDE emotion icons (smiles)";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeartwork/kscreensaver.nix b/pkgs/desktops/kde-4.7/kdeartwork/kscreensaver.nix
new file mode 100644
index 000000000000..cc195c8de903
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeartwork/kscreensaver.nix
@@ -0,0 +1,13 @@
+{ kde, kdelibs, xscreensaver, kde_workspace, eigen, libkexiv2 }:
+
+kde {
+  buildInputs = [ kdelibs xscreensaver kde_workspace eigen libkexiv2 ];
+
+  preConfigure = "cp -v ${./FindXscreensaver.cmake} cmake/modules/FindXscreensaver.cmake";
+
+  cmakeFlags = [ "-DBUILD_asciiquarium:BOOL=ON" ];
+
+  meta = {
+    description = "KDE screensavers";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeartwork/kwin-styles.nix b/pkgs/desktops/kde-4.7/kdeartwork/kwin-styles.nix
new file mode 100644
index 000000000000..b5d769b216db
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeartwork/kwin-styles.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs, kde_workspace }:
+
+kde {
+  buildInputs = [ kdelibs kde_workspace ];
+
+  meta = {
+    description = "Styles for KWin";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeartwork/sounds.nix b/pkgs/desktops/kde-4.7/kdeartwork/sounds.nix
new file mode 100644
index 000000000000..e98705da889e
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeartwork/sounds.nix
@@ -0,0 +1,11 @@
+{ kde, kdelibs }:
+
+kde rec {
+  name = "kde-sounds";
+
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "New login/logout sounds";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeartwork/styles.nix b/pkgs/desktops/kde-4.7/kdeartwork/styles.nix
new file mode 100644
index 000000000000..6a1306c37100
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeartwork/styles.nix
@@ -0,0 +1,11 @@
+{ kde, kdelibs }:
+
+kde rec {
+  name = "kde-style-phase";
+
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Phase, a widget style for KDE";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeartwork/wallpapers.nix b/pkgs/desktops/kde-4.7/kdeartwork/wallpapers.nix
new file mode 100644
index 000000000000..611c6a70f6bc
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeartwork/wallpapers.nix
@@ -0,0 +1,11 @@
+{ kde, kdelibs }:
+
+kde rec {
+  name = "kde-wallpapers";
+
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Additional KDE wallpapers";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdebase/kate.nix b/pkgs/desktops/kde-4.7/kdebase/kate.nix
new file mode 100644
index 000000000000..1ffbcf9ebf98
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdebase/kate.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Kate, the KDE Advanced Text Editor, as well as KWrite";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdebase/kde-baseapps.nix b/pkgs/desktops/kde-4.7/kdebase/kde-baseapps.nix
new file mode 100644
index 000000000000..45192e0c4600
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdebase/kde-baseapps.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs, shared_desktop_ontologies, glib, htmlTidy }:
+
+kde {
+  buildInputs = [ kdelibs shared_desktop_ontologies glib htmlTidy ];
+
+  meta = {
+    description = "Base KDE applications, including the Dolphin file manager and Konqueror web browser";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdebase/kde-runtime.nix b/pkgs/desktops/kde-4.7/kdebase/kde-runtime.nix
new file mode 100644
index 000000000000..e4c074e8a046
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdebase/kde-runtime.nix
@@ -0,0 +1,20 @@
+{ kde, kdelibs, shared_desktop_ontologies, bzip2, xz, libssh, exiv2, attica,
+  libcanberra, virtuoso, makeWrapper, samba, ntrack
+}:
+
+kde {
+  buildInputs =
+    [ kdelibs shared_desktop_ontologies bzip2 xz libssh exiv2 attica virtuoso
+    makeWrapper samba ntrack (libcanberra.override { gtk = null; })
+    ];
+
+# Copied from kde45, Nepomuk needs it.
+  postInstall = ''
+    wrapProgram "$out/bin/nepomukservicestub" --prefix LD_LIBRARY_PATH : "${virtuoso}/lib" \
+        --prefix PATH : "${virtuoso}/bin"
+  '';
+
+  meta = {
+    license = "LGPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/workspace.nix b/pkgs/desktops/kde-4.7/kdebase/kde-workspace.nix
similarity index 54%
rename from pkgs/desktops/kde-4.7/workspace.nix
rename to pkgs/desktops/kde-4.7/kdebase/kde-workspace.nix
index c875e60ea3f6..1ddb753dc41c 100644
--- a/pkgs/desktops/kde-4.7/workspace.nix
+++ b/pkgs/desktops/kde-4.7/kdebase/kde-workspace.nix
@@ -1,19 +1,18 @@
-{ automoc4, cmake, kde, kdelibs, qt4, strigi, qimageblitz, libdbusmenu_qt
-, xorg, soprano, shared_desktop_ontologies, lm_sensors, pciutils, libraw1394
-, libusb, libxklavier, perl, python, libqalculate, akonadi, consolekit
-, phonon, xkeyboard_config, kdepimlibs, pam, boost, gpsd
+{ kde, kdelibs, qimageblitz, libdbusmenu_qt, xorg, shared_desktop_ontologies,
+  lm_sensors, pciutils, libraw1394, libusb, libxklavier, python, libqalculate,
+  consolekit, xkeyboard_config, kdepimlibs, pam, boost, gpsd, prison, akonadi,
+  kdebindings
 }:
 
-kde.package {
+kde {
 
   buildInputs =
-    [ cmake kdelibs qt4 automoc4 strigi qimageblitz libdbusmenu_qt
+    [ kdelibs qimageblitz libdbusmenu_qt kdebindings.pykde4
       xorg.libxkbfile xorg.libXcomposite xorg.libXScrnSaver xorg.libXtst
       xorg.libXcomposite xorg.libXdamage xorg.libXau xorg.libXdmcp
       xorg.libpthreadstubs
-      boost gpsd soprano shared_desktop_ontologies lm_sensors pciutils
-      libraw1394 libusb python libqalculate akonadi perl consolekit phonon
-      kdepimlibs pam
+      boost gpsd shared_desktop_ontologies lm_sensors pciutils libraw1394
+      libusb python libqalculate consolekit kdepimlibs pam prison akonadi
     ];
 
   preConfigure =
@@ -29,6 +28,5 @@ kde.package {
   meta = {
     description = "KDE workspace components such as Plasma, Kwin and System Settings";
     license = "GPLv2";
-    kde.name = "kde-workspace";
   };
 }
diff --git a/pkgs/desktops/kde-4.7/kdebase/konsole.nix b/pkgs/desktops/kde-4.7/kdebase/konsole.nix
new file mode 100644
index 000000000000..87ac24972bdb
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdebase/konsole.nix
@@ -0,0 +1,11 @@
+{ kde, kdelibs }:
+
+kde {
+
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Konsole, the KDE terminal emulator";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdebindings/perlqt.nix b/pkgs/desktops/kde-4.7/kdebindings/perlqt.nix
new file mode 100644
index 000000000000..26668bf26630
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdebindings/perlqt.nix
@@ -0,0 +1,10 @@
+{ kde, cmake, kdebindings, perl }:
+
+kde {
+  buildInputs = [ kdebindings.smokeqt perl ];
+  buildNativeInputs = [ cmake ];
+
+  meta = {
+    description = "Perl bindings for Qt library";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdebindings/pykde-purity.patch b/pkgs/desktops/kde-4.7/kdebindings/pykde-purity.patch
new file mode 100644
index 000000000000..dfc2c886bba3
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdebindings/pykde-purity.patch
@@ -0,0 +1,49 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index c853e38..5df3253 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -73,7 +73,7 @@ INCLUDE_DIRECTORIES(
+     ${QT_QTWEBKIT_INCLUDE_DIR}
+     ${KDE4_INCLUDE_DIR}
+     ${KDE4_INCLUDE_DIR}/solid
+-    ${KDE4_INCLUDE_DIR}/phonon
++	${PHONON_INCLUDE_DIR}/phonon
+     ${KDE4_INCLUDE_DIR}/kio
+     ${KDE4_INCLUDE_DIR}/kdeprint
+     ${KDE4_INCLUDE_DIR}/kdeprint/lpr
+@@ -232,7 +232,7 @@ _pkg_config = {
+     'pykde_kde_sip_flags':  '${_SIP_TAGS} ${_SIP_X} ${SIP_EXTRA_OPTIONS}',
+     'pykde_mod_dir':        '${PYTHON_SITE_PACKAGES_INSTALL_DIR}/PyKDE4',
+     'pykde_modules':        '${PYKDE_MODULES}',
+-    'pykde_sip_dir':        '${SIP_DEFAULT_SIP_DIR}/PyKDE4',
++    'pykde_sip_dir':        '${CMAKE_INSTALL_PREFIX}/share/sip/PyKDE4',
+     'pykde_version':        kde_version_hex,
+     'pykde_version_str':    '${KDE_VERSION}'
+ }
+@@ -244,7 +244,7 @@ PYTHON_INSTALL(${CMAKE_CURRENT_BINARY_DIR}/pykdeconfig.py ${PYTHON_SITE_PACKAGES
+ 
+ # Install the .sip files for anyone that wants to build bindings on top of PyKDE4.
+ # (Don't forget the / at the end of sip/.)
+-INSTALL(DIRECTORY sip/ DESTINATION ${SIP_DEFAULT_SIP_DIR}/PyKDE4
++INSTALL(DIRECTORY sip/ DESTINATION ${CMAKE_INSTALL_PREFIX}/share/sip/PyKDE4
+     PATTERN "*~" EXCLUDE    # This sucks, why can't I just whitelist what I _do_ want?
+     PATTERN ".svn" EXCLUDE
+     PATTERN "*.in" EXCLUDE)
+diff --git a/kpythonpluginfactory/CMakeLists.txt b/kpythonpluginfactory/CMakeLists.txt
+index 41fa0fe..642d867 100644
+--- a/kpythonpluginfactory/CMakeLists.txt
++++ b/kpythonpluginfactory/CMakeLists.txt
+@@ -3,7 +3,12 @@
+ set(kpythonpluginfactory_SRCS
+     kpythonpluginfactory.cpp)
+ 
+-GET_FILENAME_COMPONENT(LIB_PYTHON ${PYTHON_LIBRARY} NAME)
++option(HARDCODE_LIB_PYTHON_PATH "Whether the path to libpython.so should be hardcoded" OFF)
++if(HARDCODE_LIB_PYTHON_PATH)
++	get_filename_component(LIB_PYTHON ${PYTHON_LIBRARY} REALPATH)
++else(HARDCODE_LIB_PYTHON_PATH)
++    get_filename_component(LIB_PYTHON ${PYTHON_LIBRARY} NAME)
++endif(HARDCODE_LIB_PYTHON_PATH)
+ ADD_DEFINITIONS(-DLIB_PYTHON=\\"${LIB_PYTHON}\\")
+ ADD_DEFINITIONS(-DKDE_DEFAULT_DEBUG_AREA=15000)
+ 
diff --git a/pkgs/desktops/kde-4.7/kdebindings/pykde4.nix b/pkgs/desktops/kde-4.7/kdebindings/pykde4.nix
new file mode 100644
index 000000000000..1ca6efe3b920
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdebindings/pykde4.nix
@@ -0,0 +1,30 @@
+{ kde, kdelibs, python, sip, pyqt4, kdepimlibs, shared_desktop_ontologies,
+  boost, lndir }:
+
+let pydir = "lib/python${python.majorVersion}"; in
+
+kde {
+  buildInputs = [ python kdepimlibs shared_desktop_ontologies boost ];
+
+  propagatedBuildInputs = [ pyqt4 sip ];
+
+#NIX_CFLAGS_COMPILE = "-I${phonon}/include/phonon";
+
+  patches = [ ./pykde-purity.patch ];
+
+  cmakeFlags = "-DHARDCODE_LIB_PYTHON_PATH=ON";
+
+  preConfigure =
+    ''
+      # Symlink PyQt into PyKDE.  This is necessary because PyQt looks
+      # in its PyQt4/uic/widget-plugins directory for plugins, and KDE
+      # needs to install a plugin.
+      mkdir -pv $out/${pydir}
+      ${lndir}/bin/lndir ${pyqt4}/${pydir} $out/${pydir}
+    '';
+
+  meta = {
+    description = "Python bindings for KDE";
+    kde.name = "pykde4";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdebindings/smokegen.nix b/pkgs/desktops/kde-4.7/kdebindings/smokegen.nix
new file mode 100644
index 000000000000..df26eb2717eb
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdebindings/smokegen.nix
@@ -0,0 +1,13 @@
+{ kde, qt4, cmake }:
+
+kde {
+  buildInputs = [ qt4 ];
+  buildNativeInputs = [ cmake ];
+
+  patchPhase = "sed -e /RPATH/d -i CMakeLists.txt";
+
+  meta = {
+    description = "C++ parser used to generate language bindings for Qt/KDE";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdebindings/smokekde.nix b/pkgs/desktops/kde-4.7/kdebindings/smokekde.nix
new file mode 100644
index 000000000000..18fb5b85029d
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdebindings/smokekde.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs, kdebindings }:
+
+kde {
+  propagatedBuildInputs = [ kdelibs kdebindings.smokeqt ];
+
+  meta = {
+    description = "C++ parser used to generate language bindings for Qt/KDE";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdebindings/smokeqt.nix b/pkgs/desktops/kde-4.7/kdebindings/smokeqt.nix
new file mode 100644
index 000000000000..37d7c530fdf3
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdebindings/smokeqt.nix
@@ -0,0 +1,12 @@
+{ kde, qt4, cmake, phonon, qimageblitz, kdebindings }:
+
+kde {
+  propagatedBuildInputs = [ qt4 phonon qimageblitz ];
+  buildNativeInputs = [ cmake ];
+  propagatedBuildNativeInputs = [ kdebindings.smokegen ];
+
+  meta = {
+    description = "C++ parser used to generate language bindings for Qt/KDE";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeedu/FindLibfacile.cmake b/pkgs/desktops/kde-4.7/kdeedu/FindLibfacile.cmake
new file mode 100644
index 000000000000..617eb4b24676
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeedu/FindLibfacile.cmake
@@ -0,0 +1,32 @@
+# - Try to find Libfacile
+# Once done this will define
+#
+#  LIBFACILE_FOUND - system has Libfacile
+#  LIBFACILE_INCLUDE_DIR - the Libfacile include directory
+#  LIBFACILE_LIBRARIES - Link these to use Libfacile
+#
+# Copyright (c) 2006, Carsten Niehaus, <cniehaus@gmx.de>
+# Copyright (c) 2006, Montel Laurent, <montel@kde.org>
+# Redistribution and use is allowed according to the terms of the BSD license.
+# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+
+
+find_package(OCaml)
+
+if( OCAML_FOUND )
+   find_library(LIBFACILE_LIBRARIES NAMES facile.a
+       HINTS ${OCAMLC_DIR}
+       PATH_SUFFIXES facile ocaml/facile
+   )
+   find_path(LIBFACILE_INCLUDE_DIR NAMES facile.cmi
+       HINTS ${OCAMLC_DIR}
+       PATH_SUFFIXES facile lib/ocaml/facile
+   )
+endif(OCAML_FOUND)
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(Libfacile DEFAULT_MSG LIBFACILE_INCLUDE_DIR
+	LIBFACILE_LIBRARIES OCAML_FOUND)
+
+# show the LIBFACILE_INCLUDE_DIR and LIBFACILE_LIBRARIES variables only in the advanced view
+mark_as_advanced(LIBFACILE_INCLUDE_DIR LIBFACILE_LIBRARIES )
diff --git a/pkgs/desktops/kde-4.7/kdeedu/blinken.nix b/pkgs/desktops/kde-4.7/kdeedu/blinken.nix
new file mode 100644
index 000000000000..cdf9728833c2
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeedu/blinken.nix
@@ -0,0 +1,8 @@
+{ kde, kdelibs }:
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Memory Enhancement Game";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeedu/cantor.nix b/pkgs/desktops/kde-4.7/kdeedu/cantor.nix
new file mode 100644
index 000000000000..8b8bbc210c75
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeedu/cantor.nix
@@ -0,0 +1,8 @@
+{ kde, kdelibs, libspectre }:
+kde {
+  buildInputs = [ kdelibs libspectre ];
+
+  meta = {
+    description = "KDE Frontend to Mathematical Software";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeedu/kalgebra.nix b/pkgs/desktops/kde-4.7/kdeedu/kalgebra.nix
new file mode 100644
index 000000000000..f1a190332cdc
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeedu/kalgebra.nix
@@ -0,0 +1,8 @@
+{ kde, kdelibs, libkdeedu, readline }:
+kde {
+  buildInputs = [ kdelibs libkdeedu readline ];
+
+  meta = {
+    description = "2D and 3D Graph Calculator";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeedu/kalzium-feature-log.patch b/pkgs/desktops/kde-4.7/kdeedu/kalzium-feature-log.patch
new file mode 100644
index 000000000000..3c054e8d60ab
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeedu/kalzium-feature-log.patch
@@ -0,0 +1,15 @@
+commit d96c6e70400dcd4e3514065e607388b80f96d6a1
+Author: Yury G. Kudryashov <urkud.urkud@gmail.com>
+Date:   Mon Aug 15 00:53:16 2011 +0400
+
+    Display feature log
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 132934c..eec6942 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -47,3 +47,4 @@ add_subdirectory(src)
+ add_subdirectory(data)
+ add_subdirectory(plasmoid)
+ add_subdirectory(libscience)
++macro_display_feature_log()
diff --git a/pkgs/desktops/kde-4.7/kdeedu/kalzium.nix b/pkgs/desktops/kde-4.7/kdeedu/kalzium.nix
new file mode 100644
index 000000000000..d7d9b403b1a4
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeedu/kalzium.nix
@@ -0,0 +1,15 @@
+{ kde, kdelibs, facile, ocaml, eigen, openbabel, avogadro }:
+kde {
+  buildInputs = [ kdelibs facile ocaml eigen openbabel avogadro ];
+
+  prePatch = ''
+    cp -v ${./FindLibfacile.cmake} cmake/modules/FindLibfacile.cmake
+    sed -e 's/\+facile/''${LIBFACILE_INCLUDE_DIR}/' -i src/CMakeOCamlInstructions.cmake
+    '';
+
+  patches = [ ./kalzium-feature-log.patch ];
+
+  meta = {
+    description = "Periodic Table of Elements";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeedu/kanagram.nix b/pkgs/desktops/kde-4.7/kdeedu/kanagram.nix
new file mode 100644
index 000000000000..8759c96d78c4
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeedu/kanagram.nix
@@ -0,0 +1,8 @@
+{ kde, kdelibs, libkdeedu }:
+kde {
+  buildInputs = [ kdelibs libkdeedu ];
+
+  meta = {
+    description = "Letter Order Game";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeedu/kbruch.nix b/pkgs/desktops/kde-4.7/kdeedu/kbruch.nix
new file mode 100644
index 000000000000..dc50f1e85a37
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeedu/kbruch.nix
@@ -0,0 +1,8 @@
+{ kde, kdelibs }:
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Practice Fractions";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeedu/kgeography.nix b/pkgs/desktops/kde-4.7/kdeedu/kgeography.nix
new file mode 100644
index 000000000000..bd8d27c8d6e2
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeedu/kgeography.nix
@@ -0,0 +1,8 @@
+{ kde, kdelibs }:
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Geography Trainer";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeedu/khangman.nix b/pkgs/desktops/kde-4.7/kdeedu/khangman.nix
new file mode 100644
index 000000000000..997b50e906a2
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeedu/khangman.nix
@@ -0,0 +1,8 @@
+{ kde, kdelibs, libkdeedu }:
+kde {
+  buildInputs = [ kdelibs libkdeedu ];
+
+  meta = {
+    description = "KDE hangman game";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeedu/kig.nix b/pkgs/desktops/kde-4.7/kdeedu/kig.nix
new file mode 100644
index 000000000000..bd5ef67529cc
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeedu/kig.nix
@@ -0,0 +1,12 @@
+{ kde, kdelibs, boost, python}:
+kde {
+  buildInputs = [ kdelibs boost python ];
+
+  cmakeFlags = ''
+    -DBOOST_PYTHON_INCLUDES:PATH=${boost}/include;${python}/include/${python.libPrefix}
+    -DBOOST_PYTHON_LIBS=boost_python;${python.libPrefix} -DKIG_ENABLE_PYTHON_SCRIPTING=1
+    '';
+  meta = {
+    description = "KDE Interactive Geometry";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeedu/kiten.nix b/pkgs/desktops/kde-4.7/kdeedu/kiten.nix
new file mode 100644
index 000000000000..939b7a9f77a2
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeedu/kiten.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Japanese Reference/Study Tool";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeedu/klettres.nix b/pkgs/desktops/kde-4.7/kdeedu/klettres.nix
new file mode 100644
index 000000000000..7a0fa83078e3
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeedu/klettres.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "A KDE alphabet tutorial";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/edu/kmplot.nix b/pkgs/desktops/kde-4.7/kdeedu/kmplot.nix
similarity index 50%
rename from pkgs/desktops/kde-4.7/edu/kmplot.nix
rename to pkgs/desktops/kde-4.7/kdeedu/kmplot.nix
index b7f6bc3e79d9..18458cf6f0bf 100644
--- a/pkgs/desktops/kde-4.7/edu/kmplot.nix
+++ b/pkgs/desktops/kde-4.7/kdeedu/kmplot.nix
@@ -1,7 +1,7 @@
-{ kde, cmake, kdelibs, qt4, automoc4, phonon }:
+{ kde, kdelibs }:
 
-kde.package {
-  buildInputs = [ cmake kdelibs qt4 automoc4 phonon ];
+kde {
+  buildInputs = [ kdelibs ];
 
   meta = {
     description = "A KDE mathematical function plotter";
diff --git a/pkgs/desktops/kde-4.7/kdeedu/kstars.nix b/pkgs/desktops/kde-4.7/kdeedu/kstars.nix
new file mode 100644
index 000000000000..5b5a2d621de7
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeedu/kstars.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs, eigen, xplanet, indilib }:
+
+kde {
+  buildInputs = [ kdelibs eigen xplanet indilib ];
+
+  meta = {
+    description = "A KDE graphical desktop planetarium";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeedu/ktouch.nix b/pkgs/desktops/kde-4.7/kdeedu/ktouch.nix
new file mode 100644
index 000000000000..768be6f4367c
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeedu/ktouch.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Touch Typing Tutor";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeedu/kturtle.nix b/pkgs/desktops/kde-4.7/kdeedu/kturtle.nix
new file mode 100644
index 000000000000..1e1922b1410d
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeedu/kturtle.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Educational Programming Environment";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeedu/kwordquiz.nix b/pkgs/desktops/kde-4.7/kdeedu/kwordquiz.nix
new file mode 100644
index 000000000000..1b33ba2e469f
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeedu/kwordquiz.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs, libkdeedu }:
+
+kde {
+  buildInputs = [ kdelibs libkdeedu ];
+
+  meta = {
+    description = "Flash Card Trainer";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeedu/libkdeedu.nix b/pkgs/desktops/kde-4.7/kdeedu/libkdeedu.nix
new file mode 100644
index 000000000000..def6c85fefe2
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeedu/libkdeedu.nix
@@ -0,0 +1,8 @@
+{ kde, kdelibs }:
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Libraries used by KDE Education applications";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeedu/marble.nix b/pkgs/desktops/kde-4.7/kdeedu/marble.nix
new file mode 100644
index 000000000000..8bd86c91094e
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeedu/marble.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs, gpsd }:
+
+kde {
+  buildInputs = [ kdelibs gpsd ];
+
+  meta = {
+    description = "Marble Virtual Globe";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeedu/parley.nix b/pkgs/desktops/kde-4.7/kdeedu/parley.nix
new file mode 100644
index 000000000000..eccd40a598f0
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeedu/parley.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs, libkdeedu, libxml2, attica }:
+
+kde {
+  buildInputs = [ kdelibs libkdeedu libxml2 attica ];
+
+  meta = {
+    description = "Vocabulary Trainer";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/edu/rocs.nix b/pkgs/desktops/kde-4.7/kdeedu/rocs.nix
similarity index 51%
rename from pkgs/desktops/kde-4.7/edu/rocs.nix
rename to pkgs/desktops/kde-4.7/kdeedu/rocs.nix
index dd31dddb9032..91976b840011 100644
--- a/pkgs/desktops/kde-4.7/edu/rocs.nix
+++ b/pkgs/desktops/kde-4.7/kdeedu/rocs.nix
@@ -1,7 +1,7 @@
-{ kde, cmake, kdelibs, qt4, automoc4, phonon, boost, perl }:
+{ kde, kdelibs, boost }:
 
-kde.package {
-  buildInputs = [ cmake kdelibs qt4 automoc4 phonon boost perl ];
+kde {
+  buildInputs = [ kdelibs (boost.override { enableExceptions = true; }) ];
 
   NIX_CFLAGS_COMPILE = "-fexceptions";
 
diff --git a/pkgs/desktops/kde-4.7/kdeedu/step.nix b/pkgs/desktops/kde-4.7/kdeedu/step.nix
new file mode 100644
index 000000000000..fac9974baf18
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeedu/step.nix
@@ -0,0 +1,12 @@
+{ kde, kdelibs, gsl, libqalculate, eigen }:
+
+kde {
+  buildInputs = [ kdelibs gsl libqalculate eigen ];
+
+  meta = {
+    description = "A KDE interactive physical simulator";
+    kde = {
+      name = "step";
+    };
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdegames.nix b/pkgs/desktops/kde-4.7/kdegames.nix
new file mode 100644
index 000000000000..d5fe4ec893e4
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdegames.nix
@@ -0,0 +1,18 @@
+{ kde, kdelibs, qca2, twisted, pythonPackages, sip, makeWrapper, kdebindings,
+  openal, libsndfile, qhull }:
+
+kde rec {
+  buildInputs = [ kdelibs qca2 pythonPackages.python pythonPackages.wrapPython
+    openal libsndfile qhull ] ++ pythonPath;
+
+  pythonPath = [ pythonPackages.twisted kdebindings.pykde4 ];
+
+  # TODO: ggz
+
+  postInstall = "wrapPythonPrograms";
+
+  meta = {
+    description = "KDE Games";
+    license = "GPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdegraphics/gwenview.nix b/pkgs/desktops/kde-4.7/kdegraphics/gwenview.nix
new file mode 100644
index 000000000000..efc2707e7d69
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdegraphics/gwenview.nix
@@ -0,0 +1,12 @@
+{ kde, kdelibs, exiv2, shared_desktop_ontologies, kde_baseapps, libkipi }:
+
+kde {
+
+  buildInputs =
+    [ kdelibs exiv2 shared_desktop_ontologies kde_baseapps libkipi ];
+
+  meta = {
+    description = "Gwenview, the KDE image viewer";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdegraphics/kamera.nix b/pkgs/desktops/kde-4.7/kdegraphics/kamera.nix
new file mode 100644
index 000000000000..70904b17c232
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdegraphics/kamera.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs, libgphoto2 }:
+
+kde {
+  buildInputs = [ kdelibs libgphoto2 ];
+
+  meta = {
+    description = "KDE camera interface library";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdegraphics/kcolorchooser.nix b/pkgs/desktops/kde-4.7/kdegraphics/kcolorchooser.nix
new file mode 100644
index 000000000000..58528cb186bb
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdegraphics/kcolorchooser.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "A small utility to select a color";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdegraphics/kdegraphics-strigi-analyzer.nix b/pkgs/desktops/kde-4.7/kdegraphics/kdegraphics-strigi-analyzer.nix
new file mode 100644
index 000000000000..6001a5f363db
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdegraphics/kdegraphics-strigi-analyzer.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Strigi analyzers for various graphics file formats";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdegraphics/kdegraphics-thumbnailers.nix b/pkgs/desktops/kde-4.7/kdegraphics/kdegraphics-thumbnailers.nix
new file mode 100644
index 000000000000..55bf8309b2a9
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdegraphics/kdegraphics-thumbnailers.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs, libkexiv2, libkdcraw }:
+
+kde {
+  buildInputs = [ kdelibs libkexiv2 libkdcraw ];
+
+  meta = {
+    description = "Thumbnailers for various graphics file formats";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdegraphics/kgamma.nix b/pkgs/desktops/kde-4.7/kdegraphics/kgamma.nix
new file mode 100644
index 000000000000..28d9252187e0
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdegraphics/kgamma.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs, libXxf86vm }:
+
+kde {
+  buildInputs = [ kdelibs libXxf86vm ];
+
+  meta = {
+    description = "KDE monitor calibration tool";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdegraphics/kolourpaint.nix b/pkgs/desktops/kde-4.7/kdegraphics/kolourpaint.nix
new file mode 100644
index 000000000000..5276ec09f462
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdegraphics/kolourpaint.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs, qimageblitz }:
+
+kde {
+  buildInputs = [ kdelibs qimageblitz ];
+
+  meta = {
+    description = "KDE paint program";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdegraphics/kruler.nix b/pkgs/desktops/kde-4.7/kdegraphics/kruler.nix
new file mode 100644
index 000000000000..c5c2c6e05d7c
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdegraphics/kruler.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "KDE screen ruler";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdegraphics/ksaneplugin.nix b/pkgs/desktops/kde-4.7/kdegraphics/ksaneplugin.nix
new file mode 100644
index 000000000000..1381ed7dd266
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdegraphics/ksaneplugin.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs, libksane }:
+
+kde {
+  buildInputs = [ kdelibs libksane ];
+
+  meta = {
+    description = "A KScan plugin that implements the scanning through libksane";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdegraphics/ksnapshot.nix b/pkgs/desktops/kde-4.7/kdegraphics/ksnapshot.nix
new file mode 100644
index 000000000000..f01a609e20de
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdegraphics/ksnapshot.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs, libkipi }:
+
+kde {
+  buildInputs = [ kdelibs libkipi ];
+
+  meta = {
+    description = "KDE screenshot utility";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdegraphics/libkdcraw.nix b/pkgs/desktops/kde-4.7/kdegraphics/libkdcraw.nix
new file mode 100644
index 000000000000..9d31cc763f21
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdegraphics/libkdcraw.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Library for decoding RAW images";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdegraphics/libkexiv2.nix b/pkgs/desktops/kde-4.7/kdegraphics/libkexiv2.nix
new file mode 100644
index 000000000000..096b0a6e957b
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdegraphics/libkexiv2.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs, exiv2 }:
+
+kde {
+  buildInputs = [ kdelibs exiv2 ];
+
+  meta = {
+    description = "Exiv2 support library";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdegraphics/libkipi.nix b/pkgs/desktops/kde-4.7/kdegraphics/libkipi.nix
new file mode 100644
index 000000000000..6b16265e7a3e
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdegraphics/libkipi.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Interface library to kipi-plugins";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdegraphics/libksane.nix b/pkgs/desktops/kde-4.7/kdegraphics/libksane.nix
new file mode 100644
index 000000000000..b539eab38992
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdegraphics/libksane.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs, saneBackends }:
+
+kde {
+  buildInputs = [ kdelibs saneBackends ];
+
+  meta = {
+    description = "An image scanning library that provides a QWidget that contains all the logic needed to interface a sacanner";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdegraphics/mobipocket.nix b/pkgs/desktops/kde-4.7/kdegraphics/mobipocket.nix
new file mode 100644
index 000000000000..bb473ec605eb
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdegraphics/mobipocket.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs, kdegraphics }:
+
+kde {
+  buildInputs = [ kdelibs kdegraphics.okular ];
+
+  meta = {
+    description = "A collection of plugins to handle mobipocket files";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdegraphics/okular.nix b/pkgs/desktops/kde-4.7/kdegraphics/okular.nix
new file mode 100644
index 000000000000..73aa5a8cf412
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdegraphics/okular.nix
@@ -0,0 +1,12 @@
+{ chmlib, djvulibre, ebook_tools, kde, kdelibs, libspectre, popplerQt4, qca2,
+  qimageblitz }:
+
+kde {
+  buildInputs = [ chmlib djvulibre ebook_tools kdelibs libspectre popplerQt4
+    qca2 qimageblitz ];
+
+  meta = {
+    description = "Okular, the KDE document viewer";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdegraphics/svgpart.nix b/pkgs/desktops/kde-4.7/kdegraphics/svgpart.nix
new file mode 100644
index 000000000000..a344cc4b4b46
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdegraphics/svgpart.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "SVG KPart";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/libs/default.nix b/pkgs/desktops/kde-4.7/kdelibs.nix
similarity index 56%
rename from pkgs/desktops/kde-4.7/libs/default.nix
rename to pkgs/desktops/kde-4.7/kdelibs.nix
index 7f246e61f97e..cad1988723c7 100644
--- a/pkgs/desktops/kde-4.7/libs/default.nix
+++ b/pkgs/desktops/kde-4.7/kdelibs.nix
@@ -6,33 +6,34 @@
 , getopt, udev, herqq, phonon, gettext
 }:
 
-kde.package {
-
+kde {
   buildInputs =
-    [ acl attr attica automoc4 avahi bzip2 cmake enchant fam getopt
-      giflib herqq jasper libdbusmenu_qt libXScrnSaver libxslt pcre
-      perl perl polkit_qt_1 qca2 qt4 shared_desktop_ontologies
-      shared_mime_info soprano strigi udev xz phonon libxml2
+    [
+      acl attr attica avahi bzip2 enchant fam getopt giflib herqq jasper
+      libdbusmenu_qt libXScrnSaver libxslt pcre polkit_qt_1 qca2
+      shared_desktop_ontologies udev xz libxml2
     ];
-    
+
+  propagatedBuildInputs = [ qt4 soprano strigi phonon ];
+
+  propagatedBuildNativeInputs = [ automoc4 cmake perl shared_mime_info ];
+
   # TODO: make sonnet plugins (dictionaries) really work.
   # There are a few hardcoded paths.
   # Let kdelibs find openexr
   # Split plugins from libs?
 
-  patches = [ ./polkit-install.patch ];
+  patches = [ ./files/polkit-install.patch ];
 
   # cmake fails to find acl.h because of C++-style comment
   # TODO: OpenEXR
-  cmakeFlags =
-    ''
-      -DDOCBOOKXML_CURRENTDTD_DIR=${docbook_xml_dtd_42}/xml/dtd/docbook
-      -DDOCBOOKXSL_DIR=${docbook_xsl}/xml/xsl/docbook
-    '';
+  cmakeFlags = [
+    "-DDOCBOOKXML_CURRENTDTD_DIR=${docbook_xml_dtd_42}/xml/dtd/docbook"
+    "-DDOCBOOKXSL_DIR=${docbook_xsl}/xml/xsl/docbook"
+  ];
 
   meta = {
     description = "KDE libraries";
     license = "LGPL";
-    kde.name = "kdelibs";
   };
 }
diff --git a/pkgs/desktops/kde-4.7/kdemultimedia.nix b/pkgs/desktops/kde-4.7/kdemultimedia.nix
new file mode 100644
index 000000000000..b4ca7a8d2da7
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdemultimedia.nix
@@ -0,0 +1,16 @@
+{ kde, alsaLib, libvorbis, taglib, flac, cdparanoia, lame, kdelibs, ffmpeg,
+  libmusicbrainz3, libtunepimp }:
+
+kde {
+
+  buildInputs =
+    # Note: kdemultimedia can use xine-lib, but it doesn't seem useful
+    # without the Phonon Xine backend.
+    [ kdelibs cdparanoia taglib libvorbis libmusicbrainz3 libtunepimp ffmpeg
+    flac lame ];
+
+  meta = {
+    description = "KDE multimedia programs such as a movie player and volume utility";
+    license = "GPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdenetwork/FindmsiLBC.cmake b/pkgs/desktops/kde-4.7/kdenetwork/FindmsiLBC.cmake
new file mode 100644
index 000000000000..c40b0bed3105
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdenetwork/FindmsiLBC.cmake
@@ -0,0 +1,19 @@
+# cmake macro to test msiLBC
+
+# Copyright (c) 2009-2010 Pali Rohár <pali.rohar@gmail.com>
+#
+# MSILBC_FOUND
+# MSILBC_LIBRARY
+
+include ( FindPackageHandleStandardArgs )
+
+if ( MSILBC_LIBRARY )
+	set ( MSILBC_FOUND true )
+	set ( msiLBC_FIND_QUIETLY true )
+else ( MSILBC_LIBRARY )
+	find_library ( MSILBC_LIBRARY NAMES msilbc
+		PATH_SUFFIXES mediastreamer/plugins)
+endif ( MSILBC_LIBRARY )
+
+find_package_handle_standard_args ( msiLBC DEFAULT_MSG MSILBC_LIBRARY )
+mark_as_advanced ( MSILBC_LIBRARY )
diff --git a/pkgs/desktops/kde-4.7/kdenetwork/filesharing.nix b/pkgs/desktops/kde-4.7/kdenetwork/filesharing.nix
new file mode 100644
index 000000000000..2f32f4d6b2cd
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdenetwork/filesharing.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  patches = [ ./kdenetwork.patch ];
+}
diff --git a/pkgs/desktops/kde-4.7/kdenetwork/kdenetwork.patch b/pkgs/desktops/kde-4.7/kdenetwork/kdenetwork.patch
new file mode 100644
index 000000000000..ebadbfad9bac
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdenetwork/kdenetwork.patch
@@ -0,0 +1,24 @@
+diff -r -u kdenetwork-4.7.1.orig/CMakeLists.txt kdenetwork-4.7.1/CMakeLists.txt
+--- kdenetwork-4.7.1.orig/CMakeLists.txt	2011-03-29 15:25:42.174521812 +0400
++++ kdenetwork-4.7.1/CMakeLists.txt	2011-03-29 15:27:43.268140322 +0400
+@@ -28,7 +28,8 @@
+    set(CMAKE_REQUIRED_INCLUDES  ${KDEWIN_INCLUDES} )
+ endif (WIN32)
+ 
+-find_package(KdepimLibs REQUIRED)
++macro_optional_find_package(KdepimLibs)
++macro_log_feature(KDEPIMLIBS_FOUND "KDEPimLibs" "KDE pim-related libraries" "http://pim.kde.org.org/" FALSE "" "Required for Kopete")
+ # find_package(X11VidMode) not used at this time
+ 
+ # NX support is not ready for KDE 4.2; disabled (uwolfer)
+@@ -79,7 +80,9 @@
+ macro_optional_add_subdirectory(kfile-plugins)
+ macro_optional_add_subdirectory(kget)
+ 
+-macro_optional_add_subdirectory(kopete)
++if(KDEPIMLIBS_FOUND)
++  macro_optional_add_subdirectory(kopete)
++endif(KDEPIMLIBS_FOUND)
+ 
+ if(Q_WS_X11)
+   macro_optional_add_subdirectory(krdc)
diff --git a/pkgs/desktops/kde-4.7/kdenetwork/kdnssd.nix b/pkgs/desktops/kde-4.7/kdenetwork/kdnssd.nix
new file mode 100644
index 000000000000..2f32f4d6b2cd
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdenetwork/kdnssd.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  patches = [ ./kdenetwork.patch ];
+}
diff --git a/pkgs/desktops/kde-4.7/kdenetwork/kfile-plugins.nix b/pkgs/desktops/kde-4.7/kdenetwork/kfile-plugins.nix
new file mode 100644
index 000000000000..f90fd3560796
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdenetwork/kfile-plugins.nix
@@ -0,0 +1,11 @@
+{ kde, kdelibs, boost }:
+
+kde {
+  name = "strigi-analyzer-torrent";
+
+  buildInputs = [ kdelibs boost ];
+
+  preConfigure = "mv -v strigi-analyzer kfile-plugins";
+
+  patches = [ ./kdenetwork.patch ];
+}
diff --git a/pkgs/desktops/kde-4.7/kdenetwork/kget.nix b/pkgs/desktops/kde-4.7/kdenetwork/kget.nix
new file mode 100644
index 000000000000..bc55e832cdeb
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdenetwork/kget.nix
@@ -0,0 +1,11 @@
+{ kde, kdelibs, libktorrent, kde_workspace, kdepimlibs, kdebase,
+  shared_desktop_ontologies, kde_baseapps, gpgme, boost, libmms, qca2 }:
+
+kde {
+  buildInputs = [ kdelibs libktorrent kde_workspace kdebase
+    shared_desktop_ontologies kdepimlibs kde_baseapps gpgme boost libmms qca2 ];
+
+  KDEDIRS = libktorrent;
+
+  patches = [ ./kdenetwork.patch ];
+}
diff --git a/pkgs/desktops/kde-4.7/kdenetwork/kopete.nix b/pkgs/desktops/kde-4.7/kdenetwork/kopete.nix
new file mode 100644
index 000000000000..a4b01c5f9a63
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdenetwork/kopete.nix
@@ -0,0 +1,21 @@
+{ kde, kdelibs, speex, libmsn, libotr, kdepimlibs, qimageblitz, libktorrent,
+  jasper, libidn, mediastreamer, msilbc, pkgconfig, libxml2, libxslt, giflib,
+  libgadu, boost, qca2, gpgme }:
+
+kde {
+  buildInputs = [ kdelibs speex libmsn libotr kdepimlibs qimageblitz libktorrent
+    jasper libidn mediastreamer msilbc libxml2 libxslt giflib libgadu boost qca2
+    gpgme ];
+
+  buildNativeInputs = [ pkgconfig ];
+
+  KDEDIRS = libktorrent;
+
+  patchPhase = "cp -v ${./FindmsiLBC.cmake} kopete/cmake/modules/FindmsiLBC.cmake";
+
+  cmakeFlags = [ "-DBUILD_skypebuttons=TRUE" ];
+
+  meta = {
+    description = "A KDE multi-protocol IM client";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdenetwork/kppp.nix b/pkgs/desktops/kde-4.7/kdenetwork/kppp.nix
new file mode 100644
index 000000000000..2f32f4d6b2cd
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdenetwork/kppp.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  patches = [ ./kdenetwork.patch ];
+}
diff --git a/pkgs/desktops/kde-4.7/kdenetwork/krdc.nix b/pkgs/desktops/kde-4.7/kdenetwork/krdc.nix
new file mode 100644
index 000000000000..664b1bc45a73
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdenetwork/krdc.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs, libvncserver }:
+
+kde {
+  buildInputs = [ kdelibs libvncserver ];
+
+  patches = [ ./kdenetwork.patch ];
+}
diff --git a/pkgs/desktops/kde-4.7/kdenetwork/krfb.nix b/pkgs/desktops/kde-4.7/kdenetwork/krfb.nix
new file mode 100644
index 000000000000..80013f430d3c
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdenetwork/krfb.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs, libvncserver, libXdamage, libXtst }:
+
+kde {
+  buildInputs = [ kdelibs libvncserver libXdamage libXtst];
+
+  patches = [ ./kdenetwork.patch ];
+}
diff --git a/pkgs/desktops/kde-4.7/network/log-feature.diff b/pkgs/desktops/kde-4.7/kdenetwork/log-feature.diff
similarity index 100%
rename from pkgs/desktops/kde-4.7/network/log-feature.diff
rename to pkgs/desktops/kde-4.7/kdenetwork/log-feature.diff
diff --git a/pkgs/desktops/kde-4.7/kdepim-runtime.nix b/pkgs/desktops/kde-4.7/kdepim-runtime.nix
new file mode 100644
index 000000000000..ef637f3f075b
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdepim-runtime.nix
@@ -0,0 +1,12 @@
+{ kde, fetchurl, cmake, kdelibs, libxml2, libxslt, boost, kdepimlibs, akonadi
+, shared_desktop_ontologies }:
+
+kde {
+  buildInputs = [ kdepimlibs akonadi boost shared_desktop_ontologies libxml2
+    libxslt ];
+
+  meta = {
+    description = "KDE PIM runtime";
+    license = "GPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdepim.nix b/pkgs/desktops/kde-4.7/kdepim.nix
new file mode 100644
index 000000000000..c21e8c112a88
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdepim.nix
@@ -0,0 +1,19 @@
+{ kde, boost, gpgme, libassuan, libxml2, libxslt, kdepimlibs, kdepim_runtime
+, akonadi, shared_desktop_ontologies, cyrus_sasl, grantlee }:
+
+kde {
+
+  buildInputs = [ kdepimlibs boost akonadi shared_desktop_ontologies libxml2
+    libxslt cyrus_sasl gpgme libassuan grantlee ];
+
+  passthru.propagatedUserEnvPackages = [ akonadi kdepimlibs kdepim_runtime ];
+
+  meta = {
+    description = "KDE PIM tools";
+    longDescription = ''
+      Contains various personal information management tools for KDE, such as an organizer.
+    '';
+    license = "GPL";
+    homepage = http://pim.kde.org;
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdepimlibs.nix b/pkgs/desktops/kde-4.7/kdepimlibs.nix
new file mode 100644
index 000000000000..c1e22427ac79
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdepimlibs.nix
@@ -0,0 +1,14 @@
+{ kde, boost, cyrus_sasl, gpgme, libical, openldap, shared_mime_info
+, kdelibs, akonadi, shared_desktop_ontologies, libxml2, libxslt, prison }:
+
+kde {
+  buildInputs = [ boost gpgme shared_desktop_ontologies libical libxml2 libxslt
+    openldap cyrus_sasl akonadi prison ];
+
+  propagatedBuildInputs = [ kdelibs ];
+
+  meta = {
+    description = "KDE PIM libraries";
+    license = "LGPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeplasma-addons.nix b/pkgs/desktops/kde-4.7/kdeplasma-addons.nix
new file mode 100644
index 000000000000..8e9d151db2e7
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeplasma-addons.nix
@@ -0,0 +1,19 @@
+{ kde, kdelibs, kdeedu, shared_desktop_ontologies
+, boost, eigen, kde_workspace, attica, python, qca2, qimageblitz
+, kdepimlibs, libkexiv2, libqalculate, libXtst }:
+# TODO: qwt, scim
+# TODO: parts of kdegraphics, kdeedu
+
+kde {
+
+  KDEDIRS=kdeedu.marble;
+
+  buildInputs = [ kdelibs boost eigen kde_workspace
+    attica python qca2 qimageblitz kdepimlibs
+    libqalculate libXtst shared_desktop_ontologies kdeedu.marble libkexiv2];
+
+  meta = {
+    description = "KDE Plasma Addons";
+    license = "GPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdesdk/cervisia.nix b/pkgs/desktops/kde-4.7/kdesdk/cervisia.nix
new file mode 100644
index 000000000000..1dabe46cd429
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdesdk/cervisia.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "A KDE CVS frontend";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdesdk/dolphin-plugins-git.nix b/pkgs/desktops/kde-4.7/kdesdk/dolphin-plugins-git.nix
new file mode 100644
index 000000000000..df4a0856c6b0
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdesdk/dolphin-plugins-git.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs, kde_baseapps }:
+
+kde {
+  # Needs kdebase for libkonq
+  buildInputs = [ kdelibs kde_baseapps ];
+
+  meta = {
+    description = "Git plugin for dolphin";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdesdk/dolphin-plugins-svn.nix b/pkgs/desktops/kde-4.7/kdesdk/dolphin-plugins-svn.nix
new file mode 100644
index 000000000000..8032b89ff54c
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdesdk/dolphin-plugins-svn.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs, kde_baseapps }:
+
+kde {
+  # Needs kdebase for libkonq
+  buildInputs = [ kdelibs kde_baseapps ];
+
+  meta = {
+    description = "Svn plugin for dolphin";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/sdk/find-svn.patch b/pkgs/desktops/kde-4.7/kdesdk/find-svn.patch
similarity index 100%
rename from pkgs/desktops/kde-4.7/sdk/find-svn.patch
rename to pkgs/desktops/kde-4.7/kdesdk/find-svn.patch
diff --git a/pkgs/desktops/kde-4.7/kdesdk/kapptemplate.nix b/pkgs/desktops/kde-4.7/kdesdk/kapptemplate.nix
new file mode 100644
index 000000000000..391536248dd3
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdesdk/kapptemplate.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "A KDE 4 project template generator";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdesdk/kcachegrind.nix b/pkgs/desktops/kde-4.7/kdesdk/kcachegrind.nix
new file mode 100644
index 000000000000..65d410cca48d
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdesdk/kcachegrind.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "KDE Frontend for Callgrind/Cachegrind";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdesdk/kdeaccounts-plugin.nix b/pkgs/desktops/kde-4.7/kdesdk/kdeaccounts-plugin.nix
new file mode 100644
index 000000000000..7e170ca2a2c2
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdesdk/kdeaccounts-plugin.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs, kdepimlibs }:
+
+kde {
+  buildInputs = [ kdelibs kdepimlibs ];
+
+  meta = {
+    description = "KDE accounts akonadi agent";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdesdk/kioslave-perldoc.nix b/pkgs/desktops/kde-4.7/kdesdk/kioslave-perldoc.nix
new file mode 100644
index 000000000000..6a10bdf7c4bc
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdesdk/kioslave-perldoc.nix
@@ -0,0 +1,11 @@
+{ kde, kdelibs, perl }:
+
+kde {
+  buildInputs = [ kdelibs perl ];
+
+  cmakeFlags = [ "-DBUILD_perldoc=ON" ];
+
+  meta = {
+    description = "perldoc: kioslave";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdesdk/kioslave-svn.nix b/pkgs/desktops/kde-4.7/kdesdk/kioslave-svn.nix
new file mode 100644
index 000000000000..ec7f7a61ed56
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdesdk/kioslave-svn.nix
@@ -0,0 +1,11 @@
+{ kde, kdelibs, subversion, apr, aprutil }:
+
+kde {
+  buildInputs = [ kdelibs subversion apr aprutil ];
+
+  patches = [ ./find-svn.patch ];
+
+  meta = {
+    description = "Subversion kioslave";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdesdk/kmtrace.nix b/pkgs/desktops/kde-4.7/kdesdk/kmtrace.nix
new file mode 100644
index 000000000000..d580f7fb6911
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdesdk/kmtrace.nix
@@ -0,0 +1,11 @@
+{ kde, kdelibs, gcc }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  preConfigure = "export CMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH:${gcc}:${gcc.gcc}";
+
+  meta = {
+    description = "KDE mtrace-based malloc debugger";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdesdk/kompare.nix b/pkgs/desktops/kde-4.7/kdesdk/kompare.nix
new file mode 100644
index 000000000000..1ddb4b8ea5b9
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdesdk/kompare.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "A program to view the differences between files and optionally generate a diff";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdesdk/kpartloader.nix b/pkgs/desktops/kde-4.7/kdesdk/kpartloader.nix
new file mode 100644
index 000000000000..e7790d33c90c
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdesdk/kpartloader.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "A test application for KParts";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdesdk/kprofilemethod.nix b/pkgs/desktops/kde-4.7/kdesdk/kprofilemethod.nix
new file mode 100644
index 000000000000..5a6693f2f5d8
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdesdk/kprofilemethod.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "A macro for profiling using QTime";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdesdk/kstartperf.nix b/pkgs/desktops/kde-4.7/kdesdk/kstartperf.nix
new file mode 100644
index 000000000000..0c8259cd31f5
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdesdk/kstartperf.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs, libtool }:
+
+kde {
+  buildInputs = [ kdelibs libtool ];
+
+  meta = {
+    description = "Measures start up time of a KDE application";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdesdk/kuiviewer.nix b/pkgs/desktops/kde-4.7/kdesdk/kuiviewer.nix
new file mode 100644
index 000000000000..7c5089dcd37f
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdesdk/kuiviewer.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Displays Qt Designer's UI files";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdesdk/lokalize.nix b/pkgs/desktops/kde-4.7/kdesdk/lokalize.nix
new file mode 100644
index 000000000000..1565426eb1fc
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdesdk/lokalize.nix
@@ -0,0 +1,13 @@
+{ kde, kdelibs, hunspell }:
+
+kde {
+  buildInputs = [ kdelibs hunspell ];
+
+  meta = {
+    description = "KDE 4 Computer-aided translation system";
+    longDescription = ''
+      Computer-aided translation system.
+      Do not translate what had already been translated.
+    '';
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdesdk/okteta.nix b/pkgs/desktops/kde-4.7/kdesdk/okteta.nix
new file mode 100644
index 000000000000..1b53a0e03dc4
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdesdk/okteta.nix
@@ -0,0 +1,11 @@
+{ kde, kdelibs, qca2 }:
+
+kde {
+  buildInputs = [ kdelibs qca2 ];
+
+# TODO: Look what does -DBUILD_mobile add
+
+  meta = {
+    description = "KDE byte editor";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/sdk/optional-docs.diff b/pkgs/desktops/kde-4.7/kdesdk/optional-docs.diff
similarity index 100%
rename from pkgs/desktops/kde-4.7/sdk/optional-docs.diff
rename to pkgs/desktops/kde-4.7/kdesdk/optional-docs.diff
diff --git a/pkgs/desktops/kde-4.7/kdesdk/poxml.nix b/pkgs/desktops/kde-4.7/kdesdk/poxml.nix
new file mode 100644
index 000000000000..1ab9ed49df56
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdesdk/poxml.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs, antlr }:
+
+kde {
+  buildInputs = [ kdelibs antlr ];
+
+  meta = {
+    description = "Po<->xml tools";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdesdk/scripts.nix b/pkgs/desktops/kde-4.7/kdesdk/scripts.nix
new file mode 100644
index 000000000000..df81145e5d60
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdesdk/scripts.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Various scripts to ease KDE development";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/sdk/strigi-analyzer.nix b/pkgs/desktops/kde-4.7/kdesdk/strigi-analyzer.nix
similarity index 53%
rename from pkgs/desktops/kde-4.7/sdk/strigi-analyzer.nix
rename to pkgs/desktops/kde-4.7/kdesdk/strigi-analyzer.nix
index cacabdcb3267..0ad48c8cfdee 100644
--- a/pkgs/desktops/kde-4.7/sdk/strigi-analyzer.nix
+++ b/pkgs/desktops/kde-4.7/kdesdk/strigi-analyzer.nix
@@ -1,7 +1,7 @@
-{ kde, cmake, kdelibs, qt4, automoc4, phonon, strigi }:
+{ kde, kdelibs }:
 
-kde.package {
-  buildInputs = [ cmake kdelibs qt4 automoc4 phonon strigi ];
+kde {
+  buildInputs = [ kdelibs ];
 
   meta = {
     description = "Strigi analyzers for diff, po and ts";
diff --git a/pkgs/desktops/kde-4.7/kdesdk/umbrello.nix b/pkgs/desktops/kde-4.7/kdesdk/umbrello.nix
new file mode 100644
index 000000000000..e83a2d9a901b
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdesdk/umbrello.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs, libxml2, libxslt, boost }:
+
+kde {
+  buildInputs = [ kdelibs libxml2 libxslt boost ];
+
+  meta = {
+    description = "Umbrello UML modeller";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdetoys/amor.nix b/pkgs/desktops/kde-4.7/kdetoys/amor.nix
new file mode 100644
index 000000000000..936d63d544a9
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdetoys/amor.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "KDE creature for your desktop";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdetoys/kteatime.nix b/pkgs/desktops/kde-4.7/kdetoys/kteatime.nix
new file mode 100644
index 000000000000..dacf54def4b0
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdetoys/kteatime.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "KDE utility for making a fine cup of tea";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdetoys/ktux.nix b/pkgs/desktops/kde-4.7/kdetoys/ktux.nix
new file mode 100644
index 000000000000..108f9be7c722
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdetoys/ktux.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs, kde_workspace }:
+
+kde {
+  buildInputs = [ kdelibs kde_workspace ];
+
+  meta = {
+    description = "Tux Screen Saver";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeutils/ark.nix b/pkgs/desktops/kde-4.7/kdeutils/ark.nix
new file mode 100644
index 000000000000..4449dd8228f2
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeutils/ark.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs, libarchive, xz, bzip2, kde_baseapps }:
+
+kde {
+  buildInputs = [ kdelibs kde_baseapps libarchive xz bzip2 ];
+
+  meta = {
+    description = "KDE Archiving Tool";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeutils/filelight.nix b/pkgs/desktops/kde-4.7/kdeutils/filelight.nix
new file mode 100644
index 000000000000..25ecabed27ce
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeutils/filelight.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Tool to visualise file and directory sizes";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeutils/kcalc.nix b/pkgs/desktops/kde-4.7/kdeutils/kcalc.nix
new file mode 100644
index 000000000000..08b202e8f0e8
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeutils/kcalc.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs, gmp }:
+
+kde {
+  buildInputs = [ kdelibs gmp ];
+
+  meta = {
+    description = "KDE Calculator";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeutils/kcharselect.nix b/pkgs/desktops/kde-4.7/kdeutils/kcharselect.nix
new file mode 100644
index 000000000000..d4c9c06f483d
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeutils/kcharselect.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "KDE character selection utility";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeutils/kdf.nix b/pkgs/desktops/kde-4.7/kdeutils/kdf.nix
new file mode 100644
index 000000000000..3f9da58d0a62
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeutils/kdf.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "KDE free disk space utility";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeutils/kfloppy.nix b/pkgs/desktops/kde-4.7/kdeutils/kfloppy.nix
new file mode 100644
index 000000000000..2434a4fa671f
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeutils/kfloppy.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Floppy disk formatting utility";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeutils/kgpg.nix b/pkgs/desktops/kde-4.7/kdeutils/kgpg.nix
new file mode 100644
index 000000000000..f3b00a5b968c
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeutils/kgpg.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs, kdepimlibs }:
+
+kde {
+  buildInputs = [ kdelibs kdepimlibs ];
+
+  meta = {
+    description = "Simple KDE GUI for GPG";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeutils/kremotecontrol.nix b/pkgs/desktops/kde-4.7/kdeutils/kremotecontrol.nix
new file mode 100644
index 000000000000..70311a789f99
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeutils/kremotecontrol.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs, libXtst }:
+
+kde {
+  buildInputs = [ kdelibs libXtst ];
+
+  meta = {
+    description = "KDE remote control";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeutils/ktimer.nix b/pkgs/desktops/kde-4.7/kdeutils/ktimer.nix
new file mode 100644
index 000000000000..5700977349e3
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeutils/ktimer.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "KDE Timer";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeutils/kwallet.nix b/pkgs/desktops/kde-4.7/kdeutils/kwallet.nix
new file mode 100644
index 000000000000..9ec0e6c0396c
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeutils/kwallet.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "KDE Wallet (password storage) management tool";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeutils/printer-applet.nix b/pkgs/desktops/kde-4.7/kdeutils/printer-applet.nix
new file mode 100644
index 000000000000..2d937b3a4db7
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeutils/printer-applet.nix
@@ -0,0 +1,28 @@
+{ kde, kdelibs
+, pythonPackages, sip, pyqt4, pykde4, pycups, rhpl, system_config_printer
+, pythonDBus, makeWrapper }:
+
+let s_c_p = system_config_printer.override { withGUI = false; }; in
+
+kde rec {
+  buildInputs = [ kdelibs pythonPackages.python pythonPackages.wrapPython
+    ] ++ pythonPath;
+
+  pythonPath = [ pyqt4 pykde4 pycups s_c_p ];
+
+  passthru.propagatedUserEnvPackages = [ s_c_p ];
+
+  postInstall =
+    ''
+      wrapPythonPrograms
+
+      # ‘system-config-printer’ supplies some D-Bus policy that we need.
+      mkdir -p $out/nix-support
+      echo ${s_c_p} > $out/nix-support/propagated-user-env-packages
+    '';
+
+  meta = {
+    description = "KDE printer applet";
+    longDescription = "Applet to view current print jobs and configure new printers";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeutils/superkaramba.nix b/pkgs/desktops/kde-4.7/kdeutils/superkaramba.nix
new file mode 100644
index 000000000000..1475ab041ac3
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeutils/superkaramba.nix
@@ -0,0 +1,11 @@
+{ kde, kdelibs, qimageblitz }:
+
+kde {
+  buildInputs = [ kdelibs qimageblitz ];
+
+  cmakeFlags = [ "-DBUILD_icons=TRUE" "-DBULD_plasma=TRUE" ];
+
+  meta = {
+    description = "A KDE Eye-candy Application";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeutils/sweeper.nix b/pkgs/desktops/kde-4.7/kdeutils/sweeper.nix
new file mode 100644
index 000000000000..78d56c7df30e
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeutils/sweeper.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Helps clean unwanted traces the user leaves on the system";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdewebdev/kfilereplace.nix b/pkgs/desktops/kde-4.7/kdewebdev/kfilereplace.nix
new file mode 100644
index 000000000000..c3f6129d7e5c
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdewebdev/kfilereplace.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs, libxml2, libxslt }:
+
+kde {
+  buildInputs = [ kdelibs libxml2 libxslt ];
+
+  meta = {
+    description = "Batch search and replace tool";
+    homepage = http://www.kdewebdev.org;
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdewebdev/kimagemapeditor.nix b/pkgs/desktops/kde-4.7/kdewebdev/kimagemapeditor.nix
new file mode 100644
index 000000000000..bececea7797e
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdewebdev/kimagemapeditor.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs, libxml2, libxslt }:
+
+kde {
+  buildInputs = [ kdelibs libxml2 libxslt ];
+
+  meta = {
+    description = "An HTML imagemap editor";
+    homepage = http://www.nongnu.org/kimagemap/;
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdewebdev/klinkstatus.nix b/pkgs/desktops/kde-4.7/kdewebdev/klinkstatus.nix
new file mode 100644
index 000000000000..94adbb7fd6e0
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdewebdev/klinkstatus.nix
@@ -0,0 +1,12 @@
+{ kde, kdelibs, libxml2, libxslt, kdepimlibs
+, boost, htmlTidy }:
+
+kde {
+  buildInputs =
+    [ kdelibs libxml2 libxslt kdepimlibs boost htmlTidy ];
+
+  meta = {
+    description = "A KDE link checker";
+    homepage = http://klinkstatus.kdewebdev.org;
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdewebdev/kommander.nix b/pkgs/desktops/kde-4.7/kdewebdev/kommander.nix
new file mode 100644
index 000000000000..6a870e563033
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdewebdev/kommander.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs, libxml2, libxslt }:
+
+kde {
+  buildInputs = [ kdelibs libxml2 libxslt ];
+
+  meta = {
+    description = "A graphical editor of scripted dialogs";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/konsole.nix b/pkgs/desktops/kde-4.7/konsole.nix
deleted file mode 100644
index 4965921fcc6f..000000000000
--- a/pkgs/desktops/kde-4.7/konsole.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{ automoc4, cmake, kde, kdelibs, qt4, phonon }:
-
-kde.package {
-
-  buildInputs = [ cmake kdelibs qt4 automoc4 phonon ];
-
-  meta = {
-    description = "Konsole, the KDE terminal emulator";
-    license = "GPLv2";
-    kde.name = "konsole";
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/l10n/default.nix b/pkgs/desktops/kde-4.7/l10n/default.nix
index d737888ec140..144968f66727 100644
--- a/pkgs/desktops/kde-4.7/l10n/default.nix
+++ b/pkgs/desktops/kde-4.7/l10n/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, cmake, kdelibs, gettext, perl, automoc4, qt4, phonon, release }:
+{ stdenv, fetchurl, kdelibs, gettext, release }:
 
 let
 
@@ -6,17 +6,19 @@ let
 
   kdeL10nDerivation =
     { lang, saneName, sha256 }:
-    
+
     stdenv.mkDerivation rec {
       name = "kde-l10n-${saneName}-${release}";
-      
+
       src = fetchurl {
         url = "mirror://kde/stable/${release}/src/kde-l10n/kde-l10n-${lang}-${release}.tar.bz2";
         name = "${name}.tar.bz2";
         inherit sha256;
       };
 
-      buildInputs = [ cmake perl gettext kdelibs automoc4 qt4 phonon ];
+      buildInputs = [ gettext kdelibs ];
+
+      cmakeFlags = "-Wno-dev";
 
       meta = {
         description = "KDE translation for ${lang}";
diff --git a/pkgs/desktops/kde-4.7/libkdcraw.nix b/pkgs/desktops/kde-4.7/libkdcraw.nix
deleted file mode 100644
index 82c4e75e482d..000000000000
--- a/pkgs/desktops/kde-4.7/libkdcraw.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{ automoc4, cmake, kde, kdelibs, qt4, phonon }:
-
-kde.package {
-
-  buildInputs = [ cmake kdelibs qt4 automoc4 phonon ];
-
-  meta = {
-    description = "Library for decoding RAW images"; 
-    license = "GPLv2";
-    kde.name = "libkdcraw";
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/libkexiv2.nix b/pkgs/desktops/kde-4.7/libkexiv2.nix
deleted file mode 100644
index 0d7405845704..000000000000
--- a/pkgs/desktops/kde-4.7/libkexiv2.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{ automoc4, cmake, kde, kdelibs, qt4, exiv2, perl, phonon }:
-
-kde.package {
-
-  buildInputs = [ cmake kdelibs qt4 automoc4 exiv2 perl phonon ];
-
-  meta = {
-    description = "Exiv2 support library";
-    license = "GPLv2";
-    kde.name = "libkexiv2";
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/libkipi.nix b/pkgs/desktops/kde-4.7/libkipi.nix
deleted file mode 100644
index bb80755f9f2f..000000000000
--- a/pkgs/desktops/kde-4.7/libkipi.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{ automoc4, cmake, kde, kdelibs, qt4, phonon }:
-
-kde.package {
-
-  buildInputs = [ cmake kdelibs qt4 automoc4 phonon ];
-
-  meta = {
-    description = "Interface library to kipi-plugins";
-    license = "GPLv2";
-    kde.name = "libkipi";
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/multimedia.nix b/pkgs/desktops/kde-4.7/multimedia.nix
deleted file mode 100644
index f731808d21ea..000000000000
--- a/pkgs/desktops/kde-4.7/multimedia.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ kde, cmake, perl, qt4, phonon, alsaLib, libvorbis, taglib, flac
-, cdparanoia, lame, kdelibs, automoc4, ffmpeg, libmusicbrainz3, libtunepimp }:
-
-kde.package {
-
-  buildInputs =
-    # Note: kdemultimedia can use xine-lib, but it doesn't seem useful
-    # without the Phonon Xine backend.
-    [ cmake kdelibs qt4 automoc4 phonon cdparanoia taglib libvorbis
-      libmusicbrainz3 libtunepimp ffmpeg flac lame
-    ];
-
-  meta = {
-    description = "KDE multimedia programs such as a movie player and volume utility";
-    license = "GPL";
-    kde.name = "kdemultimedia";
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/network/default.nix b/pkgs/desktops/kde-4.7/network/default.nix
deleted file mode 100644
index af605f191272..000000000000
--- a/pkgs/desktops/kde-4.7/network/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ kde, cmake, qt4, perl, speex, gmp, libxml2, libxslt, sqlite, alsaLib, libidn
-, libvncserver, libmsn, giflib, gpgme, boost, libv4l, libotr
-, libXi, libXtst, libXdamage, libXxf86vm, libktorrent, kdebase
-, kdebase_workspace
-, kdelibs, kdepimlibs, automoc4, qca2, soprano, qimageblitz, strigi}:
-
-kde.package {
-
-  buildInputs = [ cmake qt4 perl speex gmp libxml2 libxslt sqlite alsaLib libidn
-    libvncserver libmsn giflib gpgme boost libv4l libotr libXi libXtst
-    libXdamage libXxf86vm kdelibs kdepimlibs automoc4 qca2 soprano
-    qimageblitz strigi libktorrent kdebase kdebase_workspace ];
-
-  patches = [ ./log-feature.diff ];
-#TODO
-# * telepathy-qt4 (0.18 or higher)  <http://telepathy.freedesktop.org>
-# * KWebKitPart  <https://svn.kde.org/home/kde/trunk/extragear/base/kwebkitpart>
-# * libortp (0.13 or higher)  <http://www.linphone.org/index.php/eng/code_review/ortp>
-# * XMMS  <http://www.xmms.org>
-# * mediastreamer (2.3.0 or higher)  <http://www.linphone.org/index.php/eng/code_review/mediastreamer2>
-# * libmeanwhile  <http://meanwhile.sf.net>
-# * libgadu (1.8.0 or higher)  <http://toxygen.net/libgadu/>
-
-# Let cmake find libktorrent. Waiting for upstream fix
-  KDEDIRS="${libktorrent}";
-
-  meta = {
-    description = "KDE network utilities";
-    longDescription = "Various network utilities for KDE such as a messenger client and network configuration interface";
-    license = "GPL";
-    kde.name = "kdenetwork";
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/support/oxygen-icons/default.nix b/pkgs/desktops/kde-4.7/oxygen-icons.nix
similarity index 80%
rename from pkgs/desktops/kde-4.7/support/oxygen-icons/default.nix
rename to pkgs/desktops/kde-4.7/oxygen-icons.nix
index 5c4944f47c3b..b8e272c20a2c 100644
--- a/pkgs/desktops/kde-4.7/support/oxygen-icons/default.nix
+++ b/pkgs/desktops/kde-4.7/oxygen-icons.nix
@@ -1,16 +1,15 @@
 { kde, cmake }:
 
-kde.package {
+kde {
   outputHashAlgo = "sha256";
   outputHashMode = "recursive";
   outputHash = "7d7f352f574f5747f16ac517cbe19d0b011adb74e7a0b791705afb3addac1e96";
 
-  buildInputs = [ cmake ];
-  
+  buildNativeInputs = [ cmake ];
+
   meta = {
     description = "KDE Oxygen theme icons";
     longDescription = "Icons for KDE's default theme";
     license = "GPL";
-    kde.name = "oxygen-icons";
   };
 }
diff --git a/pkgs/desktops/kde-4.7/pim-runtime.nix b/pkgs/desktops/kde-4.7/pim-runtime.nix
deleted file mode 100644
index 155634aba1d8..000000000000
--- a/pkgs/desktops/kde-4.7/pim-runtime.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ kde, fetchurl, cmake, kdelibs, qt4, phonon, libxml2, libxslt, boost
-, kdepimlibs, automoc4, akonadi, soprano, strigi, shared_mime_info
-, shared_desktop_ontologies }:
-
-kde.package rec {
-  buildInputs =
-    [ cmake kdelibs qt4 automoc4 phonon kdepimlibs akonadi strigi
-      soprano boost shared_mime_info shared_desktop_ontologies
-      libxml2 libxslt
-    ];
-
-  meta = {
-    description = "KDE PIM runtime";
-    license = "GPL";
-    kde.name = "kdepim-runtime";
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/pim.nix b/pkgs/desktops/kde-4.7/pim.nix
deleted file mode 100644
index fe074200fe9c..000000000000
--- a/pkgs/desktops/kde-4.7/pim.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ kde, fetchurl, cmake, boost, gpgme, libassuan, libxslt
-, kdelibs, kdepimlibs, kdepim_runtime
-, automoc4, akonadi, qt4, phonon, soprano, shared_desktop_ontologies
-, strigi, cyrus_sasl }:
-
-kde.package rec {
-
-  buildInputs =
-    [ cmake kdelibs qt4 automoc4 phonon kdepimlibs boost soprano
-      akonadi strigi shared_desktop_ontologies libxslt cyrus_sasl
-      gpgme libassuan
-      #boost gpgme libassuan libgpgerror libxslt
-      #shared_mime_info libXScrnSaver kdelibs kdepimlibs automoc4 akonadi
-    ];
-    
-  #prePatch = ''
-  #    find .. -name CMakeLists.txt | xargs sed -i -e "s@DESTINATION \''${KDE4_DBUS_INTERFACES_DIR}@DESTINATION \''${CMAKE_INSTALL_PREFIX}/share/dbus-1/interfaces/@"
-  #'';
-  
-  postInstall = ''
-      mkdir -p $out/nix-support/
-      echo ${akonadi} ${kdepimlibs} ${kdepim_runtime} > $out/nix-support/propagated-user-env-packages
-  '';
-
-  meta = {
-    description = "KDE PIM tools";
-    longDescription = ''
-      Contains various personal information management tools for KDE, such as an organizer.
-    '';
-    license = "GPL";
-    homepage = http://pim.kde.org;
-    kde.name = "kdepim";
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/pimlibs.nix b/pkgs/desktops/kde-4.7/pimlibs.nix
deleted file mode 100644
index 643569352cd7..000000000000
--- a/pkgs/desktops/kde-4.7/pimlibs.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ stdenv, kde, cmake, qt4, perl, boost, cyrus_sasl, gpgme, libical, openldap, shared_mime_info
-, kdelibs, automoc4, akonadi, soprano, phonon, shared_desktop_ontologies, libxslt }:
-
-kde.package {
-
-  buildInputs =
-    [ cmake kdelibs qt4 automoc4 phonon boost gpgme shared_mime_info
-      shared_desktop_ontologies soprano libical libxslt openldap
-      cyrus_sasl akonadi perl
-    ];
-
-  meta = {
-    description = "KDE PIM libraries";
-    license = "LGPL";
-    kde.name = "kdepimlibs";
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/plasma-addons/default.nix b/pkgs/desktops/kde-4.7/plasma-addons/default.nix
deleted file mode 100644
index 0a1b3aa6b1ae..000000000000
--- a/pkgs/desktops/kde-4.7/plasma-addons/default.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{ kde, cmake, qt4, perl, automoc4, kdelibs, soprano, kdeedu
-, boost, eigen, kdebase_workspace, attica, python, qca2, qimageblitz
-, shared_mime_info, kdepimlibs, kdegraphics, libqalculate, libXtst }:
-# TODO: qwt, scim, MARBLE!!
-
-kde.package {
-
-  preConfigure =
-    "cp -v ${kdeedu}/share/apps/cmake/modules/FindMarble.cmake cmake";
-
-  buildInputs = [ cmake qt4 perl automoc4 kdelibs boost eigen kdebase_workspace
-    attica python qca2 qimageblitz shared_mime_info kdepimlibs kdegraphics
-    libqalculate soprano libXtst kdeedu ];
-
-  meta = {
-    description = "KDE Plasma Addons";
-    license = "GPL";
-    kde.name = "kdeplasma-addons";
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/pykde4.nix b/pkgs/desktops/kde-4.7/pykde4.nix
deleted file mode 100644
index d5424d08c1ec..000000000000
--- a/pkgs/desktops/kde-4.7/pykde4.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ kde, cmake, qt4, automoc4, kdelibs, phonon, python, sip, pyqt4
-, soprano, kdepimlibs, shared_desktop_ontologies, boost, lndir }:
-
-kde.package {
-
-  buildInputs =
-    [ cmake kdelibs qt4 automoc4 phonon python sip pyqt4 soprano
-      kdepimlibs shared_desktop_ontologies boost lndir
-    ];
-
-  NIX_CFLAGS_COMPILE = "-I${phonon}/include/phonon";
-
-  preConfigure =
-    ''
-      substituteInPlace CMakeLists.txt \
-        --replace '{SIP_DEFAULT_SIP_DIR}' '{CMAKE_INSTALL_PREFIX}/share/sip'
-
-      # Use an absolute path to open libpython.so.
-      substituteInPlace kpythonpluginfactory/kpythonpluginfactory.cpp \
-        --replace LIB_PYTHON \"$(echo ${python}/lib/libpython*.so.*)\"
-
-      # Symlink PyQt into PyKDE.  This is necessary because PyQt looks
-      # in its PyQt4/uic/widget-plugins directory for plugins, and KDE
-      # needs to install a plugin.
-      mkdir -p $out/lib/python2.7
-      lndir ${pyqt4}/lib/python2.7 $out/lib/python2.7
-    '';
-
-  meta = {
-    description = "Python bindings for KDE";
-    kde.name = "pykde4";
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/runtime.nix b/pkgs/desktops/kde-4.7/runtime.nix
deleted file mode 100644
index 1b56a3d38c78..000000000000
--- a/pkgs/desktops/kde-4.7/runtime.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ automoc4, cmake, kde, kdelibs, qt4, strigi, soprano, shared_desktop_ontologies
-, bzip2, xz, shared_mime_info, libssh, exiv2, attica, phonon, libcanberra
-, virtuoso, makeWrapper, samba, ntrack
-}:
-
-kde.package {
-
-  buildInputs =
-    [ phonon cmake kdelibs qt4 automoc4 strigi soprano
-      shared_desktop_ontologies bzip2 xz shared_mime_info libssh
-      exiv2 attica virtuoso makeWrapper samba ntrack
-      (libcanberra.override { gtk = null; })
-    ];
-
-# Copied from kde45, Nepomuk needs it.
-  postInstall = ''
-    wrapProgram "$out/bin/nepomukservicestub" --prefix LD_LIBRARY_PATH : "${virtuoso}/lib" \
-        --prefix PATH : "${virtuoso}/bin"
-  '';
-
-  meta = {
-    license = "LGPL";
-    kde.name = "kde-runtime";
-  };
-
-}
diff --git a/pkgs/desktops/kde-4.7/sdk/cervisia.nix b/pkgs/desktops/kde-4.7/sdk/cervisia.nix
deleted file mode 100644
index 1fab0d56b5b9..000000000000
--- a/pkgs/desktops/kde-4.7/sdk/cervisia.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ kde, cmake, kdelibs, qt4, automoc4, phonon, strigi }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs qt4 automoc4 phonon strigi ];
-
-  meta = {
-    description = "A KDE CVS frontend";
-    kde = {
-      name = "cervisia";
-      module = "kdesdk";
-      version = "3.7.0";
-      versionFile = "cervisia/version.h";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/sdk/dolphin-plugins.nix b/pkgs/desktops/kde-4.7/sdk/dolphin-plugins.nix
deleted file mode 100644
index 777581bca918..000000000000
--- a/pkgs/desktops/kde-4.7/sdk/dolphin-plugins.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ kde, cmake, kdelibs, qt4, automoc4, phonon, strigi, kde_baseapps, kdepimlibs }:
-
-kde.package {
-  # Needs kdebase for libkonq
-  buildInputs = [ cmake kdelibs qt4 automoc4 phonon strigi kde_baseapps ];
-
-  cmakeFlags = "-DBUILD_dolphin-plugins/svn=TRUE -DBUILD_dolphin-plugins/git=TRUE";
-  
-  meta = {
-    description = "Git and Svn plugins for dolphin";
-    kde = {
-      name = "dolphin-plugins";
-      module = "kdesdk";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/sdk/kapptemplate.nix b/pkgs/desktops/kde-4.7/sdk/kapptemplate.nix
deleted file mode 100644
index e0069e5d7af4..000000000000
--- a/pkgs/desktops/kde-4.7/sdk/kapptemplate.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ kde, cmake, kdelibs, qt4, automoc4, phonon, strigi }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs qt4 automoc4 phonon strigi ];
-
-  meta = {
-    description = "A KDE 4 project template generator";
-    kde = {
-      name = "kapptemplate";
-      module = "kdesdk";
-      version = "0.1";
-      versionFile = "kapptemplate/main.cpp";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/sdk/kcachegrind.nix b/pkgs/desktops/kde-4.7/sdk/kcachegrind.nix
deleted file mode 100644
index 13c010fffb7c..000000000000
--- a/pkgs/desktops/kde-4.7/sdk/kcachegrind.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ kde, cmake, kdelibs, qt4, automoc4, phonon, strigi }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs qt4 automoc4 phonon strigi ];
-
-  meta = {
-    description = "KDE Frontend for Callgrind/Cachegrind";
-    kde = {
-      name = "kcachegrind";
-      module = "kdesdk";
-      version = "0.6";
-      versionFile = "CMakeLists.txt";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/sdk/kdeaccounts-plugin.nix b/pkgs/desktops/kde-4.7/sdk/kdeaccounts-plugin.nix
deleted file mode 100644
index df5d45bc6214..000000000000
--- a/pkgs/desktops/kde-4.7/sdk/kdeaccounts-plugin.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{ kde, cmake, kdelibs, qt4, automoc4, phonon, strigi, kdepimlibs }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs qt4 automoc4 phonon strigi kdepimlibs ];
-
-  meta = {
-    description = "KDE accounts akonadi agent";
-    kde = {
-      name = "kdeaccounts-plugin";
-      module = "kdesdk";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/sdk/kioslave-perldoc.nix b/pkgs/desktops/kde-4.7/sdk/kioslave-perldoc.nix
deleted file mode 100644
index a490920561dc..000000000000
--- a/pkgs/desktops/kde-4.7/sdk/kioslave-perldoc.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ kde, cmake, kdelibs, qt4, automoc4, phonon, strigi, perl }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs qt4 automoc4 phonon strigi perl ];
-
-  cmakeFlags = "-DBUILD_kioslave=ON -DBUILD_perldoc=ON";
-
-  meta = {
-    description = "perldoc: kioslave";
-    kde = {
-      name = "kioslave-perldoc";
-      module = "kdesdk";
-      version = "0.9.1";
-      versionFile = "kioslave/perldoc/perldoc.cpp";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/sdk/kioslave-svn.nix b/pkgs/desktops/kde-4.7/sdk/kioslave-svn.nix
deleted file mode 100644
index af6c98f91182..000000000000
--- a/pkgs/desktops/kde-4.7/sdk/kioslave-svn.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ kde, cmake, kdelibs, qt4, automoc4, phonon, strigi, subversion, apr, aprutil }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs qt4 automoc4 phonon strigi subversion apr aprutil ];
-
-  patches = [ ./find-svn.patch ];
-  cmakeFlags = "-DBUILD_kioslave=ON";
-
-  meta = {
-    description = "Subversion kioslave";
-    kde = {
-      name = "kioslave-svn";
-      module = "kdesdk";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/sdk/kmtrace.nix b/pkgs/desktops/kde-4.7/sdk/kmtrace.nix
deleted file mode 100644
index e5a3392645e3..000000000000
--- a/pkgs/desktops/kde-4.7/sdk/kmtrace.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ kde, cmake, kdelibs, qt4, automoc4, phonon, strigi, gcc }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs qt4 automoc4 phonon strigi ];
-
-  preConfigure = "export CMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH:${gcc}:${gcc.gcc}";
-
-  meta = {
-    description = "KDE mtrace-based malloc debugger";
-    kde = {
-      name = "kmtrace";
-      module = "kdesdk";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/sdk/kompare.nix b/pkgs/desktops/kde-4.7/sdk/kompare.nix
deleted file mode 100644
index aa07dbb1039a..000000000000
--- a/pkgs/desktops/kde-4.7/sdk/kompare.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ kde, cmake, kdelibs, qt4, automoc4, phonon, strigi }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs qt4 automoc4 phonon strigi ];
-
-  meta = {
-    description = "A program to view the differences between files and optionally generate a diff";
-    kde = {
-      name = "kompare";
-      module = "kdesdk";
-      version = "4.0.0";
-      versionFile = "main.cpp";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/sdk/kpartloader.nix b/pkgs/desktops/kde-4.7/sdk/kpartloader.nix
deleted file mode 100644
index 6391ab145f52..000000000000
--- a/pkgs/desktops/kde-4.7/sdk/kpartloader.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ kde, cmake, kdelibs, qt4, automoc4, phonon, strigi }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs qt4 automoc4 phonon strigi ];
-
-  meta = {
-    description = "A test application for KParts";
-    kde = {
-      name = "kpartloader";
-      module = "kdesdk";
-      version = "1.0";
-      versionFile = "kpartloader.cpp";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/sdk/kprofilemethod.nix b/pkgs/desktops/kde-4.7/sdk/kprofilemethod.nix
deleted file mode 100644
index c87e04714579..000000000000
--- a/pkgs/desktops/kde-4.7/sdk/kprofilemethod.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{ kde, cmake, kdelibs, qt4, automoc4, phonon, strigi }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs qt4 automoc4 phonon strigi ];
-
-  meta = {
-    description = "A macro for profiling using QTime";
-    kde = {
-      name = "kprofilemethod";
-      module = "kdesdk";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/sdk/kstartperf.nix b/pkgs/desktops/kde-4.7/sdk/kstartperf.nix
deleted file mode 100644
index 56d4c8bcb3f9..000000000000
--- a/pkgs/desktops/kde-4.7/sdk/kstartperf.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ kde, cmake, kdelibs, qt4, automoc4, phonon, strigi, libtool }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs qt4 automoc4 phonon strigi libtool ];
-
-  meta = {
-    description = "Measures start up time of a KDE application";
-    kde = {
-      name = "kstartperf";
-      module = "kdesdk";
-      version = "1.0";
-      versionFile = "kstartperf.cpp";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/sdk/kuiviewer.nix b/pkgs/desktops/kde-4.7/sdk/kuiviewer.nix
deleted file mode 100644
index c1b4f6fe08c8..000000000000
--- a/pkgs/desktops/kde-4.7/sdk/kuiviewer.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ kde, cmake, kdelibs, qt4, automoc4, phonon, strigi }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs qt4 automoc4 phonon strigi ];
-
-  meta = {
-    description = "Displays Qt Designer's UI files";
-    kde = {
-      name = "kuiviewer";
-      module = "kdesdk";
-      version = "0.1";
-      versionFile = "main.cpp";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/sdk/lokalize.nix b/pkgs/desktops/kde-4.7/sdk/lokalize.nix
deleted file mode 100644
index f5d3aa0e0f99..000000000000
--- a/pkgs/desktops/kde-4.7/sdk/lokalize.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-{ kde, cmake, kdelibs, qt4, automoc4, phonon, strigi, hunspell }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs qt4 automoc4 phonon strigi hunspell ];
-
-  meta = {
-    description = "KDE 4 Computer-aided translation system";
-    longDescription = ''
-      Computer-aided translation system.
-      Do not translate what had already been translated.
-    '';
-    kde = {
-      name = "lokalize";
-      module = "kdesdk";
-      version = "1.2";
-      versionFile = "src/version.h";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/sdk/okteta.nix b/pkgs/desktops/kde-4.7/sdk/okteta.nix
deleted file mode 100644
index ef590ab50c44..000000000000
--- a/pkgs/desktops/kde-4.7/sdk/okteta.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ kde, cmake, kdelibs, qt4, automoc4, phonon, strigi, shared_mime_info, qca2 }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs qt4 automoc4 phonon strigi shared_mime_info qca2 ];
-
-  meta = {
-    description = "KDE byte editor";
-    kde = {
-      name = "okteta";
-      module = "kdesdk";
-      version = "0.5.3";
-      versionFile = "program/about.cpp";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/sdk/poxml.nix b/pkgs/desktops/kde-4.7/sdk/poxml.nix
deleted file mode 100644
index ae0921706687..000000000000
--- a/pkgs/desktops/kde-4.7/sdk/poxml.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{ kde, cmake, kdelibs, qt4, automoc4, phonon, strigi, antlr }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs qt4 automoc4 phonon strigi antlr ];
-
-  meta = {
-    description = "Po<->xml tools";
-    kde = {
-      name = "poxml";
-      module = "kdesdk";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/sdk/scripts.nix b/pkgs/desktops/kde-4.7/sdk/scripts.nix
deleted file mode 100644
index 70fdb8b606b1..000000000000
--- a/pkgs/desktops/kde-4.7/sdk/scripts.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{ kde, cmake, kdelibs, qt4, automoc4, phonon, strigi }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs qt4 automoc4 phonon strigi ];
-
-  meta = {
-    description = "Various scripts to ease KDE development";
-    kde = {
-      name = "scripts";
-      module = "kdesdk";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/sdk/umbrello.nix b/pkgs/desktops/kde-4.7/sdk/umbrello.nix
deleted file mode 100644
index 9785d6c3146d..000000000000
--- a/pkgs/desktops/kde-4.7/sdk/umbrello.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{ kde, cmake, kdelibs, qt4, automoc4, phonon, strigi, libxml2, libxslt, boost }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs qt4 automoc4 phonon strigi libxml2 libxslt boost ];
-
-  meta = {
-    description = "Umbrello UML modeller";
-    kde = {
-      name = "umbrello";
-      module = "kdesdk";
-      version = "2.5.2"; # release - 200
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/support/soprano/default.nix b/pkgs/desktops/kde-4.7/support/soprano/default.nix
index acd2b8770198..8d07f352d17d 100644
--- a/pkgs/desktops/kde-4.7/support/soprano/default.nix
+++ b/pkgs/desktops/kde-4.7/support/soprano/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, cmake, qt4, clucene_core, redland, libiodbc }:
 
 stdenv.mkDerivation rec {
-  name = "soprano-2.6.51";
+  name = "soprano-2.7.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/soprano/${name}.tar.bz2";
-    sha256 = "0sj0cklxahlhig29d0b1a3hr1p2z1xfar7j1slj2klbcy3qn47i0";
+    sha256 = "1ki92wg0i9nhn1fh5mdcls5h9h3lf2k5r66snsags4x7zw0dmv2z";
   };
 
   # We disable the Java backend, since we do not need them and they make the closure size much bigger
diff --git a/pkgs/desktops/kde-4.7/toys/amor.nix b/pkgs/desktops/kde-4.7/toys/amor.nix
deleted file mode 100644
index 3ff0706b9ba7..000000000000
--- a/pkgs/desktops/kde-4.7/toys/amor.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ kde, cmake, kdelibs, qt4, automoc4, phonon }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs qt4 automoc4 phonon ];
-
-  meta = {
-    description = "KDE creature for your desktop";
-    kde = {
-      name = "amor";
-      module = "kdetoys";
-      version = "2.4.0";
-      versionFile = "src/version.h";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/toys/kteatime.nix b/pkgs/desktops/kde-4.7/toys/kteatime.nix
deleted file mode 100644
index 54550d8f270b..000000000000
--- a/pkgs/desktops/kde-4.7/toys/kteatime.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{ kde, cmake, kdelibs, qt4, automoc4, phonon }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs qt4 automoc4 phonon ];
-
-  meta = {
-    description = "KDE utility for making a fine cup of tea";
-    kde = {
-      name = "kteatime";
-      module = "kdetoys";
-      version = "1.2.1";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/toys/ktux.nix b/pkgs/desktops/kde-4.7/toys/ktux.nix
deleted file mode 100644
index 8f350f083ba6..000000000000
--- a/pkgs/desktops/kde-4.7/toys/ktux.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ kde, cmake, kdelibs, qt4, automoc4, phonon, kde_workspace }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs qt4 automoc4 phonon kde_workspace ];
-
-  meta = {
-    description = "Tux Screen Saver";
-    kde = {
-      name = "ktux";
-      module = "kdetoys";
-      version = "1.0.1";
-      versionFile = "src/sprite.cpp";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/utils/ark.nix b/pkgs/desktops/kde-4.7/utils/ark.nix
deleted file mode 100644
index d3766bfa3130..000000000000
--- a/pkgs/desktops/kde-4.7/utils/ark.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-{ kde, cmake, kdelibs, qt4, libarchive, xz, automoc4
-, phonon, bzip2, kde_baseapps }:
-
-kde.package {
-  buildInputs =
-    [ cmake kdelibs qt4 automoc4 phonon kde_baseapps
-      libarchive xz bzip2
-    ];
-
-  meta = {
-    description = "KDE Archiving Tool";
-    kde = {
-      name = "ark";
-      module = "kdeutils";
-      version = "2.17";
-      versionFile = "app/main.cpp";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/utils/filelight.nix b/pkgs/desktops/kde-4.7/utils/filelight.nix
deleted file mode 100644
index 6a61fa28816b..000000000000
--- a/pkgs/desktops/kde-4.7/utils/filelight.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{ kde, cmake, kdelibs, qt4, automoc4, phonon }:
-
-kde.package {
-  buildInputs = [ cmake qt4 kdelibs automoc4 phonon ];
-
-  meta = {
-    description = "Tool to visualise file and directory sizes";
-    kde = {
-      name = "filelight";
-      module = "kdeutils";
-      version = "1.10";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/utils/kcalc.nix b/pkgs/desktops/kde-4.7/utils/kcalc.nix
deleted file mode 100644
index 932fd296e562..000000000000
--- a/pkgs/desktops/kde-4.7/utils/kcalc.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ kde, cmake, kdelibs, qt4, automoc4, phonon, gmp }:
-
-kde.package {
-  buildInputs = [ cmake qt4 kdelibs automoc4 phonon gmp ];
-
-  meta = {
-    description = "KDE Calculator";
-    kde = {
-      name = "kcalc";
-      module = "kdeutils";
-      version = "2.9";
-      versionFile = "version.h";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/utils/kcharselect.nix b/pkgs/desktops/kde-4.7/utils/kcharselect.nix
deleted file mode 100644
index 563596a6de30..000000000000
--- a/pkgs/desktops/kde-4.7/utils/kcharselect.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ kde, cmake, kdelibs, qt4, automoc4, phonon }:
-
-kde.package {
-  buildInputs = [ cmake qt4 kdelibs automoc4 phonon ];
-
-  meta = {
-    description = "KDE character selection utility";
-    kde = {
-      name = "kcharselect";
-      module = "kdeutils";
-      version = "1.9";
-      versionFile = "main.cc";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/utils/kdf.nix b/pkgs/desktops/kde-4.7/utils/kdf.nix
deleted file mode 100644
index a7f18ae96c5d..000000000000
--- a/pkgs/desktops/kde-4.7/utils/kdf.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ kde, cmake, kdelibs, qt4, automoc4, phonon }:
-
-kde.package {
-  buildInputs = [ cmake qt4 kdelibs automoc4 phonon ];
-
-  meta = {
-    description = "KDE free disk space utility";
-    kde = {
-      name = "kdf";
-      module = "kdeutils";
-      version = "0.13";
-      versionFile = "kdf.cpp";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/utils/kfloppy.nix b/pkgs/desktops/kde-4.7/utils/kfloppy.nix
deleted file mode 100644
index 9d8a8b2f99ff..000000000000
--- a/pkgs/desktops/kde-4.7/utils/kfloppy.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{ kde, cmake, kdelibs, qt4, automoc4, phonon }:
-
-kde.package {
-  buildInputs = [ cmake qt4 kdelibs automoc4 phonon ];
-
-  meta = {
-    description = "Floppy disk formatting utility";
-    kde = {
-      name = "kfloppy";
-      module = "kdeutils";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/utils/kgpg.nix b/pkgs/desktops/kde-4.7/utils/kgpg.nix
deleted file mode 100644
index 415d3e47ce8c..000000000000
--- a/pkgs/desktops/kde-4.7/utils/kgpg.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ kde, cmake, kdelibs, qt4, automoc4, phonon, kdepimlibs }:
-
-kde.package {
-  buildInputs = [ cmake qt4 kdelibs automoc4 phonon kdepimlibs ];
-
-  meta = {
-    description = "Simple KDE GUI for GPG";
-    kde = {
-      name = "kgpg";
-      module = "kdeutils";
-      version = "2.4.1";
-      versionFile = "main.cpp";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/utils/kremotecontrol.nix b/pkgs/desktops/kde-4.7/utils/kremotecontrol.nix
deleted file mode 100644
index 548e75f900d9..000000000000
--- a/pkgs/desktops/kde-4.7/utils/kremotecontrol.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{ kde, cmake, kdelibs, qt4, automoc4, phonon, libXtst }:
-
-kde.package {
-  buildInputs = [ cmake qt4 kdelibs automoc4 phonon libXtst ];
-
-  meta = {
-    description = "KDE remote control";
-    kde = {
-      name = "kremotecontrol";
-      module = "kdeutils";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/utils/ktimer.nix b/pkgs/desktops/kde-4.7/utils/ktimer.nix
deleted file mode 100644
index a343390ce50e..000000000000
--- a/pkgs/desktops/kde-4.7/utils/ktimer.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ kde, cmake, kdelibs, qt4, automoc4, phonon }:
-
-kde.package {
-  buildInputs = [ cmake qt4 kdelibs automoc4 phonon ];
-
-  meta = {
-    description = "KDE Timer";
-    kde = {
-      name = "ktimer";
-      module = "kdeutils";
-      version = "0.6";
-      versionFile = "main.cpp";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/utils/kwallet.nix b/pkgs/desktops/kde-4.7/utils/kwallet.nix
deleted file mode 100644
index 5f0edcaa8da9..000000000000
--- a/pkgs/desktops/kde-4.7/utils/kwallet.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ kde, cmake, kdelibs, qt4, automoc4, phonon }:
-
-kde.package {
-  buildInputs = [ cmake qt4 kdelibs automoc4 phonon ];
-
-  meta = {
-    description = "KDE Wallet (password storage) management tool";
-    kde = {
-      name = "kwallet";
-      module = "kdeutils";
-      version = "1.6";
-      versionFile = "main.cpp";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/utils/printer-applet.nix b/pkgs/desktops/kde-4.7/utils/printer-applet.nix
deleted file mode 100644
index 12c7eb96d47d..000000000000
--- a/pkgs/desktops/kde-4.7/utils/printer-applet.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ kde, cmake, kdelibs, qt4, automoc4, phonon
-, pythonPackages, sip, pyqt4, pykde4, pycups, rhpl, system_config_printer
-, pythonDBus, makeWrapper }:
-
-kde.package rec {
-  buildInputs =
-    [ cmake qt4 kdelibs automoc4 phonon
-      pythonPackages.python pythonPackages.wrapPython
-    ] ++ pythonPath;
-
-  pythonPath = [ pyqt4 pykde4 pycups system_config_printer ];
-
-  postInstall =
-    ''
-      wrapPythonPrograms
-
-      # ‘system-config-printer’ supplies some D-Bus policy that we need.
-      mkdir -p $out/nix-support
-      echo ${system_config_printer} > $out/nix-support/propagated-user-env-packages
-    '';
-    
-  meta = {
-    description = "KDE printer applet";
-    longDescription = "Applet to view current print jobs and configure new printers";
-    kde = {
-      name = "printer-applet";
-      module = "kdeutils";
-      version = "1.7";
-      versionFile = "printer-applet.py";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/utils/superkaramba.nix b/pkgs/desktops/kde-4.7/utils/superkaramba.nix
deleted file mode 100644
index f0e6d9511ba0..000000000000
--- a/pkgs/desktops/kde-4.7/utils/superkaramba.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ kde, cmake, kdelibs, qt4, automoc4, phonon, qimageblitz, python }:
-
-kde.package {
-  buildInputs = [ cmake qt4 kdelibs automoc4 phonon qimageblitz ];
-
-  cmakeFlags = "-DBUILD_icons=TRUE -DBULD_plasma=TRUE";
-
-  meta = {
-    description = "A KDE Eye-candy Application";
-    kde = {
-      name = "superkaramba";
-      module = "kdeutils";
-      version = "0.57";
-      versionFile = "src/main.cpp";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/utils/sweeper.nix b/pkgs/desktops/kde-4.7/utils/sweeper.nix
deleted file mode 100644
index 1b4ca0ed7ee3..000000000000
--- a/pkgs/desktops/kde-4.7/utils/sweeper.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ kde, cmake, kdelibs, qt4, automoc4, phonon }:
-
-kde.package {
-  buildInputs = [ cmake qt4 kdelibs automoc4 phonon ];
-
-  meta = {
-    description = "Helps clean unwanted traces the user leaves on the system";
-    kde = {
-      name = "sweeper";
-      module = "kdeutils";
-      version = "1.7";
-      versionFile = "main.cpp";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/webdev/kfilereplace.nix b/pkgs/desktops/kde-4.7/webdev/kfilereplace.nix
deleted file mode 100644
index 5e05cfd3f52a..000000000000
--- a/pkgs/desktops/kde-4.7/webdev/kfilereplace.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ kde, cmake, kdelibs, qt4, automoc4, phonon, libxml2, libxslt }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs qt4 automoc4 phonon libxml2 libxslt ];
-
-  meta = {
-    description = "Batch search and replace tool";
-    homepage = http://www.kdewebdev.org;
-    kde = {
-      name = "kfilereplace";
-      module = "kdewebdev";
-      version = "0.1";
-      versionFile = "main.cpp";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/webdev/kimagemapeditor.nix b/pkgs/desktops/kde-4.7/webdev/kimagemapeditor.nix
deleted file mode 100644
index 1664ece34f0b..000000000000
--- a/pkgs/desktops/kde-4.7/webdev/kimagemapeditor.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ kde, cmake, kdelibs, qt4, automoc4, phonon, libxml2, libxslt }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs qt4 automoc4 phonon libxml2 libxslt ];
-
-  meta = {
-    description = "An HTML imagemap editor";
-    homepage = http://www.nongnu.org/kimagemap/;
-    kde = {
-      name = "kimagemapeditor";
-      module = "kdewebdev";
-      version = "3.9.0";
-      versionFile = "version.h";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/webdev/klinkstatus.nix b/pkgs/desktops/kde-4.7/webdev/klinkstatus.nix
deleted file mode 100644
index aadcec7ec79d..000000000000
--- a/pkgs/desktops/kde-4.7/webdev/klinkstatus.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ kde, cmake, kdelibs, qt4, automoc4, phonon, libxml2, libxslt, kdepimlibs
-, boost, htmlTidy }:
-
-kde.package {
-  buildInputs =
-    [ cmake kdelibs qt4 automoc4 phonon libxml2 libxslt kdepimlibs boost htmlTidy ];
-
-  meta = {
-    description = "A KDE link checker";
-    homepage = http://klinkstatus.kdewebdev.org;
-    kde = {
-      name = "klinkstatus";
-      module = "kdewebdev";
-      version = "0.7.0";
-      versionFile = "src/main.cpp";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/webdev/kommander.nix b/pkgs/desktops/kde-4.7/webdev/kommander.nix
deleted file mode 100644
index 43d9b0aeb653..000000000000
--- a/pkgs/desktops/kde-4.7/webdev/kommander.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{ kde, cmake, kdelibs, qt4, automoc4, phonon, libxml2, libxslt }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs qt4 automoc4 phonon libxml2 libxslt ];
-
-  meta = {
-    description = "A graphical editor of scripted dialogs";
-    kde = {
-      name = "kommander";
-      module = "kdewebdev";
-      versionFile = "lib/kommanderversion.h";
-    };
-  };
-}