summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/editors/eclipse/default.nix16
-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/version-management/git-and-tools/default.nix2
-rw-r--r--pkgs/applications/version-management/git-and-tools/git/default.nix7
-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/swi-prolog/default.nix4
-rw-r--r--pkgs/development/interpreters/guile/default.nix16
-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/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/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/default.nix2
-rw-r--r--pkgs/servers/x11/xorg/overrides.nix2
-rw-r--r--pkgs/servers/x11/xorg/xorgserver12-CVE-1940.patch34
-rw-r--r--pkgs/tools/backup/obnam/default.nix4
-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/top-level/all-packages.nix37
-rw-r--r--pkgs/top-level/haskell-defaults.nix9
-rw-r--r--pkgs/top-level/haskell-packages.nix43
-rw-r--r--pkgs/top-level/python-packages.nix33
-rw-r--r--pkgs/top-level/release-haskell.nix1026
-rw-r--r--pkgs/top-level/release-python.nix1
287 files changed, 5577 insertions, 1325 deletions
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/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/version-management/git-and-tools/default.nix b/pkgs/applications/version-management/git-and-tools/default.nix
index b6d7c1eb5d3b..81362ec4d04d 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 hardlink 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..30611f40f07b 100644
--- a/pkgs/applications/version-management/git-and-tools/git/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git/default.nix
@@ -1,4 +1,4 @@
-{ 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
 , svnSupport, subversionClient, perlLibs, smtpPerlLibs
@@ -66,6 +66,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
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/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/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/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/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/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/default.nix b/pkgs/servers/x11/xorg/default.nix
index dc8eb85fa7ba..6cb4907aa968 100644
--- a/pkgs/servers/x11/xorg/default.nix
+++ b/pkgs/servers/x11/xorg/default.nix
@@ -1181,7 +1181,7 @@ let
     name = "xcb-util-renderutil-0.3.8";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/xcb/xcb-util-renderutil-0.3.8.tar.bz2;
+      url = http://xcb.freedesktop.org/dist/xcb-util-renderutil-0.3.8.tar.bz2;
       sha256 = "0lkl9ij9b447c0br2qc5qsynjn09c4fdz7sd6yp7pyi8az2sb2cp";
     };
     buildInputs = [pkgconfig gperf m4 libxcb xproto ];
diff --git a/pkgs/servers/x11/xorg/overrides.nix b/pkgs/servers/x11/xorg/overrides.nix
index e9c310b84f17..e5b7a9a34021 100644
--- a/pkgs/servers/x11/xorg/overrides.nix
+++ b/pkgs/servers/x11/xorg/overrides.nix
@@ -221,7 +221,7 @@ in
 
   xorgserver = attrs: attrs // {
     configureFlags = "--enable-xcsecurity"; # enable SECURITY extension
-    patches = [./xorgserver-dri-path.patch ./xorgserver-xkbcomp-path.patch];
+    patches = [./xorgserver-dri-path.patch ./xorgserver-xkbcomp-path.patch ./xorgserver12-CVE-1940.patch];
     buildInputs = attrs.buildInputs ++
       [ args.zlib args.udev args.mesa args.dbus.libs
         xorg.xf86bigfontproto xorg.glproto xorg.xf86driproto
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/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/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/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 17dc34cd0468..8e0e375f1dac 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;
@@ -2476,7 +2476,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;
 
@@ -3995,6 +3996,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.
@@ -5314,15 +5317,11 @@ let
 
   pythonPackages = python27Packages;
 
-  # `nix-env -i python-nose` installs for 2.7, the default python.
-  # Therefore we do not recurse into attributes here, in contrast to
-  # python27Packages. `nix-env -iA python26Packages.nose` works
-  # regardless.
-  python26Packages = import ./python-packages.nix {
+  python26Packages = recurseIntoAttrs (import ./python-packages.nix {
     inherit pkgs;
     inherit (lib) lowPrio;
     python = python26;
-  };
+  });
 
   python27Packages = recurseIntoAttrs (import ./python-packages.nix {
     inherit pkgs;
@@ -6196,6 +6195,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 { };
@@ -6308,7 +6309,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 { };
 
@@ -7181,7 +7184,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 { };
@@ -7420,9 +7423,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 { };
 
@@ -8535,6 +8536,12 @@ let
       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
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/python-packages.nix b/pkgs/top-level/python-packages.nix
index 1ee1482c0cb9..69e3fc608e22 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -994,7 +994,7 @@ pythonPackages = python.modules // rec {
       webtest 
       zope_component 
       zope_interface 
-    ];
+    ] ++ optional isPy26 unittest2;
 
     propagatedBuildInputs = [
       chameleon
@@ -1198,6 +1198,8 @@ pythonPackages = python.modules // rec {
       md5 = "df72458bf3dd26a744dcff5ad555c34b";
     };
 
+    buildInputs = [] ++ optionals isPy26 [ ordereddict unittest2 ];
+
     # TODO: https://github.com/malthe/chameleon/issues/139
     doCheck = false;
 
@@ -3749,13 +3751,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 = {
@@ -4584,7 +4585,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
@@ -4592,7 +4597,6 @@ pythonPackages = python.modules // rec {
       six
       beautifulsoup4
       waitress
-      unittest2
       mock
       pyquery
       wsgiproxy2
@@ -5127,7 +5131,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 = ''
@@ -5295,11 +5299,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 ];
@@ -5396,11 +5400,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 ];
@@ -5417,11 +5422,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 9d8319141dde..c51f45d6c5fb 100644
--- a/pkgs/top-level/release-python.nix
+++ b/pkgs/top-level/release-python.nix
@@ -1806,7 +1806,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; };