summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/graphics/fbida/default.nix4
-rw-r--r--pkgs/applications/graphics/kuickshow/builder.sh6
-rw-r--r--pkgs/applications/graphics/kuickshow/default.nix23
-rw-r--r--pkgs/applications/graphics/xara/debian-patches.nix30
-rw-r--r--pkgs/applications/graphics/xara/debian-patches.txt7
-rw-r--r--pkgs/applications/graphics/xara/default.nix37
-rw-r--r--pkgs/applications/graphics/xara/gtk_cflags.patch20
-rw-r--r--pkgs/applications/misc/gphoto2/default.nix10
-rw-r--r--pkgs/applications/misc/taskjuggler/default.nix4
-rw-r--r--pkgs/applications/misc/yate/default.nix4
-rw-r--r--pkgs/applications/networking/kphone/default.nix6
-rw-r--r--pkgs/applications/networking/p2p/valknut/default.nix4
-rw-r--r--pkgs/applications/networking/twinkle/default.nix4
-rw-r--r--pkgs/applications/office/ledger/3.0.nix10
-rw-r--r--pkgs/applications/office/ledger/default.nix2
-rw-r--r--pkgs/applications/science/misc/vite/default.nix4
-rw-r--r--pkgs/applications/video/mythtv/default.nix6
-rw-r--r--pkgs/applications/virtualization/qemu/0.15.nix19
-rw-r--r--pkgs/data/fonts/cantarell-fonts/default.nix17
-rw-r--r--pkgs/desktops/gnome-2/default.nix2
-rw-r--r--pkgs/desktops/gnome-2/platform/gnome-vfs/default.nix7
-rw-r--r--pkgs/desktops/gnome-2/platform/libgnome-keyring/default.nix18
-rw-r--r--pkgs/desktops/gnome-3/TODO.txt106
-rw-r--r--pkgs/desktops/gnome-3/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/platform/GConf.nix7
-rw-r--r--pkgs/desktops/gnome-3/platform/clutter.nix24
-rw-r--r--pkgs/desktops/gnome-3/platform/glib-networking.nix3
-rw-r--r--pkgs/desktops/gnome-3/platform/gnome-user-docs.nix12
-rw-r--r--pkgs/desktops/gnome-3/platform/gsettings-desktop-schemas.nix6
-rw-r--r--pkgs/desktops/gnome-3/platform/libgnome-keyring.nix18
-rw-r--r--pkgs/desktops/gnome-3/platform/libsoup.nix24
-rw-r--r--pkgs/desktops/kde-3/kdelibs/default.nix6
-rw-r--r--pkgs/desktops/kde-4.8/default.nix56
-rw-r--r--pkgs/desktops/kde-4.8/files/polkit-install.patch12
-rw-r--r--pkgs/desktops/kde-4.8/kactivities.nix9
-rw-r--r--pkgs/desktops/kde-4.8/kde-baseapps/kate.nix10
-rw-r--r--pkgs/desktops/kde-4.8/kde-baseapps/kde-baseapps.nix10
-rw-r--r--pkgs/desktops/kde-4.8/kde-baseapps/konsole.nix11
-rw-r--r--pkgs/desktops/kde-4.8/kde-package/4.7.97.nix300
-rw-r--r--pkgs/desktops/kde-4.8/kde-package/default.nix127
-rwxr-xr-xpkgs/desktops/kde-4.8/kde-package/kde-manifest.sh146
-rw-r--r--pkgs/desktops/kde-4.8/kde-package/kde-submodules.xslt22
-rw-r--r--pkgs/desktops/kde-4.8/kde-runtime.nix16
-rw-r--r--pkgs/desktops/kde-4.8/kde-wallpapers.nix14
-rw-r--r--pkgs/desktops/kde-4.8/kde-workspace.nix32
-rw-r--r--pkgs/desktops/kde-4.8/kdeaccessibility/jovie.nix9
-rw-r--r--pkgs/desktops/kde-4.8/kdeaccessibility/kaccessible.nix9
-rw-r--r--pkgs/desktops/kde-4.8/kdeaccessibility/kmag.nix9
-rw-r--r--pkgs/desktops/kde-4.8/kdeaccessibility/kmousetool.nix9
-rw-r--r--pkgs/desktops/kde-4.8/kdeaccessibility/kmouth.nix9
-rw-r--r--pkgs/desktops/kde-4.8/kdeadmin/kcron.nix5
-rw-r--r--pkgs/desktops/kde-4.8/kdeadmin/ksystemlog.nix5
-rw-r--r--pkgs/desktops/kde-4.8/kdeadmin/kuser.nix5
-rw-r--r--pkgs/desktops/kde-4.8/kdeadmin/system-config-printer-kde.nix33
-rw-r--r--pkgs/desktops/kde-4.8/kdeartwork/ColorSchemes.nix11
-rw-r--r--pkgs/desktops/kde-4.8/kdeartwork/FindXscreensaver.cmake73
-rw-r--r--pkgs/desktops/kde-4.8/kdeartwork/HighResolutionWallpapers.nix11
-rw-r--r--pkgs/desktops/kde-4.8/kdeartwork/IconThemes.nix13
-rw-r--r--pkgs/desktops/kde-4.8/kdeartwork/WeatherWallpapers.nix11
-rw-r--r--pkgs/desktops/kde-4.8/kdeartwork/aurorae.nix7
-rw-r--r--pkgs/desktops/kde-4.8/kdeartwork/desktopthemes.nix11
-rw-r--r--pkgs/desktops/kde-4.8/kdeartwork/emoticons.nix11
-rw-r--r--pkgs/desktops/kde-4.8/kdeartwork/kscreensaver.nix13
-rw-r--r--pkgs/desktops/kde-4.8/kdeartwork/kwin-styles.nix9
-rw-r--r--pkgs/desktops/kde-4.8/kdeartwork/sounds.nix11
-rw-r--r--pkgs/desktops/kde-4.8/kdeartwork/styles.nix11
-rw-r--r--pkgs/desktops/kde-4.8/kdeartwork/wallpapers.nix11
-rw-r--r--pkgs/desktops/kde-4.8/kdebindings/perlqt.nix10
-rw-r--r--pkgs/desktops/kde-4.8/kdebindings/pykde-purity.patch49
-rw-r--r--pkgs/desktops/kde-4.8/kdebindings/pykde4.nix30
-rw-r--r--pkgs/desktops/kde-4.8/kdebindings/smokegen.nix13
-rw-r--r--pkgs/desktops/kde-4.8/kdebindings/smokekde.nix10
-rw-r--r--pkgs/desktops/kde-4.8/kdebindings/smokeqt.nix12
-rw-r--r--pkgs/desktops/kde-4.8/kdeedu/FindLibfacile.cmake32
-rw-r--r--pkgs/desktops/kde-4.8/kdeedu/analitza.nix8
-rw-r--r--pkgs/desktops/kde-4.8/kdeedu/blinken.nix8
-rw-r--r--pkgs/desktops/kde-4.8/kdeedu/cantor.nix8
-rw-r--r--pkgs/desktops/kde-4.8/kdeedu/kalgebra.nix8
-rw-r--r--pkgs/desktops/kde-4.8/kdeedu/kalzium-feature-log.patch15
-rw-r--r--pkgs/desktops/kde-4.8/kdeedu/kalzium.nix15
-rw-r--r--pkgs/desktops/kde-4.8/kdeedu/kanagram.nix8
-rw-r--r--pkgs/desktops/kde-4.8/kdeedu/kbruch.nix8
-rw-r--r--pkgs/desktops/kde-4.8/kdeedu/kgeography.nix8
-rw-r--r--pkgs/desktops/kde-4.8/kdeedu/khangman.nix8
-rw-r--r--pkgs/desktops/kde-4.8/kdeedu/kig.nix12
-rw-r--r--pkgs/desktops/kde-4.8/kdeedu/kiten.nix9
-rw-r--r--pkgs/desktops/kde-4.8/kdeedu/klettres.nix9
-rw-r--r--pkgs/desktops/kde-4.8/kdeedu/kmplot.nix12
-rw-r--r--pkgs/desktops/kde-4.8/kdeedu/kstars.nix9
-rw-r--r--pkgs/desktops/kde-4.8/kdeedu/ktouch.nix9
-rw-r--r--pkgs/desktops/kde-4.8/kdeedu/kturtle.nix9
-rw-r--r--pkgs/desktops/kde-4.8/kdeedu/kwordquiz.nix9
-rw-r--r--pkgs/desktops/kde-4.8/kdeedu/libkdeedu.nix8
-rw-r--r--pkgs/desktops/kde-4.8/kdeedu/marble.nix9
-rw-r--r--pkgs/desktops/kde-4.8/kdeedu/parley.nix9
-rw-r--r--pkgs/desktops/kde-4.8/kdeedu/rocs.nix14
-rw-r--r--pkgs/desktops/kde-4.8/kdeedu/step.nix12
-rw-r--r--pkgs/desktops/kde-4.8/kdegames.nix18
-rw-r--r--pkgs/desktops/kde-4.8/kdegraphics/gwenview.nix12
-rw-r--r--pkgs/desktops/kde-4.8/kdegraphics/kamera.nix10
-rw-r--r--pkgs/desktops/kde-4.8/kdegraphics/kcolorchooser.nix10
-rw-r--r--pkgs/desktops/kde-4.8/kdegraphics/kdegraphics-strigi-analyzer.nix10
-rw-r--r--pkgs/desktops/kde-4.8/kdegraphics/kdegraphics-thumbnailers.nix10
-rw-r--r--pkgs/desktops/kde-4.8/kdegraphics/kgamma.nix10
-rw-r--r--pkgs/desktops/kde-4.8/kdegraphics/kolourpaint.nix10
-rw-r--r--pkgs/desktops/kde-4.8/kdegraphics/kruler.nix10
-rw-r--r--pkgs/desktops/kde-4.8/kdegraphics/ksaneplugin.nix10
-rw-r--r--pkgs/desktops/kde-4.8/kdegraphics/ksnapshot.nix10
-rw-r--r--pkgs/desktops/kde-4.8/kdegraphics/libkdcraw.nix10
-rw-r--r--pkgs/desktops/kde-4.8/kdegraphics/libkexiv2.nix10
-rw-r--r--pkgs/desktops/kde-4.8/kdegraphics/libkipi.nix10
-rw-r--r--pkgs/desktops/kde-4.8/kdegraphics/libksane.nix10
-rw-r--r--pkgs/desktops/kde-4.8/kdegraphics/mobipocket.nix10
-rw-r--r--pkgs/desktops/kde-4.8/kdegraphics/okular.nix12
-rw-r--r--pkgs/desktops/kde-4.8/kdegraphics/svgpart.nix10
-rw-r--r--pkgs/desktops/kde-4.8/kdelibs.nix39
-rw-r--r--pkgs/desktops/kde-4.8/kdemultimedia.nix16
-rw-r--r--pkgs/desktops/kde-4.8/kdenetwork/FindmsiLBC.cmake19
-rw-r--r--pkgs/desktops/kde-4.8/kdenetwork/filesharing.nix7
-rw-r--r--pkgs/desktops/kde-4.8/kdenetwork/kdenetwork.patch24
-rw-r--r--pkgs/desktops/kde-4.8/kdenetwork/kdnssd.nix7
-rw-r--r--pkgs/desktops/kde-4.8/kdenetwork/kfile-plugins.nix11
-rw-r--r--pkgs/desktops/kde-4.8/kdenetwork/kget.nix13
-rw-r--r--pkgs/desktops/kde-4.8/kdenetwork/kopete.nix21
-rw-r--r--pkgs/desktops/kde-4.8/kdenetwork/kppp.nix7
-rw-r--r--pkgs/desktops/kde-4.8/kdenetwork/krdc.nix7
-rw-r--r--pkgs/desktops/kde-4.8/kdenetwork/krfb.nix7
-rw-r--r--pkgs/desktops/kde-4.8/kdenetwork/log-feature.diff60
-rw-r--r--pkgs/desktops/kde-4.8/kdepim-runtime.nix12
-rw-r--r--pkgs/desktops/kde-4.8/kdepim.nix21
-rw-r--r--pkgs/desktops/kde-4.8/kdepimlibs.nix16
-rw-r--r--pkgs/desktops/kde-4.8/kdeplasma-addons.nix18
-rw-r--r--pkgs/desktops/kde-4.8/kdesdk/cervisia.nix9
-rw-r--r--pkgs/desktops/kde-4.8/kdesdk/dolphin-plugins-bazaar.nix10
-rw-r--r--pkgs/desktops/kde-4.8/kdesdk/dolphin-plugins-git.nix10
-rw-r--r--pkgs/desktops/kde-4.8/kdesdk/dolphin-plugins-hg.nix10
-rw-r--r--pkgs/desktops/kde-4.8/kdesdk/dolphin-plugins-svn.nix10
-rw-r--r--pkgs/desktops/kde-4.8/kdesdk/find-svn.patch59
-rw-r--r--pkgs/desktops/kde-4.8/kdesdk/kapptemplate.nix9
-rw-r--r--pkgs/desktops/kde-4.8/kdesdk/kcachegrind.nix9
-rw-r--r--pkgs/desktops/kde-4.8/kdesdk/kdeaccounts-plugin.nix9
-rw-r--r--pkgs/desktops/kde-4.8/kdesdk/kioslave-perldoc.nix11
-rw-r--r--pkgs/desktops/kde-4.8/kdesdk/kioslave-svn.nix11
-rw-r--r--pkgs/desktops/kde-4.8/kdesdk/kmtrace.nix11
-rw-r--r--pkgs/desktops/kde-4.8/kdesdk/kompare.nix9
-rw-r--r--pkgs/desktops/kde-4.8/kdesdk/kpartloader.nix9
-rw-r--r--pkgs/desktops/kde-4.8/kdesdk/kprofilemethod.nix9
-rw-r--r--pkgs/desktops/kde-4.8/kdesdk/kstartperf.nix9
-rw-r--r--pkgs/desktops/kde-4.8/kdesdk/kuiviewer.nix9
-rw-r--r--pkgs/desktops/kde-4.8/kdesdk/lokalize.nix13
-rw-r--r--pkgs/desktops/kde-4.8/kdesdk/okteta.nix11
-rw-r--r--pkgs/desktops/kde-4.8/kdesdk/optional-docs.diff39
-rw-r--r--pkgs/desktops/kde-4.8/kdesdk/poxml.nix9
-rw-r--r--pkgs/desktops/kde-4.8/kdesdk/scripts.nix9
-rw-r--r--pkgs/desktops/kde-4.8/kdesdk/strigi-analyzer.nix13
-rw-r--r--pkgs/desktops/kde-4.8/kdesdk/umbrello.nix9
-rw-r--r--pkgs/desktops/kde-4.8/kdetoys/amor.nix9
-rw-r--r--pkgs/desktops/kde-4.8/kdetoys/kteatime.nix9
-rw-r--r--pkgs/desktops/kde-4.8/kdetoys/ktux.nix9
-rw-r--r--pkgs/desktops/kde-4.8/kdeutils/ark.nix9
-rw-r--r--pkgs/desktops/kde-4.8/kdeutils/filelight.nix9
-rw-r--r--pkgs/desktops/kde-4.8/kdeutils/kcalc.nix9
-rw-r--r--pkgs/desktops/kde-4.8/kdeutils/kcharselect.nix9
-rw-r--r--pkgs/desktops/kde-4.8/kdeutils/kdf.nix9
-rw-r--r--pkgs/desktops/kde-4.8/kdeutils/kfloppy.nix9
-rw-r--r--pkgs/desktops/kde-4.8/kdeutils/kgpg.nix9
-rw-r--r--pkgs/desktops/kde-4.8/kdeutils/kremotecontrol.nix9
-rw-r--r--pkgs/desktops/kde-4.8/kdeutils/ksecrets.nix9
-rw-r--r--pkgs/desktops/kde-4.8/kdeutils/ktimer.nix9
-rw-r--r--pkgs/desktops/kde-4.8/kdeutils/kwallet.nix9
-rw-r--r--pkgs/desktops/kde-4.8/kdeutils/printer-applet.nix28
-rw-r--r--pkgs/desktops/kde-4.8/kdeutils/superkaramba.nix11
-rw-r--r--pkgs/desktops/kde-4.8/kdeutils/sweeper.nix9
-rw-r--r--pkgs/desktops/kde-4.8/kdewebdev/kfilereplace.nix10
-rw-r--r--pkgs/desktops/kde-4.8/kdewebdev/kimagemapeditor.nix10
-rw-r--r--pkgs/desktops/kde-4.8/kdewebdev/klinkstatus.nix12
-rw-r--r--pkgs/desktops/kde-4.8/kdewebdev/kommander.nix9
-rw-r--r--pkgs/desktops/kde-4.8/kipi-plugins.nix29
-rw-r--r--pkgs/desktops/kde-4.8/l10n/default.nix44
-rwxr-xr-xpkgs/desktops/kde-4.8/l10n/l10n-manifest.sh32
-rw-r--r--pkgs/desktops/kde-4.8/l10n/manifest-4.7.97.nix272
-rw-r--r--pkgs/desktops/kde-4.8/oxygen-icons.nix15
-rw-r--r--pkgs/desktops/kde-4.8/support/akonadi/default.nix24
-rw-r--r--pkgs/development/compilers/epic/default.nix4
-rw-r--r--pkgs/development/libraries/arts/default.nix8
-rw-r--r--pkgs/development/libraries/atk/1.24.x.nix31
-rw-r--r--pkgs/development/libraries/atk/2.2.x.nix9
-rw-r--r--pkgs/development/libraries/atkmm/2.22.x.nix12
-rw-r--r--pkgs/development/libraries/cogl/default.nix11
-rw-r--r--pkgs/development/libraries/gdk-pixbuf/2.24.x.nix19
-rw-r--r--pkgs/development/libraries/glib/2.20.x.nix33
-rw-r--r--pkgs/development/libraries/gtk+/2.16.x.nix39
-rw-r--r--pkgs/development/libraries/gtk+/2.24.x.nix15
-rw-r--r--pkgs/development/libraries/haskell/conduit/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/hakyll/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/http-conduit/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/http-enumerator/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/iteratee/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/maude/default.nix10
-rw-r--r--pkgs/development/libraries/haskell/unix-compat/0.3.nix17
-rw-r--r--pkgs/development/libraries/haskell/unix-compat/default.nix (renamed from pkgs/development/libraries/haskell/unix-compat/0.2.2.1.nix)4
-rw-r--r--pkgs/development/libraries/haskell/yesod-core/default.nix4
-rw-r--r--pkgs/development/libraries/libdbusmenu-qt/default.nix10
-rw-r--r--pkgs/development/libraries/libgphoto2/default.nix9
-rw-r--r--pkgs/development/libraries/libgphoto2/libgphoto2-2.2.1.patch14
-rw-r--r--pkgs/development/libraries/libgsf/default.nix11
-rw-r--r--pkgs/development/libraries/libwpd/0.8.nix14
-rw-r--r--pkgs/development/libraries/mlt/default.nix4
-rw-r--r--pkgs/development/libraries/newt/default.nix29
-rw-r--r--pkgs/development/libraries/openssl/default.nix27
-rw-r--r--pkgs/development/libraries/openssl/gnu.patch2
-rw-r--r--pkgs/development/libraries/pango/1.24.x.nix29
-rw-r--r--pkgs/development/libraries/pangomm/2.28.x.nix12
-rw-r--r--pkgs/development/libraries/qt-3/default.nix2
-rw-r--r--pkgs/development/libraries/wxGTK-2.6/default.nix44
-rw-r--r--pkgs/development/tools/documentation/doxygen/default.nix14
-rw-r--r--pkgs/development/tools/misc/elfutils/default.nix54
-rw-r--r--pkgs/development/tools/misc/itstool/default.nix27
-rw-r--r--pkgs/development/tools/misc/xxdiff/3.2.nix42
-rw-r--r--pkgs/development/tools/misc/xxdiff/default.nix25
-rw-r--r--pkgs/games/orbit/default.nix6
-rw-r--r--pkgs/misc/drivers/hplip/default.nix2
-rw-r--r--pkgs/misc/uboot/nanonote.nix2
-rw-r--r--pkgs/os-specific/linux/fbterm/src-for-default.nix8
-rw-r--r--pkgs/os-specific/linux/fbterm/stdenv.nix8
-rw-r--r--pkgs/os-specific/linux/firmware/ralink/default.nix33
-rw-r--r--pkgs/os-specific/linux/kernel/perf.nix22
-rw-r--r--pkgs/os-specific/linux/pam_usb/default.nix8
-rw-r--r--pkgs/os-specific/linux/pmount/default.nix8
-rw-r--r--pkgs/tools/filesystems/mtdutils/default.nix4
-rw-r--r--pkgs/tools/graphics/qrencode/default.nix29
-rw-r--r--pkgs/tools/misc/xburst-tools/default.nix6
-rw-r--r--pkgs/tools/networking/modemmanager/default.nix2
-rw-r--r--pkgs/top-level/all-packages.nix113
-rw-r--r--pkgs/top-level/haskell-packages.nix8
-rw-r--r--pkgs/top-level/release-cross.nix1
236 files changed, 3531 insertions, 688 deletions
diff --git a/pkgs/applications/graphics/fbida/default.nix b/pkgs/applications/graphics/fbida/default.nix
index ea7cb81a48e..7f29b43e0e1 100644
--- a/pkgs/applications/graphics/fbida/default.nix
+++ b/pkgs/applications/graphics/fbida/default.nix
@@ -27,6 +27,10 @@ stdenv.mkDerivation rec {
   
   makeFlags = [ "prefix=$(out)" "verbose=yes" ];
 
+  crossAttrs = {
+    makeFlags = makeFlags ++ [ "CC=${stdenv.cross.config}-gcc" "STRIP="];
+  };
+
   meta = {
     description = "Image viewing and manipulation programs";
   };
diff --git a/pkgs/applications/graphics/kuickshow/builder.sh b/pkgs/applications/graphics/kuickshow/builder.sh
index e2e0659ae34..2283e956f7b 100644
--- a/pkgs/applications/graphics/kuickshow/builder.sh
+++ b/pkgs/applications/graphics/kuickshow/builder.sh
@@ -2,11 +2,9 @@ source $stdenv/setup
 
 patchPhase=patchPhase
 patchPhase() {
-  sed -e "s@-ljpeg6b@-ljpeg@" configure > configure.patched
-  mv configure.patched configure
-  chmod u+x configure
+  sed -e "s@-ljpeg6b@-ljpeg@" -i configure
 }
 
 genericBuild
 
-ln -s $KDEDIR/share/mimelnk $out/share
\ No newline at end of file
+ln -sv $KDEDIR/share/mimelnk $out/share
diff --git a/pkgs/applications/graphics/kuickshow/default.nix b/pkgs/applications/graphics/kuickshow/default.nix
index fde29735b71..b26ac12300b 100644
--- a/pkgs/applications/graphics/kuickshow/default.nix
+++ b/pkgs/applications/graphics/kuickshow/default.nix
@@ -1,23 +1,14 @@
-{stdenv, fetchurl, libX11, libXext, libSM, kdelibs, qt, libjpeg, libungif, libpng, libtiff, imlib, arts, expat, perl}:
+{ stdenv, fetchurl, kdelibs, imlib, cmake, pkgconfig, gettext }:
 
-stdenv.mkDerivation {
-  name = "kuickshow-0.8.5";
-  builder = ./builder.sh;
+stdenv.mkDerivation rec {
+  name = "kuickshow-0.9.1";
 
   src = fetchurl {
-    url = mirror://sourceforge/kuickshow/kuickshow-0.8.5.tgz;
-    md5 = "7a95852a0670b18859a1e6789b256ebd";
+    url = "http://hosti.leonde.de/~gis/${name}.tar.bz2";
+    sha256 = "0l488a6p0ligbhv6p1lnx5k2d00x9bkkvms30winifa8rmisa9wl";
   };
 
-  configureFlags = "
-    --with-imlib-config=${imlib}/bin
-    --with-extra-includes=${libjpeg}/include
-    --with-extra-libs=${libjpeg}/lib
-    --x-includes=${libX11}/include
-    --x-libraries=${libX11}/lib";
+  buildInputs = [ kdelibs imlib ];
 
-  buildInputs = [kdelibs libX11 libXext libSM qt libjpeg libungif libpng libtiff imlib arts expat perl];
-  inherit libjpeg;
-
-  KDEDIR = kdelibs;
+  buildNativeInputs = [ cmake gettext pkgconfig ];
 }
diff --git a/pkgs/applications/graphics/xara/debian-patches.nix b/pkgs/applications/graphics/xara/debian-patches.nix
new file mode 100644
index 00000000000..dd306146186
--- /dev/null
+++ b/pkgs/applications/graphics/xara/debian-patches.nix
@@ -0,0 +1,30 @@
+# Generated by debian-patches.sh from debian-patches.txt
+let
+  prefix = "http://patch-tracker.debian.org/patch/series/dl/xaralx/0.7r1785-5";
+in
+[
+  {
+    url = "${prefix}/30_gtk_wxwidgets_symbol_clash";
+    sha256 = "1rc9dh9mnp93mad96dkp7idyhhcw7h6w0g5s92mqgzj79hqgaziz";
+  }
+  {
+    url = "${prefix}/40_algorithm_include";
+    sha256 = "03jhl1qnxj7nl8malf6v1y24aldfz87x1p2jxp04mrr35nzvyyc0";
+  }
+  {
+    url = "${prefix}/50_update_imagemagick_version_parser";
+    sha256 = "1nilsqghlr649sc14n1aqkhdx7f66rq91gqccdpi17jwijs27497";
+  }
+  {
+    url = "${prefix}/remove-icon-suffix";
+    sha256 = "160zmkgwlsanqivnip89558yvd9zvqp8ks2wbyr2aigl2rafin22";
+  }
+  {
+    url = "${prefix}/45_fix_gcc4";
+    sha256 = "06zsj0z9v5n557gj8337v6xd26clbvm4dc0qhvpvzbisq81l9jyi";
+  }
+  {
+    url = "${prefix}/55_fix_contstuctor_call";
+    sha256 = "0b14glrcwhv0ja960h56n5jm4f9563ladap2pgaywihq485ql1c1";
+  }
+]
diff --git a/pkgs/applications/graphics/xara/debian-patches.txt b/pkgs/applications/graphics/xara/debian-patches.txt
new file mode 100644
index 00000000000..5c95d401a32
--- /dev/null
+++ b/pkgs/applications/graphics/xara/debian-patches.txt
@@ -0,0 +1,7 @@
+xaralx/0.7r1785-5
+30_gtk_wxwidgets_symbol_clash
+40_algorithm_include
+50_update_imagemagick_version_parser
+remove-icon-suffix
+45_fix_gcc4
+55_fix_contstuctor_call
diff --git a/pkgs/applications/graphics/xara/default.nix b/pkgs/applications/graphics/xara/default.nix
index 89ba789524f..8a6bac4db2b 100644
--- a/pkgs/applications/graphics/xara/default.nix
+++ b/pkgs/applications/graphics/xara/default.nix
@@ -1,35 +1,20 @@
-{stdenv, fetchurl, autoconf, automake, gettext, libtool, cvs, wxGTK, gtk,
-pkgconfig, libxml2, zip, libpng, libjpeg, shebangfix, perl, freetype}:
+{stdenv, fetchurl, automake, gettext, freetype, libxml2, pango, pkgconfig
+, wxGTK, gtk, perl, zip}:
 
 stdenv.mkDerivation {
-  name = "xaralx-0.7r1766";
+  name = "xaralx-0.7r1785";
+
   src = fetchurl {
-    url = http://downloads2.xara.com/opensource/XaraLX-0.7r1766.tar.bz2;
-    sha256 = "1rcl7hqvcai586jky7hvzxhnq8q0ka2rsmgiq5ijwclgr5d4ah7n";
+    url = http://downloads2.xara.com/opensource/XaraLX-0.7r1785.tar.bz2;
+    sha256 = "05xbzq1i1vw2mdsv7zjqfpxfv3g1j0g5kks0gq6sh373xd6y8lyh";
   };
     
-  buildInputs = [automake autoconf gettext libtool cvs wxGTK gtk pkgconfig libxml2 zip libpng libjpeg shebangfix perl];
+  buildNativeInputs = [ automake pkgconfig gettext perl zip ];
+  buildInputs = [ wxGTK gtk libxml2 freetype pango ];
 
-  inherit freetype libpng libjpeg libxml2;
-  configureFlags = "--with-wx-config --disable-svnversion --disable-international";
+  configureFlags = "--disable-svnversion";
 
-  patches = [./gtk_cflags.patch];
+  patches = map fetchurl (import ./debian-patches.nix);
 
-  # Why do I need to add library path for freetype ? 
-  installPhase = "
-    make install
-    ensureDir \$out/lib
-    mv \$out/{bin,lib}/XaraLX
-cat >> \$out/bin/XaraLX << EOF
-#!/bin/sh
-LD_LIBRARY_PATH=\$freetype/lib:\$libpng/lib:\$libjpeg/lib:\$libxml2/lib:
-\$out/lib/XaraLX \"\\$@\"
-EOF
-chmod +x \$out/bin/XaraLX
-";
- 
-  patchPhase = "
-    find . -iname \"*.pl\" | xargs shebangfix;
-    unset patchPhase; patchPhase
-   "; 
+  prePatch = "patchShebangs Scripts";
 }
diff --git a/pkgs/applications/graphics/xara/gtk_cflags.patch b/pkgs/applications/graphics/xara/gtk_cflags.patch
deleted file mode 100644
index 84223607399..00000000000
--- a/pkgs/applications/graphics/xara/gtk_cflags.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff -rc XaraLX-0.7r1766/Makefile.in XaraLX-0.7r1766.new/Makefile.in
-*** XaraLX-0.7r1766/Makefile.in	2007-01-31 13:43:04.000000000 +0100
---- XaraLX-0.7r1766.new/Makefile.in	2007-05-15 00:19:36.000000000 +0200
-***************
-*** 256,262 ****
-  @DARWIN_LINK_TRUE@XaraLX_SOURCES = Kernel/*.o wxOil/*.o tools/*.o wxXtra/*.o
-  @DARWIN_LINK_FALSE@XaraLX_LDSOURCE = -Wl,--start-group $(XaraLX_SOURCES) -Wl,--end-group
-  @DARWIN_LINK_TRUE@XaraLX_LDSOURCE = $(XaraLX_SOURCES)
-! XaraLX_LDFLAGS = --debug -L$(srcdir)/$(CDRAW_LIB_DIR) $(WX_LIBS) $(LIBS) $(LIBXML2_LIBS) -lCDraw
-  UNZIP = unzip
-  ACLOCAL_AMFLAGS = -I m4
-  all: all-recursive
---- 256,262 ----
-  @DARWIN_LINK_TRUE@XaraLX_SOURCES = Kernel/*.o wxOil/*.o tools/*.o wxXtra/*.o
-  @DARWIN_LINK_FALSE@XaraLX_LDSOURCE = -Wl,--start-group $(XaraLX_SOURCES) -Wl,--end-group
-  @DARWIN_LINK_TRUE@XaraLX_LDSOURCE = $(XaraLX_SOURCES)
-! XaraLX_LDFLAGS = --debug -L$(srcdir)/$(CDRAW_LIB_DIR) $(GTK_LIBS) $(WX_LIBS) $(LIBS) $(LIBXML2_LIBS) -lCDraw
-  UNZIP = unzip
-  ACLOCAL_AMFLAGS = -I m4
-  all: all-recursive
diff --git a/pkgs/applications/misc/gphoto2/default.nix b/pkgs/applications/misc/gphoto2/default.nix
index a881ef2e272..9fff2943d30 100644
--- a/pkgs/applications/misc/gphoto2/default.nix
+++ b/pkgs/applications/misc/gphoto2/default.nix
@@ -3,18 +3,16 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "gphoto2-2.4.5";
+  name = "gphoto2-2.4.11";
   
   src = fetchurl {
     url = "mirror://sourceforge/gphoto/${name}.tar.bz2";
-    sha256 = "0bjbgz9n7ijf8167i1bm7q3pg366axgx5zydck13d2znhd30x069";
+    sha256 = "0ah42b7rnqh0z8bb96z7cdycxdh5k19h6lmfc02kdhrhqdr3q81y";
   };
   
-  buildInputs = [pkgconfig libgphoto2 libexif popt gettext libjpeg readline libtool];
+  buildNativeInputs = [ pkgconfig gettext ];
+  buildInputs = [ libgphoto2 libexif popt libjpeg readline libtool ];
   
-  # There is a bug in 2.4.0 configure.ac (in their m4 macroses)
-  #patchPhase = "sed -e 's@_tmp=true@_tmp=false@' -i configure configure.ac";
-
   meta = {
     homepage = http://www.gphoto.org/;
   };
diff --git a/pkgs/applications/misc/taskjuggler/default.nix b/pkgs/applications/misc/taskjuggler/default.nix
index 25cdd1f1646..652450e510b 100644
--- a/pkgs/applications/misc/taskjuggler/default.nix
+++ b/pkgs/applications/misc/taskjuggler/default.nix
@@ -1,5 +1,5 @@
 {stdenv, fetchurl,
-zlib, libpng, libjpeg, perl, expat, qt,
+zlib, libpng, libjpeg, perl, expat, qt3,
 libX11, libXext, libSM, libICE,
 withKde, kdelibs, kdebase
 }:
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
     --without-arts --disable-docs
     --x-includes=${libX11}/include
     --x-libraries=${libX11}/lib
-    --with-qt-dir=${qt}
+    --with-qt-dir=${qt3}
     --with-kde-support=${if withKde then "yes" else "no"} --with-ical-support=${if withKde then "yes" else "no"}
   ";
 
diff --git a/pkgs/applications/misc/yate/default.nix b/pkgs/applications/misc/yate/default.nix
index 2994ca19065..b2f4217afb5 100644
--- a/pkgs/applications/misc/yate/default.nix
+++ b/pkgs/applications/misc/yate/default.nix
@@ -1,4 +1,4 @@
-{ composableDerivation, fetchurl, lib, qt, openssl, autoconf, automake, pkgconfig }:
+{ composableDerivation, fetchurl, lib, qt4, openssl, autoconf, automake, pkgconfig }:
 
 let inherit (composableDerivation) edf wwf; in
 
@@ -11,7 +11,7 @@ composableDerivation.composableDerivation {} ( fixed : {
   };
 
   # TODO zaptel ? postgres ?
-  buildInputs = [ qt openssl autoconf automake pkgconfig ];
+  buildInputs = [ qt4 openssl autoconf automake pkgconfig ];
 
   # /dev/null is used when linking which is a impure path for the wrapper
   preConfigure =
diff --git a/pkgs/applications/networking/kphone/default.nix b/pkgs/applications/networking/kphone/default.nix
index 7b1c7c76dd8..dceb24a48b8 100644
--- a/pkgs/applications/networking/kphone/default.nix
+++ b/pkgs/applications/networking/kphone/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, autoconf, automake, libtool, qt, pkgconfig
+{ stdenv, fetchurl, autoconf, automake, libtool, qt3, pkgconfig
 , openssl, libpng, alsaLib, libX11, libXext, libXt, libICE
 , libSM }:
 
@@ -6,12 +6,12 @@ stdenv.mkDerivation {
   name = "kphone-1.2";
 
   src = fetchurl {
-    url = mirror://sourceforge/kphone/files/KPhone%20SI/KPhoneSIv1.2/kphoneSI_1.2.tar.gz;
+    url = mirror://sourceforge/kphone/kphoneSI_1.2.tar.gz;
     sha256 = "1q309n2gsdsa8d7ff2zwnyc69ngpnnj143dys90dnlmzr9ckhhg3";
   };
 
   buildInputs =
-    [ autoconf automake libtool qt pkgconfig openssl libpng alsaLib
+    [ autoconf automake libtool qt3 pkgconfig openssl libpng alsaLib
       libX11 libXext libXt libICE libSM
     ];
     
diff --git a/pkgs/applications/networking/p2p/valknut/default.nix b/pkgs/applications/networking/p2p/valknut/default.nix
index 994f6b44f94..2290cf52314 100644
--- a/pkgs/applications/networking/p2p/valknut/default.nix
+++ b/pkgs/applications/networking/p2p/valknut/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, perl, x11, libxml2, libjpeg, libpng, openssl, qt, dclib}:
+{stdenv, fetchurl, perl, x11, libxml2, libjpeg, libpng, openssl, qt3, dclib}:
 
 stdenv.mkDerivation {
   name = "valknut-0.3.7";
@@ -9,6 +9,6 @@ stdenv.mkDerivation {
     md5 = "848f9b3f25af15c3f1837133ac4b9415";
   };
 
-  buildInputs = [perl x11 libxml2 libjpeg libpng openssl qt dclib];
+  buildInputs = [perl x11 libxml2 libjpeg libpng openssl qt3 dclib];
   inherit openssl;
 }
diff --git a/pkgs/applications/networking/twinkle/default.nix b/pkgs/applications/networking/twinkle/default.nix
index 905f7efc43a..0824210c4b5 100644
--- a/pkgs/applications/networking/twinkle/default.nix
+++ b/pkgs/applications/networking/twinkle/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, pkgconfig, commoncpp2, ccrtp, openssl, boost
-, libsndfile, libxml2, libjpeg, readline, qt, perl, file
+, libsndfile, libxml2, libjpeg, readline, qt3, perl, file
 , alsaLib, speex, libzrtpcpp, xorg }:
         
 stdenv.mkDerivation {
@@ -14,7 +14,7 @@ stdenv.mkDerivation {
 
   buildInputs =
     [ pkgconfig commoncpp2 ccrtp openssl boost libsndfile
-      libxml2 libjpeg readline qt perl file
+      libxml2 libjpeg readline qt3 perl file
       # optional ? :
       alsaLib
       speex libzrtpcpp xorg.libX11 xorg.libXaw xorg.libICE xorg.libXext
diff --git a/pkgs/applications/office/ledger/3.0.nix b/pkgs/applications/office/ledger/3.0.nix
index 6c3a4694395..0df148ce390 100644
--- a/pkgs/applications/office/ledger/3.0.nix
+++ b/pkgs/applications/office/ledger/3.0.nix
@@ -18,6 +18,10 @@ stdenv.mkDerivation {
     git texinfo
   ];
 
+  CPPFLAGS = "-I${gmp}/include -I${mpfr}/include";
+
+  LDFLAGS = "-L${gmp}/lib -L${mpfr}/lib";
+
   buildPhase = ''
     sed -i acprep \
       -e 's|search_prefixes = .*|search_prefixes = ["${boost}"]|'
@@ -25,7 +29,9 @@ stdenv.mkDerivation {
     python acprep update --no-pch --prefix=$out
   '';
 
-  doCheck = true;
+  doCheck = !stdenv.isDarwin;
+
+  enableParallelBuilding = true;
 
   meta = {
     homepage = "http://ledger-cli.org/";
@@ -39,7 +45,7 @@ stdenv.mkDerivation {
       their data, there really is no alternative.
     '';
 
-    platforms = stdenv.lib.platforms.linux;
+    platforms = stdenv.lib.platforms.all;
     maintainers = [ stdenv.lib.maintainers.simons ];
   };
 }
diff --git a/pkgs/applications/office/ledger/default.nix b/pkgs/applications/office/ledger/default.nix
index 1bc8e586e33..c1cd4b42a02 100644
--- a/pkgs/applications/office/ledger/default.nix
+++ b/pkgs/applications/office/ledger/default.nix
@@ -47,7 +47,7 @@ stdenv.mkDerivation {
       their data, there really is no alternative.
     '';
 
-    platforms = stdenv.lib.platforms.linux;
+    platforms = stdenv.lib.platforms.all;
     maintainers = [ stdenv.lib.maintainers.simons ];
   };
 }
diff --git a/pkgs/applications/science/misc/vite/default.nix b/pkgs/applications/science/misc/vite/default.nix
index 24060c277fd..4c1cf318b5a 100644
--- a/pkgs/applications/science/misc/vite/default.nix
+++ b/pkgs/applications/science/misc/vite/default.nix
@@ -1,4 +1,4 @@
-{ fetchsvn, stdenv, cmake, qt, mesa }:
+{ fetchsvn, stdenv, cmake, qt4, mesa }:
 
 # ViTE 1.1 has several bugs, so use the SVN version.
 let
@@ -25,7 +25,7 @@ stdenv.mkDerivation {
 
   patches = [ ./larger-line-buffer.patch ];
 
-  buildInputs = [ cmake qt mesa ];
+  buildInputs = [ cmake qt4 mesa ];
 
   NIX_LDFLAGS = "-lGLU";
 
diff --git a/pkgs/applications/video/mythtv/default.nix b/pkgs/applications/video/mythtv/default.nix
index 6ca6651c571..821c37d9c51 100644
--- a/pkgs/applications/video/mythtv/default.nix
+++ b/pkgs/applications/video/mythtv/default.nix
@@ -1,9 +1,11 @@
-{ stdenv, fetchurl, which, qt3, x11, xlibs
+a@{ stdenv, fetchurl, which, qt3, x11, xlibs
 , lame, zlib, mesa, alsaLib
 , freetype, perl
 }:
 
-assert qt3.mysqlSupport;
+let
+  qt3 = a.qt3.override { mysqlSupport = true; };
+in
 
 stdenv.mkDerivation {
   name = "mythtv-0.21";
diff --git a/pkgs/applications/virtualization/qemu/0.15.nix b/pkgs/applications/virtualization/qemu/0.15.nix
new file mode 100644
index 00000000000..f75b2129243
--- /dev/null
+++ b/pkgs/applications/virtualization/qemu/0.15.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, python, zlib, pkgconfig, glib, SDL, ncurses }:
+
+stdenv.mkDerivation rec {
+  name = "qemu-0.15.1";
+
+  src = fetchurl {
+    url = "http://wiki.qemu.org/download/${name}.tar.gz";
+    sha256 = "1fmm7l7hm0vsmahp41pgvbl62hh833k802brn6hg8kcfkd6v21bp";
+  };
+
+  buildInputs = [ python zlib pkgconfig glib SDL ncurses ];
+
+  meta = {
+    description = "QEmu processor emulator";
+    license = "GPLv2+";
+    maintainers = with stdenv.lib.maintainers; [viric];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/pkgs/data/fonts/cantarell-fonts/default.nix b/pkgs/data/fonts/cantarell-fonts/default.nix
new file mode 100644
index 00000000000..c7697c4f072
--- /dev/null
+++ b/pkgs/data/fonts/cantarell-fonts/default.nix
@@ -0,0 +1,17 @@
+{ stdenv, fetchurl, xz }:
+
+stdenv.mkDerivation {
+  name = "cantarell-fonts-0.0.7";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/cantarell-fonts/0.0/cantarell-fonts-0.0.7.tar.xz;
+    sha256 = "1410ywvi951ngmx58g339phzsaf1rgjja6i0xvg49r4ds90zh8ba";
+  };
+
+  buildNativeInputs = [ xz ];
+
+  meta = {
+    maintainers = [ stdenv.lib.maintainers.urkud ];
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/desktops/gnome-2/default.nix b/pkgs/desktops/gnome-2/default.nix
index 814b054f74e..a10b605076d 100644
--- a/pkgs/desktops/gnome-2/default.nix
+++ b/pkgs/desktops/gnome-2/default.nix
@@ -50,6 +50,8 @@
 
   gnome_vfs_monikers = callPackage ./platform/gnome-vfs-monikers { };
 
+  libgnome_keyring = callPackage ./platform/libgnome-keyring { };
+
   libgnome = callPackage ./platform/libgnome { };
 
   libgnomeui = callPackage ./platform/libgnomeui { };
diff --git a/pkgs/desktops/gnome-2/platform/gnome-vfs/default.nix b/pkgs/desktops/gnome-2/platform/gnome-vfs/default.nix
index c141da4324d..0215b341f93 100644
--- a/pkgs/desktops/gnome-2/platform/gnome-vfs/default.nix
+++ b/pkgs/desktops/gnome-2/platform/gnome-vfs/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl_gnome, pkgconfig, libxml2, bzip2, openssl, samba, dbus_glib
-, glib, fam, hal, cdparanoia, intltool, GConf, gnome_mime_data}:
+, glib, fam, cdparanoia, intltool, GConf, gnome_mime_data, avahi, acl }:
 
 stdenv.mkDerivation rec {
   name = src.pkgname;
@@ -12,9 +12,8 @@ stdenv.mkDerivation rec {
 
   buildInputs =
     [ pkgconfig libxml2 bzip2 openssl samba dbus_glib fam cdparanoia
-      intltool gnome_mime_data
-    ]
-    ++ (if stdenv.isLinux then [hal] else []);
+      intltool gnome_mime_data avahi acl
+    ];
 
   propagatedBuildInputs = [ GConf glib ];
 }
diff --git a/pkgs/desktops/gnome-2/platform/libgnome-keyring/default.nix b/pkgs/desktops/gnome-2/platform/libgnome-keyring/default.nix
new file mode 100644
index 00000000000..f937ce26018
--- /dev/null
+++ b/pkgs/desktops/gnome-2/platform/libgnome-keyring/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl, glib, dbus_libs, libgcrypt, pkgconfig, xz,
+intltool }:
+
+stdenv.mkDerivation {
+  name = "libgnome-keyring-2.32.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/libgnome-keyring/2.32/libgnome-keyring-2.32.0.tar.bz2;
+    sha256 = "030gka96kzqg1r19b4xrmac89hf1xj1kr5p461yvbzfxh46qqf2n";
+  };
+
+  propagatedBuildInputs = [ glib dbus_libs libgcrypt ];
+  buildNativeInputs = [ pkgconfig xz intltool ];
+
+  meta = {
+    inherit (glib.meta) platforms maintainers;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/TODO.txt b/pkgs/desktops/gnome-3/TODO.txt
deleted file mode 100644
index eaffb5d3092..00000000000
--- a/pkgs/desktops/gnome-3/TODO.txt
+++ /dev/null
@@ -1,106 +0,0 @@
-## CORE
-core:NetworkManager:0.9.1.90:
-core:brasero:3.2.0:
-core:cantarell-fonts:0.0.6:
-core:caribou:0.4.0:
-core:clutter:1.8.0:
-core:clutter-gtk:1.0.4:
-core:cogl:1.8.0:
-core:dconf:0.10.0:
-core:empathy:3.2.0:
-core:eog:3.2.0:
-core:epiphany:3.2.0:
-core:evince:3.2.0:
-core:evolution-data-server:3.2.0:
-core:folks:0.6.3.2:
-core:gcalctool:6.2.0:
-core:gdm:3.2.0:
-core:gjs:1.30.0:
-core:glib-networking:2.30.0:
-core:gnome-backgrounds:3.2.0:
-core:gnome-bluetooth:3.2.0:
-core:gnome-contacts:3.2.0.1:
-core:gnome-control-center:3.2.0:
-core:gnome-desktop:3.2.0:
-core:gnome-disk-utility:3.0.2:
-core:gnome-doc-utils:0.20.6:
-core:gnome-icon-theme:3.2.0:
-core:gnome-icon-theme-extras:3.0.0:
-core:gnome-icon-theme-symbolic:3.2.0:
-core:gnome-keyring:3.2.0:
-core:gnome-menus:3.2.0:
-core:gnome-online-accounts:3.2.0.1:
-core:gnome-packagekit:3.2.0:
-core:gnome-panel:3.2.0:
-core:gnome-power-manager:3.2.0:
-core:gnome-screensaver:3.2.0:
-core:gnome-session:3.2.0:
-core:gnome-settings-daemon:3.2.0:
-core:gnome-shell:3.2.0:
-core:gnome-system-monitor:3.2.0:
-core:gnome-terminal:3.2.0:
-core:gnome-themes-standard:3.2.0.2:
-core:gnome-user-docs:3.2.0.1:
-core:gnome-user-share:3.0.0:
-core:gnome-utils:3.2.0:
-core:gnome-video-effects:0.3.0:
-core:gobject-introspection:1.30.0:
-core:gsettings-desktop-schemas:3.2.0:
-core:gst-plugins-base:0.10.35:
-core:gst-plugins-good:0.10.30:
-core:gstreamer:0.10.35:
-core:gtk+:2.24.6:
-core:gtk-doc:1.18:
-core:gtkmm:3.2.0:
-core:gucharmap:3.2.0:
-core:gvfs:1.10.0:
-core:libgnome-keyring:3.2.0:
-core:libgnomekbd:3.2.0:
-core:libgtop:2.28.4:
-core:libgweather:3.2.0:
-core:libpeas:1.2.0:
-core:librsvg:2.34.1:
-core:libsoup:2.36.0:
-core:libwnck:3.2.0:
-core:metacity:2.34.1:
-core:mm-common:0.9.5:
-core:mousetweaks:3.2.0:
-core:mutter:3.2.0:
-core:nautilus:3.2.0:
-core:network-manager-applet:0.9.1.90:
-core:notification-daemon:0.7.2:
-core:pangomm:2.28.3:
-core:polkit-gnome:0.103:
-core:sushi:0.2.0:
-core:totem-pl-parser:2.32.6:
-core:vino:3.2.0:
-core:vte:0.30.0:
-core:yelp:3.2.0:
-core:yelp-tools:3.2.0:
-core:yelp-xsl:3.2.0:
-core:zenity:3.2.0:
-
-## APPS
-apps:accerciser:3.2.0:
-apps:aisleriot:3.2.0:
-apps:anjuta:3.2.0:
-apps:cheese:3.2.0:
-apps:devhelp:3.2.0:
-apps:evolution:3.2.0:
-apps:file-roller:3.2.0:
-apps:gedit:3.2.0:
-apps:glade:3.10.0:
-apps:gnome-color-manager:3.2.0:
-apps:gnome-devel-docs:3.2.0:
-apps:gnome-documents:0.2.0:
-apps:gnome-games:3.2.0:
-apps:gnome-nettool:3.0.0:
-apps:hamster-applet:2.91.2:
-apps:nautilus-sendto:3.0.1:
-apps:nemiver:0.9.0:
-apps:orca:3.2.0:
-apps:rygel:0.12.3:
-apps:seahorse:3.2.0:
-apps:totem:3.2.0:
-apps:vinagre:3.2.0:
-
diff --git a/pkgs/desktops/gnome-3/default.nix b/pkgs/desktops/gnome-3/default.nix
index 30ce2f6abcc..2972779bc2a 100644
--- a/pkgs/desktops/gnome-3/default.nix
+++ b/pkgs/desktops/gnome-3/default.nix
@@ -1,12 +1,22 @@
 { callPackage }:
 
 {
+  clutter = callPackage ./platform/clutter.nix { };
+
+  cogl = callPackage ../../development/libraries/cogl { };
+
   # Ensure that we use dbus-glib built with gtkLibs3x.glib
   dbus_glib = callPackage ../../development/libraries/dbus-glib { };
 
-  glib_networking = callPackage ./platform/glib-networking.nix {};
+  glib_networking = callPackage ./platform/glib-networking.nix { };
+
+  libgnome_keyring = callPackage ./platform/libgnome-keyring.nix { };
+
+  libsoup = callPackage ./platform/libsoup.nix { };
 
   gsettings_desktop_schemas = callPackage ./platform/gsettings-desktop-schemas.nix {};
 
   GConf = callPackage ./platform/GConf.nix { };
+
+  gnome_user_docs = callPackage ./platform/gnome-user-docs.nix { };
 }
diff --git a/pkgs/desktops/gnome-3/platform/GConf.nix b/pkgs/desktops/gnome-3/platform/GConf.nix
index 824aa8843a7..637d619d022 100644
--- a/pkgs/desktops/gnome-3/platform/GConf.nix
+++ b/pkgs/desktops/gnome-3/platform/GConf.nix
@@ -13,4 +13,11 @@ stdenv.mkDerivation rec {
   buildNativeInputs = [ pkgconfig xz intltool ];
 
   configureFlags = "--disable-orbit";
+
+  meta = {
+    homepage = http://projects.gnome.org/gconf/;
+    description = "A system for storing application preferences";
+    maintainers = [ stdenv.lib.maintainers.urkud ];
+    inherit (gtk.meta) platforms;
+  };
 }
diff --git a/pkgs/desktops/gnome-3/platform/clutter.nix b/pkgs/desktops/gnome-3/platform/clutter.nix
new file mode 100644
index 00000000000..4e7bc54c129
--- /dev/null
+++ b/pkgs/desktops/gnome-3/platform/clutter.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, glib, xz, pkgconfig, mesa, libX11, libXext, libXfixes
+, libXdamage, libXcomposite, libXi, cogl, pango, atk, json_glib }:
+
+stdenv.mkDerivation {
+  name = "clutter-1.8.2";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/clutter/1.8/clutter-1.8.2.tar.xz;
+    sha256 = "0bzsvnharawfg525lpavrp55mq4aih5nb01dwwqwnccg8hk9z2fw";
+  };
+
+  buildNativeInputs = [ xz pkgconfig ];
+  buildInputs =
+    [ libX11 mesa libXext libXfixes libXdamage libXcomposite libXi cogl pango
+      atk json_glib
+    ];
+
+  meta = {
+    homepage = http://www.clutter-project.org/;
+    description = "An open source software library for creating fast, compelling, portable, and dynamic graphical user interfaces";
+    platforms = stdenv.lib.platforms.mesaPlatforms;
+    maintainers = [ stdenv.lib.maintainers.urkud ];
+  };
+}
diff --git a/pkgs/desktops/gnome-3/platform/glib-networking.nix b/pkgs/desktops/gnome-3/platform/glib-networking.nix
index ed28306d510..7fa0295fe74 100644
--- a/pkgs/desktops/gnome-3/platform/glib-networking.nix
+++ b/pkgs/desktops/gnome-3/platform/glib-networking.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, glib, xz, pkgconfig, intltool, gnutls, libgcrypt
 , gsettings_desktop_schemas }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation {
   name = "glib-networking-2.30.2";
 
   src = fetchurl {
@@ -18,5 +18,6 @@ stdenv.mkDerivation rec {
 
   meta = {
     TODO = "Look at `--without-ca-certificates` again";
+    inherit (glib.meta) platforms maintainers;
   };
 }
diff --git a/pkgs/desktops/gnome-3/platform/gnome-user-docs.nix b/pkgs/desktops/gnome-3/platform/gnome-user-docs.nix
new file mode 100644
index 00000000000..f434b5c155c
--- /dev/null
+++ b/pkgs/desktops/gnome-3/platform/gnome-user-docs.nix
@@ -0,0 +1,12 @@
+{ stdenv, fetchurl, xz, itstool, libxml2, gettext }:
+
+stdenv.mkDerivation {
+  name = "gnome-user-docs-3.2.2";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gnome-user-docs/3.2/gnome-user-docs-3.2.2.tar.xz;
+    sha256 = "1ka0nw2kc85p10y8x31v0wv06a88k7qrgafp4ys04y9fzz0rkcjj";
+  };
+
+  buildNativeInputs = [ xz itstool libxml2 gettext ];
+}
diff --git a/pkgs/desktops/gnome-3/platform/gsettings-desktop-schemas.nix b/pkgs/desktops/gnome-3/platform/gsettings-desktop-schemas.nix
index 1d099d3dea3..db6453a53c3 100644
--- a/pkgs/desktops/gnome-3/platform/gsettings-desktop-schemas.nix
+++ b/pkgs/desktops/gnome-3/platform/gsettings-desktop-schemas.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, xz, glib, pkgconfig, intltool }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation {
   name = "gsettings-desktop-schemas-3.2.0";
 
   src = fetchurl {
@@ -10,4 +10,8 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ glib ];
   buildNativeInputs = [ pkgconfig xz intltool ];
+
+  meta = {
+    inherit (glib.meta) maintainers platforms;
+  };
 }
diff --git a/pkgs/desktops/gnome-3/platform/libgnome-keyring.nix b/pkgs/desktops/gnome-3/platform/libgnome-keyring.nix
new file mode 100644
index 00000000000..b3ceb6df3d5
--- /dev/null
+++ b/pkgs/desktops/gnome-3/platform/libgnome-keyring.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl, glib, dbus_libs, libgcrypt, pkgconfig, xz,
+intltool }:
+
+stdenv.mkDerivation {
+  name = "libgnome-keyring-3.2.2";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/libgnome-keyring/3.2/libgnome-keyring-3.2.2.tar.xz;
+    sha256 = "1cxd2vb1lzm8smq1q45dsn13s6kdqdb60lashdk7hwv035xy9jrb";
+  };
+
+  propagatedBuildInputs = [ glib dbus_libs libgcrypt ];
+  buildNativeInputs = [ pkgconfig xz intltool ];
+
+  meta = {
+    inherit (glib.meta) platforms maintainers;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/platform/libsoup.nix b/pkgs/desktops/gnome-3/platform/libsoup.nix
new file mode 100644
index 00000000000..1827d5c9cd7
--- /dev/null
+++ b/pkgs/desktops/gnome-3/platform/libsoup.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, glib, libxml2, pkgconfig, xz
+, gnomeSupport ? true, libgnome_keyring, sqlite, glib_networking }:
+
+stdenv.mkDerivation {
+  name = "libsoup-2.36.1";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/libsoup/2.36/libsoup-2.36.1.tar.xz;
+    sha256 = "0r8zkr0a328jkww4dv9z1q691rw59nh4lf5f5pzzr9szzw3j8wkk";
+  };
+
+
+  buildNativeInputs = [ pkgconfig xz ];
+  propagatedBuildInputs = [ glib libxml2 ]
+    ++ stdenv.lib.optionals gnomeSupport [ libgnome_keyring sqlite ];
+  passthru.propagatedUserEnvPackages = [ glib_networking ];
+
+  # glib_networking is a runtime dependency, not a compile-time dependency
+  configureFlags = "--disable-tls-check";
+
+  meta = {
+    inherit (glib.meta) maintainers platforms;
+  };
+}
diff --git a/pkgs/desktops/kde-3/kdelibs/default.nix b/pkgs/desktops/kde-3/kdelibs/default.nix
index 69c6c5c332e..0f3494c0581 100644
--- a/pkgs/desktops/kde-3/kdelibs/default.nix
+++ b/pkgs/desktops/kde-3/kdelibs/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, xlibs, zlib, perl, qt, openssl, pcre
+{ stdenv, fetchurl, xlibs, zlib, perl, qt3, openssl, pcre
 , pkgconfig, libjpeg, libpng, libtiff, libxml2, libxslt, libtool, expat
 , freetype, bzip2, cups, attr, acl
 }:
@@ -22,10 +22,10 @@ stdenv.mkDerivation {
     ./kdelibs-3.5.10-openssl_1.0.0.patch
   ];
 
-  passthru = {inherit openssl libjpeg qt; inherit (xlibs) libX11;};
+  passthru = {inherit openssl libjpeg qt3; inherit (xlibs) libX11;};
   
   buildInputs = [
-    zlib perl qt openssl pcre pkgconfig libjpeg libpng libtiff libxml2
+    zlib perl qt3 openssl pcre pkgconfig libjpeg libpng libtiff libxml2
     libxslt expat libtool freetype bzip2 cups
     xlibs.libX11 xlibs.libXt xlibs.libXext xlibs.libXrender xlibs.libXft
   ];
diff --git a/pkgs/desktops/kde-4.8/default.nix b/pkgs/desktops/kde-4.8/default.nix
new file mode 100644
index 00000000000..d8bbdd86075
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/default.nix
@@ -0,0 +1,56 @@
+{ callPackage, callPackageOrig, stdenv, qt48 }:
+
+let
+  release = "4.7.97";
+
+  # Need callPackageOrig to avoid infinite cycle
+  kde = callPackageOrig ./kde-package {
+    inherit release ignoreList extraSubpkgs callPackage;
+  };
+
+  # The list of igored individual modules
+  ignoreList = {
+    # kdeadmin/strigi-analyzer has no real code
+    kdeadmin = [ "strigi-analyzer" ];
+    # kdesdk/kioslave is splitted into kioslave-svn and kioslave-git
+    kdesdk = [ "kioslave" ];
+    # Most of kdebindings do not compile due to a bug in the buildsystem
+    kdebindings = [ "kimono" "korundum" "kross-interpreters" "perlkde" "perlqt"
+      "qtruby" "qyoto" "smokekde" ];
+  };
+
+  # Extra subpackages in the manifest format
+  extraSubpkgs = {
+    kdesdk =
+      [
+      {
+        name = "kioslave-svn";
+        sane = "kioslave_svn";
+        subdir = "kioslave";
+      }
+      {
+        name = "kioslave-perldoc";
+        sane = "kioslave_perldoc";
+        subdir = "kioslave";
+      }
+      ];
+  };
+
+in
+
+kde.modules // kde.individual //
+{
+  inherit (kde) manifest modules individual splittedModuleList;
+
+  akonadi = callPackage ./support/akonadi { };
+
+  qt4 = qt48;
+
+  kdebase_workspace = kde.modules.kde_workspace;
+
+  inherit release;
+
+  full = stdenv.lib.attrValues kde.modules;
+
+  l10n = callPackage ./l10n { inherit release; };
+}
diff --git a/pkgs/desktops/kde-4.8/files/polkit-install.patch b/pkgs/desktops/kde-4.8/files/polkit-install.patch
new file mode 100644
index 00000000000..d2ecac663ec
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/files/polkit-install.patch
@@ -0,0 +1,12 @@
+diff -ru -x '*~' kdelibs-4.6.90-orig/kdecore/auth/ConfigureChecks.cmake kdelibs-4.6.90/kdecore/auth/ConfigureChecks.cmake
+--- kdelibs-4.6.90-orig/kdecore/auth/ConfigureChecks.cmake	2011-05-20 22:24:54.000000000 +0200
++++ kdelibs-4.6.90/kdecore/auth/ConfigureChecks.cmake	2011-07-12 14:03:00.000000000 +0200
+@@ -139,7 +139,7 @@
+         ${CMAKE_INSTALL_PREFIX} _KDE4_AUTH_POLICY_FILES_INSTALL_DIR
+         ${POLKITQT-1_POLICY_FILES_INSTALL_DIR})
+ 
+-    set(KDE4_AUTH_POLICY_FILES_INSTALL_DIR ${_KDE4_AUTH_POLICY_FILES_INSTALL_DIR} CACHE STRING 
++    set(KDE4_AUTH_POLICY_FILES_INSTALL_DIR "\${CMAKE_INSTALL_PREFIX}/share/polkit-1/actions" CACHE STRING 
+         "Where policy files generated by KAuth will be installed" FORCE)
+ elseif(KDE4_AUTH_BACKEND_NAME STREQUAL "FAKE")
+     set (KAUTH_COMPILING_FAKE_BACKEND TRUE)
diff --git a/pkgs/desktops/kde-4.8/kactivities.nix b/pkgs/desktops/kde-4.8/kactivities.nix
new file mode 100644
index 00000000000..67ff8cd8984
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/kactivities.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  propagatedBuildInputs = [ kdelibs ];
+
+  meta = {
+    description = "KDE activities library and daemon";
+  };
+}
diff --git a/pkgs/desktops/kde-4.8/kde-baseapps/kate.nix b/pkgs/desktops/kde-4.8/kde-baseapps/kate.nix
new file mode 100644
index 00000000000..1ffbcf9ebf9
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/kde-baseapps/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.8/kde-baseapps/kde-baseapps.nix b/pkgs/desktops/kde-4.8/kde-baseapps/kde-baseapps.nix
new file mode 100644
index 00000000000..45192e0c460
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/kde-baseapps/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.8/kde-baseapps/konsole.nix b/pkgs/desktops/kde-4.8/kde-baseapps/konsole.nix
new file mode 100644
index 00000000000..87ac24972bd
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/kde-baseapps/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.8/kde-package/4.7.97.nix b/pkgs/desktops/kde-4.8/kde-package/4.7.97.nix
new file mode 100644
index 00000000000..b833ba6fc40
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/kde-package/4.7.97.nix
@@ -0,0 +1,300 @@
+{stable=false;
+hashes=builtins.listToAttrs[
+  {name="analitza";value="1xxhzqdcjinxyh9w24bn77qnxxp85rb7c50ad7ssb0wv4x9n62k9";}
+  {name="ark";value="0wagf0nws8mslz12gj38bp4rckw67qgfljigmiwlbq8nd1xl8j7g";}
+  {name="blinken";value="1w6jrmnaq04pnfvqmi7jwcanag0rrj7n3zlcmv1sp0lw4wp1ymwi";}
+  {name="cantor";value="088b2aj4bp8w8vk02v9sbm5mpfhvgbnw8pjdcn2gm3m14s93w0h5";}
+  {name="filelight";value="16y7v1m4ypjmlbih05i0r3k0s9av77jxq3v9g6vq6ikh98m9fcgf";}
+  {name="gwenview";value="05hxanwh7irj15riix8z2j50p295y73qaxgr82km093k9a0d1fkp";}
+  {name="jovie";value="1sv6aiy8d2ks1dbad5wjrq1w8vza87b09fqaspkkcbi0r1kdh4za";}
+  {name="kaccessible";value="1cr1b9fmf5qmh640q5h0h8phz9rrmqszrwhwrfzsmd7nxsl1y27v";}
+  {name="kactivities";value="0gyprn0mrh3swfjaxmvrbgyj81jx4qp8c0r8ym6dl1fsxri3p92a";}
+  {name="kalgebra";value="0fy6bimaycrbj5wy0422iybxw29cc0jl0683rx7r90vdyaf85jdp";}
+  {name="kalzium";value="149mmwz37akr3dzpin8s6hyyvp9dk5m3ijax80nc4z7sf7ciipqk";}
+  {name="kamera";value="1y6vykyvzmlm4zikcd74qjirqmygj0w6h1ra8whcgp3mwzfbybhq";}
+  {name="kanagram";value="18ccq0bpqj0kk7b36i1bxywcw6jpa6g136kd8lpd6ppy8fn9mfb0";}
+  {name="kate";value="13iwdhsghn7n80vl8cvsx3095algw9z8q1pcabcfiwkffkzdpcd2";}
+  {name="kbruch";value="178vc3nbqwbprw7ksdnbxxp1kibp74a8wmdkp6avhl9l694fwlyb";}
+  {name="kcalc";value="1llr012q5li9da1d4dlx0fsi1bvbl3w65213i78c5pwrq9w4l5cn";}
+  {name="kcharselect";value="14mw7rc0ghd1g7s40v7irkwmfs0k8xqhwka1s33k8y7lnan5gic7";}
+  {name="kcolorchooser";value="1x8c71d4vq8wl693wkjlbbalzn2nfa2rkimblyvv8779193bpvng";}
+  {name="kdeadmin";value="0h1bmrd6yz7qnpi2b76mqjdbrvchmb7wsw5a04pgs2cii0fgzpw1";}
+  {name="kdeartwork";value="01v1cmlscr4nixphad8j09xf6vh99y8924cf0x0vazxrqg23b792";}
+  {name="kde-baseapps";value="17g902kswan3qcfaig1zb2xdip59z9p199zingc4wjm3sr2bjd6j";}
+  {name="kde-base-artwork";value="1rxfrcq5c70dvrgisn5zd8lnj3q36ic5w6lp25yd23zyb89ybdff";}
+  {name="kdegames";value="0r3sijgsb40b9jp4imrx50l1pn8yxv7qkj80pyz3ad0q73hn7lyr";}
+  {name="kdegraphics-strigi-analyzer";value="1zw679b3s24aa2q771d1qxm70v081b7wasv9p4cla2a6kkicfzxq";}
+  {name="kdegraphics-thumbnailers";value="1xwnk1fkmysfz1kidabb72cafn15nr36yazpb4na1byzvwdyzlwy";}
+  {name="kdelibs";value="1mf29b8vyp9h9pi0bm17hkmscnmq1if14p9p18prc3ssnvyljjy3";}
+  {name="kdemultimedia";value="1115xgm197wx8m7cqmwsfaq8plrs6ksvrb7bsxqcghslsd9af9m2";}
+  {name="kdenetwork";value="0fhclhwpw8kjvzb577bl6hhcpa9i4qlyxhkflifslkfq1015h3r3";}
+  {name="kdepim";value="19hcv3plzypnivi7ki9h477l152y5hhk0zr03gas9xggwl8hyw0w";}
+  {name="kdepimlibs";value="0c05vjld2hbg08cnjqdc3cbwviakhxc6f9qlxlqh2yy8idmd3gkq";}
+  {name="kdepim-runtime";value="05c9siwb5gv0b1dsqfabalmgkpgklly6bxlfvk9gl9v9dxnsjlb4";}
+  {name="kdeplasma-addons";value="056bkr7794kv5qy51l3cip1xp69h67ps4m47g9scykr8qsknvkjy";}
+  {name="kde-runtime";value="1g04wvjsnqxr187mv59hb2f1hsfyh7x8qyypqhc0r09b9z8ri41q";}
+  {name="kdesdk";value="0cn4hlxfmk9rfy1n2m064wcgjlxfx1lrfvkw0dwvfabyhqipcidi";}
+  {name="kdetoys";value="043wqxqsj36c0nwsl1qlzkdpkxn2q0pf9mgj35zrmzn9kvsrfxc7";}
+  {name="kde-wallpapers";value="1i2l5h0z3bj5kfagdvzi0f1rrv4a1yq0kn23ggdvv6gi1gj5mbrp";}
+  {name="kdewebdev";value="0wycx5m9ir7k0nrl8jyir0c1cai6wg4i07ffrvwg0mwv083v562q";}
+  {name="kde-workspace";value="058rm45cxj28m5z6afih9v4f5ingj9nhq4ab0ccs2gpk7arphdyr";}
+  {name="kdf";value="0fx2basl17qlx2a8mmlk7hcdvb8vg2pnqazgxf0fpy0m8kn3f9c0";}
+  {name="kfloppy";value="0617i1c64lyxkj2zl3p0m9wgb1c1ay43miiyapfbw5sbqnjclrpl";}
+  {name="kgamma";value="17zhsr0q75q48qn46gg8j2ddpggcg8r2xz7r2rd94w3nkvb61lar";}
+  {name="kgeography";value="13gbpkpiwlp5ccb4nslskgs6gdyg2gy1qn35xwjzg7dh5yy4knwz";}
+  {name="kgpg";value="0yrqvhw3k9r2mpximk3fg5qng6hsr2n6ahy48cl8a27rrjy9awnd";}
+  {name="khangman";value="0gbdj78bdh2m7sfbj0x8vzi13mnad6fv3ymdk80xlll34vrd0jpr";}
+  {name="kig";value="0ypb4vvc4igjl1j7krzp6q7rdd7b4459aa4px6d8ajlyq3g8xv94";}
+  {name="kimono";value="1a31n5gr05z546f7rjhcykgpp6nkz6j13s83h9ag8m9xf7nrqbcf";}
+  {name="kiten";value="0c0s6haqhwgmj2lc2qjsirjfsbpkffs1v7dgampjy1zkf4harass";}
+  {name="klettres";value="04w23p53kdqkp455795pgghw05njarkdsd0rnb5j6cvf1bgasycn";}
+  {name="kmag";value="037fcpflw1rf6084qxp6ipfrbqqr7a3sd746mhmhbvmmdia0s0df";}
+  {name="kmousetool";value="0fbms2sqz60p4vnjzplmnw6fkizpzky5vcdm3x3l66ijfsagnwzh";}
+  {name="kmouth";value="03vpf0ly044dqjass5qvq9xgp99bizs45cz7lzfhlq8rx4zknjnn";}
+  {name="kmplot";value="14anq2mgd0jb8p82si6i4ggy2gp9w2shlvi1mxamksf9bxcy7ivs";}
+  {name="kolourpaint";value="0x74df72rw0zn7pishca9qjajg2jw551rvz5q4yllk31x96xfq8v";}
+  {name="konsole";value="15w1lj0vaga7fpxv08pkg7wnn9hx8dgdrymk1hxq0ipylwz2clzj";}
+  {name="korundum";value="1hlr5w2nk1qnm7xbgml4abbm4mskipabk46m31f7lyniaf5nh4py";}
+  {name="kremotecontrol";value="1wwwwa9fxdpdy8zz9sbcnja94pmqhl2jcaqikd18saqc0mrk331j";}
+  {name="kross-interpreters";value="1hwwmg5l912ahb1bw03zjg3rlycz6lmwnbr8bssrlp6mfq9by8xx";}
+  {name="kruler";value="10c3l0nxr0v1x1hxmvryj8hw2q7anmi75610m2spbzh5n0qrhzky";}
+  {name="ksaneplugin";value="1by1mxilyf5nv6a12pv31fb01q1mflnzr0dfshk2fr0i927m6rxw";}
+  {name="ksecrets";value="15rad9gwhbwan51qljhdcry0r5lnf6mrin524q8b5djdhk9w2h3v";}
+  {name="ksnapshot";value="08asqkxxzk3y5lyahygksdjvsy6a65x3jp2j5pnbgpf1yd91wl0l";}
+  {name="kstars";value="079f315sr2wcjawx73wlkc9nq9nnrj83d8l59jqiy3nmzsspjmjb";}
+  {name="ktimer";value="1s2ymf6kn5hhhqhs9nnqfsfgsy137yk2ais3hpija5mz4a85w0zr";}
+  {name="ktouch";value="0434s9d1i3nw2slxz74v66c84mzlpm7jlfz666w1h5nm8870d3r6";}
+  {name="kturtle";value="0wivxlf9wprd0baq8y9ygybc77bl82gq7wmyx3zaf7jr9nifish9";}
+  {name="kwallet";value="1227s24qs7s4ic2dwk7kw7rcw8lgq2k2vzgbjkmydk3d9wjzk6nw";}
+  {name="kwordquiz";value="0hc8bf0m24m6mnv7vk74sz7cjw1rc8wshy76wvp671hjxmajprdm";}
+  {name="libkdcraw";value="1j3x5fbi594yjhmwx1gzar45yjh0qazzx58bq6xh0zb7xlc47wfg";}
+  {name="libkdeedu";value="11v81ba5y9p5zmx51d5w5lgr6d32bahclx82mxzyb5zypzc7kb4s";}
+  {name="libkexiv2";value="09mwd2vzqkxd3n7rwq5xf5bjqgzjnw5mdzz9svx3bppvcsc74xj6";}
+  {name="libkipi";value="1317zrrjgx04pnq7xqg2qk3bzpr1fikkivqwf133b89h1ksdqdwd";}
+  {name="libksane";value="0fi2iigcliild4d4gzxy3n7lz41vkwwxsychn0knjvlbgs4ykjfh";}
+  {name="marble";value="0qifpsn6z22akngxi0hjslp5qh4avr217234z1aq6h7s5wql1f0x";}
+  {name="mobipocket";value="02k0k306mcnd2c41sa5hr76lm5asd4qqp7x2zy7ksqyfds5n97fs";}
+  {name="okular";value="04v2qdjn1mgc1n7fq17r7z2cb7zlc7bkvm6y2cqqllk70f4s4kmh";}
+  {name="oxygen-icons";value="1vgdp7lxbkm9a43x0y1q1446qi57c7r1nik5a89lakyqjha6c0yk";}
+  {name="parley";value="1gr941sixbjpl410qks25dpwgp81sjg6f18196p2a629aqk3ghw6";}
+  {name="perlkde";value="02jq01bf5wszc8i9mnfgzmx8385if3lxyj0nj65k22hv6s6y7jic";}
+  {name="perlqt";value="0zzmlr7hp8bvrsr2k6z2xrhb33vryvvxhk0a8aiwii0d84qfws8r";}
+  {name="printer-applet";value="19z5zrypvdbvn207ygbsz418w8gan43lhs55hhk8gyjks0kbks9v";}
+  {name="pykde4";value="1sb06rppbzm682s7yjlr26k4n78l9lzmhvmxzgysxw9br54dk1hc";}
+  {name="qtruby";value="1g8s8i82n5hxs5lwiipgvgwzripd9injmgzrvgxfdnf014772jf5";}
+  {name="qyoto";value="1pnnjj75mm488chd3v79g628b0fgxgglvj9iq6gd2s9dkld3gw2m";}
+  {name="rocs";value="1xdswahdsvr3c6cf4cf2c51l5v14sd3r3ac6j96q5sk3siv33msn";}
+  {name="smokegen";value="1pc2kg6i0476fvcg9kl3787k40g56vb2l3zb0xqx6cwr13m8lvih";}
+  {name="smokekde";value="1l74j9j4m6lp706k1b99g7l5cklpzdn66snrs495a8k9789vgv5c";}
+  {name="smokeqt";value="0vxmfp0wpdg47x7nz7pl220jzgp6ya4jrhk64an9wpc506qz3k1x";}
+  {name="step";value="11bihc857vi97in8zly5p049acfr74asbis1r4y07fsip2945mbz";}
+  {name="superkaramba";value="02bd14gik9i4ag0j7c9q4hk0f28m0g64wa9gcgmgnx7kwbsfzx5y";}
+  {name="svgpart";value="1px8jbdpfyjm44qwpm2b0brc03zhha5wbj9wpx7lrdq0qyrwiyf6";}
+  {name="sweeper";value="03gsh431gylqii92v5lc7f7417kjgmsg1cyj861wgp9rav2hf1av";}
+];
+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="kdeutils";
+  split=true;
+  pkgs=[
+    { name="ark";  }
+    { name="filelight";  }
+    { name="kcalc";  }
+    { name="kcharselect";  }
+    { name="kdf";  }
+    { name="kfloppy";  }
+    { name="kgpg";  }
+    { name="kremotecontrol";  }
+    { name="ksecrets";  }
+    { name="ktimer";  }
+    { name="kwallet";  }
+    { name="printer-applet"; sane="printer_applet"; }
+    { name="superkaramba";  }
+    { name="sweeper";  }
+  ];
+}
+{
+  module="kdeedu";
+  split=true;
+  pkgs=[
+    { name="analitza";  }
+    { 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=true;
+  pkgs=[
+    { name="jovie";  }
+    { name="kaccessible";  }
+    { name="kmag";  }
+    { name="kmousetool";  }
+    { name="kmouth";  }
+  ];
+}
+{
+  module="kde-baseapps";
+sane="kde_baseapps";  split=true;
+  pkgs=[
+    { name="kate";  }
+    { name="kde-baseapps"; sane="kde_baseapps"; }
+    { name="konsole";  }
+  ];
+}
+{ module="kactivities";  split=false;}
+{ 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="kde-runtime"; sane="kde_runtime"; 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="dolphin-plugins-hg"; sane="dolphin_plugins_hg";subdir="dolphin-plugins/hg"; }
+    { name="dolphin-plugins-bazaar"; sane="dolphin_plugins_bazaar";subdir="dolphin-plugins/bazaar"; }
+    { 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="kde-wallpapers"; sane="kde_wallpapers"; split=false;}
+{ module="kdewebdev";  split=false;
+  pkgs=[
+    { name="klinkstatus"; }
+    { name="kfilereplace"; }
+    { name="kimagemapeditor"; }
+    { name="kommander"; }
+  ];
+
+}
+{ module="kde-workspace"; sane="kde_workspace"; split=false;}
+{ module="oxygen-icons"; sane="oxygen_icons"; split=false;}
+];
+}
diff --git a/pkgs/desktops/kde-4.8/kde-package/default.nix b/pkgs/desktops/kde-4.8/kde-package/default.nix
new file mode 100644
index 00000000000..38713de5820
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/kde-package/default.nix
@@ -0,0 +1,127 @@
+{ callPackage, runCommand, stdenv, fetchurl, qt4, cmake, automoc4
+, release, ignoreList, extraSubpkgs
+}:
+
+let
+  inherit (stdenv.lib) filter fold;
+  inherit (builtins) getAttr hasAttr remoteAttrs listToAttrs tail head;
+in
+rec {
+  manifest = import (./. + "/${release}.nix");
+
+  # src attribute for $name tarball
+  kdesrc = name: fetchurl {
+    url = "mirror://kde/" + (if manifest.stable then "" else "un")
+      + "stable/${release}/src/${name}-${release}.tar.bz2";
+    sha256 = getAttr name manifest.hashes;
+  };
+
+  # Default meta attribute
+  defMeta = {
+    homepage = http://www.kde.org;
+    inherit (qt4.meta) platforms maintainers;
+  };
+
+  # KDE package built from the whole tarball
+  # This function is used both for monolithic modules and modules which are
+  # released as individual tarballs
+  kdeMonoPkg = name: let n_ = name; in a@{meta, name ? n_, ...}:
+    stdenv.mkDerivation ({
+      name = "${name}-${release}";
+      src = kdesrc name;
+      meta = defMeta // meta;
+      enableParallelBuilding = true;
+    } // (removeAttrs a [ "meta" "name" ]));
+
+  # kdeMonoPkg wrapper for modules splitted upstream compatible with combinePkgs
+  # API.
+  kdeSplittedPkg = module: {name, sane ? name}: kdeMonoPkg name;
+
+  # Build subdirectory ${subdir} of tarball ${module}-${release}.tar.bz2
+  kdeSubdirPkg = module:
+    {name, subdir ? name, sane ? name}:
+    let name_ = name; in
+    a@{cmakeFlags ? [], name ? name_, meta ? {}, ...}:
+    stdenv.mkDerivation ({
+      name = "${name}-${release}";
+      src = kdesrc module;
+      cmakeFlags =
+        [ "-DDISABLE_ALL_OPTIONAL_SUBDIRECTORIES=TRUE"
+          "-DBUILD_doc=TRUE"
+          "-DBUILD_${subdir}=TRUE"
+        ] ++ cmakeFlags;
+      meta = defMeta // meta;
+      enableParallelBuilding = true;
+    } // (removeAttrs a [ "meta" "name" "cmakeFlags" ]));
+
+  # A KDE monolithic module
+  kdeMonoModule = name: path: callPackage path { kde = kdeMonoPkg name; };
+
+  # Combine packages in one module.
+  # Arguments:
+  #  * pkgFun --- a function of the following signature:
+  #               module: manifest_attrs: manual_attrs: derivation;
+  #  * module --- name of the module
+  #  * pkgs --- list of packages in manifest format
+  combinePkgs = pkgFun: module: pkgs:
+    let
+      f = p@{name, ...}:
+        callPackage (./.. + "/${module}/${name}.nix") { kde = pkgFun module p; };
+      list = map f pkgs;
+      attrs = listToAttrs (map
+        ({name, sane ? name, ...}@p: { name = sane; value = f p; })
+        pkgs);
+    in
+      runCommand "${module}-${release}"
+      ({passthru = attrs // {
+         propagatedUserEnvPackages = list;
+         projects = attrs;
+       };})
+        ''
+          mkdir -pv $out/nix-support
+          echo "${toString list}" | tee $out/nix-support/propagated-user-env-packages
+        '';
+
+  # Given manifest module data, return the module
+  kdeModule = { module, sane ? module, split, pkgs ? [] }:
+    let
+      pkgs_ = filterPkgs module pkgs;
+    in
+    # Module is splitted by upstream
+    if split then combinePkgs kdeSplittedPkg module pkgs_
+    # Monolithic module
+    else if pkgs == [] then kdeMonoModule module (./.. + "/${module}.nix")
+    # Module is splitted by us
+    else combinePkgs kdeSubdirPkg module pkgs_;
+
+  # The same, as nameValuePair with sane name
+  kdeModuleNV = a@{ module, sane ? module, ... }:
+    { name = sane; value = kdeModule a; };
+
+  filterPkgs = module: (p:
+      removeNames (stdenv.lib.attrByPath [module] [] ignoreList) p
+      ++ (stdenv.lib.attrByPath [module] [] extraSubpkgs));
+
+  # Remove attrsets with x.name in subst. Optimized for empty subst.
+  removeNames = subst: big:
+    fold (s: out: filter (x: x.name != s) out) big subst;
+
+  modules = listToAttrs (map kdeModuleNV manifest.modules);
+
+  splittedModuleList =
+    let
+      splitted = filter (a: a ? pkgs) manifest.modules;
+      names = map ({module, sane ? module, ...}: sane) splitted;
+    in
+    map (m: m.projects) (stdenv.lib.attrVals names modules);
+
+  individual =
+    stdenv.lib.zipAttrsWith
+    (
+      name: list:
+      if tail list == []
+      then head list
+      else abort "Multiple modules define ${name}"
+    )
+    splittedModuleList;
+}
diff --git a/pkgs/desktops/kde-4.8/kde-package/kde-manifest.sh b/pkgs/desktops/kde-4.8/kde-package/kde-manifest.sh
new file mode 100755
index 00000000000..ef8189cb7c5
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/kde-package/kde-manifest.sh
@@ -0,0 +1,146 @@
+#! /bin/sh
+
+# Usage: download kde release to $dir, then run
+# $0 $dir
+
+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//')
+
+if [[ ${release##*.} -gt 50 ]]; then
+  stable="false"
+else
+  stable="true"
+fi
+
+echo "Detected release ${release}" >&2
+
+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`
+
+module[kde-baseapps]=kde-baseapps
+unset module[kactivities]
+
+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
+  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
+
+
+print_pkg_hash() {
+  echo "  {name=\"${1}\";value=\"${hash[$1]}\";}"
+}
+
+print_hashes(){
+  echo "hashes=builtins.listToAttrs["
+  for p in "${packages[@]}"; do print_pkg_hash "$p"; done
+  echo "];"
+}
+
+print_split_module(){
+  echo -n "$1:" >&2
+  echo -e "{\n  module=\"$1\";"
+  print_sane "$1"
+  echo "  split=true;"
+  echo "  pkgs=["
+  for p in "${packages[@]}"; do
+    if [[ "${module[$p]}" == "$1" ]]; then
+      echo -n "    { name=\"$p\"; "
+      print_sane "$p"
+      echo " }"
+      echo -n " $p" >&2
+    fi
+  done
+  echo "  ];"
+  echo "}"
+  echo >&2
+}
+
+print_mono_module(){
+  echo -en "{ 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 -e "\n  pkgs=["
+      for s in "${subdirs[@]}"; do
+        echo -en "    {"
+		echo -n " name=\"${s//\//-}\"; "
+        print_sane "$s"
+        if [[ $s != "${s//\//-}" ]]; then
+          echo -n "subdir=\"$s\"; "
+        fi
+        echo "}"
+      done
+      echo -e "  ];\n"
+    fi
+  else
+    echo " is monolithic (has no subdirs)" >&2
+  fi
+  rm $cml
+  rmdir $1-$release
+  echo "}"
+}
+
+print_modules(){
+  echo "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 "];"
+}
+
+echo "Writing ${release}.nix" >&2
+exec > "${release}.nix"
+echo "{stable=${stable};"
+print_hashes
+print_modules
+echo "}"
diff --git a/pkgs/desktops/kde-4.8/kde-package/kde-submodules.xslt b/pkgs/desktops/kde-4.8/kde-package/kde-submodules.xslt
new file mode 100644
index 00000000000..952a05a9d27
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kde-runtime.nix b/pkgs/desktops/kde-4.8/kde-runtime.nix
new file mode 100644
index 00000000000..96b6c3a1c78
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/kde-runtime.nix
@@ -0,0 +1,16 @@
+{ kde, kdelibs, shared_desktop_ontologies, bzip2, xz, libssh, exiv2, attica
+, libcanberra, virtuoso, samba, ntrack
+}:
+
+kde {
+  buildInputs =
+    [ kdelibs shared_desktop_ontologies bzip2 xz libssh exiv2 attica
+      samba (libcanberra.override { gtk = null; }) ntrack
+    ];
+
+  passthru.propagatedUserEnvPackages = [ virtuoso ];
+
+  meta = {
+    license = "LGPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.8/kde-wallpapers.nix b/pkgs/desktops/kde-4.8/kde-wallpapers.nix
new file mode 100644
index 00000000000..60298e567fb
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/kde-wallpapers.nix
@@ -0,0 +1,14 @@
+{ kde, kdelibs }:
+
+kde {
+
+  buildInputs = [ kdelibs ];
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "29f4e8b24435ee8c64affdc6250f59ed9f78445118fe0a4e216d89969dd2006b";
+
+  meta = {
+    description = "Wallpapers for KDE";
+  };
+}
diff --git a/pkgs/desktops/kde-4.8/kde-workspace.nix b/pkgs/desktops/kde-4.8/kde-workspace.nix
new file mode 100644
index 00000000000..55c243f60dd
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/kde-workspace.nix
@@ -0,0 +1,32 @@
+{ 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,
+  pykde4
+}:
+
+kde {
+
+  buildInputs =
+    [ kdelibs qimageblitz libdbusmenu_qt pykde4
+      xorg.libxkbfile xorg.libXcomposite xorg.libXScrnSaver xorg.libXtst
+      xorg.libXcomposite xorg.libXdamage xorg.libXau xorg.libXdmcp
+      xorg.libpthreadstubs
+      boost gpsd shared_desktop_ontologies lm_sensors pciutils libraw1394
+      libusb python libqalculate consolekit kdepimlibs pam prison akonadi
+    ];
+
+  preConfigure =
+   ''
+     # Fix incorrect path to kde4-config.
+     substituteInPlace startkde.cmake --replace '$bindir/kde4-config' ${kdelibs}/bin/kde4-config
+
+     # Fix the path to the keyboard configuration files.
+     substituteInPlace kcontrol/keyboard/xkb_rules.cpp \
+       --replace /usr/share/X11 ${xkeyboard_config}/etc/X11
+   '';
+
+  meta = {
+    description = "KDE workspace components such as Plasma, Kwin and System Settings";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.8/kdeaccessibility/jovie.nix b/pkgs/desktops/kde-4.8/kdeaccessibility/jovie.nix
new file mode 100644
index 00000000000..d38c80c4c36
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdeaccessibility/kaccessible.nix b/pkgs/desktops/kde-4.8/kdeaccessibility/kaccessible.nix
new file mode 100644
index 00000000000..98fae7c983f
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdeaccessibility/kmag.nix b/pkgs/desktops/kde-4.8/kdeaccessibility/kmag.nix
new file mode 100644
index 00000000000..f3b27dacf67
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdeaccessibility/kmousetool.nix b/pkgs/desktops/kde-4.8/kdeaccessibility/kmousetool.nix
new file mode 100644
index 00000000000..42306049c5d
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdeaccessibility/kmouth.nix b/pkgs/desktops/kde-4.8/kdeaccessibility/kmouth.nix
new file mode 100644
index 00000000000..4159501967c
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdeadmin/kcron.nix b/pkgs/desktops/kde-4.8/kdeadmin/kcron.nix
new file mode 100644
index 00000000000..bada0c1cb10
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/kdeadmin/kcron.nix
@@ -0,0 +1,5 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+}
diff --git a/pkgs/desktops/kde-4.8/kdeadmin/ksystemlog.nix b/pkgs/desktops/kde-4.8/kdeadmin/ksystemlog.nix
new file mode 100644
index 00000000000..bada0c1cb10
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/kdeadmin/ksystemlog.nix
@@ -0,0 +1,5 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+}
diff --git a/pkgs/desktops/kde-4.8/kdeadmin/kuser.nix b/pkgs/desktops/kde-4.8/kdeadmin/kuser.nix
new file mode 100644
index 00000000000..571674a461a
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/kdeadmin/kuser.nix
@@ -0,0 +1,5 @@
+{ kde, kdelibs, kdepimlibs }:
+
+kde {
+  buildInputs = [ kdelibs kdepimlibs ];
+}
diff --git a/pkgs/desktops/kde-4.8/kdeadmin/system-config-printer-kde.nix b/pkgs/desktops/kde-4.8/kdeadmin/system-config-printer-kde.nix
new file mode 100644
index 00000000000..2c462f67c15
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/kdeadmin/system-config-printer-kde.nix
@@ -0,0 +1,33 @@
+{ kde, pkgconfig, pythonPackages, sip, pycups, pygobject, system_config_printer,
+  kdelibs, kdepimlibs, pykde4, cups, nettools }:
+
+let s_c_p = system_config_printer.override { withGUI = false; }; in
+kde {
+  buildInputs = [ kdelibs kdepimlibs pythonPackages.python pycups pykde4 sip
+    pygobject s_c_p ];
+
+  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 ${s_c_p}/share/system-config-printer \
+          --replace /usr/bin/cupstestppd ${cups}/bin/cupstestppd \
+          --replace /bin/hostname ${nettools}/bin/hostname
+      done
+    '';
+
+  postInstall =
+    ''
+      # 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
+    '';
+}
diff --git a/pkgs/desktops/kde-4.8/kdeartwork/ColorSchemes.nix b/pkgs/desktops/kde-4.8/kdeartwork/ColorSchemes.nix
new file mode 100644
index 00000000000..acccf66976f
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdeartwork/FindXscreensaver.cmake b/pkgs/desktops/kde-4.8/kdeartwork/FindXscreensaver.cmake
new file mode 100644
index 00000000000..499ed75268e
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/kdeartwork/FindXscreensaver.cmake
@@ -0,0 +1,73 @@
+#Macro to find xscreensaver directory
+
+# Copyright (c) 2006, Laurent Montel, <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.
+
+if (NOT XSCREENSAVER_FOUND)
+  FIND_PATH(XSCREENSAVER_DIR deco
+    HINTS
+      ${KDE4_INCLUDE_DIR}
+    PATHS
+      /usr
+      /usr/local
+      /opt/local
+      /usr/X11R6
+      /opt/kde
+      /opt/kde3
+      /usr/kde
+      /usr/local/kde
+      /usr/local/xscreensaver
+      /usr/openwin/lib/xscreensaver
+      /etc
+    PATH_SUFFIXES
+      lib${LIB_SUFFIX}/xscreensaver
+      lib${LIB_SUFFIX}/misc/xscreensaver
+      lib/xscreensaver
+      lib64/xscreensaver
+      lib/misc/xscreensaver
+      libexec/xscreensaver
+      bin/xscreensaver-hacks
+      hacks)
+  message(STATUS "XSCREENSAVER_DIR <${XSCREENSAVER_DIR}>")
+
+  FIND_PATH(XSCREENSAVER_CONFIG_DIR deco.xml
+    PATHS
+    ${KDE4_INCLUDE_DIR}
+    /usr/
+    /usr/local/
+    /opt/local/
+    /usr/X11R6/
+    /opt/kde/
+    /opt/kde3/
+    /usr/kde/
+    /usr/local/kde/
+    /usr/openwin/lib/xscreensaver/
+    /etc/
+    PATH_SUFFIXES xscreensaver xscreensaver/config share/xscreensaver/config
+  )
+  MESSAGE(STATUS "XSCREENSAVER_CONFIG_DIR :<${XSCREENSAVER_CONFIG_DIR}>")
+
+endif(NOT XSCREENSAVER_FOUND)
+
+#MESSAGE(STATUS "XSCREENSAVER_CONFIG_DIR :<${XSCREENSAVER_CONFIG_DIR}>")
+#MESSAGE(STATUS "XSCREENSAVER_DIR :<${XSCREENSAVER_DIR}>")
+
+# Need to fix hack
+if(XSCREENSAVER_DIR AND XSCREENSAVER_CONFIG_DIR)
+    set(XSCREENSAVER_FOUND TRUE)
+endif(XSCREENSAVER_DIR AND XSCREENSAVER_CONFIG_DIR)
+
+if (XSCREENSAVER_FOUND)
+  if (NOT Xscreensaver_FIND_QUIETLY)
+    message(STATUS "Found XSCREENSAVER_CONFIG_DIR <${XSCREENSAVER_CONFIG_DIR}>")
+  endif (NOT Xscreensaver_FIND_QUIETLY)
+else (XSCREENSAVER_FOUND)
+  if (Xscreensaver_FIND_REQUIRED)
+    message(FATAL_ERROR "XScreenSaver not found")
+  endif (Xscreensaver_FIND_REQUIRED)
+endif (XSCREENSAVER_FOUND)
+
+
+MARK_AS_ADVANCED(XSCREENSAVER_DIR XSCREENSAVER_CONFIG_DIR)
diff --git a/pkgs/desktops/kde-4.8/kdeartwork/HighResolutionWallpapers.nix b/pkgs/desktops/kde-4.8/kdeartwork/HighResolutionWallpapers.nix
new file mode 100644
index 00000000000..edffca1562e
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdeartwork/IconThemes.nix b/pkgs/desktops/kde-4.8/kdeartwork/IconThemes.nix
new file mode 100644
index 00000000000..43071e8bd14
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdeartwork/WeatherWallpapers.nix b/pkgs/desktops/kde-4.8/kdeartwork/WeatherWallpapers.nix
new file mode 100644
index 00000000000..947e5e17ab0
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdeartwork/aurorae.nix b/pkgs/desktops/kde-4.8/kdeartwork/aurorae.nix
new file mode 100644
index 00000000000..4bce95217cc
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/kdeartwork/aurorae.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs }:
+
+kde {
+  name = "aurorae-themes";
+
+  buildInputs = [ kdelibs ];
+}
diff --git a/pkgs/desktops/kde-4.8/kdeartwork/desktopthemes.nix b/pkgs/desktops/kde-4.8/kdeartwork/desktopthemes.nix
new file mode 100644
index 00000000000..93dd361af73
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdeartwork/emoticons.nix b/pkgs/desktops/kde-4.8/kdeartwork/emoticons.nix
new file mode 100644
index 00000000000..5ef9f78a719
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdeartwork/kscreensaver.nix b/pkgs/desktops/kde-4.8/kdeartwork/kscreensaver.nix
new file mode 100644
index 00000000000..cc195c8de90
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdeartwork/kwin-styles.nix b/pkgs/desktops/kde-4.8/kdeartwork/kwin-styles.nix
new file mode 100644
index 00000000000..b5d769b216d
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdeartwork/sounds.nix b/pkgs/desktops/kde-4.8/kdeartwork/sounds.nix
new file mode 100644
index 00000000000..e98705da889
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdeartwork/styles.nix b/pkgs/desktops/kde-4.8/kdeartwork/styles.nix
new file mode 100644
index 00000000000..6a1306c3710
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdeartwork/wallpapers.nix b/pkgs/desktops/kde-4.8/kdeartwork/wallpapers.nix
new file mode 100644
index 00000000000..611c6a70f6b
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdebindings/perlqt.nix b/pkgs/desktops/kde-4.8/kdebindings/perlqt.nix
new file mode 100644
index 00000000000..13c145f3275
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/kdebindings/perlqt.nix
@@ -0,0 +1,10 @@
+{ kde, cmake, smokeqt, perl }:
+
+kde {
+  buildInputs = [ smokeqt perl ];
+  buildNativeInputs = [ cmake ];
+
+  meta = {
+    description = "Perl bindings for Qt library";
+  };
+}
diff --git a/pkgs/desktops/kde-4.8/kdebindings/pykde-purity.patch b/pkgs/desktops/kde-4.8/kdebindings/pykde-purity.patch
new file mode 100644
index 00000000000..dfc2c886bba
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdebindings/pykde4.nix b/pkgs/desktops/kde-4.8/kdebindings/pykde4.nix
new file mode 100644
index 00000000000..1ca6efe3b92
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdebindings/smokegen.nix b/pkgs/desktops/kde-4.8/kdebindings/smokegen.nix
new file mode 100644
index 00000000000..df26eb2717e
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdebindings/smokekde.nix b/pkgs/desktops/kde-4.8/kdebindings/smokekde.nix
new file mode 100644
index 00000000000..c49a77a48ed
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/kdebindings/smokekde.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs, smokeqt }:
+
+kde {
+  propagatedBuildInputs = [ kdelibs smokeqt ];
+
+  meta = {
+    description = "C++ parser used to generate language bindings for Qt/KDE";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.8/kdebindings/smokeqt.nix b/pkgs/desktops/kde-4.8/kdebindings/smokeqt.nix
new file mode 100644
index 00000000000..0d0aa816a94
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/kdebindings/smokeqt.nix
@@ -0,0 +1,12 @@
+{ kde, qt4, cmake, phonon, qimageblitz, smokegen }:
+
+kde {
+  propagatedBuildInputs = [ qt4 phonon qimageblitz ];
+  buildNativeInputs = [ cmake ];
+  propagatedBuildNativeInputs = [ smokegen ];
+
+  meta = {
+    description = "C++ parser used to generate language bindings for Qt/KDE";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.8/kdeedu/FindLibfacile.cmake b/pkgs/desktops/kde-4.8/kdeedu/FindLibfacile.cmake
new file mode 100644
index 00000000000..617eb4b2467
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdeedu/analitza.nix b/pkgs/desktops/kde-4.8/kdeedu/analitza.nix
new file mode 100644
index 00000000000..74c3a1ebb20
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/kdeedu/analitza.nix
@@ -0,0 +1,8 @@
+{ kde, kdelibs, readline }:
+kde {
+  buildInputs = [ kdelibs readline ];
+
+  meta = {
+    description = "Library part of KAlgebra";
+  };
+}
diff --git a/pkgs/desktops/kde-4.8/kdeedu/blinken.nix b/pkgs/desktops/kde-4.8/kdeedu/blinken.nix
new file mode 100644
index 00000000000..cdf9728833c
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/kdeedu/blinken.nix
@@ -0,0 +1,8 @@
+{ kde, kdelibs }:
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Memory Enhancement Game";
+  };
+}
diff --git a/pkgs/desktops/kde-4.8/kdeedu/cantor.nix b/pkgs/desktops/kde-4.8/kdeedu/cantor.nix
new file mode 100644
index 00000000000..8b8bbc210c7
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdeedu/kalgebra.nix b/pkgs/desktops/kde-4.8/kdeedu/kalgebra.nix
new file mode 100644
index 00000000000..f1a190332cd
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdeedu/kalzium-feature-log.patch b/pkgs/desktops/kde-4.8/kdeedu/kalzium-feature-log.patch
new file mode 100644
index 00000000000..3c054e8d60a
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdeedu/kalzium.nix b/pkgs/desktops/kde-4.8/kdeedu/kalzium.nix
new file mode 100644
index 00000000000..d7d9b403b1a
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdeedu/kanagram.nix b/pkgs/desktops/kde-4.8/kdeedu/kanagram.nix
new file mode 100644
index 00000000000..8759c96d78c
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdeedu/kbruch.nix b/pkgs/desktops/kde-4.8/kdeedu/kbruch.nix
new file mode 100644
index 00000000000..dc50f1e85a3
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/kdeedu/kbruch.nix
@@ -0,0 +1,8 @@
+{ kde, kdelibs }:
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Practice Fractions";
+  };
+}
diff --git a/pkgs/desktops/kde-4.8/kdeedu/kgeography.nix b/pkgs/desktops/kde-4.8/kdeedu/kgeography.nix
new file mode 100644
index 00000000000..bd8d27c8d6e
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/kdeedu/kgeography.nix
@@ -0,0 +1,8 @@
+{ kde, kdelibs }:
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Geography Trainer";
+  };
+}
diff --git a/pkgs/desktops/kde-4.8/kdeedu/khangman.nix b/pkgs/desktops/kde-4.8/kdeedu/khangman.nix
new file mode 100644
index 00000000000..997b50e906a
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdeedu/kig.nix b/pkgs/desktops/kde-4.8/kdeedu/kig.nix
new file mode 100644
index 00000000000..bd5ef67529c
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdeedu/kiten.nix b/pkgs/desktops/kde-4.8/kdeedu/kiten.nix
new file mode 100644
index 00000000000..939b7a9f77a
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdeedu/klettres.nix b/pkgs/desktops/kde-4.8/kdeedu/klettres.nix
new file mode 100644
index 00000000000..7a0fa83078e
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdeedu/kmplot.nix b/pkgs/desktops/kde-4.8/kdeedu/kmplot.nix
new file mode 100644
index 00000000000..18458cf6f0b
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/kdeedu/kmplot.nix
@@ -0,0 +1,12 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "A KDE mathematical function plotter";
+    kde = {
+      name = "kmplot";
+    };
+  };
+}
diff --git a/pkgs/desktops/kde-4.8/kdeedu/kstars.nix b/pkgs/desktops/kde-4.8/kdeedu/kstars.nix
new file mode 100644
index 00000000000..5b5a2d621de
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdeedu/ktouch.nix b/pkgs/desktops/kde-4.8/kdeedu/ktouch.nix
new file mode 100644
index 00000000000..768be6f4367
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/kdeedu/ktouch.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Touch Typing Tutor";
+  };
+}
diff --git a/pkgs/desktops/kde-4.8/kdeedu/kturtle.nix b/pkgs/desktops/kde-4.8/kdeedu/kturtle.nix
new file mode 100644
index 00000000000..1e1922b1410
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/kdeedu/kturtle.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Educational Programming Environment";
+  };
+}
diff --git a/pkgs/desktops/kde-4.8/kdeedu/kwordquiz.nix b/pkgs/desktops/kde-4.8/kdeedu/kwordquiz.nix
new file mode 100644
index 00000000000..1b33ba2e469
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdeedu/libkdeedu.nix b/pkgs/desktops/kde-4.8/kdeedu/libkdeedu.nix
new file mode 100644
index 00000000000..def6c85fefe
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdeedu/marble.nix b/pkgs/desktops/kde-4.8/kdeedu/marble.nix
new file mode 100644
index 00000000000..8bd86c91094
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdeedu/parley.nix b/pkgs/desktops/kde-4.8/kdeedu/parley.nix
new file mode 100644
index 00000000000..eccd40a598f
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdeedu/rocs.nix b/pkgs/desktops/kde-4.8/kdeedu/rocs.nix
new file mode 100644
index 00000000000..91976b84001
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/kdeedu/rocs.nix
@@ -0,0 +1,14 @@
+{ kde, kdelibs, boost }:
+
+kde {
+  buildInputs = [ kdelibs (boost.override { enableExceptions = true; }) ];
+
+  NIX_CFLAGS_COMPILE = "-fexceptions";
+
+  meta = {
+    description = "A KDE graph theory viewer";
+    kde = {
+      name = "rocs";
+    };
+  };
+}
diff --git a/pkgs/desktops/kde-4.8/kdeedu/step.nix b/pkgs/desktops/kde-4.8/kdeedu/step.nix
new file mode 100644
index 00000000000..fac9974baf1
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdegames.nix b/pkgs/desktops/kde-4.8/kdegames.nix
new file mode 100644
index 00000000000..3378a99d9e7
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/kdegames.nix
@@ -0,0 +1,18 @@
+{ kde, kdelibs, qca2, twisted, pythonPackages, sip, makeWrapper, pykde4,
+  openal, libsndfile, qhull }:
+
+kde rec {
+  buildInputs = [ kdelibs qca2 pythonPackages.python pythonPackages.wrapPython
+    openal libsndfile qhull ] ++ pythonPath;
+
+  pythonPath = [ pythonPackages.twisted pykde4 ];
+
+  # TODO: ggz
+
+  postInstall = "wrapPythonPrograms";
+
+  meta = {
+    description = "KDE Games";
+    license = "GPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.8/kdegraphics/gwenview.nix b/pkgs/desktops/kde-4.8/kdegraphics/gwenview.nix
new file mode 100644
index 00000000000..efc2707e7d6
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdegraphics/kamera.nix b/pkgs/desktops/kde-4.8/kdegraphics/kamera.nix
new file mode 100644
index 00000000000..70904b17c23
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdegraphics/kcolorchooser.nix b/pkgs/desktops/kde-4.8/kdegraphics/kcolorchooser.nix
new file mode 100644
index 00000000000..58528cb186b
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdegraphics/kdegraphics-strigi-analyzer.nix b/pkgs/desktops/kde-4.8/kdegraphics/kdegraphics-strigi-analyzer.nix
new file mode 100644
index 00000000000..6001a5f363d
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdegraphics/kdegraphics-thumbnailers.nix b/pkgs/desktops/kde-4.8/kdegraphics/kdegraphics-thumbnailers.nix
new file mode 100644
index 00000000000..55bf8309b2a
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdegraphics/kgamma.nix b/pkgs/desktops/kde-4.8/kdegraphics/kgamma.nix
new file mode 100644
index 00000000000..28d9252187e
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdegraphics/kolourpaint.nix b/pkgs/desktops/kde-4.8/kdegraphics/kolourpaint.nix
new file mode 100644
index 00000000000..5276ec09f46
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdegraphics/kruler.nix b/pkgs/desktops/kde-4.8/kdegraphics/kruler.nix
new file mode 100644
index 00000000000..c5c2c6e05d7
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdegraphics/ksaneplugin.nix b/pkgs/desktops/kde-4.8/kdegraphics/ksaneplugin.nix
new file mode 100644
index 00000000000..1381ed7dd26
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdegraphics/ksnapshot.nix b/pkgs/desktops/kde-4.8/kdegraphics/ksnapshot.nix
new file mode 100644
index 00000000000..f01a609e20d
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdegraphics/libkdcraw.nix b/pkgs/desktops/kde-4.8/kdegraphics/libkdcraw.nix
new file mode 100644
index 00000000000..9d31cc763f2
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdegraphics/libkexiv2.nix b/pkgs/desktops/kde-4.8/kdegraphics/libkexiv2.nix
new file mode 100644
index 00000000000..096b0a6e957
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdegraphics/libkipi.nix b/pkgs/desktops/kde-4.8/kdegraphics/libkipi.nix
new file mode 100644
index 00000000000..6b16265e7a3
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdegraphics/libksane.nix b/pkgs/desktops/kde-4.8/kdegraphics/libksane.nix
new file mode 100644
index 00000000000..b539eab3899
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdegraphics/mobipocket.nix b/pkgs/desktops/kde-4.8/kdegraphics/mobipocket.nix
new file mode 100644
index 00000000000..2c2ba3796a2
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/kdegraphics/mobipocket.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs, okular }:
+
+kde {
+  buildInputs = [ kdelibs okular ];
+
+  meta = {
+    description = "A collection of plugins to handle mobipocket files";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.8/kdegraphics/okular.nix b/pkgs/desktops/kde-4.8/kdegraphics/okular.nix
new file mode 100644
index 00000000000..c322767eb43
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdegraphics/svgpart.nix b/pkgs/desktops/kde-4.8/kdegraphics/svgpart.nix
new file mode 100644
index 00000000000..a344cc4b4b4
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdelibs.nix b/pkgs/desktops/kde-4.8/kdelibs.nix
new file mode 100644
index 00000000000..d4383b3e93a
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/kdelibs.nix
@@ -0,0 +1,39 @@
+{ kde, gcc, cmake, perl
+, qt4, bzip2, pcre, fam, libxml2, libxslt, shared_mime_info, giflib, jasper
+, xz, openexr, avahi, kerberos, acl, attr, shared_desktop_ontologies, libXScrnSaver
+, automoc4, strigi, soprano, qca2, attica, enchant, libdbusmenu_qt
+, docbook_xml_dtd_42, docbook_xsl, polkit_qt_1
+, getopt, udev, herqq, phonon, libjpeg
+}:
+
+kde {
+  buildInputs =
+    [
+      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 libjpeg
+    ];
+
+  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 = [ ./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"
+  ];
+
+  meta = {
+    description = "KDE libraries";
+    license = "LGPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.8/kdemultimedia.nix b/pkgs/desktops/kde-4.8/kdemultimedia.nix
new file mode 100644
index 00000000000..b4ca7a8d2da
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdenetwork/FindmsiLBC.cmake b/pkgs/desktops/kde-4.8/kdenetwork/FindmsiLBC.cmake
new file mode 100644
index 00000000000..c40b0bed310
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdenetwork/filesharing.nix b/pkgs/desktops/kde-4.8/kdenetwork/filesharing.nix
new file mode 100644
index 00000000000..2f32f4d6b2c
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/kdenetwork/filesharing.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  patches = [ ./kdenetwork.patch ];
+}
diff --git a/pkgs/desktops/kde-4.8/kdenetwork/kdenetwork.patch b/pkgs/desktops/kde-4.8/kdenetwork/kdenetwork.patch
new file mode 100644
index 00000000000..ebadbfad9ba
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdenetwork/kdnssd.nix b/pkgs/desktops/kde-4.8/kdenetwork/kdnssd.nix
new file mode 100644
index 00000000000..2f32f4d6b2c
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/kdenetwork/kdnssd.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  patches = [ ./kdenetwork.patch ];
+}
diff --git a/pkgs/desktops/kde-4.8/kdenetwork/kfile-plugins.nix b/pkgs/desktops/kde-4.8/kdenetwork/kfile-plugins.nix
new file mode 100644
index 00000000000..f90fd356079
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdenetwork/kget.nix b/pkgs/desktops/kde-4.8/kdenetwork/kget.nix
new file mode 100644
index 00000000000..33d9ec1ca01
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/kdenetwork/kget.nix
@@ -0,0 +1,13 @@
+{ kde, kdelibs, libktorrent, kde_workspace, kdepimlibs,
+  shared_desktop_ontologies, kde_baseapps, gpgme, boost, libmms, qca2 }:
+
+kde {
+  buildInputs =
+    [ kdelibs libktorrent kde_workspace shared_desktop_ontologies kdepimlibs
+      kde_baseapps gpgme boost libmms qca2
+    ];
+
+  KDEDIRS = libktorrent;
+
+  patches = [ ./kdenetwork.patch ];
+}
diff --git a/pkgs/desktops/kde-4.8/kdenetwork/kopete.nix b/pkgs/desktops/kde-4.8/kdenetwork/kopete.nix
new file mode 100644
index 00000000000..a4b01c5f9a6
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdenetwork/kppp.nix b/pkgs/desktops/kde-4.8/kdenetwork/kppp.nix
new file mode 100644
index 00000000000..2f32f4d6b2c
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/kdenetwork/kppp.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  patches = [ ./kdenetwork.patch ];
+}
diff --git a/pkgs/desktops/kde-4.8/kdenetwork/krdc.nix b/pkgs/desktops/kde-4.8/kdenetwork/krdc.nix
new file mode 100644
index 00000000000..664b1bc45a7
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/kdenetwork/krdc.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs, libvncserver }:
+
+kde {
+  buildInputs = [ kdelibs libvncserver ];
+
+  patches = [ ./kdenetwork.patch ];
+}
diff --git a/pkgs/desktops/kde-4.8/kdenetwork/krfb.nix b/pkgs/desktops/kde-4.8/kdenetwork/krfb.nix
new file mode 100644
index 00000000000..80013f430d3
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdenetwork/log-feature.diff b/pkgs/desktops/kde-4.8/kdenetwork/log-feature.diff
new file mode 100644
index 00000000000..6770dd399e3
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/kdenetwork/log-feature.diff
@@ -0,0 +1,60 @@
+--- a/kget/CMakeLists.txt	2010-08-16 19:08:36.000000000 +0400
++++ b/kget/CMakeLists.txt	2010-08-16 22:04:24.000000000 +0400
+@@ -53,21 +53,20 @@
+ add_subdirectory(desktop)
+ add_subdirectory(plasma)
+ 
+-# find kworkspace library to allow the shutdown after downloads completed option
+-find_library(KDE4_KWORKSPACE_LIBRARY NAMES kworkspace PATHS ${KDE4_LIB_INSTALL_DIR} NO_DEFAULT_PATH )
+-if(KDE4_KWORKSPACE_LIBRARY)
+-    set(KDE4_KWORKSPACE_LIBS ${kworkspace_LIB_DEPENDS} ${KDE4_KWORKSPACE_LIBRARY})
++macro_optional_find_package(KDE4Workspace)
++macro_log_feature(KDE4WORKSPACE_FOUND "KDE4Workspace" "KDE4 workspace libraries, part of kdebase-workspace" "http://www.kde.org" FALSE "" "Allows 'shutdown after downloads completed' in kget")
++if(KDE4WORKSPACE_FOUND)
+     add_definitions(-DHAVE_KWORKSPACE)
+-    set(KWORKSPACE_FOUND true)
+-endif(KDE4_KWORKSPACE_LIBRARY)
++	include_directories(${KDE4WORKSPACE_INCLUDE_DIR})
++endif(KDE4WORKSPACE_FOUND)
+ 
+ # find libkonq to allow actions and open with options in the context menu of a transfer
+-find_library(KDE4_KONQUEROR_LIBRARY NAMES konq PATHS ${KDE4_LIB_INSTALL_DIR} NO_DEFAULT_PATH )
+-if(KDE4_KONQUEROR_LIBRARY)
+-    set(KDE4_KONQUEROR_LIBS ${konq_LIB_DEPENDS} ${KDE4_KONQUEROR_LIBRARY})
++macro_optional_find_package(LibKonq)
++macro_log_feature(LIBKONQ_FOUND "libkonq" "KDE4 Konqueror library" "http://www.kde.org" FALSE "" "Needed to build actions and open with options in the context menu of a transfer")
++if(LIBKONQ_FOUND)
+     add_definitions(-DHAVE_KONQUEROR)
+-    set(KONQUEROR_FOUND true)
+-endif(KDE4_KONQUEROR_LIBRARY)
++	include_directories(${LIBKONQ_INCLUDE_DIR})
++endif(LIBKONQ_FOUND)
+ 
+ 
+ include_directories(
+@@ -142,9 +141,9 @@
+ 
+ target_link_libraries(kgetcore ${KDE4_KIO_LIBS})
+ 
+-if (KWORKSPACE_FOUND)
+-    target_link_libraries(kgetcore ${KDE4_KWORKSPACE_LIBS})
+-endif (KWORKSPACE_FOUND)
++if (KDE4WORKSPACE_FOUND)
++    target_link_libraries(kgetcore ${KDE4WORKSPACE_KWORKSPACE_LIBS})
++endif (KDE4WORKSPACE_FOUND)
+ 
+ if (HAVE_NEPOMUK)
+   target_link_libraries(kgetcore ${SOPRANO_LIBRARIES} ${NEPOMUK_LIBRARIES})
+@@ -294,9 +293,9 @@
+   target_link_libraries(kget ${SOPRANO_LIBRARIES} ${NEPOMUK_LIBRARIES})
+ endif (HAVE_NEPOMUK)
+ 
+-if (KONQUEROR_FOUND)
+-  target_link_libraries(kget ${KDE4_KONQUEROR_LIBS})
+-endif (KONQUEROR_FOUND)
++if (LIBKONQ_FOUND)
++  target_link_libraries(kget ${LIBKONQ_LIBRARY})
++endif (LIBKONQ_FOUND)
+ 
+ if (QGPGME_FOUND)
+   target_link_libraries(kget ${QGPGME_LIBRARIES})
diff --git a/pkgs/desktops/kde-4.8/kdepim-runtime.nix b/pkgs/desktops/kde-4.8/kdepim-runtime.nix
new file mode 100644
index 00000000000..ef637f3f075
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdepim.nix b/pkgs/desktops/kde-4.8/kdepim.nix
new file mode 100644
index 00000000000..9b95d491a44
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/kdepim.nix
@@ -0,0 +1,21 @@
+{ 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.8/kdepimlibs.nix b/pkgs/desktops/kde-4.8/kdepimlibs.nix
new file mode 100644
index 00000000000..736508eaf0f
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/kdepimlibs.nix
@@ -0,0 +1,16 @@
+{ 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.8/kdeplasma-addons.nix b/pkgs/desktops/kde-4.8/kdeplasma-addons.nix
new file mode 100644
index 00000000000..de2cabf20e4
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/kdeplasma-addons.nix
@@ -0,0 +1,18 @@
+{ kde, kdelibs, marble, shared_desktop_ontologies
+, boost, eigen, kde_workspace, attica, python, qca2, qimageblitz
+, kdepimlibs, libkexiv2, libqalculate, libXtst }:
+# TODO: qwt, scim
+
+kde {
+
+  KDEDIRS=marble;
+
+  buildInputs = [ kdelibs boost eigen kde_workspace
+    attica python qca2 qimageblitz kdepimlibs
+    libqalculate libXtst shared_desktop_ontologies marble libkexiv2];
+
+  meta = {
+    description = "KDE Plasma Addons";
+    license = "GPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.8/kdesdk/cervisia.nix b/pkgs/desktops/kde-4.8/kdesdk/cervisia.nix
new file mode 100644
index 00000000000..1dabe46cd42
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdesdk/dolphin-plugins-bazaar.nix b/pkgs/desktops/kde-4.8/kdesdk/dolphin-plugins-bazaar.nix
new file mode 100644
index 00000000000..8032b89ff54
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/kdesdk/dolphin-plugins-bazaar.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.8/kdesdk/dolphin-plugins-git.nix b/pkgs/desktops/kde-4.8/kdesdk/dolphin-plugins-git.nix
new file mode 100644
index 00000000000..df4a0856c6b
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdesdk/dolphin-plugins-hg.nix b/pkgs/desktops/kde-4.8/kdesdk/dolphin-plugins-hg.nix
new file mode 100644
index 00000000000..8032b89ff54
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/kdesdk/dolphin-plugins-hg.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.8/kdesdk/dolphin-plugins-svn.nix b/pkgs/desktops/kde-4.8/kdesdk/dolphin-plugins-svn.nix
new file mode 100644
index 00000000000..8032b89ff54
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdesdk/find-svn.patch b/pkgs/desktops/kde-4.8/kdesdk/find-svn.patch
new file mode 100644
index 00000000000..61cb49b308f
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/kdesdk/find-svn.patch
@@ -0,0 +1,59 @@
+diff --git a/cmake/modules/FindSVN.cmake b/cmake/modules/FindSVN.cmake
+index 59bcb96..2eac05d 100644
+--- a/cmake/modules/FindSVN.cmake
++++ b/cmake/modules/FindSVN.cmake
+@@ -17,6 +17,9 @@ FIND_PROGRAM(SVNCONFIG_EXECUTABLE NAMES svn-config PATHS
+ FIND_PROGRAM(APRCONFIG_EXECUTABLE NAMES apr-1-config apr-config PATHS
+    /usr/local/apr/bin
+ )
++find_program(APUCONFIG_EXECUTABLE NAMES apu-1-config apu-config PATHS
++   /usr/local/apr/bin
++)
+ 
+ if(SVNCONFIG_EXECUTABLE)
+ 
+@@ -56,15 +59,9 @@ else(SVNCONFIG_EXECUTABLE)
+       set(SVN_INCLUDES ${SVN_INCLUDES} ${_INCLUDES})
+    else(APRCONFIG_EXECUTABLE)
+       FIND_PATH(_INCLUDES apr_pools.h
+-         ${SVN_INCLUDES}/apr-0/
+-         ${SVN_INCLUDES}/apr-1/
+-         ${SVN_INCLUDES}/apr-1.0/
+-         /usr/include/apr-0/
+-         /usr/include/apr-1/
+-         /usr/include/apr-1.0/
+-         /usr/local/include/apr-0/
+-         /usr/local/include/apr-1/
+-         /usr/local/include/apr-1.0/
++         HINTS ${SVN_INCLUDES}
++         PATHS /usr /usr/local
++         SUFFIXES apr-0 apr-1 apr-1.0
+       )
+       if(_INCLUDES)
+          set(SVN_INCLUDES ${SVN_INCLUDES} ${_INCLUDES})
+@@ -72,6 +69,25 @@ else(SVNCONFIG_EXECUTABLE)
+          set(SVN_FOUND FALSE) # no apr == can't compile!
+       endif(_INCLUDES)
+    endif(APRCONFIG_EXECUTABLE)
++
++   # Use apu-config if it exists
++   if(APUCONFIG_EXECUTABLE)
++      EXEC_PROGRAM(${APUCONFIG_EXECUTABLE} ARGS --includes RETURN_VALUE _return_VALUE OUTPUT_VARIABLE _INCLUDES)
++      string(REPLACE "-I" "" _INCLUDES ${_INCLUDES})
++      string(REPLACE " " ";" _INCLUDES ${_INCLUDES})
++      set(SVN_INCLUDES ${SVN_INCLUDES} ${_INCLUDES})
++   else(APUCONFIG_EXECUTABLE)
++      FIND_PATH(_INCLUDES apu.h
++         HINTS ${SVN_INCLUDES}
++         PATHS /usr /usr/local
++         SUFFIXES apr-0 apr-1 apr-1.0
++      )
++      if(_INCLUDES)
++         set(SVN_INCLUDES ${SVN_INCLUDES} ${_INCLUDES})
++      else(_INCLUDES)
++         set(SVN_FOUND FALSE) # no apr == can't compile!
++      endif(_INCLUDES)
++   endif(APUCONFIG_EXECUTABLE)
+    FIND_LIBRARY(SVN_LIBRARIES NAMES svn_client-1)
+    if(SVN_LIBRARIES)
+       FIND_LIBRARY(_LIBRARIES NAMES svn_subr-1)
diff --git a/pkgs/desktops/kde-4.8/kdesdk/kapptemplate.nix b/pkgs/desktops/kde-4.8/kdesdk/kapptemplate.nix
new file mode 100644
index 00000000000..391536248dd
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdesdk/kcachegrind.nix b/pkgs/desktops/kde-4.8/kdesdk/kcachegrind.nix
new file mode 100644
index 00000000000..65d410cca48
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdesdk/kdeaccounts-plugin.nix b/pkgs/desktops/kde-4.8/kdesdk/kdeaccounts-plugin.nix
new file mode 100644
index 00000000000..7e170ca2a2c
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdesdk/kioslave-perldoc.nix b/pkgs/desktops/kde-4.8/kdesdk/kioslave-perldoc.nix
new file mode 100644
index 00000000000..6a10bdf7c4b
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdesdk/kioslave-svn.nix b/pkgs/desktops/kde-4.8/kdesdk/kioslave-svn.nix
new file mode 100644
index 00000000000..db0bd27094b
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/kdesdk/kioslave-svn.nix
@@ -0,0 +1,11 @@
+{ kde, kdelibs, subversionClient, apr, aprutil }:
+
+kde {
+  buildInputs = [ kdelibs subversionClient apr aprutil ];
+
+  patches = [ ./find-svn.patch ];
+
+  meta = {
+    description = "Subversion kioslave";
+  };
+}
diff --git a/pkgs/desktops/kde-4.8/kdesdk/kmtrace.nix b/pkgs/desktops/kde-4.8/kdesdk/kmtrace.nix
new file mode 100644
index 00000000000..d580f7fb691
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdesdk/kompare.nix b/pkgs/desktops/kde-4.8/kdesdk/kompare.nix
new file mode 100644
index 00000000000..1ddb4b8ea5b
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdesdk/kpartloader.nix b/pkgs/desktops/kde-4.8/kdesdk/kpartloader.nix
new file mode 100644
index 00000000000..e7790d33c90
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdesdk/kprofilemethod.nix b/pkgs/desktops/kde-4.8/kdesdk/kprofilemethod.nix
new file mode 100644
index 00000000000..5a6693f2f5d
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdesdk/kstartperf.nix b/pkgs/desktops/kde-4.8/kdesdk/kstartperf.nix
new file mode 100644
index 00000000000..0c8259cd31f
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdesdk/kuiviewer.nix b/pkgs/desktops/kde-4.8/kdesdk/kuiviewer.nix
new file mode 100644
index 00000000000..7c5089dcd37
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdesdk/lokalize.nix b/pkgs/desktops/kde-4.8/kdesdk/lokalize.nix
new file mode 100644
index 00000000000..1565426eb1f
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdesdk/okteta.nix b/pkgs/desktops/kde-4.8/kdesdk/okteta.nix
new file mode 100644
index 00000000000..1b53a0e03dc
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdesdk/optional-docs.diff b/pkgs/desktops/kde-4.8/kdesdk/optional-docs.diff
new file mode 100644
index 00000000000..f67e1f4cdd8
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/kdesdk/optional-docs.diff
@@ -0,0 +1,39 @@
+diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt
+index 63cdef8..0c5b50a 100644
+--- a/doc/CMakeLists.txt
++++ b/doc/CMakeLists.txt
+@@ -3,22 +3,30 @@ if( UNIX )
+     add_subdirectory(cervisia)
+   endif()
+ endif( UNIX )
+-add_subdirectory(kapptemplate)
++if(BUILD_kapptemplate)
++  add_subdirectory(kapptemplate)
++endif()
+ if(BUILD_kbugbuster)
+   add_subdirectory(kbugbuster)
+ endif()
+ if(BUILD_kcachegrind)
+   add_subdirectory(kcachegrind)
+ endif()
+-add_subdirectory(kmtrace)
++if(BUILD_kmtrace)
++  add_subdirectory(kmtrace)
++endif()
+ if(BUILD_kompare)
+   add_subdirectory(kompare)
+ endif()
+ if(BUILD_lokalize)
+   add_subdirectory(lokalize)
+ endif()
+-add_subdirectory(poxml)
+-add_subdirectory(scripts)
++if(BUILD_poxml)
++  add_subdirectory(poxml)
++endif()
++if(BUILD_scripts)
++  add_subdirectory(scripts)
++endif()
+ 
+ if(LIBXSLT_FOUND AND LIBXML2_FOUND)
+   if(BUILD_umbrello)
diff --git a/pkgs/desktops/kde-4.8/kdesdk/poxml.nix b/pkgs/desktops/kde-4.8/kdesdk/poxml.nix
new file mode 100644
index 00000000000..1ab9ed49df5
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdesdk/scripts.nix b/pkgs/desktops/kde-4.8/kdesdk/scripts.nix
new file mode 100644
index 00000000000..df81145e5d6
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdesdk/strigi-analyzer.nix b/pkgs/desktops/kde-4.8/kdesdk/strigi-analyzer.nix
new file mode 100644
index 00000000000..0ad48c8cfde
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/kdesdk/strigi-analyzer.nix
@@ -0,0 +1,13 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Strigi analyzers for diff, po and ts";
+    kde = {
+      name = "strigi-analyzer";
+      module = "kdesdk";
+    };
+  };
+}
diff --git a/pkgs/desktops/kde-4.8/kdesdk/umbrello.nix b/pkgs/desktops/kde-4.8/kdesdk/umbrello.nix
new file mode 100644
index 00000000000..e83a2d9a901
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdetoys/amor.nix b/pkgs/desktops/kde-4.8/kdetoys/amor.nix
new file mode 100644
index 00000000000..936d63d544a
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdetoys/kteatime.nix b/pkgs/desktops/kde-4.8/kdetoys/kteatime.nix
new file mode 100644
index 00000000000..dacf54def4b
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdetoys/ktux.nix b/pkgs/desktops/kde-4.8/kdetoys/ktux.nix
new file mode 100644
index 00000000000..108f9be7c72
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdeutils/ark.nix b/pkgs/desktops/kde-4.8/kdeutils/ark.nix
new file mode 100644
index 00000000000..4449dd8228f
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdeutils/filelight.nix b/pkgs/desktops/kde-4.8/kdeutils/filelight.nix
new file mode 100644
index 00000000000..25ecabed27c
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdeutils/kcalc.nix b/pkgs/desktops/kde-4.8/kdeutils/kcalc.nix
new file mode 100644
index 00000000000..08b202e8f0e
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdeutils/kcharselect.nix b/pkgs/desktops/kde-4.8/kdeutils/kcharselect.nix
new file mode 100644
index 00000000000..d4c9c06f483
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdeutils/kdf.nix b/pkgs/desktops/kde-4.8/kdeutils/kdf.nix
new file mode 100644
index 00000000000..3f9da58d0a6
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdeutils/kfloppy.nix b/pkgs/desktops/kde-4.8/kdeutils/kfloppy.nix
new file mode 100644
index 00000000000..2434a4fa671
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdeutils/kgpg.nix b/pkgs/desktops/kde-4.8/kdeutils/kgpg.nix
new file mode 100644
index 00000000000..f3b00a5b968
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdeutils/kremotecontrol.nix b/pkgs/desktops/kde-4.8/kdeutils/kremotecontrol.nix
new file mode 100644
index 00000000000..fef516e478d
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/kdeutils/kremotecontrol.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs, kde_workspace, libXtst }:
+
+kde {
+  buildInputs = [ kdelibs kde_workspace libXtst ];
+
+  meta = {
+    description = "KDE remote control";
+  };
+}
diff --git a/pkgs/desktops/kde-4.8/kdeutils/ksecrets.nix b/pkgs/desktops/kde-4.8/kdeutils/ksecrets.nix
new file mode 100644
index 00000000000..be562db9277
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/kdeutils/ksecrets.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs, qca2 }:
+
+kde {
+  buildInputs = [ kdelibs qca2 ];
+
+  meta = {
+    description = "KDE implementation of SecretsService";
+  };
+}
diff --git a/pkgs/desktops/kde-4.8/kdeutils/ktimer.nix b/pkgs/desktops/kde-4.8/kdeutils/ktimer.nix
new file mode 100644
index 00000000000..5700977349e
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/kdeutils/ktimer.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "KDE Timer";
+  };
+}
diff --git a/pkgs/desktops/kde-4.8/kdeutils/kwallet.nix b/pkgs/desktops/kde-4.8/kdeutils/kwallet.nix
new file mode 100644
index 00000000000..9ec0e6c0396
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdeutils/printer-applet.nix b/pkgs/desktops/kde-4.8/kdeutils/printer-applet.nix
new file mode 100644
index 00000000000..2d937b3a4db
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdeutils/superkaramba.nix b/pkgs/desktops/kde-4.8/kdeutils/superkaramba.nix
new file mode 100644
index 00000000000..1475ab041ac
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdeutils/sweeper.nix b/pkgs/desktops/kde-4.8/kdeutils/sweeper.nix
new file mode 100644
index 00000000000..78d56c7df30
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdewebdev/kfilereplace.nix b/pkgs/desktops/kde-4.8/kdewebdev/kfilereplace.nix
new file mode 100644
index 00000000000..c3f6129d7e5
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdewebdev/kimagemapeditor.nix b/pkgs/desktops/kde-4.8/kdewebdev/kimagemapeditor.nix
new file mode 100644
index 00000000000..bececea7797
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdewebdev/klinkstatus.nix b/pkgs/desktops/kde-4.8/kdewebdev/klinkstatus.nix
new file mode 100644
index 00000000000..94adbb7fd6e
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kdewebdev/kommander.nix b/pkgs/desktops/kde-4.8/kdewebdev/kommander.nix
new file mode 100644
index 00000000000..6a870e56303
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/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.8/kipi-plugins.nix b/pkgs/desktops/kde-4.8/kipi-plugins.nix
new file mode 100644
index 00000000000..ea237a5d718
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/kipi-plugins.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, cmake, kdelibs, qt4, automoc4, phonon, libkexiv2
+, libkdcraw, libkipi, gettext, libxml2, libxslt, qjson, qca2
+, kdepimlibs }:
+
+stdenv.mkDerivation rec {
+  name = "kipi-plugins-1.9.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/kipi/${name}.tar.bz2";
+    sha256 = "0k4k9v1rj7129n0s0i5pvv4rabx0prxqs6sca642fj95cxc6c96m";
+  };
+
+  buildInputs =
+    # Some dependencies are missing because they are very big (OpenCV,
+    # GTK).
+    [ cmake kdelibs qt4 automoc4 phonon libkexiv2 libkdcraw libkipi
+      gettext libxml2 libxslt qjson qca2 kdepimlibs
+    ];
+
+  enableParallelBuilding = true;
+
+  meta = {
+    description = "Photo Management Program";
+    license = "GPL";
+    homepage = http://www.kipi-plugins.org;
+    inherit (kdelibs.meta) platforms;
+    maintainers = with stdenv.lib.maintainers; [ viric urkud ];
+  };
+}
diff --git a/pkgs/desktops/kde-4.8/l10n/default.nix b/pkgs/desktops/kde-4.8/l10n/default.nix
new file mode 100644
index 00000000000..144968f6672
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/l10n/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchurl, kdelibs, gettext, release }:
+
+let
+
+  inherit (stdenv.lib) attrByPath singleton;
+
+  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 = [ gettext kdelibs ];
+
+      cmakeFlags = "-Wno-dev";
+
+      meta = {
+        description = "KDE translation for ${lang}";
+        license = "GPL";
+        inherit (kdelibs.meta) maintainers platforms homepage;
+      };
+    };
+
+  kdeL10nRelease =
+    builtins.listToAttrs (
+      map ({lang, saneName, sha256}:
+        {
+          name = saneName;
+          value = kdeL10nDerivation { inherit lang saneName sha256; };
+        }
+      ) (import (./manifest + "-${release}.nix"))
+    );
+
+in
+{
+  inherit kdeL10nDerivation;
+  recurseForDerivations = true;
+} // kdeL10nRelease
diff --git a/pkgs/desktops/kde-4.8/l10n/l10n-manifest.sh b/pkgs/desktops/kde-4.8/l10n/l10n-manifest.sh
new file mode 100755
index 00000000000..cc0eec20aaa
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/l10n/l10n-manifest.sh
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+# Usage: download kde-l10n to $dir, then run
+# $0 $dir
+
+dir=$1
+
+if [[ ! -d "${dir}" ]]; then
+  echo "${dir} is not a directory (or doesn't exist)!" >&2
+  exit 1
+fi
+
+release=$(ls "${dir}"/kde-l10n-en_GB-*.tar.bz2 | \
+	sed -e 's/.*en_GB-//' -e 's/\.tar\.bz2//')
+
+echo "Detected release ${release}" >&2
+
+exec > "manifest-${release}.nix"
+echo "["
+for i in `cd "${dir}"; ls kde-l10n-*-${release}.tar.bz2`; do
+  lang=${i%-${release}.tar.bz2}
+  lang=${lang#kde-l10n-}
+  echo -n "${lang}.. " >&2
+  hash=$(nix-hash --type sha256 --flat --base32 "${dir}/${i}")
+  echo "{"
+  echo "  lang = \"${lang}\";"
+  echo "  saneName = \"$(echo $lang | sed s^@^_^g)\";"
+  echo "  sha256 = \"${hash}\";"
+  echo "}"
+  echo $hash >&2
+done
+echo "]"
diff --git a/pkgs/desktops/kde-4.8/l10n/manifest-4.7.97.nix b/pkgs/desktops/kde-4.8/l10n/manifest-4.7.97.nix
new file mode 100644
index 00000000000..0ed6019de7a
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/l10n/manifest-4.7.97.nix
@@ -0,0 +1,272 @@
+[
+{
+  lang = "ar";
+  saneName = "ar";
+  sha256 = "0x1d9zp9vb33qs88xvc1hf4rinbhxicvzzmp1d3jj25k1ra938kp";
+}
+{
+  lang = "bg";
+  saneName = "bg";
+  sha256 = "0mzfbjhq0lv3dr28nc0wrhrngl3idzpak6nbnsya32zpbrwgrzlz";
+}
+{
+  lang = "bs";
+  saneName = "bs";
+  sha256 = "0f5xxjgnasdnjfb6ksii9i44cia0vh2icwwgg8vdj0b62bdbd5n6";
+}
+{
+  lang = "ca";
+  saneName = "ca";
+  sha256 = "1b4xk6izq74c7blhdb0ws2nsw4i3q62jcr7w91r8b4j76bhpgif4";
+}
+{
+  lang = "ca@valencia";
+  saneName = "ca_valencia";
+  sha256 = "0rrf2gv8mn1bmzsqkgxgxn0gjikvzrcxbsyfs3dx9s42brwknn3s";
+}
+{
+  lang = "cs";
+  saneName = "cs";
+  sha256 = "1wr85m902jfk0ykvl6z7pbb4v852f35c9gjw4x7md9v899k6lc4g";
+}
+{
+  lang = "da";
+  saneName = "da";
+  sha256 = "0bn4gnm8zljji5av7jvc5jypwr9kqcbc7fdcjljm7sd0v2fg32m3";
+}
+{
+  lang = "de";
+  saneName = "de";
+  sha256 = "19hmsm49lk446425gf4ffiz8hywv9fgnwfrc0i6s0409sfm64jb2";
+}
+{
+  lang = "el";
+  saneName = "el";
+  sha256 = "1ck8ga9zyag24wl03qf9kfawpf1a163d2may3g0cs9iircg0fwxh";
+}
+{
+  lang = "en_GB";
+  saneName = "en_GB";
+  sha256 = "15q25dnyxafgk2glcyk7zxfv5mg2s0cj8440clfj2xxhrkhghlij";
+}
+{
+  lang = "es";
+  saneName = "es";
+  sha256 = "066xw4n8vhq8zdqhwi7pf3n9iyvn1i0lrwiyc3pc0ji98sdfyv29";
+}
+{
+  lang = "et";
+  saneName = "et";
+  sha256 = "103lvb2snik42g933dsl713ik0h853r082a82dm0b11qjgj9qcni";
+}
+{
+  lang = "eu";
+  saneName = "eu";
+  sha256 = "1jnnsj192qflwi2n0b2f01qprhxr7f41nn4iqw7iw0vy11hsy41a";
+}
+{
+  lang = "fa";
+  saneName = "fa";
+  sha256 = "1lk4why9cfbzlj0kb5n2q9hhlhk9cj5i8h88abni4crzdgg5wrfk";
+}
+{
+  lang = "fi";
+  saneName = "fi";
+  sha256 = "10z0rn2gmq3cyjwab9in6c7s57rhyhri3pg30nhbfpvh6jsph36j";
+}
+{
+  lang = "fr";
+  saneName = "fr";
+  sha256 = "0xipq67yjriqy32shlp70kkvnmsjz60j6pjyqk9hvmivsawdvxd6";
+}
+{
+  lang = "ga";
+  saneName = "ga";
+  sha256 = "1c60xbbg03r9laclwnbrxixj8mvang5mcz51szd2s5kml6b4nqb6";
+}
+{
+  lang = "gl";
+  saneName = "gl";
+  sha256 = "181153rrxdxdhcqqczyjw5vwk5lm7dyd46xzvk2k6n38zcvmxklj";
+}
+{
+  lang = "he";
+  saneName = "he";
+  sha256 = "1ivwj638m6izg8v9zdhlgpwihwkc0zcbsklb149ar9az88zmafvm";
+}
+{
+  lang = "hr";
+  saneName = "hr";
+  sha256 = "1z945ccxa0k4adfczb9yz1zws368mgm7j5lq1rvhipkqy82vyfmq";
+}
+{
+  lang = "hu";
+  saneName = "hu";
+  sha256 = "1l6w0d0r09d992vsvv217rq4j9viv681xgpfx9mawvlv81qf6ksx";
+}
+{
+  lang = "ia";
+  saneName = "ia";
+  sha256 = "0bx27j8rlzwd6zn2plps9nb1nwpziyj5gbjqlrd7z1bga957mnis";
+}
+{
+  lang = "id";
+  saneName = "id";
+  sha256 = "1kslyfxf0isigrlwh4rr7n7pivs6cv35bvwwvn7qrz8x513x1n8l";
+}
+{
+  lang = "is";
+  saneName = "is";
+  sha256 = "1am2qlgdww8knqj5lp1b4hvsx8anyncig6mf8iws855lkrbffaci";
+}
+{
+  lang = "it";
+  saneName = "it";
+  sha256 = "1fs8hjz25ryivxs191pvld0ckys8dbfs9kkhq6fv2d9f88igwbgv";
+}
+{
+  lang = "ja";
+  saneName = "ja";
+  sha256 = "0f5crpnqaqyi9x5j4s86iibg28kxsrbagd1i6h0p0lwrfr9yymqf";
+}
+{
+  lang = "kk";
+  saneName = "kk";
+  sha256 = "10r7qjvmpz6bl8j7wj755z69cik540ybfhm8mwbgcaafhfxgl1na";
+}
+{
+  lang = "km";
+  saneName = "km";
+  sha256 = "0lv0d8bcva00g5ydcirmz8r6ki0014v97grk1x39f1rmq08zba9b";
+}
+{
+  lang = "kn";
+  saneName = "kn";
+  sha256 = "0qpxzngv556rrdlhn8fxb5qar5gvfx4vgmpkc1s1qzfn8kxq6ggz";
+}
+{
+  lang = "ko";
+  saneName = "ko";
+  sha256 = "0v0kpbh7brrfqjv40f05gqjf54azfpcar1rrm5fa2gzji38zj6q3";
+}
+{
+  lang = "lt";
+  saneName = "lt";
+  sha256 = "0clzy04vj1dyj52qfszjmfjlwf0r43ffmsskwmy8xi82249pclg0";
+}
+{
+  lang = "lv";
+  saneName = "lv";
+  sha256 = "00id3nf7r56s9yfwgkykin99rikg1kkrj9c9d9ncl16vgz68yzv3";
+}
+{
+  lang = "nb";
+  saneName = "nb";
+  sha256 = "1l76kqb9n7n59krskn9j823h57hxqzdzs7kqa4vcm04in31a9za0";
+}
+{
+  lang = "nds";
+  saneName = "nds";
+  sha256 = "1hgwxm8pn34dp33r7kwdk0vw3ic4ahg39ydqg2mj62h35la3w1sm";
+}
+{
+  lang = "nl";
+  saneName = "nl";
+  sha256 = "1kna3i596mynijrjznqh4b8gqkd66s776yipzjgpg3zlcc21165f";
+}
+{
+  lang = "nn";
+  saneName = "nn";
+  sha256 = "0rkribndan830wd7s1zl0hq4jfgnixfsv61hi5r6l6r8bbn9fl2p";
+}
+{
+  lang = "pa";
+  saneName = "pa";
+  sha256 = "16bbiqxafhffwi8l94vrj22gji5k861pb5dkpnws1n20lk87j5kx";
+}
+{
+  lang = "pl";
+  saneName = "pl";
+  sha256 = "137xb660khkb5k9j0aq6yhn8bcmi7yr3lfmcbchx3xq81cp02v9m";
+}
+{
+  lang = "pt";
+  saneName = "pt";
+  sha256 = "0c5ixw2bkr9kr7xl83s2zvbp5ax8353bhaz7l89w98dshhvdlbsj";
+}
+{
+  lang = "pt_BR";
+  saneName = "pt_BR";
+  sha256 = "00jhrccv5ikn939c7pric5f3hs698by2s8aksfhczgqh29bwmkk3";
+}
+{
+  lang = "ro";
+  saneName = "ro";
+  sha256 = "07pyl2kmf994dzg9nw4xvby1cqza1lwpn29wjrqrpvjw96m1nm8y";
+}
+{
+  lang = "ru";
+  saneName = "ru";
+  sha256 = "0d1syrbxbnwfph3lq02jhw0422yivan7v3b35rfk07zvc13nzx0l";
+}
+{
+  lang = "si";
+  saneName = "si";
+  sha256 = "0dbkdp5fq4421s4m4lfgj6jhi7wa9xbgf2v17pd2bkyd91jixr2s";
+}
+{
+  lang = "sk";
+  saneName = "sk";
+  sha256 = "0f320v7y68dfdnlx9dpa4719rvil0b4qvnmgpha2mfvagql29hxm";
+}
+{
+  lang = "sl";
+  saneName = "sl";
+  sha256 = "1fii0px1r5b1v3q812955qmr3w3cqczh8x2qqcr73x68bk839i8v";
+}
+{
+  lang = "sr";
+  saneName = "sr";
+  sha256 = "01v0nwshak7wlgpcalh6ificsyx85zvn4g4j7fz12f5y0189sdyb";
+}
+{
+  lang = "sv";
+  saneName = "sv";
+  sha256 = "1cz6xdjraskh4ri8bi8j9pf87g03y18hn22jk03y7z9xrzy30lz8";
+}
+{
+  lang = "th";
+  saneName = "th";
+  sha256 = "0bqfk0kvj64gbcgr84ygbvpwrh7lwkpi33lirncrc5yvf4lddqmd";
+}
+{
+  lang = "tr";
+  saneName = "tr";
+  sha256 = "0g83in6ahf5lni206fiz90lmai9fih77bsaa1i8x4iyzddxrysv0";
+}
+{
+  lang = "ug";
+  saneName = "ug";
+  sha256 = "0401g7bz852rj86gipslcw713dq74p58wk8zkmh17xxyqis4n82m";
+}
+{
+  lang = "uk";
+  saneName = "uk";
+  sha256 = "0q2z4klq42cyh1czcyd0f9105a90dxl6diw5bhlw85v3n72i0bl5";
+}
+{
+  lang = "wa";
+  saneName = "wa";
+  sha256 = "1by2804w8gxv3l655ga5mfw9363saq02s7vfbc7kc4vqpjxvbk8s";
+}
+{
+  lang = "zh_CN";
+  saneName = "zh_CN";
+  sha256 = "0x8l280ymdxf9w7rklf1wh4bl7mskdbq2hwgm2rsjvm2cvqifjil";
+}
+{
+  lang = "zh_TW";
+  saneName = "zh_TW";
+  sha256 = "0iv36yi2zjlqnhs6n65b7j4yjh01mdbr3lg35a17awg2a22a8gs0";
+}
+]
diff --git a/pkgs/desktops/kde-4.8/oxygen-icons.nix b/pkgs/desktops/kde-4.8/oxygen-icons.nix
new file mode 100644
index 00000000000..6297a55df76
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/oxygen-icons.nix
@@ -0,0 +1,15 @@
+{ kde, cmake }:
+
+kde {
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "ca03ee0a7bbd35ee70f84d32b6f861ee8c019473f16c6ecf6309885317bcfe51";
+
+  buildNativeInputs = [ cmake ];
+
+  meta = {
+    description = "KDE Oxygen theme icons";
+    longDescription = "Icons for KDE's default theme";
+    license = "GPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.8/support/akonadi/default.nix b/pkgs/desktops/kde-4.8/support/akonadi/default.nix
new file mode 100644
index 00000000000..434a1446369
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/support/akonadi/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, cmake, qt4, shared_mime_info, libxslt, boost, automoc4, soprano }:
+
+stdenv.mkDerivation rec {
+  name = "akonadi-1.6.90";
+  
+  src = fetchurl {
+    url = "mirror://kde/stable/akonadi/src/${name}.tar.bz2";
+    sha256 = "0a35wkrrdk4k7kw1d4rvq4w4wwlmz9vk2nb4c2yibpn9rmc6ighn";
+  };
+
+  buildInputs = [ qt4 soprano libxslt boost ];
+
+  buildNativeInputs = [ cmake automoc4 shared_mime_info ];
+
+  enableParallelBuilding = true;
+  
+  meta = with stdenv.lib; {
+    description = "KDE PIM Storage Service";
+    license = "LGPL";
+    homepage = http://pim.kde.org/akonadi;
+    maintainers = [ maintainers.sander maintainers.urkud ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/compilers/epic/default.nix b/pkgs/development/compilers/epic/default.nix
index 377a7377a32..8c6b4ee50cf 100644
--- a/pkgs/development/compilers/epic/default.nix
+++ b/pkgs/development/compilers/epic/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "epic";
-  version = "0.9";
-  sha256 = "0bxvabzizq0msj0fy02vqj0pylq4cbymsypi6w2babwykscrdgm0";
+  version = "0.9.2";
+  sha256 = "1irvfk8xf627bfzsgbqa56816jkc99rrxpml9ycg2grq7razp9fw";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [ mtl ];
diff --git a/pkgs/development/libraries/arts/default.nix b/pkgs/development/libraries/arts/default.nix
index d895724f691..50c270f534e 100644
--- a/pkgs/development/libraries/arts/default.nix
+++ b/pkgs/development/libraries/arts/default.nix
@@ -1,4 +1,5 @@
-{stdenv, fetchurl, pkgconfig, glib, kdelibs, libX11, libXext, zlib, libjpeg, libpng, perl, qt}:
+{stdenv, fetchurl, pkgconfig, glib, kdelibs, libX11, libXext, zlib, libjpeg
+, libpng, perl, qt3}:
 
 stdenv.mkDerivation {
   name = "arts-1.5.10";
@@ -19,7 +20,10 @@ stdenv.mkDerivation {
     --enable-final
   '';
 
-  buildInputs = [pkgconfig glib kdelibs libX11 libXext zlib libjpeg libpng perl qt];
+  buildNativeInputs = [ pkgconfig perl ];
+
+  buildInputs =
+    [glib kdelibs libX11 libXext zlib libjpeg libpng qt3];
 
   meta = {
     homepage = http://www.arts-project.org/;
diff --git a/pkgs/development/libraries/atk/1.24.x.nix b/pkgs/development/libraries/atk/1.24.x.nix
deleted file mode 100644
index 213c3ef72a4..00000000000
--- a/pkgs/development/libraries/atk/1.24.x.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, perl, glib }:
-
-stdenv.mkDerivation rec {
-  name = "atk-1.24.0";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/atk/1.24/${name}.tar.bz2";
-    sha256 = "0mjxliarzcy7iksh6v1npxsqdpc9sjj3q4wcl567asbdzdpbd803";
-  };
-
-  buildNativeInputs = [perl];
-  buildInputs = [pkgconfig];
-  propagatedBuildInputs = [glib];
-
-  meta = {
-    description = "ATK, the accessibility toolkit";
-
-    longDescription = ''
-      ATK is the Accessibility Toolkit.  It provides a set of generic
-      interfaces allowing accessibility technologies such as screen
-      readers to interact with a graphical user interface.  Using the
-      ATK interfaces, accessibility tools have full access to view and
-      control running applications.
-    '';
-
-    homepage = http://library.gnome.org/devel/atk/;
-
-    license = "LGPLv2+";
-  };
-
-}
diff --git a/pkgs/development/libraries/atk/2.2.x.nix b/pkgs/development/libraries/atk/2.2.x.nix
index 45737aad319..8f49532c025 100644
--- a/pkgs/development/libraries/atk/2.2.x.nix
+++ b/pkgs/development/libraries/atk/2.2.x.nix
@@ -1,11 +1,10 @@
-{ stdenv, fetchurl_gnome, pkgconfig, perl, glib, xz }:
+{ stdenv, fetchurl, pkgconfig, perl, glib, xz }:
 
 stdenv.mkDerivation rec {
-  name = src.pkgname;
+  name = "atk-2.2.0";
 
-  src = fetchurl_gnome {
-    project = "atk";
-    major = "2"; minor = "2"; patchlevel = "0"; extension = "xz";
+  src = fetchurl {
+    url = mirror://gnome/sources/atk/2.2/atk-2.2.0.tar.xz;
     sha256 = "17bkqg89l9hxbkgc76cxlin1bwczk7m6ikbccx677lrxh3kz08lb";
   };
 
diff --git a/pkgs/development/libraries/atkmm/2.22.x.nix b/pkgs/development/libraries/atkmm/2.22.x.nix
index 348edb22632..2d415821fc5 100644
--- a/pkgs/development/libraries/atkmm/2.22.x.nix
+++ b/pkgs/development/libraries/atkmm/2.22.x.nix
@@ -1,14 +1,14 @@
-{ stdenv, fetchurl_gnome, atk, glibmm, pkgconfig }:
+{ stdenv, fetchurl, atk, glibmm, pkgconfig, xz }:
 
 stdenv.mkDerivation rec {
-  name = src.pkgname;
+  name = "atkmm-2.22.6";
 
-  src = fetchurl_gnome {
-    project = "atkmm";
-    major = "2"; minor = "22"; patchlevel = "5";
-    sha256 = "0v5ynws5pc4qdgrr8hrl8wajl3xxh3kgljchj7cqyb4mcxg3xq31";
+  src = fetchurl {
+    url = mirror://gnome/sources/atkmm/2.22/atkmm-2.22.6.tar.xz;
+    sha256 = "1dmf72i7jv2a2gavjiah2722bf5qk3hb97hn5dasxqxr0r8jjx0a";
   };
 
+  buildInputs = [ xz ];
   propagatedBuildInputs = [ atk glibmm ];
 
   buildNativeInputs = [ pkgconfig ];
diff --git a/pkgs/development/libraries/cogl/default.nix b/pkgs/development/libraries/cogl/default.nix
index e7ee3816210..6b517b91810 100644
--- a/pkgs/development/libraries/cogl/default.nix
+++ b/pkgs/development/libraries/cogl/default.nix
@@ -1,14 +1,13 @@
-{ stdenv, fetchurl_gnome, pkgconfig, mesa, glib, gdk_pixbuf
+{ stdenv, fetchurl, pkgconfig, mesa, glib, gdk_pixbuf
 , pangoSupport ? true, pango, cairo
 , libXfixes, libXcomposite, libXdamage, xz }:
 
 stdenv.mkDerivation rec {
-  name = src.pkgname;
+  name = "cogl-1.8.2";
 
-  src = fetchurl_gnome {
-    project = "cogl";
-    major = "1"; minor = "8"; patchlevel = "0"; extension = "xz";
-    sha256 = "0b0arg0sjky5y4ypgh8dpznd9f1azhi1d5rhf4zbcw2mkl91qmdi";
+  src = fetchurl {
+    url = mirror://gnome/sources/cogl/1.8/cogl-1.8.2.tar.xz;
+    sha256 = "1ix87hz3qxqysqwx58wbc46lzchlmfs08fjzbf3l6mmsqj8gs9pc";
   };
 
   buildNativeInputs = [ xz pkgconfig ];
diff --git a/pkgs/development/libraries/gdk-pixbuf/2.24.x.nix b/pkgs/development/libraries/gdk-pixbuf/2.24.x.nix
index d6483ba36de..eb7eaf91bb0 100644
--- a/pkgs/development/libraries/gdk-pixbuf/2.24.x.nix
+++ b/pkgs/development/libraries/gdk-pixbuf/2.24.x.nix
@@ -1,23 +1,22 @@
-{ stdenv, fetchurl_gnome, pkgconfig, glib, libtiff, libjpeg, libpng, xlibs
-, xz, jasper }:
+{ stdenv, fetchurl, pkgconfig, glib, libtiff, libjpeg, libpng, libX11, xz
+, jasper }:
 
-stdenv.mkDerivation rec {
-  name = src.pkgname;
+stdenv.mkDerivation {
+  name = "gdk-pixbuf-2.24.1";
 
-  src = fetchurl_gnome {
-    project = "gdk-pixbuf";
-    major = "2"; minor = "24"; patchlevel = "0"; extension = "xz";
-    sha256 = "19r89nxqlpmd0ykmklz2z99dvad9svr5ndiclk7c2h84lhx1vhb7";
+  src = fetchurl {
+    url = mirror://gnome/sources/gdk-pixbuf/2.24/gdk-pixbuf-2.24.1.tar.xz;
+    sha256 = "1qdywh1r75lalb7z6s9pm6pmqx82chrrxqb8cdqi629nvc03yyns";
   };
 
   # !!! We might want to factor out the gdk-pixbuf-xlib subpackage.
-  buildInputs = [ xlibs.xlibs ];
+  buildInputs = [ libX11 ];
 
   buildNativeInputs = [ pkgconfig xz ];
 
   propagatedBuildInputs = [ glib libtiff libjpeg libpng jasper ];
 
-  configureFlags = "--with-libjasper";
+  configureFlags = "--with-libjasper --with-x11";
 
   postInstall = "rm -rf $out/share/gtk-doc";
 
diff --git a/pkgs/development/libraries/glib/2.20.x.nix b/pkgs/development/libraries/glib/2.20.x.nix
deleted file mode 100644
index c7a92a00b42..00000000000
--- a/pkgs/development/libraries/glib/2.20.x.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, gettext, perl }:
-
-stdenv.mkDerivation rec {
-  name = "glib-2.20.1";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/glib/2.20/${name}.tar.bz2";
-    sha256 = "0ndgshcqzpj3piwmag3vrsv3rg4pnr12y70knl7z0k2i03cy5bav";
-  };
-
-  buildNativeInputs = [perl];
-  buildInputs = [pkgconfig gettext];
-
-  # The nbd package depends on a static version of this library; hence
-  # the default configure flag --disable-static is switched off.
-  dontDisableStatic = true;
-  configureFlags = "--enable-static --enable-shared";
-
-  meta = {
-    description = "GLib, a C library of programming buildings blocks";
-
-    longDescription = ''
-      GLib provides the core application building blocks for libraries
-      and applications written in C.  It provides the core object
-      system used in GNOME, the main loop implementation, and a large
-      set of utility functions for strings and common data structures.
-    '';
-
-    homepage = http://www.gtk.org/;
-
-    license = "LGPLv2+";
-  };
-}
diff --git a/pkgs/development/libraries/gtk+/2.16.x.nix b/pkgs/development/libraries/gtk+/2.16.x.nix
deleted file mode 100644
index 2c81ecc84e0..00000000000
--- a/pkgs/development/libraries/gtk+/2.16.x.nix
+++ /dev/null
@@ -1,39 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, perl, jasper, x11, glib, atk, pango
-, libtiff, libjpeg, libpng, cairo, xlibs
-, xineramaSupport ? true
-}:
-
-stdenv.mkDerivation rec {
-  name = "gtk+-2.16.2";
-  
-  src = fetchurl {
-    url = "mirror://gnome/sources/gtk+/2.16/${name}.tar.bz2";
-    sha256 = "07gdsl3ialpwfcd0z3w108r60dn0agj12s21fpkpcx44lzknnbm3";
-  };
-  
-  buildNativeInputs = [ perl ];
-  buildInputs = [ pkgconfig jasper ];
-  
-  propagatedBuildInputs = [
-    x11 glib atk pango libtiff libjpeg libpng cairo xlibs.libXrandr
-  ] ++ stdenv.lib.optional xineramaSupport xlibs.libXinerama;
-    
-  meta = {
-    description = "A multi-platform toolkit for creating graphical user interfaces";
-
-    longDescription = ''
-      GTK+ is a highly usable, feature rich toolkit for creating
-      graphical user interfaces which boasts cross platform
-      compatibility and an easy to use API.  GTK+ it is written in C,
-      but has bindings to many other popular programming languages
-      such as C++, Python and C# among others.  GTK+ is licensed
-      under the GNU LGPL 2.1 allowing development of both free and
-      proprietary software with GTK+ without any license fees or
-      royalties.
-    '';
-
-    homepage = http://www.gtk.org/;
-
-    license = "LGPLv2+";
-  };
-}
diff --git a/pkgs/development/libraries/gtk+/2.24.x.nix b/pkgs/development/libraries/gtk+/2.24.x.nix
index b52031d4ac6..e3908b2ba37 100644
--- a/pkgs/development/libraries/gtk+/2.24.x.nix
+++ b/pkgs/development/libraries/gtk+/2.24.x.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl_gnome, pkgconfig, glib, atk, pango, cairo, perl, xlibs
+{ stdenv, fetchurl, pkgconfig, glib, atk, pango, cairo, perl, xlibs
 , gdk_pixbuf, xz
 , xineramaSupport ? true
 , cupsSupport ? true, cups ? null
@@ -7,13 +7,12 @@
 assert xineramaSupport -> xlibs.libXinerama != null;
 assert cupsSupport -> cups != null;
 
-stdenv.mkDerivation rec {
-  name = src.pkgname;
-  
-  src = fetchurl_gnome {
-    project = "gtk+";
-    major = "2"; minor = "24"; patchlevel = "6"; extension = "xz";
-    sha256 = "1jpgxycxgz1g5yd7spxyc2i8zvn8swm275dkd4d0ryn1bma6n0la";
+stdenv.mkDerivation {
+  name = "gtk+-2.24.8";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gtk+/2.24/gtk+-2.24.8.tar.xz;
+    sha256 = "0g5rj25qrgkwrnvpb76a8c2cinryf9kb1drdx8pgag4kczv2jfwa";
   };
 
   patches =
diff --git a/pkgs/development/libraries/haskell/conduit/default.nix b/pkgs/development/libraries/haskell/conduit/default.nix
index 75289459385..fa210279ec0 100644
--- a/pkgs/development/libraries/haskell/conduit/default.nix
+++ b/pkgs/development/libraries/haskell/conduit/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "conduit";
-  version = "0.0.0.2";
-  sha256 = "1fngrlly5q2l0j3fil4cx3zj2h4sxnh20i0r84l4qhl8s0x5ba5z";
+  version = "0.0.1.1";
+  sha256 = "1144l40x8xvr3dkkhbg33fnajn9ggavxqa094zan0bdqljh48ips";
   buildDepends = [
     liftedBase monadControl text transformers transformersBase
   ];
diff --git a/pkgs/development/libraries/haskell/hakyll/default.nix b/pkgs/development/libraries/haskell/hakyll/default.nix
index 9035c606ed8..5f506021c14 100644
--- a/pkgs/development/libraries/haskell/hakyll/default.nix
+++ b/pkgs/development/libraries/haskell/hakyll/default.nix
@@ -5,8 +5,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hakyll";
-  version = "3.2.3.2";
-  sha256 = "0410gg8sdnw0iyhqrw1wfv9abbrv7r6awgvlhqds17vnrdxxk2w8";
+  version = "3.2.4.0";
+  sha256 = "1hyvvcq4hvbwz8zaswi8949sqzjkby6754b0y5zp2cpax2ykkbgx";
   buildDepends = [
     binary blazeHtml citeprocHs cryptohash hamlet mtl pandoc parsec
     regexBase regexPcre snapCore snapServer tagsoup time
diff --git a/pkgs/development/libraries/haskell/http-conduit/default.nix b/pkgs/development/libraries/haskell/http-conduit/default.nix
index 9a2ac22721c..105c7803c44 100644
--- a/pkgs/development/libraries/haskell/http-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/http-conduit/default.nix
@@ -2,24 +2,21 @@
 , blazeBuilder, blazeBuilderConduit, caseInsensitive, certificate
 , conduit, cprngAes, dataDefault, failure, httpTypes, liftedBase
 , monadControl, network, text, tls, tlsExtra, transformers
-, transformersBase, utf8String, zlibConduit, zlibEnum
+, transformersBase, utf8String, zlibConduit
 }:
 
 cabal.mkDerivation (self: {
   pname = "http-conduit";
-  version = "1.0.0.1";
-  sha256 = "0yag65ariakvbvsrr3kd16bags4caw8n3qlcwpzrblprgjrv06vm";
-  isLibrary = true;
-  isExecutable = true;
+  version = "1.1.0.1";
+  sha256 = "0jlj727rs8f1yxy6ms2gi3ryj4di5la0pgn2hw5flglflacj8wb6";
   buildDepends = [
     asn1Data attoparsec attoparsecConduit base64Bytestring blazeBuilder
     blazeBuilderConduit caseInsensitive certificate conduit cprngAes
     dataDefault failure httpTypes liftedBase monadControl network text
     tls tlsExtra transformers transformersBase utf8String zlibConduit
-    zlibEnum
   ];
   meta = {
-    homepage = "http://github.com/snoyberg/http-enumerator";
+    homepage = "http://www.yesodweb.com/book/http-conduit";
     description = "HTTP client package with conduit interface and HTTPS support";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
diff --git a/pkgs/development/libraries/haskell/http-enumerator/default.nix b/pkgs/development/libraries/haskell/http-enumerator/default.nix
index c29489e1d9f..4e60042dc30 100644
--- a/pkgs/development/libraries/haskell/http-enumerator/default.nix
+++ b/pkgs/development/libraries/haskell/http-enumerator/default.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "http-enumerator";
-  version = "0.7.2.2";
-  sha256 = "0s0mjws2sgpbydx4cv9waz71lpylgbbyk0wmvypyjvfhxd9d01hf";
+  version = "0.7.2.3";
+  sha256 = "1f66dnqm67qzg76w47kqvpv7ssandmf8md838mdzrsg88x54dar7";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/iteratee/default.nix b/pkgs/development/libraries/haskell/iteratee/default.nix
index 148cf3474b1..07b2d52e17c 100644
--- a/pkgs/development/libraries/haskell/iteratee/default.nix
+++ b/pkgs/development/libraries/haskell/iteratee/default.nix
@@ -3,8 +3,8 @@
 
 cabal.mkDerivation (self: {
   pname = "iteratee";
-  version = "0.8.7.5";
-  sha256 = "182bxdnj7k4dkmrbnkzy93axq8hwpq3xdbkyf93hbzzp4vhdvjnl";
+  version = "0.8.7.6";
+  sha256 = "05zhw44zycwllvyrkxz1mkn5mkylrdz9ynh27k17gsm9mjml3cab";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/maude/default.nix b/pkgs/development/libraries/haskell/maude/default.nix
index f9d7f68eaf6..1344f7759af 100644
--- a/pkgs/development/libraries/haskell/maude/default.nix
+++ b/pkgs/development/libraries/haskell/maude/default.nix
@@ -1,12 +1,12 @@
-{ cabal, text }:
+{ cabal, parsec, text }:
 
 cabal.mkDerivation (self: {
   pname = "maude";
-  version = "0.2.1";
-  sha256 = "10igixljxfrpns2ffvk4g5dsv2pr8p1f7hc65z5x91n6x8zd01vi";
-  buildDepends = [ text ];
+  version = "0.3.0";
+  sha256 = "1z9bk4fzkbfiqqx4mv4cdlckchvcli2gcp40d04ravvj7x6yaghg";
+  buildDepends = [ parsec text ];
   meta = {
-    homepage = "https://code.google.com/p/maude-hs/";
+    homepage = "https://github.com/davidlazar/maude-hs";
     description = "An interface to the Maude rewriting system";
     license = self.stdenv.lib.licenses.mit;
     platforms = self.ghc.meta.platforms;
diff --git a/pkgs/development/libraries/haskell/unix-compat/0.3.nix b/pkgs/development/libraries/haskell/unix-compat/0.3.nix
deleted file mode 100644
index da13c9313ac..00000000000
--- a/pkgs/development/libraries/haskell/unix-compat/0.3.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ cabal }:
-
-cabal.mkDerivation (self: {
-  pname = "unix-compat";
-  version = "0.3";
-  sha256 = "0zgz9s5z2kca37sgnf4dyfdw90435h20bznx485y1ggvh377jan7";
-  meta = {
-    homepage = "http://github.com/jystic/unix-compat";
-    description = "Portable POSIX-compatibility layer";
-    license = self.stdenv.lib.licenses.bsd3;
-    platforms = self.ghc.meta.platforms;
-    maintainers = [
-      self.stdenv.lib.maintainers.andres
-      self.stdenv.lib.maintainers.simons
-    ];
-  };
-})
diff --git a/pkgs/development/libraries/haskell/unix-compat/0.2.2.1.nix b/pkgs/development/libraries/haskell/unix-compat/default.nix
index 34cbd4072f6..83b670ee2c2 100644
--- a/pkgs/development/libraries/haskell/unix-compat/0.2.2.1.nix
+++ b/pkgs/development/libraries/haskell/unix-compat/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "unix-compat";
-  version = "0.2.2.1";
-  sha256 = "009dg6mxjmdkcmr2d1qq9r3f4qfx4d362lyxj9vvgwrzcdnsgzqi";
+  version = "0.3.0.1";
+  sha256 = "09y2iih741l4jpi83c15zap94phfms4mavzg04r9rjgbav0ns2c4";
   meta = {
     homepage = "http://github.com/jystic/unix-compat";
     description = "Portable POSIX-compatibility layer";
diff --git a/pkgs/development/libraries/haskell/yesod-core/default.nix b/pkgs/development/libraries/haskell/yesod-core/default.nix
index 4e81d54979b..b747179b0f3 100644
--- a/pkgs/development/libraries/haskell/yesod-core/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-core/default.nix
@@ -8,8 +8,8 @@
 
 cabal.mkDerivation (self: {
   pname = "yesod-core";
-  version = "0.9.4";
-  sha256 = "1m9cxm3pngg4pq7j3p1sh7lrjp5gslnn6zcimc5ln8yldxx01c6g";
+  version = "0.9.4.1";
+  sha256 = "048xc8dshwpaxirz8wvk3ra0qs99wx1i145nfj7n3i6kw8qkfnz6";
   buildDepends = [
     aeson blazeBuilder blazeHtml caseInsensitive cereal clientsession
     cookie dataObject dataObjectYaml enumerator failure fastLogger
diff --git a/pkgs/development/libraries/libdbusmenu-qt/default.nix b/pkgs/development/libraries/libdbusmenu-qt/default.nix
index 4c12880f557..aeb9331c8ad 100644
--- a/pkgs/development/libraries/libdbusmenu-qt/default.nix
+++ b/pkgs/development/libraries/libdbusmenu-qt/default.nix
@@ -3,13 +3,15 @@
 let
   baseName = "libdbusmenu-qt";
   v = "0.9.0";
+  homepage = "http://launchpad.net/${baseName}";
+  name = "${baseName}-${v}";
 in
 
-stdenv.mkDerivation rec {
-  name = "${baseName}-${v}";
+stdenv.mkDerivation {
+  inherit name;
 
   src = fetchurl {
-    url = "http://launchpad.net/${baseName}/trunk/${v}/+download/${name}.tar.bz2";
+    url = "${homepage}/trunk/${v}/+download/${name}.tar.bz2";
     sha256 = "0xdicb3fmwgbyhc6cpcmdkwysdg18m5rcqc3izpwv6brq4aq4787";
   };
 
@@ -20,7 +22,7 @@ stdenv.mkDerivation rec {
   
   meta = with stdenv.lib; {
     description = "Provides a Qt implementation of the DBusMenu spec";
-    homepage = http://people.canonical.com/~agateau/dbusmenu/;
+    inherit homepage;
     maintainers = [ maintainers.urkud ];
     inherit (qt4.meta) platforms;
   };
diff --git a/pkgs/development/libraries/libgphoto2/default.nix b/pkgs/development/libraries/libgphoto2/default.nix
index 7ea9eb4db87..16001e689dd 100644
--- a/pkgs/development/libraries/libgphoto2/default.nix
+++ b/pkgs/development/libraries/libgphoto2/default.nix
@@ -1,17 +1,18 @@
 {stdenv, fetchurl, pkgconfig, libusb, libtool, libexif, libjpeg, gettext}:
 
 stdenv.mkDerivation rec {
-  name = "libgphoto2-2.4.10.1";
+  name = "libgphoto2-2.4.11";
 
   src = fetchurl {
     url = "mirror://sourceforge/gphoto/${name}.tar.bz2";
-    sha256 = "12m99hcak59ppq1ijnfsrcm09mdj102f1xjmz4myggwjdymwc3lq";
+    sha256 = "08y40mqy714cg0160lny13z9kyxm63m3ksg8hljy5pspxanbn5ji";
   };
   
-  buildInputs = [pkgconfig libtool libjpeg gettext];
+  buildNativeInputs = [ pkgconfig gettext ];
+  buildInputs = [ libtool libjpeg ];
 
   # These are mentioned in the Requires line of libgphoto's pkg-config file.
-  propagatedBuildInputs = [libusb libexif];
+  propagatedBuildInputs = [ libusb libexif ];
 
   meta = {
     homepage = http://www.gphoto.org/proj/libgphoto2/;
diff --git a/pkgs/development/libraries/libgphoto2/libgphoto2-2.2.1.patch b/pkgs/development/libraries/libgphoto2/libgphoto2-2.2.1.patch
deleted file mode 100644
index 8d39d663719..00000000000
--- a/pkgs/development/libraries/libgphoto2/libgphoto2-2.2.1.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -ruN libgphoto2-2.2.1/packaging/generic/print-camera-list.c libgphoto2-2.2.1.new/packaging/generic/print-camera-list.c
---- libgphoto2-2.2.1/packaging/generic/print-camera-list.c	2006-04-19 03:54:05.000000000 +0200
-+++ libgphoto2-2.2.1.new/packaging/generic/print-camera-list.c	2006-07-06 22:54:42.000000000 +0200
-@@ -48,8 +48,8 @@
- #include <time.h>
- #include <string.h>
- 
--#include <gphoto2/gphoto2-camera.h>
--#include <gphoto2/gphoto2-port-log.h>
-+#include <gphoto2-camera.h>
-+#include <gphoto2-port-log.h>
- 
- #ifndef TRUE
- #define TRUE  (0==0)
diff --git a/pkgs/development/libraries/libgsf/default.nix b/pkgs/development/libraries/libgsf/default.nix
index a417f63cdd9..3f6de4cfb1d 100644
--- a/pkgs/development/libraries/libgsf/default.nix
+++ b/pkgs/development/libraries/libgsf/default.nix
@@ -1,18 +1,19 @@
 { fetchurl, stdenv, perl, perlXMLParser, pkgconfig, libxml2
-, glib, gettext, intltool, bzip2
+, glib, gettext, intltool, bzip2, xz
 , gnome_vfs, libbonobo, python }:
 
 
 stdenv.mkDerivation rec {
-  name = "libgsf-1.14.16";
+  name = "libgsf-1.14.22";
 
   src = fetchurl {
-    url = "http://ftp.gnome.org/pub/gnome/sources/libgsf/1.14/${name}.tar.bz2";
-    sha256 = "0249n2hgrcnzphinaxng0cpn7afchg84l4ka4wka9kyv3g58zz8i";
+    url = mirror://gnome/sources/libgsf/1.14/libgsf-1.14.22.tar.xz;
+    sha256 = "0gvq1gbbcl078s3kgdc508jp7p3a3ps34fj4pf8vsamprbikpwm5";
   };
 
+  buildNativeInputs = [ xz intltool pkgconfig ];
   buildInputs =
-    [ perl perlXMLParser pkgconfig gettext bzip2 gnome_vfs python intltool ];
+    [ perl perlXMLParser gettext bzip2 gnome_vfs python ];
 
   propagatedBuildInputs = [ glib libxml2 libbonobo ];
 
diff --git a/pkgs/development/libraries/libwpd/0.8.nix b/pkgs/development/libraries/libwpd/0.8.nix
new file mode 100644
index 00000000000..504bddb777a
--- /dev/null
+++ b/pkgs/development/libraries/libwpd/0.8.nix
@@ -0,0 +1,14 @@
+{ stdenv, fetchurl, pkgconfig, glib, libgsf, libxml2, bzip2 }:
+
+stdenv.mkDerivation rec {
+  name = "libwpd-0.8.14";
+  
+  src = fetchurl {
+    url = "mirror://sourceforge/libwpd/${name}.tar.gz";
+    sha256 = "1syli6i5ma10cwzpa61a18pyjmianjwsf6pvmvzsh5md6yk4yx01";
+  };
+  
+  buildInputs = [ glib libgsf libxml2 ];
+
+  buildNativeInputs = [ pkgconfig bzip2 ];
+}
diff --git a/pkgs/development/libraries/mlt/default.nix b/pkgs/development/libraries/mlt/default.nix
index 13f0a69950c..384c31a7cd4 100644
--- a/pkgs/development/libraries/mlt/default.nix
+++ b/pkgs/development/libraries/mlt/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, SDL, qt, pkgconfig, ffmpeg, libdv, libxml2, libsamplerate,
+{stdenv, fetchurl, SDL, qt4, pkgconfig, ffmpeg, libdv, libxml2, libsamplerate,
 libvorbis, sox}:
 
 stdenv.mkDerivation {
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
     sha256 = "1xcrrd3xbz9hmahgl7xf610cm97chwpxwgcajkd10mpcxbqs08i0";
   };
 
-  buildInputs = [ qt SDL ffmpeg libdv libxml2 libsamplerate libvorbis sox ];
+  buildInputs = [ qt4 SDL ffmpeg libdv libxml2 libsamplerate libvorbis sox ];
 
   # Mostly taken from:
   # http://www.kdenlive.org/user-manual/downloading-and-installing-kdenlive/installing-source/installing-mlt-rendering-engine
diff --git a/pkgs/development/libraries/newt/default.nix b/pkgs/development/libraries/newt/default.nix
new file mode 100644
index 00000000000..743314d1815
--- /dev/null
+++ b/pkgs/development/libraries/newt/default.nix
@@ -0,0 +1,29 @@
+{ fetchurl, stdenv, slang, popt }:
+
+stdenv.mkDerivation rec {
+  name = "newt-0.52.14";
+
+  src = fetchurl {
+    url = "https://fedorahosted.org/releases/n/e/newt/${name}.tar.gz";
+    sha256 = "13lp815zwldbw917wxmjy90gp608n3zlk4p3ybfqh0x6p9c4y3zp";
+  };
+
+  patchPhase = ''
+    sed -i -e s,/usr/bin/install,install, -e s,-I/usr/include/slang,, Makefile.in po/Makefile
+  '';
+
+  buildInputs = [ slang popt ];
+
+  crossAttrs = {
+    makeFlags = "CROSS_COMPILE=${stdenv.cross.config}-";
+  };
+
+  meta = {
+    homepage = https://fedorahosted.org/newt/;
+    description = "Library for color text mode, widget based user interfaces";
+
+    license = "LGPLv2";
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.viric ];
+  };
+}
diff --git a/pkgs/development/libraries/openssl/default.nix b/pkgs/development/libraries/openssl/default.nix
index 241f9154462..fc3018b0ab2 100644
--- a/pkgs/development/libraries/openssl/default.nix
+++ b/pkgs/development/libraries/openssl/default.nix
@@ -6,17 +6,8 @@ let
   opensslCrossSystem = stdenv.lib.attrByPath [ "openssl" "system" ]
     (throw "openssl needs its platform name cross building" null)
     stdenv.cross;
-in
-
-stdenv.mkDerivation {
-  inherit name;
-
-  src = fetchurl {
-    url = "http://www.openssl.org/source/${name}.tar.gz";
-    sha256 = "1xw0ffzmr4wbnb0glywgks375dvq8x87pgxmwx6vhgvkflkxqqg3";
-  };
 
-  patches =
+  patchesCross = isCross:
     [ # Allow the location of the X509 certificate file (the CA
       # bundle) to be set through the environment variable
       # ‘OPENSSL_X509_CERT_FILE’.  This is necessary because the
@@ -27,13 +18,25 @@ stdenv.mkDerivation {
       ./cert-file.patch
     ]
 
-    ++ (stdenv.lib.optionals (stdenv ? cross && opensslCrossSystem == "hurd-x86")
+    ++ (stdenv.lib.optionals (isCross && opensslCrossSystem == "hurd-x86")
          [ ./cert-file-path-max.patch # merge with `cert-file.patch' eventually
            ./gnu.patch                # submitted upstream
          ])
 
     ++ (stdenv.lib.optional stdenv.isDarwin ./darwin-arch.patch)
     ++ stdenv.lib.optional (stdenv.system == "x86_64-freebsd") ./freebsd-x86_64-asm.patch;
+  
+in
+
+stdenv.mkDerivation {
+  inherit name;
+
+  src = fetchurl {
+    url = "http://www.openssl.org/source/${name}.tar.gz";
+    sha256 = "1xw0ffzmr4wbnb0glywgks375dvq8x87pgxmwx6vhgvkflkxqqg3";
+  };
+
+  patches = patchesCross false;
 
   buildNativeInputs = [ perl ];
 
@@ -56,6 +59,8 @@ stdenv.mkDerivation {
     ''; # */
 
   crossAttrs = {
+    patches = patchesCross true;
+
     preConfigure=''
       # It's configure does not like --build or --host
       export configureFlags="--libdir=lib --cross-compile-prefix=${stdenv.cross.config}- shared ${opensslCrossSystem}"
diff --git a/pkgs/development/libraries/openssl/gnu.patch b/pkgs/development/libraries/openssl/gnu.patch
index b82496cf878..3cc6d049c94 100644
--- a/pkgs/development/libraries/openssl/gnu.patch
+++ b/pkgs/development/libraries/openssl/gnu.patch
@@ -7,7 +7,7 @@ Patch to fix compilation on GNU/Hurd and GNU/kFreeBSD.
  
  ##### GNU Hurd
 -"hurd-x86",  "gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -march=i486 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC",
-+"hurd-x86",  "gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -march=i486 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so",
++"hurd-x86",  "gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -march=i486 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  
  ##### OS/2 EMX
  "OS2-EMX", "gcc::::::::",
diff --git a/pkgs/development/libraries/pango/1.24.x.nix b/pkgs/development/libraries/pango/1.24.x.nix
deleted file mode 100644
index b2e61e6cae4..00000000000
--- a/pkgs/development/libraries/pango/1.24.x.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, gettext, x11, glib, cairo, libpng }:
-
-stdenv.mkDerivation rec {
-  name = "pango-1.24.1";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/pango/1.24/${name}.tar.bz2";
-    sha256 = "1cls9cbk6sx81101gh2pkiri8v14shqpvy37cydbh8scs4yk8370";
-  };
-
-  buildInputs = [pkgconfig] ++ (if stdenv.system == "i686-darwin" then [gettext] else []);
-
-  propagatedBuildInputs = [x11 glib cairo libpng];
-
-  meta = {
-    description = "A library for laying out and rendering of text, with an emphasis on internationalization";
-
-    longDescription = ''
-      Pango is a library for laying out and rendering of text, with an
-      emphasis on internationalization.  Pango can be used anywhere
-      that text layout is needed, though most of the work on Pango so
-      far has been done in the context of the GTK+ widget toolkit.
-      Pango forms the core of text and font handling for GTK+-2.x.
-    '';
-
-    homepage = http://www.pango.org/;
-    license = "LGPLv2+";
-  };
-}
diff --git a/pkgs/development/libraries/pangomm/2.28.x.nix b/pkgs/development/libraries/pangomm/2.28.x.nix
index 59b6eca64d3..c004b7160f2 100644
--- a/pkgs/development/libraries/pangomm/2.28.x.nix
+++ b/pkgs/development/libraries/pangomm/2.28.x.nix
@@ -1,14 +1,14 @@
-{ stdenv, fetchurl_gnome, pkgconfig, pango, glibmm, cairomm, libpng }:
+{ stdenv, fetchurl, pkgconfig, pango, glibmm, cairomm, libpng, xz }:
 
 stdenv.mkDerivation rec {
-  name = src.pkgname;
+  name = "pangomm-2.28.4";
 
-  src = fetchurl_gnome {
-    project = "pangomm";
-    major = "2"; minor = "28"; patchlevel = "2";
-    sha256 = "13yq5zwxzliiss4ladaa7di2b3s965p3zbz7s0ccz9ddbqj9f7gc";
+  src = fetchurl {
+    url = mirror://gnome/sources/pangomm/2.28/pangomm-2.28.4.tar.xz;
+    sha256 = "10kcdpg080m393f1vz0km41kd3483fkyabprm59gvjwklxkcp3bp";
   };
 
+  buildInputs = [ xz];
   buildNativeInputs = [ pkgconfig ];
   propagatedBuildInputs = [ pango glibmm cairomm libpng ];
 
diff --git a/pkgs/development/libraries/qt-3/default.nix b/pkgs/development/libraries/qt-3/default.nix
index 64b984c3f3a..e023235b936 100644
--- a/pkgs/development/libraries/qt-3/default.nix
+++ b/pkgs/development/libraries/qt-3/default.nix
@@ -5,7 +5,7 @@
 , xineramaSupport ? true, libXinerama ? null
 , cursorSupport ? true, libXcursor ? null
 , threadSupport ? true
-, mysqlSupport ? true, mysql ? null
+, mysqlSupport ? false, mysql ? null
 , openglSupport ? false, mesa ? null, libXmu ? null
 , x11, xextproto, zlib, libjpeg, libpng, which
 }:
diff --git a/pkgs/development/libraries/wxGTK-2.6/default.nix b/pkgs/development/libraries/wxGTK-2.6/default.nix
deleted file mode 100644
index 710400ab094..00000000000
--- a/pkgs/development/libraries/wxGTK-2.6/default.nix
+++ /dev/null
@@ -1,44 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, gtk, libXinerama, libSM, libXxf86vm, xf86vidmodeproto
-, compat22 ? false, compat24 ? true, unicode ? true
-}:
-
-stdenv.mkDerivation {
-  name = "wxGTK-2.6.4";
-
-  src = fetchurl {
-    url = mirror://sourceforge/wxwindows/wxGTK-2.6.4.tar.gz;
-    sha256 = "1yilzg9qxvdpqhhd3sby1w9pj00k7jqw0ikmwyhh5jmaqnnnrb2x";
-  };
-
-  buildInputs = [ gtk libXinerama libSM libXxf86vm xf86vidmodeproto ];
-
-  buildNativeInputs = [ pkgconfig ];
-
-  configureFlags = [
-    "--enable-gtk2"
-    (if compat22 then "--enable-compat22" else "--disable-compat22")
-    (if compat24 then "--enable-compat24" else "--disable-compat24")
-    "--disable-precomp-headers"
-    (if unicode then "--enable-unicode" else "")
-  ];
-
-  # This variable is used by configure to find some dependencies.
-  SEARCH_INCLUDE =
-    "${libXinerama}/include ${libSM}/include ${libXxf86vm}/include";
-
-  # Work around a bug in configure.
-  NIX_CFLAGS_COMPILE = "-DHAVE_X11_XLIB_H=1";
-
-  preConfigure = "
-    substituteInPlace configure --replace 'SEARCH_INCLUDE=' 'DUMMY_SEARCH_INCLUDE='
-    substituteInPlace configure --replace /usr /no-such-path
-  ";
-
-  postBuild = "(cd contrib/src && make)";
-  postInstall = "
-    (cd contrib/src && make install)
-    (cd $out/include && ln -s wx-*/* .)
-  ";
-
-  passthru = {inherit gtk compat22 compat24 unicode;};
-}
diff --git a/pkgs/development/tools/documentation/doxygen/default.nix b/pkgs/development/tools/documentation/doxygen/default.nix
index df51c51bde1..86f2e8cf2b2 100644
--- a/pkgs/development/tools/documentation/doxygen/default.nix
+++ b/pkgs/development/tools/documentation/doxygen/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, perl, flex, bison, qt }:
+{ stdenv, fetchurl, perl, flex, bison, qt4 }:
 
 let
   name = "doxygen-1.7.4";
@@ -15,18 +15,18 @@ stdenv.mkDerivation {
 
   buildInputs =
     [ perl flex bison ]
-    ++ stdenv.lib.optional (qt != null) qt;
+    ++ stdenv.lib.optional (qt4 != null) qt4;
 
   prefixKey = "--prefix ";
 
   configureFlags =
     [ "--dot dot" ]
-    ++ stdenv.lib.optional (qt != null) "--with-doxywizard";
+    ++ stdenv.lib.optional (qt4 != null) "--with-doxywizard";
 
-  preConfigure = stdenv.lib.optionalString (qt != null)
+  preConfigure = stdenv.lib.optionalString (qt4 != null)
     ''
-      echo "using QTDIR=${qt}..."
-      export QTDIR=${qt}
+      echo "using QTDIR=${qt4}..."
+      export QTDIR=${qt4}
     '';
 
   makeFlags = "MAN1DIR=share/man/man1";
@@ -47,6 +47,6 @@ stdenv.mkDerivation {
     '';
 
     maintainers = [stdenv.lib.maintainers.simons];
-    platforms = if (qt != null) then stdenv.lib.platforms.linux else stdenv.lib.platforms.unix;
+    platforms = if (qt4 != null) then stdenv.lib.platforms.linux else stdenv.lib.platforms.unix;
   };
 }
diff --git a/pkgs/development/tools/misc/elfutils/default.nix b/pkgs/development/tools/misc/elfutils/default.nix
index 79ba4a3732c..6254b955a23 100644
--- a/pkgs/development/tools/misc/elfutils/default.nix
+++ b/pkgs/development/tools/misc/elfutils/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, zlib, bzip2, xz, m4}:
+{stdenv, fetchurl, m4, zlib, bzip2, xz, bison, flex, gettext}:
 
 # TODO: Look at the hardcoded paths to kernel, modules etc.
 stdenv.mkDerivation rec {
@@ -13,9 +13,57 @@ stdenv.mkDerivation rec {
     sha256 = "19mlgxyzcwiv64ynj2cibgkiw4qkm3n37kizvy6555dsmlaqfybq";
   };
 
-  buildInputs = [ zlib bzip2 xz ];
+  patches = [
+    (fetchurl {
+      url = https://fedorahosted.org/releases/e/l/elfutils/0.152/elfutils-portability.patch;
+      sha256 = "0q318w4cvvqv9ps4xcwphapj1gl31isgjyya4y9sm72qj68n61p0";
+    }) ];
 
-  buildNativeInputs = [m4];
+  # We need bzip2 in NativeInputs because otherwise we can't unpack the src,
+  # as the host-bzip2 will be in the path.
+  buildNativeInputs = [m4 bison flex gettext bzip2];
+  buildInputs = [zlib bzip2 xz];
+
+  crossAttrs = {
+
+    /* Having bzip2 will harm, because anything using elfutils 
+       as buildInput cross-building, will not be able to run 'bzip2' */
+    propagatedBuildInputs = [ zlib.hostDrv ];
+
+    # This program does not cross-build fine. So I only cross-build some parts
+    # I need for the linux perf tool.
+    # On the awful cross-building:
+    # http://comments.gmane.org/gmane.comp.sysutils.elfutils.devel/2005
+    #
+    # I wrote this testing for the nanonote.
+    buildPhase = ''
+      pushd libebl
+      make
+      popd
+      pushd libelf
+      make
+      popd
+      pushd libdwfl
+      make
+      popd
+      pushd libdw
+      make
+      popd
+    '';
+
+    installPhase = ''
+      pushd libelf
+      make install
+      popd
+      pushd libdwfl
+      make install
+      popd
+      pushd libdw
+      make install
+      popd
+      cp version.h $out/include
+    '';
+  };
   
   dontAddDisableDepTrack = true;
 
diff --git a/pkgs/development/tools/misc/itstool/default.nix b/pkgs/development/tools/misc/itstool/default.nix
new file mode 100644
index 00000000000..2b85260e82a
--- /dev/null
+++ b/pkgs/development/tools/misc/itstool/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, python, libxml2Python }:
+
+stdenv.mkDerivation rec {
+  name = "itstool-1.1.1";
+
+  src = fetchurl {
+    url = "http://files.itstool.org/itstool/${name}.tar.bz2";
+    sha256 = "1jchgcgxvqwkhr61q0j08adl1k8hw86dzbl207gzmns9fa7vmzqg";
+  };
+
+  buildInputs = [ python ];
+  
+  patchPhase =
+    ''
+      sed -e '/import libxml2/i import sys\
+      sys.path.append("${libxml2Python}/lib/${python.libPrefix}/site-packages")' \
+      -i itstool.in
+    '';
+
+  meta = {
+    homepage = http://itstool.org/;
+    description = "XML to PO and back again";
+    license = stdenv.lib.licenses.gpl3Plus;
+    platforms = stdenv.lib.platforms.all;
+    maintainers = [ stdenv.lib.maintainers.urkud ];
+  };
+}
diff --git a/pkgs/development/tools/misc/xxdiff/3.2.nix b/pkgs/development/tools/misc/xxdiff/3.2.nix
deleted file mode 100644
index ddaa8e6849b..00000000000
--- a/pkgs/development/tools/misc/xxdiff/3.2.nix
+++ /dev/null
@@ -1,42 +0,0 @@
-args : with args; 
-rec {
-  src = fetchurl {
-    url = http://downloads.sourceforge.net/xxdiff/xxdiff-3.2.tar.bz2;
-    sha256 = "1f5j9l9n5j2ab0h3iwaz0mnz0y8h7ilc0dbcrfmaibk2njx38mcn";
-  };
-
-  buildInputs = [qt flex bison python pkgconfig makeWrapper 
-    libX11 libXext];
-  configureFlags = [];
-
-  /* doConfigure should be specified separately */
-  phaseNames = ["prepareMainBuild" "fixInc"
-    "deploy"
-    "installPythonPackage" 
-    (makeManyWrappers 
-      ''$out/bin/*'' 
-      ''--prefix PYTHONPATH : $(toPythonPath $out):$PYTHONPATH'')
-  ];
-
-  prepareMainBuild = fullDepEntry (''
-    cd src 
-    export QTDIR=${qt}/
-    make -f Makefile.bootstrap makefile
-  '') ["minInit" "doUnpack"];
-
-  fixInc = fullDepEntry(''
-    sed -e '1i\#include <stdlib.h>' -i resources.inline.h
-  '') ["minInit" "doUnpack"];
-
-  deploy = fullDepEntry (''
-    ensureDir $out/bin/
-    cp ../bin/xxdiff $out/bin
-    cd ..
-  '') ["minInit" "doMake" "defEnsureDir" "addInputs"];
-      
-  name = "xxdiff-3.2";
-  meta = {
-    description = "Interactive merge tool";
-    homepage = http://furius.ca/xxdiff/;
-  };
-}
diff --git a/pkgs/development/tools/misc/xxdiff/default.nix b/pkgs/development/tools/misc/xxdiff/default.nix
new file mode 100644
index 00000000000..f4847e1b42d
--- /dev/null
+++ b/pkgs/development/tools/misc/xxdiff/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchhg, qt4, flex, bison }:
+
+stdenv.mkDerivation {
+  name = "xxdiff-4.0-beta1-20110723";
+
+  src = fetchhg {
+    name = "xxdiff";
+    url = https://hg.furius.ca/public/xxdiff;
+    sha256 = "0ahx80vdf67vq9w0g66dx39y27gvz6v1aybqj9554n6vxvg1zk5n";
+  };
+
+  buildNativeInputs = [ flex bison qt4 ];
+
+  buildInputs = [ qt4 ];
+
+  QMAKE = "qmake";
+
+  configurePhase =
+    ''
+      cd src
+      make -f Makefile.bootstrap
+    '';
+
+  installPhase = "mkdir -pv $out/bin; cp -v ../bin/xxdiff $out/bin";
+}
diff --git a/pkgs/games/orbit/default.nix b/pkgs/games/orbit/default.nix
index f2e12f22912..65e394f60bb 100644
--- a/pkgs/games/orbit/default.nix
+++ b/pkgs/games/orbit/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, builderDefs, mesa, libXi, libXt, libXext, libX11
-, libXmu, freeglut, esound }:
+, libXmu, freeglut }:
 
 with builderDefs;
 	let localDefs = builderDefs.passthru.function (rec {
@@ -9,7 +9,7 @@ with builderDefs;
 			url = http://ftp.de.debian.org/debian/pool/main/s/space-orbit/space-orbit_1.01.orig.tar.gz;
 		};
 
-		buildInputs = [mesa libXi libXt libXext libX11 libXmu freeglut esound];
+		buildInputs = [mesa libXi libXt libXext libX11 libXmu freeglut];
 		configureFlags = [];
 		debianPatch = 
 		fetchurl {
@@ -20,7 +20,7 @@ with builderDefs;
 			gunzip < ${debianPatch} | patch -Np1
                         cd src
 			sed -e 's@/usr/share/games/orbit/@'$out'/dump/@g' -i *.c
-                        sed -e '/DIR=/d' -i Makefile 
+                        sed -e '/DIR=/d; s/-lesd//; s/-DESD//;' -i Makefile 
                         make 
                         ensureDir $out/bin
                         cp -r .. $out/dump
diff --git a/pkgs/misc/drivers/hplip/default.nix b/pkgs/misc/drivers/hplip/default.nix
index e73e6ff05fe..514655bd727 100644
--- a/pkgs/misc/drivers/hplip/default.nix
+++ b/pkgs/misc/drivers/hplip/default.nix
@@ -1,5 +1,5 @@
 {stdenv, fetchurl, cups, zlib, libjpeg, libusb, python, saneBackends, dbus
-, pkgconfig, polkit, qtSupport ? false, qt4
+, pkgconfig, polkit, qtSupport ? true, qt4
 }:
 
 stdenv.mkDerivation rec {
diff --git a/pkgs/misc/uboot/nanonote.nix b/pkgs/misc/uboot/nanonote.nix
index ef0bc190980..c45eb3f1d24 100644
--- a/pkgs/misc/uboot/nanonote.nix
+++ b/pkgs/misc/uboot/nanonote.nix
@@ -26,6 +26,8 @@ stdenv.mkDerivation {
     done
     chmod +w -R *
     sed -i -e 's/console=ttyS0,57600n8//' include/configs/qi_lb60.h
+    # Load more than 2MiB for the kernel
+    sed -i -e 's/0x200000;bootm/0x400000;bootm/' include/configs/qi_lb60.h
   '';
 
   # Remove the cross compiler prefix, and add reiserfs support
diff --git a/pkgs/os-specific/linux/fbterm/src-for-default.nix b/pkgs/os-specific/linux/fbterm/src-for-default.nix
index 39aaa2ca626..6705404ac9f 100644
--- a/pkgs/os-specific/linux/fbterm/src-for-default.nix
+++ b/pkgs/os-specific/linux/fbterm/src-for-default.nix
@@ -1,9 +1,9 @@
 rec {
-   version="1.5";
-   name="fbterm-1.5";
-   hash="05qzc6g9a79has3cy7dlw70n4pn13r552a2i1g4xy23acnpvvjsb";
+   version="1.7";
+   name="fbterm-1.7";
+   hash="19qjb2zb4gwr1jlybmalaw3y3zybvc8vliwj85dfabmill1k1afh";
    url="http://fbterm.googlecode.com/files/fbterm-${version}.tar.gz";
-   advertisedUrl="http://fbterm.googlecode.com/files/fbterm-1.5.tar.gz";
+   advertisedUrl="http://fbterm.googlecode.com/files/fbterm-1.7.tar.gz";
   
   
 }
diff --git a/pkgs/os-specific/linux/fbterm/stdenv.nix b/pkgs/os-specific/linux/fbterm/stdenv.nix
index 893dba11b60..e257a7d46eb 100644
--- a/pkgs/os-specific/linux/fbterm/stdenv.nix
+++ b/pkgs/os-specific/linux/fbterm/stdenv.nix
@@ -3,9 +3,9 @@
 { stdenv, fetchurl, gpm, freetype, fontconfig, pkgconfig, ncurses }:
 
 let
-  version="1.5";
-  name="fbterm-1.5";
-  hash="05qzc6g9a79has3cy7dlw70n4pn13r552a2i1g4xy23acnpvvjsb";
+  version="1.7";
+  name="fbterm-1.7";
+  hash="19qjb2zb4gwr1jlybmalaw3y3zybvc8vliwj85dfabmill1k1afh";
   url="http://fbterm.googlecode.com/files/fbterm-${version}.tar.gz";
 in
 
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
   buildNativeInputs = [ ncurses ];
   buildInputs = [ gpm freetype fontconfig pkgconfig ];
 
-  patchPhase = ''
+  preConfigure = ''
     sed -e '/ifdef SYS_signalfd/atypedef long long loff_t;' -i src/fbterm.cpp
 
     sed -e '/install-exec-hook:/,/^[^\t]/{d}; /.NOEXPORT/iinstall-exec-hook:\
diff --git a/pkgs/os-specific/linux/firmware/ralink/default.nix b/pkgs/os-specific/linux/firmware/ralink/default.nix
new file mode 100644
index 00000000000..23513d2bf88
--- /dev/null
+++ b/pkgs/os-specific/linux/firmware/ralink/default.nix
@@ -0,0 +1,33 @@
+{stdenv, fetchsvn }:
+
+# Upstream is http://git.kernel.org/?p=linux/kernel/git/firmware/linux-firmware.git
+
+stdenv.mkDerivation {
+  name = "ralink-fw-r17279";
+
+  src = fetchsvn {
+    url = svn://svn.debian.org/kernel/dists/trunk/firmware-nonfree/ralink;
+    rev = 17279;
+    sha256 = "06nc6w3xcrxzcai7gaf27k0v8k2xbq3imzpgc02rbxv5q5flxh65";
+  };
+
+  unpackPhase = "true";
+  
+  buildPhase = "true";
+
+  # Installation copies the firmware AND the license.  The license
+  # says: "Your rights to redistribute the Software shall be
+  # contingent upon your installation of this Agreement in its
+  # entirety in the same directory as the Software."
+  installPhase = ''
+    ensureDir $out
+    cp $src/*.bin $out
+    cp $src/LICENSE $out/ralink.LICENSE
+  '';
+  
+  meta = {
+    description = "Firmware for the Ralink wireless cards";
+    homepage = http://www.ralinktech.com/;
+    license = "non-free";
+  };
+}
diff --git a/pkgs/os-specific/linux/kernel/perf.nix b/pkgs/os-specific/linux/kernel/perf.nix
index 4b8583dcc95..ba32362b6e8 100644
--- a/pkgs/os-specific/linux/kernel/perf.nix
+++ b/pkgs/os-specific/linux/kernel/perf.nix
@@ -1,4 +1,5 @@
-{ stdenv, kernel, elfutils }:
+{ stdenv, kernel, elfutils, python, perl, newt, slang, asciidoc, xmlto
+, docbook_xsl, docbook_xml_dtd_45, libxslt }:
 
 stdenv.mkDerivation {
   name = "perf-linux-${kernel.version}";
@@ -7,10 +8,25 @@ stdenv.mkDerivation {
 
   preConfigure = ''
     cd tools/perf
-    export makeFlags="DESTDIR=$out"
+    sed -i s,/usr/include/elfutils,$elfutils/include/elfutils, Makefile
+    export makeFlags="DESTDIR=$out $makeFlags"
   '';
 
-  buildInputs = [ elfutils ];
+  # perf refers both to newt and slang
+  buildNativeInputs = [ asciidoc xmlto docbook_xsl docbook_xml_dtd_45 libxslt ];
+  buildInputs = [ elfutils python perl newt slang ];
+
+  installFlags = "install install-man ASCIIDOC8=1";
+
+  inherit elfutils;
+
+  crossAttrs = {
+    /* I don't want cross-python or cross-perl -
+       I don't know if cross-python even works */
+    propagatedBuildInputs = [ elfutils.hostDrv newt.hostDrv ];
+    makeFlags = "CROSS_COMPILE=${stdenv.cross.config}-";
+    elfutils = elfutils.hostDrv;
+  };
 
   meta = {
     homepage = https://perf.wiki.kernel.org/;
diff --git a/pkgs/os-specific/linux/pam_usb/default.nix b/pkgs/os-specific/linux/pam_usb/default.nix
index 05137acc043..d26617d8e66 100644
--- a/pkgs/os-specific/linux/pam_usb/default.nix
+++ b/pkgs/os-specific/linux/pam_usb/default.nix
@@ -5,12 +5,12 @@ let
   pumountBin = useSetUID pmount "/bin/pumount";
 in
 
-stdenv.mkDerivation {
-  name = "pam_usb-0.4.2";
+stdenv.mkDerivation rec {
+  name = "pam_usb-0.5.0";
 
   src = fetchurl {
-    url = mirror://sourceforge/pamusb/pam_usb/pam_usb-0.4.2/pam_usb-0.4.2.tar.gz;
-    sha256 = "736afced7482c7c5d47127285f7defe0a304a6136a0090588fa8698d385ba202";
+    url = "mirror://sourceforge/pamusb/${name}.tar.gz";
+    sha256 = "1g1w0s9d8mfld8abrn405ll5grv3xgs0b0hsganrz6qafdq9j7q1";
   };
 
   buildInputs = [
diff --git a/pkgs/os-specific/linux/pmount/default.nix b/pkgs/os-specific/linux/pmount/default.nix
index af2078b676a..4d555f59c37 100644
--- a/pkgs/os-specific/linux/pmount/default.nix
+++ b/pkgs/os-specific/linux/pmount/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, cryptsetup, dbus, dbus_glib, hal, intltool, ntfs3g, utillinux
+{ stdenv, fetchurl, cryptsetup, dbus, dbus_glib, intltool, ntfs3g, utillinux
 , mediaDir ? "/media/"
 , lockDir ? "/var/lock/pmount"
 , whiteList ? "/etc/pmount.allow"
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
     sha256 = "db38fc290b710e8e9e9d442da2fb627d41e13b3ee80326c15cc2595ba00ea036";
   };
 
-  buildInputs = [ hal intltool utillinux ];
+  buildInputs = [ intltool utillinux ];
 
   configureFlags = ""
   + " --with-media-dir=${mediaDir}"
@@ -23,9 +23,7 @@ stdenv.mkDerivation rec {
   + " --with-whitelist=${whiteList}"
   + " --with-mount-prog=${utillinux}/bin/mount"
   + " --with-umount-prog=${utillinux}/bin/umount"
-  + " --with-cryptsetup=${cryptsetup}/sbin/cryptsetup"
-  + " --with-mount-ntfs3g=${ntfs3g}/sbin/mount.ntfs-3g"
-  + " --enable-hal";
+  + " --with-mount-ntfs3g=${ntfs3g}/sbin/mount.ntfs-3g";
 
   postConfigure = ''
     # etc/Mafile.am is hardcoded and it does not respect the --prefix option.
diff --git a/pkgs/tools/filesystems/mtdutils/default.nix b/pkgs/tools/filesystems/mtdutils/default.nix
index f2ce1b452cd..9e7e3a16e01 100644
--- a/pkgs/tools/filesystems/mtdutils/default.nix
+++ b/pkgs/tools/filesystems/mtdutils/default.nix
@@ -21,6 +21,10 @@ stdenv.mkDerivation {
 
   buildInputs = [ libuuid lzo zlib acl ];
 
+  crossAttrs = {
+    makeFlags = "CC=${stdenv.cross.config}-gcc";
+  };
+
   meta = {
     description = "Tools for MTD filesystems";
     license = "GPLv2+";
diff --git a/pkgs/tools/graphics/qrencode/default.nix b/pkgs/tools/graphics/qrencode/default.nix
index ae836ec086b..866b121f76b 100644
--- a/pkgs/tools/graphics/qrencode/default.nix
+++ b/pkgs/tools/graphics/qrencode/default.nix
@@ -1,27 +1,20 @@
-args :  
-let 
-  lib = args.lib;
-  fetchurl = args.fetchurl;
+{ stdenv, fetchurl, libpng, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  name = "qrencode-3.2.0";
 
-  version = lib.attrByPath ["version"] "3.0.3" args; 
-  buildInputs = with args; [
-    libpng pkgconfig
-  ];
-in
-rec {
   src = fetchurl {
-    url = "http://megaui.net/fukuchi/works/qrencode/qrencode-${version}.tar.gz";
-    sha256 = "1f5nnbk016casqfprdli50ssv08l0gj5zrd0q4rdvzfwqy67i7vm";
+    url = "${meta.homepage}/${name}.tar.bz2";
+    sha256 = "13q6cz2lif8d7y95f8sgfqaxc1qr0sz9nl2xh71lfmx7v5ybri03";
   };
 
-  inherit buildInputs;
-  configureFlags = [];
+  buildInputs = [ libpng ];
+  buildNativeInputs = [ pkgconfig ];
 
-  /* doConfigure should be specified separately */
-  phaseNames = ["doConfigure" "doMakeInstall"];
-      
-  name = "qrencode-" + version;
   meta = {
+    homepage = http://fukuchi.org/works/qrencode/;
     description = "QR code encoder";
+    platforms = stdenv.lib.platforms.all;
+    maintainers = [ stdenv.lib.maintainers.urkud ];
   };
 }
diff --git a/pkgs/tools/misc/xburst-tools/default.nix b/pkgs/tools/misc/xburst-tools/default.nix
index 63f5470aa9e..410c0ab93a1 100644
--- a/pkgs/tools/misc/xburst-tools/default.nix
+++ b/pkgs/tools/misc/xburst-tools/default.nix
@@ -2,15 +2,15 @@
 , gccCross ? null }:
 
 let
-  version = "2011-03-08";
+  version = "2011-12-26";
 in
 stdenv.mkDerivation {
   name = "xburst-tools-${version}";
 
   src = fetchgit {
     url = git://projects.qi-hardware.com/xburst-tools.git;
-    rev = "a3a38cabf1e854667d90f49f0b4487e28974a3a6";
-    sha256 = "ac5671708cf9d18de79207530335f6781fa4bedf55288069786f4ecb971c4658";
+    rev = "c71ce8e15db25fe49ce8702917cb17720882e341";
+    sha256 = "abe4c4591183f2bc5ca6363451d1cd7d966c080b4f5bfb0fedf7e9a4f70267a4";
   };
 
   preConfigure = ''
diff --git a/pkgs/tools/networking/modemmanager/default.nix b/pkgs/tools/networking/modemmanager/default.nix
index c5164d62770..b17894edfab 100644
--- a/pkgs/tools/networking/modemmanager/default.nix
+++ b/pkgs/tools/networking/modemmanager/default.nix
@@ -18,6 +18,6 @@ stdenv.mkDerivation rec {
   meta = {
     description = "WWAN modem manager, part of NetworkManager";
     maintainers = [ stdenv.lib.maintainers.urkud ];
-    platforms = [ stdenv.lib.platforms.linux ];
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index f6742c4eda2..27931d56b04 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -2904,13 +2904,9 @@ let
     inherit python pil makeWrapper;
   };
 
-  doxygen = lowPrio (callPackage ../development/tools/documentation/doxygen {
-    qt = null;
-  });
+  doxygen = lowPrio (doxygen_gui.override { qt4 = null; });
 
-  doxygen_gui = doxygen.override {
-    qt = qt4;
-  };
+  doxygen_gui = callPackage ../development/tools/documentation/doxygen { };
 
   eggdbus = callPackage ../development/tools/misc/eggdbus { };
 
@@ -2981,6 +2977,8 @@ let
 
   ired = callPackage ../development/tools/analysis/radare/ired.nix { };
 
+  itstool = callPackage ../development/tools/misc/itstool { };
+
   jam = callPackage ../development/tools/build-managers/jam { };
 
   jikespg = callPackage ../development/tools/parsing/jikespg { };
@@ -3094,11 +3092,7 @@ let
 
   valkyrie = callPackage ../development/tools/analysis/valkyrie { };
 
-  xxdiff = builderDefsPackage (import ../development/tools/misc/xxdiff/3.2.nix) {
-    qt = qt3;
-    inherit pkgconfig makeWrapper bison python flex;
-    inherit (xlibs) libXext libX11;
-  };
+  xxdiff = callPackage ../development/tools/misc/xxdiff { };
 
   yacc = bison;
 
@@ -3630,27 +3624,13 @@ let
 
   });
 
-  gtkLibs216 = recurseIntoAttrs (let callPackage = newScope pkgs.gtkLibs216; in {
-
-    glib = callPackage ../development/libraries/glib/2.20.x.nix { };
-
-    atk = callPackage ../development/libraries/atk/1.24.x.nix { };
-
-    cairo = callPackage ../development/libraries/cairo { };
-
-    pango = callPackage ../development/libraries/pango/1.24.x.nix { };
-
-    gtk = callPackage ../development/libraries/gtk+/2.16.x.nix { };
-
-  });
-
   gtkLibs224 = recurseIntoAttrs (let callPackage = pkgs.newScope pkgs.gtkLibs224; in {
 
     glib = callPackage ../development/libraries/glib/2.28.x.nix { };
 
     glibmm = callPackage ../development/libraries/glibmm/2.28.x.nix { };
 
-    atk = callPackage ../development/libraries/atk/1.32.x.nix { };
+    atk = callPackage ../development/libraries/atk/2.2.x.nix { };
 
     atkmm = callPackage ../development/libraries/atkmm/2.22.x.nix { };
 
@@ -3687,6 +3667,8 @@ let
 
     gtk = callPackage ../development/libraries/gtk+/3.2.x.nix { };
 
+    gtk2 = callPackage ../development/libraries/gtk+/2.24.x.nix { };
+
     # Let hydra build gtk-3.x but do not show this to users yet
     recurseForRelease = true;
   };
@@ -4179,6 +4161,10 @@ let
     inherit (gnome) glib;
   };
 
+  libwpd_08 = callPackage ../development/libraries/libwpd/0.8.nix {
+    inherit (gnome) glib;
+  };
+
   libwpg = callPackage ../development/libraries/libwpg { };
 
   libx86 = builderDefsPackage ../development/libraries/libx86 {};
@@ -4273,9 +4259,7 @@ let
 
   mkvtoolnix = callPackage ../applications/video/mkvtoolnix { };
 
-  mlt = callPackage ../development/libraries/mlt {
-    qt = qt4;
-  };
+  mlt = callPackage ../development/libraries/mlt { };
 
   libmpeg2 = callPackage ../development/libraries/libmpeg2 { };
 
@@ -4325,6 +4309,8 @@ let
 
   nettle = callPackage ../development/libraries/nettle { };
 
+  newt = callPackage ../development/libraries/newt { };
+
   nspr = callPackage ../development/libraries/nspr { };
 
   nss = callPackage ../development/libraries/nss { };
@@ -4409,7 +4395,7 @@ let
 
   phonon_backend_gstreamer = callPackage ../development/libraries/phonon-backend-gstreamer { };
 
-  phonon_backend_vlc = newScope pkgs.kde4 ../development/libraries/phonon-backend-vlc { };
+  phonon_backend_vlc = callPackage ../development/libraries/phonon-backend-vlc { };
 
   physfs = callPackage ../development/libraries/physfs { };
 
@@ -4462,11 +4448,6 @@ let
 
   qt3 = callPackage ../development/libraries/qt-3 {
     openglSupport = mesaSupported;
-    mysqlSupport = getConfig ["qt" "mysql"] false;
-  };
-
-  qt3mysql = qt3.override {
-    mysqlSupport = true;
   };
 
   qt4 = pkgs.kde4.qt4;
@@ -4694,10 +4675,6 @@ let
 
   wxGTK = wxGTK28;
 
-  wxGTK26 = callPackage ../development/libraries/wxGTK-2.6 {
-    inherit (gtkLibs216) gtk;
-  };
-
   wxGTK28 = callPackage ../development/libraries/wxGTK-2.8 {
     inherit (gtkLibs) gtk;
   };
@@ -6031,6 +6008,8 @@ let
 
   rfkill = callPackage ../os-specific/linux/rfkill { };
 
+  ralink_fw = callPackage ../os-specific/linux/firmware/ralink { };
+
   rt2860fw = callPackage ../os-specific/linux/firmware/rt2860 { };
 
   rt2870fw = callPackage ../os-specific/linux/firmware/rt2870 { };
@@ -6217,6 +6196,8 @@ let
 
   cacert = callPackage ../data/misc/cacert { };
 
+  cantarell_fonts = callPackage ../data/fonts/cantarell-fonts { };
+
   corefonts = callPackage ../data/fonts/corefonts { };
 
   wrapFonts = paths : ((import ../data/fonts/fontWrap) {
@@ -6866,9 +6847,7 @@ let
     opencv = opencv_2_1;
   };
 
-  qrencode = builderDefsPackage (import ../tools/graphics/qrencode) {
-    inherit libpng pkgconfig;
-  };
+  qrencode = callPackage ../tools/graphics/qrencode { };
 
   gecko_mediaplayer = callPackage ../applications/networking/browsers/mozilla-plugins/gecko-mediaplayer {
     inherit (gnome) GConf;
@@ -7166,9 +7145,7 @@ let
   mupdf = callPackage ../applications/misc/mupdf {
   };
 
-  mythtv = callPackage ../applications/video/mythtv {
-    qt3 = qt3mysql;
-  };
+  mythtv = callPackage ../applications/video/mythtv { };
 
   nano = callPackage ../applications/editors/nano { };
 
@@ -7206,6 +7183,7 @@ let
     inherit (perlPackages) ArchiveZip CompressZlib;
     inherit (gnome) GConf ORBit2;
     neon = neon029;
+    libwpd = libwpd_08;
   };
 
   go_oo = callPackage ../applications/office/openoffice/go-oo.nix {
@@ -7283,7 +7261,9 @@ let
 
   pythonmagick = callPackage ../applications/graphics/PythonMagick { };
 
-  qemu = callPackage ../applications/virtualization/qemu/0.13.nix { };
+  qemu = callPackage ../applications/virtualization/qemu/0.15.nix { };
+
+  qemu_0_13 = callPackage ../applications/virtualization/qemu/0.13.nix { };
 
   qemuSVN = callPackage ../applications/virtualization/qemu/svn-6642.nix { };
 
@@ -7448,8 +7428,6 @@ let
   teamspeak_client = callPackage ../applications/networking/instant-messengers/teamspeak/client.nix { };
 
   taskjuggler = callPackage ../applications/misc/taskjuggler {
-    qt = qt3;
-
     # KDE support is not working yet.
     inherit (kde3) kdelibs kdebase;
     withKde = getConfig [ "taskJuggler" "kde" ] false;
@@ -7488,7 +7466,6 @@ let
   tribler = callPackage ../applications/networking/p2p/tribler { };
 
   twinkle = callPackage ../applications/networking/twinkle {
-    qt = qt3;
     boost = boostFull;
     ccrtp = ccrtp_1_8;
     libzrtpcpp = libzrtpcpp_1_6;
@@ -7510,9 +7487,7 @@ let
     inherit (gnome) glib_networking libsoup;
   };
 
-  valknut = callPackage ../applications/networking/p2p/valknut {
-    qt = qt3;
-  };
+  valknut = callPackage ../applications/networking/p2p/valknut { };
 
   vdpauinfo = callPackage ../tools/X11/vdpauinfo { };
 
@@ -7628,9 +7603,7 @@ let
     inherit gsl aalib zlib libpng intltool gettext perl;
   };
 
-  xara = callPackage ../applications/graphics/xara {
-    wxGTK = wxGTK26;
-  };
+  xara = callPackage ../applications/graphics/xara { };
 
   xawtv = callPackage ../applications/video/xawtv { };
 
@@ -7716,9 +7689,7 @@ let
     inherit (gnome) scrollkeeper libglade;
   };
 
-  yate = callPackage ../applications/misc/yate {
-    qt = qt4;
-  };
+  yate = callPackage ../applications/misc/yate { };
 
   qgis = callPackage ../applications/misc/qgis {};
 
@@ -7902,8 +7873,7 @@ let
   soi = callPackage ../games/soi {};
 
   # You still can override by passing more arguments.
-  spaceOrbit = callPackage ../games/orbit {
-    inherit (gnome) esound;  };
+  spaceOrbit = callPackage ../games/orbit { };
 
   spring = callPackage ../games/spring { };
 
@@ -8025,13 +7995,10 @@ let
 
     kdelibs = callPackage ../desktops/kde-3/kdelibs {
       stdenv = overrideGCC stdenv gcc43;
-      qt = qt3;
     };
 
     arts = callPackage ../development/libraries/arts {
-      qt = qt3;
-      inherit (gnome) glib;
-      inherit (kde3) kdelibs;
+      inherit (pkgs.kde3) kdelibs;
     };
 
     k3b = callPackage ../applications/misc/k3b/1.0.nix {
@@ -8044,21 +8011,17 @@ let
     };
 
     kphone = callPackage ../applications/networking/kphone {
-      qt = qt3;
       stdenv = overrideGCC stdenv gcc42; # I'm to lazy to clean up header files
     };
 
-    kuickshow = callPackage ../applications/graphics/kuickshow {
-      inherit (kde3) arts kdelibs;
-      qt = qt3;
-    };
-
   };
 
   kde4 = recurseIntoAttrs pkgs.kde47;
 
   kde47 = kdePackagesFor pkgs.kde47 "4.7";
 
+  kde48 = kdePackagesFor pkgs.kde48 "4.8";
+
   kdePackagesFor = self: version:
     let callPackageOrig = callPackage; in
     let
@@ -8129,6 +8092,8 @@ let
 
       ktorrent = callPackage ../applications/networking/p2p/ktorrent { };
 
+      kuickshow = callPackage ../applications/graphics/kuickshow { };
+
       libktorrent = callPackage ../development/libraries/libktorrent { };
 
       libkvkontakte = callPackage ../development/libraries/libkvkontakte { };
@@ -8366,9 +8331,7 @@ let
 
   tulip = callPackage ../applications/science/misc/tulip { };
 
-  vite = callPackage ../applications/science/misc/vite {
-    qt = qt4;
-  };
+  vite = callPackage ../applications/science/misc/vite { };
 
   ### MISC
 
@@ -8445,9 +8408,7 @@ let
 
   gxemul = callPackage ../misc/gxemul { };
 
-  hplip = callPackage ../misc/drivers/hplip {
-    qtSupport = true;
-  };
+  hplip = callPackage ../misc/drivers/hplip { };
 
   # using the new configuration style proposal which is unstable
   jack1d = callPackage ../misc/jackaudio/jack1.nix { };
diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix
index b4fdbe46329..f123b119340 100644
--- a/pkgs/top-level/haskell-packages.nix
+++ b/pkgs/top-level/haskell-packages.nix
@@ -915,7 +915,9 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   logfloat = callPackage ../development/libraries/haskell/logfloat {};
 
-  maude = callPackage ../development/libraries/haskell/maude {};
+  maude = callPackage ../development/libraries/haskell/maude {
+    parsec = self.parsec3;
+  };
 
   MaybeT = callPackage ../development/libraries/haskell/MaybeT {};
 
@@ -1315,9 +1317,7 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   uniqueid = callPackage ../development/libraries/haskell/uniqueid {};
 
-  unixCompat_0_2_2_1 = callPackage ../development/libraries/haskell/unix-compat/0.2.2.1.nix {};
-  unixCompat_0_3 = callPackage ../development/libraries/haskell/unix-compat/0.3.nix {};
-  unixCompat = self.unixCompat_0_2_2_1;
+  unixCompat = callPackage ../development/libraries/haskell/unix-compat {};
 
   unorderedContainers = callPackage ../development/libraries/haskell/unordered-containers {};
 
diff --git a/pkgs/top-level/release-cross.nix b/pkgs/top-level/release-cross.nix
index 37af6543721..3e3cb3e3229 100644
--- a/pkgs/top-level/release-cross.nix
+++ b/pkgs/top-level/release-cross.nix
@@ -203,6 +203,7 @@ in {
     libunistring.hostDrv = nativePlatforms;
     lsh.hostDrv = nativePlatforms;
     nixUnstable.hostDrv = nativePlatforms;
+    openssl.hostDrv = nativePlatforms;            # dependency of Nix
     patch.hostDrv = nativePlatforms;
     zile.hostDrv = nativePlatforms;
   };