summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorVladimír Čunát <vcunat@gmail.com>2013-04-24 06:29:09 +0000
committerVladimír Čunát <vcunat@gmail.com>2013-04-24 06:29:09 +0000
commitbde20f3e881049c9d019eb34c07d6194b20b0042 (patch)
treef24782e55ca68a214d0fe7585097d97a6aa687dd /pkgs
parent6a29a56c1277d80aa65e063f34a179c847e6d8b4 (diff)
parent50d66b945ee5aceae2bbf2eb791487e18ac9d374 (diff)
downloadnixlib-bde20f3e881049c9d019eb34c07d6194b20b0042.tar
nixlib-bde20f3e881049c9d019eb34c07d6194b20b0042.tar.gz
nixlib-bde20f3e881049c9d019eb34c07d6194b20b0042.tar.bz2
nixlib-bde20f3e881049c9d019eb34c07d6194b20b0042.tar.lz
nixlib-bde20f3e881049c9d019eb34c07d6194b20b0042.tar.xz
nixlib-bde20f3e881049c9d019eb34c07d6194b20b0042.tar.zst
nixlib-bde20f3e881049c9d019eb34c07d6194b20b0042.zip
Merge branch 'master' into x-updates
Conflicts (just taken x-updates):
	pkgs/servers/x11/xorg/overrides.nix
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/audio/distrho/default.nix4
-rw-r--r--pkgs/applications/editors/eclipse/default.nix16
-rw-r--r--pkgs/applications/editors/emacs-modes/magit/default.nix11
-rw-r--r--pkgs/applications/misc/gphoto2/default.nix10
-rw-r--r--pkgs/applications/misc/gphoto2/gphotofs.nix10
-rw-r--r--pkgs/applications/misc/gphoto2/src-info-for-gphotofs.nix8
-rw-r--r--pkgs/applications/networking/p2p/freenet/default.nix1
-rw-r--r--pkgs/applications/office/ledger/3.0.nix30
-rw-r--r--pkgs/applications/science/logic/eprover/default.nix8
-rw-r--r--pkgs/applications/search/doodle/default.nix20
-rw-r--r--pkgs/applications/version-management/git-and-tools/default.nix2
-rw-r--r--pkgs/applications/version-management/git-and-tools/git/default.nix24
-rw-r--r--pkgs/applications/version-management/git-and-tools/git/symlinks-in-bin.patch13
-rw-r--r--pkgs/build-support/cabal/default.nix12
-rw-r--r--pkgs/build-support/release/nix-build.nix4
-rw-r--r--pkgs/desktops/kde-4.10/applications/kate.nix11
-rw-r--r--pkgs/desktops/kde-4.10/applications/konsole.nix11
-rw-r--r--pkgs/desktops/kde-4.10/default.nix72
-rw-r--r--pkgs/desktops/kde-4.10/files/kde-wallpapers-buildsystem.patch17
-rw-r--r--pkgs/desktops/kde-4.10/files/polkit-install.patch12
-rw-r--r--pkgs/desktops/kde-4.10/kactivities.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kde-base-artwork.nix14
-rw-r--r--pkgs/desktops/kde-4.10/kde-baseapps/kde-baseapps.nix11
-rw-r--r--pkgs/desktops/kde-4.10/kde-package/4.10.2.nix399
-rw-r--r--pkgs/desktops/kde-4.10/kde-package/default.nix127
-rwxr-xr-xpkgs/desktops/kde-4.10/kde-package/kde-manifest.sh146
-rw-r--r--pkgs/desktops/kde-4.10/kde-package/kde-submodules.xslt22
-rw-r--r--pkgs/desktops/kde-4.10/kde-runtime.nix21
-rw-r--r--pkgs/desktops/kde-4.10/kde-wallpapers.nix17
-rw-r--r--pkgs/desktops/kde-4.10/kde-workspace.nix38
-rw-r--r--pkgs/desktops/kde-4.10/kdeaccessibility/jovie.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdeaccessibility/kaccessible.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdeaccessibility/kmag.nix10
-rw-r--r--pkgs/desktops/kde-4.10/kdeaccessibility/kmousetool.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdeaccessibility/kmouth.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdeadmin/kcron.nix5
-rw-r--r--pkgs/desktops/kde-4.10/kdeadmin/ksystemlog.nix5
-rw-r--r--pkgs/desktops/kde-4.10/kdeadmin/kuser.nix5
-rw-r--r--pkgs/desktops/kde-4.10/kdeartwork/ColorSchemes.nix11
-rw-r--r--pkgs/desktops/kde-4.10/kdeartwork/FindXscreensaver.cmake73
-rw-r--r--pkgs/desktops/kde-4.10/kdeartwork/HighResolutionWallpapers.nix11
-rw-r--r--pkgs/desktops/kde-4.10/kdeartwork/IconThemes.nix13
-rw-r--r--pkgs/desktops/kde-4.10/kdeartwork/WeatherWallpapers.nix11
-rw-r--r--pkgs/desktops/kde-4.10/kdeartwork/desktopthemes.nix11
-rw-r--r--pkgs/desktops/kde-4.10/kdeartwork/emoticons.nix11
-rw-r--r--pkgs/desktops/kde-4.10/kdeartwork/kscreensaver.nix15
-rw-r--r--pkgs/desktops/kde-4.10/kdeartwork/kwin-styles.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdeartwork/sounds.nix11
-rw-r--r--pkgs/desktops/kde-4.10/kdeartwork/styles.nix11
-rw-r--r--pkgs/desktops/kde-4.10/kdeartwork/wallpapers.nix11
-rw-r--r--pkgs/desktops/kde-4.10/kdebindings/perlqt-include-smokeqt.patch19
-rw-r--r--pkgs/desktops/kde-4.10/kdebindings/perlqt-rewrite-FindPerlMore.patch118
-rw-r--r--pkgs/desktops/kde-4.10/kdebindings/perlqt-use-site-arch-install-dir.patch454
-rw-r--r--pkgs/desktops/kde-4.10/kdebindings/perlqt.nix17
-rw-r--r--pkgs/desktops/kde-4.10/kdebindings/pykde4-hardcode-lib-python.patch18
-rw-r--r--pkgs/desktops/kde-4.10/kdebindings/pykde4.nix32
-rw-r--r--pkgs/desktops/kde-4.10/kdebindings/qtruby-include-smokeqt.patch13
-rw-r--r--pkgs/desktops/kde-4.10/kdebindings/qtruby-install-prefix.patch15
-rw-r--r--pkgs/desktops/kde-4.10/kdebindings/qtruby.nix17
-rw-r--r--pkgs/desktops/kde-4.10/kdebindings/smokegen-nix.patch46
-rw-r--r--pkgs/desktops/kde-4.10/kdebindings/smokegen.nix13
-rw-r--r--pkgs/desktops/kde-4.10/kdebindings/smokekde.nix16
-rw-r--r--pkgs/desktops/kde-4.10/kdebindings/smokeqt.nix13
-rw-r--r--pkgs/desktops/kde-4.10/kdeedu/analitza.nix8
-rw-r--r--pkgs/desktops/kde-4.10/kdeedu/blinken.nix8
-rw-r--r--pkgs/desktops/kde-4.10/kdeedu/cantor.nix11
-rw-r--r--pkgs/desktops/kde-4.10/kdeedu/kalgebra.nix8
-rw-r--r--pkgs/desktops/kde-4.10/kdeedu/kalzium.nix11
-rw-r--r--pkgs/desktops/kde-4.10/kdeedu/kanagram.nix8
-rw-r--r--pkgs/desktops/kde-4.10/kdeedu/kbruch.nix8
-rw-r--r--pkgs/desktops/kde-4.10/kdeedu/kgeography.nix8
-rw-r--r--pkgs/desktops/kde-4.10/kdeedu/khangman.nix8
-rw-r--r--pkgs/desktops/kde-4.10/kdeedu/kig.nix12
-rw-r--r--pkgs/desktops/kde-4.10/kdeedu/kiten.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdeedu/klettres.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdeedu/kmplot.nix12
-rw-r--r--pkgs/desktops/kde-4.10/kdeedu/kstars.nix10
-rw-r--r--pkgs/desktops/kde-4.10/kdeedu/ktouch.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdeedu/kturtle.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdeedu/kwordquiz.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdeedu/libkdeedu.nix8
-rw-r--r--pkgs/desktops/kde-4.10/kdeedu/marble.nix10
-rw-r--r--pkgs/desktops/kde-4.10/kdeedu/pairs.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdeedu/parley.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdeedu/rocs.nix14
-rw-r--r--pkgs/desktops/kde-4.10/kdeedu/step.nix12
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/bomber.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/bovo.nix8
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/granatier.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/kajongg.nix13
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/kapman.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/katomic.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/kblackbox.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/kblocks.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/kbounce.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/kbreakout.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/kdiamond.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/kfourinline.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/kgoldrunner.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/kigo.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/killbots.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/kiriki.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/kjumpingcube.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/klickety.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/klines.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/kmahjongg.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/kmines.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/knavalbattle.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/knetwalk.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/kolf.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/kollision.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/konquest.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/kpat.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/kreversi.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/kshisen.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/ksirk.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/ksnakeduel.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/kspaceduel.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/ksquares.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/ksudoku.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/ktuberling.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/kubrick.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/libkdegames.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/libkmahjongg.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/lskat.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/palapeli.nix8
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/picmi.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegraphics/gwenview.nix15
-rw-r--r--pkgs/desktops/kde-4.10/kdegraphics/kamera.nix10
-rw-r--r--pkgs/desktops/kde-4.10/kdegraphics/kcolorchooser.nix10
-rw-r--r--pkgs/desktops/kde-4.10/kdegraphics/kdegraphics-mobipocket.nix10
-rw-r--r--pkgs/desktops/kde-4.10/kdegraphics/kdegraphics-strigi-analyzer.nix10
-rw-r--r--pkgs/desktops/kde-4.10/kdegraphics/kdegraphics-thumbnailers.nix10
-rw-r--r--pkgs/desktops/kde-4.10/kdegraphics/kgamma.nix10
-rw-r--r--pkgs/desktops/kde-4.10/kdegraphics/kolourpaint.nix10
-rw-r--r--pkgs/desktops/kde-4.10/kdegraphics/kruler.nix10
-rw-r--r--pkgs/desktops/kde-4.10/kdegraphics/ksaneplugin.nix10
-rw-r--r--pkgs/desktops/kde-4.10/kdegraphics/ksnapshot.nix10
-rw-r--r--pkgs/desktops/kde-4.10/kdegraphics/libkdcraw.nix10
-rw-r--r--pkgs/desktops/kde-4.10/kdegraphics/libkexiv2.nix10
-rw-r--r--pkgs/desktops/kde-4.10/kdegraphics/libkipi.nix10
-rw-r--r--pkgs/desktops/kde-4.10/kdegraphics/libksane.nix10
-rw-r--r--pkgs/desktops/kde-4.10/kdegraphics/okular.nix17
-rw-r--r--pkgs/desktops/kde-4.10/kdegraphics/svgpart.nix10
-rw-r--r--pkgs/desktops/kde-4.10/kdelibs/kdelibs.nix64
-rw-r--r--pkgs/desktops/kde-4.10/kdelibs/nepomuk-core.nix11
-rw-r--r--pkgs/desktops/kde-4.10/kdelibs/nepomuk-widgets.nix11
-rw-r--r--pkgs/desktops/kde-4.10/kdemultimedia/audiocd-kio.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdemultimedia/dragon.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdemultimedia/ffmpegthumbs.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdemultimedia/juk.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdemultimedia/kmix.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdemultimedia/kscd.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdemultimedia/libkcddb.nix8
-rw-r--r--pkgs/desktops/kde-4.10/kdemultimedia/libkcompactdisc.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdemultimedia/mplayerthumbs.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdenetwork/FindmsiLBC.cmake19
-rw-r--r--pkgs/desktops/kde-4.10/kdenetwork/filesharing.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdenetwork/kdenetwork.patch24
-rw-r--r--pkgs/desktops/kde-4.10/kdenetwork/kdnssd.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdenetwork/kfile-plugins.nix11
-rw-r--r--pkgs/desktops/kde-4.10/kdenetwork/kget.nix17
-rw-r--r--pkgs/desktops/kde-4.10/kdenetwork/kopete.nix28
-rw-r--r--pkgs/desktops/kde-4.10/kdenetwork/kppp.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdenetwork/krdc.nix8
-rw-r--r--pkgs/desktops/kde-4.10/kdenetwork/krfb.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdepim-runtime.nix14
-rw-r--r--pkgs/desktops/kde-4.10/kdepim.nix22
-rw-r--r--pkgs/desktops/kde-4.10/kdepimlibs.nix17
-rw-r--r--pkgs/desktops/kde-4.10/kdeplasma-addons.nix22
-rw-r--r--pkgs/desktops/kde-4.10/kdesdk/cervisia.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdesdk/dolphin-plugins-bazaar.nix11
-rw-r--r--pkgs/desktops/kde-4.10/kdesdk/dolphin-plugins-git.nix11
-rw-r--r--pkgs/desktops/kde-4.10/kdesdk/dolphin-plugins-hg.nix11
-rw-r--r--pkgs/desktops/kde-4.10/kdesdk/dolphin-plugins-svn.nix11
-rw-r--r--pkgs/desktops/kde-4.10/kdesdk/find-svn.patch57
-rw-r--r--pkgs/desktops/kde-4.10/kdesdk/kapptemplate.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdesdk/kcachegrind.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdesdk/kde-dev-scripts.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdesdk/kde-dev-utils.nix11
-rw-r--r--pkgs/desktops/kde-4.10/kdesdk/kdesdk-strigi-analyzers.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdesdk/kdesdk-thumbnailers.nix10
-rw-r--r--pkgs/desktops/kde-4.10/kdesdk/kioslave-perldoc.nix12
-rw-r--r--pkgs/desktops/kde-4.10/kdesdk/kioslave-svn.nix12
-rw-r--r--pkgs/desktops/kde-4.10/kdesdk/kompare.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdesdk/lokalize.nix13
-rw-r--r--pkgs/desktops/kde-4.10/kdesdk/okteta.nix13
-rw-r--r--pkgs/desktops/kde-4.10/kdesdk/poxml.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdesdk/umbrello.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdetoys/amor.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdetoys/kteatime.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdetoys/ktux.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdeutils/ark.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdeutils/filelight.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdeutils/kcalc.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdeutils/kcharselect.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdeutils/kdf.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdeutils/kfloppy.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdeutils/kgpg.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdeutils/kremotecontrol.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdeutils/ktimer.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdeutils/kwallet.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdeutils/print-manager.nix28
-rw-r--r--pkgs/desktops/kde-4.10/kdeutils/superkaramba.nix11
-rw-r--r--pkgs/desktops/kde-4.10/kdeutils/sweeper.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdewebdev/kfilereplace.nix10
-rw-r--r--pkgs/desktops/kde-4.10/kdewebdev/kimagemapeditor.nix10
-rw-r--r--pkgs/desktops/kde-4.10/kdewebdev/klinkstatus.nix12
-rw-r--r--pkgs/desktops/kde-4.10/kdewebdev/kommander.nix9
-rw-r--r--pkgs/desktops/kde-4.10/l10n/default.nix44
-rwxr-xr-xpkgs/desktops/kde-4.10/l10n/l10n-manifest.sh32
-rw-r--r--pkgs/desktops/kde-4.10/l10n/manifest-4.10.2.nix282
-rw-r--r--pkgs/desktops/kde-4.10/oxygen-icons.nix15
-rw-r--r--pkgs/desktops/kde-4.10/support/akonadi/default.nix24
-rw-r--r--pkgs/desktops/xfce/applications/xfce4-notifyd.nix12
-rw-r--r--pkgs/desktops/xfce/default.nix10
-rw-r--r--pkgs/desktops/xfce/support/gvfs.nix22
-rw-r--r--pkgs/desktops/xfce/support/libgdu-only.patch144
-rw-r--r--pkgs/desktops/xfce/support/libgdu.nix34
-rw-r--r--pkgs/development/compilers/ghc/7.6.3.nix46
-rw-r--r--pkgs/development/compilers/ghc/wrapper.nix11
-rw-r--r--pkgs/development/compilers/jdk/jdk6-linux.nix10
-rw-r--r--pkgs/development/compilers/sbcl/default.nix8
-rw-r--r--pkgs/development/compilers/swi-prolog/default.nix4
-rw-r--r--pkgs/development/interpreters/dart/default.nix39
-rw-r--r--pkgs/development/interpreters/guile/default.nix16
-rw-r--r--pkgs/development/interpreters/php/5.3.nix5
-rw-r--r--pkgs/development/interpreters/php/5.4.nix212
-rw-r--r--pkgs/development/interpreters/php/fix-5.4.patch68
-rw-r--r--pkgs/development/libraries/gvfs/default.nix38
-rw-r--r--pkgs/development/libraries/haskell/acid-state/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/certificate/default.nix1
-rw-r--r--pkgs/development/libraries/haskell/checkers/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/crypto-api/default.nix1
-rw-r--r--pkgs/development/libraries/haskell/data-inttrie/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/digestive-functors-heist/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/fclabels/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/fsnotify/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/ghc-vis/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/hamlet/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/hashable/1.2.0.6.nix (renamed from pkgs/development/libraries/haskell/hashable/1.2.0.5.nix)13
-rw-r--r--pkgs/development/libraries/haskell/haskeline/0.6.4.7.nix22
-rw-r--r--pkgs/development/libraries/haskell/haskeline/default.nix (renamed from pkgs/development/libraries/haskell/haskeline/0.7.0.3.nix)4
-rw-r--r--pkgs/development/libraries/haskell/optparse-applicative/default.nix1
-rw-r--r--pkgs/development/libraries/haskell/pretty-show/1.2.nix16
-rw-r--r--pkgs/development/libraries/haskell/pretty-show/1.5.nix (renamed from pkgs/development/libraries/haskell/pretty-show/default.nix)0
-rw-r--r--pkgs/development/libraries/haskell/safecopy/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/semigroups/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/shakespeare/default.nix7
-rw-r--r--pkgs/development/libraries/haskell/skein/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/snap/snap.nix15
-rw-r--r--pkgs/development/libraries/haskell/socks/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/statistics/default.nix10
-rw-r--r--pkgs/development/libraries/haskell/tagged/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/wai-handler-launch/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/wai-test/default.nix9
-rw-r--r--pkgs/development/libraries/haskell/zeromq3-haskell/default.nix12
-rw-r--r--pkgs/development/libraries/libextractor/default.nix6
-rw-r--r--pkgs/development/libraries/libgphoto2/default.nix18
-rw-r--r--pkgs/development/libraries/openexr/default.nix2
-rw-r--r--pkgs/development/libraries/soprano/default.nix4
-rw-r--r--pkgs/development/tools/haskell/hlint/default.nix4
-rw-r--r--pkgs/development/tools/misc/itstool/default.nix6
-rw-r--r--pkgs/development/tools/misc/xxdiff/default.nix13
-rw-r--r--pkgs/games/gnuchess/default.nix8
-rw-r--r--pkgs/misc/emulators/hatari/default.nix22
-rw-r--r--pkgs/misc/emulators/wine/default.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-3.0.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-3.4.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-3.8.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-3.9.nix6
-rw-r--r--pkgs/os-specific/linux/plymouth/default.nix56
-rw-r--r--pkgs/os-specific/linux/spl/default.nix16
-rw-r--r--pkgs/os-specific/linux/spl/install_prefix.patch285
-rw-r--r--pkgs/os-specific/linux/spl/install_prefix_2.patch32
-rw-r--r--pkgs/os-specific/linux/spl/module_prefix.patch33
-rw-r--r--pkgs/os-specific/linux/udisks/1-default.nix (renamed from pkgs/os-specific/linux/udisks/default.nix)0
-rw-r--r--pkgs/os-specific/linux/udisks/2-default.nix42
-rw-r--r--pkgs/os-specific/linux/udisks/force-path.patch13
-rw-r--r--pkgs/os-specific/linux/zfs/default.nix12
-rw-r--r--pkgs/os-specific/linux/zfs/kerneldir_path.patch85
-rw-r--r--pkgs/os-specific/linux/zfs/module_perm_prefix.patch70
-rw-r--r--pkgs/os-specific/linux/zfs/nix-build.patch214
-rw-r--r--pkgs/os-specific/linux/zfs/no_absolute_paths_to_coreutils.patch25
-rw-r--r--pkgs/servers/amqp/rabbitmq-server/default.nix14
-rw-r--r--pkgs/servers/x11/xorg/xorgserver12-CVE-1940.patch34
-rw-r--r--pkgs/tools/X11/autocutsel/default.nix26
-rw-r--r--pkgs/tools/archivers/zpaq/default.nix8
-rw-r--r--pkgs/tools/backup/obnam/default.nix4
-rw-r--r--pkgs/tools/networking/curl/default.nix6
-rw-r--r--pkgs/tools/networking/curl/fix-curl-multi-cleanup.patch32
-rw-r--r--pkgs/tools/networking/offlineimap/default.nix6
-rw-r--r--pkgs/tools/networking/wicd/default.nix17
-rw-r--r--pkgs/tools/networking/wicd/dhclient.patch101
-rw-r--r--pkgs/tools/networking/wicd/fix-app-icon.patch19
-rw-r--r--pkgs/tools/networking/wicd/fix-gtk-issues.patch47
-rw-r--r--pkgs/tools/networking/wicd/mkdir-networks.patch12
-rw-r--r--pkgs/tools/networking/wicd/no-trans.patch15
-rw-r--r--pkgs/tools/security/munge/default.nix30
-rw-r--r--pkgs/top-level/all-packages.nix53
-rw-r--r--pkgs/top-level/haskell-defaults.nix9
-rw-r--r--pkgs/top-level/haskell-packages.nix43
-rw-r--r--pkgs/top-level/perl-packages.nix12
-rw-r--r--pkgs/top-level/python-packages.nix96
-rw-r--r--pkgs/top-level/release-haskell.nix1026
-rw-r--r--pkgs/top-level/release-python.nix1
306 files changed, 6143 insertions, 1404 deletions
diff --git a/pkgs/applications/audio/distrho/default.nix b/pkgs/applications/audio/distrho/default.nix
index a409ba1f28b9..809a02e1c7a5 100644
--- a/pkgs/applications/audio/distrho/default.nix
+++ b/pkgs/applications/audio/distrho/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchgit, alsaLib, fftwSinglePrec, freetype, jackaudio
-, libxslt, lv2, pkgconfig, premake, xlibs }:
+, libxslt, lv2, pkgconfig, premake3, xlibs }:
 
 let
   rev = "99efbf0b";
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   '';
 
   buildInputs = [
-    alsaLib fftwSinglePrec freetype jackaudio pkgconfig premake
+    alsaLib fftwSinglePrec freetype jackaudio pkgconfig premake3
     xlibs.libX11 xlibs.libXcomposite xlibs.libXcursor xlibs.libXext
     xlibs.libXinerama xlibs.libXrender
   ];
diff --git a/pkgs/applications/editors/eclipse/default.nix b/pkgs/applications/editors/eclipse/default.nix
index a9ee85d905e0..3be08f4496c8 100644
--- a/pkgs/applications/editors/eclipse/default.nix
+++ b/pkgs/applications/editors/eclipse/default.nix
@@ -160,6 +160,22 @@ in {
         };
   };
 
+  eclipse_cpp_42 = buildEclipse {
+    name = "eclipse-cpp-4.2";
+    description = "Eclipse IDE for C/C++ Developers";
+    src =
+      if stdenv.system == "x86_64-linux" then
+        fetchurl {
+          url = http://eclipse.ialto.com/technology/epp/downloads/release/juno/SR2/eclipse-cpp-juno-SR2-linux-gtk-x86_64.tar.gz;
+          sha256 = "1qq04926pf7v9sf3s0z53zvlbl1j0rmmjmbmhqi49473fnjikh7y";
+        }
+      else
+        fetchurl {
+          url = http://eclipse.ialto.com/technology/epp/downloads/release/juno/SR2/eclipse-cpp-juno-SR2-linux-gtk.tar.gz;
+          sha256 = "1a4s9qlhfpfpdhvffyglnfdr3dq5r2ywcxqywhqi95yhq5nmsgyk";
+        };
+  };
+
   eclipse_sdk_42 = buildEclipse {
     name = "eclipse-sdk-4.2";
     description = "Eclipse Classic";
diff --git a/pkgs/applications/editors/emacs-modes/magit/default.nix b/pkgs/applications/editors/emacs-modes/magit/default.nix
index 580b2761fa97..a9149a0f919b 100644
--- a/pkgs/applications/editors/emacs-modes/magit/default.nix
+++ b/pkgs/applications/editors/emacs-modes/magit/default.nix
@@ -1,18 +1,17 @@
-{ stdenv, fetchurl, emacs, texinfo, unzip }:
+{ stdenv, fetchurl, emacs, texinfo }:
 
 let
   version = "1.2.0";
 in
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   name = "magit-${version}";
 
   src = fetchurl {
-    url = "https://github.com/magit/magit/zipball/${version}";
-    sha256 = "1877s8ikvcb457mmljmw366h6pgg4zzx98qfazhqj8snl4yqsj4i";
-    name = "magit-${version}.zip";
+    url = "https://github.com/downloads/magit/magit/${name}.tar.gz";
+    sha256 = "1a8vvilhd5y5vmlpsh194qpl4qlg0a1brylfscxcacpfp0cmhlzg";
   };
 
-  buildInputs = [ emacs texinfo unzip ];
+  buildInputs = [ emacs texinfo ];
 
   configurePhase = "makeFlagsArray=( PREFIX=$out SYSCONFDIR=$out/etc )";
 
diff --git a/pkgs/applications/misc/gphoto2/default.nix b/pkgs/applications/misc/gphoto2/default.nix
index 7c732ab677ae..827488260260 100644
--- a/pkgs/applications/misc/gphoto2/default.nix
+++ b/pkgs/applications/misc/gphoto2/default.nix
@@ -3,16 +3,16 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "gphoto2-2.4.14";
-  
+  name = "gphoto2-2.5.1";
+
   src = fetchurl {
     url = "mirror://sourceforge/gphoto/${name}.tar.bz2";
-    sha256 = "08x1p8xhl65r79a6gn1fi63z1lspd5j55l05diiyzcwfxvqwsm47";
+    sha256 = "12zn677fvw1bmx70pg0vck2vrvkiy7hx1wzlwf6k23mhdnm4ipad";
   };
-  
+
   nativeBuildInputs = [ pkgconfig gettext ];
   buildInputs = [ libgphoto2 libexif popt libjpeg readline libtool ];
-  
+
   meta = {
     description = "a ready to use set of digital camera software applications";
     longDescription = ''
diff --git a/pkgs/applications/misc/gphoto2/gphotofs.nix b/pkgs/applications/misc/gphoto2/gphotofs.nix
index dc760b8e80b9..32c95ec147bd 100644
--- a/pkgs/applications/misc/gphoto2/gphotofs.nix
+++ b/pkgs/applications/misc/gphoto2/gphotofs.nix
@@ -1,11 +1,11 @@
-a :  
-let 
+a :
+let
   fetchurl = a.fetchurl;
   s = import ./src-info-for-gphotofs.nix;
 
-  version = a.lib.attrByPath ["version"] s.version a; 
+  version = a.lib.attrByPath ["version"] s.version a;
   buildInputs = with a; [
-    libgphoto2 fuse pkgconfig glib
+    libgphoto2 fuse pkgconfig glib libtool
   ];
 in
 rec {
@@ -19,7 +19,7 @@ rec {
 
   /* doConfigure should be removed if not needed */
   phaseNames = ["doConfigure" "doMakeInstall"];
-      
+
   name = "gphoto2fs-" + version;
   meta = {
     description = "Fuse FS to mount a digital camera";
diff --git a/pkgs/applications/misc/gphoto2/src-info-for-gphotofs.nix b/pkgs/applications/misc/gphoto2/src-info-for-gphotofs.nix
index 2e350b9232f5..1a4cceb6279b 100644
--- a/pkgs/applications/misc/gphoto2/src-info-for-gphotofs.nix
+++ b/pkgs/applications/misc/gphoto2/src-info-for-gphotofs.nix
@@ -1,6 +1,6 @@
 rec {
-  advertisedUrl="http://downloads.sourceforge.net/gphoto/files/gphotofs/0.4.0/gphotofs-0.4.0.tar.bz2";
-  version = "0.4.0";
-  url="http://downloads.sourceforge.net/gphoto/files/gphotofs/0.4.0/gphotofs-0.4.0.tar.bz2";
-  hash = "07zxnawkyzy6np9zas6byp9ksjkbi16d11zqrznqarfkf3fkg3yq";
+  advertisedUrl="mirror://sourceforge/gphoto/gphotofs/0.5.0/gphotofs-0.5.tar.bz2";
+  version = "0.5.0";
+  url="mirror://sourceforge/gphoto/gphotofs/0.5.0/gphotofs-0.5.tar.bz2";
+  hash = "1k23ncbsbh64r7kz050bg31jqamchyswgg9izhzij758d7gc8vk7";
 }
diff --git a/pkgs/applications/networking/p2p/freenet/default.nix b/pkgs/applications/networking/p2p/freenet/default.nix
index 8fb1a00ec328..67037a071327 100644
--- a/pkgs/applications/networking/p2p/freenet/default.nix
+++ b/pkgs/applications/networking/p2p/freenet/default.nix
@@ -40,6 +40,7 @@ stdenv.mkDerivation {
     cp dist/freenet.jar $out/share/freenet
 
     cat <<EOF > $out/bin/freenet
+    #!${stdenv.shell}
     ${jre}/bin/java -cp $out/share/freenet/bcprov.jar:$out/share/freenet/freenet-ext.jar:$out/share/freenet/freenet.jar \\
       -Xmx1024M freenet.node.NodeStarter
     EOF
diff --git a/pkgs/applications/office/ledger/3.0.nix b/pkgs/applications/office/ledger/3.0.nix
index 325ab3b0a0f9..d564f2f561e8 100644
--- a/pkgs/applications/office/ledger/3.0.nix
+++ b/pkgs/applications/office/ledger/3.0.nix
@@ -1,36 +1,22 @@
-{ stdenv, fetchgit, python, autoconf, automake, libtool, gettext, emacs, gmp
-, pcre, expat, boost, mpfr, git, texinfo }:
+{ stdenv, fetchgit, cmake, boost, gmp, mpfr, libedit, python, texinfo }:
 
 let
-  rev = "d2915c66";
+  rev = "2c7ab8be";
 in
 stdenv.mkDerivation {
-  name = "ledger3-2012.01.${rev}";
+  name = "ledger3-2013.04.${rev}";
 
   src = fetchgit {
     url = "git://github.com/jwiegley/ledger.git";
     inherit rev;
-    sha256 = "a489c8b1c48889040d2cebaac1a0019e90acac0b51c9abf7914944dcb4b801e7";
+    sha256 = "1ng5ymzqzbgdrn2ghhr7jvcjv5y7ikhyck5p1yv5j024s17xdyj5";
   };
 
-  buildInputs = [
-    python autoconf automake libtool gettext emacs gmp pcre expat boost mpfr
-    git texinfo
-  ];
+  buildInputs = [ cmake boost gmp mpfr libedit python 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}"]|' \
-      -e 's|/usr/bin/python|${python}/bin/python|'
-    export MAKEFLAGS="-j$NIX_BUILD_CORES -l$NIX_BUILD_CORES"
-    python acprep update --no-pch --prefix=$out
-  '';
-
-  doCheck = !stdenv.isDarwin;
+  # Unit tests fail in the current git snapshot. Try enabling them again
+  # when updating this package!
+  doCheck = false;
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/applications/science/logic/eprover/default.nix b/pkgs/applications/science/logic/eprover/default.nix
index 8cc1de6e8dad..d36956d1375f 100644
--- a/pkgs/applications/science/logic/eprover/default.nix
+++ b/pkgs/applications/science/logic/eprover/default.nix
@@ -3,11 +3,11 @@ let
   s = # Generated upstream information
   rec {
     baseName="eprover";
-    version="1.6";
+    version="1.7";
     name="${baseName}-${version}";
-    hash="140cnw4qck1hancrqdh0f77yfba5ljhdnfxdxsl0a86a6y7ydbwi";
-    url="http://www4.in.tum.de/~schulz/WORK/E_DOWNLOAD/V_1.6/E.tgz";
-    sha256="140cnw4qck1hancrqdh0f77yfba5ljhdnfxdxsl0a86a6y7ydbwi";
+    hash="1prkgjpg8lajcylz9nj2hfjxl3l42cqbfvilg30z9b5br14l36rh";
+    url="http://www4.in.tum.de/~schulz/WORK/E_DOWNLOAD/V_1.7/E.tgz";
+    sha256="1prkgjpg8lajcylz9nj2hfjxl3l42cqbfvilg30z9b5br14l36rh";
   };
 in
 stdenv.mkDerivation {
diff --git a/pkgs/applications/search/doodle/default.nix b/pkgs/applications/search/doodle/default.nix
new file mode 100644
index 000000000000..a6b3ac7ccfdf
--- /dev/null
+++ b/pkgs/applications/search/doodle/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, libextractor, gettext }:
+
+stdenv.mkDerivation rec {
+  name = "doodle-0.7.0";
+
+  buildInputs = [ libextractor gettext ];
+
+  src = fetchurl {
+    url = "http://grothoff.org/christian/doodle/download/${name}.tar.gz";
+    sha256 = "0ayx5q7chzll9sv3miq35xl36r629cvgdzphf379kxzlzhjldy3j";
+  };
+
+  meta = {
+    homepage = http://grothoff.org/christian/doodle/;
+    description = "Tool to quickly index and search documents on a computer";
+    license = "GPLv2+";
+    maintainers = with stdenv.lib.maintainers; [viric];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/pkgs/applications/version-management/git-and-tools/default.nix b/pkgs/applications/version-management/git-and-tools/default.nix
index b6d7c1eb5d3b..a5aeb1bf6a41 100644
--- a/pkgs/applications/version-management/git-and-tools/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/default.nix
@@ -10,7 +10,7 @@ rec {
   git = lib.makeOverridable (import ./git) {
     inherit fetchurl stdenv curl openssl zlib expat perl python gettext gnugrep
       asciidoc texinfo xmlto docbook2x docbook_xsl docbook_xml_dtd_45 libxslt
-      cpio tcl tk makeWrapper subversionClient hardlink;
+      cpio tcl tk makeWrapper subversionClient gzip;
     svnSupport = false;		# for git-svn support
     guiSupport = false;		# requires tcl/tk
     sendEmailSupport = false;	# requires plenty of perl libraries
diff --git a/pkgs/applications/version-management/git-and-tools/git/default.nix b/pkgs/applications/version-management/git-and-tools/git/default.nix
index b006354a0149..58071d86d4e5 100644
--- a/pkgs/applications/version-management/git-and-tools/git/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git/default.nix
@@ -1,6 +1,6 @@
-{ fetchurl, stdenv, curl, openssl, zlib, expat, perl, python, gettext, cpio, gnugrep
+{ fetchurl, stdenv, curl, openssl, zlib, expat, perl, python, gettext, cpio, gnugrep, gzip
 , asciidoc, texinfo, xmlto, docbook2x, docbook_xsl, docbook_xml_dtd_45
-, libxslt, tcl, tk, makeWrapper, hardlink
+, libxslt, tcl, tk, makeWrapper
 , svnSupport, subversionClient, perlLibs, smtpPerlLibs
 , guiSupport
 , withManual ? true
@@ -10,7 +10,7 @@
 
 let
 
-  version = "1.8.2";
+  version = "1.8.2.1";
 
   svn = subversionClient.override { perlBindings = true; };
 
@@ -21,10 +21,10 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "http://git-core.googlecode.com/files/git-${version}.tar.gz";
-    sha256 = "1rhkya4kfs7iayasgj3bk8zg1pfk3h7wqhfy9d6aaqjgzb75pwy2";
+    sha1 = "ad9f833e509ba31c83efe336fd3599e89a39394b";
   };
 
-  patches = [ ./docbook2texi.patch ];
+  patches = [ ./docbook2texi.patch ./symlinks-in-bin.patch ];
 
   buildInputs = [curl openssl zlib expat gettext cpio makeWrapper]
     ++ stdenv.lib.optionals withManual [ asciidoc texinfo xmlto docbook2x
@@ -41,6 +41,8 @@ stdenv.mkDerivation {
   # so that `SPARSE_FLAGS' corresponds to the current architecture...
   #doCheck = true;
 
+  installFlags = "NO_INSTALL_HARDLINKS=1";
+
   postInstall =
     ''
       notSupported() {
@@ -66,6 +68,11 @@ stdenv.mkDerivation {
       sed -i -e 's|	perl -ne|	${perl}/bin/perl -ne|g' \
              -e 's|	perl -e|	${perl}/bin/perl -e|g' \
              $out/libexec/git-core/{git-am,git-submodule}
+
+      # gzip (and optionally bzip2, xz, zip) are a runtime dependencies for
+      # gitweb.cgi, need to patch so that it's found
+      sed -i -e "s|'compressor' => \['gzip'|'compressor' => ['${gzip}/bin/gzip'|" \
+          $out/share/gitweb/gitweb.cgi
     ''
 
    + (if svnSupport then
@@ -113,15 +120,10 @@ stdenv.mkDerivation {
        done
      '');
 
-  # Git installs many copies of the same binary using hardlinks, but unfortunately
-  # our patchELF phase re-writes those files and destroys the hardlinks in the
-  # process. This utility re-generates them afterwards.
-  postFixup = "${hardlink}/bin/hardlink $out";
-
   enableParallelBuilding = true;
 
   meta = {
-    homepage = "http://git-scm.com/";
+    homepage = http://git-scm.com/;
     description = "Git, a popular distributed version control system";
     license = stdenv.lib.licenses.gpl2Plus;
 
diff --git a/pkgs/applications/version-management/git-and-tools/git/symlinks-in-bin.patch b/pkgs/applications/version-management/git-and-tools/git/symlinks-in-bin.patch
new file mode 100644
index 000000000000..29d537db25f9
--- /dev/null
+++ b/pkgs/applications/version-management/git-and-tools/git/symlinks-in-bin.patch
@@ -0,0 +1,13 @@
+diff -ru -x '*~' git-1.8.2.1-orig/Makefile git-1.8.2.1/Makefile
+--- git-1.8.2.1-orig/Makefile	2013-04-08 00:52:04.000000000 +0200
++++ git-1.8.2.1/Makefile	2013-04-22 15:46:42.906026940 +0200
+@@ -2319,8 +2319,7 @@
+ 	{ test "$$bindir/" = "$$execdir/" || \
+ 	  for p in git$X $(filter $(install_bindir_programs),$(ALL_PROGRAMS)); do \
+ 		$(RM) "$$execdir/$$p" && \
+-		test -z "$(NO_INSTALL_HARDLINKS)$(NO_CROSS_DIRECTORY_HARDLINKS)" && \
+-		ln "$$bindir/$$p" "$$execdir/$$p" 2>/dev/null || \
++		ln -s "$$bindir/$$p" "$$execdir/$$p" 2>/dev/null || \
+ 		cp "$$bindir/$$p" "$$execdir/$$p" || exit; \
+ 	  done; \
+ 	} && \
diff --git a/pkgs/build-support/cabal/default.nix b/pkgs/build-support/cabal/default.nix
index d4c823f4a847..7706e849f504 100644
--- a/pkgs/build-support/cabal/default.nix
+++ b/pkgs/build-support/cabal/default.nix
@@ -1,6 +1,13 @@
 # generic builder for Cabal packages
 
-{ stdenv, fetchurl, lib, pkgconfig, ghc, Cabal, jailbreakCabal, enableLibraryProfiling ? false }:
+{ stdenv, fetchurl, lib, pkgconfig, ghc, Cabal, jailbreakCabal
+, enableLibraryProfiling ? false
+, enableCheckPhase ? true
+}:
+
+# The Cabal library shipped with GHC versions older than 7.x doesn't accept the --enable-tests configure flag.
+assert enableCheckPhase -> stdenv.lib.versionOlder "7" ghc.ghcVersion;
+
 {
   mkDerivation =
     args : # arguments for the individual package, can modify the defaults
@@ -18,6 +25,7 @@
           x : (removeAttrs x internalAttrs) // {
                 buildInputs           = stdenv.lib.filter (y : ! (y == null)) x.buildInputs;
                 propagatedBuildInputs = stdenv.lib.filter (y : ! (y == null)) x.propagatedBuildInputs;
+                doCheck               = enableCheckPhase && x.doCheck;
               };
 
         defaults =
@@ -92,7 +100,7 @@
 
             # pass the '--enable-tests' flag to cabal in the configure stage
             # and run any regression test suites the package might have
-            doCheck = stdenv.lib.versionOlder "7.4" ghc.ghcVersion;
+            doCheck = enableCheckPhase;
 
             extraConfigureFlags = [
               (stdenv.lib.enableFeature enableLibraryProfiling "library-profiling")
diff --git a/pkgs/build-support/release/nix-build.nix b/pkgs/build-support/release/nix-build.nix
index 5e4f5dd9ee80..88bafd84faa3 100644
--- a/pkgs/build-support/release/nix-build.nix
+++ b/pkgs/build-support/release/nix-build.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation (
               KEEPBUILDDIR="$out/`basename $TMPDIR`"
               header "Copying build directory to $KEEPBUILDDIR"
               mkdir -p $KEEPBUILDDIR
-              cp -R $TMPDIR/* $KEEPBUILDDIR
+              cp -R "$TMPDIR/"* $KEEPBUILDDIR
               stopNest
           fi
       fi
@@ -68,7 +68,7 @@ stdenv.mkDerivation (
           export CFLAGS="-O0"
           export CXXFLAGS="-O0"
       fi
-    ''; # */
+    '';
 
     initPhase = ''
       mkdir -p $out/nix-support
diff --git a/pkgs/desktops/kde-4.10/applications/kate.nix b/pkgs/desktops/kde-4.10/applications/kate.nix
new file mode 100644
index 000000000000..a0dbf2aaba92
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/applications/kate.nix
@@ -0,0 +1,11 @@
+{ kde, kdelibs, kactivities, qjson, pyqt4, sip }:
+
+kde {
+#todo: PythonLibrary, SIP, PyQt4, PyKDE4
+  buildInputs = [ kdelibs kactivities qjson pyqt4 sip ];
+
+  meta = {
+    description = "Kate, the KDE Advanced Text Editor, as well as KWrite";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/applications/konsole.nix b/pkgs/desktops/kde-4.10/applications/konsole.nix
new file mode 100644
index 000000000000..0db47fb2d7c4
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/applications/konsole.nix
@@ -0,0 +1,11 @@
+{ kde, kdelibs, kde_baseapps }:
+
+kde {
+
+  buildInputs = [ kdelibs kde_baseapps ];
+
+  meta = {
+    description = "Konsole, the KDE terminal emulator";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/default.nix b/pkgs/desktops/kde-4.10/default.nix
new file mode 100644
index 000000000000..9a682d6b93aa
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/default.nix
@@ -0,0 +1,72 @@
+{ callPackage, callPackageOrig, stdenv, qt48 }:
+
+let
+  release = "4.10.2";
+
+  # Need callPackageOrig to avoid infinite cycle
+  kde = callPackageOrig ./kde-package {
+    inherit release ignoreList extraSubpkgs callPackage;
+  };
+
+  # The list of igored individual modules
+  ignoreList = {
+    # Doesn't work yet
+    kdeutils = [ "ksecrets" ];
+    # kdeadmin/strigi-analyzer has no real code
+    kdeadmin = [ "strigi-analyzer" ];
+    # fake package to make things just work
+    kdesdk = [ "fake" ];
+    # Most of kdebindings do not compile due to a bug in the buildsystem
+    kdebindings = [ "kimono" "korundum" "kross-interpreters" "perlkde" "qyoto" ];
+  };
+
+  # Extra subpackages in the manifest format
+  extraSubpkgs = {
+    kdesdk = [
+      { name="cervisia"; }
+      { name="lokalize"; }
+      { name = "kioslave-svn"; sane = "kioslave_svn"; subdir = "kioslave"; }
+      { name = "kioslave-perldoc"; sane = "kioslave_perldoc"; subdir = "kioslave"; }
+      { 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="kdesdk-strigi-analyzers"; sane="kdesdk_strigi_analyzers";}
+      { name="kdesdk-thumbnailers"; sane="kdesdk_thumbnailers";}
+      { name="okteta"; }
+      { name="kompare"; }
+      { name="poxml"; }
+      { name="kde-dev-scripts"; sane = "kde_dev_scripts"; }
+      { name="kde-dev-utils"; sane="kde_dev_utils";}
+      #{ name="kprofilemethod"; subdir = "kde-dev-utils/kprofilemethod";}
+      #{ name="kstartperf"; }
+      #{ name="kmtrace"; subdir = "kde-dev-utils/kmtrace"; }
+      #{ name="kpartloader"; }
+      #{ name="kuiviewer"; }
+      { name="umbrello"; }
+    ];
+  };
+
+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;
+    inherit (kde.manifest) stable;
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/files/kde-wallpapers-buildsystem.patch b/pkgs/desktops/kde-4.10/files/kde-wallpapers-buildsystem.patch
new file mode 100644
index 000000000000..378cdb646940
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/files/kde-wallpapers-buildsystem.patch
@@ -0,0 +1,17 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 3d3e247..f78db67 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1,5 +1,10 @@
+-find_package(KDE4 REQUIRED)
+-include(KDE4Defaults)
++project(kde-wallpapers NONE)
++if( WALLPAPER_INSTALL_DIR )
++  message(STATUS "Installing wallpapers to user-supplied directory ${WALLPAPER_INSTALL_DIR}")
++else()
++  find_package(KDE4 REQUIRED)
++  include(KDE4Defaults)
++endif()
+ 
+ install(DIRECTORY Air DESTINATION ${WALLPAPER_INSTALL_DIR} PATTERN .svn EXCLUDE)
+ 
diff --git a/pkgs/desktops/kde-4.10/files/polkit-install.patch b/pkgs/desktops/kde-4.10/files/polkit-install.patch
new file mode 100644
index 000000000000..d2ecac663ec5
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kactivities.nix b/pkgs/desktops/kde-4.10/kactivities.nix
new file mode 100644
index 000000000000..06381bb13d7d
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kactivities.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs, nepomuk_core }:
+
+kde {
+  propagatedBuildInputs = [ kdelibs nepomuk_core ];
+
+  meta = {
+    description = "KDE activities library and daemon";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kde-base-artwork.nix b/pkgs/desktops/kde-4.10/kde-base-artwork.nix
new file mode 100644
index 000000000000..3f416cebddc4
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kde-base-artwork.nix
@@ -0,0 +1,14 @@
+{ kde, kdelibs }:
+
+kde {
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "0mrd3w7rhsj0v92c8rh9zjxyifq7wyvwszksf2gyn53dzd06blk8";
+
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "KDE Base artwork";
+    license = "GPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kde-baseapps/kde-baseapps.nix b/pkgs/desktops/kde-4.10/kde-baseapps/kde-baseapps.nix
new file mode 100644
index 000000000000..b564e339eb15
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kde-baseapps/kde-baseapps.nix
@@ -0,0 +1,11 @@
+{ kde, kdelibs, shared_desktop_ontologies, glib, htmlTidy, kactivities
+, nepomuk_core, nepomuk_widgets, libXt }:
+
+kde {
+  buildInputs = [ kdelibs nepomuk_core nepomuk_widgets htmlTidy kactivities libXt ];
+
+  meta = {
+    description = "Base KDE applications, including the Dolphin file manager and Konqueror web browser";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kde-package/4.10.2.nix b/pkgs/desktops/kde-4.10/kde-package/4.10.2.nix
new file mode 100644
index 000000000000..64bc7d56e690
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kde-package/4.10.2.nix
@@ -0,0 +1,399 @@
+{stable=true;
+hashes=builtins.listToAttrs[
+  {name="analitza";value="1k950n7rq081qy2pv7cbwzr81qp6bifll7cddgwgxk9kv16wrmh1";}
+  {name="ark";value="11jfdw4hkma564r6b9mn6vn2h5s6b6mf4imjad6iw7z3lxq6v7w9";}
+  {name="audiocd-kio";value="0zgil29ig2n5km3wzsx0gpwxk7l6zpcnxqgws9mgaqm3vnfqcjh6";}
+  {name="blinken";value="19jxlqalxfbxh1dshgpdyjkb8n7bynfr09p4hy38kv6nfil890y8";}
+  {name="bomber";value="08g82id9sf1m9zg38k47vannqcpm3fmskpgz4j41bcn24yfwynvf";}
+  {name="bovo";value="1zsbly04bcn00gyl751vszw82pvakdlw6l1n67hsgg3h5wa5z1fb";}
+  {name="cantor";value="1f3xwl9da0cz25qrx47p9b1bkcsbdj4i740py6awvhrrq60s0870";}
+  {name="dragon";value="0f9ma8aaglxh91inm711y64xqscxlqfil53gpk8c1bbanb8m99xp";}
+  {name="ffmpegthumbs";value="12fljrxyv8zgr1vl0ki8hxahwm4dn15pqhb1xgkw5pld0lvcq4sy";}
+  {name="filelight";value="0jiahda52k4knka4b0an4g2brbp263b2q8c09ayzmcd4mp9a4cgv";}
+  {name="granatier";value="0npp24j7bxmnfi743qsjn4ymi5b5icli0fb6g4x2f713z7i6raf8";}
+  {name="gwenview";value="1bznjfki05mydgjb3bmj5dymh33rac9lxrzlczqmah87c0f8fbc7";}
+  {name="jovie";value="17fbyja7ffsx0q6wlls9lagfcv8b21cnjnww06k90cyg0vn7sng4";}
+  {name="juk";value="0ni0iqprfrypx1iwgphhxwyw9216nc5s7hb0hv5j3v2kl1v2ir2n";}
+  {name="kaccessible";value="1zqbs26nl6wxnkya6nqzvnjfwmsqciraixi1awra4nzzx7n736rg";}
+  {name="kactivities";value="1d0xalwk2hlz0xxfgkrkfp0kgl347psgfhixsl8axhjgfxxi3bmx";}
+  {name="kajongg";value="1k401zxhkw8nha69kqr5igfwfgzlbmlvsy24fn4m2h2k1sh3vdcj";}
+  {name="kalgebra";value="1dzj9m6rm07xfr7plf9f7qrs44fzs4j9ncj02h9hzjli7zb44c3p";}
+  {name="kalzium";value="03zwwsbnizqm23zrhh5iagayw7jynmx87fwv0piiz65mgn4kxr5p";}
+  {name="kamera";value="1qvq4flqw1hw3513mcqdhsdvvr12sac272lhaf3jzxsm7p1qc3p1";}
+  {name="kanagram";value="0b5h2b8jm9zssn1hcl0wzf3mh11yh5hhaiay1i5db9k9g6y2nbn1";}
+  {name="kapman";value="1ghlfhmjivxnbga255x2lcdi6kxddyb3hnq93n6bzpg30m4j95sx";}
+  {name="kate";value="0cfdpg5j0zfi1zi0cjq8m3lgnbc9pwb2wlr9dvm4m0hy7byp88p3";}
+  {name="katomic";value="1r2nxya5c6dazvi7810hr24ydkyyb11ganbxkc4d1m8735i6fbqw";}
+  {name="kblackbox";value="0hslyixnw5bb2z71jncahjhnnf08baid8vxsp9n6a4ckcvbmldw4";}
+  {name="kblocks";value="1ds06amafp2igkhcjlwmaszbdvx4kfzlqpx57r5r4nlypnqfvv7k";}
+  {name="kbounce";value="0qp5ayyv3vacr2vak797wzxvkl5b9wn3db1rrzldiixb067f8jzy";}
+  {name="kbreakout";value="1ywk8zwpgqichq12idracld1gjv8gzhfyzxfi1n7165jyqqf9ba6";}
+  {name="kbruch";value="0vr1pbh7ds30vys3gd71c056fc96m5jpi7ihdbvm96p0bz94s7s4";}
+  {name="kcalc";value="1wni970xvd0inpxgw6mb85h6j9acp8vv62v7ipxcm4s4ay5jj9n1";}
+  {name="kcharselect";value="1rigpqyykd9s3gsai61y0jm6vbcza9gafwr2a4kgr72w7rn767fk";}
+  {name="kcolorchooser";value="0k60hbx41snpx83ivmnakl0a4li72pdimbgg987pl9ydjb7ja8gy";}
+  {name="kdeadmin";value="1a6412g8083g9b1xf75cwf0x3x3szadcqw3r4415vxww6kmb8br1";}
+  {name="kdeartwork";value="0a12fcmvhbc11vlmgds43mqbc6zf5j00dpsnj27ylz0nckjlajlb";}
+  {name="kde-baseapps";value="1gmyy9lkgcjhhbffzq51rjqr4m59x16qcsplcyywz218zr28gpfs";}
+  {name="kde-base-artwork";value="1vz5y6qb1wy3vcinnbsxydy39gz2ifls56dyg082j2f709hijzy3";}
+  {name="kdegraphics-mobipocket";value="0nf2k94bz8iqrr60zrql5mg14q14przq5lxscm71kk1bhdh711si";}
+  {name="kdegraphics-strigi-analyzer";value="10l1bmnskmfrwln78pzagfhz5kc2nipdm57i1c3fyp15d0msdgjz";}
+  {name="kdegraphics-thumbnailers";value="0p6bmllgzamfc3f9vigdq8knlblsmp4308lhh4f5bw5wkncjglqg";}
+  {name="kdelibs";value="1bylppbp6bzqyhkw5cavccmxh6zixjzc3z4g28d2lqixga1l16qz";}
+  {name="kdenetwork";value="0kjjwj69a79rfx7z3qxp5gjpykqq3nkwr5cm50f0phsfnflzx9l8";}
+  {name="kdepim";value="14q30gf3al23sx7cf8mhp89xa5c5xd1ns7dwq26igzkvji79kwlk";}
+  {name="kdepimlibs";value="1m56ljhssdj581hsb4irkgi6dwx25s5x8axk4fpipzvj6dq6yplz";}
+  {name="kdepim-runtime";value="1c9wv2wr843090jg41dwhqmvvvzqw875asmvydhj6kw625k62hr1";}
+  {name="kdeplasma-addons";value="1n1yar1rqw3swfnjmazqs1qm7yg19pki97204xa8dnlispbqk21s";}
+  {name="kde-runtime";value="0gmirvzs5cvh6rzps59hqkj4zk3nixh7i5hrxmm1ib7g1qnh0kfg";}
+  {name="kdesdk";value="1nyff19fv186n1j14qpvgslnaphl5y4rls8rn0yc0vxh31x769d9";}
+  {name="kdetoys";value="12c4h8vv5fd12k1wkbpmsf95c0gqa8nnwhszri72danal1qak7jj";}
+  {name="kde-wallpapers";value="17kavdzxql2cgpqrw0v9c2aflajv0l1qgllsg0l5qr7w68fqdjn7";}
+  {name="kdewebdev";value="0hv4ly6323f64wiqvizdn1ia0z50chhravm796wczb8xw8mcidh8";}
+  {name="kde-workspace";value="0rv8gdwlkvhajbn5s8mybrqc4ilpq4b0v7r55zp9dcb27c8jkr1n";}
+  {name="kdf";value="1bkj5yr7ds74gqlfsvyxf26kdqsyac8kg04phnc2rkzp31dvgldg";}
+  {name="kdiamond";value="1y1fyv211mvh5sbw55f827b7nx4da3aaly7c1bm2c13nnj7j5r9s";}
+  {name="kfloppy";value="063zzya13jmcdr2y3vig5k54hx1asnzs6lg2r5sckqp5lsmpdaz5";}
+  {name="kfourinline";value="1af58yrhpjhj61ppxfymw5z43ks9j5cz6ldagxiblp67w4bpa468";}
+  {name="kgamma";value="167z8ycnvi59kvmyar856hkcpb4znwhkkxvn4gg4g74byjzwlf3a";}
+  {name="kgeography";value="04p6ypf72gd2k54qaarsgyvji0bvsi0iqbbjr4qdyd9dhxihhzzp";}
+  {name="kgoldrunner";value="13m1j31fjiz6j0wfivkvgcmicz274h0jvdm8mkjzlp10g3691x4p";}
+  {name="kgpg";value="00zs8x2dhli8dlmj0365gq9517pzkpyf31kb4398zfrrcmja2qip";}
+  {name="khangman";value="1wj439z0n6sy1l5vknh9nrq2d1q2bq5sh0963g1zb9hp8l13bf8a";}
+  {name="kig";value="0hhfvl38czabramgyxjlazqp4dlkkc859fs36wq042iip05kyy3q";}
+  {name="kigo";value="0bvcqsq8w983lnrgi85pjajb7phbg826ky50w5wk5vql1afl02c6";}
+  {name="killbots";value="08j9p8wyqpjj78b9sj13f4vhlkcrhc7sgzwakcv4bg2dvmpr95mp";}
+  {name="kimono";value="14z3ca8s7swwxwnm198bq4ndfsl2m0brc9k465k7rj50l15y0rhl";}
+  {name="kiriki";value="13cay0dllcf5618yjjs1hz3392hcig8bj7r09b0hbqhay65z9l5y";}
+  {name="kiten";value="0lrdkha6xmlxfq9f36rb5ysk8hg9m5zmc9x1y206gxk3rf3k1wzj";}
+  {name="kjumpingcube";value="179p3lw1vl9vxvsdwzx8qjfrahii0igakw0qrdpkcmx4yr0a9gfx";}
+  {name="klettres";value="149xgrxqbp2bq8v2abzhmb8w2b2ssd7xmb06j6k1s707wc9kcs5g";}
+  {name="klickety";value="00x4f4nxfi9xasrddnc84vayn36dd0chyl8jxryswg8dabzazb25";}
+  {name="klines";value="0vamlsz3a945zcm34gb3w0iq2rknwkh9cbv1syh3cc2s9dn5sg29";}
+  {name="kmag";value="06jcp2nhgqbw6yrr5xhajsy2lxklk31kjfmq0pphssfs9yhi1pan";}
+  {name="kmahjongg";value="07hj806mix703h9x676rnwmklrfms04hfxidvzl0324idjw6v5m9";}
+  {name="kmines";value="07nrv4qn7wg590id83dgw7l5kyh4prj3nbi9np4x9ik1rr5bq9nm";}
+  {name="kmix";value="1hwmn4rvr7jid4y3gycsvxvvfxmkv128jxsdfjdhzqz8lcp2q87q";}
+  {name="kmousetool";value="1mrhppgrwwr3cyr3fna0hgypclssixhw9yx6wvqgqj3sc5wd6n4f";}
+  {name="kmouth";value="1s7789qsvg18548bdhmmgcs3w9843naxhcwsiqhc8x0dvaxlgd5r";}
+  {name="kmplot";value="0jzrc47c4v6hvrs6p0yhki70diyfgs55vnjac4gfrfn17jgh562w";}
+  {name="knavalbattle";value="1mqvlvhqd7sa4qsz6cf6gffysamgfml3nd4h71x5qzw8qqw778yq";}
+  {name="knetwalk";value="14nizf7nrvsmqg6d5vaazl8wf74q64gwxq6nmj86brinf7d5nn5h";}
+  {name="kolf";value="1qghkmzbpaajb91xcwd22fx87cfpmgmjjwqisdzkjz4qn3z5mpx0";}
+  {name="kollision";value="1z0xg967q3l2gxmnigjbrnqwvw5fm7cpscpfavn31zp4vbmk937m";}
+  {name="kolourpaint";value="135i7h1lf23cggzx7l2p2hsh7s4zrik3298fwwbhly0jl564ribb";}
+  {name="konquest";value="133zjqqpzwrai34f8gb4nk3im50i61c2my8hnqzr61pbbgd61ff3";}
+  {name="konsole";value="1iaih9c6i5ad0bvalwykrdgrwz6wb7k6x808na1df0yynw76r4s7";}
+  {name="korundum";value="1h8rr229hwkckrvpz6zkkxpfkrpg18fvyxsqb01sjaky7c6i4649";}
+  {name="kpat";value="1imr9w6jymx4379ba7drpa9nmaq6z28hrf5jwi06crhp5fyi08dh";}
+  {name="kremotecontrol";value="0zzhjgpy17wrgcrr70z582zh7rj0n4vgbxksz7gl3qm543y15kry";}
+  {name="kreversi";value="0dmfsg38hhav78j4s34arjr09ahfblv4k7s8llpafg7cicm8g0iv";}
+  {name="kross-interpreters";value="043wpb05di9pw3h206lpccgpfghc4v23s0n2bwv30246ig75rmk1";}
+  {name="kruler";value="1g7f810d7940j9lylzj0k7d89mbblz8ai9gs5cc7n0mkrczb9ws9";}
+  {name="ksaneplugin";value="1svsfgsvd21f9fhrsvi2fasffrx0r5rf8a8r4jx19hlzcvha0kza";}
+  {name="kscd";value="1ipl9sq8zikdjs044lbi519jyvdaahi0f8a877zfdp0xspzqi398";}
+  {name="kshisen";value="06qkl8fwh8rql6hdl8fygvfybp7w6c3ys0qsnjpxk5bz4m5xap1d";}
+  {name="ksirk";value="1hqp00dilzkbkada7dc5j56sh2rp19xcirhvj26560whlwdxhcj5";}
+  {name="ksnakeduel";value="0nbn1pn0hzh6wmhxkabrga50y06k4gv4pbb5235jbynjmk539n31";}
+  {name="ksnapshot";value="09na29nydwi0cmgg9g6yqr3wl9npgiqpvdq3wxc5jk1kxadlb0aj";}
+  {name="kspaceduel";value="1xf5qb8a08ar0v0ws1iyiqbax6qc8crbhn59nzy2hrc12451lbkc";}
+  {name="ksquares";value="1iz9r80mnkyq5mx4i95gx5a5qk5y5by8bwq9599ypamrb9fr1zpl";}
+  {name="kstars";value="0p86fpcyb1ipgmi2ypckdb5zzwanky9b3c1n5ddcr25y84b2m7iy";}
+  {name="ksudoku";value="0k5qdy0i20kxcsqdwzxhrw6rn3lzh2mgbw97rlxw5gmr3619irdz";}
+  {name="ktimer";value="149zlkpdz38pfg0yy9mi6xkrc3wcz790kc3026x1c5zyvb2nnwm7";}
+  {name="ktouch";value="109dwxxz1hcwj5506k33a0zy86ky50rp058x6pgqh1m0a6ljvswi";}
+  {name="ktuberling";value="1vsdkx7kz4gz35g3ggn6h5gmk43sww7mawdfl4r11q5rq7r2nlnx";}
+  {name="kturtle";value="1jvj34jlbvzvwmr7q8c12rh9q47d78dl6vx6lhjhvs1b0969zzrq";}
+  {name="kubrick";value="1vqjbf6p6adrmnrl4i4y1jh80rimzlp4fyfmgscpfncdnc5pzgb0";}
+  {name="kwallet";value="0sc6xn1gyl2jvfqqvln2x4cb68b2x5cjmb8gvxhgwizx93jmwkc1";}
+  {name="kwordquiz";value="1i7kdfp8x1r109jmj1a86bmn69cgjc8q9c4n92j1imr17ig063is";}
+  {name="libkcddb";value="1krr3jh46q3q02rps3wawv59bv9jzri7i4gi4qgszk5v8gn67nqb";}
+  {name="libkcompactdisc";value="1y7sznz6sdrgs8jiqxs2y7imqywq91l46w1dv8fkc9mcpx5233zb";}
+  {name="libkdcraw";value="1nhhnj6hir347g6jp20k5jq0faygp8x9k3lic9ixdw2byigy9c3p";}
+  {name="libkdeedu";value="0m0ipprcldg1l2yi0hpq87npvqic9vfh6pn60fg4wvl56syn0sfg";}
+  {name="libkdegames";value="1qs59v68nwli5438ax3am6694r1c04i7crv34bs9hksnmr51l499";}
+  {name="libkexiv2";value="0n93d4s37m2jdg04wgvmljrs7j14967bjjk6mk7fibv0jqmp65i5";}
+  {name="libkipi";value="0kjp9y2rngvhskzk63az6zfzjrysir2qlapy56ynscdgq3yl0ygm";}
+  {name="libkmahjongg";value="0g7fp0wzrhxfyhj46bv0in8z4iwal6ipjjcm38qz1j4ric71l1kf";}
+  {name="libksane";value="0pqgh21ymq0pclbvq411aglclak6afqll5d0y8hz8m6afkmjhqxc";}
+  {name="lskat";value="04gvh3266hllfzl5syai3qw7zvkd7jipqdrwzynqvzpdg725a05g";}
+  {name="marble";value="0v4c1psyl5342f01n0794wk0ckg5chblibvap0vicanlq16pp65f";}
+  {name="mplayerthumbs";value="198b8f3s7zv4sprbj22flzdpxsag91p283iym5q9mkialf51789y";}
+  {name="nepomuk-core";value="15zzraacig4qqmwabw7xy38ddvcxam7djw96yhxc0z8zr3xffysj";}
+  {name="nepomuk-widgets";value="1kjzp7px5l7q9bal0dxpm24wq05s0wbjgqli6bhx7d5hipfr53w2";}
+  {name="okular";value="0zvmfh9ijwx10zy9nq6295x1w9x1xljkdcsz5269m230ff6wwmnh";}
+  {name="oxygen-icons";value="1z46zmazg1hf6yy2krfqpb5i5xmf7kpw9l7wvh3ihfqsdh77qmn8";}
+  {name="pairs";value="0i9wg6a3y71m3bdp5qjk6f9bmmd45r9hi7b8fqxp8srxcqn5hzx1";}
+  {name="palapeli";value="1cq8vggcc1358nf4n15pycmbn7m50lndd1w0541c85qirlnrq7wm";}
+  {name="parley";value="0cqdmjcsjqa8p42p7j8ni9mkf898p5hs3wdb757b4c1vyzkkdlpx";}
+  {name="perlkde";value="0w628fdxqmwv8k0x22307a4cpwlvq3lfsbhl5b3bv7naqjnwf549";}
+  {name="perlqt";value="11g5rh32i2x8klg5y5bapg581k4gm38jdfsmqsrjdcmxfw94bjil";}
+  {name="picmi";value="0y3s3k1x78z2asbcrcl8xkrk7kkz2ci4lbh1jfbnd66bx7lmwv0l";}
+  {name="print-manager";value="0x8lqjndi3ln90n8bgw26k09kz5ghkfm2xgqi4y0295ggbm3cm24";}
+  {name="pykde4";value="02qih6jw13mv9x4wf85ff9m5akdmxrz2jf2nlldyimh879dn0hxr";}
+  {name="qtruby";value="15wv6rh8d1f0d96f42bawyljlkpnamwxqng69jfd3q44j54gjkc5";}
+  {name="qyoto";value="1jpk5vp4ymvy8hhqia7b4mw0pzgdskb3aff30ik154mngzaqbdzc";}
+  {name="rocs";value="131gb6xfcrmwnl7nbxpm1rip9q2r8wzw8pb8f8a47vvswf200n7g";}
+  {name="smokegen";value="1vcc7yz6j7ndk8ppg7zr546cji6x5w38nlfc1lanq1pb3lbsddwn";}
+  {name="smokekde";value="1ib1xj6lkh2z80l9dci6w58f62f2mmpfz6hm81hygxqyxbf8rl64";}
+  {name="smokeqt";value="1fpv9c1qsl08p8s5a86ql0342hbalbh2inxv9a3risqg6qd0is6l";}
+  {name="step";value="1iayd98rqsl5qm1r4jiabnhw68691kakajgp9kpmn302ljn2wx5j";}
+  {name="superkaramba";value="1g86gacs1ss2sa3vdyg1ciwbpcd6d3i8yfb7fjmgvjm4qiyl3npg";}
+  {name="svgpart";value="0iy01cl4p37bfmr5779shbp202w25ik3phsqq6yjzfb7521xbm4r";}
+  {name="sweeper";value="1np09is041rb7bk8q1bhl0wmv3dypmsgyvd5yxg1qlsibn8mwbiw";}
+];
+modules=[
+{
+  module="kdemultimedia";
+  split=true;
+  pkgs=[
+    { name="audiocd-kio"; sane="audiocd_kio"; }
+    { name="dragon";  }
+    { name="ffmpegthumbs";  }
+    { name="juk";  }
+    { name="kmix";  }
+    { name="kscd";  }
+    { name="libkcddb";  }
+    { name="libkcompactdisc";  }
+    { name="mplayerthumbs";  }
+  ];
+}
+{
+  module="kdegraphics";
+  split=true;
+  pkgs=[
+    { name="gwenview";  }
+    { name="kamera";  }
+    { name="kcolorchooser";  }
+    { name="kdegraphics-mobipocket"; sane="kdegraphics_mobipocket"; }
+    { 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="okular";  }
+    { name="svgpart";  }
+  ];
+}
+{
+  module="kdelibs";
+  split=true;
+  pkgs=[
+    { name="kdelibs";  }
+    { name="nepomuk-core"; sane="nepomuk_core"; }
+    { name="nepomuk-widgets"; sane="nepomuk_widgets"; }
+  ];
+}
+{
+  module="kdeutils";
+  split=true;
+  pkgs=[
+    { name="ark";  }
+    { name="filelight";  }
+    { name="kcalc";  }
+    { name="kcharselect";  }
+    { name="kdf";  }
+    { name="kfloppy";  }
+    { name="kgpg";  }
+    { name="kremotecontrol";  }
+    { name="ktimer";  }
+    { name="kwallet";  }
+    { name="print-manager"; sane="print_manager"; }
+    { name="superkaramba";  }
+    { name="sweeper";  }
+  ];
+}
+{
+  module="applications";
+  split=true;
+  pkgs=[
+    { name="kate";  }
+    { name="konsole";  }
+  ];
+}
+{
+  module="kdegames";
+  split=true;
+  pkgs=[
+    { name="bomber";  }
+    { name="bovo";  }
+    { name="granatier";  }
+    { name="kajongg";  }
+    { name="kapman";  }
+    { name="katomic";  }
+    { name="kblackbox";  }
+    { name="kblocks";  }
+    { name="kbounce";  }
+    { name="kbreakout";  }
+    { name="kdiamond";  }
+    { name="kfourinline";  }
+    { name="kgoldrunner";  }
+    { name="kigo";  }
+    { name="killbots";  }
+    { name="kiriki";  }
+    { name="kjumpingcube";  }
+    { name="klickety";  }
+    { name="klines";  }
+    { name="kmahjongg";  }
+    { name="kmines";  }
+    { name="knavalbattle";  }
+    { name="knetwalk";  }
+    { name="kolf";  }
+    { name="kollision";  }
+    { name="konquest";  }
+    { name="kpat";  }
+    { name="kreversi";  }
+    { name="kshisen";  }
+    { name="ksirk";  }
+    { name="ksnakeduel";  }
+    { name="kspaceduel";  }
+    { name="ksquares";  }
+    { name="ksudoku";  }
+    { name="ktuberling";  }
+    { name="kubrick";  }
+    { name="libkdegames";  }
+    { name="libkmahjongg";  }
+    { name="lskat";  }
+    { name="palapeli";  }
+    { name="picmi";  }
+  ];
+}
+{
+  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="pairs";  }
+    { 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="kde-baseapps"; sane="kde_baseapps"; }
+  ];
+}
+{ module="kactivities";  split=false;}
+{ module="kdeadmin";  split=false;
+  pkgs=[
+    { name="strigi-analyzer"; sane="strigi_analyzer";}
+    { name="kuser"; }
+    { name="kcron"; }
+    { name="ksystemlog"; }
+  ];
+
+}
+{ 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"; }
+  ];
+
+}
+{ module="kde-base-artwork"; sane="kde_base_artwork"; 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;}
+#had to add fake pkgs to kdesdk to get it to be treated like a split module
+{ module="kdesdk";  split=false; pkgs = [{ name="fake"; }]; }
+{ 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.10/kde-package/default.nix b/pkgs/desktops/kde-4.10/kde-package/default.nix
new file mode 100644
index 000000000000..cd2860920d67
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.xz";
+    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.xz
+  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 = module.enableParallelBuilding or 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.10/kde-package/kde-manifest.sh b/pkgs/desktops/kde-4.10/kde-package/kde-manifest.sh
new file mode 100755
index 000000000000..e964ce3ddc11
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.xz | \
+  sed -e 's/.*kdelibs-//' -e 's/\.tar\.xz//')
+
+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.xz`; do
+  package=${i%-${release}.tar.xz}
+  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.xz" "$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.10/kde-package/kde-submodules.xslt b/pkgs/desktops/kde-4.10/kde-package/kde-submodules.xslt
new file mode 100644
index 000000000000..952a05a9d274
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kde-runtime.nix b/pkgs/desktops/kde-4.10/kde-runtime.nix
new file mode 100644
index 000000000000..a0e58deb0b28
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kde-runtime.nix
@@ -0,0 +1,21 @@
+{ kde, kdelibs, shared_desktop_ontologies, bzip2, libssh, exiv2, attica
+, libcanberra, virtuoso, samba, libjpeg, ntrack, pkgconfig, qca2, xz, pulseaudio
+, networkmanager, nepomuk_core, kactivities, kdepimlibs
+}:
+
+kde {
+  buildInputs = [
+    kdelibs attica xz bzip2 nepomuk_core libssh libjpeg exiv2 ntrack
+    qca2 samba (libcanberra.override { gtk = null; }) pulseaudio
+    networkmanager kactivities kdepimlibs
+#todo: add openslp, openexr
+  ];
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  passthru.propagatedUserEnvPackages = [ virtuoso ];
+
+  meta = {
+    license = "LGPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kde-wallpapers.nix b/pkgs/desktops/kde-4.10/kde-wallpapers.nix
new file mode 100644
index 000000000000..fe463786e4ca
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kde-wallpapers.nix
@@ -0,0 +1,17 @@
+{ kde, cmake }:
+
+kde {
+  nativeBuildInputs = [ cmake ];
+
+  patches = [ ./files/kde-wallpapers-buildsystem.patch ];
+
+  cmakeFlags = "-DWALLPAPER_INSTALL_DIR=share/wallpapers";
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "1qpnv4f8f2aga3i1w9k0f0s6myilnm0f9mja8ikkkgi2qpv1q66f";
+
+  meta = {
+    description = "Wallpapers for KDE";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kde-workspace.nix b/pkgs/desktops/kde-4.10/kde-workspace.nix
new file mode 100644
index 000000000000..a478dc975fe9
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kde-workspace.nix
@@ -0,0 +1,38 @@
+{ kde, kdelibs, qimageblitz, libdbusmenu_qt, xorg, shared_desktop_ontologies,
+  lm_sensors, pciutils, libraw1394, libusb, libxklavier, python, libqalculate,
+  xkeyboard_config, kdepimlibs, pam, boost, gpsd, prison, akonadi,
+  libjpeg, pkgconfig, libXft, libXxf86misc, kactivities, qjson, networkmanager
+}:
+
+kde {
+
+#todo: googlegadgets, consolekit, xmms
+  buildInputs =
+    [ kdelibs qimageblitz libdbusmenu_qt libjpeg xorg.libxcb xorg.xcbutilimage
+      xorg.xcbutilrenderutil libXft #libXxf86misc
+      xorg.libxkbfile xorg.libXcomposite  xorg.libXtst #xorg.libXScrnSaver
+      xorg.libXdamage xorg.libXau xorg.libXdmcp xorg.libpthreadstubs
+      boost gpsd lm_sensors pciutils libraw1394
+      libusb python libqalculate kdepimlibs pam prison akonadi qjson networkmanager
+      kactivities
+    ];
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  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
+   '';
+
+  enableParallelBuilding = false; # frequent problems on Hydra
+
+  meta = {
+    description = "KDE workspace components such as Plasma, Kwin and System Settings";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdeaccessibility/jovie.nix b/pkgs/desktops/kde-4.10/kdeaccessibility/jovie.nix
new file mode 100644
index 000000000000..d38c80c4c36a
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdeaccessibility/kaccessible.nix b/pkgs/desktops/kde-4.10/kdeaccessibility/kaccessible.nix
new file mode 100644
index 000000000000..98fae7c983f8
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdeaccessibility/kmag.nix b/pkgs/desktops/kde-4.10/kdeaccessibility/kmag.nix
new file mode 100644
index 000000000000..606c61cddb63
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdeaccessibility/kmag.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs }:
+
+kde {
+#todo: package qaccessibilityclient
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Screen magnifier for KDE";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdeaccessibility/kmousetool.nix b/pkgs/desktops/kde-4.10/kdeaccessibility/kmousetool.nix
new file mode 100644
index 000000000000..8e0caa76ed9c
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdeaccessibility/kmousetool.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs, libXtst, libXt }:
+
+kde {
+  buildInputs = [ kdelibs libXtst libXt ];
+
+  meta = {
+    description = "A program that clicks the mouse for you";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdeaccessibility/kmouth.nix b/pkgs/desktops/kde-4.10/kdeaccessibility/kmouth.nix
new file mode 100644
index 000000000000..4159501967cd
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdeadmin/kcron.nix b/pkgs/desktops/kde-4.10/kdeadmin/kcron.nix
new file mode 100644
index 000000000000..bada0c1cb108
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdeadmin/kcron.nix
@@ -0,0 +1,5 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+}
diff --git a/pkgs/desktops/kde-4.10/kdeadmin/ksystemlog.nix b/pkgs/desktops/kde-4.10/kdeadmin/ksystemlog.nix
new file mode 100644
index 000000000000..bada0c1cb108
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdeadmin/ksystemlog.nix
@@ -0,0 +1,5 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+}
diff --git a/pkgs/desktops/kde-4.10/kdeadmin/kuser.nix b/pkgs/desktops/kde-4.10/kdeadmin/kuser.nix
new file mode 100644
index 000000000000..fa140765e7ff
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdeadmin/kuser.nix
@@ -0,0 +1,5 @@
+{ kde, kdelibs, kdepimlibs, nepomuk_core }:
+
+kde {
+  buildInputs = [ kdelibs kdepimlibs nepomuk_core];
+}
diff --git a/pkgs/desktops/kde-4.10/kdeartwork/ColorSchemes.nix b/pkgs/desktops/kde-4.10/kdeartwork/ColorSchemes.nix
new file mode 100644
index 000000000000..acccf66976fc
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdeartwork/FindXscreensaver.cmake b/pkgs/desktops/kde-4.10/kdeartwork/FindXscreensaver.cmake
new file mode 100644
index 000000000000..499ed75268e9
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdeartwork/HighResolutionWallpapers.nix b/pkgs/desktops/kde-4.10/kdeartwork/HighResolutionWallpapers.nix
new file mode 100644
index 000000000000..edffca1562e1
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdeartwork/IconThemes.nix b/pkgs/desktops/kde-4.10/kdeartwork/IconThemes.nix
new file mode 100644
index 000000000000..43071e8bd142
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdeartwork/WeatherWallpapers.nix b/pkgs/desktops/kde-4.10/kdeartwork/WeatherWallpapers.nix
new file mode 100644
index 000000000000..947e5e17ab0c
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdeartwork/desktopthemes.nix b/pkgs/desktops/kde-4.10/kdeartwork/desktopthemes.nix
new file mode 100644
index 000000000000..93dd361af738
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdeartwork/emoticons.nix b/pkgs/desktops/kde-4.10/kdeartwork/emoticons.nix
new file mode 100644
index 000000000000..5ef9f78a7195
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdeartwork/kscreensaver.nix b/pkgs/desktops/kde-4.10/kdeartwork/kscreensaver.nix
new file mode 100644
index 000000000000..7028b9db228d
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdeartwork/kscreensaver.nix
@@ -0,0 +1,15 @@
+{ kde, kdelibs, xscreensaver, kde_workspace, eigen, libkexiv2, libXt, pkgconfig }:
+
+kde {
+  buildInputs = [ kdelibs xscreensaver kde_workspace eigen libkexiv2 libXt ];
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  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.10/kdeartwork/kwin-styles.nix b/pkgs/desktops/kde-4.10/kdeartwork/kwin-styles.nix
new file mode 100644
index 000000000000..b5d769b216db
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdeartwork/sounds.nix b/pkgs/desktops/kde-4.10/kdeartwork/sounds.nix
new file mode 100644
index 000000000000..e98705da889e
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdeartwork/styles.nix b/pkgs/desktops/kde-4.10/kdeartwork/styles.nix
new file mode 100644
index 000000000000..6a1306c37100
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdeartwork/wallpapers.nix b/pkgs/desktops/kde-4.10/kdeartwork/wallpapers.nix
new file mode 100644
index 000000000000..611c6a70f6bc
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdebindings/perlqt-include-smokeqt.patch b/pkgs/desktops/kde-4.10/kdebindings/perlqt-include-smokeqt.patch
new file mode 100644
index 000000000000..fd67860283b8
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdebindings/perlqt-include-smokeqt.patch
@@ -0,0 +1,19 @@
+commit 48b92b74bc6fd270c33a726257e2879203cf5064
+Author: Yury G. Kudryashov [diff odt] <urkud.urkud@gmail.com>
+Date:   Wed Mar 21 00:47:43 2012 +0400
+
+    Include SMOKE_QTCORE_INCLUDE_DIR
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 48020a1..2263a73 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -14,7 +14,7 @@ find_package(Smoke COMPONENTS QtCore QtGui QtNetwork Qt3Support QtDeclarative Qt
+                               QtOpenGl QtScript QtSql QtSvg QtTest QtUiTools QtWebKit QtXml QtXmlPatterns
+                               Phonon Qwt QSci QImageBlitz)
+                               
+-include_directories(${SMOKE_INCLUDE_DIR} ${QT_INCLUDES} ${CMAKE_CURRENT_SOURCE_DIR}/src)
++include_directories(${SMOKE_INCLUDE_DIR} ${SMOKE_QTCORE_INCLUDE_DIR} ${QT_INCLUDES} ${CMAKE_CURRENT_SOURCE_DIR}/src)
+ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake ${SMOKE_CMAKE_MODULE_DIR})
+ include(MacroOptionalFindPackage)
+ include(MacroOptionalAddBindings)
diff --git a/pkgs/desktops/kde-4.10/kdebindings/perlqt-rewrite-FindPerlMore.patch b/pkgs/desktops/kde-4.10/kdebindings/perlqt-rewrite-FindPerlMore.patch
new file mode 100644
index 000000000000..c7f73815f545
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdebindings/perlqt-rewrite-FindPerlMore.patch
@@ -0,0 +1,118 @@
+commit e702abfd16f610e773fb0310d8c6512991794c63
+Author: Yury G. Kudryashov [diff odt] <urkud.urkud@gmail.com>
+Date:   Wed Mar 21 00:50:02 2012 +0400
+
+    Rewrite FindPerlMore.cmake
+    
+    * Ask perl for expanded paths
+    * Move execute_process to a macro
+    * Add PERL_*_INSTALL_DIR variables that point to CMAKE_INSTALL_PREFIX
+    
+    The last change makes it easy to install a file into CMAKE_INSTALL_PREFIX
+    instead of perl install prefix.Add debug message
+
+diff --git a/cmake/FindPerlMore.cmake b/cmake/FindPerlMore.cmake
+index 6412a47..cc8faf8 100644
+--- a/cmake/FindPerlMore.cmake
++++ b/cmake/FindPerlMore.cmake
+@@ -5,54 +5,52 @@
+ #
+ #  PERL_INCLUDE_PATH = path to where perl.h can be found
+ 
+-if(PERL_INCLUDE_PATH)
+-   # Already in cache, be silent
+-   SET(PERL_HEADERS_FOUND TRUE)
+-endif (PERL_INCLUDE_PATH)		
+-
+-IF(PERL_EXECUTABLE)
+-	EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -MConfig -e "print \$Config{archlib}"
+-   		OUTPUT_VARIABLE PERL_ARCH_LIB_DIR)
+-
+-	EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -MConfig -e "print \$Config{sitearch}"
+-   		OUTPUT_VARIABLE PERL_SITE_ARCH_DIR)
+-
+-	EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -MConfig -e "print \$Config{vendorarch}"
+-   		OUTPUT_VARIABLE PERL_VENDOR_ARCH_DIR)
+-
+-	EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -MConfig -e "print \$Config{sitelib}"
+-   		OUTPUT_VARIABLE PERL_SITE_LIB_DIR)
+-
+-	EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -MConfig -e "print \$Config{vendorlib}"
+-   		OUTPUT_VARIABLE PERL_VENDOR_LIB_DIR)
+-
+-	EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -MConfig -e "print \$Config{version}"
+-   		OUTPUT_VARIABLE PERL_VERSION)
+-
+-	EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -MConfig -e "print \$Config{ccflags}"
+-   		OUTPUT_VARIABLE PERL_CXX_FLAGS)
+-
+-	EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -MConfig -e "print \$Config{ccdlflags}"
+-   		OUTPUT_VARIABLE PERL_CCDL_FLAGS)
+-
+-	EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -MConfig -MFile::Spec -e "print '-L' . File::Spec->catdir(\$Config{archlibexp}, 'CORE')"
+-   		OUTPUT_VARIABLE PERL_EXTRA_LIB_PATHS)
+-
+-	EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -MConfig -e "print \$Config{perllibs}"
+-   		OUTPUT_VARIABLE PERL_LIBS)
+-
+-	FIND_PATH(PERL_INCLUDE_PATH 
+-  		NAMES perl.h
+-  		PATHS ${PERL_ARCH_LIB_DIR}/CORE
+-  	)
+-
+-	if(PERL_INCLUDE_PATH)
+-		SET(PERL_HEADERS_FOUND TRUE)
+-	endif (PERL_INCLUDE_PATH)
+-
+-	MARK_AS_ADVANCED(
+-	  PERL_INCLUDE_PATH
+-	  )
++if(FIND_PERLMORE_REQUIRED)
++  find_package(Perl REQUIRED)
++else()
++ find_package(Perl)
++endif()
++
++macro(_perl_get_config_var name output)
++  execute_process(COMMAND ${PERL_EXECUTABLE} -MConfig -e "print \$Config{${name}}"
++                  OUTPUT_VARIABLE PERL_${output})
++endmacro()
++
++macro(_perl_get_config_dir name)
++  string(TOLOWER ${name} _tmp)
++  string(REPLACE "_" "" _tmp ${_tmp})
++  _perl_get_config_var(${_tmp}exp ${name}_DIR)
++  string(REPLACE "${PERL_ROOT_DIR}" "${CMAKE_INSTALL_PREFIX}" PERL_${name}_INSTALL_DIR "${PERL_${name}_DIR}")
++endmacro()
++
++if(PERL_EXECUTABLE)
++  _perl_get_config_var(prefixexp ROOT_DIR)
++
++  _perl_get_config_dir(ARCH_LIB)
++  _perl_get_config_dir(SITE_ARCH)
++  _perl_get_config_dir(VENDOR_ARCH)
++  _perl_get_config_dir(SITE_LIB)
++  _perl_get_config_dir(VENDOR_LIB)
++
++  _perl_get_config_var(version VERSION)
++  _perl_get_config_var(ccflags CXX_FLAGS)
++  _perl_get_config_var(ccdlflags CCDL_FLAGS)
++
++  EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -MConfig -MFile::Spec -e "print '-L' . File::Spec->catdir(\$Config{archlibexp}, 'CORE')"
++                  OUTPUT_VARIABLE PERL_EXTRA_LIB_PATHS)
++
++  _perl_get_config_var(perllibs LIBS)
++
++  FIND_PATH(PERL_INCLUDE_PATH
++            NAMES perl.h
++            HINTS ${PERL_ARCH_LIB_DIR}/CORE
++  )
++
++  if(PERL_INCLUDE_PATH)
++    SET(PERL_HEADERS_FOUND TRUE)
++  endif (PERL_INCLUDE_PATH)
++
++  MARK_AS_ADVANCED(PERL_INCLUDE_PATH)
+ ENDIF(PERL_EXECUTABLE)
+ 
+ IF(PERL_HEADERS_FOUND)
diff --git a/pkgs/desktops/kde-4.10/kdebindings/perlqt-use-site-arch-install-dir.patch b/pkgs/desktops/kde-4.10/kdebindings/perlqt-use-site-arch-install-dir.patch
new file mode 100644
index 000000000000..04f0c5586771
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdebindings/perlqt-use-site-arch-install-dir.patch
@@ -0,0 +1,454 @@
+commit c78779fcaff587818ee37bec3ded5e0617625b95
+Author: Yury G. Kudryashov [diff odt] <urkud.urkud@gmail.com>
+Date:   Wed Mar 21 01:01:27 2012 +0400
+
+    Install to PERL_SITE_ARCH_INSTALL_DIR
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 48020a1..16188df 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -36,7 +36,6 @@ macro_log_feature(Qwt5_Qt4_FOUND "Qwt5 for Qt4" "Qwt5 libraries for Qt4" "http:/
+ add_definitions(-DDEBUG)
+ 
+ include (FindPerlMore)
+-set(CUSTOM_PERL_SITE_ARCH_DIR ${PERL_SITE_ARCH_DIR} CACHE DIR "Custom installation directory for perl binary extension")
+ 
+ # the RPATH to be used when installing, but only if it's not a system directory
+ GET_FILENAME_COMPONENT(SMOKE_LIB_DIR ${SMOKE_BASE_LIBRARY} PATH)
+diff --git a/INSTALL b/INSTALL
+index d19f97e..97cc9f1 100644
+--- a/INSTALL
++++ b/INSTALL
+@@ -36,7 +36,6 @@ ccmake step.
+ The standard options are:
+     CMAKE_BUILD_TYPE = The type of build ('Debug', 'Release', etc)
+     CMAKE_INSTALL_PREFIX = The location for any executables ( e.g. puic4 )
+-    CUSTOM_PERL_SITE_ARCH_DIR = The location for the perl modules themselves.
+     QT_QMAKE_EXECUTABLE = The path to your system's qmake.
+ 
+ cmake looks in your path for a qmake executable.  If it can't find it, it will
+diff --git a/Makefile.PL b/Makefile.PL
+index df9a13c..31dd912 100755
+--- a/Makefile.PL
++++ b/Makefile.PL
+@@ -3,7 +3,7 @@
+ use strict;
+ use Config;
+ 
+-my ($prefix, $sitearch, $qmake) = ($Config{prefix}, $Config{sitearch});
++my ($prefix, $qmake) = ($Config{prefix});
+ my @cmakeArgs;
+ foreach my $arg (@ARGV) {
+     my $key = $arg;
+@@ -12,7 +12,6 @@ foreach my $arg (@ARGV) {
+     $value =~ s/^[^=]*=//g;
+     if ($key eq 'PREFIX' or $key eq 'INSTALL_BASE') {
+         $prefix = $value;
+-        $sitearch = "$prefix";
+     }
+     elsif ($key eq 'QMAKE') {
+         $qmake = $value;
+@@ -34,7 +33,6 @@ if($^O =~ /win/i){
+ }
+ push @args, "-DCMAKE_INSTALL_PREFIX=$prefix" if $prefix;
+ push @args, "-DQT_QMAKE_EXECUTABLE=$qmake" if $qmake;
+-push @args, "-DCUSTOM_PERL_SITE_ARCH_DIR=$sitearch" if $sitearch;
+ push @args, @cmakeArgs;
+ 
+ if ( eval "require Alien::SmokeQt" ) {
+diff --git a/phonon/lib/CMakeLists.txt b/phonon/lib/CMakeLists.txt
+index f2857c3..78674ea 100644
+--- a/phonon/lib/CMakeLists.txt
++++ b/phonon/lib/CMakeLists.txt
+@@ -1,2 +1,2 @@
+ add_custom_target(phononpm ALL ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/Phonon.pm ${CMAKE_BINARY_DIR}/blib/lib/Phonon.pm)
+-install(FILES Phonon.pm DESTINATION ${CUSTOM_PERL_SITE_ARCH_DIR}/)
++install(FILES Phonon.pm DESTINATION ${PERL_SITE_ARCH_INSTALL_DIR}/)
+diff --git a/phonon/src/CMakeLists.txt b/phonon/src/CMakeLists.txt
+index a04db11..9933dfd 100644
+--- a/phonon/src/CMakeLists.txt
++++ b/phonon/src/CMakeLists.txt
+@@ -37,4 +37,4 @@ target_link_libraries(perl_phonon
+ set_target_properties(perl_phonon PROPERTIES OUTPUT_NAME ${libraryName})
+ set_target_properties(perl_phonon PROPERTIES PREFIX "")
+ 
+-install(TARGETS perl_phonon DESTINATION ${CUSTOM_PERL_SITE_ARCH_DIR}/auto/${libraryName}/)
++install(TARGETS perl_phonon DESTINATION ${PERL_SITE_ARCH_INSTALL_DIR}/auto/${libraryName}/)
+diff --git a/qimageblitz/lib/CMakeLists.txt b/qimageblitz/lib/CMakeLists.txt
+index 0809ba8..22fc1c0 100644
+--- a/qimageblitz/lib/CMakeLists.txt
++++ b/qimageblitz/lib/CMakeLists.txt
+@@ -1,2 +1,2 @@
+ add_custom_target(qimageblitzpm ALL ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/QImageBlitz.pm ${CMAKE_BINARY_DIR}/blib/lib/QImageBlitz.pm)
+-install(FILES QImageBlitz.pm DESTINATION ${CUSTOM_PERL_SITE_ARCH_DIR}/)
++install(FILES QImageBlitz.pm DESTINATION ${PERL_SITE_ARCH_INSTALL_DIR}/)
+diff --git a/qimageblitz/src/CMakeLists.txt b/qimageblitz/src/CMakeLists.txt
+index 02ef494..4f02c1b 100644
+--- a/qimageblitz/src/CMakeLists.txt
++++ b/qimageblitz/src/CMakeLists.txt
+@@ -37,4 +37,4 @@ target_link_libraries(perl_qimageblitz
+ set_target_properties(perl_qimageblitz PROPERTIES OUTPUT_NAME ${libraryName})
+ set_target_properties(perl_qimageblitz PROPERTIES PREFIX "")
+ 
+-install(TARGETS perl_qimageblitz DESTINATION ${CUSTOM_PERL_SITE_ARCH_DIR}/auto/${libraryName}/)
++install(TARGETS perl_qimageblitz DESTINATION ${PERL_SITE_ARCH_INSTALL_DIR}/auto/${libraryName}/)
+diff --git a/qsci/lib/CMakeLists.txt b/qsci/lib/CMakeLists.txt
+index 63b451f..d22869f 100644
+--- a/qsci/lib/CMakeLists.txt
++++ b/qsci/lib/CMakeLists.txt
+@@ -1,2 +1,2 @@
+ add_custom_target(qscipm ALL ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/Qsci.pm ${CMAKE_BINARY_DIR}/blib/lib/Qsci.pm)
+-install(FILES Qsci.pm DESTINATION ${CUSTOM_PERL_SITE_ARCH_DIR}/)
++install(FILES Qsci.pm DESTINATION ${PERL_SITE_ARCH_INSTALL_DIR}/)
+diff --git a/qsci/src/CMakeLists.txt b/qsci/src/CMakeLists.txt
+index 8c1659b..bdcb5a8 100644
+--- a/qsci/src/CMakeLists.txt
++++ b/qsci/src/CMakeLists.txt
+@@ -37,4 +37,4 @@ target_link_libraries(perl_qsci
+ set_target_properties(perl_qsci PROPERTIES OUTPUT_NAME ${libraryName})
+ set_target_properties(perl_qsci PROPERTIES PREFIX "")
+ 
+-install(TARGETS perl_qsci DESTINATION ${CUSTOM_PERL_SITE_ARCH_DIR}/auto/${libraryName}/)
++install(TARGETS perl_qsci DESTINATION ${PERL_SITE_ARCH_INSTALL_DIR}/auto/${libraryName}/)
+diff --git a/qt3support/lib/CMakeLists.txt b/qt3support/lib/CMakeLists.txt
+index 2f04cfa..dda5afa 100644
+--- a/qt3support/lib/CMakeLists.txt
++++ b/qt3support/lib/CMakeLists.txt
+@@ -1,2 +1,2 @@
+ add_custom_target(qt3support4pm ALL ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/Qt3Support4.pm ${CMAKE_BINARY_DIR}/blib/lib/Qt3Support4.pm)
+-install(FILES Qt3Support4.pm DESTINATION ${CUSTOM_PERL_SITE_ARCH_DIR}/)
++install(FILES Qt3Support4.pm DESTINATION ${PERL_SITE_ARCH_INSTALL_DIR}/)
+diff --git a/qt3support/src/CMakeLists.txt b/qt3support/src/CMakeLists.txt
+index b24532e..bed99aa 100644
+--- a/qt3support/src/CMakeLists.txt
++++ b/qt3support/src/CMakeLists.txt
+@@ -37,4 +37,4 @@ target_link_libraries(perl_qt3support4
+ set_target_properties(perl_qt3support4 PROPERTIES OUTPUT_NAME ${libraryName})
+ set_target_properties(perl_qt3support4 PROPERTIES PREFIX "")
+ 
+-install(TARGETS perl_qt3support4 DESTINATION ${CUSTOM_PERL_SITE_ARCH_DIR}/auto/${libraryName}/)
++install(TARGETS perl_qt3support4 DESTINATION ${PERL_SITE_ARCH_INSTALL_DIR}/auto/${libraryName}/)
+diff --git a/qtcore/lib/CMakeLists.txt b/qtcore/lib/CMakeLists.txt
+index ef07d10..1d78196 100644
+--- a/qtcore/lib/CMakeLists.txt
++++ b/qtcore/lib/CMakeLists.txt
+@@ -1,3 +1,3 @@
+ add_subdirectory( QtCore4 )
+ add_custom_target(perlqtcore4pm ALL ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/QtCore4.pm ${CMAKE_BINARY_DIR}/blib/lib/QtCore4.pm)
+-install( FILES QtCore4.pm DESTINATION ${CUSTOM_PERL_SITE_ARCH_DIR} )
++install( FILES QtCore4.pm DESTINATION ${PERL_SITE_ARCH_INSTALL_DIR} )
+diff --git a/qtcore/lib/QtCore4/CMakeLists.txt b/qtcore/lib/QtCore4/CMakeLists.txt
+index 44c7893..06aef20 100644
+--- a/qtcore/lib/QtCore4/CMakeLists.txt
++++ b/qtcore/lib/QtCore4/CMakeLists.txt
+@@ -1,3 +1,3 @@
+-install( FILES signals.pm slots.pm isa.pm debug.pm classinfo.pm DESTINATION ${CUSTOM_PERL_SITE_ARCH_DIR}/QtCore4 )
++install( FILES signals.pm slots.pm isa.pm debug.pm classinfo.pm DESTINATION ${PERL_SITE_ARCH_INSTALL_DIR}/QtCore4 )
+ add_custom_target(perlqt4pmlibmkdir ALL ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/blib/lib/QtCore4)
+ add_custom_target(perlqt4pmlibsubdir ALL ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_BINARY_DIR}/blib/lib/QtCore4)
+diff --git a/qtcore/src/CMakeLists.txt b/qtcore/src/CMakeLists.txt
+index 3910636..b5e645c 100644
+--- a/qtcore/src/CMakeLists.txt
++++ b/qtcore/src/CMakeLists.txt
+@@ -53,10 +53,10 @@ target_link_libraries(perlqtcore4
+ set_target_properties(perlqtcore4 PROPERTIES
+     OUTPUT_NAME ${libraryName}
+     PREFIX ""
+-    INSTALL_NAME_DIR ${CUSTOM_PERL_SITE_ARCH_DIR}/auto/${libraryName}/
++    INSTALL_NAME_DIR ${PERL_SITE_ARCH_INSTALL_DIR}/auto/${libraryName}/
+ )
+ 
+-install(TARGETS perlqtcore4 EXPORT PerlQtExport DESTINATION ${CUSTOM_PERL_SITE_ARCH_DIR}/auto/${libraryName}/)
++install(TARGETS perlqtcore4 EXPORT PerlQtExport DESTINATION ${PERL_SITE_ARCH_INSTALL_DIR}/auto/${libraryName}/)
+ install(FILES binding.h handlers.h listclass_macros.h marshall_basetypes.h marshall_complex.h
+               marshall.h marshall_macros.h marshall_primitives.h marshall_types.h perlqt.h ppport.h
+               QtCore4.h smokehelp.h smokeperl.h util.h
+diff --git a/qtdbus/lib/CMakeLists.txt b/qtdbus/lib/CMakeLists.txt
+index d03a672..a60d603 100644
+--- a/qtdbus/lib/CMakeLists.txt
++++ b/qtdbus/lib/CMakeLists.txt
+@@ -1,2 +1,2 @@
+ add_custom_target(qtdbus4pm ALL ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/QtDBus4.pm ${CMAKE_BINARY_DIR}/blib/lib/QtDBus4.pm)
+-install(FILES QtDBus4.pm DESTINATION ${CUSTOM_PERL_SITE_ARCH_DIR}/)
++install(FILES QtDBus4.pm DESTINATION ${PERL_SITE_ARCH_INSTALL_DIR}/)
+diff --git a/qtdbus/src/CMakeLists.txt b/qtdbus/src/CMakeLists.txt
+index 9aa05a0..5786ea2 100644
+--- a/qtdbus/src/CMakeLists.txt
++++ b/qtdbus/src/CMakeLists.txt
+@@ -31,4 +31,4 @@ target_link_libraries(perl_qtdbus4
+ set_target_properties(perl_qtdbus4 PROPERTIES OUTPUT_NAME "QtDBus4")
+ set_target_properties(perl_qtdbus4 PROPERTIES PREFIX "")
+ 
+-install(TARGETS perl_qtdbus4 DESTINATION ${CUSTOM_PERL_SITE_ARCH_DIR}/auto/QtDBus4/)
++install(TARGETS perl_qtdbus4 DESTINATION ${PERL_SITE_ARCH_INSTALL_DIR}/auto/QtDBus4/)
+diff --git a/qtdeclarative/lib/CMakeLists.txt b/qtdeclarative/lib/CMakeLists.txt
+index e8d2847..b458858 100644
+--- a/qtdeclarative/lib/CMakeLists.txt
++++ b/qtdeclarative/lib/CMakeLists.txt
+@@ -1,2 +1,2 @@
+ add_custom_target(qtdeclarative4pm ALL ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/QtDeclarative4.pm ${CMAKE_BINARY_DIR}/blib/lib/QtDeclarative4.pm)
+-install(FILES QtDeclarative4.pm DESTINATION ${CUSTOM_PERL_SITE_ARCH_DIR}/)
++install(FILES QtDeclarative4.pm DESTINATION ${PERL_SITE_ARCH_INSTALL_DIR}/)
+diff --git a/qtdeclarative/src/CMakeLists.txt b/qtdeclarative/src/CMakeLists.txt
+index 1662167..ec2a8fc 100644
+--- a/qtdeclarative/src/CMakeLists.txt
++++ b/qtdeclarative/src/CMakeLists.txt
+@@ -37,4 +37,4 @@ target_link_libraries(perl_qtdeclarative4
+ set_target_properties(perl_qtdeclarative4 PROPERTIES OUTPUT_NAME ${libraryName})
+ set_target_properties(perl_qtdeclarative4 PROPERTIES PREFIX "")
+ 
+-install(TARGETS perl_qtdeclarative4 DESTINATION ${CUSTOM_PERL_SITE_ARCH_DIR}/auto/${libraryName}/)
++install(TARGETS perl_qtdeclarative4 DESTINATION ${PERL_SITE_ARCH_INSTALL_DIR}/auto/${libraryName}/)
+diff --git a/qtgui/lib/CMakeLists.txt b/qtgui/lib/CMakeLists.txt
+index 82626c8..e62a4ac 100644
+--- a/qtgui/lib/CMakeLists.txt
++++ b/qtgui/lib/CMakeLists.txt
+@@ -1,2 +1,2 @@
+ add_custom_target(qtgui4pm ALL ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/QtGui4.pm ${CMAKE_BINARY_DIR}/blib/lib/QtGui4.pm)
+-install(FILES QtGui4.pm DESTINATION ${CUSTOM_PERL_SITE_ARCH_DIR}/)
++install(FILES QtGui4.pm DESTINATION ${PERL_SITE_ARCH_INSTALL_DIR}/)
+diff --git a/qtgui/src/CMakeLists.txt b/qtgui/src/CMakeLists.txt
+index 4cc8b36..44041b6 100644
+--- a/qtgui/src/CMakeLists.txt
++++ b/qtgui/src/CMakeLists.txt
+@@ -38,4 +38,4 @@ target_link_libraries(perl_qtgui4
+ set_target_properties(perl_qtgui4 PROPERTIES OUTPUT_NAME ${libraryName})
+ set_target_properties(perl_qtgui4 PROPERTIES PREFIX "")
+ 
+-install(TARGETS perl_qtgui4 DESTINATION ${CUSTOM_PERL_SITE_ARCH_DIR}/auto/${libraryName}/)
++install(TARGETS perl_qtgui4 DESTINATION ${PERL_SITE_ARCH_INSTALL_DIR}/auto/${libraryName}/)
+diff --git a/qthelp/lib/CMakeLists.txt b/qthelp/lib/CMakeLists.txt
+index dcf5ebe..da817d4 100644
+--- a/qthelp/lib/CMakeLists.txt
++++ b/qthelp/lib/CMakeLists.txt
+@@ -1,2 +1,2 @@
+ add_custom_target(qthelp4pm ALL ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/QtHelp4.pm ${CMAKE_BINARY_DIR}/blib/lib/QtHelp4.pm)
+-install(FILES QtHelp4.pm DESTINATION ${CUSTOM_PERL_SITE_ARCH_DIR}/)
++install(FILES QtHelp4.pm DESTINATION ${PERL_SITE_ARCH_INSTALL_DIR}/)
+diff --git a/qthelp/src/CMakeLists.txt b/qthelp/src/CMakeLists.txt
+index c00359d..689cb29 100644
+--- a/qthelp/src/CMakeLists.txt
++++ b/qthelp/src/CMakeLists.txt
+@@ -37,4 +37,4 @@ target_link_libraries(perl_qthelp4
+ set_target_properties(perl_qthelp4 PROPERTIES OUTPUT_NAME ${libraryName})
+ set_target_properties(perl_qthelp4 PROPERTIES PREFIX "")
+ 
+-install(TARGETS perl_qthelp4 DESTINATION ${CUSTOM_PERL_SITE_ARCH_DIR}/auto/${libraryName}/)
++install(TARGETS perl_qthelp4 DESTINATION ${PERL_SITE_ARCH_INSTALL_DIR}/auto/${libraryName}/)
+diff --git a/qtmultimedia/lib/CMakeLists.txt b/qtmultimedia/lib/CMakeLists.txt
+index e55f697..5384539 100644
+--- a/qtmultimedia/lib/CMakeLists.txt
++++ b/qtmultimedia/lib/CMakeLists.txt
+@@ -1,2 +1,2 @@
+ add_custom_target(qtmultimedia4pm ALL ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/QtMultimedia4.pm ${CMAKE_BINARY_DIR}/blib/lib/QtMultimedia4.pm)
+-install(FILES QtMultimedia4.pm DESTINATION ${CUSTOM_PERL_SITE_ARCH_DIR}/)
++install(FILES QtMultimedia4.pm DESTINATION ${PERL_SITE_ARCH_INSTALL_DIR}/)
+diff --git a/qtmultimedia/src/CMakeLists.txt b/qtmultimedia/src/CMakeLists.txt
+index 0728aba..df8e552 100644
+--- a/qtmultimedia/src/CMakeLists.txt
++++ b/qtmultimedia/src/CMakeLists.txt
+@@ -37,4 +37,4 @@ target_link_libraries(perl_qtmultimedia4
+ set_target_properties(perl_qtmultimedia4 PROPERTIES OUTPUT_NAME ${libraryName})
+ set_target_properties(perl_qtmultimedia4 PROPERTIES PREFIX "")
+ 
+-install(TARGETS perl_qtmultimedia4 DESTINATION ${CUSTOM_PERL_SITE_ARCH_DIR}/auto/${libraryName}/)
++install(TARGETS perl_qtmultimedia4 DESTINATION ${PERL_SITE_ARCH_INSTALL_DIR}/auto/${libraryName}/)
+diff --git a/qtnetwork/lib/CMakeLists.txt b/qtnetwork/lib/CMakeLists.txt
+index 12cd5dd..d1fb0e6 100644
+--- a/qtnetwork/lib/CMakeLists.txt
++++ b/qtnetwork/lib/CMakeLists.txt
+@@ -1,2 +1,2 @@
+ add_custom_target(qtnetwork4pm ALL ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/QtNetwork4.pm ${CMAKE_BINARY_DIR}/blib/lib/QtNetwork4.pm)
+-install(FILES QtNetwork4.pm DESTINATION ${CUSTOM_PERL_SITE_ARCH_DIR}/)
++install(FILES QtNetwork4.pm DESTINATION ${PERL_SITE_ARCH_INSTALL_DIR}/)
+diff --git a/qtnetwork/src/CMakeLists.txt b/qtnetwork/src/CMakeLists.txt
+index caf8327..0994d57 100644
+--- a/qtnetwork/src/CMakeLists.txt
++++ b/qtnetwork/src/CMakeLists.txt
+@@ -39,4 +39,4 @@ target_link_libraries(perl_qtnetwork4
+ set_target_properties(perl_qtnetwork4 PROPERTIES OUTPUT_NAME ${libraryName})
+ set_target_properties(perl_qtnetwork4 PROPERTIES PREFIX "")
+ 
+-install(TARGETS perl_qtnetwork4 DESTINATION ${CUSTOM_PERL_SITE_ARCH_DIR}/auto/${libraryName}/)
++install(TARGETS perl_qtnetwork4 DESTINATION ${PERL_SITE_ARCH_INSTALL_DIR}/auto/${libraryName}/)
+diff --git a/qtopengl/lib/CMakeLists.txt b/qtopengl/lib/CMakeLists.txt
+index f3b5640..d8dc9e4 100644
+--- a/qtopengl/lib/CMakeLists.txt
++++ b/qtopengl/lib/CMakeLists.txt
+@@ -1,2 +1,2 @@
+ add_custom_target(qtopengl4pm ALL ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/QtOpenGL4.pm ${CMAKE_BINARY_DIR}/blib/lib/QtOpenGL4.pm)
+-install(FILES QtOpenGL4.pm DESTINATION ${CUSTOM_PERL_SITE_ARCH_DIR}/)
++install(FILES QtOpenGL4.pm DESTINATION ${PERL_SITE_ARCH_INSTALL_DIR}/)
+diff --git a/qtopengl/src/CMakeLists.txt b/qtopengl/src/CMakeLists.txt
+index 20493a9..777af89 100644
+--- a/qtopengl/src/CMakeLists.txt
++++ b/qtopengl/src/CMakeLists.txt
+@@ -37,4 +37,4 @@ target_link_libraries(perl_qtopengl4
+ set_target_properties(perl_qtopengl4 PROPERTIES OUTPUT_NAME ${libraryName})
+ set_target_properties(perl_qtopengl4 PROPERTIES PREFIX "")
+ 
+-install(TARGETS perl_qtopengl4 DESTINATION ${CUSTOM_PERL_SITE_ARCH_DIR}/auto/${libraryName}/)
++install(TARGETS perl_qtopengl4 DESTINATION ${PERL_SITE_ARCH_INSTALL_DIR}/auto/${libraryName}/)
+diff --git a/qtscript/lib/CMakeLists.txt b/qtscript/lib/CMakeLists.txt
+index d21dbe5..320ff93 100644
+--- a/qtscript/lib/CMakeLists.txt
++++ b/qtscript/lib/CMakeLists.txt
+@@ -1,2 +1,2 @@
+ add_custom_target(qtscript4pm ALL ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/QtScript4.pm ${CMAKE_BINARY_DIR}/blib/lib/QtScript4.pm)
+-install(FILES QtScript4.pm DESTINATION ${CUSTOM_PERL_SITE_ARCH_DIR}/)
++install(FILES QtScript4.pm DESTINATION ${PERL_SITE_ARCH_INSTALL_DIR}/)
+diff --git a/qtscript/src/CMakeLists.txt b/qtscript/src/CMakeLists.txt
+index dd395be..6ff47d8 100644
+--- a/qtscript/src/CMakeLists.txt
++++ b/qtscript/src/CMakeLists.txt
+@@ -37,4 +37,4 @@ target_link_libraries(perl_qtscript4
+ set_target_properties(perl_qtscript4 PROPERTIES OUTPUT_NAME ${libraryName})
+ set_target_properties(perl_qtscript4 PROPERTIES PREFIX "")
+ 
+-install(TARGETS perl_qtscript4 DESTINATION ${CUSTOM_PERL_SITE_ARCH_DIR}/auto/${libraryName}/)
++install(TARGETS perl_qtscript4 DESTINATION ${PERL_SITE_ARCH_INSTALL_DIR}/auto/${libraryName}/)
+diff --git a/qtsql/lib/CMakeLists.txt b/qtsql/lib/CMakeLists.txt
+index 59336d3..d9dd4d5 100644
+--- a/qtsql/lib/CMakeLists.txt
++++ b/qtsql/lib/CMakeLists.txt
+@@ -1,2 +1,2 @@
+ add_custom_target(qtsql4pm ALL ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/QtSql4.pm ${CMAKE_BINARY_DIR}/blib/lib/QtSql4.pm)
+-install(FILES QtSql4.pm DESTINATION ${CUSTOM_PERL_SITE_ARCH_DIR}/)
++install(FILES QtSql4.pm DESTINATION ${PERL_SITE_ARCH_INSTALL_DIR}/)
+diff --git a/qtsql/src/CMakeLists.txt b/qtsql/src/CMakeLists.txt
+index 3ec2028..59096ba 100644
+--- a/qtsql/src/CMakeLists.txt
++++ b/qtsql/src/CMakeLists.txt
+@@ -37,4 +37,4 @@ target_link_libraries(perl_qtsql4
+ set_target_properties(perl_qtsql4 PROPERTIES OUTPUT_NAME ${libraryName})
+ set_target_properties(perl_qtsql4 PROPERTIES PREFIX "")
+ 
+-install(TARGETS perl_qtsql4 DESTINATION ${CUSTOM_PERL_SITE_ARCH_DIR}/auto/${libraryName}/)
++install(TARGETS perl_qtsql4 DESTINATION ${PERL_SITE_ARCH_INSTALL_DIR}/auto/${libraryName}/)
+diff --git a/qtsvg/lib/CMakeLists.txt b/qtsvg/lib/CMakeLists.txt
+index 33f6deb..bf1dc1f 100644
+--- a/qtsvg/lib/CMakeLists.txt
++++ b/qtsvg/lib/CMakeLists.txt
+@@ -1,2 +1,2 @@
+ add_custom_target(qtsvg4pm ALL ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/QtSvg4.pm ${CMAKE_BINARY_DIR}/blib/lib/QtSvg4.pm)
+-install(FILES QtSvg4.pm DESTINATION ${CUSTOM_PERL_SITE_ARCH_DIR}/)
++install(FILES QtSvg4.pm DESTINATION ${PERL_SITE_ARCH_INSTALL_DIR}/)
+diff --git a/qtsvg/src/CMakeLists.txt b/qtsvg/src/CMakeLists.txt
+index 11eccd2..449bf0f 100644
+--- a/qtsvg/src/CMakeLists.txt
++++ b/qtsvg/src/CMakeLists.txt
+@@ -37,4 +37,4 @@ target_link_libraries(perl_qtsvg4
+ set_target_properties(perl_qtsvg4 PROPERTIES OUTPUT_NAME ${libraryName})
+ set_target_properties(perl_qtsvg4 PROPERTIES PREFIX "")
+ 
+-install(TARGETS perl_qtsvg4 DESTINATION ${CUSTOM_PERL_SITE_ARCH_DIR}/auto/${libraryName}/)
++install(TARGETS perl_qtsvg4 DESTINATION ${PERL_SITE_ARCH_INSTALL_DIR}/auto/${libraryName}/)
+diff --git a/qttest/lib/CMakeLists.txt b/qttest/lib/CMakeLists.txt
+index 3bfa78c..5a8d8da 100644
+--- a/qttest/lib/CMakeLists.txt
++++ b/qttest/lib/CMakeLists.txt
+@@ -1,2 +1,2 @@
+ add_custom_target(qttest4pm ALL ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/QtTest4.pm ${CMAKE_BINARY_DIR}/blib/lib/QtTest4.pm)
+-install(FILES QtTest4.pm DESTINATION ${CUSTOM_PERL_SITE_ARCH_DIR}/)
++install(FILES QtTest4.pm DESTINATION ${PERL_SITE_ARCH_INSTALL_DIR}/)
+diff --git a/qttest/src/CMakeLists.txt b/qttest/src/CMakeLists.txt
+index 5492e55..d4662b1 100644
+--- a/qttest/src/CMakeLists.txt
++++ b/qttest/src/CMakeLists.txt
+@@ -38,4 +38,4 @@ target_link_libraries(perl_qttest4
+ set_target_properties(perl_qttest4 PROPERTIES OUTPUT_NAME ${libraryName})
+ set_target_properties(perl_qttest4 PROPERTIES PREFIX "")
+ 
+-install(TARGETS perl_qttest4 DESTINATION ${CUSTOM_PERL_SITE_ARCH_DIR}/auto/${libraryName}/)
++install(TARGETS perl_qttest4 DESTINATION ${PERL_SITE_ARCH_INSTALL_DIR}/auto/${libraryName}/)
+diff --git a/qtuitools/lib/CMakeLists.txt b/qtuitools/lib/CMakeLists.txt
+index 119e40e..3a5f472 100644
+--- a/qtuitools/lib/CMakeLists.txt
++++ b/qtuitools/lib/CMakeLists.txt
+@@ -1,2 +1,2 @@
+ add_custom_target(qtuitools4pm ALL ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/QtUiTools4.pm ${CMAKE_BINARY_DIR}/blib/lib/QtUiTools4.pm)
+-install(FILES QtUiTools4.pm DESTINATION ${CUSTOM_PERL_SITE_ARCH_DIR}/)
++install(FILES QtUiTools4.pm DESTINATION ${PERL_SITE_ARCH_INSTALL_DIR}/)
+diff --git a/qtuitools/src/CMakeLists.txt b/qtuitools/src/CMakeLists.txt
+index a8ae4a2..ecc079f 100644
+--- a/qtuitools/src/CMakeLists.txt
++++ b/qtuitools/src/CMakeLists.txt
+@@ -37,4 +37,4 @@ target_link_libraries(perl_qtuitools4
+ set_target_properties(perl_qtuitools4 PROPERTIES OUTPUT_NAME ${libraryName})
+ set_target_properties(perl_qtuitools4 PROPERTIES PREFIX "")
+ 
+-install(TARGETS perl_qtuitools4 DESTINATION ${CUSTOM_PERL_SITE_ARCH_DIR}/auto/${libraryName}/)
++install(TARGETS perl_qtuitools4 DESTINATION ${PERL_SITE_ARCH_INSTALL_DIR}/auto/${libraryName}/)
+diff --git a/qtwebkit/lib/CMakeLists.txt b/qtwebkit/lib/CMakeLists.txt
+index a02f7ee..3846227 100644
+--- a/qtwebkit/lib/CMakeLists.txt
++++ b/qtwebkit/lib/CMakeLists.txt
+@@ -1,2 +1,2 @@
+ add_custom_target(qtwebkit4pm ALL ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/QtWebKit4.pm ${CMAKE_BINARY_DIR}/blib/lib/QtWebKit4.pm)
+-install(FILES QtWebKit4.pm DESTINATION ${CUSTOM_PERL_SITE_ARCH_DIR}/)
++install(FILES QtWebKit4.pm DESTINATION ${PERL_SITE_ARCH_INSTALL_DIR}/)
+diff --git a/qtwebkit/src/CMakeLists.txt b/qtwebkit/src/CMakeLists.txt
+index a6e00f8..dbebc44 100644
+--- a/qtwebkit/src/CMakeLists.txt
++++ b/qtwebkit/src/CMakeLists.txt
+@@ -37,4 +37,4 @@ target_link_libraries(perl_qtwebkit4
+ set_target_properties(perl_qtwebkit4 PROPERTIES OUTPUT_NAME ${libraryName})
+ set_target_properties(perl_qtwebkit4 PROPERTIES PREFIX "")
+ 
+-install(TARGETS perl_qtwebkit4 DESTINATION ${CUSTOM_PERL_SITE_ARCH_DIR}/auto/${libraryName}/)
++install(TARGETS perl_qtwebkit4 DESTINATION ${PERL_SITE_ARCH_INSTALL_DIR}/auto/${libraryName}/)
+diff --git a/qtxml/lib/CMakeLists.txt b/qtxml/lib/CMakeLists.txt
+index 5505bc4..7db743c 100644
+--- a/qtxml/lib/CMakeLists.txt
++++ b/qtxml/lib/CMakeLists.txt
+@@ -1,2 +1,2 @@
+ add_custom_target(qtxml4pm ALL ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/QtXml4.pm ${CMAKE_BINARY_DIR}/blib/lib/QtXml4.pm)
+-install(FILES QtXml4.pm DESTINATION ${CUSTOM_PERL_SITE_ARCH_DIR}/)
++install(FILES QtXml4.pm DESTINATION ${PERL_SITE_ARCH_INSTALL_DIR}/)
+diff --git a/qtxml/src/CMakeLists.txt b/qtxml/src/CMakeLists.txt
+index 018508c..a351609 100644
+--- a/qtxml/src/CMakeLists.txt
++++ b/qtxml/src/CMakeLists.txt
+@@ -37,4 +37,4 @@ target_link_libraries(perl_qtxml4
+ set_target_properties(perl_qtxml4 PROPERTIES OUTPUT_NAME ${libraryName})
+ set_target_properties(perl_qtxml4 PROPERTIES PREFIX "")
+ 
+-install(TARGETS perl_qtxml4 DESTINATION ${CUSTOM_PERL_SITE_ARCH_DIR}/auto/${libraryName}/)
++install(TARGETS perl_qtxml4 DESTINATION ${PERL_SITE_ARCH_INSTALL_DIR}/auto/${libraryName}/)
+diff --git a/qtxmlpatterns/lib/CMakeLists.txt b/qtxmlpatterns/lib/CMakeLists.txt
+index a35f3df..3d86103 100644
+--- a/qtxmlpatterns/lib/CMakeLists.txt
++++ b/qtxmlpatterns/lib/CMakeLists.txt
+@@ -1,2 +1,2 @@
+ add_custom_target(qtxmlpatterns4pm ALL ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/QtXmlPatterns4.pm ${CMAKE_BINARY_DIR}/blib/lib/QtXmlPatterns4.pm)
+-install(FILES QtXmlPatterns4.pm DESTINATION ${CUSTOM_PERL_SITE_ARCH_DIR}/)
++install(FILES QtXmlPatterns4.pm DESTINATION ${PERL_SITE_ARCH_INSTALL_DIR}/)
+diff --git a/qtxmlpatterns/src/CMakeLists.txt b/qtxmlpatterns/src/CMakeLists.txt
+index 9970a98..563e922 100644
+--- a/qtxmlpatterns/src/CMakeLists.txt
++++ b/qtxmlpatterns/src/CMakeLists.txt
+@@ -37,4 +37,4 @@ target_link_libraries(perl_qtxmlpatterns4
+ set_target_properties(perl_qtxmlpatterns4 PROPERTIES OUTPUT_NAME ${libraryName})
+ set_target_properties(perl_qtxmlpatterns4 PROPERTIES PREFIX "")
+ 
+-install(TARGETS perl_qtxmlpatterns4 DESTINATION ${CUSTOM_PERL_SITE_ARCH_DIR}/auto/${libraryName}/)
++install(TARGETS perl_qtxmlpatterns4 DESTINATION ${PERL_SITE_ARCH_INSTALL_DIR}/auto/${libraryName}/)
+diff --git a/qwt/lib/CMakeLists.txt b/qwt/lib/CMakeLists.txt
+index 0013c4d..d67ffbf 100644
+--- a/qwt/lib/CMakeLists.txt
++++ b/qwt/lib/CMakeLists.txt
+@@ -1,2 +1,2 @@
+ add_custom_target(qwtpm ALL ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/Qwt.pm ${CMAKE_BINARY_DIR}/blib/lib/Qwt.pm)
+-install(FILES Qwt.pm DESTINATION ${CUSTOM_PERL_SITE_ARCH_DIR}/)
++install(FILES Qwt.pm DESTINATION ${PERL_SITE_ARCH_INSTALL_DIR}/)
+diff --git a/qwt/src/CMakeLists.txt b/qwt/src/CMakeLists.txt
+index 869d818..b644e80 100644
+--- a/qwt/src/CMakeLists.txt
++++ b/qwt/src/CMakeLists.txt
+@@ -37,4 +37,4 @@ target_link_libraries(perl_qwt
+ set_target_properties(perl_qwt PROPERTIES OUTPUT_NAME ${libraryName})
+ set_target_properties(perl_qwt PROPERTIES PREFIX "")
+ 
+-install(TARGETS perl_qwt DESTINATION ${CUSTOM_PERL_SITE_ARCH_DIR}/auto/${libraryName}/)
++install(TARGETS perl_qwt DESTINATION ${PERL_SITE_ARCH_INSTALL_DIR}/auto/${libraryName}/)
diff --git a/pkgs/desktops/kde-4.10/kdebindings/perlqt.nix b/pkgs/desktops/kde-4.10/kdebindings/perlqt.nix
new file mode 100644
index 000000000000..73d89155e28a
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdebindings/perlqt.nix
@@ -0,0 +1,17 @@
+{ kde, cmake, smokeqt, perl }:
+
+kde {
+#todo: qscintilla2, qwt5
+  buildInputs = [ smokeqt perl ];
+  nativeBuildInputs = [ cmake ];
+
+  patches =
+    # The order is important
+    [ ./perlqt-include-smokeqt.patch ./perlqt-rewrite-FindPerlMore.patch
+      ./perlqt-use-site-arch-install-dir.patch
+    ];
+
+  meta = {
+    description = "Perl bindings for Qt library";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdebindings/pykde4-hardcode-lib-python.patch b/pkgs/desktops/kde-4.10/kdebindings/pykde4-hardcode-lib-python.patch
new file mode 100644
index 000000000000..e7a7cb4c661c
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdebindings/pykde4-hardcode-lib-python.patch
@@ -0,0 +1,18 @@
+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.10/kdebindings/pykde4.nix b/pkgs/desktops/kde-4.10/kdebindings/pykde4.nix
new file mode 100644
index 000000000000..baa5e807236c
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdebindings/pykde4.nix
@@ -0,0 +1,32 @@
+{ kde, kdelibs, python, sip, pyqt4, kdepimlibs, shared_desktop_ontologies,
+  boost, lndir }:
+
+let pydir = "lib/python${python.majorVersion}"; in
+
+kde {
+#todo: doesn't build
+  buildInputs = [ python kdepimlibs
+# shared_desktop_ontologies boost 
+];
+
+  propagatedBuildInputs = [ pyqt4 sip ];
+
+#  patches = [ ./pykde4-hardcode-lib-python.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}
+      cmakeFlagsArray=( "-DSIP_DEFAULT_SIP_DIR=$prefix/share/sip" )
+    '';
+
+  meta = {
+    description = "Python bindings for KDE";
+    kde.name = "pykde4";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdebindings/qtruby-include-smokeqt.patch b/pkgs/desktops/kde-4.10/kdebindings/qtruby-include-smokeqt.patch
new file mode 100644
index 000000000000..7d20a3c1c0bc
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdebindings/qtruby-include-smokeqt.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 33078b4..1a6ad2e 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -5,7 +5,7 @@ set(COMPILE_RUBY FALSE CACHE INTERNAL "")
+ find_package(Ruby REQUIRED)
+ find_package(Qt4 REQUIRED)
+ find_package(Smoke COMPONENTS QtCore QtGui QtXml QtOpenGl QtSql QtNetwork QtDbus QtSvg Phonon QSci QtDeclarative QtScript QtWebkit QtUiTools QtTest Qwt)
+-include_directories(${SMOKE_INCLUDE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/src ${QT_INCLUDES})
++include_directories(${SMOKE_INCLUDE_DIR} ${SMOKE_QTCORE_INCLUDE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/src ${QT_INCLUDES})
+ 
+ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${SMOKE_CMAKE_MODULE_DIR})
+ include(MacroOptionalFindPackage)
diff --git a/pkgs/desktops/kde-4.10/kdebindings/qtruby-install-prefix.patch b/pkgs/desktops/kde-4.10/kdebindings/qtruby-install-prefix.patch
new file mode 100644
index 000000000000..bd95a0d8bd3d
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdebindings/qtruby-install-prefix.patch
@@ -0,0 +1,15 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 33078b4..30aec0e 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -31,8 +31,8 @@ if (NOT COMPILE_RUBY)
+     return()
+ endif (NOT COMPILE_RUBY)
+ 
+-SET(CUSTOM_RUBY_SITE_ARCH_DIR ${RUBY_SITEARCH_DIR} CACHE DIR "custom installation directory for ruby binary extension" )
+-SET(CUSTOM_RUBY_SITE_LIB_DIR ${RUBY_SITELIB_DIR} CACHE DIR "custom installation directory for ruby extension" )
++string(REPLACE "${RUBY_ROOT_DIR}" "${CMAKE_INSTALL_PREFIX}" CUSTOM_RUBY_SITE_ARCH_DIR ${RUBY_SITEARCH_DIR})
++string(REPLACE "${RUBY_ROOT_DIR}" "${CMAKE_INSTALL_PREFIX}" CUSTOM_RUBY_SITE_LIB_DIR ${RUBY_SITELIB_DIR})
+ 
+ # compute an overall version number which can be compared at once
+ MATH(EXPR RUBY_VERSION_NUMBER "${RUBY_VERSION_MAJOR}*10000 + ${RUBY_VERSION_MINOR}*100 + ${RUBY_VERSION_PATCH}")
diff --git a/pkgs/desktops/kde-4.10/kdebindings/qtruby.nix b/pkgs/desktops/kde-4.10/kdebindings/qtruby.nix
new file mode 100644
index 000000000000..29faf2af15c2
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdebindings/qtruby.nix
@@ -0,0 +1,17 @@
+{ kde, cmake, smokeqt, ruby }:
+
+kde {
+#todo: scintilla2, qwt5
+  buildInputs = [ smokeqt ruby ];
+  nativeBuildInputs = [ cmake ];
+
+  # The second patch is not ready for upstream submmission. I should add an
+  # option() instead.
+  patches = [ ./qtruby-include-smokeqt.patch ./qtruby-install-prefix.patch ];
+
+  cmakeFlags="-DRUBY_ROOT_DIR=${ruby}";
+
+  meta = {
+    description = "Ruby bindings for Qt library";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdebindings/smokegen-nix.patch b/pkgs/desktops/kde-4.10/kdebindings/smokegen-nix.patch
new file mode 100644
index 000000000000..03df484b63e4
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdebindings/smokegen-nix.patch
@@ -0,0 +1,46 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 79945c4..a244d0f 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -32,10 +32,6 @@ set(generator_SRC
+     type.cpp
+ )
+ 
+-# force RPATH so that the binary is usable from within the build tree
+-set (CMAKE_SKIP_BUILD_RPATH FALSE)
+-set (CMAKE_SKIP_RPATH FALSE)
+-
+ configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/config.h.in config.h @ONLY )
+ 
+ add_executable(smokegen ${generator_SRC})
+diff --git a/cmake/SmokeConfig.cmake.in b/cmake/SmokeConfig.cmake.in
+index 947315c..de8d66c 100644
+--- a/cmake/SmokeConfig.cmake.in
++++ b/cmake/SmokeConfig.cmake.in
+@@ -44,21 +44,19 @@ macro (find_smoke_component name)
+         set (SMOKE_${uppercase}_FOUND FALSE CACHE INTERNAL "")
+ 
+         find_path(SMOKE_${uppercase}_INCLUDE_DIR 
+-            ${lowercase}_smoke.h 
+-            PATH ${SMOKE_INCLUDE_DIR}
+-            NO_DEFAULT_PATH
++            ${lowercase}_smoke.h
++            HINTS ${SMOKE_INCLUDE_DIR}
++            PATH_SUFFIXES smoke
+             )
+         if(WIN32)
+ 		    # DLLs are in the bin directory.
+             find_library(SMOKE_${uppercase}_LIBRARY
+                 smoke${lowercase}
+-                PATHS "@CMAKE_INSTALL_PREFIX@/bin"
+-                NO_DEFAULT_PATH)
++                PATHS "@CMAKE_INSTALL_PREFIX@/bin")
+         else(WIN32)
+             find_library(SMOKE_${uppercase}_LIBRARY
+                 smoke${lowercase}
+-                PATHS "@SMOKE_LIBRARY_PREFIX@"
+-                NO_DEFAULT_PATH)
++                PATHS "@SMOKE_LIBRARY_PREFIX@")
+         endif(WIN32)
+ 
+         if (NOT SMOKE_${uppercase}_INCLUDE_DIR OR NOT SMOKE_${uppercase}_LIBRARY)
diff --git a/pkgs/desktops/kde-4.10/kdebindings/smokegen.nix b/pkgs/desktops/kde-4.10/kdebindings/smokegen.nix
new file mode 100644
index 000000000000..8b5da2a641dd
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdebindings/smokegen.nix
@@ -0,0 +1,13 @@
+{ kde, qt4, cmake }:
+
+kde {
+  buildInputs = [ qt4 ];
+  nativeBuildInputs = [ cmake ];
+
+  patches = [ ./smokegen-nix.patch ];
+
+  meta = {
+    description = "C++ parser used to generate language bindings for Qt/KDE";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdebindings/smokekde.nix b/pkgs/desktops/kde-4.10/kdebindings/smokekde.nix
new file mode 100644
index 000000000000..e7e5101c972f
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdebindings/smokekde.nix
@@ -0,0 +1,16 @@
+{ kde, cmake, smokeqt, kdelibs, akonadi, kdepimlibs, okular
+, shared_desktop_ontologies, attica, nepomuk_core }:
+
+kde {
+  # attica, akonadi and kdepimlibs are disabled due to smokegen crash
+  # okular is disabled because the code generated is broken
+  buildInputs = [
+    smokeqt kdelibs shared_desktop_ontologies
+  ];
+  nativeBuildInputs = [ cmake ];
+
+  cmakeFlags = "-DQTDEFINES_FILE=${smokeqt}/share/smokegen/qtdefines";
+  meta = {
+    description = "SMOKE bindings for kdelibs";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdebindings/smokeqt.nix b/pkgs/desktops/kde-4.10/kdebindings/smokeqt.nix
new file mode 100644
index 000000000000..e95b686aee20
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdebindings/smokeqt.nix
@@ -0,0 +1,13 @@
+{ kde, qt4, cmake, phonon, qimageblitz, smokegen }:
+
+kde {
+#todo: Qwt5, QScintilla2
+  propagatedBuildInputs = [ qt4 phonon qimageblitz ];
+  nativeBuildInputs = [ cmake ];
+  propagatedNativeBuildInputs = [ smokegen ];
+
+  meta = {
+    description = "C++ parser used to generate language bindings for Qt/KDE";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdeedu/analitza.nix b/pkgs/desktops/kde-4.10/kdeedu/analitza.nix
new file mode 100644
index 000000000000..74c3a1ebb200
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdeedu/blinken.nix b/pkgs/desktops/kde-4.10/kdeedu/blinken.nix
new file mode 100644
index 000000000000..cdf9728833c2
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdeedu/blinken.nix
@@ -0,0 +1,8 @@
+{ kde, kdelibs }:
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Memory Enhancement Game";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdeedu/cantor.nix b/pkgs/desktops/kde-4.10/kdeedu/cantor.nix
new file mode 100644
index 000000000000..d2a1b095b82f
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdeedu/cantor.nix
@@ -0,0 +1,11 @@
+{ kde, kdelibs, libspectre, analitza, rLang, pkgconfig, gfortran, libqalculate }:
+kde {
+
+  buildInputs = [ kdelibs libspectre analitza rLang gfortran libqalculate];
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  meta = {
+    description = "KDE Frontend to Mathematical Software";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdeedu/kalgebra.nix b/pkgs/desktops/kde-4.10/kdeedu/kalgebra.nix
new file mode 100644
index 000000000000..3675c3a225f4
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdeedu/kalgebra.nix
@@ -0,0 +1,8 @@
+{ kde, kdelibs, libkdeedu, analitza }:
+kde {
+  buildInputs = [ kdelibs libkdeedu analitza ];
+
+  meta = {
+    description = "2D and 3D Graph Calculator";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdeedu/kalzium.nix b/pkgs/desktops/kde-4.10/kdeedu/kalzium.nix
new file mode 100644
index 000000000000..78fa8119583e
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdeedu/kalzium.nix
@@ -0,0 +1,11 @@
+{ kde, kdelibs, facile, ocaml, eigen, openbabel, avogadro, pkgconfig }:
+kde {
+#todo:chemical mime data
+  buildInputs = [ kdelibs facile ocaml eigen openbabel avogadro ];
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  meta = {
+    description = "Periodic Table of Elements";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdeedu/kanagram.nix b/pkgs/desktops/kde-4.10/kdeedu/kanagram.nix
new file mode 100644
index 000000000000..8759c96d78c4
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdeedu/kbruch.nix b/pkgs/desktops/kde-4.10/kdeedu/kbruch.nix
new file mode 100644
index 000000000000..dc50f1e85a37
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdeedu/kbruch.nix
@@ -0,0 +1,8 @@
+{ kde, kdelibs }:
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Practice Fractions";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdeedu/kgeography.nix b/pkgs/desktops/kde-4.10/kdeedu/kgeography.nix
new file mode 100644
index 000000000000..bd8d27c8d6e2
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdeedu/kgeography.nix
@@ -0,0 +1,8 @@
+{ kde, kdelibs }:
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Geography Trainer";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdeedu/khangman.nix b/pkgs/desktops/kde-4.10/kdeedu/khangman.nix
new file mode 100644
index 000000000000..997b50e906a2
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdeedu/kig.nix b/pkgs/desktops/kde-4.10/kdeedu/kig.nix
new file mode 100644
index 000000000000..bd5ef67529cc
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdeedu/kiten.nix b/pkgs/desktops/kde-4.10/kdeedu/kiten.nix
new file mode 100644
index 000000000000..939b7a9f77a2
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdeedu/klettres.nix b/pkgs/desktops/kde-4.10/kdeedu/klettres.nix
new file mode 100644
index 000000000000..7a0fa83078e3
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdeedu/kmplot.nix b/pkgs/desktops/kde-4.10/kdeedu/kmplot.nix
new file mode 100644
index 000000000000..18458cf6f0bf
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdeedu/kstars.nix b/pkgs/desktops/kde-4.10/kdeedu/kstars.nix
new file mode 100644
index 000000000000..0f63afe9e0d7
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdeedu/kstars.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs, eigen, xplanet, indilib }:
+
+kde {
+#todo:wcslib, doesn't build
+  buildInputs = [ kdelibs eigen xplanet indilib ];
+
+  meta = {
+    description = "A KDE graphical desktop planetarium";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdeedu/ktouch.nix b/pkgs/desktops/kde-4.10/kdeedu/ktouch.nix
new file mode 100644
index 000000000000..9e606adde336
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdeedu/ktouch.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs, libxkbfile }:
+
+kde {
+  buildInputs = [ kdelibs libxkbfile ];
+
+  meta = {
+    description = "Touch Typing Tutor";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdeedu/kturtle.nix b/pkgs/desktops/kde-4.10/kdeedu/kturtle.nix
new file mode 100644
index 000000000000..1e1922b1410d
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdeedu/kturtle.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Educational Programming Environment";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdeedu/kwordquiz.nix b/pkgs/desktops/kde-4.10/kdeedu/kwordquiz.nix
new file mode 100644
index 000000000000..1b33ba2e469f
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdeedu/libkdeedu.nix b/pkgs/desktops/kde-4.10/kdeedu/libkdeedu.nix
new file mode 100644
index 000000000000..def6c85fefe2
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdeedu/marble.nix b/pkgs/desktops/kde-4.10/kdeedu/marble.nix
new file mode 100644
index 000000000000..4f73472f6314
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdeedu/marble.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs, gpsd }:
+
+kde {
+#todo: package QextSerialPort, libshp(shapelib), QtMobility, QtLocation, libwlocate
+  buildInputs = [ kdelibs gpsd ];
+
+  meta = {
+    description = "Marble Virtual Globe";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdeedu/pairs.nix b/pkgs/desktops/kde-4.10/kdeedu/pairs.nix
new file mode 100644
index 000000000000..36c4aba9604b
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdeedu/pairs.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "A memory and pairs game";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdeedu/parley.nix b/pkgs/desktops/kde-4.10/kdeedu/parley.nix
new file mode 100644
index 000000000000..f9f86dde150d
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdeedu/parley.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs, libkdeedu, attica }:
+
+kde {
+  buildInputs = [ kdelibs libkdeedu attica ];
+
+  meta = {
+    description = "Vocabulary Trainer";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdeedu/rocs.nix b/pkgs/desktops/kde-4.10/kdeedu/rocs.nix
new file mode 100644
index 000000000000..91976b840011
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdeedu/step.nix b/pkgs/desktops/kde-4.10/kdeedu/step.nix
new file mode 100644
index 000000000000..fac9974baf18
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdegames/bomber.nix b/pkgs/desktops/kde-4.10/kdegames/bomber.nix
new file mode 100644
index 000000000000..026227910f21
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdegames/bomber.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs, libkdegames }:
+kde {
+  buildInputs = [ kdelibs libkdegames ];
+  meta = {
+    description = "a single player arcade game. The player is invading various cities in a plane that is decreasing in height";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdegames/bovo.nix b/pkgs/desktops/kde-4.10/kdegames/bovo.nix
new file mode 100644
index 000000000000..b0e7d99c589f
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdegames/bovo.nix
@@ -0,0 +1,8 @@
+{ kde, kdelibs, libkdegames }:
+kde {
+  buildInputs = [ kdelibs libkdegames ];
+  meta = {
+    description = "a Gomoku (from Japanese 五目並べ - lit. \"five points\") like game for two players, where the opponents alternate in placing their respective pictogram on the game board";
+  };
+
+}
diff --git a/pkgs/desktops/kde-4.10/kdegames/granatier.nix b/pkgs/desktops/kde-4.10/kdegames/granatier.nix
new file mode 100644
index 000000000000..9f1ab0053099
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdegames/granatier.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs, libkdegames }:
+kde {
+  buildInputs = [ kdelibs libkdegames ];
+  meta = {
+    description = "a clone of the classic Bomberman game, inspired by the work of the Clanbomber clone";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdegames/kajongg.nix b/pkgs/desktops/kde-4.10/kdegames/kajongg.nix
new file mode 100644
index 000000000000..609850c3abfb
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdegames/kajongg.nix
@@ -0,0 +1,13 @@
+{ kde, kdelibs, libkdegames, pythonPackages, sqlite,  pykde4 }:
+kde rec {
+#todo: doesn't build
+  buildInputs = [ kdelibs libkdegames pythonPackages.python pythonPackages.wrapPython sqlite ] ++ pythonPath;
+
+  pythonPath = [ pythonPackages.twisted pykde4 ];
+
+  postInstall = "wrapPythonPrograms";
+
+  meta = {
+    description = "an ancient Chinese board game for 4 players";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdegames/kapman.nix b/pkgs/desktops/kde-4.10/kdegames/kapman.nix
new file mode 100644
index 000000000000..f10e099da3cc
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdegames/kapman.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs, libkdegames }:
+kde {
+  buildInputs = [ kdelibs libkdegames ];
+  meta = {
+    description = "a clone of the well known game Pac-Man";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdegames/katomic.nix b/pkgs/desktops/kde-4.10/kdegames/katomic.nix
new file mode 100644
index 000000000000..a9936c04f0ea
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdegames/katomic.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs, libkdegames }:
+kde {
+  buildInputs = [ kdelibs libkdegames ];
+  meta = {
+    description = "a fun and educational puzzle game built around molecular geometry";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdegames/kblackbox.nix b/pkgs/desktops/kde-4.10/kdegames/kblackbox.nix
new file mode 100644
index 000000000000..27eeff2f65bb
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdegames/kblackbox.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs, libkdegames }:
+kde {
+  buildInputs = [ kdelibs libkdegames ];
+  meta = {
+    description = "a game of hide and seek played on an grid of boxes, where the player shoots rays into the grid to deduce the positions of hidden objects";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdegames/kblocks.nix b/pkgs/desktops/kde-4.10/kdegames/kblocks.nix
new file mode 100644
index 000000000000..98cf068de09a
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdegames/kblocks.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs, libkdegames }:
+kde {
+  buildInputs = [ kdelibs libkdegames ];
+  meta = {
+    description = "a classic single player falling blocks puzzle game";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdegames/kbounce.nix b/pkgs/desktops/kde-4.10/kdegames/kbounce.nix
new file mode 100644
index 000000000000..77fa0db63529
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdegames/kbounce.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs, libkdegames }:
+kde {
+  buildInputs = [ kdelibs libkdegames ];
+  meta = {
+    description = "a single player arcade game with the elements of puzzle";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdegames/kbreakout.nix b/pkgs/desktops/kde-4.10/kdegames/kbreakout.nix
new file mode 100644
index 000000000000..3a484d919bbb
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdegames/kbreakout.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs, libkdegames }:
+kde {
+  buildInputs = [ kdelibs libkdegames ];
+  meta = {
+    description = "a Breakout-like game. Its object is to destroy as many bricks as possible without losing the ball";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdegames/kdiamond.nix b/pkgs/desktops/kde-4.10/kdegames/kdiamond.nix
new file mode 100644
index 000000000000..06dfcee5ac39
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdegames/kdiamond.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs, libkdegames }:
+kde {
+  buildInputs = [ kdelibs libkdegames ];
+  meta = {
+    description = "a single player puzzle game. The object of the game is to build lines of three similar diamonds";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdegames/kfourinline.nix b/pkgs/desktops/kde-4.10/kdegames/kfourinline.nix
new file mode 100644
index 000000000000..11b8838e7082
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdegames/kfourinline.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs, libkdegames }:
+kde {
+  buildInputs = [ kdelibs libkdegames ];
+  meta = {
+    description = "a board game for two players based on the Connect-Four game";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdegames/kgoldrunner.nix b/pkgs/desktops/kde-4.10/kdegames/kgoldrunner.nix
new file mode 100644
index 000000000000..6217c47a8065
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdegames/kgoldrunner.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs, libkdegames }:
+kde {
+  buildInputs = [ kdelibs libkdegames ];
+  meta = {
+    description = "an action game where the hero runs through a maze, climbs stairs, dig holes and dodges enemies in order to collect all the gold nuggets and escape to the next level";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdegames/kigo.nix b/pkgs/desktops/kde-4.10/kdegames/kigo.nix
new file mode 100644
index 000000000000..32eee67cc1e0
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdegames/kigo.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs, libkdegames }:
+kde {
+  buildInputs = [ kdelibs libkdegames ];
+  meta = {
+    description = "an open-source implementation of the popular Go game";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdegames/killbots.nix b/pkgs/desktops/kde-4.10/kdegames/killbots.nix
new file mode 100644
index 000000000000..d9c1472495e7
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdegames/killbots.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs, libkdegames }:
+kde {
+  buildInputs = [ kdelibs libkdegames ];
+  meta = {
+    description = "a simple game of evading killer robots";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdegames/kiriki.nix b/pkgs/desktops/kde-4.10/kdegames/kiriki.nix
new file mode 100644
index 000000000000..72f7ab67501b
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdegames/kiriki.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs, libkdegames }:
+kde {
+  buildInputs = [ kdelibs libkdegames ];
+  meta = {
+    description = "an addictive and fun dice game, designed to be played by as many as six players";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdegames/kjumpingcube.nix b/pkgs/desktops/kde-4.10/kdegames/kjumpingcube.nix
new file mode 100644
index 000000000000..a6d22cff51c3
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdegames/kjumpingcube.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs, libkdegames }:
+kde {
+  buildInputs = [ kdelibs libkdegames ];
+  meta = {
+    description = "a simple dice driven tactical game";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdegames/klickety.nix b/pkgs/desktops/kde-4.10/kdegames/klickety.nix
new file mode 100644
index 000000000000..b592bc40641f
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdegames/klickety.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs, libkdegames }:
+kde {
+  buildInputs = [ kdelibs libkdegames ];
+  meta = {
+    description = "a puzzle game where the player removes groups of colored marbles to clear the board";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdegames/klines.nix b/pkgs/desktops/kde-4.10/kdegames/klines.nix
new file mode 100644
index 000000000000..90952fe91c07
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdegames/klines.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs, libkdegames }:
+kde {
+  buildInputs = [ kdelibs libkdegames ];
+  meta = {
+    description = "a simple but highly addictive one player game. The player has to move the colored balls around the game board, gathering them into the lines of the same color by five";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdegames/kmahjongg.nix b/pkgs/desktops/kde-4.10/kdegames/kmahjongg.nix
new file mode 100644
index 000000000000..946b531ff127
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdegames/kmahjongg.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs, libkdegames, libkmahjongg }:
+kde {
+  buildInputs = [ kdelibs libkdegames libkmahjongg ];
+  meta = {
+    description = "the tiles are scrambled and staked on top of each other to resemble a certain shape. The player is then expected to remove all the tiles off the game board by locating each tile's matching pair";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdegames/kmines.nix b/pkgs/desktops/kde-4.10/kdegames/kmines.nix
new file mode 100644
index 000000000000..538454e95984
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdegames/kmines.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs, libkdegames }:
+kde {
+  buildInputs = [ kdelibs libkdegames ];
+  meta = {
+    description = "a classic Minesweeper game";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdegames/knavalbattle.nix b/pkgs/desktops/kde-4.10/kdegames/knavalbattle.nix
new file mode 100644
index 000000000000..42ffd2fcb4d5
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdegames/knavalbattle.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs, libkdegames }:
+kde {
+  buildInputs = [ kdelibs libkdegames ];
+  meta = {
+    description = "a Battle Ship game";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdegames/knetwalk.nix b/pkgs/desktops/kde-4.10/kdegames/knetwalk.nix
new file mode 100644
index 000000000000..a16e578ce848
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdegames/knetwalk.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs, libkdegames }:
+kde {
+  buildInputs = [ kdelibs libkdegames ];
+  meta = {
+    description = "a small game where you have to build up a computer network by rotating the wires to connect the terminals to the server";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdegames/kolf.nix b/pkgs/desktops/kde-4.10/kdegames/kolf.nix
new file mode 100644
index 000000000000..78815ee57996
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdegames/kolf.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs, libkdegames }:
+kde {
+  buildInputs = [ kdelibs libkdegames ];
+  meta = {
+    description = "a miniature golf game";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdegames/kollision.nix b/pkgs/desktops/kde-4.10/kdegames/kollision.nix
new file mode 100644
index 000000000000..3147c7305ea0
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdegames/kollision.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs, libkdegames }:
+kde {
+  buildInputs = [ kdelibs libkdegames ];
+  meta = {
+    description = "a simple ball dodging game";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdegames/konquest.nix b/pkgs/desktops/kde-4.10/kdegames/konquest.nix
new file mode 100644
index 000000000000..53ddd64928cc
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdegames/konquest.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs, libkdegames }:
+kde {
+  buildInputs = [ kdelibs libkdegames ];
+  meta = {
+    description = "the KDE version of Gnu-Lactic Konquest";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdegames/kpat.nix b/pkgs/desktops/kde-4.10/kdegames/kpat.nix
new file mode 100644
index 000000000000..f8d9bad36dc5
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdegames/kpat.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs, libkdegames }:
+kde {
+  buildInputs = [ kdelibs libkdegames ];
+  meta = {
+    description = "a relaxing card sorting game";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdegames/kreversi.nix b/pkgs/desktops/kde-4.10/kdegames/kreversi.nix
new file mode 100644
index 000000000000..2aed981428e1
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdegames/kreversi.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs, libkdegames }:
+kde {
+  buildInputs = [ kdelibs libkdegames ];
+  meta = {
+    description = "a simple one player strategy game played against the computer. If a player's piece is captured by an opposing player, that piece is turned over to reveal the color of that player";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdegames/kshisen.nix b/pkgs/desktops/kde-4.10/kdegames/kshisen.nix
new file mode 100644
index 000000000000..9c8880340388
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdegames/kshisen.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs, libkdegames, libkmahjongg }:
+kde {
+  buildInputs = [ kdelibs libkdegames libkmahjongg ];
+  meta = {
+    description = "a solitaire-like game played using the standard set of Mahjong tiles";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdegames/ksirk.nix b/pkgs/desktops/kde-4.10/kdegames/ksirk.nix
new file mode 100644
index 000000000000..767eb67971a8
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdegames/ksirk.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs, libkdegames, qca2 }:
+kde {
+  buildInputs = [ kdelibs libkdegames qca2 ];
+  meta = {
+    description = "a computerized version of the well known strategic board game Risk";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdegames/ksnakeduel.nix b/pkgs/desktops/kde-4.10/kdegames/ksnakeduel.nix
new file mode 100644
index 000000000000..ccf1fb551e9a
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdegames/ksnakeduel.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs, libkdegames }:
+kde {
+  buildInputs = [ kdelibs libkdegames ];
+  meta = {
+    description = "a simple Tron-Clone";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdegames/kspaceduel.nix b/pkgs/desktops/kde-4.10/kdegames/kspaceduel.nix
new file mode 100644
index 000000000000..5285f7916cad
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdegames/kspaceduel.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs, libkdegames }:
+kde {
+  buildInputs = [ kdelibs libkdegames ];
+  meta = {
+    description = "each of two possible players control a satellite spaceship orbiting the sun. As the game progresses players have to eliminate the opponent's spacecraft with bullets or mines";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdegames/ksquares.nix b/pkgs/desktops/kde-4.10/kdegames/ksquares.nix
new file mode 100644
index 000000000000..a17be2da6325
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdegames/ksquares.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs, libkdegames }:
+kde {
+  buildInputs = [ kdelibs libkdegames ];
+  meta = {
+    description = "a game modeled after the well known pen and paper based game of Dots and Boxes";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdegames/ksudoku.nix b/pkgs/desktops/kde-4.10/kdegames/ksudoku.nix
new file mode 100644
index 000000000000..ea4e13a5e4f3
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdegames/ksudoku.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs, libkdegames }:
+kde {
+  buildInputs = [ kdelibs libkdegames ];
+  meta = {
+    description = "a logic-based symbol placement puzzle";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdegames/ktuberling.nix b/pkgs/desktops/kde-4.10/kdegames/ktuberling.nix
new file mode 100644
index 000000000000..1a6ba9d653c2
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdegames/ktuberling.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs, libkdegames }:
+kde {
+  buildInputs = [ kdelibs libkdegames ];
+  meta = {
+    description = "a simple constructor game suitable for children and adults alike";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdegames/kubrick.nix b/pkgs/desktops/kde-4.10/kdegames/kubrick.nix
new file mode 100644
index 000000000000..9bdc6879db4b
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdegames/kubrick.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs, libkdegames }:
+kde {
+  buildInputs = [ kdelibs libkdegames ];
+  meta = {
+    description = "a game based on the Rubik's Cube™ puzzle";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdegames/libkdegames.nix b/pkgs/desktops/kde-4.10/kdegames/libkdegames.nix
new file mode 100644
index 000000000000..3819dcdc9ae2
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdegames/libkdegames.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs, openal, libsndfile }:
+kde {
+  buildInputs = [ kdelibs openal libsndfile ];
+  meta = {
+    description = "KDE games library";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdegames/libkmahjongg.nix b/pkgs/desktops/kde-4.10/kdegames/libkmahjongg.nix
new file mode 100644
index 000000000000..383b347dc330
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdegames/libkmahjongg.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs, libkdegames }:
+kde {
+  buildInputs = [ kdelibs libkdegames ];
+  meta = {
+    description = "a library for KMahjongg game";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdegames/lskat.nix b/pkgs/desktops/kde-4.10/kdegames/lskat.nix
new file mode 100644
index 000000000000..2a5050cd6676
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdegames/lskat.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs, libkdegames }:
+kde {
+  buildInputs = [ kdelibs libkdegames ];
+  meta = {
+    description = "a fun and engaging card game for two players, where the second player is either live opponent, or a built in artificial intelligence";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdegames/palapeli.nix b/pkgs/desktops/kde-4.10/kdegames/palapeli.nix
new file mode 100644
index 000000000000..555ffe43c451
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdegames/palapeli.nix
@@ -0,0 +1,8 @@
+{ kde, kdelibs, libkdegames }:
+kde {
+#todo:package qvoronoi
+  buildInputs = [ kdelibs libkdegames ];
+  meta = {
+    description = "a single-player jigsaw puzzle game";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdegames/picmi.nix b/pkgs/desktops/kde-4.10/kdegames/picmi.nix
new file mode 100644
index 000000000000..165d7422f95b
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdegames/picmi.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs, libkdegames }:
+kde {
+  buildInputs = [ kdelibs libkdegames ];
+  meta = {
+    description = "a single player logic-based puzzle game";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdegraphics/gwenview.nix b/pkgs/desktops/kde-4.10/kdegraphics/gwenview.nix
new file mode 100644
index 000000000000..00910ab9d466
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdegraphics/gwenview.nix
@@ -0,0 +1,15 @@
+{ kde, kdelibs, exiv2, shared_desktop_ontologies, kde_baseapps, libkipi
+, libjpeg, libtiff, pkgconfig, kactivities, lcms2 }:
+
+kde {
+
+  buildInputs =
+    [ kdelibs exiv2 shared_desktop_ontologies kactivities kde_baseapps libkipi libjpeg lcms2 ];
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  meta = {
+    description = "Gwenview, the KDE image viewer";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdegraphics/kamera.nix b/pkgs/desktops/kde-4.10/kdegraphics/kamera.nix
new file mode 100644
index 000000000000..70904b17c232
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdegraphics/kcolorchooser.nix b/pkgs/desktops/kde-4.10/kdegraphics/kcolorchooser.nix
new file mode 100644
index 000000000000..58528cb186bb
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdegraphics/kdegraphics-mobipocket.nix b/pkgs/desktops/kde-4.10/kdegraphics/kdegraphics-mobipocket.nix
new file mode 100644
index 000000000000..2c2ba3796a2c
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdegraphics/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.10/kdegraphics/kdegraphics-strigi-analyzer.nix b/pkgs/desktops/kde-4.10/kdegraphics/kdegraphics-strigi-analyzer.nix
new file mode 100644
index 000000000000..35af39aa611d
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdegraphics/kdegraphics-strigi-analyzer.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs, libtiff }:
+
+kde {
+  buildInputs = [ kdelibs libtiff ];
+
+  meta = {
+    description = "Strigi analyzers for various graphics file formats";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdegraphics/kdegraphics-thumbnailers.nix b/pkgs/desktops/kde-4.10/kdegraphics/kdegraphics-thumbnailers.nix
new file mode 100644
index 000000000000..55bf8309b2a9
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdegraphics/kgamma.nix b/pkgs/desktops/kde-4.10/kdegraphics/kgamma.nix
new file mode 100644
index 000000000000..28d9252187e0
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdegraphics/kolourpaint.nix b/pkgs/desktops/kde-4.10/kdegraphics/kolourpaint.nix
new file mode 100644
index 000000000000..5276ec09f462
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdegraphics/kruler.nix b/pkgs/desktops/kde-4.10/kdegraphics/kruler.nix
new file mode 100644
index 000000000000..c5c2c6e05d7c
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdegraphics/ksaneplugin.nix b/pkgs/desktops/kde-4.10/kdegraphics/ksaneplugin.nix
new file mode 100644
index 000000000000..1381ed7dd266
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdegraphics/ksnapshot.nix b/pkgs/desktops/kde-4.10/kdegraphics/ksnapshot.nix
new file mode 100644
index 000000000000..f01a609e20de
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdegraphics/libkdcraw.nix b/pkgs/desktops/kde-4.10/kdegraphics/libkdcraw.nix
new file mode 100644
index 000000000000..e8790205caea
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdegraphics/libkdcraw.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs, libjpeg, lcms1, jasper }:
+
+kde {
+  buildInputs = [ kdelibs libjpeg lcms1 jasper ];
+
+  meta = {
+    description = "Library for decoding RAW images";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdegraphics/libkexiv2.nix b/pkgs/desktops/kde-4.10/kdegraphics/libkexiv2.nix
new file mode 100644
index 000000000000..096b0a6e957b
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdegraphics/libkipi.nix b/pkgs/desktops/kde-4.10/kdegraphics/libkipi.nix
new file mode 100644
index 000000000000..6b16265e7a3e
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdegraphics/libksane.nix b/pkgs/desktops/kde-4.10/kdegraphics/libksane.nix
new file mode 100644
index 000000000000..b539eab38992
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdegraphics/okular.nix b/pkgs/desktops/kde-4.10/kdegraphics/okular.nix
new file mode 100644
index 000000000000..efc1e8f07429
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdegraphics/okular.nix
@@ -0,0 +1,17 @@
+{ chmlib, djvulibre, ebook_tools, kde, kdelibs, libspectre, popplerQt4, qca2
+, qimageblitz, libtiff, kactivities, pkgconfig }:
+
+kde {
+
+  #todo: package activeapp
+
+  buildInputs =
+    [ chmlib djvulibre ebook_tools kdelibs libspectre popplerQt4 qca2 qimageblitz libtiff kactivities ];
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  meta = {
+    description = "Okular, the KDE document viewer";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdegraphics/svgpart.nix b/pkgs/desktops/kde-4.10/kdegraphics/svgpart.nix
new file mode 100644
index 000000000000..a344cc4b4b46
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdelibs/kdelibs.nix b/pkgs/desktops/kde-4.10/kdelibs/kdelibs.nix
new file mode 100644
index 000000000000..16e082ac07b3
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdelibs/kdelibs.nix
@@ -0,0 +1,64 @@
+{ kde, gcc, cmake, perl
+, qt4, bzip2, pcre, fam, libxml2, libxslt, shared_mime_info, giflib, jasper
+, openexr, avahi, kerberos, attr, shared_desktop_ontologies, libXScrnSaver
+, automoc4, strigi, soprano, qca2, attica, enchant, libdbusmenu_qt, grantlee
+, docbook_xml_dtd_42, docbook_xsl, polkit_qt_1
+, getopt, udev, herqq, phonon, libjpeg, xz
+, pkgconfig
+}:
+
+kde {
+  buildInputs =
+    [ pkgconfig
+# attr
+ attica #todo: update to 4.1
+ avahi
+ bzip2
+ enchant
+ fam
+# getopt
+ giflib
+ grantlee # todo: update to 0.3
+ herqq
+ jasper
+      libdbusmenu_qt #todo: update to 0.9.2
+ libXScrnSaver
+ libxslt
+# pcre
+ polkit_qt_1 qca2
+      shared_desktop_ontologies xz udev
+# libxml2
+ libjpeg
+ kerberos
+
+#openexr # todo: update openexr to 1.7.1. make it compile maybe need ilmbase although it's supposedly propagated
+    ];
+
+  propagatedBuildInputs = [ qt4 soprano
+ strigi # todo: update to 0.7.8
+ phonon ];
+
+  propagatedNativeBuildInputs = [ automoc4 cmake perl
+ shared_mime_info #todo: update to 1.1
+ ];
+
+  # 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"
+    "-DHUPNP_ENABLED=ON"
+  ];
+
+  meta = {
+    description = "KDE libraries";
+    license = "LGPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdelibs/nepomuk-core.nix b/pkgs/desktops/kde-4.10/kdelibs/nepomuk-core.nix
new file mode 100644
index 000000000000..cd6f3a179c22
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdelibs/nepomuk-core.nix
@@ -0,0 +1,11 @@
+{ kde, kdelibs, soprano, shared_desktop_ontologies, exiv2, ffmpeg, taglib, popplerQt4 }:
+
+kde {
+
+  buildInputs = [ kdelibs soprano shared_desktop_ontologies taglib exiv2 ffmpeg popplerQt4 ];
+
+  meta = {
+    description = "NEPOMUK core";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdelibs/nepomuk-widgets.nix b/pkgs/desktops/kde-4.10/kdelibs/nepomuk-widgets.nix
new file mode 100644
index 000000000000..0d29a4f97de5
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdelibs/nepomuk-widgets.nix
@@ -0,0 +1,11 @@
+{ kde, kdelibs, nepomuk_core }:
+
+kde {
+
+  buildInputs = [ kdelibs nepomuk_core ];
+
+  meta = {
+    description = "NEPOMUK Widgets";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdemultimedia/audiocd-kio.nix b/pkgs/desktops/kde-4.10/kdemultimedia/audiocd-kio.nix
new file mode 100644
index 000000000000..4c56e7529dd7
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdemultimedia/audiocd-kio.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs, libkcompactdisc, cdparanoia, libkcddb, libvorbis, flac, lame }:
+kde {
+  buildInputs = [ kdelibs libkcompactdisc cdparanoia libkcddb libvorbis flac lame ];
+  meta = {
+    description = "transparent audio CD access for applications using the KDE Platform";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdemultimedia/dragon.nix b/pkgs/desktops/kde-4.10/kdemultimedia/dragon.nix
new file mode 100644
index 000000000000..006300742ecd
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdemultimedia/dragon.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs }:
+kde {
+  buildInputs = [ kdelibs ];
+  meta = {
+    description = "a multimedia player with the focus on simplicity";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdemultimedia/ffmpegthumbs.nix b/pkgs/desktops/kde-4.10/kdemultimedia/ffmpegthumbs.nix
new file mode 100644
index 000000000000..45f6c9abcb66
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdemultimedia/ffmpegthumbs.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs, ffmpeg }:
+kde {
+  buildInputs = [ kdelibs ffmpeg ];
+  meta = {
+    description = "a video thumbnail generator for KDE file managers like Dolphin and Konqueror";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdemultimedia/juk.nix b/pkgs/desktops/kde-4.10/kdemultimedia/juk.nix
new file mode 100644
index 000000000000..7a1aab85ed72
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdemultimedia/juk.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs, taglib }:
+kde {
+  buildInputs = [ kdelibs taglib ];
+  meta = {
+    description = "an audio jukebox application";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdemultimedia/kmix.nix b/pkgs/desktops/kde-4.10/kdemultimedia/kmix.nix
new file mode 100644
index 000000000000..1dd8108166f2
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdemultimedia/kmix.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs, libcanberra, pulseaudio }:
+kde {
+  buildInputs = [ kdelibs libcanberra pulseaudio ];
+  meta = {
+    description = "sound mixer, an application to allow you to change the volume of your sound card";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdemultimedia/kscd.nix b/pkgs/desktops/kde-4.10/kdemultimedia/kscd.nix
new file mode 100644
index 000000000000..e99ae53935b9
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdemultimedia/kscd.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs, libmusicbrainz }:
+kde {
+  buildInputs = [ kdelibs libmusicbrainz ];
+  meta = {
+    description = "KDE CD player";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdemultimedia/libkcddb.nix b/pkgs/desktops/kde-4.10/kdemultimedia/libkcddb.nix
new file mode 100644
index 000000000000..720b01d1861e
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdemultimedia/libkcddb.nix
@@ -0,0 +1,8 @@
+{ kde, kdelibs }:
+kde {
+#todo: libmusicbrainz5
+  buildInputs = [ kdelibs ];
+  meta = {
+    description = "a library used to retrieve audio CD meta data from the internet";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdemultimedia/libkcompactdisc.nix b/pkgs/desktops/kde-4.10/kdemultimedia/libkcompactdisc.nix
new file mode 100644
index 000000000000..6ed08af89f33
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdemultimedia/libkcompactdisc.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs }:
+kde {
+  buildInputs = [ kdelibs ];
+  meta = {
+    description = "KDE library for playing & ripping CDs";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdemultimedia/mplayerthumbs.nix b/pkgs/desktops/kde-4.10/kdemultimedia/mplayerthumbs.nix
new file mode 100644
index 000000000000..c88ebcc2a5a3
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdemultimedia/mplayerthumbs.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs }:
+kde {
+  buildInputs = [ kdelibs ];
+  meta = {
+    description = "a video thumbnail generator for KDE";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdenetwork/FindmsiLBC.cmake b/pkgs/desktops/kde-4.10/kdenetwork/FindmsiLBC.cmake
new file mode 100644
index 000000000000..c40b0bed3105
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdenetwork/filesharing.nix b/pkgs/desktops/kde-4.10/kdenetwork/filesharing.nix
new file mode 100644
index 000000000000..2f32f4d6b2cd
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdenetwork/filesharing.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  patches = [ ./kdenetwork.patch ];
+}
diff --git a/pkgs/desktops/kde-4.10/kdenetwork/kdenetwork.patch b/pkgs/desktops/kde-4.10/kdenetwork/kdenetwork.patch
new file mode 100644
index 000000000000..ebadbfad9bac
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdenetwork/kdnssd.nix b/pkgs/desktops/kde-4.10/kdenetwork/kdnssd.nix
new file mode 100644
index 000000000000..2f32f4d6b2cd
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdenetwork/kdnssd.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  patches = [ ./kdenetwork.patch ];
+}
diff --git a/pkgs/desktops/kde-4.10/kdenetwork/kfile-plugins.nix b/pkgs/desktops/kde-4.10/kdenetwork/kfile-plugins.nix
new file mode 100644
index 000000000000..f90fd3560796
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdenetwork/kget.nix b/pkgs/desktops/kde-4.10/kdenetwork/kget.nix
new file mode 100644
index 000000000000..25028ef974ef
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdenetwork/kget.nix
@@ -0,0 +1,17 @@
+{ kde, kdelibs, libktorrent, kde_workspace, kdepimlibs, sqlite
+, 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 sqlite
+    ];
+
+  KDEDIRS = libktorrent;
+
+  patches = [ ./kdenetwork.patch ];
+}
diff --git a/pkgs/desktops/kde-4.10/kdenetwork/kopete.nix b/pkgs/desktops/kde-4.10/kdenetwork/kopete.nix
new file mode 100644
index 000000000000..1d401aca021a
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdenetwork/kopete.nix
@@ -0,0 +1,28 @@
+{ kde, kdelibs, speex, libmsn, libotr, kdepimlibs, qimageblitz, libktorrent,
+  jasper, libidn, mediastreamer, msilbc, pkgconfig, libxslt, giflib,
+  libgadu, boost, qca2, gpgme, sqlite, telepathy_qt, shared_desktop_ontologies,
+  libjpeg, nepomuk_core, libmms }:
+
+kde {
+#todo: libmeanwhile, xmms
+  buildInputs = [
+    kdelibs telepathy_qt shared_desktop_ontologies qca2 gpgme libgadu mediastreamer
+    kdepimlibs qimageblitz libktorrent libjpeg sqlite jasper giflib libmsn libotr
+    libxslt libidn speex nepomuk_core boost libmms msilbc
+];
+
+  nativeBuildInputs = [ 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.10/kdenetwork/kppp.nix b/pkgs/desktops/kde-4.10/kdenetwork/kppp.nix
new file mode 100644
index 000000000000..2f32f4d6b2cd
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdenetwork/kppp.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  patches = [ ./kdenetwork.patch ];
+}
diff --git a/pkgs/desktops/kde-4.10/kdenetwork/krdc.nix b/pkgs/desktops/kde-4.10/kdenetwork/krdc.nix
new file mode 100644
index 000000000000..2932fecb1912
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdenetwork/krdc.nix
@@ -0,0 +1,8 @@
+{ kde, kdelibs, libvncserver, libjpeg }:
+
+kde {
+#todo: doesn't build
+  buildInputs = [ kdelibs libvncserver libjpeg ];
+
+  patches = [ ./kdenetwork.patch ];
+}
diff --git a/pkgs/desktops/kde-4.10/kdenetwork/krfb.nix b/pkgs/desktops/kde-4.10/kdenetwork/krfb.nix
new file mode 100644
index 000000000000..80013f430d3c
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdepim-runtime.nix b/pkgs/desktops/kde-4.10/kdepim-runtime.nix
new file mode 100644
index 000000000000..191ce1080b8b
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdepim-runtime.nix
@@ -0,0 +1,14 @@
+{ kde, fetchurl, cmake, kdelibs, libxslt, boost, kdepimlibs, akonadi
+, shared_desktop_ontologies, nepomuk_core }:
+
+kde {
+  buildInputs = [
+    kdepimlibs akonadi boost shared_desktop_ontologies
+    libxslt nepomuk_core
+  ];
+#todo: libkgapi, libkolab, libkolabxml
+  meta = {
+    description = "KDE PIM runtime";
+    license = "GPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdepim.nix b/pkgs/desktops/kde-4.10/kdepim.nix
new file mode 100644
index 000000000000..56d18eab1857
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdepim.nix
@@ -0,0 +1,22 @@
+{ kde, boost, gpgme, libassuan, libxslt, kdepimlibs, kdepim_runtime
+, akonadi, shared_desktop_ontologies, cyrus_sasl, grantlee, prison
+, nepomuk_core, nepomuk_widgets, dblatex }:
+
+kde {
+#todo: update grantlee to 0.3
+  buildInputs =
+    [ kdepimlibs boost akonadi shared_desktop_ontologies nepomuk_core nepomuk_widgets
+      libxslt cyrus_sasl gpgme libassuan grantlee prison dblatex
+    ];
+
+  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.10/kdepimlibs.nix b/pkgs/desktops/kde-4.10/kdepimlibs.nix
new file mode 100644
index 000000000000..27ec1de5a611
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdepimlibs.nix
@@ -0,0 +1,17 @@
+{ kde, boost, cyrus_sasl, gpgme, libical, openldap, shared_mime_info
+, kdelibs, akonadi, libxslt, prison, nepomuk_core
+, shared_desktop_ontologies, qjson }:
+
+kde {
+  buildInputs =
+    [ boost gpgme libical libxslt nepomuk_core qjson
+      openldap cyrus_sasl akonadi shared_desktop_ontologies
+    ];
+
+  propagatedBuildInputs = [ kdelibs ];
+
+  meta = {
+    description = "KDE PIM libraries";
+    license = "LGPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdeplasma-addons.nix b/pkgs/desktops/kde-4.10/kdeplasma-addons.nix
new file mode 100644
index 000000000000..3b30a257ddfe
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdeplasma-addons.nix
@@ -0,0 +1,22 @@
+{ kde, kdelibs, marble, shared_desktop_ontologies, pkgconfig
+, boost, eigen, kde_workspace, attica, python, qca2, qimageblitz
+, kdepimlibs, libkexiv2, libqalculate, libXtst, libdbusmenu_qt
+, qjson, qoauth, nepomuk_core }:
+# TODO: qwt, scim, ibus
+
+kde {
+
+  KDEDIRS=marble;
+
+  buildInputs = [ kdelibs boost kde_workspace kdepimlibs attica qjson qoauth
+    eigen qca2 libXtst qimageblitz nepomuk_core
+    libqalculate shared_desktop_ontologies marble libkexiv2 libdbusmenu_qt
+];
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  meta = {
+    description = "KDE Plasma Addons";
+    license = "GPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdesdk/cervisia.nix b/pkgs/desktops/kde-4.10/kdesdk/cervisia.nix
new file mode 100644
index 000000000000..1dabe46cd429
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdesdk/dolphin-plugins-bazaar.nix b/pkgs/desktops/kde-4.10/kdesdk/dolphin-plugins-bazaar.nix
new file mode 100644
index 000000000000..9b3a474d3fcc
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdesdk/dolphin-plugins-bazaar.nix
@@ -0,0 +1,11 @@
+{ kde, kdelibs, kde_baseapps }:
+
+kde {
+#todo: doesn't build
+  # Needs kdebase for libkonq
+  buildInputs = [ kdelibs kde_baseapps ];
+
+  meta = {
+    description = "Svn plugin for dolphin";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdesdk/dolphin-plugins-git.nix b/pkgs/desktops/kde-4.10/kdesdk/dolphin-plugins-git.nix
new file mode 100644
index 000000000000..d28a8d726ccc
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdesdk/dolphin-plugins-git.nix
@@ -0,0 +1,11 @@
+{ kde, kdelibs, kde_baseapps }:
+
+kde {
+#todo: doesn't build
+  # Needs kdebase for libkonq
+  buildInputs = [ kdelibs kde_baseapps ];
+
+  meta = {
+    description = "Git plugin for dolphin";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdesdk/dolphin-plugins-hg.nix b/pkgs/desktops/kde-4.10/kdesdk/dolphin-plugins-hg.nix
new file mode 100644
index 000000000000..9b3a474d3fcc
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdesdk/dolphin-plugins-hg.nix
@@ -0,0 +1,11 @@
+{ kde, kdelibs, kde_baseapps }:
+
+kde {
+#todo: doesn't build
+  # Needs kdebase for libkonq
+  buildInputs = [ kdelibs kde_baseapps ];
+
+  meta = {
+    description = "Svn plugin for dolphin";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdesdk/dolphin-plugins-svn.nix b/pkgs/desktops/kde-4.10/kdesdk/dolphin-plugins-svn.nix
new file mode 100644
index 000000000000..9b3a474d3fcc
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdesdk/dolphin-plugins-svn.nix
@@ -0,0 +1,11 @@
+{ kde, kdelibs, kde_baseapps }:
+
+kde {
+#todo: doesn't build
+  # Needs kdebase for libkonq
+  buildInputs = [ kdelibs kde_baseapps ];
+
+  meta = {
+    description = "Svn plugin for dolphin";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdesdk/find-svn.patch b/pkgs/desktops/kde-4.10/kdesdk/find-svn.patch
new file mode 100644
index 000000000000..f6f4df942dd9
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdesdk/find-svn.patch
@@ -0,0 +1,57 @@
+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,8 @@ 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}
++         SUFFIXES apr-0 apr-1 apr-1.0
+       )
+       if(_INCLUDES)
+          set(SVN_INCLUDES ${SVN_INCLUDES} ${_INCLUDES})
+@@ -72,6 +69,24 @@ 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}
++         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.10/kdesdk/kapptemplate.nix b/pkgs/desktops/kde-4.10/kdesdk/kapptemplate.nix
new file mode 100644
index 000000000000..391536248dd3
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdesdk/kcachegrind.nix b/pkgs/desktops/kde-4.10/kdesdk/kcachegrind.nix
new file mode 100644
index 000000000000..65d410cca48d
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdesdk/kde-dev-scripts.nix b/pkgs/desktops/kde-4.10/kdesdk/kde-dev-scripts.nix
new file mode 100644
index 000000000000..df81145e5d60
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdesdk/kde-dev-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.10/kdesdk/kde-dev-utils.nix b/pkgs/desktops/kde-4.10/kdesdk/kde-dev-utils.nix
new file mode 100644
index 000000000000..85b6ea6ac00f
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdesdk/kde-dev-utils.nix
@@ -0,0 +1,11 @@
+{ kde, kdelibs, gcc }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  preConfigure = "export CMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH:${gcc}:${gcc.gcc}";
+
+  meta = {
+    description = "various KDE development utilities";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdesdk/kdesdk-strigi-analyzers.nix b/pkgs/desktops/kde-4.10/kdesdk/kdesdk-strigi-analyzers.nix
new file mode 100644
index 000000000000..4d579b88ba8a
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdesdk/kdesdk-strigi-analyzers.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Strigi analyzers for diff, po and ts";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdesdk/kdesdk-thumbnailers.nix b/pkgs/desktops/kde-4.10/kdesdk/kdesdk-thumbnailers.nix
new file mode 100644
index 000000000000..782ef72ce5aa
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdesdk/kdesdk-thumbnailers.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs, gettext }:
+
+kde {
+#todo: doesn't build
+  buildInputs = [ kdelibs gettext ];
+
+  meta = {
+    description = "PO file format thumbnailer";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdesdk/kioslave-perldoc.nix b/pkgs/desktops/kde-4.10/kdesdk/kioslave-perldoc.nix
new file mode 100644
index 000000000000..6f1029539f83
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdesdk/kioslave-perldoc.nix
@@ -0,0 +1,12 @@
+{ kde, kdelibs, perl }:
+
+kde {
+#todo: doesn't build
+  buildInputs = [ kdelibs perl ];
+
+  cmakeFlags = [ "-DBUILD_perldoc=ON" ];
+
+  meta = {
+    description = "perldoc: kioslave";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdesdk/kioslave-svn.nix b/pkgs/desktops/kde-4.10/kdesdk/kioslave-svn.nix
new file mode 100644
index 000000000000..13fc035e6063
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdesdk/kioslave-svn.nix
@@ -0,0 +1,12 @@
+{ kde, kdelibs, subversionClient, apr, aprutil }:
+
+kde {
+#todo: doesn't build
+  buildInputs = [ kdelibs subversionClient apr aprutil ];
+
+  patches = [ ./find-svn.patch ];
+
+  meta = {
+    description = "Subversion kioslave";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdesdk/kompare.nix b/pkgs/desktops/kde-4.10/kdesdk/kompare.nix
new file mode 100644
index 000000000000..1ddb4b8ea5b9
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdesdk/lokalize.nix b/pkgs/desktops/kde-4.10/kdesdk/lokalize.nix
new file mode 100644
index 000000000000..1565426eb1fc
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdesdk/okteta.nix b/pkgs/desktops/kde-4.10/kdesdk/okteta.nix
new file mode 100644
index 000000000000..058636596ad8
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdesdk/okteta.nix
@@ -0,0 +1,13 @@
+{ kde, kdelibs, qca2 }:
+
+kde {
+  buildInputs = [ kdelibs qca2 ];
+
+# TODO: Look what does -DBUILD_mobile add
+
+  enableParallelBuilding = false;
+
+  meta = {
+    description = "KDE byte editor";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdesdk/poxml.nix b/pkgs/desktops/kde-4.10/kdesdk/poxml.nix
new file mode 100644
index 000000000000..1ab9ed49df56
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdesdk/umbrello.nix b/pkgs/desktops/kde-4.10/kdesdk/umbrello.nix
new file mode 100644
index 000000000000..e83a2d9a901b
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdetoys/amor.nix b/pkgs/desktops/kde-4.10/kdetoys/amor.nix
new file mode 100644
index 000000000000..936d63d544a9
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdetoys/kteatime.nix b/pkgs/desktops/kde-4.10/kdetoys/kteatime.nix
new file mode 100644
index 000000000000..dacf54def4b0
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdetoys/ktux.nix b/pkgs/desktops/kde-4.10/kdetoys/ktux.nix
new file mode 100644
index 000000000000..108f9be7c722
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdeutils/ark.nix b/pkgs/desktops/kde-4.10/kdeutils/ark.nix
new file mode 100644
index 000000000000..eb3e12281d64
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdeutils/ark.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs, libarchive, bzip2, kde_baseapps, lzma, qjson }:
+
+kde {
+  buildInputs = [ kdelibs kde_baseapps libarchive bzip2 lzma qjson ];
+
+  meta = {
+    description = "KDE Archiving Tool";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdeutils/filelight.nix b/pkgs/desktops/kde-4.10/kdeutils/filelight.nix
new file mode 100644
index 000000000000..25ecabed27ce
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdeutils/kcalc.nix b/pkgs/desktops/kde-4.10/kdeutils/kcalc.nix
new file mode 100644
index 000000000000..08b202e8f0e8
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdeutils/kcharselect.nix b/pkgs/desktops/kde-4.10/kdeutils/kcharselect.nix
new file mode 100644
index 000000000000..d4c9c06f483d
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdeutils/kdf.nix b/pkgs/desktops/kde-4.10/kdeutils/kdf.nix
new file mode 100644
index 000000000000..3f9da58d0a62
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdeutils/kfloppy.nix b/pkgs/desktops/kde-4.10/kdeutils/kfloppy.nix
new file mode 100644
index 000000000000..2434a4fa671f
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdeutils/kgpg.nix b/pkgs/desktops/kde-4.10/kdeutils/kgpg.nix
new file mode 100644
index 000000000000..3027e2357a49
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdeutils/kgpg.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs, kdepimlibs, nepomuk_core }:
+
+kde {
+  buildInputs = [ kdelibs kdepimlibs nepomuk_core ];
+
+  meta = {
+    description = "Simple KDE GUI for GPG";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdeutils/kremotecontrol.nix b/pkgs/desktops/kde-4.10/kdeutils/kremotecontrol.nix
new file mode 100644
index 000000000000..70311a789f99
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdeutils/kremotecontrol.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs, libXtst }:
+
+kde {
+  buildInputs = [ kdelibs libXtst ];
+
+  meta = {
+    description = "KDE remote control";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdeutils/ktimer.nix b/pkgs/desktops/kde-4.10/kdeutils/ktimer.nix
new file mode 100644
index 000000000000..5700977349e3
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdeutils/ktimer.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "KDE Timer";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdeutils/kwallet.nix b/pkgs/desktops/kde-4.10/kdeutils/kwallet.nix
new file mode 100644
index 000000000000..9ec0e6c0396c
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdeutils/print-manager.nix b/pkgs/desktops/kde-4.10/kdeutils/print-manager.nix
new file mode 100644
index 000000000000..1b0d748e6cc5
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdeutils/print-manager.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 manager";
+    longDescription = "Applet to view current print jobs and configure new printers";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdeutils/superkaramba.nix b/pkgs/desktops/kde-4.10/kdeutils/superkaramba.nix
new file mode 100644
index 000000000000..cbe7a2856062
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdeutils/superkaramba.nix
@@ -0,0 +1,11 @@
+{ kde, kdelibs, qimageblitz, python }:
+
+kde {
+  buildInputs = [ kdelibs qimageblitz python ];
+
+  cmakeFlags = [ "-DBUILD_icons=TRUE" "-DBUILD_plasma=TRUE" ];
+
+  meta = {
+    description = "A KDE Eye-candy Application";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdeutils/sweeper.nix b/pkgs/desktops/kde-4.10/kdeutils/sweeper.nix
new file mode 100644
index 000000000000..78d56c7df30e
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.10/kdewebdev/kfilereplace.nix b/pkgs/desktops/kde-4.10/kdewebdev/kfilereplace.nix
new file mode 100644
index 000000000000..55e37809e07b
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdewebdev/kfilereplace.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Batch search and replace tool";
+    homepage = http://www.kdewebdev.org;
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdewebdev/kimagemapeditor.nix b/pkgs/desktops/kde-4.10/kdewebdev/kimagemapeditor.nix
new file mode 100644
index 000000000000..6d22f72461f9
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdewebdev/kimagemapeditor.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "An HTML imagemap editor";
+    homepage = http://www.nongnu.org/kimagemap/;
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdewebdev/klinkstatus.nix b/pkgs/desktops/kde-4.10/kdewebdev/klinkstatus.nix
new file mode 100644
index 000000000000..09f409cc4746
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdewebdev/klinkstatus.nix
@@ -0,0 +1,12 @@
+{ kde, kdelibs, libxml2, libxslt, kdepimlibs, nepomuk_core, htmlTidy, boost }:
+
+kde {
+#todo: ruby is not found. needed for some example scripts
+  buildInputs =
+    [ kdelibs kdepimlibs htmlTidy nepomuk_core boost ];
+
+  meta = {
+    description = "A KDE link checker";
+    homepage = http://klinkstatus.kdewebdev.org;
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/kdewebdev/kommander.nix b/pkgs/desktops/kde-4.10/kdewebdev/kommander.nix
new file mode 100644
index 000000000000..d5f4337f714d
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdewebdev/kommander.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "A graphical editor of scripted dialogs";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/l10n/default.nix b/pkgs/desktops/kde-4.10/l10n/default.nix
new file mode 100644
index 000000000000..57d41fb35bf4
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/l10n/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchurl, kdelibs, gettext, release, stable }:
+
+let
+
+  inherit (stdenv.lib) attrByPath singleton;
+
+  kdeL10nDerivation =
+    { lang, saneName, sha256 }:
+
+    stdenv.mkDerivation rec {
+      name = "kde-l10n-${saneName}-${release}";
+
+      src = fetchurl {
+        url = "mirror://kde/${if stable then "" else "un"}stable/${release}/src/kde-l10n/kde-l10n-${lang}-${release}.tar.xz";
+        name = "${name}.tar.xz";
+        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.10/l10n/l10n-manifest.sh b/pkgs/desktops/kde-4.10/l10n/l10n-manifest.sh
new file mode 100755
index 000000000000..ec159a1e2047
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/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.xz | \
+	sed -e 's/.*en_GB-//' -e 's/\.tar\.xz//')
+
+echo "Detected release ${release}" >&2
+
+exec > "manifest-${release}.nix"
+echo "["
+for i in `cd "${dir}"; ls kde-l10n-*-${release}.tar.xz`; do
+  lang=${i%-${release}.tar.xz}
+  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.10/l10n/manifest-4.10.2.nix b/pkgs/desktops/kde-4.10/l10n/manifest-4.10.2.nix
new file mode 100644
index 000000000000..93e47d2e63a2
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/l10n/manifest-4.10.2.nix
@@ -0,0 +1,282 @@
+[
+{
+  lang = "ar";
+  saneName = "ar";
+  sha256 = "1si3hkxag2s93vywr8spiwaz8rr287b8ms0akw7ba4hr3mccgllz";
+}
+{
+  lang = "bg";
+  saneName = "bg";
+  sha256 = "1dfp2zkzj5h0qqz03sicdvw024afc49vlj59k973vqnziwqwkvil";
+}
+{
+  lang = "bs";
+  saneName = "bs";
+  sha256 = "0v56by3jxpn76dcbrz89np6par2ndmz6l9lgpyzi3qgh7c1flh3k";
+}
+{
+  lang = "ca";
+  saneName = "ca";
+  sha256 = "0xj157l9h6frac4pnfsirh06j7kdq37wlikm7rnybnpdg7nv4kls";
+}
+{
+  lang = "ca@valencia";
+  saneName = "ca_valencia";
+  sha256 = "0zrc3cpbiarsfh2jqrrhxalmz62k5bb9wf9vbfcvbh90a0v5csaw";
+}
+{
+  lang = "cs";
+  saneName = "cs";
+  sha256 = "1scy726cxyv6gmh77wnfb8qb00vhhxxg1wwg8lk56r79jsh77pbh";
+}
+{
+  lang = "da";
+  saneName = "da";
+  sha256 = "1qdhzw9v1q188bky8phv3wj0sj3imf08j3bqqf2gcniw2zr0nkhq";
+}
+{
+  lang = "de";
+  saneName = "de";
+  sha256 = "13r97in3yl17scq41fncbzp3s99c2ahspxixcjb5b066c9ln4n4z";
+}
+{
+  lang = "el";
+  saneName = "el";
+  sha256 = "0c3w2cxmv46l85kg9d68v037br0ck423k0zfkyi01hgh76jixhnm";
+}
+{
+  lang = "en_GB";
+  saneName = "en_GB";
+  sha256 = "158i25z1b5hj5fhhsczf52l2369xmzyxfjjr1xp9pp5aga2kp3dc";
+}
+{
+  lang = "es";
+  saneName = "es";
+  sha256 = "0vm2sr5nqzjssm2mzjw56wwsygzasrr04pl77y4mvq1d573gaks3";
+}
+{
+  lang = "et";
+  saneName = "et";
+  sha256 = "0w4dqvgain4m14cr8vmr49a890lmjiz203vw347fyq6mvqg57f3z";
+}
+{
+  lang = "eu";
+  saneName = "eu";
+  sha256 = "1809g1jdbrp22572h68zr7a5riymzv240hpmh633v8qmdqyzmnlk";
+}
+{
+  lang = "fa";
+  saneName = "fa";
+  sha256 = "1y1m9zagw1wras6vfrw6zbhy08xm1djfg7wg0fqvr2pnw01b903f";
+}
+{
+  lang = "fi";
+  saneName = "fi";
+  sha256 = "0fd6zbxn1dcq3i8vp6m4ifsrfhpghbgvwrh0gqmpw60kr9ms72pj";
+}
+{
+  lang = "fr";
+  saneName = "fr";
+  sha256 = "1ybdnvsb2fi8hymad4fj7dhgfqjabbhgjgmcs4g0px583gbx38ys";
+}
+{
+  lang = "ga";
+  saneName = "ga";
+  sha256 = "1hcdx82213dhy6v2hy9c543fci8pj3p5lz2bb0sds14wscryngiy";
+}
+{
+  lang = "gl";
+  saneName = "gl";
+  sha256 = "0p0k0r42wqp9ww0w4k4dp0cp9mv4is1zffsnpb1vdj8fr4n73lms";
+}
+{
+  lang = "he";
+  saneName = "he";
+  sha256 = "0wfyx7w2igz078f9s3nf2gr2s2bj6kdrpsd4cycdrvi7lpkv97mg";
+}
+{
+  lang = "hi";
+  saneName = "hi";
+  sha256 = "0nr6lskvq4v885hlnwyn5c6r76lj923lnmzz7f3ymxsm8ahgy9i1";
+}
+{
+  lang = "hr";
+  saneName = "hr";
+  sha256 = "1zg11q416rlcwygbapllmhwy577gwrvxyrr2hv0knz8r6jdwxnxj";
+}
+{
+  lang = "hu";
+  saneName = "hu";
+  sha256 = "1km3w6m7m3w3315ivy80rwmn82g41cfw3id21ks8sykqray60jyf";
+}
+{
+  lang = "ia";
+  saneName = "ia";
+  sha256 = "1rb6qsvhp8r7ivsjcp2980vdkb5pczxky6wix884xdd2jyb4dqbs";
+}
+{
+  lang = "is";
+  saneName = "is";
+  sha256 = "0kngwsasyw36g05xbxcgn71mkl89xs3sg8lx3qzd6g7drk2s5r1w";
+}
+{
+  lang = "it";
+  saneName = "it";
+  sha256 = "1ckb7alln8f72x9q6hi4ji7xylaipd3zwilnrr7978y1q5b8297l";
+}
+{
+  lang = "ja";
+  saneName = "ja";
+  sha256 = "1s0m6kl0wdd22pbnrnmxq19y1nzyvmln64g5gqr9c33x08lwd3jz";
+}
+{
+  lang = "kk";
+  saneName = "kk";
+  sha256 = "1jn3pd4j5jpw8ing7hi0npkrk4cy5vbfp62jcpn93dizq71g0cis";
+}
+{
+  lang = "km";
+  saneName = "km";
+  sha256 = "1y6492rmh8hw3fw8yss80j8dnn6gah4mp207wnjx7savxdganrk9";
+}
+{
+  lang = "ko";
+  saneName = "ko";
+  sha256 = "05r7cslynx4yxlkaqq2lhjg2rmvjzz74h41if5fj3lkm9p848663";
+}
+{
+  lang = "lt";
+  saneName = "lt";
+  sha256 = "1xa7jc3jbhicqzikayssmm08mnqwhwy3gbr2xp2wyxvrwgy0vd7b";
+}
+{
+  lang = "lv";
+  saneName = "lv";
+  sha256 = "1xr2938yqkl81rwcfg43mqksm9r6zcw5bp49cm5ybrrr1np08d4p";
+}
+{
+  lang = "mr";
+  saneName = "mr";
+  sha256 = "0w4g863da74vabbx6dc7hpf6lqa09bsxm5bdl33bqp6wxz0qbrxf";
+}
+{
+  lang = "nb";
+  saneName = "nb";
+  sha256 = "1axqkkwgm3x12fpfnvxzm2bf22rh2fxic15rrk70sjc0xzkmbfc2";
+}
+{
+  lang = "nds";
+  saneName = "nds";
+  sha256 = "1y72jrw7s6afznj0axwrxczvcxm2i3m9dldjjb32w8lr2gbibhz9";
+}
+{
+  lang = "nl";
+  saneName = "nl";
+  sha256 = "01ps3fgwhzffsb52zcjgi4frgy719wlgjmrva9hl320wgi6bgs30";
+}
+{
+  lang = "nn";
+  saneName = "nn";
+  sha256 = "0a9zrn54x38c4jn2p59s3wiv42g1f7nwar2gppn992q2awq05m6x";
+}
+{
+  lang = "pa";
+  saneName = "pa";
+  sha256 = "1782vpj199ck5fswv3jc0adff0k7bv699b4la604kb0a7dl43cf2";
+}
+{
+  lang = "pl";
+  saneName = "pl";
+  sha256 = "0lldhl2jd51j3srf2dqq6gd4nxy6y3qxd585bgxpclvnmz7zqq9b";
+}
+{
+  lang = "pt";
+  saneName = "pt";
+  sha256 = "10w740h5h3ag2jpj44xyclpya59d8jmgv5ma1rz27wcvwl38jggx";
+}
+{
+  lang = "pt_BR";
+  saneName = "pt_BR";
+  sha256 = "1rn5jc9dihi0mwvly1rk1fqzdbhyg9gxax1bip0l80wg8mj9d0h5";
+}
+{
+  lang = "ro";
+  saneName = "ro";
+  sha256 = "1l1b9j9ixianyvbg2msc4d4bkm2km3w0h6xkbcyl7rg0cja9ys8l";
+}
+{
+  lang = "ru";
+  saneName = "ru";
+  sha256 = "0rgasg2c0ds96yqky1rnqj7fc9w3g6p0ng27v5vq3ja7paij1yv9";
+}
+{
+  lang = "si";
+  saneName = "si";
+  sha256 = "0124dhn1ng225zhyz8lmc2lf6cpxbbirr3bl3h6cq8lyjs4p078l";
+}
+{
+  lang = "sk";
+  saneName = "sk";
+  sha256 = "0xfp2wh1qyyh1cixypam9qnni0zin580vcbnhpmbx5disy3znmga";
+}
+{
+  lang = "sl";
+  saneName = "sl";
+  sha256 = "1hfqq8k5n48hjypj5sribh761gpgn930410qbdnrxjmm0l95rzlp";
+}
+{
+  lang = "sr";
+  saneName = "sr";
+  sha256 = "1rma3l9mpm1xakkf2mkjpa6nxhl076hnm6fiirna7nsgvsk2c3jz";
+}
+{
+  lang = "sv";
+  saneName = "sv";
+  sha256 = "02rg9hm0j1lfdv9nb80bh4yy41z3rvfh39w8xwrmv941y6k58q7w";
+}
+{
+  lang = "tg";
+  saneName = "tg";
+  sha256 = "16731c2bjg3c8r7i6lm6j3gsj9yqs2yd69sl04y9nv5yh1i0km15";
+}
+{
+  lang = "th";
+  saneName = "th";
+  sha256 = "032zwwn5za8cknmqxd8yzr3djylnvrzjldgygqlshf0pxkryjkrp";
+}
+{
+  lang = "tr";
+  saneName = "tr";
+  sha256 = "1bp8bndwyw33rkkv2dhs1l9qbzkhccsrqcflxnjrm98shks2vgzr";
+}
+{
+  lang = "ug";
+  saneName = "ug";
+  sha256 = "0hhdj4yb208rmpd9a77jf7x9p5iq35iyvn68sr6n1m228pncddi6";
+}
+{
+  lang = "uk";
+  saneName = "uk";
+  sha256 = "0sw07alwjw7qiss93bgf4h5ix9kpz2czfwbbgdydfwqcwz5nzvcy";
+}
+{
+  lang = "vi";
+  saneName = "vi";
+  sha256 = "06fchmphkp7rpg6i0gd50qyjlfr6drj0xnlkdczw54iy1zklrlmh";
+}
+{
+  lang = "wa";
+  saneName = "wa";
+  sha256 = "1pm3wvs88h03gch6nzn5hd268r2q4jd13slh6bh2nvhq719g8zsa";
+}
+{
+  lang = "zh_CN";
+  saneName = "zh_CN";
+  sha256 = "0k8j3dprpzxi87rd6xhp1qr93jg91i0hym87y7wlqb239aqz41dn";
+}
+{
+  lang = "zh_TW";
+  saneName = "zh_TW";
+  sha256 = "05ks7gdl3x6wkxs2rdj6f48bpd4cishw9zfh0a264kix6mh2fzcq";
+}
+]
diff --git a/pkgs/desktops/kde-4.10/oxygen-icons.nix b/pkgs/desktops/kde-4.10/oxygen-icons.nix
new file mode 100644
index 000000000000..34af88a31931
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/oxygen-icons.nix
@@ -0,0 +1,15 @@
+{ kde, cmake }:
+
+kde {
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "10dpbgidn7rwdhm044ydd294dv97hrhaz7jakf1yncszqbhbxksc";
+
+  nativeBuildInputs = [ cmake ];
+
+  meta = {
+    description = "KDE Oxygen theme icons";
+    longDescription = "Icons for KDE's default theme";
+    license = "GPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.10/support/akonadi/default.nix b/pkgs/desktops/kde-4.10/support/akonadi/default.nix
new file mode 100644
index 000000000000..0ba617226211
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/support/akonadi/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, cmake, qt4, shared_mime_info, libxslt, boost, automoc4, soprano, sqlite }:
+
+stdenv.mkDerivation rec {
+  name = "akonadi-1.9.1";
+  
+  src = fetchurl {
+    url = "mirror://kde/stable/akonadi/src/${name}.tar.bz2";
+    sha256 = "1w10kb4m8ri6yi1mii2j0sckj3vq11y6qkzijm3lbh4w0fi4kbjk";
+  };
+
+  buildInputs = [ qt4 soprano libxslt boost sqlite ];
+
+  nativeBuildInputs = [ 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/desktops/xfce/applications/xfce4-notifyd.nix b/pkgs/desktops/xfce/applications/xfce4-notifyd.nix
index 62c5bbe52205..5873ef9cd68e 100644
--- a/pkgs/desktops/xfce/applications/xfce4-notifyd.nix
+++ b/pkgs/desktops/xfce/applications/xfce4-notifyd.nix
@@ -1,25 +1,27 @@
-{ stdenv, fetchurl, pkgconfig, intltool
+{ stdenv, fetchurl, pkgconfig, intltool, libnotify
 , gtk , libxfce4util, libxfce4ui, xfconf }:
 
 stdenv.mkDerivation rec {
   p_name  = "xfce4-notifyd";
   ver_maj = "0.2";
-  ver_min = "2";
+  ver_min = "3";
 
   src = fetchurl {
     url = "mirror://xfce/src/apps/${p_name}/${ver_maj}/${name}.tar.bz2";
-    sha256 = "0s4ilc36sl5k5mg5727rmqims1l3dy5pwg6dk93wyjqnqbgnhvmn";
+    sha256 = "0fx6z89rxs6ypb8bb6l1pg8fdbxn995fgs413sbhnaxjkm6gch6x";
   };
   name = "${p_name}-${ver_maj}.${ver_min}";
 
-  buildInputs = [ pkgconfig intltool gtk libxfce4util libxfce4ui xfconf ];
+  buildInputs = [ pkgconfig intltool libnotify gtk libxfce4util libxfce4ui xfconf ];
 
   preFixup = ''
     rm $out/share/icons/hicolor/icon-theme.cache
     # to be able to run the daemon we need it in PATH
-    cp -l $out/lib/xfce4/notifyd/xfce4-notifyd $out/bin
+    ln -rs $out/lib/xfce4/notifyd/xfce4-notifyd $out/bin
   '';
 
+  doCheck = true;
+
   meta = {
     homepage = "http://goodies.xfce.org/projects/applications/${p_name}";
     description = "Notification daemon for Xfce";
diff --git a/pkgs/desktops/xfce/default.nix b/pkgs/desktops/xfce/default.nix
index 03e0def78532..808266ec82bc 100644
--- a/pkgs/desktops/xfce/default.nix
+++ b/pkgs/desktops/xfce/default.nix
@@ -5,21 +5,13 @@ callPackage = newScope (deps // xfce_self);
 deps = rec { # xfce-global dependency overrides should be here
   inherit (pkgs.gnome) libglade libwnck vte gtksourceview;
   inherit (pkgs.perlPackages) URI;
-
-  # The useful bits from ‘gnome-disk-utility’.
-  libgdu = callPackage ./support/libgdu.nix { };
-
-  # Gvfs is required by Thunar for the trash feature and for volume
-  # mounting.  Should use the one from Gnome, but I don't want to mess
-  # with the Gnome packages (or pull in a zillion Gnome dependencies).
-  gvfs = callPackage ./support/gvfs.nix { };
 };
 
 xfce_self = rec { # the lines are very long but it seems better than the even-odd line approach
 
   #### NixOS support
 
-  inherit (deps) gvfs;
+  inherit (pkgs) gvfs;
   xinitrc = "${xfce4session}/etc/xdg/xfce4/xinitrc";
 
   #### CORE                 from "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2"
diff --git a/pkgs/desktops/xfce/support/gvfs.nix b/pkgs/desktops/xfce/support/gvfs.nix
deleted file mode 100644
index af70aea755af..000000000000
--- a/pkgs/desktops/xfce/support/gvfs.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, glib, dbus, intltool, udev, libgdu, fuse
-, libxml2, libxslt, docbook_xsl, libgphoto2, libtool }:
-
-stdenv.mkDerivation rec {
-  name = "gvfs-1.14.2";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gvfs/1.14/${name}.tar.xz";
-    sha256 = "1g4ghyf45jg2ajdkv2d972hbckyjh3d9jdrppai85pl9pk2dmfy3";
-  };
-
-  buildInputs =
-    [ pkgconfig glib dbus.libs intltool udev libgdu fuse libxml2 libxslt
-      docbook_xsl libgphoto2 libtool
-    ];
-
-  meta = {
-    description = "Virtual Filesystem support library (for Xfce)";
-    platforms = stdenv.lib.platforms.linux;
-    maintainers = [ stdenv.lib.maintainers.eelco ];
-  };
-}
diff --git a/pkgs/desktops/xfce/support/libgdu-only.patch b/pkgs/desktops/xfce/support/libgdu-only.patch
deleted file mode 100644
index c5873c716811..000000000000
--- a/pkgs/desktops/xfce/support/libgdu-only.patch
+++ /dev/null
@@ -1,144 +0,0 @@
-diff -ru -x '*~' gnome-disk-utility-2.30.1-orig/configure.ac gnome-disk-utility-2.30.1/configure.ac
---- gnome-disk-utility-2.30.1-orig/configure.ac	2010-03-22 16:54:09.000000000 +0100
-+++ gnome-disk-utility-2.30.1/configure.ac	2011-09-06 02:52:09.000000000 +0200
-@@ -106,17 +106,6 @@
- # GNOME
- # *****
- 
--GNOME_COMMON_INIT
--GNOME_DOC_INIT
--GNOME_DEBUG_CHECK
--GNOME_COMPILE_WARNINGS([maximum])
--GNOME_MAINTAINER_MODE_DEFINES
--
--AC_ARG_ENABLE(gtk-doc, AS_HELP_STRING([--enable-gtk-doc],
--  [use gtk-doc to build documentation [default=yes]]),,
--  enable_gtk_doc=yes)
--GTK_DOC_CHECK([1.3])
--
- # ***************************
- # Check for required packages
- # ***************************
-@@ -130,7 +119,6 @@
- UNIQUE_REQUIRED=1.0
- LIBNOTIFY_REQUIRED=0.3.0
- NAUTILUS_REQUIRED=2.24.0
--AVAHI_UI_REQUIRED=0.6.25
- 
- UDISKS_REQUIRED=1.0.0
- UDISKS_NEXT_ABI_INCOMPATIBLE_VERSION=1.1.0
-@@ -144,13 +132,7 @@
- PKG_CHECK_MODULES(GIO_UNIX2, [gio-unix-2.0 >= $GIO2_REQUIRED])
- PKG_CHECK_MODULES(GTHREAD2, [gthread-2.0 >= $GLIB2_REQUIRED])
- PKG_CHECK_MODULES(DBUS_GLIB, [dbus-glib-1 >= $DBUS_GLIB_REQUIRED])
--PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= $GTK2_REQUIRED])
--PKG_CHECK_MODULES(UNIQUE, [unique-1.0 >= $UNIQUE_REQUIRED])
--PKG_CHECK_MODULES(LIBNOTIFY, [libnotify  >= $LIBNOTIFY_REQUIRED])
- PKG_CHECK_MODULES(UDISKS, [udisks  >= $UDISKS_REQUIRED udisks < $UDISKS_NEXT_ABI_INCOMPATIBLE_VERSION])
--PKG_CHECK_MODULES(X11, [x11])
--PKG_CHECK_MODULES(LIBATASMART, [libatasmart >= 0.14])
--PKG_CHECK_MODULES(AVAHI_UI, [avahi-ui >= $AVAHI_UI_REQUIRED])
- 
- # *************
- # Remote Access
-@@ -183,21 +165,10 @@
- AC_SUBST(GNOME_KEYRING_CFLAGS)
- AM_CONDITIONAL(ENABLE_GNOME_KEYRING, [test "$have_gnome_keyring" = "yes"])
- 
--# *************
--# Documentation
--# *************
--
--AC_PATH_PROG(SCROLLKEEPER_CONFIG, scrollkeeper-config,no)
--if test x$SCROLLKEEPER_CONFIG = xno; then
--  AC_MSG_ERROR(Couldn't find scrollkeeper-config, please install the scrollkeeper package)
--fi
--
- # ********************
- # Internationalization
- # ********************
- 
--IT_PROG_INTLTOOL([$INTLTOOL_REQUIRED])
--
- GETTEXT_PACKAGE=gnome-disk-utility
- AC_SUBST([GETTEXT_PACKAGE])
- AM_GLIB_GNU_GETTEXT
-diff -ru -x '*~' gnome-disk-utility-2.30.1-orig/doc/Makefile.am gnome-disk-utility-2.30.1/doc/Makefile.am
---- gnome-disk-utility-2.30.1-orig/doc/Makefile.am	2009-12-02 20:52:38.000000000 +0100
-+++ gnome-disk-utility-2.30.1/doc/Makefile.am	2011-09-06 02:17:15.000000000 +0200
-@@ -70,9 +70,7 @@
- 	Makefile.in			\
- 	$(NULL)
- 
--include $(top_srcdir)/gtk-doc.make
--
--CLEANFILES +=   *~						\
-+CLEANFILES =   *~						\
- 		gnome-disk-utility-scan*			\
- 		gnome-disk-utility.args				\
- 		gnome-disk-utility.hierarchy			\
-@@ -91,4 +89,4 @@
- 		$(NULL)
- 
- # Version information for marking the documentation
--EXTRA_DIST += version.xml.in
-+EXTRA_DIST = version.xml.in
-diff -ru -x '*~' gnome-disk-utility-2.30.1-orig/gtk-doc.make gnome-disk-utility-2.30.1/gtk-doc.make
---- gnome-disk-utility-2.30.1-orig/gtk-doc.make	2010-03-16 00:08:20.000000000 +0100
-+++ gnome-disk-utility-2.30.1/gtk-doc.make	2011-09-06 02:15:33.000000000 +0200
-@@ -4,15 +4,9 @@
- # Everything below here is generic #
- ####################################
- 
--if GTK_DOC_USE_LIBTOOL
--GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
--GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
--GTKDOC_RUN = $(LIBTOOL) --mode=execute
--else
- GTKDOC_CC = $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
- GTKDOC_LD = $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
- GTKDOC_RUN =
--endif
- 
- # We set GPATH here; this gives us semantics for GNU make
- # which are more like other make's VPATH, when it comes to
-@@ -49,22 +43,7 @@
- 
- CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS)
- 
--if ENABLE_GTK_DOC
--if GTK_DOC_BUILD_HTML
--HTML_BUILD_STAMP=html-build.stamp
--else
--HTML_BUILD_STAMP=
--endif
--if GTK_DOC_BUILD_PDF
--PDF_BUILD_STAMP=pdf-build.stamp
--else
--PDF_BUILD_STAMP=
--endif
--
--all-local: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP)
--else
- all-local:
--endif
- 
- docs: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP)
- 
-diff -ru -x '*~' gnome-disk-utility-2.30.1-orig/help/Makefile.am gnome-disk-utility-2.30.1/help/Makefile.am
---- gnome-disk-utility-2.30.1-orig/help/Makefile.am	2009-09-23 20:35:01.000000000 +0200
-+++ gnome-disk-utility-2.30.1/help/Makefile.am	2011-09-06 02:18:13.000000000 +0200
-@@ -1,4 +1,3 @@
--include $(top_srcdir)/gnome-doc-utils.make
- dist-hook: doc-dist-hook
- 
- DOC_MODULE = palimpsest
-diff -ru -x '*~' gnome-disk-utility-2.30.1-orig/Makefile.am gnome-disk-utility-2.30.1/Makefile.am
---- gnome-disk-utility-2.30.1-orig/Makefile.am	2010-03-16 00:12:39.000000000 +0100
-+++ gnome-disk-utility-2.30.1/Makefile.am	2011-09-06 02:17:34.000000000 +0200
-@@ -1,4 +1,4 @@
--SUBDIRS = src data doc help po
-+SUBDIRS = src data
- 
- EXTRA_DIST = \
- 	autogen.sh		\
diff --git a/pkgs/desktops/xfce/support/libgdu.nix b/pkgs/desktops/xfce/support/libgdu.nix
deleted file mode 100644
index 32835f0434ab..000000000000
--- a/pkgs/desktops/xfce/support/libgdu.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ stdenv, fetchurl, gnome, pkgconfig, glib, dbus_glib, intltool, udev, gtk
-, libnotify, udisks, libatasmart, avahi
-, autoconf, automake, libtool }:
-
-let version = "2.30.1"; in
-
-stdenv.mkDerivation rec {
-  name = "libgdu-${version}";
-  
-  src = fetchurl {
-    url = "mirror://gnome/sources/gnome-disk-utility/2.30/gnome-disk-utility-${version}.tar.bz2";
-    sha256 = "df9b336c780b5d77ceda54e96f7c37c67645f5e73d48754ba0a8efba7c1836d7";
-  };
-
-  # Only build libgdu, not all that Gnome crap.
-  patches = [ ./libgdu-only.patch ];
-
-  buildInputs =
-    [ pkgconfig glib dbus_glib udisks
-      autoconf automake libtool
-    ];
-
-  preConfigure =
-    ''
-      substituteInPlace src/gdu/Makefile.am --replace /usr/share/dbus-1/interfaces ${udisks}/share/dbus-1/interfaces
-      autoreconf -f -i
-    '';
-
-  postConfigure = "cd src/gdu";
-
-  meta = {
-    description = "Xfce/Gvfs support library for mounting filesystems";
-  };
-}
diff --git a/pkgs/development/compilers/ghc/7.6.3.nix b/pkgs/development/compilers/ghc/7.6.3.nix
new file mode 100644
index 000000000000..dc3a912a34ac
--- /dev/null
+++ b/pkgs/development/compilers/ghc/7.6.3.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, ghc, perl, gmp, ncurses }:
+
+stdenv.mkDerivation rec {
+  version = "7.6.3";
+
+  name = "ghc-${version}";
+
+  src = fetchurl {
+    url = "http://haskell.org/ghc/dist/${version}/${name}-src.tar.bz2";
+    sha256 = "1669m8k9q72rpd2mzs0bh2q6lcwqiwd1ax3vrard1dgn64yq4hxx";
+  };
+
+  buildInputs = [ ghc perl gmp ncurses ];
+
+  enableParallelBuilding = true;
+
+  buildMK = ''
+    libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-libraries="${gmp}/lib"
+    libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-includes="${gmp}/include"
+  '';
+
+  preConfigure = ''
+    echo "${buildMK}" > mk/build.mk
+    sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
+  '';
+
+  configureFlags = [
+    "--with-gcc=${stdenv.gcc}/bin/gcc"
+  ];
+
+  # required, because otherwise all symbols from HSffi.o are stripped, and
+  # that in turn causes GHCi to abort
+  stripDebugFlags=["-S" "--keep-file-symbols"];
+
+  meta = {
+    homepage = "http://haskell.org/ghc";
+    description = "The Glasgow Haskell Compiler";
+    maintainers = [
+      stdenv.lib.maintainers.marcweber
+      stdenv.lib.maintainers.andres
+      stdenv.lib.maintainers.simons
+    ];
+    inherit (ghc.meta) license platforms;
+  };
+
+}
diff --git a/pkgs/development/compilers/ghc/wrapper.nix b/pkgs/development/compilers/ghc/wrapper.nix
index bc28fdc91319..55fd16be5edb 100644
--- a/pkgs/development/compilers/ghc/wrapper.nix
+++ b/pkgs/development/compilers/ghc/wrapper.nix
@@ -1,4 +1,4 @@
-{ stdenv, ghc, makeWrapper, coreutils }:
+{ stdenv, ghc, makeWrapper, coreutils, forUserEnv ? false }:
 
 let
   ghc761OrLater = !stdenv.lib.versionOlder ghc.version "7.6.1";
@@ -54,4 +54,11 @@ stdenv.mkDerivation ({
   inherit ghc;
   inherit (ghc) meta;
   ghcVersion = ghc.version;
-} // (stdenv.lib.optionalAttrs ghc761OrLater { preFixup = "sed -i -e 's|-package-conf|${packageDBFlag}|' $out/bin/ghc-get-packages.sh"; }))
+} // (stdenv.lib.optionalAttrs ghc761OrLater { preFixup = "sed -i -e 's|-package-conf|${packageDBFlag}|' $out/bin/ghc-get-packages.sh"; })
+  // (stdenv.lib.optionalAttrs forUserEnv {
+       postFixup= ''
+         ln -s $ghc/lib $out/lib;
+         mkdir -p $out/share/doc
+         ln -s $ghc/share/doc/ghc $out/share/doc/ghc-${ghc.version}
+       '';
+     }))
diff --git a/pkgs/development/compilers/jdk/jdk6-linux.nix b/pkgs/development/compilers/jdk/jdk6-linux.nix
index 1491b264c750..368f01706876 100644
--- a/pkgs/development/compilers/jdk/jdk6-linux.nix
+++ b/pkgs/development/compilers/jdk/jdk6-linux.nix
@@ -28,18 +28,18 @@ in
 
 stdenv.mkDerivation {
   name =
-    if installjdk then "jdk-1.6.0_38b04" else "jre-1.6.0_38b04";
+    if installjdk then "jdk-1.6.0_45b06" else "jre-1.6.0_45b06";
 
   src =
     if stdenv.system == "i686-linux" then
       fetchurl {
-        url = http://www.java.net/download/jdk6/6u38/promoted/b04/binaries/jdk-6u38-ea-bin-b04-linux-i586-31_oct_2012.bin;
-        md5 = "0595473ad371981c7faa709798a5f78e";
+        url = http://download.oracle.com/otn-pub/java/jdk/6u45-b06/jdk-6u45-linux-i586.bin;
+        sha256 = "0mx3d2qlal5zyz1a7ld1yk2rs8pf9sjxs2jzasais3nq30jmlfym";
       }
     else if stdenv.system == "x86_64-linux" then
       fetchurl {
-        url = http://www.java.net/download/jdk6/6u38/promoted/b04/binaries/jdk-6u38-ea-bin-b04-linux-amd64-31_oct_2012.bin;
-        md5 = "b98c80a963915de32b1abe02c50385de";
+        url = http://download.oracle.com/otn-pub/java/jdk/6u45-b06/jdk-6u45-linux-x64.bin;
+        sha256 = "1s0j1pdr6y8c816d9i86rx4zp12nbhmas1rxksp0r53cn7m3ljbb";
       }
     else
       abort "jdk requires i686-linux or x86_64 linux";
diff --git a/pkgs/development/compilers/sbcl/default.nix b/pkgs/development/compilers/sbcl/default.nix
index 6c8c83fe0567..f4c45b390fe8 100644
--- a/pkgs/development/compilers/sbcl/default.nix
+++ b/pkgs/development/compilers/sbcl/default.nix
@@ -4,11 +4,11 @@ let
   s= # Generated upstream information
   rec {
     baseName="sbcl";
-    version="1.1.5";
+    version="1.1.6";
     name="${baseName}-${version}";
-    hash="01wi9aah9rrs7rbjrjrkwjxq03kapyzm48iyhz38fvaqhl7phw78";
-    url="mirror://sourceforge/project/sbcl/sbcl/1.1.5/sbcl-1.1.5-source.tar.bz2";
-    sha256="01wi9aah9rrs7rbjrjrkwjxq03kapyzm48iyhz38fvaqhl7phw78";
+    hash="1idrbjqi4m5p4dmxzwwx3rgsdq887njzi67gr1f4b26v56a3qnx2";
+    url="mirror://sourceforge/project/sbcl/sbcl/1.1.6/sbcl-1.1.6-source.tar.bz2";
+    sha256="1idrbjqi4m5p4dmxzwwx3rgsdq887njzi67gr1f4b26v56a3qnx2";
   };
   buildInputs = with a; [
     clisp makeWrapper
diff --git a/pkgs/development/compilers/swi-prolog/default.nix b/pkgs/development/compilers/swi-prolog/default.nix
index de7456bbcf08..a17e104b5bbf 100644
--- a/pkgs/development/compilers/swi-prolog/default.nix
+++ b/pkgs/development/compilers/swi-prolog/default.nix
@@ -3,14 +3,14 @@
    fontconfig }:
 
 let
-  version = "5.10.5";
+  version = "6.2.6";
 in
 stdenv.mkDerivation {
   name = "swi-prolog-${version}";
 
   src = fetchurl {
     url = "http://www.swi-prolog.org/download/stable/src/pl-${version}.tar.gz";
-    sha256 = "38d938d6a64e894685aa44bf9ea34b5505764cd084e07e6b4c21a9dd89b579d5";
+    sha256 = "0ii14ghmky91kkh017khahl00s4igkz03b5gy6y0vhv179sz04ll";
   };
 
   buildInputs = [gmp readline openssl libjpeg unixODBC libXinerama
diff --git a/pkgs/development/interpreters/dart/default.nix b/pkgs/development/interpreters/dart/default.nix
new file mode 100644
index 000000000000..d775b74c9036
--- /dev/null
+++ b/pkgs/development/interpreters/dart/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl }:
+ 
+assert stdenv.system == "x86_64-linux" || stdenv.system == "i686-linux";
+
+stdenv.mkDerivation {
+  name = "dart-0.4";
+ 
+  installPhase = ''
+    mkdir -p $out
+    cp -R * $out/
+    echo $libPath
+    patchelf --interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \
+             --set-rpath $libPath \
+             $out/bin/dart
+    
+    # Hack around weird dart2js resolving bug
+    mv $out/bin/dart2js $out/bin/.dart2js
+    echo "#!/bin/sh" > $out/bin/dart2js
+    echo "$out/bin/.dart2js \$*" >> $out/bin/dart2js
+    chmod +x $out/bin/dart2js
+  '';
+  
+  
+  src =
+    if stdenv.system == "x86_64-linux" then
+      fetchurl {
+        url = http://download.zef.s3.amazonaws.com/dartsdk-m4-linux-64.tar.gz;
+        sha256 = "1riwxxczskfsaax7n03m7isnbxf3walky0cac1w8j5apr1xvg5ma";
+      }
+    else
+      fetchurl {
+        url = http://download.zef.s3.amazonaws.com/dartsdk-m4-linux-32.tar.gz;
+        sha256 = "00935c4vxfj2h3x354g75qdazswwissbwc7kj5k05l1m3lizikf6";
+      };
+ 
+  libPath = stdenv.lib.makeLibraryPath [ stdenv.gcc.gcc ];
+ 
+  dontStrip = true;
+}
\ No newline at end of file
diff --git a/pkgs/development/interpreters/guile/default.nix b/pkgs/development/interpreters/guile/default.nix
index 45793b25d25b..66b5b79083a1 100644
--- a/pkgs/development/interpreters/guile/default.nix
+++ b/pkgs/development/interpreters/guile/default.nix
@@ -7,11 +7,11 @@
  else stdenv.mkDerivation)
 
 (rec {
-  name = "guile-2.0.7";
+  name = "guile-2.0.9";
 
   src = fetchurl {
     url = "mirror://gnu/guile/${name}.tar.xz";
-    sha256 = "0f53pxkia4v17n0avwqlcjpy0n89hkazm2xsa6p84lv8k6k8y9vg";
+    sha256 = "0nw9y8vjyz4r61v06p9msks5lm58pd91irmzg4k487vmv743h2pp";
   };
 
   nativeBuildInputs = [ makeWrapper gawk pkgconfig ];
@@ -106,10 +106,8 @@
 
 //
 
-(if stdenv.isFreeBSD
- then {
-   # XXX: Thread support is currently broken on FreeBSD and Solaris (namely
-   # the `SCM_I_IS_THREAD' assertion in `scm_spawn_thread' is hit.)
-   configureFlags = [ "--without-threads" ];
- }
- else {}))
+(stdenv.lib.optionalAttrs (!stdenv.isLinux) {
+  # Work around <http://bugs.gnu.org/14201>.
+  SHELL = "/bin/sh";
+  CONFIG_SHELL = "/bin/sh";
+}))
diff --git a/pkgs/development/interpreters/php/5.3.nix b/pkgs/development/interpreters/php/5.3.nix
index 6d81ca9eea65..fce9c0f152b2 100644
--- a/pkgs/development/interpreters/php/5.3.nix
+++ b/pkgs/development/interpreters/php/5.3.nix
@@ -143,6 +143,10 @@ composableDerivation.composableDerivation {} ( fixed : let inherit (fixed.fixed)
         configureFlags = ["--enable-zip"];
       };
 
+      ftp = {
+        configureFlags = ["--enable-ftp"];
+      };
+
       /*
          php is build within this derivation in order to add the xdebug lines to the php.ini.
          So both Apache and command line php both use xdebug without having to configure anything.
@@ -180,6 +184,7 @@ composableDerivation.composableDerivation {} ( fixed : let inherit (fixed.fixed)
     mcryptSupport = config.php.mcrypt or false;
     bz2Support = config.php.bz2 or false;
     zipSupport = config.php.zip or true;
+    ftpSupport = config.php.ftp or true;
   };
 
   configurePhase = ''
diff --git a/pkgs/development/interpreters/php/5.4.nix b/pkgs/development/interpreters/php/5.4.nix
new file mode 100644
index 000000000000..7d579c4adb10
--- /dev/null
+++ b/pkgs/development/interpreters/php/5.4.nix
@@ -0,0 +1,212 @@
+{ stdenv, fetchurl, composableDerivation, autoconf, automake, flex, bison
+, apacheHttpd, mysql, libxml2, readline, zlib, curl, gd, postgresql, gettext
+, openssl, pkgconfig, sqlite, config, libiconv, libjpeg, libpng, freetype
+, libxslt, libmcrypt, bzip2, icu }:
+
+let
+  libmcryptOverride = libmcrypt.override { disablePosixThreads = true; };
+in
+
+composableDerivation.composableDerivation {} ( fixed : let inherit (fixed.fixed) version; in {
+
+  version = "5.4.14";
+
+  name = "php-${version}";
+
+  enableParallelBuilding = true;
+
+  buildInputs = ["flex" "bison" "pkgconfig"];
+
+  flags = {
+
+    # much left to do here...
+
+    # SAPI modules:
+
+      apxs2 = {
+        configureFlags = ["--with-apxs2=${apacheHttpd}/bin/apxs"];
+        buildInputs = [apacheHttpd];
+      };
+
+      # Extensions
+
+      curl = {
+        configureFlags = ["--with-curl=${curl}" "--with-curlwrappers"];
+        buildInputs = [curl openssl];
+      };
+
+      zlib = {
+        configureFlags = ["--with-zlib=${zlib}"];
+        buildInputs = [zlib];
+      };
+
+      libxml2 = {
+        configureFlags = [
+          "--with-libxml-dir=${libxml2}"
+          #"--with-iconv-dir=${libiconv}"
+          ];
+        buildInputs = [ libxml2 ];
+      };
+
+      readline = {
+        configureFlags = ["--with-readline=${readline}"];
+        buildInputs = [ readline ];
+      };
+
+      sqlite = {
+        configureFlags = ["--with-pdo-sqlite=${sqlite}"];
+        buildInputs = [ sqlite ];
+      };
+
+      postgresql = {
+        configureFlags = ["--with-pgsql=${postgresql}"];
+        buildInputs = [ postgresql ];
+      };
+
+      mysql = {
+        configureFlags = ["--with-mysql=${mysql}"];
+        buildInputs = [ mysql ];
+      };
+
+      mysqli = {
+        configureFlags = ["--with-mysqli=${mysql}/bin/mysql_config"];
+        buildInputs = [ mysql];
+      };
+
+      mysqli_embedded = {
+        configureFlags = ["--enable-embedded-mysqli"];
+        depends = "mysqli";
+        assertion = fixed.mysqliSupport;
+      };
+
+      pdo_mysql = {
+        configureFlags = ["--with-pdo-mysql=${mysql}"];
+        buildInputs = [ mysql ];
+      };
+
+      bcmath = {
+        configureFlags = ["--enable-bcmath"];
+      };
+
+      gd = {
+        # FIXME: Our own gd package doesn't work, see https://bugs.php.net/bug.php?id=60108.
+        configureFlags = ["--with-gd=shared --with-freetype-dir=${freetype} --with-png-dir=${libpng}"];
+        buildInputs = [ libpng libjpeg freetype ];
+      };
+
+      soap = {
+        configureFlags = ["--enable-soap"];
+      };
+
+      sockets = {
+        configureFlags = ["--enable-sockets"];
+      };
+
+      openssl = {
+        configureFlags = ["--with-openssl=${openssl}"];
+        buildInputs = ["openssl"];
+      };
+
+      mbstring = {
+        configureFlags = ["--enable-mbstring"];
+      };
+
+      gettext = {
+        configureFlags = ["--with-gettext=${gettext}"];
+        buildInputs = [gettext];
+      };
+
+      intl = {
+        configureFlags = ["--enable-intl"];
+        buildInputs = [icu];
+      };
+
+      exif = {
+        configureFlags = ["--enable-exif"];
+      };
+
+      xsl = {
+        configureFlags = ["--with-xsl=${libxslt}"];
+        buildInputs = [libxslt];
+      };
+
+      mcrypt = {
+        configureFlags = ["--with-mcrypt=${libmcrypt}"];
+        buildInputs = [libmcryptOverride];
+      };
+
+      bz2 = {
+        configureFlags = ["--with-bz2=${bzip2}"];
+        buildInputs = [bzip2];
+      };
+
+      zip = {
+        configureFlags = ["--enable-zip"];
+      };
+
+      /*
+         php is build within this derivation in order to add the xdebug lines to the php.ini.
+         So both Apache and command line php both use xdebug without having to configure anything.
+         Xdebug could be put in its own derivation.
+      * /
+        meta = {
+                description = "debugging support for PHP";
+                homepage = http://xdebug.org;
+                license = "based on the PHP license - as is";
+                };
+      */
+    };
+
+  cfg = {
+    mysqlSupport = config.php.mysql or true;
+    mysqliSupport = config.php.mysqli or true;
+    pdo_mysqlSupport = config.php.pdo_mysql or true;
+    libxml2Support = config.php.libxml2 or true;
+    apxs2Support = config.php.apxs2 or true;
+    bcmathSupport = config.php.bcmath or true;
+    socketsSupport = config.php.sockets or true;
+    curlSupport = config.php.curl or true;
+    gettextSupport = config.php.gettext or true;
+    postgresqlSupport = config.php.postgresql or true;
+    readlineSupport = config.php.readline or true;
+    sqliteSupport = config.php.sqlite or true;
+    soapSupport = config.php.soap or true;
+    zlibSupport = config.php.zlib or true;
+    opensslSupport = config.php.openssl or true;
+    mbstringSupport = config.php.mbstring or true;
+    gdSupport = config.php.gd or true;
+    intlSupport = config.php.intl or true;
+    exifSupport = config.php.exif or true;
+    xslSupport = config.php.xsl or false;
+    mcryptSupport = config.php.mcrypt or false;
+    bz2Support = config.php.bz2 or false;
+    zipSupport = config.php.zip or true;
+  };
+
+  configurePhase = ''
+    iniFile=$out/etc/php-recommended.ini
+    [[ -z "$libxml2" ]] || export PATH=$PATH:$libxml2/bin
+    ./configure --with-config-file-scan-dir=/etc --with-config-file-path=$out/etc --prefix=$out $configureFlags
+    echo configurePhase end
+  '';
+
+  installPhase = ''
+    unset installPhase; installPhase;
+    cp php.ini-production $iniFile
+  '';
+
+  src = fetchurl {
+    url = "http://nl.php.net/get/php-${version}.tar.bz2/from/this/mirror";
+    sha256 = "02p23g4gjijazq16r5kwbkval2lkw76g0086n0zynlf67f2g6l2l";
+    name = "php-${version}.tar.bz2";
+  };
+
+  meta = {
+    description = "The PHP language runtime engine";
+    homepage = http://www.php.net/;
+    license = "PHP-3";
+  };
+
+  patches = [ ./fix-5.4.patch ];
+
+})
diff --git a/pkgs/development/interpreters/php/fix-5.4.patch b/pkgs/development/interpreters/php/fix-5.4.patch
new file mode 100644
index 000000000000..51d98549eee2
--- /dev/null
+++ b/pkgs/development/interpreters/php/fix-5.4.patch
@@ -0,0 +1,68 @@
+diff -ru php-5.4.14/configure php-5.4.14-new/configure
+--- php-5.4.14/configure	2013-04-10 09:53:26.000000000 +0200
++++ php-5.4.14-new/configure	2013-04-22 17:13:55.039043622 +0200
+@@ -6513,7 +6513,7 @@
+ 
+   case $host_alias in
+   *aix*)
+-    APXS_LIBEXECDIR=`$APXS -q LIBEXECDIR`
++    APXS_LIBEXECDIR="$prefix/modules"
+     EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-brtl -Wl,-bI:$APXS_LIBEXECDIR/httpd.exp"
+     PHP_AIX_LDFLAGS="-Wl,-brtl"
+     build_type=shared
+@@ -6706,7 +6706,7 @@
+   if test "$?" != "0"; then
+     APACHE_INSTALL="$APXS -i -a -n php5 $SAPI_SHARED" # Old apxs does not have -S option
+   else
+-    APXS_LIBEXECDIR='$(INSTALL_ROOT)'`$APXS -q LIBEXECDIR`
++    APXS_LIBEXECDIR="$prefix/modules"
+     if test -z `$APXS -q SYSCONFDIR`; then
+       APACHE_INSTALL="\$(mkinstalldirs) '$APXS_LIBEXECDIR' && \
+                        $APXS -S LIBEXECDIR='$APXS_LIBEXECDIR' \
+@@ -7909,7 +7909,7 @@
+    { (exit 1); exit 1; }; }
+   fi
+ 
+-  APXS_LIBEXECDIR='$(INSTALL_ROOT)'`$APXS -q LIBEXECDIR`
++  APXS_LIBEXECDIR="$prefix/modules"
+   if test -z `$APXS -q SYSCONFDIR`; then
+     INSTALL_IT="\$(mkinstalldirs) '$APXS_LIBEXECDIR' && \
+                  $APXS -S LIBEXECDIR='$APXS_LIBEXECDIR' \
+@@ -8779,7 +8779,7 @@
+    { (exit 1); exit 1; }; }
+   fi
+ 
+-  APXS_LIBEXECDIR='$(INSTALL_ROOT)'`$APXS -q LIBEXECDIR`
++  APXS_LIBEXECDIR="$prefix/modules"
+   if test -z `$APXS -q SYSCONFDIR`; then
+     INSTALL_IT="\$(mkinstalldirs) '$APXS_LIBEXECDIR' && \
+                  $APXS -S LIBEXECDIR='$APXS_LIBEXECDIR' \
+@@ -9634,7 +9634,7 @@
+ 
+   case $host_alias in
+   *aix*)
+-    APXS_LIBEXECDIR=`$APXS -q LIBEXECDIR`
++    APXS_LIBEXECDIR="$prefix/modules"
+     EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-brtl -Wl,-bI:$APXS_LIBEXECDIR/httpd.exp"
+     PHP_AIX_LDFLAGS="-Wl,-brtl"
+     build_type=shared
+@@ -9827,7 +9827,7 @@
+   if test "$?" != "0"; then
+     APACHE_HOOKS_INSTALL="$APXS -i -a -n php5 $SAPI_SHARED" # Old apxs does not have -S option
+   else
+-    APXS_LIBEXECDIR='$(INSTALL_ROOT)'`$APXS -q LIBEXECDIR`
++    APXS_LIBEXECDIR="$prefix/modules"
+     if test -z `$APXS -q SYSCONFDIR`; then
+       APACHE_HOOKS_INSTALL="\$(mkinstalldirs) '$APXS_LIBEXECDIR' && \
+                        $APXS -S LIBEXECDIR='$APXS_LIBEXECDIR' \
+@@ -59657,9 +59657,7 @@
+ 
+ 
+ if test "$PHP_GETTEXT" != "no"; then
+-  for i in $PHP_GETTEXT /usr/local /usr; do
+-    test -r $i/include/libintl.h && GETTEXT_DIR=$i && break
+-  done
++  GETTEXT_DIR=$PHP_GETTEXT
+ 
+   if test -z "$GETTEXT_DIR"; then
+     { { $as_echo "$as_me:$LINENO: error: Cannot locate header file libintl.h" >&5
diff --git a/pkgs/development/libraries/gvfs/default.nix b/pkgs/development/libraries/gvfs/default.nix
new file mode 100644
index 000000000000..067d3dc93834
--- /dev/null
+++ b/pkgs/development/libraries/gvfs/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, pkgconfig, intltool, libtool
+, glib, dbus, udev, udisks2, libgcrypt
+, libgphoto2, avahi, libarchive, fuse, libcdio
+, libxml2, libxslt, docbook_xsl
+, lightWeight ? true, gnome, samba, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "gvfs-1.14.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gvfs/1.14/${name}.tar.xz";
+    sha256 = "1g4ghyf45jg2ajdkv2d972hbckyjh3d9jdrppai85pl9pk2dmfy3";
+  };
+
+  nativeBuildInputs = [ pkgconfig intltool libtool ];
+
+  buildInputs =
+    [ makeWrapper glib dbus.libs udev udisks2 libgcrypt
+      libgphoto2 avahi libarchive fuse libcdio
+      libxml2 libxslt docbook_xsl
+      # ToDo: a ligther version of libsoup to have FTP/HTTP support?
+    ] ++ stdenv.lib.optionals (!lightWeight) (with gnome; [
+      gtk libsoup libgnome_keyring gconf samba
+      # ToDo: not working and probably useless until gnome3 from x-updates
+    ]);
+
+  enableParallelBuilding = true;
+
+  # ToDo: one probably should specify schemas for samba and others here
+  fixupPhase = ''
+    wrapProgram $out/libexec/gvfsd --set GSETTINGS_SCHEMA_DIR "$out/share/glib-2.0/schemas"
+  '';
+
+  meta = {
+    description = "Virtual Filesystem support library" + stdenv.lib.optionalString lightWeight " (light-weight)";
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/haskell/acid-state/default.nix b/pkgs/development/libraries/haskell/acid-state/default.nix
new file mode 100644
index 000000000000..10f222cfe105
--- /dev/null
+++ b/pkgs/development/libraries/haskell/acid-state/default.nix
@@ -0,0 +1,18 @@
+{ cabal, cereal, extensibleExceptions, filepath, mtl, network
+, safecopy, stm
+}:
+
+cabal.mkDerivation (self: {
+  pname = "acid-state";
+  version = "0.8.3";
+  sha256 = "1n7vafw3jz7kmlp5jqn1wv0ip2rcbyfx0cdi2m1a2lvpi6dh97gc";
+  buildDepends = [
+    cereal extensibleExceptions filepath mtl network safecopy stm
+  ];
+  meta = {
+    homepage = "http://acid-state.seize.it/";
+    description = "Add ACID guarantees to any serializable Haskell data structure";
+    license = self.stdenv.lib.licenses.publicDomain;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/certificate/default.nix b/pkgs/development/libraries/haskell/certificate/default.nix
index 0adaabb4753d..ffdf30268547 100644
--- a/pkgs/development/libraries/haskell/certificate/default.nix
+++ b/pkgs/development/libraries/haskell/certificate/default.nix
@@ -11,6 +11,7 @@ cabal.mkDerivation (self: {
   buildDepends = [
     asn1Data cryptohash cryptoPubkeyTypes filepath mtl pem time
   ];
+  jailbreak = true;
   meta = {
     homepage = "http://github.com/vincenthz/hs-certificate";
     description = "Certificates and Key Reader/Writer";
diff --git a/pkgs/development/libraries/haskell/checkers/default.nix b/pkgs/development/libraries/haskell/checkers/default.nix
new file mode 100644
index 000000000000..4742f5104daa
--- /dev/null
+++ b/pkgs/development/libraries/haskell/checkers/default.nix
@@ -0,0 +1,13 @@
+{ cabal, QuickCheck, random }:
+
+cabal.mkDerivation (self: {
+  pname = "checkers";
+  version = "0.3.1";
+  sha256 = "0lhy8bk8kkj540kjbc76j4x4xsprqwlmxdrss4r0j1bxgmfwha6p";
+  buildDepends = [ QuickCheck random ];
+  meta = {
+    description = "Check properties on standard classes and data structures";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/crypto-api/default.nix b/pkgs/development/libraries/haskell/crypto-api/default.nix
index ed840b8ba3e0..402e80f6c34e 100644
--- a/pkgs/development/libraries/haskell/crypto-api/default.nix
+++ b/pkgs/development/libraries/haskell/crypto-api/default.nix
@@ -5,6 +5,7 @@ cabal.mkDerivation (self: {
   version = "0.11";
   sha256 = "1v42dmm4cx8brb5mpz34wa20c3s27r0v7qiqlb54svzsl0jkfmiy";
   buildDepends = [ cereal entropy tagged transformers ];
+  jailbreak = true;
   meta = {
     homepage = "http://trac.haskell.org/crypto-api/wiki";
     description = "A generic interface for cryptographic operations";
diff --git a/pkgs/development/libraries/haskell/data-inttrie/default.nix b/pkgs/development/libraries/haskell/data-inttrie/default.nix
index a9eaf5471865..b23fdeca69d8 100644
--- a/pkgs/development/libraries/haskell/data-inttrie/default.nix
+++ b/pkgs/development/libraries/haskell/data-inttrie/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "data-inttrie";
-  version = "0.0.8";
-  sha256 = "0lzp89lq4gb84rcxqi77yarggz94a206da456208rrr7rhlqxg2x";
+  version = "0.1.0";
+  sha256 = "00kzf3cw0y0848cprmx3i7g70rmr92hhfzn60a2x98vb8f7y3814";
   meta = {
     homepage = "http://github.com/luqui/data-inttrie";
     description = "A lazy, infinite trie of integers";
diff --git a/pkgs/development/libraries/haskell/digestive-functors-heist/default.nix b/pkgs/development/libraries/haskell/digestive-functors-heist/default.nix
index 9e0cbbc6bdc3..695ce79f0595 100644
--- a/pkgs/development/libraries/haskell/digestive-functors-heist/default.nix
+++ b/pkgs/development/libraries/haskell/digestive-functors-heist/default.nix
@@ -3,8 +3,8 @@
 
 cabal.mkDerivation (self: {
   pname = "digestive-functors-heist";
-  version = "0.6.1.0";
-  sha256 = "08h883731cb5kqsv33f6dpf2lgh1r6qn9maqjkn5766vqf7m28nx";
+  version = "0.6.2.0";
+  sha256 = "03wxdmgwc6qialwhp5zdj3s3a8a8yz6vswfgryjx4izaaq7pdhl1";
   buildDepends = [
     blazeBuilder digestiveFunctors heist mtl text xmlhtml
   ];
diff --git a/pkgs/development/libraries/haskell/fclabels/default.nix b/pkgs/development/libraries/haskell/fclabels/default.nix
index 7c64e9a2511b..5f960cbb1f00 100644
--- a/pkgs/development/libraries/haskell/fclabels/default.nix
+++ b/pkgs/development/libraries/haskell/fclabels/default.nix
@@ -2,10 +2,11 @@
 
 cabal.mkDerivation (self: {
   pname = "fclabels";
-  version = "1.1.5";
-  sha256 = "0g9h1mayzf8v9dg84b54cqjbz9m9hdmj9a2zh0lg2kbc1v7iwlx1";
+  version = "1.1.6";
+  sha256 = "0f5zqbqsm89lp1f7wrmcs8pn7hzbbl8id7xa6ny114bgxrfbrwpk";
   buildDepends = [ mtl transformers ];
   meta = {
+    homepage = "https://github.com/sebastiaanvisser/fclabels";
     description = "First class accessor labels";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
diff --git a/pkgs/development/libraries/haskell/fsnotify/default.nix b/pkgs/development/libraries/haskell/fsnotify/default.nix
index 4fb3d9fded45..1d86fa26d7b5 100644
--- a/pkgs/development/libraries/haskell/fsnotify/default.nix
+++ b/pkgs/development/libraries/haskell/fsnotify/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "fsnotify";
-  version = "0.0.7.1";
-  sha256 = "1hrnhp22s8pcj525m2vi9b7k3pp5qrv44qhqh6c8n0bgilqwg4yd";
+  version = "0.0.8";
+  sha256 = "05vfiddp5m28rm02ci7fcfg1zgw5ydj084173mpp1w124bfqf940";
   buildDepends = [ hinotify systemFileio systemFilepath text time ];
   testDepends = [
     Cabal Glob hinotify hspec QuickCheck random systemFileio
diff --git a/pkgs/development/libraries/haskell/ghc-vis/default.nix b/pkgs/development/libraries/haskell/ghc-vis/default.nix
index 7d3d47f1a036..5b87923f06bf 100644
--- a/pkgs/development/libraries/haskell/ghc-vis/default.nix
+++ b/pkgs/development/libraries/haskell/ghc-vis/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "ghc-vis";
-  version = "0.6.1";
-  sha256 = "0q0v1l44vagcg0nl4iv8m872g4qblj9syjlcgbf6fpgx1fqnyp24";
+  version = "0.6.1.1";
+  sha256 = "1fg8bxkhw2s3y8w0ljnnqbf8f5ld17p70v4aikc26ybmb0938yl6";
   buildDepends = [
     cairo deepseq fgl ghcHeapView graphviz gtk mtl svgcairo text
     transformers xdot
diff --git a/pkgs/development/libraries/haskell/hamlet/default.nix b/pkgs/development/libraries/haskell/hamlet/default.nix
index 22acb85788d6..fc141f4780d5 100644
--- a/pkgs/development/libraries/haskell/hamlet/default.nix
+++ b/pkgs/development/libraries/haskell/hamlet/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hamlet";
-  version = "1.1.7";
-  sha256 = "0vx2z8zvlr3860cypa3lkd8q51k6gngw65jqcbik3bxfbjj2qcv3";
+  version = "1.1.7.1";
+  sha256 = "1kcjzvslxis8qapy7g1cqkqqamrnkyammy33pan7ckzv5fd59q5p";
   buildDepends = [
     blazeBuilder blazeHtml blazeMarkup failure parsec shakespeare text
   ];
diff --git a/pkgs/development/libraries/haskell/hashable/1.2.0.5.nix b/pkgs/development/libraries/haskell/hashable/1.2.0.6.nix
index d7d89ee86122..efe37c9162df 100644
--- a/pkgs/development/libraries/haskell/hashable/1.2.0.5.nix
+++ b/pkgs/development/libraries/haskell/hashable/1.2.0.6.nix
@@ -1,10 +1,17 @@
-{ cabal, text }:
+{ cabal, HUnit, QuickCheck, random, testFramework
+, testFrameworkHunit, testFrameworkQuickcheck2, text
+}:
 
 cabal.mkDerivation (self: {
   pname = "hashable";
-  version = "1.2.0.5";
-  sha256 = "0frqr294bsx4i21xxd5pw59xpaf0nww0dh4bqn0ywblsm9c7nyqh";
+  version = "1.2.0.6";
+  sha256 = "0kd0vk87pgrir5zx7b30dvv2lsjjiykqi1gpalkgmgbvhals4p9z";
   buildDepends = [ text ];
+  testDepends = [
+    HUnit QuickCheck random testFramework testFrameworkHunit
+    testFrameworkQuickcheck2 text
+  ];
+  doCheck = false;
   meta = {
     homepage = "http://github.com/tibbe/hashable";
     description = "A class for types that can be converted to a hash value";
diff --git a/pkgs/development/libraries/haskell/haskeline/0.6.4.7.nix b/pkgs/development/libraries/haskell/haskeline/0.6.4.7.nix
deleted file mode 100644
index 9dff76cfe47e..000000000000
--- a/pkgs/development/libraries/haskell/haskeline/0.6.4.7.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ cabal, extensibleExceptions, filepath, mtl, terminfo, utf8String
-}:
-
-cabal.mkDerivation (self: {
-  pname = "haskeline";
-  version = "0.6.4.7";
-  sha256 = "18ma4i2i6hx8bhbkh1d7mqzsqbfj0zc2bkv3czjyylizqwhpq6ih";
-  buildDepends = [
-    extensibleExceptions filepath mtl terminfo utf8String
-  ];
-  configureFlags = "-fterminfo";
-  meta = {
-    homepage = "http://trac.haskell.org/haskeline";
-    description = "A command-line interface for user input, written in Haskell";
-    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/haskeline/0.7.0.3.nix b/pkgs/development/libraries/haskell/haskeline/default.nix
index c804e328500d..1e8c406c21b3 100644
--- a/pkgs/development/libraries/haskell/haskeline/0.7.0.3.nix
+++ b/pkgs/development/libraries/haskell/haskeline/default.nix
@@ -1,10 +1,10 @@
-{ cabal, filepath, terminfo, transformers }:
+{ cabal, filepath, terminfo, transformers, utf8String }:
 
 cabal.mkDerivation (self: {
   pname = "haskeline";
   version = "0.7.0.3";
   sha256 = "10xc229ddk4g87i78vgjbfr7sii28fx00qwnggb5x7sfigfca8sg";
-  buildDepends = [ filepath terminfo transformers ];
+  buildDepends = [ filepath terminfo transformers utf8String ];
   configureFlags = "-fterminfo";
   meta = {
     homepage = "http://trac.haskell.org/haskeline";
diff --git a/pkgs/development/libraries/haskell/optparse-applicative/default.nix b/pkgs/development/libraries/haskell/optparse-applicative/default.nix
index 21aba33a004f..3043da1bb6c9 100644
--- a/pkgs/development/libraries/haskell/optparse-applicative/default.nix
+++ b/pkgs/development/libraries/haskell/optparse-applicative/default.nix
@@ -10,6 +10,7 @@ cabal.mkDerivation (self: {
   testDepends = [
     HUnit testFramework testFrameworkHunit testFrameworkThPrime
   ];
+  jailbreak = true;
   meta = {
     homepage = "https://github.com/pcapriotti/optparse-applicative";
     description = "Utilities and combinators for parsing command line options";
diff --git a/pkgs/development/libraries/haskell/pretty-show/1.2.nix b/pkgs/development/libraries/haskell/pretty-show/1.2.nix
new file mode 100644
index 000000000000..545816a57a02
--- /dev/null
+++ b/pkgs/development/libraries/haskell/pretty-show/1.2.nix
@@ -0,0 +1,16 @@
+{ cabal, haskellLexer }:
+
+cabal.mkDerivation (self: {
+  pname = "pretty-show";
+  version = "1.2";
+  sha256 = "0lbalmyrqisgd2spbvzifsy25lr6cl9sgz78hav8q8r406k7nf2l";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ haskellLexer ];
+  meta = {
+    homepage = "http://wiki.github.com/yav/pretty-show";
+    description = "Tools for working with derived Show instances";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/pretty-show/default.nix b/pkgs/development/libraries/haskell/pretty-show/1.5.nix
index 6d76aeb9bf6f..6d76aeb9bf6f 100644
--- a/pkgs/development/libraries/haskell/pretty-show/default.nix
+++ b/pkgs/development/libraries/haskell/pretty-show/1.5.nix
diff --git a/pkgs/development/libraries/haskell/safecopy/default.nix b/pkgs/development/libraries/haskell/safecopy/default.nix
new file mode 100644
index 000000000000..c700ff0df3d1
--- /dev/null
+++ b/pkgs/development/libraries/haskell/safecopy/default.nix
@@ -0,0 +1,14 @@
+{ cabal, cereal, text, time }:
+
+cabal.mkDerivation (self: {
+  pname = "safecopy";
+  version = "0.8.2";
+  sha256 = "0l2kqymsxv244fahxcpxlrspk6xipz3br6j854ipbfh8b0bfvr4m";
+  buildDepends = [ cereal text time ];
+  meta = {
+    homepage = "http://acid-state.seize.it/safecopy";
+    description = "Binary serialization with version control";
+    license = self.stdenv.lib.licenses.publicDomain;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/semigroups/default.nix b/pkgs/development/libraries/haskell/semigroups/default.nix
index dbdce2eabe51..1a1234413aaa 100644
--- a/pkgs/development/libraries/haskell/semigroups/default.nix
+++ b/pkgs/development/libraries/haskell/semigroups/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "semigroups";
-  version = "0.9";
-  sha256 = "0cwyjjlr9zgpxryzdf26pb58dmad0cp8d0493rarhh5zmgighh90";
+  version = "0.9.1";
+  sha256 = "1i49180fw9bxnszmqc5jl877kjhkaa22py1jwfh69slx4z3giyxq";
   buildDepends = [ nats ];
   meta = {
     homepage = "http://github.com/ekmett/semigroups/";
diff --git a/pkgs/development/libraries/haskell/shakespeare/default.nix b/pkgs/development/libraries/haskell/shakespeare/default.nix
index 3c300cdea03a..302a6720de41 100644
--- a/pkgs/development/libraries/haskell/shakespeare/default.nix
+++ b/pkgs/development/libraries/haskell/shakespeare/default.nix
@@ -1,4 +1,4 @@
-{ cabal, hspec, parsec, text }:
+{ cabal, fetchurl, hspec, parsec, text }:
 
 cabal.mkDerivation (self: {
   pname = "shakespeare";
@@ -6,6 +6,11 @@ cabal.mkDerivation (self: {
   sha256 = "0aqcgfx3y9sbp7wvjmx6rxwi4r13qrfxs9a40gc00np03bpk1hxb";
   buildDepends = [ parsec text ];
   testDepends = [ hspec parsec text ];
+  patchFlags = "-p2";
+  patches = [ (fetchurl { url = "https://github.com/yesodweb/shakespeare/pull/102.patch";
+                          sha256 = "02fp87sw7k8zyn8kgmjg8974gi7pp5fyvb4f84i983qycmlmh8xq";
+                        })
+            ];
   meta = {
     homepage = "http://www.yesodweb.com/book/shakespearean-templates";
     description = "A toolkit for making compile-time interpolated templates";
diff --git a/pkgs/development/libraries/haskell/skein/default.nix b/pkgs/development/libraries/haskell/skein/default.nix
index ec71d27db02c..f7b3bbd5c415 100644
--- a/pkgs/development/libraries/haskell/skein/default.nix
+++ b/pkgs/development/libraries/haskell/skein/default.nix
@@ -2,10 +2,11 @@
 
 cabal.mkDerivation (self: {
   pname = "skein";
-  version = "1.0.0";
-  sha256 = "03r9kqbvv6z1d8ivdwrxvac5bnd29w116pbixyrcrbx0sg1wwpfa";
+  version = "1.0.1";
+  sha256 = "1mvyq6wp03fs6sjppgalaacargvi69yf5d59k473pgr1g89v4ni1";
   buildDepends = [ cereal cryptoApi tagged ];
   testDepends = [ cereal cryptoApi filepath hspec tagged ];
+  jailbreak = true;
   meta = {
     homepage = "https://github.com/meteficha/skein";
     description = "Skein, a family of cryptographic hash functions. Includes Skein-MAC as well.";
diff --git a/pkgs/development/libraries/haskell/snap/snap.nix b/pkgs/development/libraries/haskell/snap/snap.nix
index 8462b85caf99..3243fce6a368 100644
--- a/pkgs/development/libraries/haskell/snap/snap.nix
+++ b/pkgs/development/libraries/haskell/snap/snap.nix
@@ -1,28 +1,25 @@
 { cabal, aeson, attoparsec, cereal, clientsession, comonad
 , configurator, directoryTree, dlist, errors, filepath, hashable
 , heist, lens, logict, MonadCatchIOTransformers, mtl, mwcRandom
-, pwstoreFast, regexPosix, snapCore, snapServer, stm, syb, text
-, time, transformers, unorderedContainers, vector, vectorAlgorithms
-, xmlhtml
+, pwstoreFast, regexPosix, snapCore, snapServer, stm, syb, tagged
+, text, time, transformers, unorderedContainers, vector
+, vectorAlgorithms, xmlhtml
 }:
 
 cabal.mkDerivation (self: {
   pname = "snap";
-  version = "0.11.2";
-  sha256 = "1z9n15dhbxg0j17c1ik0vhdhxy2mz70915xd4jffg9jrdvlky51a";
+  version = "0.11.2.2";
+  sha256 = "1fwm60rx2ginlphi00kn3ghs9rxdx4br8p4f3prpfmhvjikwgv8n";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
     aeson attoparsec cereal clientsession comonad configurator
     directoryTree dlist errors filepath hashable heist lens logict
     MonadCatchIOTransformers mtl mwcRandom pwstoreFast regexPosix
-    snapCore snapServer stm syb text time transformers
+    snapCore snapServer stm syb tagged text time transformers
     unorderedContainers vector vectorAlgorithms xmlhtml
   ];
   jailbreak = true;
-  patchPhase = ''
-    sed -i -e 's|lens .*>= 3.7.6.*$|lens|' snap.cabal
-  '';
   meta = {
     homepage = "http://snapframework.com/";
     description = "Top-level package for the Snap Web Framework";
diff --git a/pkgs/development/libraries/haskell/socks/default.nix b/pkgs/development/libraries/haskell/socks/default.nix
index 485b912c2a88..311c8b224134 100644
--- a/pkgs/development/libraries/haskell/socks/default.nix
+++ b/pkgs/development/libraries/haskell/socks/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "socks";
-  version = "0.5.0";
-  sha256 = "1lk6yvx5a65nz7z89i0sgqzcqw2v6j645nq15kgbpxhcinfdvqs7";
+  version = "0.5.1";
+  sha256 = "08zwbkglkahjadqn2m7l0k5yp4lcd9h6kgb8k8mjlwxayx82a0ay";
   buildDepends = [ cereal network ];
   meta = {
     homepage = "http://github.com/vincenthz/hs-socks";
diff --git a/pkgs/development/libraries/haskell/statistics/default.nix b/pkgs/development/libraries/haskell/statistics/default.nix
index 4e76277394ba..0218db413d5f 100644
--- a/pkgs/development/libraries/haskell/statistics/default.nix
+++ b/pkgs/development/libraries/haskell/statistics/default.nix
@@ -1,13 +1,13 @@
 { cabal, deepseq, erf, HUnit, ieee754, mathFunctions, monadPar
 , mwcRandom, primitive, QuickCheck, testFramework
 , testFrameworkHunit, testFrameworkQuickcheck2, vector
-, vectorAlgorithms, fetchurl
+, vectorAlgorithms
 }:
 
 cabal.mkDerivation (self: {
   pname = "statistics";
-  version = "0.10.3.0";
-  sha256 = "1ay03y9z84mc4ai6i4g81v129rhg4146kad4ggb2gimbj6851fw1";
+  version = "0.10.3.1";
+  sha256 = "12abfqxsriqlncr60wwcsm0q41hmqc6vp9p1hmnv2l3qqcisk60s";
   buildDepends = [
     deepseq erf mathFunctions monadPar mwcRandom primitive vector
     vectorAlgorithms
@@ -18,10 +18,6 @@ cabal.mkDerivation (self: {
     vectorAlgorithms
   ];
   doCheck = false;
-  patches = [
-    (fetchurl { url = "https://github.com/bos/statistics/commit/6b88143c9f931dd4fa95c1f083999ae12dd01b55.patch";
-                sha256 = "0bl10qhp73cijxlpkjfmnkbl49jlj85xxvyhlca6jw7awcka6d2l"; })
-  ];
   meta = {
     homepage = "https://github.com/bos/statistics";
     description = "A library of statistical types, data, and functions";
diff --git a/pkgs/development/libraries/haskell/tagged/default.nix b/pkgs/development/libraries/haskell/tagged/default.nix
index 6c4c4d70cacd..e48bcb39f09a 100644
--- a/pkgs/development/libraries/haskell/tagged/default.nix
+++ b/pkgs/development/libraries/haskell/tagged/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "tagged";
-  version = "0.4.5";
-  sha256 = "1ipj7ff2ya3r3w39clcrxs766hm568lj2kb2kd3npg87jj05wgv0";
+  version = "0.6";
+  sha256 = "0w2sx6lys074y5ck2ll53dmak39pfnckbh6llgmicrj4zhgcd8jm";
   meta = {
     homepage = "http://github.com/ekmett/tagged";
     description = "Haskell 98 phantom types to avoid unsafely passing dummy arguments";
diff --git a/pkgs/development/libraries/haskell/wai-handler-launch/default.nix b/pkgs/development/libraries/haskell/wai-handler-launch/default.nix
new file mode 100644
index 000000000000..a3d02329dfdf
--- /dev/null
+++ b/pkgs/development/libraries/haskell/wai-handler-launch/default.nix
@@ -0,0 +1,18 @@
+{ cabal, blazeBuilder, blazeBuilderConduit, conduit, httpTypes
+, transformers, wai, warp, zlibConduit
+}:
+
+cabal.mkDerivation (self: {
+  pname = "wai-handler-launch";
+  version = "1.3.1.4";
+  sha256 = "0ii74p2400a4w0pcswk8j57wbasi17alifs4xgwv79b235wnn317";
+  buildDepends = [
+    blazeBuilder blazeBuilderConduit conduit httpTypes transformers wai
+    warp zlibConduit
+  ];
+  meta = {
+    description = "Launch a web app in the default browser";
+    license = self.stdenv.lib.licenses.mit;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/wai-test/default.nix b/pkgs/development/libraries/haskell/wai-test/default.nix
index 388c238944c9..832cebab1222 100644
--- a/pkgs/development/libraries/haskell/wai-test/default.nix
+++ b/pkgs/development/libraries/haskell/wai-test/default.nix
@@ -1,16 +1,17 @@
 { cabal, blazeBuilder, blazeBuilderConduit, caseInsensitive
-, conduit, cookie, httpTypes, HUnit, network, text, transformers
-, wai
+, conduit, cookie, hspec, httpTypes, HUnit, network, text
+, transformers, wai
 }:
 
 cabal.mkDerivation (self: {
   pname = "wai-test";
-  version = "1.3.0.5";
-  sha256 = "0v0x1sk7q36xy8syinc96y1jsyjvw6756cich4hxq86l2jfbgccw";
+  version = "1.3.1";
+  sha256 = "0dw9lbwb27yr3953ill0r727ivqav5b2ica8gbaalvnh3h5c8akg";
   buildDepends = [
     blazeBuilder blazeBuilderConduit caseInsensitive conduit cookie
     httpTypes HUnit network text transformers wai
   ];
+  testDepends = [ hspec wai ];
   meta = {
     homepage = "http://www.yesodweb.com/book/web-application-interface";
     description = "Unit test framework (built on HUnit) for WAI applications";
diff --git a/pkgs/development/libraries/haskell/zeromq3-haskell/default.nix b/pkgs/development/libraries/haskell/zeromq3-haskell/default.nix
index 9d92f264930e..5d8a155ea721 100644
--- a/pkgs/development/libraries/haskell/zeromq3-haskell/default.nix
+++ b/pkgs/development/libraries/haskell/zeromq3-haskell/default.nix
@@ -1,13 +1,15 @@
-{ cabal, QuickCheck, testFramework, testFrameworkQuickcheck2
-, zeromq
+{ cabal, ansiTerminal, checkers, MonadCatchIOTransformers
+, QuickCheck, transformers, zeromq
 }:
 
 cabal.mkDerivation (self: {
   pname = "zeromq3-haskell";
-  version = "0.2";
-  sha256 = "12qljfkcd4l9h3l80jibxgw2an6v782w0sxwvzxqmma29jv6hvky";
+  version = "0.3.1";
+  sha256 = "0wr157wl2qpnbfsqy4nlsnd6nbkl063387f7ab4qa07yhj5av80f";
+  buildDepends = [ MonadCatchIOTransformers transformers ];
   testDepends = [
-    QuickCheck testFramework testFrameworkQuickcheck2
+    ansiTerminal checkers MonadCatchIOTransformers QuickCheck
+    transformers
   ];
   extraLibraries = [ zeromq ];
   doCheck = false;
diff --git a/pkgs/development/libraries/libextractor/default.nix b/pkgs/development/libraries/libextractor/default.nix
index 8fbc7da49c27..b1aaaa7f2c85 100644
--- a/pkgs/development/libraries/libextractor/default.nix
+++ b/pkgs/development/libraries/libextractor/default.nix
@@ -1,9 +1,9 @@
 { fetchurl, stdenv, libtool, gettext, zlib, bzip2, flac, libvorbis
 , exiv2, libgsf, rpm, pkgconfig
-, gtkSupport ? true, glib ? null, gtk ? null
+, gtkSupport ? true, glib ? null, gtk3 ? null
 , videoSupport ? true, ffmpeg ? null, libmpeg2 ? null}:
 
-assert gtkSupport -> glib != null && gtk != null;
+assert gtkSupport -> glib != null && gtk3 != null;
 assert videoSupport -> ffmpeg != null && libmpeg2 != null;
 
 stdenv.mkDerivation rec {
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
    [ libtool gettext zlib bzip2 flac libvorbis exiv2
      libgsf rpm
      pkgconfig
-   ] ++ stdenv.lib.optionals gtkSupport [ glib gtk ]
+   ] ++ stdenv.lib.optionals gtkSupport [ glib gtk3 ]
      ++ stdenv.lib.optionals videoSupport [ ffmpeg libmpeg2 ];
 
   configureFlags = "--disable-ltdl-install "
diff --git a/pkgs/development/libraries/libgphoto2/default.nix b/pkgs/development/libraries/libgphoto2/default.nix
index 3edc8d0ac6ca..e1feda6abd4a 100644
--- a/pkgs/development/libraries/libgphoto2/default.nix
+++ b/pkgs/development/libraries/libgphoto2/default.nix
@@ -1,18 +1,20 @@
-{stdenv, fetchurl, pkgconfig, libusb, libtool, libexif, libjpeg, gettext}:
+{ stdenv, fetchurl, pkgconfig, libusb1, libtool, libexif, libjpeg, gettext, libxml2 }:
 
 stdenv.mkDerivation rec {
-  name = "libgphoto2-2.4.14";
+  name = "libgphoto2-2.5.1.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/gphoto/${name}.tar.bz2";
-    sha256 = "14h20s0kwqr1nsj90dgjwzs0r3h7z1cpmnivrikd0rrg4m2jvcsr";
+    sha256 = "057dnyrxr0vy2zs4fhscpig42kvlsy9fg4gj20fhvjcvp3pak8xl";
   };
-  
+
   nativeBuildInputs = [ pkgconfig gettext ];
-  buildInputs = [ libtool libjpeg ];
+  buildInputs = [ libtool libjpeg libxml2 ];
 
   # These are mentioned in the Requires line of libgphoto's pkg-config file.
-  propagatedBuildInputs = [ libusb libexif ];
+  propagatedBuildInputs = [ libusb1 libexif ];
+
+  NIX_CFLAGS_COMPILE = "-I${libxml2}/include/libxml2"; # bogus detection again
 
   meta = {
     homepage = http://www.gphoto.org/proj/libgphoto2/;
@@ -20,10 +22,10 @@ stdenv.mkDerivation rec {
     longDescription = ''
       This is the library backend for gphoto2. It contains the code for PTP,
       MTP, and other vendor specific protocols for controlling and transferring data
-      from digital cameras. 
+      from digital cameras.
     '';
     # XXX: the homepage claims LGPL, but several src files are lgpl21Plus
-    license = stdenv.lib.licenses.lgpl21Plus; 
+    license = stdenv.lib.licenses.lgpl21Plus;
     platforms = with stdenv.lib.platforms; unix;
     maintainers = with stdenv.lib.maintainers; [ jcumming ];
   };
diff --git a/pkgs/development/libraries/openexr/default.nix b/pkgs/development/libraries/openexr/default.nix
index 386b92f26847..33397e8b98eb 100644
--- a/pkgs/development/libraries/openexr/default.nix
+++ b/pkgs/development/libraries/openexr/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, pkgconfig, zlib, ctl, ilmbase }:
 
 stdenv.mkDerivation rec {
-  name = "openexr-1.6.1";
+  name = "openexr-1.7.1";
   
   src = fetchurl {
     url = "http://download.savannah.nongnu.org/releases/openexr/${name}.tar.gz";
diff --git a/pkgs/development/libraries/soprano/default.nix b/pkgs/development/libraries/soprano/default.nix
index 7a3d6eacde57..c5fac00be14d 100644
--- a/pkgs/development/libraries/soprano/default.nix
+++ b/pkgs/development/libraries/soprano/default.nix
@@ -2,11 +2,11 @@
 , pkgconfig }:
 
 stdenv.mkDerivation rec {
-  name = "soprano-2.8.0";
+  name = "soprano-2.9.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/soprano/${name}.tar.bz2";
-    sha256 = "1israssklrb4mhx2dgkfnabh21ll1jyis1c5c42rc9gi23mkb7ah";
+    sha256 = "1sz4d1rqvdhfmbf7afdwdd49ynvjwawhym3qwbld83nydqw274xk";
   };
 
   patches = [ ./find-virtuoso.patch ];
diff --git a/pkgs/development/tools/haskell/hlint/default.nix b/pkgs/development/tools/haskell/hlint/default.nix
index 83dc4d72929e..44f95543c850 100644
--- a/pkgs/development/tools/haskell/hlint/default.nix
+++ b/pkgs/development/tools/haskell/hlint/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hlint";
-  version = "1.8.43";
-  sha256 = "0wffswyx60qig1is3ki5asp8i4wvd3gqg2r811rw0zxwi3nrjiv6";
+  version = "1.8.44";
+  sha256 = "075m8q933yqzq85m07j9m22f1gh38vjnr04wvpw4h4dl552ivzp6";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/tools/misc/itstool/default.nix b/pkgs/development/tools/misc/itstool/default.nix
index 2b85260e82ae..f97404f7a014 100644
--- a/pkgs/development/tools/misc/itstool/default.nix
+++ b/pkgs/development/tools/misc/itstool/default.nix
@@ -1,15 +1,15 @@
 { stdenv, fetchurl, python, libxml2Python }:
 
 stdenv.mkDerivation rec {
-  name = "itstool-1.1.1";
+  name = "itstool-1.2.0";
 
   src = fetchurl {
     url = "http://files.itstool.org/itstool/${name}.tar.bz2";
-    sha256 = "1jchgcgxvqwkhr61q0j08adl1k8hw86dzbl207gzmns9fa7vmzqg";
+    sha256 = "1akq75aflihm3y7js8biy7b5mw2g11vl8yq90gydnwlwp0zxdzj6";
   };
 
   buildInputs = [ python ];
-  
+
   patchPhase =
     ''
       sed -e '/import libxml2/i import sys\
diff --git a/pkgs/development/tools/misc/xxdiff/default.nix b/pkgs/development/tools/misc/xxdiff/default.nix
index 461c602a8866..ac1bc2f1abc5 100644
--- a/pkgs/development/tools/misc/xxdiff/default.nix
+++ b/pkgs/development/tools/misc/xxdiff/default.nix
@@ -1,16 +1,16 @@
-{ stdenv, fetchhg, qt4, flex, bison }:
+{ stdenv, fetchhg, qt4, flex, bison, docutils }:
 
 stdenv.mkDerivation {
-  name = "xxdiff-4.0-beta1-20110723";
+  name = "xxdiff-2013.03.08";
 
   src = fetchhg {
     name = "xxdiff";
-    tag = "fdc247a7d9e5";
+    tag = "6a86d8353eef";
     url = https://hg.furius.ca/public/xxdiff;
-    sha256 = "7ae7d81becc25b1adabc9383bb5b9005dddb31510cdc404ce8a0d6ff6c3dc47e";
+    sha256 = "1c1krgmf1cfkrmg48w6zw61wgy01xm171ifkkh6givm8v6c8i340";
   };
 
-  nativeBuildInputs = [ flex bison qt4 ];
+  nativeBuildInputs = [ flex bison qt4 docutils ];
 
   buildInputs = [ qt4 ];
 
@@ -23,4 +23,7 @@ stdenv.mkDerivation {
     '';
 
   installPhase = "mkdir -pv $out/bin; cp -v ../bin/xxdiff $out/bin";
+
+  meta.platforms = stdenv.lib.platforms.linux;
+
 }
diff --git a/pkgs/games/gnuchess/default.nix b/pkgs/games/gnuchess/default.nix
index 8a706896ba5c..ae7938c02b88 100644
--- a/pkgs/games/gnuchess/default.nix
+++ b/pkgs/games/gnuchess/default.nix
@@ -3,11 +3,11 @@ let
   s = # Generated upstream information
   rec {
     baseName="gnuchess";
-    version="6.0.2";
+    version="6.0.3";
     name="${baseName}-${version}";
-    hash="1xd3g28glz2xyjnca0zfw3k0jl5vhgd7wvy4n9km5wnn9z7287l2";
-    url="http://ftp.gnu.org/gnu/chess/gnuchess-6.0.2.tar.gz";
-    sha256="1xd3g28glz2xyjnca0zfw3k0jl5vhgd7wvy4n9km5wnn9z7287l2";
+    hash="01ff8qd8pk39c6pv24wbcqkx78kvay8rxvgxqq9cqp9gqv39jfkw";
+    url="http://ftp.gnu.org/gnu/chess/gnuchess-6.0.3.tar.gz";
+    sha256="01ff8qd8pk39c6pv24wbcqkx78kvay8rxvgxqq9cqp9gqv39jfkw";
   };
   buildInputs = [
     flex
diff --git a/pkgs/misc/emulators/hatari/default.nix b/pkgs/misc/emulators/hatari/default.nix
new file mode 100644
index 000000000000..e4eeff9cd544
--- /dev/null
+++ b/pkgs/misc/emulators/hatari/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, zlib, SDL, cmake }:
+
+stdenv.mkDerivation rec {
+  name = "hatari-1.6.2";
+
+  src = fetchurl {
+    url = "http://download.tuxfamily.org/hatari/1.6.2/${name}.tar.bz2";
+    sha256 = "0gqvfqqd0lg3hi261rwh6gi2b5kmza480kfzx43d4l49xcq09pi0";
+  };
+
+  # For pthread_cancel
+  cmakeFlags = "-DCMAKE_EXE_LINKER_FLAGS=-lgcc_s";
+
+  buildInputs = [ zlib SDL cmake ];
+
+  meta = {
+    homepage = "http://hatari.tuxfamily.org/";
+    description = "Hatari is an Atari ST/STE/TT/Falcon emulator.";
+    license = "GPLv2+";
+    platforms = with stdenv.lib.platforms; all;
+  };
+}
diff --git a/pkgs/misc/emulators/wine/default.nix b/pkgs/misc/emulators/wine/default.nix
index 3d75aef17353..32f6f2fc7991 100644
--- a/pkgs/misc/emulators/wine/default.nix
+++ b/pkgs/misc/emulators/wine/default.nix
@@ -7,12 +7,12 @@ assert stdenv.isLinux;
 assert stdenv.gcc.gcc != null;
 
 stdenv.mkDerivation rec {
-  version = "1.5.25";
+  version = "1.5.28";
   name = "wine-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/wine/${name}.tar.bz2";
-    sha256 = "0812ryv1v0gqr13vmvjci09k89qhcr1qs0n052z4zw0vpipjd4rx";
+    sha256 = "0ik02c11bp1glafcw82drkmjp8lxrkycvas3jlrvf1rv46blpy0b";
   };
 
   gecko = fetchurl {
diff --git a/pkgs/os-specific/linux/kernel/linux-3.0.nix b/pkgs/os-specific/linux/kernel/linux-3.0.nix
index 87427e141ac3..fc681e03ebd8 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.0.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.0.nix
@@ -231,7 +231,7 @@ in
 import ./generic.nix (
 
   rec {
-    version = "3.0.73";
+    version = "3.0.74";
 
     preConfigure = ''
       substituteInPlace scripts/depmod.sh --replace '-b "$INSTALL_MOD_PATH"' ""
@@ -239,7 +239,7 @@ import ./generic.nix (
 
     src = fetchurl {
       url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz";
-      sha256 = "1advdnl37jypiv1vyq5b3qapw2vbncm5d7wfc8far9vgvj8hwsqz";
+      sha256 = "016a16sfvdkjgzwndr985mgqny7cl3rbyz8mrnsh9l55czckiq5x";
     };
 
     config = configWithPlatform stdenv.platform;
diff --git a/pkgs/os-specific/linux/kernel/linux-3.4.nix b/pkgs/os-specific/linux/kernel/linux-3.4.nix
index 55b39a306df8..ed13c282639a 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.4.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.4.nix
@@ -245,7 +245,7 @@ in
 import ./generic.nix (
 
   rec {
-    version = "3.4.40";
+    version = "3.4.41";
     testing = false;
 
     preConfigure = ''
@@ -254,7 +254,7 @@ import ./generic.nix (
 
     src = fetchurl {
       url = "mirror://kernel/linux/kernel/v3.x/${if testing then "testing/" else ""}linux-${version}.tar.xz";
-      sha256 = "16gsqkzhb362lq51wp1j5k9z9mzwhzfnvfc0h2c6wqnk6rwzms9b";
+      sha256 = "18zj4biji3vmy7d1gg6lwfpc77856nsfalfpc00vk3pis6yd2k22";
     };
 
     config = configWithPlatform stdenv.platform;
diff --git a/pkgs/os-specific/linux/kernel/linux-3.8.nix b/pkgs/os-specific/linux/kernel/linux-3.8.nix
index 5edbe34f4abb..3ec9ab181553 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.8.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.8.nix
@@ -252,7 +252,7 @@ in
 import ./generic.nix (
 
   rec {
-    version = "3.8.7";
+    version = "3.8.8";
     testing = false;
 
     preConfigure = ''
@@ -261,7 +261,7 @@ import ./generic.nix (
 
     src = fetchurl {
       url = "mirror://kernel/linux/kernel/v3.x/${if testing then "testing/" else ""}linux-${version}.tar.xz";
-      sha256 = "1d6k2dlh0zh64i92jnhx60353jhkiynfy6hnrby34sajfshl01jl";
+      sha256 = "0idybkn574hkb8xp2zs3ahkvmy98qwx4599lanskzq2nfrd065kc";
     };
 
     config = configWithPlatform stdenv.platform;
diff --git a/pkgs/os-specific/linux/kernel/linux-3.9.nix b/pkgs/os-specific/linux/kernel/linux-3.9.nix
index b6da87f4578d..0b621dec6c5d 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.9.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.9.nix
@@ -252,8 +252,8 @@ in
 import ./generic.nix (
 
   rec {
-    version = "3.9-rc4";
-    modDirVersion = "3.9.0-rc4";
+    version = "3.9-rc7";
+    modDirVersion = "3.9.0-rc7";
     testing = true;
 
     preConfigure = ''
@@ -262,7 +262,7 @@ import ./generic.nix (
 
     src = fetchurl {
       url = "mirror://kernel/linux/kernel/v3.x/${if testing then "testing/" else ""}linux-${version}.tar.xz";
-      sha256 = "15mjsxa8xl233k004a2myg24l1x5rp22icdpy5r165rhbknbb1as";
+      sha256 = "0bl58byszb3pg5dplzc19kgx7gif5cnbfykqqp1jmskpxzf1splx";
     };
 
     config = configWithPlatform stdenv.platform;
diff --git a/pkgs/os-specific/linux/plymouth/default.nix b/pkgs/os-specific/linux/plymouth/default.nix
new file mode 100644
index 000000000000..bf3da1954676
--- /dev/null
+++ b/pkgs/os-specific/linux/plymouth/default.nix
@@ -0,0 +1,56 @@
+{ stdenv, fetchurl, cairo, gtk, libdrm, libpng, makeWrapper, pango, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  name = "plymouth-${version}";
+  version = "0.8.8";
+
+  src = fetchurl {
+    url = "http://www.freedesktop.org/software/plymouth/releases/${name}.tar.bz2";
+    sha256 = "16vm3llgci7h63jaclfskj1ii61d8psq7ny2mncml6m3sghs9b8v";
+  };
+
+  buildInputs = [ cairo gtk libdrm libpng makeWrapper pango pkgconfig ];
+
+  configurePhase = ''
+    export DESTDIR=$out
+    ./configure \
+      -bindir=$out/bin \
+      -sbindir=$out/sbin \
+      --prefix=$out \
+      --exec-prefix=$out \
+      --libdir=$out/lib \
+      --libexecdir=$out/lib \
+      --enable-tracing \
+      --sysconfdir=/etc \
+      --localstatedir=/var \
+      --without-system-root-install \
+      --enable-gtk
+  '';
+#      --enable-systemd-integration
+#      -datadir=/share \
+#      --with-rhgb-compat-link \
+
+  preInstall = "mkdir -p $out/bin $out/sbin";
+
+  postInstall = ''
+    cd $out/$out
+    mv bin/* $out/bin
+    mv sbin/* $out/sbin
+
+    rmdir bin
+    rmdir sbin
+    mv * $out/
+    sed -e "s#> $output##" \
+      -e "s#> /dev/stderr##" \
+      -i $out/lib/plymouth/plymouth-populate-initrd
+    wrapProgram $out/lib/plymouth/plymouth-populate-initrd \
+      --set PATH $PATH:$out/bin:$out/sbin
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://www.freedesktop.org/wiki/Software/Plymouth;
+    description = "A graphical boot animation";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.goibhniu ];
+  };
+}
diff --git a/pkgs/os-specific/linux/spl/default.nix b/pkgs/os-specific/linux/spl/default.nix
index 3d949511af0a..75ff28939722 100644
--- a/pkgs/os-specific/linux/spl/default.nix
+++ b/pkgs/os-specific/linux/spl/default.nix
@@ -1,27 +1,25 @@
 { stdenv, fetchurl, kernelDev, perl, autoconf, automake, libtool, coreutils, gawk }:
 
 stdenv.mkDerivation {
-  name = "spl-0.6.0-rc14-${kernelDev.version}";
+  name = "spl-0.6.1-${kernelDev.version}";
   src = fetchurl {
-    url = http://archive.zfsonlinux.org/downloads/zfsonlinux/spl/spl-0.6.0-rc14.tar.gz;
-    sha256 = "00wyamf13z8ins4s14xf0b3hfjfz4w084mr17hs3k5xifb5jxa8g";
+    url = "http://archive.zfsonlinux.org/downloads/zfsonlinux/spl/spl-0.6.1.tar.gz";
+    sha256 = "1bnianc00bkpdbcmignzqfv9yr8h6vj56wfl7lkhi9a5m5b3xakb";
   };
 
-  patches = [ ./install_prefix.patch ./install_prefix_2.patch ./module_prefix.patch ];
+  patches = [ ./install_prefix.patch ];
 
   buildInputs = [ perl kernelDev autoconf automake libtool ];
 
-  NIX_CFLAGS_COMPILE = "-I${kernelDev}/lib/modules/${kernelDev.modDirVersion}/build/include/generated";
-
   preConfigure = ''
     ./autogen.sh
 
-    substituteInPlace ./module/spl/spl-generic.c --replace /usr/bin/hostid   hostid
-    substituteInPlace ./module/spl/spl-module.c  --replace /bin/mknod        mknod 
+    substituteInPlace ./module/spl/spl-generic.c --replace /usr/bin/hostid hostid
+    substituteInPlace ./module/spl/spl-module.c  --replace /bin/mknod mknod 
 
     substituteInPlace ./module/spl/spl-generic.c --replace "PATH=/sbin:/usr/sbin:/bin:/usr/bin" "PATH=${coreutils}:${gawk}:/bin"
-    substituteInPlace ./module/spl/spl-module.c  --replace "PATH=/sbin:/usr/sbin:/bin:/usr/bin" "PATH=${coreutils}:/bin"
     substituteInPlace ./module/splat/splat-vnode.c --replace "PATH=/sbin:/usr/sbin:/bin:/usr/bin" "PATH=${coreutils}:/bin"
+    substituteInPlace ./module/splat/splat-linux.c --replace "PATH=/sbin:/usr/sbin:/bin:/usr/bin" "PATH=${coreutils}:/bin"
   '';
 
   configureFlags = ''
diff --git a/pkgs/os-specific/linux/spl/install_prefix.patch b/pkgs/os-specific/linux/spl/install_prefix.patch
index 9a7393b7170c..6b3bd515bd05 100644
--- a/pkgs/os-specific/linux/spl/install_prefix.patch
+++ b/pkgs/os-specific/linux/spl/install_prefix.patch
@@ -1,19 +1,274 @@
-*** spl-0.6.0-rc10/Makefile.am.old	Fri Aug 17 14:49:16 2012
---- spl-0.6.0-rc10/Makefile.am	Fri Aug 17 14:51:06 2012
+diff -rc spl-0.6.1.orig/include/fs/Makefile.am spl-0.6.1/include/fs/Makefile.am
+*** spl-0.6.1.orig/include/fs/Makefile.am	2013-03-26 09:37:39.000000000 -0700
+--- spl-0.6.1/include/fs/Makefile.am	2013-04-05 22:10:41.436764000 -0700
 ***************
-*** 32,38 ****
+*** 8,13 ****
+  EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+  
   if CONFIG_KERNEL
-  install-data-local:
-  	release=$(SPL_META_VERSION)-$(SPL_META_RELEASE); \
-! 	instdest=$(DESTDIR)/usr/src/spl-$$release/$(LINUX_VERSION); \
-  	for instfile in $(noinst_HEADERS) module/$(LINUX_SYMBOLS); do \
-  		$(INSTALL) -D $$instfile $$instdest/$$instfile; \
-  	done
---- 32,38 ----
+! kerneldir = /usr/src/spl-$(VERSION)/include/fs
+  kernel_HEADERS = $(KERNEL_H)
+  endif
+--- 8,13 ----
+  EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+  
+  if CONFIG_KERNEL
+! kerneldir = @prefix@/libexec/spl/include/fs
+  kernel_HEADERS = $(KERNEL_H)
+  endif
+diff -rc spl-0.6.1.orig/include/linux/Makefile.am spl-0.6.1/include/linux/Makefile.am
+*** spl-0.6.1.orig/include/linux/Makefile.am	2013-03-26 09:37:39.000000000 -0700
+--- spl-0.6.1/include/linux/Makefile.am	2013-04-05 22:10:27.789139000 -0700
+***************
+*** 23,28 ****
+  EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+  
+  if CONFIG_KERNEL
+! kerneldir = /usr/src/spl-$(VERSION)/include/linux
+  kernel_HEADERS = $(KERNEL_H)
+  endif
+--- 23,28 ----
+  EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+  
+  if CONFIG_KERNEL
+! kerneldir = @prefix@/libexec/spl/include/linux
+  kernel_HEADERS = $(KERNEL_H)
+  endif
+diff -rc spl-0.6.1.orig/include/Makefile.am spl-0.6.1/include/Makefile.am
+*** spl-0.6.1.orig/include/Makefile.am	2013-03-26 09:37:39.000000000 -0700
+--- spl-0.6.1/include/Makefile.am	2013-04-05 22:10:45.108623000 -0700
+***************
+*** 16,21 ****
+  EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+  
+  if CONFIG_KERNEL
+! kerneldir = /usr/src/spl-$(VERSION)/include
+  kernel_HEADERS = $(KERNEL_H)
+  endif
+--- 16,21 ----
+  EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+  
+  if CONFIG_KERNEL
+! kerneldir = @prefix@/libexec/spl/include
+  kernel_HEADERS = $(KERNEL_H)
+  endif
+diff -rc spl-0.6.1.orig/include/rpc/Makefile.am spl-0.6.1/include/rpc/Makefile.am
+*** spl-0.6.1.orig/include/rpc/Makefile.am	2013-03-26 09:37:39.000000000 -0700
+--- spl-0.6.1/include/rpc/Makefile.am	2013-04-05 22:11:08.724410000 -0700
+***************
+*** 9,14 ****
+  EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+  
+  if CONFIG_KERNEL
+! kerneldir = /usr/src/spl-$(VERSION)/include/rpc
+  kernel_HEADERS = $(KERNEL_H)
+  endif
+--- 9,14 ----
+  EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+  
+  if CONFIG_KERNEL
+! kerneldir = @prefix@/libexec/spl/include/rpc
+  kernel_HEADERS = $(KERNEL_H)
+  endif
+diff -rc spl-0.6.1.orig/include/sharefs/Makefile.am spl-0.6.1/include/sharefs/Makefile.am
+*** spl-0.6.1.orig/include/sharefs/Makefile.am	2013-03-26 09:37:39.000000000 -0700
+--- spl-0.6.1/include/sharefs/Makefile.am	2013-04-05 22:10:38.852722000 -0700
+***************
+*** 8,13 ****
+  EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+  
+  if CONFIG_KERNEL
+! kerneldir = /usr/src/spl-$(VERSION)/include/sharefs
+  kernel_HEADERS = $(KERNEL_H)
+  endif
+--- 8,13 ----
+  EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+  
+  if CONFIG_KERNEL
+! kerneldir = @prefix@/libexec/spl/include/sharefs
+  kernel_HEADERS = $(KERNEL_H)
+  endif
+diff -rc spl-0.6.1.orig/include/sys/fm/Makefile.am spl-0.6.1/include/sys/fm/Makefile.am
+*** spl-0.6.1.orig/include/sys/fm/Makefile.am	2013-03-26 09:37:39.000000000 -0700
+--- spl-0.6.1/include/sys/fm/Makefile.am	2013-04-05 22:10:59.964334000 -0700
+***************
+*** 9,14 ****
+  EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+  
+  if CONFIG_KERNEL
+! kerneldir = /usr/src/spl-$(VERSION)/include/sys/fm
+  kernel_HEADERS = $(KERNEL_H)
+  endif
+--- 9,14 ----
+  EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+  
+  if CONFIG_KERNEL
+! kerneldir = @prefix@/libexec/spl/include/sys/fm
+  kernel_HEADERS = $(KERNEL_H)
+  endif
+diff -rc spl-0.6.1.orig/include/sys/fs/Makefile.am spl-0.6.1/include/sys/fs/Makefile.am
+*** spl-0.6.1.orig/include/sys/fs/Makefile.am	2013-03-26 09:37:39.000000000 -0700
+--- spl-0.6.1/include/sys/fs/Makefile.am	2013-04-05 22:10:57.860366000 -0700
+***************
+*** 8,13 ****
+  EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+  
   if CONFIG_KERNEL
-  install-data-local:
-  	release=$(SPL_META_VERSION)-$(SPL_META_RELEASE); \
-! 	instdest=$(DESTDIR)/@libexecdir@/spl/$(LINUX_VERSION); \
-  	for instfile in $(noinst_HEADERS) module/$(LINUX_SYMBOLS); do \
-  		$(INSTALL) -D $$instfile $$instdest/$$instfile; \
+! kerneldir = /usr/src/spl-$(VERSION)/include/sys/fs
+  kernel_HEADERS = $(KERNEL_H)
+  endif
+--- 8,13 ----
+  EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+  
+  if CONFIG_KERNEL
+! kerneldir = @prefix@/libexec/spl/include/sys/fs
+  kernel_HEADERS = $(KERNEL_H)
+  endif
+diff -rc spl-0.6.1.orig/include/sys/Makefile.am spl-0.6.1/include/sys/Makefile.am
+*** spl-0.6.1.orig/include/sys/Makefile.am	2013-03-26 09:37:39.000000000 -0700
+--- spl-0.6.1/include/sys/Makefile.am	2013-04-05 22:11:05.788303000 -0700
+***************
+*** 104,110 ****
+  EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+  
+  if CONFIG_KERNEL
+! kerneldir = /usr/src/spl-$(VERSION)/include/sys
+  kernel_HEADERS = $(KERNEL_H)
+  endif
+  
+--- 104,110 ----
+  EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+  
+  if CONFIG_KERNEL
+! kerneldir = @prefix@/libexec/spl/include/sys
+  kernel_HEADERS = $(KERNEL_H)
+  endif
+  
+diff -rc spl-0.6.1.orig/include/sys/sysevent/Makefile.am spl-0.6.1/include/sys/sysevent/Makefile.am
+*** spl-0.6.1.orig/include/sys/sysevent/Makefile.am	2013-03-26 09:37:39.000000000 -0700
+--- spl-0.6.1/include/sys/sysevent/Makefile.am	2013-04-05 22:10:54.364458000 -0700
+***************
+*** 8,13 ****
+  EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+  
+  if CONFIG_KERNEL
+! kerneldir = /usr/src/spl-$(VERSION)/include/sys/sysevent
+  kernel_HEADERS = $(KERNEL_H)
+  endif
+--- 8,13 ----
+  EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+  
+  if CONFIG_KERNEL
+! kerneldir = @prefix@/libexec/spl/include/sys/sysevent
+  kernel_HEADERS = $(KERNEL_H)
+  endif
+diff -rc spl-0.6.1.orig/include/util/Makefile.am spl-0.6.1/include/util/Makefile.am
+*** spl-0.6.1.orig/include/util/Makefile.am	2013-03-26 09:37:39.000000000 -0700
+--- spl-0.6.1/include/util/Makefile.am	2013-04-05 22:10:49.452569000 -0700
+***************
+*** 9,14 ****
+  EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+  
+  if CONFIG_KERNEL
+! kerneldir = /usr/src/spl-$(VERSION)/include/util
+  kernel_HEADERS = $(KERNEL_H)
+  endif
+--- 9,14 ----
+  EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+  
+  if CONFIG_KERNEL
+! kerneldir = @prefix@/libexec/spl/include/util
+  kernel_HEADERS = $(KERNEL_H)
+  endif
+diff -rc spl-0.6.1.orig/include/vm/Makefile.am spl-0.6.1/include/vm/Makefile.am
+*** spl-0.6.1.orig/include/vm/Makefile.am	2013-03-26 09:37:39.000000000 -0700
+--- spl-0.6.1/include/vm/Makefile.am	2013-04-05 22:10:47.444535000 -0700
+***************
+*** 10,15 ****
+  EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+  
+  if CONFIG_KERNEL
+! kerneldir = /usr/src/spl-$(VERSION)/include/vm
+  kernel_HEADERS = $(KERNEL_H)
+  endif
+--- 10,15 ----
+  EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+  
+  if CONFIG_KERNEL
+! kerneldir = @prefix@/libexec/spl/include/vm
+  kernel_HEADERS = $(KERNEL_H)
+  endif
+diff -rc spl-0.6.1.orig/Makefile.am spl-0.6.1/Makefile.am
+*** spl-0.6.1.orig/Makefile.am	2013-03-26 09:37:39.000000000 -0700
+--- spl-0.6.1/Makefile.am	2013-04-05 22:09:52.429676000 -0700
+***************
+*** 9,18 ****
+  if CONFIG_KERNEL
+  SUBDIRS += module
+  
+! extradir = /usr/src/spl-$(VERSION)
+  extra_HEADERS = spl.release.in spl_config.h.in
+  
+! kerneldir = /usr/src/spl-$(VERSION)/$(LINUX_VERSION)
+  nodist_kernel_HEADERS = spl.release spl_config.h module/$(LINUX_SYMBOLS)
+  endif
+  
+--- 9,18 ----
+  if CONFIG_KERNEL
+  SUBDIRS += module
+  
+! extradir = @prefix@/libexec/spl
+  extra_HEADERS = spl.release.in spl_config.h.in
+  
+! kerneldir = @prefix@/libexec/spl/$(LINUX_VERSION)
+  nodist_kernel_HEADERS = spl.release spl_config.h module/$(LINUX_SYMBOLS)
+  endif
+  
+diff -rc spl-0.6.1.orig/module/Makefile.in spl-0.6.1/module/Makefile.in
+*** spl-0.6.1.orig/module/Makefile.in	2013-03-26 09:37:39.000000000 -0700
+--- spl-0.6.1/module/Makefile.in	2013-03-28 10:21:59.093481000 -0700
+***************
+*** 21,41 ****
+  modules_install:
+  	@# Install the kernel modules
+  	$(MAKE) -C @LINUX_OBJ@ SUBDIRS=`pwd` $@ \
+! 		INSTALL_MOD_PATH=$(DESTDIR)$(INSTALL_MOD_PATH) \
+  		INSTALL_MOD_DIR=$(INSTALL_MOD_DIR)
+  	@# Remove extraneous build products when packaging
+! 	kmoddir=$(DESTDIR)$(INSTALL_MOD_PATH)/lib/modules/@LINUX_VERSION@; \
+  	if [ -n $$kmoddir ]; then \
+  		find $$kmoddir -name 'modules.*' | xargs $(RM); \
+  	fi
+! 	sysmap=$(DESTDIR)$(INSTALL_MOD_PATH)/boot/System.map-@LINUX_VERSION@; \
+  	if [ -f $$sysmap ]; then \
+  		depmod -ae -F $$sysmap @LINUX_VERSION@; \
+  	fi
+  
+  modules_uninstall:
+  	@# Uninstall the kernel modules
+! 	kmoddir=$(DESTDIR)$(INSTALL_MOD_PATH)/lib/modules/@LINUX_VERSION@
+  	list='$(subdir-m)'; for subdir in $$list; do \
+  		$(RM) -R $$kmoddir/$(INSTALL_MOD_DIR)/$$subdir; \
+  	done
+--- 21,41 ----
+  modules_install:
+  	@# Install the kernel modules
+  	$(MAKE) -C @LINUX_OBJ@ SUBDIRS=`pwd` $@ \
+! 		INSTALL_MOD_PATH=@prefix@/$(INSTALL_MOD_PATH) \
+  		INSTALL_MOD_DIR=$(INSTALL_MOD_DIR)
+  	@# Remove extraneous build products when packaging
+! 	kmoddir=@prefix@/$(INSTALL_MOD_PATH)/lib/modules/@LINUX_VERSION@; \
+  	if [ -n $$kmoddir ]; then \
+  		find $$kmoddir -name 'modules.*' | xargs $(RM); \
+  	fi
+! 	sysmap=@prefix@/$(INSTALL_MOD_PATH)/boot/System.map-@LINUX_VERSION@; \
+  	if [ -f $$sysmap ]; then \
+  		depmod -ae -F $$sysmap @LINUX_VERSION@; \
+  	fi
+  
+  modules_uninstall:
+  	@# Uninstall the kernel modules
+! 	kmoddir=@prefix@/$(INSTALL_MOD_PATH)/lib/modules/@LINUX_VERSION@
+  	list='$(subdir-m)'; for subdir in $$list; do \
+  		$(RM) -R $$kmoddir/$(INSTALL_MOD_DIR)/$$subdir; \
   	done
diff --git a/pkgs/os-specific/linux/spl/install_prefix_2.patch b/pkgs/os-specific/linux/spl/install_prefix_2.patch
deleted file mode 100644
index 6068ad1d69c2..000000000000
--- a/pkgs/os-specific/linux/spl/install_prefix_2.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-*** git-export/include/Makefile.am	Tue Mar  6 00:05:28 2012
---- git-export/include/Makefile.am.new	Tue Mar  6 00:04:46 2012
-***************
-*** 16,22 ****
-  
-  install-data-local:
-  	release=$(SPL_META_VERSION)-$(SPL_META_RELEASE); \
-! 	instdest=$(DESTDIR)/usr/src/spl-$$release/$(LINUX_VERSION); \
-  	instfiles=`find . -name '*.h'`; \
-          for instfile in $$instfiles; do \
-  		$(INSTALL) -D $$instfile $$instdest/$$instfile; \
---- 16,22 ----
-  
-  install-data-local:
-  	release=$(SPL_META_VERSION)-$(SPL_META_RELEASE); \
-! 	instdest=$(DESTDIR)/@libexecdir@/spl/$(LINUX_VERSION); \
-  	instfiles=`find . -name '*.h'`; \
-          for instfile in $$instfiles; do \
-  		$(INSTALL) -D $$instfile $$instdest/$$instfile; \
-***************
-*** 24,28 ****
-  
-  uninstall-local:
-  	release=$(SPL_META_VERSION)-$(SPL_META_RELEASE); \
-! 	instdest=$(DESTDIR)/usr/src/spl-$$release/$(LINUX_VERSION); \
-  	$(RM) -R $$instdest
---- 24,28 ----
-  
-  uninstall-local:
-  	release=$(SPL_META_VERSION)-$(SPL_META_RELEASE); \
-! 	instdest=$(DESTDIR)/@libexecdir@/spl/$(LINUX_VERSION); \
-  	$(RM) -R $$instdest
diff --git a/pkgs/os-specific/linux/spl/module_prefix.patch b/pkgs/os-specific/linux/spl/module_prefix.patch
deleted file mode 100644
index dd40711ccdb8..000000000000
--- a/pkgs/os-specific/linux/spl/module_prefix.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-*** git-export/module/Makefile.in	Wed Dec 31 16:00:01 1969
---- git-export/module/Makefile.in.new	Sat Jan 28 21:42:06 2012
-***************
-*** 17,30 ****
-  modules_install:
-  	@# Install the kernel modules
-  	$(MAKE) -C @LINUX_OBJ@ SUBDIRS=`pwd` \
-! 		INSTALL_MOD_PATH=$(DESTDIR) \
-  		INSTALL_MOD_DIR=addon/spl $@
-  	@# Remove extraneous build products when packaging
-! 	if [ -n "$(DESTDIR)" ]; then \
-! 		find $(DESTDIR)/lib/modules/@LINUX_VERSION@ \
-  			-name 'modules.*' | xargs $(RM); \
-  	fi
-! 	sysmap=$(DESTDIR)/boot/System.map-@LINUX_VERSION@; \
-  	if [ -f $$sysmap ]; then \
-  		depmod -ae -F $$sysmap @LINUX_VERSION@; \
-  	fi
---- 17,30 ----
-  modules_install:
-  	@# Install the kernel modules
-  	$(MAKE) -C @LINUX_OBJ@ SUBDIRS=`pwd` \
-! 		INSTALL_MOD_PATH=@prefix@ \
-  		INSTALL_MOD_DIR=addon/spl $@
-  	@# Remove extraneous build products when packaging
-! 	if [ -n "@prefix@" ]; then \
-! 		find @prefix@/lib/modules/@LINUX_VERSION@ \
-  			-name 'modules.*' | xargs $(RM); \
-  	fi
-! 	sysmap=@prefix@/boot/System.map-@LINUX_VERSION@; \
-  	if [ -f $$sysmap ]; then \
-  		depmod -ae -F $$sysmap @LINUX_VERSION@; \
-  	fi
diff --git a/pkgs/os-specific/linux/udisks/default.nix b/pkgs/os-specific/linux/udisks/1-default.nix
index b53af52755fa..b53af52755fa 100644
--- a/pkgs/os-specific/linux/udisks/default.nix
+++ b/pkgs/os-specific/linux/udisks/1-default.nix
diff --git a/pkgs/os-specific/linux/udisks/2-default.nix b/pkgs/os-specific/linux/udisks/2-default.nix
new file mode 100644
index 000000000000..28cdbe189783
--- /dev/null
+++ b/pkgs/os-specific/linux/udisks/2-default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl, pkgconfig, intltool
+, expat, acl, udev, glib, libatasmart, polkit
+, libxslt, docbook_xsl, utillinux, mdadm
+}:
+
+stdenv.mkDerivation rec {
+  name = "udisks-2.1.0";
+
+  src = fetchurl {
+    url = "http://udisks.freedesktop.org/releases/${name}.tar.bz2";
+    sha256 = "1a0mipihilscv9jwy59xrqn2kkri9p12a09anpjdld83l7jhh0ii";
+  };
+
+  patches = [ ./force-path.patch ];
+
+  # FIXME remove /var/run/current-system/sw/* references
+  # FIXME add references to parted, cryptsetup, etc (see the sources)
+  postPatch =
+    ''
+      substituteInPlace src/main.c --replace \
+        "@path@" \
+        "${utillinux}/bin:${mdadm}/sbin:/var/run/current-system/sw/bin:/var/run/current-system/sw/sbin"
+    '';
+
+  nativeBuildInputs = [ pkgconfig intltool ];
+
+  propagatedBuildInputs = [ expat acl udev glib libatasmart polkit ]; # in closure anyway
+
+  buildInputs = [ libxslt docbook_xsl ];
+
+  configureFlags = [
+    "--localstatedir=/var"
+    "--with-systemdsystemunitdir=$(out)/etc/systemd/systemd"
+    "--with-udevdir=$(out)/lib/udev"
+  ];
+
+  meta = {
+    homepage = http://www.freedesktop.org/wiki/Software/udisks;
+    description = "A daemon and command-line utility for querying and manipulating storage devices";
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/os-specific/linux/udisks/force-path.patch b/pkgs/os-specific/linux/udisks/force-path.patch
new file mode 100644
index 000000000000..16c7ea5322fa
--- /dev/null
+++ b/pkgs/os-specific/linux/udisks/force-path.patch
@@ -0,0 +1,13 @@
+diff -ruN udisks-2.1.0.orig/src/main.c udisks-2.1.0/src/main.c
+--- udisks-2.1.0.orig/src/main.c	2013-04-02 10:43:41.629332135 +0000
++++ udisks-2.1.0/src/main.c	2013-04-02 11:04:55.635342823 +0000
+@@ -140,8 +140,7 @@
+         }
+     }
+ 
+-  if (g_getenv ("PATH") == NULL)
+-    g_setenv ("PATH", "/usr/bin:/bin:/usr/sbin:/sbin", TRUE);
++  g_setenv ("PATH", "@path@", TRUE);
+ 
+   udisks_notice ("udisks daemon version %s starting", PACKAGE_VERSION);
+ 
diff --git a/pkgs/os-specific/linux/zfs/default.nix b/pkgs/os-specific/linux/zfs/default.nix
index 8da4906f8fe1..ac07474d3f4b 100644
--- a/pkgs/os-specific/linux/zfs/default.nix
+++ b/pkgs/os-specific/linux/zfs/default.nix
@@ -1,20 +1,19 @@
 { stdenv, fetchurl, kernelDev, spl, perl, autoconf, automake, libtool, zlib, libuuid, coreutils, utillinux }:
 
 stdenv.mkDerivation {
-  name = "zfs-0.6.0-rc14-${kernelDev.version}";
+  name = "zfs-0.6.1-${kernelDev.version}";
 
   src = fetchurl {
-    url = http://archive.zfsonlinux.org/downloads/zfsonlinux/zfs/zfs-0.6.0-rc14.tar.gz;
-    sha256 = "0ny2lbhyfsfwfcasa1iv2hz12hzcskx9mv641955d844dh32z9fg";
+    url = http://archive.zfsonlinux.org/downloads/zfsonlinux/zfs/zfs-0.6.1.tar.gz;
+    sha256 = "1ykph9d4p70mam6lvcx0zld6d34gch15dsilds5ncbxh0m52knl0";
   };
 
-  patches = [ ./module_perm_prefix.patch ./mount_zfs_prefix.patch ./kerneldir_path.patch ./no_absolute_paths_to_coreutils.patch ];
+  patches = [ ./mount_zfs_prefix.patch ./nix-build.patch ];
 
   buildInputs = [ kernelDev spl perl autoconf automake libtool zlib libuuid coreutils ];
 
   # for zdb to get the rpath to libgcc_s, needed for pthread_cancel to work
   NIX_CFLAGS_LINK = "-lgcc_s";
-  NIX_CFLAGS_COMPILE = "-I${kernelDev}/lib/modules/${kernelDev.modDirVersion}/build/include/generated";
 
   preConfigure = ''
     ./autogen.sh
@@ -31,8 +30,7 @@ stdenv.mkDerivation {
   configureFlags = ''
     --with-linux=${kernelDev}/lib/modules/${kernelDev.modDirVersion}/build 
     --with-linux-obj=${kernelDev}/lib/modules/${kernelDev.modDirVersion}/build 
-    --with-spl=${spl}/libexec/spl/${kernelDev.modDirVersion}
-    ${if stdenv.system == "i686-linux"  then "--enable-atomic-spinlocks" else ""}
+    --with-spl=${spl}/libexec/spl
   '';
 
   meta = {
diff --git a/pkgs/os-specific/linux/zfs/kerneldir_path.patch b/pkgs/os-specific/linux/zfs/kerneldir_path.patch
deleted file mode 100644
index 4503ac4ca48b..000000000000
--- a/pkgs/os-specific/linux/zfs/kerneldir_path.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-diff --git a/Makefile.am b/Makefile.am
-index 9ffd6be..8e51412 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -34,7 +34,7 @@ distclean-local::
- if CONFIG_KERNEL
- install-data-local:
- 	release=$(ZFS_META_VERSION)-$(ZFS_META_RELEASE); \
--	instdest=$(DESTDIR)/usr/src/zfs-$$release/$(LINUX_VERSION); \
-+	instdest=$(DESTDIR)/$(libexecdir)/zfs/$(LINUX_VERSION); \
- 	for instfile in $(noinst_HEADERS) module/$(LINUX_SYMBOLS); do \
- 		$(INSTALL) -D $$instfile $$instdest/$$instfile; \
- 	done
-diff --git a/include/Makefile.am b/include/Makefile.am
-index 8f9c8d7..5fc44d5 100644
---- a/include/Makefile.am
-+++ b/include/Makefile.am
-@@ -27,6 +27,6 @@ libzfs_HEADERS = $(COMMON_H) $(USER_H)
- endif
- 
- if CONFIG_KERNEL
--kerneldir = /usr/src/zfs-$(ZFS_META_VERSION)-$(ZFS_META_RELEASE)/$(LINUX_VERSION)
-+kerneldir = $(DESTDIR)/$(libexecdir)/zfs/$(LINUX_VERSION)
- kernel_HEADERS = $(COMMON_H) $(KERNEL_H)
- endif
-diff --git a/include/linux/Makefile.am b/include/linux/Makefile.am
-index 6e481a1..1107809 100644
---- a/include/linux/Makefile.am
-+++ b/include/linux/Makefile.am
-@@ -16,6 +16,6 @@ libzfs_HEADERS = $(COMMON_H) $(USER_H)
- endif
- 
- if CONFIG_KERNEL
--kerneldir = /usr/src/zfs-$(ZFS_META_VERSION)-$(ZFS_META_RELEASE)/$(LINUX_VERSION)/linux
-+kerneldir = $(DESTDIR)/$(libexecdir)/zfs/$(LINUX_VERSION)
- kernel_HEADERS = $(COMMON_H) $(KERNEL_H)
- endif
-diff --git a/include/sys/Makefile.am b/include/sys/Makefile.am
-index 651e68b..b80bb55 100644
---- a/include/sys/Makefile.am
-+++ b/include/sys/Makefile.am
-@@ -89,6 +89,6 @@ libzfs_HEADERS = $(COMMON_H) $(USER_H)
- endif
- 
- if CONFIG_KERNEL
--kerneldir = /usr/src/zfs-$(ZFS_META_VERSION)-$(ZFS_META_RELEASE)/$(LINUX_VERSION)/sys
-+kerneldir = $(DESTDIR)/$(libexecdir)/zfs/$(LINUX_VERSION)
- kernel_HEADERS = $(COMMON_H) $(KERNEL_H)
- endif
-diff --git a/include/sys/fm/Makefile.am b/include/sys/fm/Makefile.am
-index 900ed93..8d9bed2 100644
---- a/include/sys/fm/Makefile.am
-+++ b/include/sys/fm/Makefile.am
-@@ -16,6 +16,6 @@ libzfs_HEADERS = $(COMMON_H) $(USER_H)
- endif
- 
- if CONFIG_KERNEL
--kerneldir = /usr/src/zfs-$(ZFS_META_VERSION)-$(ZFS_META_RELEASE)/$(LINUX_VERSION)/sys/fm
-+kerneldir = $(DESTDIR)/$(libexecdir)/zfs/$(LINUX_VERSION)
- kernel_HEADERS = $(COMMON_H) $(KERNEL_H)
- endif
-diff --git a/include/sys/fm/fs/Makefile.am b/include/sys/fm/fs/Makefile.am
-index d82d076..b4ae3ee 100644
---- a/include/sys/fm/fs/Makefile.am
-+++ b/include/sys/fm/fs/Makefile.am
-@@ -13,6 +13,6 @@ libzfs_HEADERS = $(COMMON_H) $(USER_H)
- endif
- 
- if CONFIG_KERNEL
--kerneldir = /usr/src/zfs-$(ZFS_META_VERSION)-$(ZFS_META_RELEASE)/$(LINUX_VERSION)/sys/fm/fs
-+kerneldir = $(DESTDIR)/$(libexecdir)/zfs/$(LINUX_VERSION)
- kernel_HEADERS = $(COMMON_H) $(KERNEL_H)
- endif
-diff --git a/include/sys/fs/Makefile.am b/include/sys/fs/Makefile.am
-index b702679..3c747f4 100644
---- a/include/sys/fs/Makefile.am
-+++ b/include/sys/fs/Makefile.am
-@@ -13,6 +13,6 @@ libzfs_HEADERS = $(COMMON_H) $(USER_H)
- endif
- 
- if CONFIG_KERNEL
--kerneldir = /usr/src/zfs-$(ZFS_META_VERSION)-$(ZFS_META_RELEASE)/$(LINUX_VERSION)/sys/fs
-+kerneldir = $(DESTDIR)/$(libexecdir)/zfs/$(LINUX_VERSION)
- kernel_HEADERS = $(COMMON_H) $(KERNEL_H)
- endif
diff --git a/pkgs/os-specific/linux/zfs/module_perm_prefix.patch b/pkgs/os-specific/linux/zfs/module_perm_prefix.patch
deleted file mode 100644
index 07cd04d1dded..000000000000
--- a/pkgs/os-specific/linux/zfs/module_perm_prefix.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-*** git-export/module/Makefile.in.orig	Wed Dec 31 16:00:01 1969
---- git-export/module/Makefile.in	Tue Mar  6 00:23:07 2012
-***************
-*** 11,19 ****
-  	@# installed devel headers, or they may be in the module
-  	@# subdirectory when building against the spl source tree.
-  	@if [ -f @SPL_OBJ@/@SPL_SYMBOLS@ ]; then \
-! 		/bin/cp @SPL_OBJ@/@SPL_SYMBOLS@ .; \
-  	elif [ -f @SPL_OBJ@/module/@SPL_SYMBOLS@ ]; then \
-! 		/bin/cp @SPL_OBJ@/module/@SPL_SYMBOLS@ .; \
-  	else \
-  		echo -e "\n" \
-  		"*** Missing spl symbols ensure you have built the spl:\n" \
---- 11,21 ----
-  	@# installed devel headers, or they may be in the module
-  	@# subdirectory when building against the spl source tree.
-  	@if [ -f @SPL_OBJ@/@SPL_SYMBOLS@ ]; then \
-! 		/bin/cp -f @SPL_OBJ@/@SPL_SYMBOLS@ .; \
-! 		chmod +w @SPL_SYMBOLS@ .; \
-  	elif [ -f @SPL_OBJ@/module/@SPL_SYMBOLS@ ]; then \
-! 		/bin/cp -f @SPL_OBJ@/module/@SPL_SYMBOLS@ .; \
-! 		chmod +w @SPL_SYMBOLS@ .; \
-  	else \
-  		echo -e "\n" \
-  		"*** Missing spl symbols ensure you have built the spl:\n" \
-***************
-*** 35,55 ****
-  modules_install:
-  	@# Install the kernel modules
-  	$(MAKE) -C @LINUX_OBJ@ SUBDIRS=`pwd` \
-! 		INSTALL_MOD_PATH=$(DESTDIR) \
-  		INSTALL_MOD_DIR=addon/zfs $@
-  	@# Remove extraneous build products when packaging
-! 	if [ -n "$(DESTDIR)" ]; then \
-! 		find $(DESTDIR)/lib/modules/@LINUX_VERSION@ \
-  			-name 'modules.*' | xargs $(RM); \
-  	fi
-! 	sysmap=$(DESTDIR)/boot/System.map-@LINUX_VERSION@; \
-  	if [ -f $$sysmap ]; then \
-  		depmod -ae -F $$sysmap @LINUX_VERSION@; \
-  	fi
-  
-  modules_uninstall:
-  	@# Uninstall the kernel modules
-! 	$(RM) -R $(DESTDIR)/lib/modules/@LINUX_VERSION@/addon/zfs
-  
-  distdir:
-  
---- 37,57 ----
-  modules_install:
-  	@# Install the kernel modules
-  	$(MAKE) -C @LINUX_OBJ@ SUBDIRS=`pwd` \
-! 		INSTALL_MOD_PATH=@prefix@ \
-  		INSTALL_MOD_DIR=addon/zfs $@
-  	@# Remove extraneous build products when packaging
-! 	if [ -n "@prefix@" ]; then \
-! 		find @prefix@/lib/modules/@LINUX_VERSION@ \
-  			-name 'modules.*' | xargs $(RM); \
-  	fi
-! 	sysmap=@prefix@/boot/System.map-@LINUX_VERSION@; \
-  	if [ -f $$sysmap ]; then \
-  		depmod -ae -F $$sysmap @LINUX_VERSION@; \
-  	fi
-  
-  modules_uninstall:
-  	@# Uninstall the kernel modules
-! 	$(RM) -R @prefix@/lib/modules/@LINUX_VERSION@/addon/zfs
-  
-  distdir:
-  
diff --git a/pkgs/os-specific/linux/zfs/nix-build.patch b/pkgs/os-specific/linux/zfs/nix-build.patch
new file mode 100644
index 000000000000..af4b94e355d7
--- /dev/null
+++ b/pkgs/os-specific/linux/zfs/nix-build.patch
@@ -0,0 +1,214 @@
+diff -rc zfs-0.6.1.orig/include/linux/Makefile.am zfs-0.6.1/include/linux/Makefile.am
+*** zfs-0.6.1.orig/include/linux/Makefile.am	2013-03-26 09:37:47.000000000 -0700
+--- zfs-0.6.1/include/linux/Makefile.am	2013-03-28 11:07:10.099129000 -0700
+***************
+*** 16,21 ****
+  endif
+  
+  if CONFIG_KERNEL
+! kerneldir = /usr/src/zfs-$(VERSION)/include/linux
+  kernel_HEADERS = $(COMMON_H) $(KERNEL_H)
+  endif
+--- 16,21 ----
+  endif
+  
+  if CONFIG_KERNEL
+! kerneldir = @prefix@/include/linux
+  kernel_HEADERS = $(COMMON_H) $(KERNEL_H)
+  endif
+diff -rc zfs-0.6.1.orig/include/Makefile.am zfs-0.6.1/include/Makefile.am
+*** zfs-0.6.1.orig/include/Makefile.am	2013-03-26 09:37:47.000000000 -0700
+--- zfs-0.6.1/include/Makefile.am	2013-03-28 11:07:38.810870000 -0700
+***************
+*** 28,33 ****
+  endif
+  
+  if CONFIG_KERNEL
+! kerneldir = /usr/src/zfs-$(VERSION)/include
+  kernel_HEADERS = $(COMMON_H) $(KERNEL_H)
+  endif
+--- 28,33 ----
+  endif
+  
+  if CONFIG_KERNEL
+! kerneldir = @prefix@/include
+  kernel_HEADERS = $(COMMON_H) $(KERNEL_H)
+  endif
+diff -rc zfs-0.6.1.orig/include/sys/fm/fs/Makefile.am zfs-0.6.1/include/sys/fm/fs/Makefile.am
+*** zfs-0.6.1.orig/include/sys/fm/fs/Makefile.am	2013-03-26 09:37:47.000000000 -0700
+--- zfs-0.6.1/include/sys/fm/fs/Makefile.am	2013-03-28 11:07:36.074756000 -0700
+***************
+*** 13,18 ****
+  endif
+  
+  if CONFIG_KERNEL
+! kerneldir = /usr/src/zfs-$(VERSION)/include/sys/fm/fs
+  kernel_HEADERS = $(COMMON_H) $(KERNEL_H)
+  endif
+--- 13,18 ----
+  endif
+  
+  if CONFIG_KERNEL
+! kerneldir = @prefix@/include/sys/fm/fs
+  kernel_HEADERS = $(COMMON_H) $(KERNEL_H)
+  endif
+diff -rc zfs-0.6.1.orig/include/sys/fm/Makefile.am zfs-0.6.1/include/sys/fm/Makefile.am
+*** zfs-0.6.1.orig/include/sys/fm/Makefile.am	2013-03-26 09:37:47.000000000 -0700
+--- zfs-0.6.1/include/sys/fm/Makefile.am	2013-03-28 11:07:32.265896000 -0700
+***************
+*** 16,21 ****
+  endif
+  
+  if CONFIG_KERNEL
+! kerneldir = /usr/src/zfs-$(VERSION)/include/sys/fm
+  kernel_HEADERS = $(COMMON_H) $(KERNEL_H)
+  endif
+--- 16,21 ----
+  endif
+  
+  if CONFIG_KERNEL
+! kerneldir = @prefix@/include/sys/fm
+  kernel_HEADERS = $(COMMON_H) $(KERNEL_H)
+  endif
+diff -rc zfs-0.6.1.orig/include/sys/fs/Makefile.am zfs-0.6.1/include/sys/fs/Makefile.am
+*** zfs-0.6.1.orig/include/sys/fs/Makefile.am	2013-03-26 09:37:47.000000000 -0700
+--- zfs-0.6.1/include/sys/fs/Makefile.am	2013-03-28 11:07:27.592339000 -0700
+***************
+*** 13,18 ****
+  endif
+  
+  if CONFIG_KERNEL
+! kerneldir = /usr/src/zfs-$(VERSION)/include/sys/fs
+  kernel_HEADERS = $(COMMON_H) $(KERNEL_H)
+  endif
+--- 13,18 ----
+  endif
+  
+  if CONFIG_KERNEL
+! kerneldir = @prefix@/include/sys/fs
+  kernel_HEADERS = $(COMMON_H) $(KERNEL_H)
+  endif
+diff -rc zfs-0.6.1.orig/include/sys/Makefile.am zfs-0.6.1/include/sys/Makefile.am
+*** zfs-0.6.1.orig/include/sys/Makefile.am	2013-03-26 09:37:47.000000000 -0700
+--- zfs-0.6.1/include/sys/Makefile.am	2013-03-28 11:07:19.045717000 -0700
+***************
+*** 91,96 ****
+  endif
+  
+  if CONFIG_KERNEL
+! kerneldir = /usr/src/zfs-$(VERSION)/include/sys
+  kernel_HEADERS = $(COMMON_H) $(KERNEL_H)
+  endif
+--- 91,96 ----
+  endif
+  
+  if CONFIG_KERNEL
+! kerneldir = @prefix@/include/sys
+  kernel_HEADERS = $(COMMON_H) $(KERNEL_H)
+  endif
+diff -rc zfs-0.6.1.orig/Makefile.am zfs-0.6.1/Makefile.am
+*** zfs-0.6.1.orig/Makefile.am	2013-03-26 09:37:47.000000000 -0700
+--- zfs-0.6.1/Makefile.am	2013-04-05 23:49:39.763623000 -0700
+***************
+*** 9,18 ****
+  if CONFIG_KERNEL
+  SUBDIRS += module
+  
+! extradir = /usr/src/zfs-$(VERSION)
+  extra_HEADERS = zfs.release.in zfs_config.h.in
+  
+! kerneldir = /usr/src/zfs-$(VERSION)/$(LINUX_VERSION)
+  nodist_kernel_HEADERS = zfs.release zfs_config.h module/$(LINUX_SYMBOLS)
+  endif
+  
+--- 9,18 ----
+  if CONFIG_KERNEL
+  SUBDIRS += module
+  
+! extradir = @prefix@/libexec/zfs-$(VERSION)
+  extra_HEADERS = zfs.release.in zfs_config.h.in
+  
+! kerneldir = @prefix@/zfs-$(VERSION)/$(LINUX_VERSION)
+  nodist_kernel_HEADERS = zfs.release zfs_config.h module/$(LINUX_SYMBOLS)
+  endif
+  
+diff -rc zfs-0.6.1.orig/module/Makefile.in zfs-0.6.1/module/Makefile.in
+*** zfs-0.6.1.orig/module/Makefile.in	2013-03-26 09:37:47.000000000 -0700
+--- zfs-0.6.1/module/Makefile.in	2013-04-05 23:50:41.497876000 -0700
+***************
+*** 18,26 ****
+  	@# installed devel headers, or they may be in the module
+  	@# subdirectory when building against the spl source tree.
+  	@if [ -f @SPL_OBJ@/@SPL_SYMBOLS@ ]; then \
+! 		/bin/cp @SPL_OBJ@/@SPL_SYMBOLS@ .; \
+  	elif [ -f @SPL_OBJ@/module/@SPL_SYMBOLS@ ]; then \
+! 		/bin/cp @SPL_OBJ@/module/@SPL_SYMBOLS@ .; \
+  	else \
+  		echo -e "\n" \
+  		"*** Missing spl symbols ensure you have built the spl:\n" \
+--- 18,26 ----
+  	@# installed devel headers, or they may be in the module
+  	@# subdirectory when building against the spl source tree.
+  	@if [ -f @SPL_OBJ@/@SPL_SYMBOLS@ ]; then \
+! 		cp @SPL_OBJ@/@SPL_SYMBOLS@ .; \
+  	elif [ -f @SPL_OBJ@/module/@SPL_SYMBOLS@ ]; then \
+! 		cp @SPL_OBJ@/module/@SPL_SYMBOLS@ .; \
+  	else \
+  		echo -e "\n" \
+  		"*** Missing spl symbols ensure you have built the spl:\n" \
+***************
+*** 28,33 ****
+--- 28,35 ----
+  		"*** - @SPL_OBJ@/module/@SPL_SYMBOLS@\n"; \
+  		exit 1; \
+  	fi
++ 	@# when copying a file out of the nix store, we need to make it writable again. 
++ 	chmod +w @SPL_SYMBOLS@
+  	$(MAKE) -C @LINUX_OBJ@ SUBDIRS=`pwd` @KERNELMAKE_PARAMS@ CONFIG_ZFS=m $@
+  
+  clean:
+***************
+*** 42,62 ****
+  modules_install:
+  	@# Install the kernel modules
+  	$(MAKE) -C @LINUX_OBJ@ SUBDIRS=`pwd` $@ \
+! 		INSTALL_MOD_PATH=$(DESTDIR)$(INSTALL_MOD_PATH) \
+  		INSTALL_MOD_DIR=$(INSTALL_MOD_DIR)
+  	@# Remove extraneous build products when packaging
+! 	kmoddir=$(DESTDIR)$(INSTALL_MOD_PATH)/lib/modules/@LINUX_VERSION@; \
+  	if [ -n $$kmoddir ]; then \
+  		find $$kmoddir -name 'modules.*' | xargs $(RM); \
+  	fi
+! 	sysmap=$(DESTDIR)$(INSTALL_MOD_PATH)/boot/System.map-@LINUX_VERSION@; \
+  	if [ -f $$sysmap ]; then \
+  		depmod -ae -F $$sysmap @LINUX_VERSION@; \
+  	fi
+  
+  modules_uninstall:
+  	@# Uninstall the kernel modules
+! 	kmoddir=$(DESTDIR)$(INSTALL_MOD_PATH)/lib/modules/@LINUX_VERSION@
+  	list='$(subdir-m)'; for subdir in $$list; do \
+  		$(RM) -R $$kmoddir/$(INSTALL_MOD_DIR)/$$subdir; \
+  	done
+--- 44,64 ----
+  modules_install:
+  	@# Install the kernel modules
+  	$(MAKE) -C @LINUX_OBJ@ SUBDIRS=`pwd` $@ \
+! 		INSTALL_MOD_PATH=@prefix@/$(INSTALL_MOD_PATH) \
+  		INSTALL_MOD_DIR=$(INSTALL_MOD_DIR)
+  	@# Remove extraneous build products when packaging
+! 	kmoddir=@prefix@/$(INSTALL_MOD_PATH)/lib/modules/@LINUX_VERSION@; \
+  	if [ -n $$kmoddir ]; then \
+  		find $$kmoddir -name 'modules.*' | xargs $(RM); \
+  	fi
+! 	sysmap=@prefix@/$(INSTALL_MOD_PATH)/boot/System.map-@LINUX_VERSION@; \
+  	if [ -f $$sysmap ]; then \
+  		depmod -ae -F $$sysmap @LINUX_VERSION@; \
+  	fi
+  
+  modules_uninstall:
+  	@# Uninstall the kernel modules
+! 	kmoddir=@prefix@/$(INSTALL_MOD_PATH)/lib/modules/@LINUX_VERSION@
+  	list='$(subdir-m)'; for subdir in $$list; do \
+  		$(RM) -R $$kmoddir/$(INSTALL_MOD_DIR)/$$subdir; \
+  	done
diff --git a/pkgs/os-specific/linux/zfs/no_absolute_paths_to_coreutils.patch b/pkgs/os-specific/linux/zfs/no_absolute_paths_to_coreutils.patch
deleted file mode 100644
index e223e34c3a43..000000000000
--- a/pkgs/os-specific/linux/zfs/no_absolute_paths_to_coreutils.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-*** git-export/module/Makefile.in.old	Tue Mar  6 01:04:48 2012
---- git-export/module/Makefile.in	Tue Mar  6 01:04:59 2012
-***************
-*** 11,20 ****
-  	@# installed devel headers, or they may be in the module
-  	@# subdirectory when building against the spl source tree.
-  	@if [ -f @SPL_OBJ@/@SPL_SYMBOLS@ ]; then \
-! 		/bin/cp -f @SPL_OBJ@/@SPL_SYMBOLS@ .; \
-  		chmod +w @SPL_SYMBOLS@ .; \
-  	elif [ -f @SPL_OBJ@/module/@SPL_SYMBOLS@ ]; then \
-! 		/bin/cp -f @SPL_OBJ@/module/@SPL_SYMBOLS@ .; \
-  		chmod +w @SPL_SYMBOLS@ .; \
-  	else \
-  		echo -e "\n" \
---- 11,20 ----
-  	@# installed devel headers, or they may be in the module
-  	@# subdirectory when building against the spl source tree.
-  	@if [ -f @SPL_OBJ@/@SPL_SYMBOLS@ ]; then \
-! 		cp -f @SPL_OBJ@/@SPL_SYMBOLS@ .; \
-  		chmod +w @SPL_SYMBOLS@ .; \
-  	elif [ -f @SPL_OBJ@/module/@SPL_SYMBOLS@ ]; then \
-! 		cp -f @SPL_OBJ@/module/@SPL_SYMBOLS@ .; \
-  		chmod +w @SPL_SYMBOLS@ .; \
-  	else \
-  		echo -e "\n" \
diff --git a/pkgs/servers/amqp/rabbitmq-server/default.nix b/pkgs/servers/amqp/rabbitmq-server/default.nix
index 043c69d5cc0e..59788be15d11 100644
--- a/pkgs/servers/amqp/rabbitmq-server/default.nix
+++ b/pkgs/servers/amqp/rabbitmq-server/default.nix
@@ -2,10 +2,12 @@
 , docbook_xml_dtd_45, docbook_xsl, zip, unzip }:
 
 stdenv.mkDerivation rec {
-  name = "rabbitmq-server-3.0.3";
+  name = "rabbitmq-server-${version}";
+
+  version = "3.0.3";
 
   src = fetchurl {
-    url = "http://www.rabbitmq.com/releases/rabbitmq-server/v3.0.3/${name}.tar.gz";
+    url = "http://www.rabbitmq.com/releases/rabbitmq-server/v${version}/${name}.tar.gz";
     sha256 = "07mp57xvszdrlgw8rgn9r9dpa6vdqdjk7f1dyh6a9sdg8s9fby38";
   };
 
@@ -20,6 +22,14 @@ stdenv.mkDerivation rec {
 
   installFlags = "TARGET_DIR=$(out)/libexec/rabbitmq SBIN_DIR=$(out)/sbin MAN_DIR=$(out)/share/man";
 
+  preInstall =
+    ''
+      sed -i \
+        -e 's|SYS_PREFIX=|SYS_PREFIX=''${SYS_PREFIX-''${HOME}/.rabbitmq/${version}}|' \
+        -e 's|CONF_ENV_FILE=''${SYS_PREFIX}\(.*\)|CONF_ENV_FILE=\1|' \
+        scripts/rabbitmq-defaults
+    '';
+
   postInstall =
     ''
       echo 'PATH=${erlang}/bin:${PATH:+:}$PATH' >> $out/sbin/rabbitmq-env
diff --git a/pkgs/servers/x11/xorg/xorgserver12-CVE-1940.patch b/pkgs/servers/x11/xorg/xorgserver12-CVE-1940.patch
new file mode 100644
index 000000000000..d85494f90293
--- /dev/null
+++ b/pkgs/servers/x11/xorg/xorgserver12-CVE-1940.patch
@@ -0,0 +1,34 @@
+From 6ca03b9161d33b1d2b55a3a1a913cf88deb2343f Mon Sep 17 00:00:00 2001
+From: Dave Airlie <airlied@gmail.com>
+Date: Wed, 10 Apr 2013 06:09:01 +0000
+Subject: xf86: fix flush input to work with Linux evdev devices.
+
+So when we VT switch back and attempt to flush the input devices,
+we don't succeed because evdev won't return part of an event,
+since we were only asking for 4 bytes, we'd only get -EINVAL back.
+
+This could later cause events to be flushed that we shouldn't have
+gotten.
+
+This is a fix for CVE-2013-1940.
+
+Signed-off-by: Dave Airlie <airlied@redhat.com>
+Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
+Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+---
+diff --git a/hw/xfree86/os-support/shared/posix_tty.c b/hw/xfree86/os-support/shared/posix_tty.c
+index ab3757a..4d08c1e 100644
+--- a/hw/xfree86/os-support/shared/posix_tty.c
++++ b/hw/xfree86/os-support/shared/posix_tty.c
+@@ -421,7 +421,8 @@ xf86FlushInput(int fd)
+ {
+     fd_set fds;
+     struct timeval timeout;
+-    char c[4];
++    /* this needs to be big enough to flush an evdev event. */
++    char c[256];
+ 
+     DebugF("FlushingSerial\n");
+     if (tcflush(fd, TCIFLUSH) == 0)
+--
+cgit v0.9.0.2-2-gbebe
diff --git a/pkgs/tools/X11/autocutsel/default.nix b/pkgs/tools/X11/autocutsel/default.nix
new file mode 100644
index 000000000000..871dc5e130a6
--- /dev/null
+++ b/pkgs/tools/X11/autocutsel/default.nix
@@ -0,0 +1,26 @@
+{stdenv, fetchurl, libX11, libXaw}:
+
+let
+  name = "autocutsel-0.9.0";
+in
+stdenv.mkDerivation {
+  inherit name;
+ 
+  src = fetchurl {
+    url = "http://savannah.nongnu.org/download/autocutsel/${name}.tar.gz";
+    sha256 = "0hp335qq57l0kp58pfwb0bk930zx5497frq8y0lzr4icvk1fpw5y";
+  };
+ 
+  buildInputs = [ libX11 libXaw ];
+  installPhase = ''
+    mkdir -p $out/bin
+    cp autocutsel $out/bin/
+  '';
+
+  meta = {
+    homepage = "http://www.nongnu.org/autocutsel/";
+    description = "Autocutsel tracks changes in the server's cutbuffer and CLIPBOARD selection.";
+    license = "GPLv2+";
+    platforms = with stdenv.lib.platforms; all;
+  };
+}
diff --git a/pkgs/tools/archivers/zpaq/default.nix b/pkgs/tools/archivers/zpaq/default.nix
index 2188668d3bf1..6b04fe172687 100644
--- a/pkgs/tools/archivers/zpaq/default.nix
+++ b/pkgs/tools/archivers/zpaq/default.nix
@@ -3,11 +3,11 @@ let
   s = # Generated upstream information
   rec {
     baseName="zpaq";
-    version="622";
+    version="625";
     name="${baseName}-${version}";
-    hash="19avac9spq5kgcgbixd9kvjhy9j0ga75izwqhif44h3jlzdydsmc";
-    url="http://mattmahoney.net/dc/zpaq622.zip";
-    sha256="19avac9spq5kgcgbixd9kvjhy9j0ga75izwqhif44h3jlzdydsmc";
+    hash="0d3ly8l6mzbqxkg68yz7mid3dr056fgr5n49rlkjwcfg533c5gwx";
+    url="http://mattmahoney.net/dc/zpaq625.zip";
+    sha256="0d3ly8l6mzbqxkg68yz7mid3dr056fgr5n49rlkjwcfg533c5gwx";
   };
   buildInputs = [
     unzip
diff --git a/pkgs/tools/backup/obnam/default.nix b/pkgs/tools/backup/obnam/default.nix
index dcac235c6703..69927e015827 100644
--- a/pkgs/tools/backup/obnam/default.nix
+++ b/pkgs/tools/backup/obnam/default.nix
@@ -2,13 +2,13 @@
 
 pythonPackages.buildPythonPackage rec {
   name = "obnam-${version}";
-  version = "1.3";
+  version = "1.4";
 
   namePrefix = "";
 
   src = fetchurl rec {
     url = "http://code.liw.fi/debian/pool/main/o/obnam/obnam_${version}.orig.tar.gz";
-    sha256 = "1hmi58knv7qjw6jr5m28sip5gwzavk87i3s77xk72anaxhvf4g8w";
+    sha256 = "0gipbhh20p9n1x1cdpcil8vg3i20f1saa0xyz2wydb9xl4l2mjff";
   };
 
   buildInputs = [ pythonPackages.sphinx attr ];
diff --git a/pkgs/tools/networking/curl/default.nix b/pkgs/tools/networking/curl/default.nix
index 0f44c67e01cd..eb93c9ef4f66 100644
--- a/pkgs/tools/networking/curl/default.nix
+++ b/pkgs/tools/networking/curl/default.nix
@@ -10,11 +10,11 @@ assert sslSupport -> openssl != null;
 assert scpSupport -> libssh2 != null;
 
 stdenv.mkDerivation rec {
-  name = "curl-7.29.0";
+  name = "curl-7.30.0";
 
   src = fetchurl {
     url = "http://curl.haxx.se/download/${name}.tar.bz2";
-    sha256 = "0bw3sclhjqb2zwgcp6njjpaca62rwlj2mrw2r9wic47sqsxfhy4x";
+    sha256 = "04dgm9aqvplsx43n8xin5rkr8mwmc6mdd1gcp80jda5yhw1l273b";
   };
 
   # Zlib and OpenSSL must be propagated because `libcurl.la' contains
@@ -55,8 +55,6 @@ stdenv.mkDerivation rec {
     inherit sslSupport openssl;
   };
 
-  patches = [ ./fix-curl-multi-cleanup.patch ];
-
   preConfigure = ''
     sed -e 's|/usr/bin|/no-such-path|g' -i.bak configure
   '';
diff --git a/pkgs/tools/networking/curl/fix-curl-multi-cleanup.patch b/pkgs/tools/networking/curl/fix-curl-multi-cleanup.patch
deleted file mode 100644
index f6e42040cb8e..000000000000
--- a/pkgs/tools/networking/curl/fix-curl-multi-cleanup.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-commit 249c981407b8c52edf2b0833a78cd3d3d8bd2823
-Author: Shea Levy <shea@shealevy.com>
-Date:   Sun Feb 10 13:27:10 2013 -0500
-
-    curl_multi_cleanup: Don't try to cleanup the closure_handle if it is NULL.
-    
-    Without this, curl_multi_cleanup(curl_multi_init()) segfaults.
-    
-    Signed-off-by: Shea Levy <shea@shealevy.com>
-
-diff --git a/lib/multi.c b/lib/multi.c
-index fa0afb9..5b9d0bb 100644
---- a/lib/multi.c
-+++ b/lib/multi.c
-@@ -1773,11 +1773,13 @@ CURLMcode curl_multi_cleanup(CURLM *multi_handle)
-     /* Close all the connections in the connection cache */
-     close_all_connections(multi);
- 
--    multi->closure_handle->dns.hostcache = multi->hostcache;
--    Curl_hostcache_clean(multi->closure_handle);
-+    if (multi->closure_handle) {
-+        multi->closure_handle->dns.hostcache = multi->hostcache;
-+        Curl_hostcache_clean(multi->closure_handle);
- 
--    Curl_close(multi->closure_handle);
--    multi->closure_handle = NULL;
-+        Curl_close(multi->closure_handle);
-+        multi->closure_handle = NULL;
-+    }
- 
-     Curl_hash_destroy(multi->sockhash);
-     multi->sockhash = NULL;
diff --git a/pkgs/tools/networking/offlineimap/default.nix b/pkgs/tools/networking/offlineimap/default.nix
index 6ecba1add761..1b1aa768a25f 100644
--- a/pkgs/tools/networking/offlineimap/default.nix
+++ b/pkgs/tools/networking/offlineimap/default.nix
@@ -1,4 +1,4 @@
-{ pkgs, fetchurl, buildPythonPackage }:
+{ pkgs, fetchurl, buildPythonPackage, sqlite3 }:
 
 buildPythonPackage rec {
   version = "6.5.5-rc2";
@@ -12,6 +12,10 @@ buildPythonPackage rec {
 
   doCheck = false;
 
+  propagatedBuildInputs = [
+    sqlite3
+  ];
+
   meta = {
     description = "OfflineImap synchronizes emails between two repositories, so that you can read the same mailbox from multiple computers.";
     homepage = "http://offlineimap.org";
diff --git a/pkgs/tools/networking/wicd/default.nix b/pkgs/tools/networking/wicd/default.nix
index ded85cd80fb9..47e417ffd8a2 100644
--- a/pkgs/tools/networking/wicd/default.nix
+++ b/pkgs/tools/networking/wicd/default.nix
@@ -1,6 +1,6 @@
 {stdenv, fetchurl, python, pygobject, pycairo, pyGtkGlade, pythonDBus, 
  wpa_supplicant, dhcp, dhcpcd, wirelesstools, nettools, openresolv, iproute, iputils,
- locale ? "C" }:
+ pythonPackages, locale ? "C" }:
 
 # Wicd has a ncurses interface that we do not build because it depends
 # on urwid which has not been packaged at this time (2009-12-27).
@@ -14,9 +14,16 @@ stdenv.mkDerivation rec {
     sha256 = "15ywgh60xzmp5z8l1kzics7yi95isrjg1paz42dvp7dlpdfzpzfw";
   };
 
-  buildInputs = [ python ];
+  buildInputs = [ python pythonPackages.Babel ];
 
-  patches = [ ./no-var-install.patch ./no-trans.patch ./mkdir-networks.patch ./pygtk.patch ./no-optimization.patch ];
+  patches = [
+    ./no-var-install.patch
+    ./pygtk.patch
+    ./no-optimization.patch
+    ./dhclient.patch 
+    ./fix-app-icon.patch
+    ./fix-gtk-issues.patch
+    ];
 
   # Should I be using pygtk's propogated build inputs?
   # !!! Should use makeWrapper.
@@ -28,13 +35,13 @@ stdenv.mkDerivation rec {
 
     sed -i "2iexport PATH=\$PATH\$\{PATH:+:\}${python}/bin:${wpa_supplicant}/sbin:${dhcpcd}/sbin:${dhcp}/sbin:${wirelesstools}/sbin:${nettools}/sbin:${nettools}/bin:${iputils}/bin:${openresolv}/sbin:${iproute}/sbin" in/scripts=wicd.in
     sed -i "3iexport PYTHONPATH=\$PYTHONPATH\$\{PYTHONPATH:+:\}$(toPythonPath $out):$(toPythonPath ${pygobject}):$(toPythonPath ${pythonDBus})" in/scripts=wicd.in
-    sed -i "4iexport LC_ALL=\\\"${locale}\\\"" in/scripts=wicd.in
     sed -i "2iexport PATH=\$PATH\$\{PATH:+:\}${python}/bin" in/scripts=wicd-client.in
     sed -i "3iexport PYTHONPATH=\$PYTHONPATH\$\{PYTHONPATH:+:\}$(toPythonPath $out):$(toPythonPath ${pyGtkGlade})/gtk-2.0:$(toPythonPath ${pygobject}):$(toPythonPath ${pygobject})/gtk-2.0:$(toPythonPath ${pycairo}):$(toPythonPath ${pythonDBus})" in/scripts=wicd-client.in
     sed -i "2iexport PATH=\$PATH\$\{PATH:+:\}${python}/bin" in/scripts=wicd-gtk.in
     sed -i "3iexport PYTHONPATH=\$PYTHONPATH\$\{PYTHONPATH:+:\}$(toPythonPath $out):$(toPythonPath ${pyGtkGlade})/gtk-2.0:$(toPythonPath ${pygobject}):$(toPythonPath ${pygobject})/gtk-2.0:$(toPythonPath ${pycairo}):$(toPythonPath ${pythonDBus})" in/scripts=wicd-gtk.in
     sed -i "2iexport PATH=\$PATH\$\{PATH:+:\}${python}/bin" in/scripts=wicd-cli.in
     sed -i "3iexport PYTHONPATH=\$PYTHONPATH\$\{PYTHONPATH:+:\}$(toPythonPath $out):$(toPythonPath ${pyGtkGlade})/gtk-2.0:$(toPythonPath ${pygobject}):$(toPythonPath ${pycairo}):$(toPythonPath ${pythonDBus})" in/scripts=wicd-cli.in
+    rm po/ast.po
   '';
 
   configurePhase = ''
@@ -62,7 +69,7 @@ stdenv.mkDerivation rec {
     --systemd=$out/lib/systemd/ \
     --logrotate=$out/etc/logrotate.d/ \
     --desktop=$out/share/applications/ \
-    --icons=$out/share/icons/hicolour/ \
+    --icons=$out/share/icons/hicolor/ \
     --translations=$out/share/locale/ \
     --autostart=$out/etc/xdg/autostart/ \
     --varlib=$out/var/lib/ \
diff --git a/pkgs/tools/networking/wicd/dhclient.patch b/pkgs/tools/networking/wicd/dhclient.patch
new file mode 100644
index 000000000000..52d91846518f
--- /dev/null
+++ b/pkgs/tools/networking/wicd/dhclient.patch
@@ -0,0 +1,101 @@
+diff -ruN wicd-1.7.2.4.orig/wicd/wnettools.py wicd-1.7.2.4/wicd/wnettools.py
+--- wicd-1.7.2.4.orig/wicd/wnettools.py	2013-03-30 21:47:19.804907552 +0000
++++ wicd-1.7.2.4/wicd/wnettools.py	2013-03-31 08:44:37.572792110 +0000
+@@ -37,6 +37,7 @@
+ import time
+ from string import maketrans, translate
+ 
++import tempfile
+ import wpath
+ import misc
+ from misc import find_path 
+@@ -216,6 +217,7 @@
+         self.flush_tool = None
+         self.link_detect = None       
+         self.dhcp_object = None
++        self.dhclient_conf_path = None;
+     
+     def SetDebugMode(self, value):
+         """ If True, verbose output is enabled. """
+@@ -277,12 +279,6 @@
+                 cmd = ""
+             return (client, cmd)
+ 
+-                # probably /var/lib/wicd/dhclient.conf with defaults
+-        dhclient_conf_path = os.path.join(
+-                    wpath.varlib,
+-                    'dhclient.conf'
+-                )
+-        
+         client_dict = {
+             "dhclient" : 
+                 {'connect' : r"%(cmd)s -cf %(dhclientconf)s %(iface)s",
+@@ -307,41 +303,44 @@
+         }
+         (client_name, cmd) = get_client_name(self.DHCP_CLIENT)
+ 
+-        # cause dhclient doesn't have a handy dandy argument
+-        # for specifing the hostname to be sent
+-        if client_name == "dhclient" and flavor:
+-            if hostname == None:
+-                # <hostname> will use the system hostname
+-                # we'll use that if there is hostname passed
+-                # that shouldn't happen, though
+-                hostname = '<hostname>'
+-            print 'attempting to set hostname with dhclient'
+-            print 'using dhcpcd or another supported client may work better'
+-            dhclient_template = \
+-                open(os.path.join(wpath.etc, 'dhclient.conf.template'), 'r')
+-
+-            output_conf = open(dhclient_conf_path, 'w')
+-
+-            for line in dhclient_template.readlines():
+-                line = line.replace('$_HOSTNAME', hostname)
+-                output_conf.write(line)
+-
+-            output_conf.close()
+-            dhclient_template.close()
+-            os.chmod(dhclient_conf_path, 0644)
+-
+         if not client_name or not cmd:
+             print "WARNING: Failed to find a valid dhcp client!"
+             return ""
+             
+         if flavor == "connect":
++            # cause dhclient doesn't have a handy dandy argument
++            # for specifing the hostname to be sent
++            if client_name == "dhclient" and flavor:
++                if hostname == None:
++                    # <hostname> will use the system hostname
++                    # we'll use that if there is hostname passed
++                    # that shouldn't happen, though
++                    hostname = '<hostname>'
++                print 'attempting to set hostname with dhclient'
++                print 'using dhcpcd or another supported client may work better'
++                if not self.dhclient_conf_path:
++                    _,self.dhclient_conf_path = tempfile.mkstemp()
++                    print 'New dhclient conf path: %s ' % self.dhclient_conf_path
++                dhclient_template = \
++                    open(os.path.join(wpath.etc, 'dhclient.conf.template'), 'r')
++
++                output_conf = open(self.dhclient_conf_path, 'w')
++
++                for line in dhclient_template.readlines():
++                    line = line.replace('$_HOSTNAME', hostname)
++                    output_conf.write(line)
++
++                output_conf.close()
++                dhclient_template.close()
++                os.chmod(self.dhclient_conf_path, 0644)
++
+             if not hostname:
+                 hostname = os.uname()[1]
+             return client_dict[client_name]['connect'] % \
+                     { "cmd" : cmd,
+                       "iface" : self.iface,
+                       "hostname" : hostname,
+-                      'dhclientconf' : dhclient_conf_path }
++                      'dhclientconf' : self.dhclient_conf_path }
+         elif flavor == "release":
+             return client_dict[client_name]['release'] % {"cmd":cmd, "iface":self.iface}
+         else:
diff --git a/pkgs/tools/networking/wicd/fix-app-icon.patch b/pkgs/tools/networking/wicd/fix-app-icon.patch
new file mode 100644
index 000000000000..31b47bb45881
--- /dev/null
+++ b/pkgs/tools/networking/wicd/fix-app-icon.patch
@@ -0,0 +1,19 @@
+Someone forgot to pack wicd.png icon. We will replace it with existing one.
+
+diff -ruN wicd-1.7.2.4.orig/gtk/gui.py wicd-1.7.2.4/gtk/gui.py
+--- wicd-1.7.2.4.orig/gtk/gui.py	2013-03-30 21:47:19.802907553 +0000
++++ wicd-1.7.2.4/gtk/gui.py	2013-03-31 08:13:32.876871673 +0000
+@@ -205,8 +205,10 @@
+ 
+         self.status_area.hide_all()
+ 
+-        if os.path.exists(os.path.join(wpath.images, "wicd.png")):
+-            self.window.set_icon_from_file(os.path.join(wpath.images, "wicd.png"))
++        if os.path.exists(os.path.join(wpath.images, "../../icons/hicolour/128x128/apps/wicd-gtk.png")):
++            self.window.set_icon_from_file(os.path.join(wpath.images, "../../icons/hicolor/128x128/apps/wicd-gtk.png"))
++        else:
++            print 'icon doesn\'t exist %s' % os.path.join(wpath.images, "../../icons/hicolor/128x128/apps/wicd-gtk.png")
+         self.statusID = None
+         self.first_dialog_load = True
+         self.is_visible = True
+
diff --git a/pkgs/tools/networking/wicd/fix-gtk-issues.patch b/pkgs/tools/networking/wicd/fix-gtk-issues.patch
new file mode 100644
index 000000000000..31e553b46b50
--- /dev/null
+++ b/pkgs/tools/networking/wicd/fix-gtk-issues.patch
@@ -0,0 +1,47 @@
+diff -ruN wicd-1.7.2.4.orig/gtk/gui.py wicd-1.7.2.4/gtk/gui.py
+--- wicd-1.7.2.4.orig/gtk/gui.py	2013-03-31 17:01:29.367001288 +0000
++++ wicd-1.7.2.4/gtk/gui.py	2013-03-31 17:55:20.826028396 +0000
+@@ -35,7 +35,7 @@
+ from wicd import misc
+ from wicd import wpath
+ from wicd import dbusmanager
+-from wicd.misc import noneToString
++from wicd.misc import noneToString, _status_dict
+ from wicd.translations import _, language
+ import prefs
+ from prefs import PreferencesDialog
+@@ -250,7 +250,7 @@
+         
+     def handle_connection_results(self, results):
+         if results not in ['success', 'aborted'] and self.is_visible:
+-            error(self.window, language[results], block=False)
++            error(self.window, misc._status_dict[results], block=False)
+ 
+     def create_adhoc_network(self, widget=None):
+         """ Shows a dialog that creates a new adhoc network. """
+diff -ruN wicd-1.7.2.4.orig/po/ru.po wicd-1.7.2.4/po/ru.po
+--- wicd-1.7.2.4.orig/po/ru.po	2013-03-31 17:01:29.362001288 +0000
++++ wicd-1.7.2.4/po/ru.po	2013-03-31 17:43:37.909022515 +0000
+@@ -173,7 +173,7 @@
+ 
+ #: wicd/misc.py:79
+ msgid "Connection Failed: Bad password"
+-msgstr "Ошибка соединения: Неверный пароль:"
++msgstr "Ошибка соединения: Неверный пароль"
+ 
+ #: wicd/misc.py:89
+ msgid "Connection Failed: No DHCP offers received."
+diff -ruN wicd-1.7.2.4.orig/wicd/misc.py wicd-1.7.2.4/wicd/misc.py
+--- wicd-1.7.2.4.orig/wicd/misc.py	2013-03-31 17:01:29.369001288 +0000
++++ wicd-1.7.2.4/wicd/misc.py	2013-03-31 17:23:56.822012593 +0000
+@@ -430,7 +430,9 @@
+     """ Sanitize property names to be used in config-files. """
+     allowed = string.ascii_letters + '_' + string.digits
+     table = string.maketrans(allowed, ' ' * len(allowed))
+-    return s.translate(None, table)
++    #return s.translate(None, table)
++    #return s.translate(table)
++    return s
+ 
+ def sanitize_escaped(s):
+     """ Sanitize double-escaped unicode strings. """
diff --git a/pkgs/tools/networking/wicd/mkdir-networks.patch b/pkgs/tools/networking/wicd/mkdir-networks.patch
deleted file mode 100644
index 01563fd55dab..000000000000
--- a/pkgs/tools/networking/wicd/mkdir-networks.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-wicd normally makes the NETWORKS directory and install the dhclient.conf.template.default at install time, 
-but we cannot do that, so we make it at runtime instead.
-
---- wicd-1.7.0/in/scripts=wicd.in       2010-01-14 23:49:11.000000000 -0500
-+++ wicd-1.7.0/in/scripts=wicd.in       2010-11-16 22:35:50.272555487 -0500
-@@ -1,3 +1,6 @@
- #!/bin/bash
- 
-+mkdir -p %NETWORKS%
-+ln -sf @TEMPLATE-DEFAULT@ %ETC%dhclient.conf.template.default
-+
- exec %PYTHON% -O %SHARE%daemon/wicd-daemon.py $@
diff --git a/pkgs/tools/networking/wicd/no-trans.patch b/pkgs/tools/networking/wicd/no-trans.patch
deleted file mode 100644
index a4c5018e181c..000000000000
--- a/pkgs/tools/networking/wicd/no-trans.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- wicd-1.7.2.4/setup.py     2013-03-14 21:28:21.360580941 +0100
-+++ wicd-1.7.2.4/setup.py  2013-03-14 21:22:50.125721943 +0100
-@@ -599,12 +599,6 @@
-     if not wpath.no_install_pmutils:
-         data.append((wpath.pmutils, ['other/55wicd']))
-     print 'Using pid path', os.path.basename(wpath.pidfile)
--    print 'Language support for',
--    for pofile in glob('po/*.po'):
--        language = pofile.replace('po/', '').replace('.po', '')
--        print language,
--        data.append((wpath.translations + language + '/LC_MESSAGES/',
--                    ['translations/' + language + '/LC_MESSAGES/wicd.mo']))
-     print
- except Exception, e:
-     print str(e)
diff --git a/pkgs/tools/security/munge/default.nix b/pkgs/tools/security/munge/default.nix
new file mode 100644
index 000000000000..2b6cd2243711
--- /dev/null
+++ b/pkgs/tools/security/munge/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, gnused, perl, libgcrypt, zlib, bzip2 }:
+
+stdenv.mkDerivation rec {
+  name = "munge-0.5.10";
+
+  src = fetchurl {
+    url = "http://munge.googlecode.com/files/${name}.tar.bz2";
+    sha256 = "1imbmpd70vkcpca8d9yd9ajkhf6ik057nr3jb1app1wm51f15q00";
+  };
+
+  buildInputs = [ gnused perl libgcrypt zlib bzip2 ];
+
+  preConfigure = ''
+    # Remove the install-data stuff, since it tries to write to /var
+    sed -i '434,465d' src/etc/Makefile.in
+  '';
+
+  configureFlags = [
+    "--localstatedir=/var"
+  ];
+
+  meta = {
+    homepage = http://code.google.com/p/munge/;
+    description = ''
+      An authentication service for creating and validating credentials
+    '';
+    maintainers = [ stdenv.lib.maintainers.rickynils ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index b1f153fbcd45..698c57b14f4e 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -433,18 +433,18 @@ let
   apg = callPackage ../tools/security/apg { };
 
   xcodeenv = callPackage ../development/mobile/xcodeenv { };
-  
+
   titaniumenv_2_1 = import ../development/mobile/titaniumenv {
     inherit pkgs;
     pkgs_i686 = pkgsi686Linux;
     version = "2.1";
   };
-  
+
   titaniumenv_3_1 = import ../development/mobile/titaniumenv {
     inherit pkgs;
     pkgs_i686 = pkgsi686Linux;
   };
-  
+
   titaniumenv = titaniumenv_3_1;
 
   inherit (androidenv) androidsdk_4_1;
@@ -1213,6 +1213,8 @@ let
     mtutils = callPackage ../tools/text/multitran/mtutils { };
   });
 
+  munge = callPackage ../tools/security/munge { };
+
   muscleframework = callPackage ../tools/security/muscleframework { };
 
   muscletool = callPackage ../tools/security/muscletool { };
@@ -1296,7 +1298,9 @@ let
 
   odt2txt = callPackage ../tools/text/odt2txt { };
 
-  offlineimap = callPackage ../tools/networking/offlineimap { };
+  offlineimap = callPackage ../tools/networking/offlineimap {
+    inherit (pythonPackages) sqlite3;
+  };
 
   opendbx = callPackage ../development/libraries/opendbx { };
 
@@ -2480,7 +2484,8 @@ let
   haskellPackages_ghc742_profiling    = recurseIntoAttrs (haskell.packages_ghc742.profiling);
   haskellPackages_ghc742              = recurseIntoAttrs (haskell.packages_ghc742.highPrio);
   haskellPackages_ghc761              =                   haskell.packages_ghc761;
-  haskellPackages_ghc762              = recurseIntoAttrs (haskell.packages_ghc762);
+  haskellPackages_ghc762              =                   haskell.packages_ghc762;
+  haskellPackages_ghc763              = recurseIntoAttrs  haskell.packages_ghc763;
   # Reasonably current HEAD snapshot.
   haskellPackages_ghcHEAD             =                   haskell.packages_ghcHEAD;
 
@@ -2895,7 +2900,11 @@ let
 
   perl = if system != "i686-cygwin" then perl516 else sysPerl;
 
-  php = callPackage ../development/interpreters/php/5.3.nix { };
+  php = php54;
+
+  php53 = callPackage ../development/interpreters/php/5.3.nix { };
+
+  php54 = callPackage ../development/interpreters/php/5.4.nix { };
 
   php_apc = callPackage ../development/libraries/php-apc { };
 
@@ -3048,6 +3057,8 @@ let
   autoconf = callPackage ../development/tools/misc/autoconf { };
 
   autoconf213 = callPackage ../development/tools/misc/autoconf/2.13.nix { };
+ 
+  autocutsel = callPackage ../tools/X11/autocutsel{ };
 
   automake = automake112x;
 
@@ -3998,6 +4009,8 @@ let
 
   gts = callPackage ../development/libraries/gts { };
 
+  gvfs = callPackage ../development/libraries/gvfs { };
+
   gwenhywfar = callPackage ../development/libraries/gwenhywfar { };
 
   # TODO : Add MIT Kerberos and let admin choose.
@@ -6209,6 +6222,8 @@ let
     config = config.pcmciaUtils.config or null;
   };
 
+  plymouth = callPackage ../os-specific/linux/plymouth { };
+
   pmount = callPackage ../os-specific/linux/pmount { };
 
   pmutils = callPackage ../os-specific/linux/pm-utils { };
@@ -6321,7 +6336,9 @@ let
   udev145 = callPackage ../os-specific/linux/udev/145.nix { };
   udev = pkgs.systemd;
 
-  udisks = callPackage ../os-specific/linux/udisks { };
+  udisks1 = callPackage ../os-specific/linux/udisks/1-default.nix { };
+  udisks2 = callPackage ../os-specific/linux/udisks/2-default.nix { };
+  udisks = udisks1;
 
   untie = callPackage ../os-specific/linux/untie { };
 
@@ -6805,6 +6822,8 @@ let
     inherit (xlibs) libX11;
   };
 
+  doodle = callPackage ../applications/search/doodle { };
+
   dunst = callPackage ../applications/misc/dunst { };
 
   dvb_apps  = callPackage ../applications/video/dvb-apps { };
@@ -7187,7 +7206,7 @@ let
   gphoto2 = callPackage ../applications/misc/gphoto2 { };
 
   gphoto2fs = builderDefsPackage ../applications/misc/gphoto2/gphotofs.nix {
-    inherit libgphoto2 fuse pkgconfig glib;
+    inherit libgphoto2 fuse pkgconfig glib libtool;
   };
 
   graphicsmagick = callPackage ../applications/graphics/graphicsmagick { };
@@ -7427,9 +7446,7 @@ let
   links = callPackage ../applications/networking/browsers/links { };
 
   ledger = callPackage ../applications/office/ledger/2.6.3.nix { };
-  ledger3 = callPackage ../applications/office/ledger/3.0.nix {
-    boost = boost149;
-  };
+  ledger3 = callPackage ../applications/office/ledger/3.0.nix { };
 
   links2 = callPackage ../applications/networking/browsers/links2 { };
 
@@ -8539,18 +8556,26 @@ let
 
   gnome = recurseIntoAttrs gnome2;
 
-  kde4 = recurseIntoAttrs pkgs.kde47;
+  kde4 = recurseIntoAttrs pkgs.kde48;
 
   kde47 = kdePackagesFor (pkgs.kde47 // {
       boost = boost149;
       eigen = eigen2;
+      libotr = libotr_3_2;
     }) ../desktops/kde-4.7;
 
   kde48 = kdePackagesFor (pkgs.kde48 // {
       boost = boost149;
       eigen = eigen2;
+      libotr = libotr_3_2;
     }) ../desktops/kde-4.8;
 
+  kde410 = kdePackagesFor (pkgs.kde410 // {
+      boost = boost149;
+      eigen = eigen2;
+      libotr = libotr_3_2;
+    }) ../desktops/kde-4.10;
+
   kdePackagesFor = self: dir:
     let callPackageOrig = callPackage; in
     let
@@ -8973,6 +8998,8 @@ let
 
   gxemul = callPackage ../misc/gxemul { };
 
+  hatari = callPackage ../misc/emulators/hatari { };
+
   hplip = callPackage ../misc/drivers/hplip { };
 
   # using the new configuration style proposal which is unstable
@@ -9214,4 +9241,6 @@ let
 
   bullet = callPackage ../development/libraries/bullet {};
 
+  dart = callPackage ../development/interpreters/dart { };
+
 }; in pkgs
diff --git a/pkgs/top-level/haskell-defaults.nix b/pkgs/top-level/haskell-defaults.nix
index aa71d75f12e3..58b48b06ffeb 100644
--- a/pkgs/top-level/haskell-defaults.nix
+++ b/pkgs/top-level/haskell-defaults.nix
@@ -53,6 +53,7 @@
       cabalInstall_1_16_0_2 = self.cabalInstall_1_16_0_2.override { Cabal = self.Cabal_1_16_0_3; };
       monadPar = self.monadPar_0_1_0_3;
       jailbreakCabal = self.jailbreakCabal.override { Cabal = self.disableTest self.Cabal_1_14_0; };
+      prettyShow = self.prettyShow_1_2;
     };
 
   ghc703Prefs =
@@ -62,6 +63,7 @@
       cabalInstall_1_16_0_2 = self.cabalInstall_1_16_0_2.override { Cabal = self.Cabal_1_16_0_3; zlib = self.zlib_0_5_3_3; };
       monadPar = self.monadPar_0_1_0_3;
       jailbreakCabal = self.jailbreakCabal.override { Cabal = self.disableTest self.Cabal_1_14_0; };
+      prettyShow = self.prettyShow_1_2;
     };
 
   ghc702Prefs = ghc701Prefs;
@@ -73,6 +75,7 @@
       cabalInstall_1_16_0_2 = self.cabalInstall_1_16_0_2.override { Cabal = self.Cabal_1_16_0_3; zlib = self.zlib_0_5_3_3; };
       monadPar = self.monadPar_0_1_0_3;
       jailbreakCabal = self.jailbreakCabal.override { Cabal = self.disableTest self.Cabal_1_14_0; };
+      prettyShow = self.prettyShow_1_2;
     };
 
   ghc6123Prefs = ghc6122Prefs;
@@ -285,6 +288,12 @@
                prefFun = ghcHEADPrefs;
              };
 
+  packages_ghc763 =
+    packages { ghcPath = ../development/compilers/ghc/7.6.3.nix;
+               ghcBinary = ghc704Binary;
+               prefFun = ghcHEADPrefs;
+             };
+
   # Reasonably current HEAD snapshot. Should *always* be lowPrio.
   packages_ghcHEAD =
     packages { ghcPath = ../development/compilers/ghc/head.nix;
diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix
index 62207b875ebb..3248742b205c 100644
--- a/pkgs/top-level/haskell-packages.nix
+++ b/pkgs/top-level/haskell-packages.nix
@@ -89,6 +89,16 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
     ghc = ghc; # refers to ghcPlain
   };
 
+  # The normal GHC wrapper doesn't create links to the documentation in
+  # ~/.nix-profile. Having this second wrapper allows us to remedy the
+  # situation without re-building all Haskell packages. At the next
+  # stdenv-updates merge, this second wrapper will go away.
+
+  ghcUserEnvWrapper = pkgs.appendToName "new" (callPackage ../development/compilers/ghc/wrapper.nix {
+    ghc = ghc; # refers to ghcPlain
+    forUserEnv = true;
+  });
+
   # An experimental wrapper around ghcPlain that does not automatically
   # pick up packages from the profile, but instead has a fixed set of packages
   # in its global database. The set of packages can be specified as an
@@ -104,16 +114,13 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   cabal = callPackage ../build-support/cabal {
     enableLibraryProfiling = enableLibraryProfiling;
+    enableCheckPhase = pkgs.stdenv.lib.versionOlder "7.4" self.ghc.ghcVersion;
   };
 
   # A variant of the cabal build driver that disables unit testing.
   # Useful for breaking cycles, where the unit test of a package A
   # depends on package B, which has A as a regular build input.
-  cabalNoTest = {
-    mkDerivation = x: rec {
-      final = self.cabal.mkDerivation (self: (x final) // { doCheck = false; });
-    }.final;
-  };
+  cabalNoTest = self.cabal.override { enableCheckPhase = false; };
 
   # Convenience helper function.
   disableTest = x: x.override { cabal = self.cabalNoTest; };
@@ -440,7 +447,13 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   # Haskell libraries.
 
-  Agda = callPackage ../development/libraries/haskell/Agda {};
+  acidState = callPackage ../development/libraries/haskell/acid-state {};
+
+  Agda = callPackage ../development/libraries/haskell/Agda {
+    hashable = self.hashable_1_1_2_5;
+    hashtables = self.hashtables.override { hashable = self.hashable_1_1_2_5; };
+    unorderedContainers = self.unorderedContainers.override { hashable = self.hashable_1_1_2_5; };
+  };
 
   accelerate = callPackage ../development/libraries/haskell/accelerate {};
 
@@ -607,6 +620,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   ChasingBottoms = callPackage ../development/libraries/haskell/ChasingBottoms {};
 
+  checkers = callPackage ../development/libraries/haskell/checkers {};
+
   citeprocHs = callPackage ../development/libraries/haskell/citeproc-hs {};
 
   cipherAes = callPackage ../development/libraries/haskell/cipher-aes {};
@@ -992,16 +1007,14 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
   happstackHamlet = callPackage ../development/libraries/haskell/happstack/happstack-hamlet.nix {};
 
   hashable_1_1_2_5 = callPackage ../development/libraries/haskell/hashable/1.1.2.5.nix {};
-  hashable_1_2_0_5 = callPackage ../development/libraries/haskell/hashable/1.2.0.5.nix {};
-  hashable = self.hashable_1_1_2_5;
+  hashable_1_2_0_6 = callPackage ../development/libraries/haskell/hashable/1.2.0.6.nix {};
+  hashable = self.hashable_1_2_0_6;
 
   hashedStorage = callPackage ../development/libraries/haskell/hashed-storage {};
 
   hashtables = callPackage ../development/libraries/haskell/hashtables {};
 
-  haskeline_0_6_4_7 = callPackage ../development/libraries/haskell/haskeline/0.6.4.7.nix {};
-  haskeline_0_7_0_3 = callPackage ../development/libraries/haskell/haskeline/0.7.0.3.nix {};
-  haskeline = self.haskeline_0_7_0_3;
+  haskeline = callPackage ../development/libraries/haskell/haskeline {};
 
   haskelineClass = callPackage ../development/libraries/haskell/haskeline-class {};
 
@@ -1472,7 +1485,9 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   ppm = callPackage ../development/libraries/haskell/ppm {};
 
-  prettyShow = callPackage ../development/libraries/haskell/pretty-show {};
+  prettyShow_1_2 = callPackage ../development/libraries/haskell/pretty-show/1.2.nix {};
+  prettyShow_1_5 = callPackage ../development/libraries/haskell/pretty-show/1.5.nix {};
+  prettyShow = self.prettyShow_1_5;
 
   punycode = callPackage ../development/libraries/haskell/punycode {};
 
@@ -1599,6 +1614,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   safe = callPackage ../development/libraries/haskell/safe {};
 
+  safecopy = callPackage ../development/libraries/haskell/safecopy {};
+
   SafeSemaphore = callPackage ../development/libraries/haskell/SafeSemaphore {};
 
   scotty = callPackage ../development/libraries/haskell/scotty {};
@@ -1894,6 +1911,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   waiExtra = callPackage ../development/libraries/haskell/wai-extra {};
 
+  waiHandlerLaunch = callPackage ../development/libraries/haskell/wai-handler-launch {};
+
   waiLogger = callPackage ../development/libraries/haskell/wai-logger {};
 
   waiTest = callPackage ../development/libraries/haskell/wai-test {};
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 64dc04f0bd8a..a795769fadb0 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -25,10 +25,10 @@ rec {
 
 
   ack = buildPerlPackage rec {
-    name = "ack-1.92";
+    name = "ack-2.02";
     src = fetchurl {
       url = "mirror://cpan/authors/id/P/PE/PETDANCE/${name}.tar.gz";
-      sha256 = "8689156cb0639ff60adee47fc4b77e656cf0fc58e6c123ee6c481d9d48e99b88";
+      sha256 = "de5560f2ce6334f3f83bef4ee942fdb09b792f05cf534fe67be3cb0431bf758f";
     };
     propagatedBuildInputs = [ FileNext ];
     meta = {
@@ -36,6 +36,10 @@ rec {
       homepage = http://betterthangrep.com/;
       license = "free";  # Artistic 2.0
     };
+    # t/swamp/{0,perl-without-extension} are datafiles for the test
+    # t/ack-show-types.t, but the perl generic builder confuses them
+    # for scripts and purifies them, making the test fail.
+    preCheck = "sed -i '1s,.*,#!/usr/bin/perl -w,' t/swamp/0 t/swamp/perl-without-extension";
   };
 
   AlgorithmAnnotate = buildPerlPackage {
@@ -1998,10 +2002,10 @@ rec {
   };
 
   FileNext = buildPerlPackage rec {
-    name = "File-Next-1.06";
+    name = "File-Next-1.12";
     src = fetchurl {
       url = "mirror://cpan/authors/id/P/PE/PETDANCE/${name}.tar.gz";
-      sha256 = "36cc0a4e5e4e44e04f7bea6f7453db517acc1a1b35a2b5fe5bc14cea0f560662";
+      sha256 = "cc3afd8eaf6294aba93b8152a269cc36a9df707c6dc2c149aaa04dabd869e60a";
     };
   };
 
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 1823c3791b09..02c34964c5aa 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -301,11 +301,11 @@ pythonPackages = python.modules // rec {
 
 
   argparse = buildPythonPackage (rec {
-    name = "argparse-1.1";
+    name = "argparse-1.2.1";
 
     src = fetchurl {
-      url = "http://pypi.python.org/packages/source/a/argparse/${name}.zip";
-      sha256 = "ee6da1aaad8b08a74a33eb82264b1a2bf12a7d5aefc7e9d7d40a8f8fa9912e62";
+      url = "http://argparse.googlecode.com/files/${name}.tar.gz";
+      sha256 = "192174mys40m0bwk6l5jlfnzps0xi81sxm34cqms6dc3c454pbyx";
     };
 
     buildInputs = [ pkgs.unzip ];
@@ -891,6 +891,8 @@ pythonPackages = python.modules // rec {
       md5 = "2ed7b69644a6d8f4e1404e1892329240";
     };
 
+    buildInputs = [] ++ optional isPy26 unittest2;
+
     propagatedBuildInputs =
       [ pythonPackages.beautifulsoup4
         pythonPackages.peppercorn
@@ -994,7 +996,7 @@ pythonPackages = python.modules // rec {
       webtest 
       zope_component 
       zope_interface 
-    ];
+    ] ++ optional isPy26 unittest2;
 
     propagatedBuildInputs = [
       chameleon
@@ -1198,6 +1200,8 @@ pythonPackages = python.modules // rec {
       md5 = "df72458bf3dd26a744dcff5ad555c34b";
     };
 
+    buildInputs = [] ++ optionals isPy26 [ ordereddict unittest2 ];
+
     # TODO: https://github.com/malthe/chameleon/issues/139
     doCheck = false;
 
@@ -1507,6 +1511,23 @@ pythonPackages = python.modules // rec {
   };
 
 
+  epc = buildPythonPackage rec {
+    name = "epc-0.0.3";
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/e/epc/${name}.tar.gz";
+      md5 = "04a93c0cd32b496969ead09f414dac74";
+    };
+
+    propagatedBuildInputs = [ sexpdata ];
+    doCheck = false;
+
+    meta = {
+      description = "EPC (RPC stack for Emacs Lisp) implementation in Python";
+      homepage = "https://github.com/tkf/python-epc";
+    };
+  };
+
+
   eventlet = buildPythonPackage rec {
     name = "eventlet-0.9.16";
 
@@ -2012,6 +2033,28 @@ pythonPackages = python.modules // rec {
   });
 
 
+  limnoria = buildPythonPackage (rec {
+    name = "limnoria-20130327";
+
+    src = fetchurl {
+      url = https://pypi.python.org/packages/source/l/limnoria/limnoria-2013-03-27T16:32:26+0100.tar.gz;
+      name = "limnoria-2013-03-27.tar.gz";
+      sha256 = "0xfaa6h8css3yhsmx5vcffizrz6mvmgm46q7449z3hq7g3793184";
+    };
+
+    propagatedBuildInputs = [ python.modules.sqlite3 ];
+
+    doCheck = false;
+
+    meta = with stdenv.lib; {
+      description = "A modified version of Supybot, an IRC bot";
+      homepage = http://supybot.fr.cr;
+      license = licenses.bsd3;
+      maintainers = [ maintainers.goibhniu ];
+    };
+  });
+
+
   lockfile = buildPythonPackage rec {
     name = "lockfile-0.9.1";
 
@@ -3732,13 +3775,12 @@ pythonPackages = python.modules // rec {
     };
   };
 
-
   requests = buildPythonPackage rec {
-    name = "requests-1.1.0";
+    name = "requests-1.2.0";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/r/requests/${name}.tar.gz";
-      md5 = "a0158815af244c32041a3147ee09abf3";
+      md5 = "22af2682233770e5468a986f451c51c0";
     };
 
     meta = {
@@ -3996,6 +4038,22 @@ pythonPackages = python.modules // rec {
   });
 
 
+  sexpdata = buildPythonPackage rec {
+    name = "sexpdata-0.0.2";
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/s/sexpdata/${name}.tar.gz";
+      md5 = "efc44265bc27cb3d6ffed4fbf5733fc1";
+    };
+
+    doCheck = false;
+
+    meta = {
+      description = "S-expression parser for Python";
+      homepage = "https://github.com/tkf/sexpdata";
+    };
+  };
+
+
   six = buildPythonPackage rec {
     name = "six-1.1.0";
 
@@ -4551,7 +4609,11 @@ pythonPackages = python.modules // rec {
       md5 = "a1266d4db421963fd3deb172c6689e4b";
     };
 
-    buildInputs = [ pkgs.unzip ];
+    buildInputs = [ pkgs.unzip ] ++ optionals isPy26 [ pythonPackages.ordereddict
+                                                       pythonPackages.unittest2 ];
+
+    # XXX: skipping two tests fails in python2.6
+    doCheck = ! isPy26;
 
     propagatedBuildInputs = [
       nose
@@ -4559,7 +4621,6 @@ pythonPackages = python.modules // rec {
       six
       beautifulsoup4
       waitress
-      unittest2
       mock
       pyquery
       wsgiproxy2
@@ -5094,7 +5155,7 @@ pythonPackages = python.modules // rec {
       md5 = "e7e581af8193551831560a736a53cf58";
     };
 
-    propagatedBuildInputs = [ zope_event zope_interface zope_testing ];
+    propagatedBuildInputs = [ zope_event zope_interface zope_testing ] ++ optional isPy26 ordereddict;
 
     # ignore circular dependency on zope_location
     installCommand = ''
@@ -5262,11 +5323,11 @@ pythonPackages = python.modules // rec {
 
   cliapp = buildPythonPackage rec {
     name = "cliapp-${version}";
-    version = "1.20121216";
+    version = "1.20130313";
 
     src = fetchurl rec {
       url = "http://code.liw.fi/debian/pool/main/p/python-cliapp/python-cliapp_${version}.orig.tar.gz";
-      sha256 = "1bzvc4aj3w8g85qycwz1jxa73jj8rl6zrgd4hi78kr4dgslcfns5";
+      sha256 = "0rk13a68668gsrv6yqgzqxskffqnlyjar4qav6k5iyrp77amn7qm";
     };
 
     buildInputs = [ sphinx ];
@@ -5363,11 +5424,12 @@ pythonPackages = python.modules // rec {
 
 
   ttystatus = buildPythonPackage rec {
-    name = "ttystatus-0.21";
+    name = "ttystatus-${version}";
+    version = "0.22";
 
     src = fetchurl rec {
-      url = "http://code.liw.fi/debian/pool/main/p/python-ttystatus/python-ttystatus_0.21.orig.tar.gz";
-      sha256 = "4a1f3a41c9bd3b5d2bd8e6f093890857301e590aa1d428fc9a6dca591227244c";
+      url = "http://code.liw.fi/debian/pool/main/p/python-ttystatus/python-ttystatus_${version}.orig.tar.gz";
+      sha256 = "1hzv0sbrvgcmafflhvzh7plci0dg7wcjlk39i8kqdasg6rw0ag6f";
     };
 
     buildInputs = [ sphinx ];
@@ -5384,11 +5446,11 @@ pythonPackages = python.modules // rec {
 
   larch = buildPythonPackage rec {
     name = "larch-${version}";
-    version = "1.20121216";
+    version = "1.20130316";
 
     src = fetchurl rec {
       url = "http://code.liw.fi/debian/pool/main/p/python-larch/python-larch_${version}.orig.tar.gz";
-      sha256 = "0w4hirs8wkp1hji6nxfmq4rahkd5rgw4cavvdhpdfr4mddycbis3";
+      sha256 = "1mkvmy0jdzd7dlvdx2a75wsbj5qw1clawcgndx9jwl816a9iy225";
     };
 
     buildInputs = [ sphinx ];
diff --git a/pkgs/top-level/release-haskell.nix b/pkgs/top-level/release-haskell.nix
index ef21be20a52b..291f87f5074b 100644
--- a/pkgs/top-level/release-haskell.nix
+++ b/pkgs/top-level/release-haskell.nix
@@ -1,606 +1,446 @@
 /* Essential Haskell packages that must build. */
 
-{ nixpkgs ? { outPath = (import ./all-packages.nix {}).lib.cleanSource ../..; revCount = 1234; shortRev = "abcdef"; } }:
-
-let supportedSystems = [ "x86_64-linux" ]; in
+{ supportedSystems ? [ "x86_64-linux" ] }:
 
 with import ./release-lib.nix { inherit supportedSystems; };
 
-mapTestOn {
-  gitAndTools.gitAnnex = supportedSystems;
+let
 
-  jhc = supportedSystems;
+  ghc6104 = "ghc6104";
+  ghc6123 = "ghc6123";
+  ghc704  = "ghc704";
+  ghc742  = "ghc742";
+  ghc763  = "ghc763";
+  default = [ ghc742 ];
+  latest  = [ ghc763 ];
+  all     = [ ghc6104 ghc6123 ghc704 ghc742 ghc763 ];
+
+  allBut = platform: pkgs.lib.filter (x: platform != x) all;
+
+  filterSupportedSystems = systems: pkgs.lib.filter (x: pkgs.lib.elem x supportedSystems) systems;
+
+  mapHaskellTestOn = attrs: pkgs.lib.mapAttrs mkJobs attrs;
 
-  haskellPackages_ghc742 = {
-    abstractPar = supportedSystems;
-    ACVector = supportedSystems;
-    aeson = supportedSystems;
-    AgdaExecutable = supportedSystems;
-    alexMeta = supportedSystems;
-    alex = supportedSystems;
-    alternativeIo = supportedSystems;
-    ansiTerminal = supportedSystems;
-    ansiWlPprint = supportedSystems;
-    asn1Data = supportedSystems;
-    AspectAG = supportedSystems;
-    async = supportedSystems;
-    attempt = supportedSystems;
-    attoparsecEnumerator = supportedSystems;
-    attoparsec = supportedSystems;
-    authenticate = supportedSystems;
-    base64Bytestring = supportedSystems;
-    baseUnicodeSymbols = supportedSystems;
-    benchpress = supportedSystems;
-    bimap = supportedSystems;
-    binaryShared = supportedSystems;
-    bitmap = supportedSystems;
-    bktrees = supportedSystems;
-    blazeBuilderEnumerator = supportedSystems;
-    blazeBuilder = supportedSystems;
-    blazeHtml = supportedSystems;
-    blazeTextual = supportedSystems;
-    bloomfilter = supportedSystems;
-    bmp = supportedSystems;
-    BNFCMeta = supportedSystems;
-    BNFC = supportedSystems;
-    Boolean = supportedSystems;
-    bytestringMmap = supportedSystems;
-    bytestringNums = supportedSystems;
-    bytestringTrie = supportedSystems;
-    cabal2Ghci = supportedSystems;
-    cabal2nix = supportedSystems;
-    cabalDev = supportedSystems;
-    cabalGhci = supportedSystems;
-    cabalInstall = supportedSystems;
-    cairo = supportedSystems;
-    caseInsensitive = supportedSystems;
-    cautiousFile = supportedSystems;
-    cereal = supportedSystems;
-    certificate = supportedSystems;
-    cgi = supportedSystems;
-    Chart = supportedSystems;
-    citeprocHs = supportedSystems;
-    clientsession = supportedSystems;
-    cmdargs = supportedSystems;
-    cmdlib = supportedSystems;
-    colorizeHaskell = supportedSystems;
-    colour = supportedSystems;
-    comonadsFd = supportedSystems;
-    conduit = supportedSystems;
-    ConfigFile = supportedSystems;
-    continuedFractions = supportedSystems;
-    converge = supportedSystems;
-    convertible = supportedSystems;
-    cookie = supportedSystems;
-    cpphs = supportedSystems;
-    cprngAes = supportedSystems;
-    criterion = supportedSystems;
-    cryptoApi = supportedSystems;
-    cryptocipher = supportedSystems;
-    cryptohash = supportedSystems;
-    Crypto = supportedSystems;
-    cssText = supportedSystems;
-    csv = supportedSystems;
-    darcs = supportedSystems;
-    dataAccessor = supportedSystems;
-    dataAccessorTemplate = supportedSystems;
-    dataDefault = supportedSystems;
-    dataenc = supportedSystems;
-    dataReify = supportedSystems;
-    datetime = supportedSystems;
-    DAV = supportedSystems;
-    dbus = supportedSystems;
-    derive = supportedSystems;
-    diagrams = supportedSystems;
-    Diff = supportedSystems;
-    digestiveFunctorsHeist = supportedSystems;
-    digestiveFunctorsSnap = supportedSystems;
-    digest = supportedSystems;
-    dimensional = supportedSystems;
-    dimensionalTf = supportedSystems;
-    directoryTree = supportedSystems;
-    distributedProcess = supportedSystems;
-    dlist = supportedSystems;
-    dns = supportedSystems;
-    doctest = supportedSystems;
-    dotgen = supportedSystems;
-    doubleConversion = supportedSystems;
-    Ebnf2ps = supportedSystems;
-    editDistance = supportedSystems;
-    editline = supportedSystems;
-    emailValidate = supportedSystems;
-    entropy = supportedSystems;
-    enumerator = supportedSystems;
-    epic = supportedSystems;
-    erf = supportedSystems;
-    failure = supportedSystems;
-    fclabels = supportedSystems;
-    feed = supportedSystems;
-    fgl = supportedSystems;
-    fileEmbed = supportedSystems;
-    filestore = supportedSystems;
-    fingertree = supportedSystems;
-    flexibleDefaults = supportedSystems;
-    funcmp = supportedSystems;
-    gamma = supportedSystems;
-    gdiff = supportedSystems;
-    ghcEvents = supportedSystems;
-    ghcMtl = supportedSystems;
-    ghcPaths = supportedSystems;
-    ghc = supportedSystems;
-    ghcSybUtils = supportedSystems;
-    githubBackup = supportedSystems;
-    github = supportedSystems;
-    gitit = supportedSystems;
-    glade = supportedSystems;
-    glib = supportedSystems;
-    Glob = supportedSystems;
-    gloss = supportedSystems;
-    GLUT = supportedSystems;
-    gnutls = supportedSystems;
-    graphviz = supportedSystems;
-    gtksourceview2 = supportedSystems;
-    gtk = supportedSystems;
-    hackageDb = supportedSystems;
-    haddock = supportedSystems;
-    hakyll = supportedSystems;
-    hamlet = supportedSystems;
-    happstackHamlet = supportedSystems;
-    happstackServer = supportedSystems;
-    happstackUtil = supportedSystems;
-    happy = supportedSystems;
-    hashable = supportedSystems;
-    hashedStorage = supportedSystems;
-    haskeline = supportedSystems;
-    haskellLexer = supportedSystems;
-    haskellPlatform = supportedSystems;
-    haskellSrcExts = supportedSystems;
-    haskellSrcMeta = supportedSystems;
-    haskellSrc = supportedSystems;
-    HaXml = supportedSystems;
-    haxr = supportedSystems;
-    HDBCPostgresql = supportedSystems;
-    HDBCSqlite3 = supportedSystems;
-    HDBC = supportedSystems;
-    HFuse = supportedSystems;
-    highlightingKate = supportedSystems;
-    hinotify = supportedSystems;
-    hint = supportedSystems;
-    Hipmunk = supportedSystems;
-    hledgerInterest = supportedSystems;
-    hledgerLib = supportedSystems;
-    hledger = supportedSystems;
-    hledgerWeb = supportedSystems;
-    hlint = supportedSystems;
-    HList = supportedSystems;
-    hmatrix = supportedSystems;
-    hoogle = supportedSystems;
-    hopenssl = supportedSystems;
-    hostname = supportedSystems;
-    hp2anyCore = supportedSystems;
-    hp2anyGraph = supportedSystems;
-    hS3 = supportedSystems;
-    hscolour = supportedSystems;
-    hsdns = supportedSystems;
-    hsemail = supportedSystems;
-    hslogger = supportedSystems;
-    hsloggerTemplate = supportedSystems;
-    hspec = supportedSystems;
-    hspread = supportedSystems;
-    HsSyck = supportedSystems;
-    HStringTemplate = supportedSystems;
-    hsyslog = supportedSystems;
-    html = supportedSystems;
-    httpConduit = supportedSystems;
-    httpDate = supportedSystems;
-    httpdShed = supportedSystems;
-    HTTP = supportedSystems;
-    httpTypes = supportedSystems;
-    HUnit = supportedSystems;
-    hxt = supportedSystems;
-    IfElse = supportedSystems;
-    irc = supportedSystems;
-    iteratee = supportedSystems;
-    jailbreakCabal = supportedSystems;
-    json = supportedSystems;
-    jsonTypes = supportedSystems;
-    keter = supportedSystems;
-    lambdabot = supportedSystems;
-    languageCQuote = supportedSystems;
-    languageJavascript = supportedSystems;
-    largeword = supportedSystems;
-    lens = supportedSystems;
-    libxmlSax = supportedSystems;
-    liftedBase = supportedSystems;
-    ListLike = supportedSystems;
-    logfloat = supportedSystems;
-    ltk = supportedSystems;
-    mainlandPretty = supportedSystems;
-    maude = supportedSystems;
-    MaybeT = supportedSystems;
-    MemoTrie = supportedSystems;
-    mersenneRandomPure64 = supportedSystems;
-    mimeMail = supportedSystems;
-    MissingH = supportedSystems;
-    mmap = supportedSystems;
-    MonadCatchIOMtl = supportedSystems;
-    MonadCatchIOTransformers = supportedSystems;
-    monadControl = supportedSystems;
-    monadLoops = supportedSystems;
-    monadPar = supportedSystems;
-    monadPeel = supportedSystems;
-    MonadPrompt = supportedSystems;
-    MonadRandom = supportedSystems;
-    mpppc = supportedSystems;
-    mtlparse = supportedSystems;
-    mtl = supportedSystems;
-    multiplate = supportedSystems;
-    multirec = supportedSystems;
-    multiset = supportedSystems;
-    murmurHash = supportedSystems;
-    mwcRandom = supportedSystems;
-    nats = supportedSystems;
-    nat = supportedSystems;
-    naturals = supportedSystems;
-    networkInfo = supportedSystems;
-    networkMulticast = supportedSystems;
-    networkProtocolXmpp = supportedSystems;
-    network = supportedSystems;
-    nonNegative = supportedSystems;
-    numericPrelude = supportedSystems;
-    numtype = supportedSystems;
-    numtypeTf = supportedSystems;
-    ObjectName = supportedSystems;
-    OneTuple = supportedSystems;
-    OpenAL = supportedSystems;
-    OpenGL = supportedSystems;
-    packunused = supportedSystems;
-    pandoc = supportedSystems;
-    pandocTypes = supportedSystems;
-    pango = supportedSystems;
-    parallel = supportedSystems;
-    parseargs = supportedSystems;
-    parsec3 = supportedSystems;
-    parsec = supportedSystems;
-    parsimony = supportedSystems;
-    pathPieces = supportedSystems;
-    pathtype = supportedSystems;
-    pcreLight = supportedSystems;
-    permutation = supportedSystems;
-    persistentPostgresql = supportedSystems;
-    persistentSqlite = supportedSystems;
-    persistent = supportedSystems;
-    persistentTemplate = supportedSystems;
-    polyparse = supportedSystems;
-    ppm = supportedSystems;
-    prettyShow = supportedSystems;
-    primitive = supportedSystems;
-    PSQueue = supportedSystems;
-    pureMD5 = supportedSystems;
-    pwstoreFast = supportedSystems;
-    QuickCheck2 = supportedSystems;
-    QuickCheck = supportedSystems;
-    randomFu = supportedSystems;
-    randomShuffle = supportedSystems;
-    randomSource = supportedSystems;
-    random = supportedSystems;
-    RangedSets = supportedSystems;
-    ranges = supportedSystems;
-    readline = supportedSystems;
-    recaptcha = supportedSystems;
-    regexBase = supportedSystems;
-    regexCompat = supportedSystems;
-    regexPCRE = supportedSystems;
-    regexPosix = supportedSystems;
-    regexpr = supportedSystems;
-    regexTDFA = supportedSystems;
-    regular = supportedSystems;
-    RSA = supportedSystems;
-    rvar = supportedSystems;
-    SafeSemaphore = supportedSystems;
-    safe = supportedSystems;
-    SDLImage = supportedSystems;
-    SDLMixer = supportedSystems;
-    SDL = supportedSystems;
-    SDLTtf = supportedSystems;
-    semigroups = supportedSystems;
-    sendfile = supportedSystems;
-    shake = supportedSystems;
-    SHA = supportedSystems;
-    Shellac = supportedSystems;
-    shelly = supportedSystems;
-    simpleSendfile = supportedSystems;
-    smallcheck = supportedSystems;
-    SMTPClient = supportedSystems;
-    snapCore = supportedSystems;
-    snapLoaderStatic = supportedSystems;
-    snapServer = supportedSystems;
-    snap = supportedSystems;
-    split = supportedSystems;
-    splot = supportedSystems;
-    srcloc = supportedSystems;
-    stateref = supportedSystems;
-    StateVar = supportedSystems;
-    statistics = supportedSystems;
-    stbImage = supportedSystems;
-    stm = supportedSystems;
-    storableComplex = supportedSystems;
-    storableRecord = supportedSystems;
-    streamproc = supportedSystems;
-    strictConcurrency = supportedSystems;
-    strict = supportedSystems;
-    strptime = supportedSystems;
-    svgcairo = supportedSystems;
-    syb = supportedSystems;
-    sybWithClassInstancesText = supportedSystems;
-    sybWithClass = supportedSystems;
-    tabular = supportedSystems;
-    tagged = supportedSystems;
-    tagsoup = supportedSystems;
-    tar = supportedSystems;
-    Tensor = supportedSystems;
-    terminfo = supportedSystems;
-    testFramework = supportedSystems;
-    texmath = supportedSystems;
-    text = supportedSystems;
-    thLift = supportedSystems;
-    timeplot = supportedSystems;
-    tlsExtra = supportedSystems;
-    tls = supportedSystems;
-    transformersBase = supportedSystems;
-    transformersCompat = supportedSystems;
-    transformers = supportedSystems;
-    tuple = supportedSystems;
-    typeLlevelNaturalNumber = supportedSystems;
-    uniplate = supportedSystems;
-    uniqueid = supportedSystems;
-    unixCompat = supportedSystems;
-    unorderedContainers = supportedSystems;
-    url = supportedSystems;
-    utf8Light = supportedSystems;
-    utf8String = supportedSystems;
-    utilityHt = supportedSystems;
-    uuagc = supportedSystems;
-    uuid = supportedSystems;
-    uulib = supportedSystems;
-    vacuumCairo = supportedSystems;
-    vacuum = supportedSystems;
-    vcsRevision = supportedSystems;
-    Vec = supportedSystems;
-    vectorAlgorithms = supportedSystems;
-    vectorSpace = supportedSystems;
-    vector = supportedSystems;
-    vty = supportedSystems;
-    waiAppStatic = supportedSystems;
-    waiExtra = supportedSystems;
-    waiLogger = supportedSystems;
-    wai = supportedSystems;
-    warp = supportedSystems;
-    wlPprintExtras = supportedSystems;
-    wlPprint = supportedSystems;
-    wlPprintTerminfo = supportedSystems;
-    wxcore = supportedSystems;
-    wxdirect = supportedSystems;
-    wx = supportedSystems;
-    X11 = supportedSystems;
-    xhtml = supportedSystems;
-    xmlConduit = supportedSystems;
-    xmlHamlet = supportedSystems;
-    xml = supportedSystems;
-    xmlTypes = supportedSystems;
-    xmobar = supportedSystems;
-    xmonadContrib = supportedSystems;
-    xmonadExtras = supportedSystems;
-    xmonad = supportedSystems;
-    xssSanitize = supportedSystems;
-    yesodAuth = supportedSystems;
-    yesodCore = supportedSystems;
-    yesodDefault = supportedSystems;
-    yesodForm = supportedSystems;
-    yesodJson = supportedSystems;
-    yesodPersistent = supportedSystems;
-    yesodStatic = supportedSystems;
-    yesod = supportedSystems;
-    zeromq3Haskell = supportedSystems;
-    zeromqHaskell = supportedSystems;
-    zipArchive = supportedSystems;
-    zipper = supportedSystems;
-    zlibBindings = supportedSystems;
-    zlibEnum = supportedSystems;
-    zlib = supportedSystems;
-  };
+  mkJobs = pkg: ghcs: builtins.listToAttrs (pkgs.lib.concatMap (ghc: mkJob ghc pkg) ghcs);
 
-  haskellPackages_ghc762 = {
-    alex = supportedSystems;
-    async = supportedSystems;
-    BNFC = supportedSystems;
-    cabal2nix = supportedSystems;
-    cabalDev = supportedSystems;
-    cabalGhci = supportedSystems;
-    cabalInstall = supportedSystems;
-    cgi = supportedSystems;
-    cmdlib = supportedSystems;
-    criterion = supportedSystems;
-    dimensional = supportedSystems;
-    dimensionalTf = supportedSystems;
-    doctest = supportedSystems;
-    fgl = supportedSystems;
-    funcmp = supportedSystems;
-    ghcMod = supportedSystems;
-    GLUT = supportedSystems;
-    graphviz = supportedSystems;
-    hackageDb = supportedSystems;
-    haddock = supportedSystems;
-    happy = supportedSystems;
-    haskellSrc = supportedSystems;
-    hledgerInterest = supportedSystems;
-    hledgerLib = supportedSystems;
-    hledger = supportedSystems;
-    hlint = supportedSystems;
-    HList = supportedSystems;
-    hoogle = supportedSystems;
-    hopenssl = supportedSystems;
-    hsdns = supportedSystems;
-    hsemail = supportedSystems;
-    hspec = supportedSystems;
-    HStringTemplate = supportedSystems;
-    hsyslog = supportedSystems;
-    html = supportedSystems;
-    HTTP = supportedSystems;
-    HUnit = supportedSystems;
-    jailbreakCabal = supportedSystems;
-    monadPar = supportedSystems;
-    mtl = supportedSystems;
-    network = supportedSystems;
-    OpenGL = supportedSystems;
-    pandoc = supportedSystems;
-    parallel = supportedSystems;
-    parsec = supportedSystems;
-    permutation = supportedSystems;
-    primitive = supportedSystems;
-    QuickCheck = supportedSystems;
-    random = supportedSystems;
-    regexBase = supportedSystems;
-    regexCompat = supportedSystems;
-    regexPosix = supportedSystems;
-    smallcheck = supportedSystems;
-    split = supportedSystems;
-    stm = supportedSystems;
-    streamproc = supportedSystems;
-    syb = supportedSystems;
-    tar = supportedSystems;
-    testFrameworkHunit = supportedSystems;
-    testFramework = supportedSystems;
-    text = supportedSystems;
-    transformers = supportedSystems;
-    uulib = supportedSystems;
-    vector = supportedSystems;
-    wlPprint = supportedSystems;
-    xhtml = supportedSystems;
-    xmobar = supportedSystems;
-    xmonadContrib = supportedSystems;
-    xmonadExtras = supportedSystems;
-    xmonad = supportedSystems;
-    zlib = supportedSystems;
-  };
+  mkJob = ghc: pkg:
+    let
+      pkgPath = ["haskellPackages_${ghc}" "${pkg}"];
+      systems = filterSupportedSystems (pkgs.lib.attrByPath (pkgPath ++ ["meta" "platforms"]) [] pkgs);
+    in
+      map (system: mkSystemJob system ghc pkg) systems;
 
-  haskellPackages_ghc704 = {
-    alex = supportedSystems;
-    cabal2nix = supportedSystems;
-    cabalInstall = supportedSystems;
-    cgi = supportedSystems;
-    fgl = supportedSystems;
-    funcmp = supportedSystems;
-    GLUT = supportedSystems;
-    haddock = supportedSystems;
-    happy = supportedSystems;
-    haskellPlatform = supportedSystems;
-    haskellSrc = supportedSystems;
-    hopenssl = supportedSystems;
-    hsdns = supportedSystems;
-    hsemail = supportedSystems;
-    hsyslog = supportedSystems;
-    html = supportedSystems;
-    HTTP = supportedSystems;
-    HUnit = supportedSystems;
-    # This attribute causes an infinite recursion in Hydra!
-    # jailbreakCabal = supportedSystems;
-    mtl = supportedSystems;
-    network = supportedSystems;
-    OpenGL = supportedSystems;
-    parallel = supportedSystems;
-    parsec = supportedSystems;
-    primitive = supportedSystems;
-    QuickCheck = supportedSystems;
-    regexBase = supportedSystems;
-    regexCompat = supportedSystems;
-    regexPosix = supportedSystems;
-    stm = supportedSystems;
-    streamproc = supportedSystems;
-    syb = supportedSystems;
-    text = supportedSystems;
-    transformers = supportedSystems;
-    vector = supportedSystems;
-    xhtml = supportedSystems;
-    zlib = supportedSystems;
-  };
+  mkSystemJob = system: ghc: pkg:
+    pkgs.lib.nameValuePair "${ghc}" (pkgs.lib.setAttrByPath [system] ((pkgs.lib.getAttrFromPath ["haskellPackages_${ghc}" "${pkg}"] (pkgsFor system))));
 
-  haskellPackages_ghc6123 = {
-    alex = supportedSystems;
-    cabal2nix = supportedSystems;
-    cabalInstall = supportedSystems;
-    cgi = supportedSystems;
-    fgl = supportedSystems;
-    funcmp = supportedSystems;
-    GLUT = supportedSystems;
-    haddock = supportedSystems;
-    happy = supportedSystems;
-    haskellPlatform = supportedSystems;
-    haskellSrc = supportedSystems;
-    hopenssl = supportedSystems;
-    hsdns = supportedSystems;
-    hsemail = supportedSystems;
-    hsyslog = supportedSystems;
-    html = supportedSystems;
-    HTTP = supportedSystems;
-    HUnit = supportedSystems;
-    # This attribute causes an infinite recursion in Hydra!
-    # jailbreakCabal = supportedSystems;
-    mtl = supportedSystems;
-    network = supportedSystems;
-    OpenGL = supportedSystems;
-    parallel = supportedSystems;
-    parsec = supportedSystems;
-    primitive = supportedSystems;
-    QuickCheck = supportedSystems;
-    regexBase = supportedSystems;
-    regexCompat = supportedSystems;
-    regexPosix = supportedSystems;
-    stm = supportedSystems;
-    streamproc = supportedSystems;
-    text = supportedSystems;
-    transformers = supportedSystems;
-    vector = supportedSystems;
-    xhtml = supportedSystems;
-    zlib = supportedSystems;
-  };
+in
+
+mapTestOn {
+
+  gitAndTools.gitAnnex = supportedSystems;
+  jhc = supportedSystems;
+
+}
+//
+mapHaskellTestOn {
 
-  haskellPackages_ghc6104 = {
-    alex = supportedSystems;
-    cabalInstall = supportedSystems;
-    cgi = supportedSystems;
-    fgl = supportedSystems;
-    funcmp = supportedSystems;
-    GLUT = supportedSystems;
-    haddock = supportedSystems;
-    happy = supportedSystems;
-    haskellPlatform = supportedSystems;
-    haskellSrc = supportedSystems;
-    hopenssl = supportedSystems;
-    hsdns = supportedSystems;
-    hsyslog = supportedSystems;
-    html = supportedSystems;
-    HTTP = supportedSystems;
-    HUnit = supportedSystems;
-    # This attribute causes an infinite recursion in Hydra!
-    # jailbreakCabal = supportedSystems;
-    mtl = supportedSystems;
-    network = supportedSystems;
-    OpenGL = supportedSystems;
-    parallel = supportedSystems;
-    parsec = supportedSystems;
-    primitive = supportedSystems;
-    QuickCheck = supportedSystems;
-    regexBase = supportedSystems;
-    regexCompat = supportedSystems;
-    regexPosix = supportedSystems;
-    stm = supportedSystems;
-    streamproc = supportedSystems;
-    text = supportedSystems;
-    transformers = supportedSystems;
-    vector = supportedSystems;
-    xhtml = supportedSystems;
-    zlib = supportedSystems;
-  };
+  abstractPar = default;
+  ACVector = default;
+  aeson = default;
+  AgdaExecutable = default;
+  alex = all;
+  alexMeta = default;
+  alternativeIo = default;
+  ansiTerminal = default;
+  ansiWlPprint = default;
+  asn1Data = default;
+  AspectAG = default;
+  async = default ++ latest;
+  attempt = default;
+  attoparsecEnumerator = default;
+  attoparsec = default;
+  authenticate = default;
+  base64Bytestring = default;
+  baseUnicodeSymbols = default;
+  benchpress = default;
+  bimap = default;
+  binaryShared = default;
+  bitmap = default;
+  bktrees = default;
+  blazeBuilderEnumerator = default;
+  blazeBuilder = default;
+  blazeHtml = default;
+  blazeTextual = default;
+  bloomfilter = default;
+  bmp = default;
+  BNFC = default ++ latest;
+  BNFCMeta = default;
+  Boolean = default;
+  bytestringMmap = default;
+  bytestringNums = default;
+  bytestringTrie = default;
+  cabal2Ghci = default;
+  cabal2nix = allBut ghc6104;
+  cabalDev = default ++ latest;
+  cabalGhci = default ++ latest;
+  cabalInstall = all;
+  cairo = default;
+  caseInsensitive = default;
+  cautiousFile = default;
+  cereal = default;
+  certificate = default;
+  cgi = all;
+  Chart = default;
+  citeprocHs = default;
+  clientsession = default;
+  cmdargs = default;
+  cmdlib = default ++ latest;
+  colorizeHaskell = default;
+  colour = default;
+  comonadsFd = default;
+  conduit = default;
+  ConfigFile = default;
+  continuedFractions = default;
+  converge = default;
+  convertible = default;
+  cookie = default;
+  cpphs = default;
+  cprngAes = default;
+  criterion = default ++ latest;
+  cryptoApi = default;
+  cryptocipher = default;
+  Crypto = default;
+  cryptohash = default;
+  cssText = default;
+  csv = default;
+  darcs = default;
+  dataAccessor = default;
+  dataAccessorTemplate = default;
+  dataDefault = default;
+  dataenc = default;
+  dataReify = default;
+  datetime = default;
+  DAV = default;
+  dbus = default;
+  derive = default;
+  diagrams = default;
+  Diff = default;
+  digest = default;
+  digestiveFunctorsHeist = default;
+  digestiveFunctorsSnap = default;
+  dimensional = default ++ latest;
+  dimensionalTf = default ++ latest;
+  directoryTree = default;
+  distributedProcess = default;
+  dlist = default;
+  dns = default;
+  doctest = default ++ latest;
+  dotgen = default;
+  doubleConversion = default;
+  Ebnf2ps = default;
+  editDistance = default;
+  editline = default;
+  emailValidate = default;
+  entropy = default;
+  enumerator = default;
+  epic = default;
+  erf = default;
+  failure = default;
+  fclabels = default;
+  feed = default;
+  fgl = all;
+  fileEmbed = default;
+  filestore = default;
+  fingertree = default;
+  flexibleDefaults = default;
+  funcmp = all;
+  gamma = default;
+  gdiff = default;
+  ghcEvents = default;
+  ghc = default;
+  ghcMod = default ++ latest;
+  ghcMtl = default;
+  ghcPaths = default;
+  ghcSybUtils = default;
+  githubBackup = default;
+  github = default;
+  gitit = default;
+  glade = default;
+  glib = default;
+  Glob = default;
+  gloss = default;
+  GLUT = all;
+  gnutls = default;
+  graphviz = default ++ latest;
+  gtk = default;
+  gtksourceview2 = default;
+  hackageDb = default ++ latest;
+  haddock = all;
+  hakyll = default;
+  hamlet = default;
+  happstackHamlet = default;
+  happstackServer = default;
+  happstackUtil = default;
+  happy = all;
+  hashable = default;
+  hashedStorage = default;
+  haskeline = default;
+  haskellLexer = default;
+  haskellPlatform = allBut ghc763;
+  haskellSrcExts = default;
+  haskellSrc = all;
+  haskellSrcMeta = default;
+  HaXml = default;
+  haxr = default;
+  HDBC = default;
+  HDBCPostgresql = default;
+  HDBCSqlite3 = default;
+  HFuse = default;
+  highlightingKate = default;
+  hinotify = default;
+  hint = default;
+  Hipmunk = default;
+  hledger = default ++ latest;
+  hledgerInterest = default ++ latest;
+  hledgerLib = default ++ latest;
+  hledgerWeb = default;
+  hlint = default ++ latest;
+  HList = default ++ latest;
+  hmatrix = default;
+  hoogle = default ++ latest;
+  hopenssl = all;
+  hostname = default;
+  hp2anyCore = default;
+  hp2anyGraph = default;
+  hS3 = default;
+  hscolour = default;
+  hsdns = all;
+  hsemail = allBut ghc6104;
+  hslogger = default;
+  hsloggerTemplate = default;
+  hspec = default ++ latest;
+  hspread = default;
+  HsSyck = default;
+  HStringTemplate = default ++ latest;
+  hsyslog = all;
+  html = all;
+  httpConduit = default;
+  httpDate = default;
+  httpdShed = default;
+  HTTP = all;
+  httpTypes = default;
+  HUnit = all;
+  hxt = default;
+  IfElse = default;
+  irc = default;
+  iteratee = default;
+  jailbreakCabal = all;
+  json = default;
+  jsonTypes = default;
+  keter = default;
+  lambdabot = default;
+  languageCQuote = default;
+  languageJavascript = default;
+  largeword = default;
+  lens = default;
+  libxmlSax = default;
+  liftedBase = default;
+  ListLike = default;
+  logfloat = default;
+  ltk = default;
+  mainlandPretty = default;
+  maude = default;
+  MaybeT = default;
+  MemoTrie = default;
+  mersenneRandomPure64 = default;
+  mimeMail = default;
+  MissingH = default;
+  mmap = default;
+  MonadCatchIOMtl = default;
+  MonadCatchIOTransformers = default;
+  monadControl = default;
+  monadLoops = default;
+  monadPar = default ++ latest;
+  monadPeel = default;
+  MonadPrompt = default;
+  MonadRandom = default;
+  mpppc = default;
+  mtl = all;
+  mtlparse = default;
+  multiplate = default;
+  multirec = default;
+  multiset = default;
+  murmurHash = default;
+  mwcRandom = default;
+  nat = default;
+  nats = default;
+  naturals = default;
+  network = all;
+  networkInfo = default;
+  networkMulticast = default;
+  networkProtocolXmpp = default;
+  nonNegative = default;
+  numericPrelude = default;
+  numtype = default;
+  numtypeTf = default;
+  ObjectName = default;
+  OneTuple = default;
+  OpenAL = all;
+  optparseApplicative = allBut ghc6104;
+  packunused = default;
+  pandoc = default ++ latest;
+  pandocTypes = default;
+  pango = default;
+  parallel = all;
+  parseargs = default;
+  parsec3 = default;
+  parsec = all;
+  parsimony = default;
+  pathPieces = default;
+  pathtype = default;
+  pcreLight = default;
+  permutation = default ++ latest;
+  persistent = default;
+  persistentPostgresql = default;
+  persistentSqlite = default;
+  persistentTemplate = default;
+  polyparse = default;
+  ppm = default;
+  prettyShow = default;
+  primitive = all;
+  PSQueue = default;
+  pureMD5 = default;
+  pwstoreFast = default;
+  QuickCheck2 = default;
+  QuickCheck = all;
+  randomFu = default;
+  random = default ++ latest;
+  randomShuffle = default;
+  randomSource = default;
+  RangedSets = default;
+  ranges = default;
+  readline = default;
+  recaptcha = default;
+  regexBase = all;
+  regexCompat = all;
+  regexPCRE = default;
+  regexPosix = all;
+  regexpr = default;
+  regexTDFA = default;
+  regular = default;
+  RSA = default;
+  rvar = default;
+  safe = default;
+  SafeSemaphore = default;
+  SDL = default;
+  SDLImage = default;
+  SDLMixer = default;
+  SDLTtf = default;
+  semigroups = default;
+  sendfile = default;
+  SHA = default;
+  shake = default;
+  Shellac = default;
+  shelly = default;
+  simpleSendfile = default;
+  smallcheck = default ++ latest;
+  SMTPClient = default;
+  snapCore = default;
+  snap = default;
+  snapLoaderStatic = default;
+  snapServer = default;
+  split = default ++ latest;
+  srcloc = default;
+  stateref = default;
+  StateVar = default;
+  statistics = default;
+  stbImage = default;
+  stm = all;
+  storableComplex = default;
+  storableRecord = default;
+  streamproc = all;
+  strictConcurrency = default;
+  strict = default;
+  strptime = default;
+  svgcairo = default;
+  syb = [ ghc704 ghc742 ghc763 ];
+  sybWithClass = default;
+  sybWithClassInstancesText = default;
+  tabular = default;
+  tagged = default;
+  tagsoup = default;
+  tar = default ++ latest;
+  Tensor = default;
+  terminfo = default;
+  testFramework = default ++ latest;
+  testFrameworkHunit = default ++ latest;
+  texmath = default;
+  text = all;
+  thLift = default;
+  timeplot = default;
+  tlsExtra = default;
+  tls = default;
+  transformersBase = default;
+  transformersCompat = default;
+  transformers = all;
+  tuple = default;
+  typeLlevelNaturalNumber = default;
+  uniplate = default;
+  uniqueid = default;
+  unixCompat = default;
+  unorderedContainers = default;
+  url = default;
+  utf8Light = default;
+  utf8String = default;
+  utilityHt = default;
+  uuagc = default;
+  uuid = default;
+  uulib = default ++ latest;
+  uuParsinglib = default;
+  vacuumCairo = default;
+  vacuum = default;
+  vcsRevision = default;
+  Vec = default;
+  vectorAlgorithms = default;
+  vector = all;
+  vectorSpace = default;
+  vty = default;
+  waiAppStatic = default;
+  waiExtra = default;
+  wai = default;
+  waiLogger = default;
+  warp = default;
+  wlPprintExtras = default;
+  wlPprint = default ++ latest;
+  wlPprintTerminfo = default;
+  wxcore = default;
+  wxdirect = default;
+  wx = default;
+  X11 = default;
+  xhtml = all;
+  xmlConduit = default;
+  xml = default;
+  xmlHamlet = default;
+  xmlTypes = default;
+  xmobar = default ++ latest;
+  xmonadContrib = default ++ latest;
+  xmonadExtras = default ++ latest;
+  xmonad = default ++ latest;
+  xssSanitize = default;
+  yesodAuth = default;
+  yesodCore = default;
+  yesodDefault = default;
+  yesodForm = default;
+  yesod = default;
+  yesodJson = default;
+  yesodPersistent = default;
+  yesodStatic = default;
+  zeromq3Haskell = default;
+  zeromqHaskell = default;
+  zipArchive = default;
+  zipper = default;
+  zlibBindings = default;
+  zlibEnum = default;
+  zlib = all;
 
 }
diff --git a/pkgs/top-level/release-python.nix b/pkgs/top-level/release-python.nix
index ce712fc04023..c57f1271ff13 100644
--- a/pkgs/top-level/release-python.nix
+++ b/pkgs/top-level/release-python.nix
@@ -1804,7 +1804,6 @@ in
     gigolo = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
     gtk_xfce_engine = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
     gvfs = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
-    libgdu = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
     libxfce4ui = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
     libxfce4util = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
     libxfcegui4 = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };