summary refs log tree commit diff
path: root/pkgs/desktops
diff options
context:
space:
mode:
authorVladimír Čunát <vcunat@gmail.com>2013-02-21 18:12:15 +0100
committerVladimír Čunát <vcunat@gmail.com>2013-02-21 18:12:15 +0100
commit90fcea2a252fc42cc210f8ad2dd1122e68f0936f (patch)
tree28a534859abcaa057b3d835e5e81240b45876df2 /pkgs/desktops
parent4a1a626d05d9e4805467686c8c2af2097bd14613 (diff)
parented740f4c95e5b806623198db1ee674adbf083c31 (diff)
downloadnixlib-90fcea2a252fc42cc210f8ad2dd1122e68f0936f.tar
nixlib-90fcea2a252fc42cc210f8ad2dd1122e68f0936f.tar.gz
nixlib-90fcea2a252fc42cc210f8ad2dd1122e68f0936f.tar.bz2
nixlib-90fcea2a252fc42cc210f8ad2dd1122e68f0936f.tar.lz
nixlib-90fcea2a252fc42cc210f8ad2dd1122e68f0936f.tar.xz
nixlib-90fcea2a252fc42cc210f8ad2dd1122e68f0936f.tar.zst
nixlib-90fcea2a252fc42cc210f8ad2dd1122e68f0936f.zip
Merge branch 'x-updates' into vlada/gnome3-notg
Diffstat (limited to 'pkgs/desktops')
-rw-r--r--pkgs/desktops/e17/default.nix8
-rw-r--r--pkgs/desktops/e17/e_dbus/default.nix5
-rw-r--r--pkgs/desktops/e17/ecore/default.nix11
-rw-r--r--pkgs/desktops/e17/edje/default.nix8
-rw-r--r--pkgs/desktops/e17/eet/default.nix4
-rw-r--r--pkgs/desktops/e17/eeze/default.nix4
-rw-r--r--pkgs/desktops/e17/efreet/default.nix4
-rw-r--r--pkgs/desktops/e17/eina/default.nix4
-rw-r--r--pkgs/desktops/e17/eio/default.nix24
-rw-r--r--pkgs/desktops/e17/elementary/default.nix19
-rw-r--r--pkgs/desktops/e17/embryo/default.nix6
-rw-r--r--pkgs/desktops/e17/emotion/default.nix19
-rw-r--r--pkgs/desktops/e17/enlightenment/default.nix12
-rw-r--r--pkgs/desktops/e17/ethumb/default.nix22
-rw-r--r--pkgs/desktops/e17/evas/default.nix4
-rw-r--r--pkgs/desktops/gnome-2/bindings/gnome-python/default.nix5
-rw-r--r--pkgs/desktops/gnome-2/bindings/python-rsvg/default.nix29
-rw-r--r--pkgs/desktops/gnome-2/default.nix4
-rw-r--r--pkgs/desktops/gnome-2/desktop/gnome-icon-theme/default.nix2
-rw-r--r--pkgs/desktops/gnome-2/desktop/gnome-keyring/default.nix2
-rw-r--r--pkgs/desktops/gnome-2/desktop/gnome-panel/default.nix2
-rw-r--r--pkgs/desktops/gnome-2/desktop/gnome-session/default.nix2
-rw-r--r--pkgs/desktops/gnome-2/desktop/gnome-settings-daemon/default.nix2
-rw-r--r--pkgs/desktops/gnome-2/desktop/gvfs/default.nix16
-rw-r--r--pkgs/desktops/gnome-2/desktop/zenity/default.nix2
-rw-r--r--pkgs/desktops/gnome-2/platform/GConf/default.nix2
-rw-r--r--pkgs/desktops/gnome-2/platform/ORBit2/default.nix2
-rw-r--r--pkgs/desktops/gnome-2/platform/gconfmm/default.nix2
-rw-r--r--pkgs/desktops/gnome-2/platform/gtkglext/default.nix5
-rw-r--r--pkgs/desktops/gnome-2/platform/gtkglextmm/default.nix2
-rw-r--r--pkgs/desktops/gnome-2/platform/intltool/default.nix13
-rw-r--r--pkgs/desktops/gnome-2/platform/libIDL/default.nix2
-rw-r--r--pkgs/desktops/gnome-2/platform/libbonobo/default.nix2
-rw-r--r--pkgs/desktops/gnome-2/platform/libbonoboui/default.nix2
-rw-r--r--pkgs/desktops/gnome-2/platform/libgnome/default.nix2
-rw-r--r--pkgs/desktops/gnome-2/platform/libgnomecanvas/default.nix2
-rw-r--r--pkgs/desktops/gnome-2/platform/libgnomecups/default.nix10
-rw-r--r--pkgs/desktops/gnome-2/platform/libgnomecups/glib.patch38
-rw-r--r--pkgs/desktops/gnome-2/platform/libgnomeprint/default.nix10
-rw-r--r--pkgs/desktops/gnome-2/platform/libgnomeui/default.nix2
-rw-r--r--pkgs/desktops/gnome-2/platform/libunique/default.nix2
-rw-r--r--pkgs/desktops/kde-3/kdelibs/default.nix51
-rw-r--r--pkgs/desktops/kde-3/kdelibs/inotify.patch30
-rw-r--r--pkgs/desktops/kde-3/kdelibs/kdelibs-3.5.10-openssl_1.0.0.patch180
-rw-r--r--pkgs/desktops/kde-4.7/kde-wallpapers.nix2
-rw-r--r--pkgs/desktops/kde-4.7/kde-workspace.nix6
-rw-r--r--pkgs/desktops/kde-4.7/kdeartwork/kscreensaver.nix2
-rw-r--r--pkgs/desktops/kde-4.7/kdebindings/perlqt.nix10
-rw-r--r--pkgs/desktops/kde-4.7/kdebindings/smokegen.nix2
-rw-r--r--pkgs/desktops/kde-4.7/kdebindings/smokekde.nix10
-rw-r--r--pkgs/desktops/kde-4.7/kdebindings/smokeqt.nix4
-rw-r--r--pkgs/desktops/kde-4.7/kdegames.nix2
-rw-r--r--pkgs/desktops/kde-4.7/kdegraphics/gwenview.nix2
-rw-r--r--pkgs/desktops/kde-4.7/kdelibs.nix6
-rw-r--r--pkgs/desktops/kde-4.7/kdenetwork/kopete.nix2
-rw-r--r--pkgs/desktops/kde-4.7/kdenetwork/log-feature.diff60
-rw-r--r--pkgs/desktops/kde-4.7/kdeplasma-addons.nix2
-rw-r--r--pkgs/desktops/kde-4.7/kdesdk/optional-docs.diff39
-rw-r--r--pkgs/desktops/kde-4.7/kipi-plugins.nix29
-rw-r--r--pkgs/desktops/kde-4.7/oxygen-icons.nix2
-rw-r--r--pkgs/desktops/kde-4.7/support/akonadi/default.nix2
-rw-r--r--pkgs/desktops/kde-4.8/kde-runtime.nix2
-rw-r--r--pkgs/desktops/kde-4.8/kde-wallpapers.nix2
-rw-r--r--pkgs/desktops/kde-4.8/kde-workspace.nix6
-rw-r--r--pkgs/desktops/kde-4.8/kdeartwork/kscreensaver.nix2
-rw-r--r--pkgs/desktops/kde-4.8/kdebindings/perlqt.nix2
-rw-r--r--pkgs/desktops/kde-4.8/kdebindings/qtruby.nix2
-rw-r--r--pkgs/desktops/kde-4.8/kdebindings/smokegen.nix2
-rw-r--r--pkgs/desktops/kde-4.8/kdebindings/smokekde.nix2
-rw-r--r--pkgs/desktops/kde-4.8/kdebindings/smokeqt.nix4
-rw-r--r--pkgs/desktops/kde-4.8/kdegames.nix2
-rw-r--r--pkgs/desktops/kde-4.8/kdegraphics/gwenview.nix2
-rw-r--r--pkgs/desktops/kde-4.8/kdelibs.nix2
-rw-r--r--pkgs/desktops/kde-4.8/kdenetwork/kopete.nix2
-rw-r--r--pkgs/desktops/kde-4.8/kdeplasma-addons.nix2
-rw-r--r--pkgs/desktops/kde-4.8/oxygen-icons.nix2
-rw-r--r--pkgs/desktops/kde-4.8/support/akonadi/default.nix2
-rw-r--r--pkgs/desktops/xfce-4.6/applications/mousepad.nix18
-rw-r--r--pkgs/desktops/xfce-4.6/applications/ristretto.nix24
-rw-r--r--pkgs/desktops/xfce-4.6/applications/terminal.nix23
-rw-r--r--pkgs/desktops/xfce-4.6/applications/xfce4-mixer.nix38
-rw-r--r--pkgs/desktops/xfce-4.6/applications/xfce4-power-manager.nix24
-rw-r--r--pkgs/desktops/xfce-4.6/art/xfce4-icon-theme.nix17
-rw-r--r--pkgs/desktops/xfce-4.6/core/exo.nix21
-rw-r--r--pkgs/desktops/xfce-4.6/core/gtk-xfce-engine.nix19
-rw-r--r--pkgs/desktops/xfce-4.6/core/libxfce4menu.nix18
-rw-r--r--pkgs/desktops/xfce-4.6/core/libxfce4util.nix18
-rw-r--r--pkgs/desktops/xfce-4.6/core/thunar.nix25
-rw-r--r--pkgs/desktops/xfce-4.6/core/xfce-utils.nix20
-rw-r--r--pkgs/desktops/xfce-4.6/core/xfce4-panel.nix24
-rw-r--r--pkgs/desktops/xfce-4.6/core/xfce4-session.nix22
-rw-r--r--pkgs/desktops/xfce-4.6/core/xfce4-settings.nix24
-rw-r--r--pkgs/desktops/xfce-4.6/core/xfconf.nix20
-rw-r--r--pkgs/desktops/xfce-4.6/core/xfdesktop.nix22
-rw-r--r--pkgs/desktops/xfce-4.6/core/xfwm4.nix23
-rw-r--r--pkgs/desktops/xfce-4.6/default.nix66
-rw-r--r--pkgs/desktops/xfce-4.8/applications/mousepad.nix20
-rw-r--r--pkgs/desktops/xfce-4.8/applications/terminal.nix25
-rw-r--r--pkgs/desktops/xfce-4.8/core/exo.nix19
-rw-r--r--pkgs/desktops/xfce-4.8/core/garcon.nix18
-rw-r--r--pkgs/desktops/xfce-4.8/core/gtk-xfce-engine.nix21
-rw-r--r--pkgs/desktops/xfce-4.8/core/libxfce4ui.nix24
-rw-r--r--pkgs/desktops/xfce-4.8/core/libxfce4util.nix18
-rw-r--r--pkgs/desktops/xfce-4.8/core/libxfcegui4.nix31
-rw-r--r--pkgs/desktops/xfce-4.8/core/thunar.nix27
-rw-r--r--pkgs/desktops/xfce-4.8/core/xfce4-panel.nix26
-rw-r--r--pkgs/desktops/xfce-4.8/core/xfce4-session.nix24
-rw-r--r--pkgs/desktops/xfce-4.8/core/xfce4-settings.nix26
-rw-r--r--pkgs/desktops/xfce-4.8/core/xfconf.nix20
-rw-r--r--pkgs/desktops/xfce-4.8/core/xfdesktop.nix26
-rw-r--r--pkgs/desktops/xfce-4.8/default.nix83
-rw-r--r--pkgs/desktops/xfce-4.8/support/gvfs.nix18
-rw-r--r--pkgs/desktops/xfce/4_08.nix37
-rw-r--r--pkgs/desktops/xfce/4_10.nix35
-rw-r--r--pkgs/desktops/xfce/applications/gigolo.nix19
-rw-r--r--pkgs/desktops/xfce/applications/mousepad.nix18
-rw-r--r--pkgs/desktops/xfce/applications/ristretto.nix (renamed from pkgs/desktops/xfce-4.8/applications/ristretto.nix)13
-rw-r--r--pkgs/desktops/xfce/applications/terminal.nix16
-rw-r--r--pkgs/desktops/xfce/applications/xfce4-mixer.nix (renamed from pkgs/desktops/xfce-4.8/applications/xfce4-mixer.nix)17
-rw-r--r--pkgs/desktops/xfce/applications/xfce4-notifyd.nix21
-rw-r--r--pkgs/desktops/xfce/applications/xfce4-taskmanager.nix14
-rw-r--r--pkgs/desktops/xfce/art/xfce4-icon-theme.nix (renamed from pkgs/desktops/xfce-4.8/art/xfce4-icon-theme.nix)10
-rw-r--r--pkgs/desktops/xfce/common.nix72
-rw-r--r--pkgs/desktops/xfce/core/exo.nix16
-rw-r--r--pkgs/desktops/xfce/core/garcon.nix14
-rw-r--r--pkgs/desktops/xfce/core/gtk-xfce-engine.nix17
-rw-r--r--pkgs/desktops/xfce/core/libxfce4ui.nix28
-rw-r--r--pkgs/desktops/xfce/core/libxfce4util.nix14
-rw-r--r--pkgs/desktops/xfce/core/libxfcegui4.nix (renamed from pkgs/desktops/xfce-4.6/core/libxfcegui4.nix)15
-rw-r--r--pkgs/desktops/xfce/core/thunar-volman.nix (renamed from pkgs/desktops/xfce-4.8/core/thunar-volman.nix)3
-rw-r--r--pkgs/desktops/xfce/core/thunar.nix25
-rw-r--r--pkgs/desktops/xfce/core/tumbler.nix14
-rw-r--r--pkgs/desktops/xfce/core/xfce-utils.nix (renamed from pkgs/desktops/xfce-4.8/core/xfce-utils.nix)16
-rw-r--r--pkgs/desktops/xfce/core/xfce4-appfinder.nix (renamed from pkgs/desktops/xfce-4.8/core/xfce4-appfinder.nix)12
-rw-r--r--pkgs/desktops/xfce/core/xfce4-panel-datadir.patch24
-rw-r--r--pkgs/desktops/xfce/core/xfce4-panel.nix28
-rw-r--r--pkgs/desktops/xfce/core/xfce4-power-manager.nix (renamed from pkgs/desktops/xfce-4.8/applications/xfce4-power-manager.nix)11
-rw-r--r--pkgs/desktops/xfce/core/xfce4-session.nix26
-rw-r--r--pkgs/desktops/xfce/core/xfce4-settings.nix24
-rw-r--r--pkgs/desktops/xfce/core/xfconf.nix16
-rw-r--r--pkgs/desktops/xfce/core/xfdesktop.nix23
-rw-r--r--pkgs/desktops/xfce/core/xfwm4.nix (renamed from pkgs/desktops/xfce-4.8/core/xfwm4.nix)15
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-cpufreq-plugin.nix19
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-systemload-plugin.nix18
-rw-r--r--pkgs/desktops/xfce/support/gvfs.nix22
-rw-r--r--pkgs/desktops/xfce/support/libgdu-only.patch (renamed from pkgs/desktops/xfce-4.8/support/libgdu-only.patch)0
-rw-r--r--pkgs/desktops/xfce/support/libgdu.nix (renamed from pkgs/desktops/xfce-4.8/support/libgdu.nix)0
147 files changed, 878 insertions, 1485 deletions
diff --git a/pkgs/desktops/e17/default.nix b/pkgs/desktops/e17/default.nix
index 6822c6419136..f241f3ff0a6d 100644
--- a/pkgs/desktops/e17/default.nix
+++ b/pkgs/desktops/e17/default.nix
@@ -10,6 +10,8 @@ rec {
 
   ecore = callPackage ./ecore { };
 
+  eio = callPackage ./eio { };
+
   embryo = callPackage ./embryo { };
 
   edje = callPackage ./edje { lua = pkgs.lua5; };
@@ -20,6 +22,12 @@ rec {
 
   eeze = callPackage ./eeze { };
 
+  emotion = callPackage ./emotion { };
+
+  ethumb = callPackage ./ethumb { };
+
+  elementary = callPackage ./elementary { };
+
 
   #### WINDOW MANAGER
 
diff --git a/pkgs/desktops/e17/e_dbus/default.nix b/pkgs/desktops/e17/e_dbus/default.nix
index 1b3ba2c7256d..44eaf2328ec2 100644
--- a/pkgs/desktops/e17/e_dbus/default.nix
+++ b/pkgs/desktops/e17/e_dbus/default.nix
@@ -2,10 +2,10 @@
 , dbus_libs }:
 stdenv.mkDerivation rec {
   name = "e_dbus-${version}";
-  version = "1.2.0-alpha";
+  version = "1.7.5";
   src = fetchurl {
     url = "http://download.enlightenment.org/releases/${name}.tar.bz2";
-    sha256 = "1kky76v7yydsjihgi1hbwpyqhdmbxmxj2dw4p7kiqbl67dmsjhxg";
+    sha256 = "16ckrpzzw5x1cs0fwqkk8431al55xil5magihkp9l3s77g0qd26q";
   };
   buildInputs = [ pkgconfig zlib libjpeg expat ecore eina evas ];
   propagatedBuildInputs = [ dbus_libs ];
@@ -14,6 +14,7 @@ stdenv.mkDerivation rec {
     --disable-edbus-test-client
     --disable-edbus-notify-send
     --disable-edbus-notify-test
+    --disable-edbus-async-test
   '';
   meta = {
     description = "Enlightenment's D-Bus wrapping and glue layer library";
diff --git a/pkgs/desktops/e17/ecore/default.nix b/pkgs/desktops/e17/ecore/default.nix
index 47e9e05fd652..4a3eef4ec490 100644
--- a/pkgs/desktops/e17/ecore/default.nix
+++ b/pkgs/desktops/e17/ecore/default.nix
@@ -1,13 +1,16 @@
-{ stdenv, fetchurl, pkgconfig, eina, evas, libX11, libXext }:
+{ stdenv, fetchurl, pkgconfig, eina, evas, libX11, libXext, libXrender
+, libXcomposite, libXfixes, libXdamage }:
 stdenv.mkDerivation rec {
   name = "ecore-${version}";
-  version = "1.2.0-alpha";
+  version = "1.7.5";
   src = fetchurl {
     url = "http://download.enlightenment.org/releases/${name}.tar.bz2";
-    sha256 = "1fq3prr2i9n14jppfpns3dg1mkk3iy0ijv2d47pm4krymd7l4hs4";
+    sha256 = "08ljda6p0zj1h5sq3l0js6mihw8cr6ydynn42dnka36vachvmfjb";
   };
   buildInputs = [ pkgconfig eina evas ];
-  propagatedBuildInputs = [ libX11 libXext ];
+  propagatedBuildInputs = [ libX11 libXext libXcomposite libXrender libXfixes
+                            libXdamage
+                          ];
   meta = {
     description = "Enlightenment's core mainloop, display abstraction and utility library";
     longDescription = ''
diff --git a/pkgs/desktops/e17/edje/default.nix b/pkgs/desktops/e17/edje/default.nix
index b48794e147ea..62758b2094e5 100644
--- a/pkgs/desktops/e17/edje/default.nix
+++ b/pkgs/desktops/e17/edje/default.nix
@@ -2,12 +2,16 @@
 , ecore, embryo }:
 stdenv.mkDerivation rec {
   name = "edje-${version}";
-  version = "1.2.0-alpha";
+  version = "1.7.5";
   src = fetchurl {
     url = "http://download.enlightenment.org/releases/${name}.tar.bz2";
-    sha256 = "15vh0plb9gb75q0lgbqv4kjz0pyhbfxk39x3inzn87ih567z73xx";
+    sha256 = "1hsyj46bk94yd9ymf9425pf4ygy36h5gdkg9fhf8qds8cnn2kcy7";
   };
   buildInputs = [ pkgconfig expat zlib libjpeg lua eina eet evas ecore embryo ];
+  patchPhase = ''
+    substituteInPlace src/bin/edje_cc_out.c --replace '%s/embryo_cc' '${embryo}/bin/embryo_cc'
+    substituteInPlace src/bin/edje_cc_out.c --replace 'eina_prefix_bin_get(pfx),' ""
+  '';
   meta = {
     description = "Enlightenment's abstract GUI layout and animation object library";
     longDescription = ''
diff --git a/pkgs/desktops/e17/eet/default.nix b/pkgs/desktops/e17/eet/default.nix
index 6ac119161c52..079d07187ff4 100644
--- a/pkgs/desktops/e17/eet/default.nix
+++ b/pkgs/desktops/e17/eet/default.nix
@@ -1,10 +1,10 @@
 { stdenv, fetchurl, pkgconfig, eina, zlib, libjpeg }:
 stdenv.mkDerivation rec {
   name = "eet-${version}";
-  version = "1.6.0-alpha";
+  version = "1.7.5";
   src = fetchurl {
     url = "http://download.enlightenment.org/releases/${name}.tar.bz2";
-    sha256 = "1cq6i9g020mi5mr069jykx1fvihd18k1y4x49skmhzfh7dv10dfp";
+    sha256 = "0ys2579v45f9x2n47shq0k63g0sdbj1ndhh72dvfajihsgjwd767";
   };
   buildInputs = [ pkgconfig eina zlib libjpeg ];
   meta = {
diff --git a/pkgs/desktops/e17/eeze/default.nix b/pkgs/desktops/e17/eeze/default.nix
index 4931dbf62035..162fbcf1aef1 100644
--- a/pkgs/desktops/e17/eeze/default.nix
+++ b/pkgs/desktops/e17/eeze/default.nix
@@ -1,10 +1,10 @@
 { stdenv, fetchurl, pkgconfig, eina, ecore, udev }:
 stdenv.mkDerivation rec {
   name = "eeze-${version}";
-  version = "1.2.0-alpha";
+  version = "1.7.5";
   src = fetchurl {
     url = "http://download.enlightenment.org/releases/${name}.tar.bz2";
-    sha256 = "1v0n6bn3g04bjq0cxp6ixw7hb4kjbqpvywpvgik960xkn4pva76p";
+    sha256 = "0274fs4cxgw6420yyz9frrc8zhj0qqyvwczzslq3kih3sx1nikxr";
   };
   buildInputs = [ pkgconfig eina ecore ];
   propagatedBuildInputs = [ udev ];
diff --git a/pkgs/desktops/e17/efreet/default.nix b/pkgs/desktops/e17/efreet/default.nix
index 960a8694b865..dfe755db5978 100644
--- a/pkgs/desktops/e17/efreet/default.nix
+++ b/pkgs/desktops/e17/efreet/default.nix
@@ -1,10 +1,10 @@
 { stdenv, fetchurl, pkgconfig, eina, eet, ecore }:
 stdenv.mkDerivation rec {
   name = "efreet-${version}";
-  version = "1.2.0-alpha";
+  version = "1.7.5";
   src = fetchurl {
     url = "http://download.enlightenment.org/releases/${name}.tar.bz2";
-    sha256 = "1nydy3ahdq7q6b0xxaj79a8kd4b4xy3hzf1fdh117c9pwp4fxhl0";
+    sha256 = "1yw7qjddqcnsz1vb693pa57v9wydvzfy198dc23mz46qfqx08nlg";
   };
   buildInputs = [ pkgconfig eina eet ecore ];
   meta = {
diff --git a/pkgs/desktops/e17/eina/default.nix b/pkgs/desktops/e17/eina/default.nix
index 51b938790ec9..77d4829a8419 100644
--- a/pkgs/desktops/e17/eina/default.nix
+++ b/pkgs/desktops/e17/eina/default.nix
@@ -1,10 +1,10 @@
 { stdenv, fetchurl }:
 stdenv.mkDerivation rec {
   name = "eina-${version}";
-  version = "1.2.0-alpha";
+  version = "1.7.5";
   src = fetchurl {
     url = "http://download.enlightenment.org/releases/${name}.tar.bz2";
-    sha256 = "1vchzb34hd9z8ghh75ch7sdf90gmzzpxryk3yq8hjcdxd0zjx9yj";
+    sha256 = "0kd4116njrbag9h459cmfpg07c4ag04z3yrsg513lpi27amch27w";
   };
   meta = {
     description = "Enlightenment's core data structure library";
diff --git a/pkgs/desktops/e17/eio/default.nix b/pkgs/desktops/e17/eio/default.nix
new file mode 100644
index 000000000000..b56422fd7741
--- /dev/null
+++ b/pkgs/desktops/e17/eio/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, pkgconfig, eet, eina, ecore }:
+stdenv.mkDerivation rec {
+  name = "eio-${version}";
+  version = "1.7.5";
+  src = fetchurl {
+    url = "http://download.enlightenment.org/releases/${name}.tar.bz2";
+    sha256 = "1bsam5q364kc4xwfv7pql6686gj0byhk42zwjqx9ajf70l23kss6";
+  };
+  buildInputs = [ pkgconfig eet eina ecore ];
+  meta = {
+    description = "A library that integrates with EFL to provide efficient filesystem IO";
+    longDescription = ''
+      Eio integrates with EFL (Ecore, Eina) to provide efficient filesystem Input/Output.
+      It use the best techniques to achieve such purpose, like using at-variants, splice,
+      properly handling errors and doing it in an asynchronous fashion by means of worker
+      threads. It is also ported to Windows, so multi-platform.
+
+      Whenever you need to list a directory, copy, move or delete files, Eio will do that
+      task better than you'd achieve with naive implementations, and it is easy to use. 
+    '';
+    homepage = http://enlightenment.org/;
+    license = stdenv.lib.licenses.lgpl21;
+  };
+}
diff --git a/pkgs/desktops/e17/elementary/default.nix b/pkgs/desktops/e17/elementary/default.nix
new file mode 100644
index 000000000000..b0240d986dea
--- /dev/null
+++ b/pkgs/desktops/e17/elementary/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, pkgconfig, eina, eet, evas, ecore, edje }:
+stdenv.mkDerivation rec {
+  name = "elementary-${version}";
+  version = "1.7.5";
+  src = fetchurl {
+    url = "http://download.enlightenment.org/releases/${name}.tar.bz2";
+    sha256 = "08cb4x9639xyrb8d4vzvhl6v385qjfswl717sicm7iimh5zlm2l9";
+  };
+  buildInputs = [ pkgconfig eina eet evas ecore edje ];
+  meta = {
+    description = "Enlightenment's core data structure library";
+    longDescription = ''
+      Enlightenment's Eina is a core data structure and common utility
+      library.
+    '';
+    homepage = http://enlightenment.org/;
+    license = stdenv.lib.licenses.lgpl21;
+  };
+}
diff --git a/pkgs/desktops/e17/embryo/default.nix b/pkgs/desktops/e17/embryo/default.nix
index f09bc6b2ded6..59b5540f25d4 100644
--- a/pkgs/desktops/e17/embryo/default.nix
+++ b/pkgs/desktops/e17/embryo/default.nix
@@ -1,10 +1,10 @@
 { stdenv, fetchurl, pkgconfig, eina }:
 stdenv.mkDerivation rec {
   name = "embryo-${version}";
-  version = "1.2.0-alpha";
+  version = "1.7.5";
   src = fetchurl {
     url = "http://download.enlightenment.org/releases/${name}.tar.bz2";
-    sha256 = "0hcjlf0rljz4zs1y5l4h0gn2gyqb1h4msfsaps8flaym4mxrvvd9";
+    sha256 = "104fsa179w2dfg00sfnap7c3b4ixcps4crxa6yav755awssdcim9";
   };
   buildInputs = [ pkgconfig eina ];
   meta = {
@@ -17,6 +17,6 @@ stdenv.mkDerivation rec {
       untouched.
     '';
     homepage = http://enlightenment.org/;
-    license = with stdenv.lib.licenses; [ bsd2 bsd3 ];  # not sure
+    license = with stdenv.lib.licenses; [ bsd2.shortName bsd3.shortName ];  # not sure
   };
 }
diff --git a/pkgs/desktops/e17/emotion/default.nix b/pkgs/desktops/e17/emotion/default.nix
new file mode 100644
index 000000000000..42790162171c
--- /dev/null
+++ b/pkgs/desktops/e17/emotion/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, pkgconfig, ecore, evas, eet, eina, edje }:
+stdenv.mkDerivation rec {
+  name = "emotion-${version}";
+  version = "1.7.5";
+  src = fetchurl {
+    url = "http://download.enlightenment.org/releases/${name}.tar.bz2";
+    sha256 = "1sfw8kpj2fcqymzd6q7p51xxib1n2arvjl1hnwhqkvwhlsq2b4sw";
+  };
+  buildInputs = [ pkgconfig ecore evas eet eina edje ];
+  meta = {
+    description = "A library to easily integrate media playback into EFL applications";
+    longDescription = ''
+      Emotion is a library to easily integrate media playback into EFL applications,
+      it will take care of using Ecore's main loop and video display is done using Evas.
+    '';
+    homepage = http://enlightenment.org/;
+    license = stdenv.lib.licenses.lgpl21;
+  };
+}
diff --git a/pkgs/desktops/e17/enlightenment/default.nix b/pkgs/desktops/e17/enlightenment/default.nix
index f8c57543f88f..1c3edb07ecf1 100644
--- a/pkgs/desktops/e17/enlightenment/default.nix
+++ b/pkgs/desktops/e17/enlightenment/default.nix
@@ -1,12 +1,14 @@
-{ stdenv, fetchurl, pkgconfig, eina, eet, evas, ecore, edje, efreet, e_dbus, embryo }:
+{ stdenv, fetchurl, pkgconfig, eina, eet, evas, ecore, edje, efreet, e_dbus
+, embryo, eio, xcbutilkeysyms, libjpeg }:
 stdenv.mkDerivation rec {
   name = "enlightenment-${version}";
-  version = "0.16.999.65643";
+  version = "0.17.1";
   src = fetchurl {
-    url = "http://download.enlightenment.org/snapshots/2011-11-28/${name}.tar.gz";
-    sha256 = "1bb577gbccb1wrifrhv9pzm451zhig2p29mwz55b187ls31p36kz";
+    url = "http://download.enlightenment.org/releases/${name}.tar.bz2";
+    sha256 = "1z2vx9r7yc55rs673jg7d685slgdv9dss45asg50wh5wxp2mfi3y";
   };
-  buildInputs = [ pkgconfig eina eet ecore evas edje efreet e_dbus embryo ];
+  buildInputs = [ pkgconfig eina eet ecore evas edje efreet e_dbus embryo
+                  eio xcbutilkeysyms libjpeg ];
   configureFlags = ''
     --with-profile=FAST_PC
     --disable-illume
diff --git a/pkgs/desktops/e17/ethumb/default.nix b/pkgs/desktops/e17/ethumb/default.nix
new file mode 100644
index 000000000000..3d1114e01717
--- /dev/null
+++ b/pkgs/desktops/e17/ethumb/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, pkgconfig, eina, evas, ecore, edje, eet }:
+stdenv.mkDerivation rec {
+  name = "ethumb-${version}";
+  version = "1.7.5";
+  src = fetchurl {
+    url = "http://download.enlightenment.org/releases/${name}.tar.bz2";
+    sha256 = "0prka3knz8p2n46dfrzgwn55khhhrhjny4vvnzkjcwmhvz7kgc9l";
+  };
+  buildInputs = [ pkgconfig eina evas ecore edje eet ];
+  meta = {
+    description = "A thumbnail generation library";
+    longDescription = ''
+      Ethumb - thumbnail generation library. Features:
+      * create thumbnails with a predefined frame (possibly an edje frame);
+      * have an option to create fdo-like thumbnails;
+      * have a client/server utility;
+      * TODO: make thumbnails from edje backgrounds, icons and themes; 
+    '';
+    homepage = http://enlightenment.org/;
+    license = stdenv.lib.licenses.lgpl21;
+  };
+}
diff --git a/pkgs/desktops/e17/evas/default.nix b/pkgs/desktops/e17/evas/default.nix
index 71b54f502a23..c271caa980d6 100644
--- a/pkgs/desktops/e17/evas/default.nix
+++ b/pkgs/desktops/e17/evas/default.nix
@@ -2,10 +2,10 @@
 , libX11, libXext, eina, eet }:
 stdenv.mkDerivation rec {
   name = "evas-${version}";
-  version = "1.2.0-alpha";
+  version = "1.7.5";
   src = fetchurl {
     url = "http://download.enlightenment.org/releases/${name}.tar.bz2";
-    sha256 = "1lyya0nc8p0vs63azkflwq7lqqml94cqzjpg12h43sbvza342rsq";
+    sha256 = "0x3k89q2wxgxjsbhdf4qws7jgpjl7rpqji98ca3nf25jf2lm1cvh";
   };
   buildInputs = [ pkgconfig freetype fontconfig libpng libjpeg
                   libX11 libXext eina eet
diff --git a/pkgs/desktops/gnome-2/bindings/gnome-python/default.nix b/pkgs/desktops/gnome-2/bindings/gnome-python/default.nix
index c65c8b98c6ac..83505dc42fc3 100644
--- a/pkgs/desktops/gnome-2/bindings/gnome-python/default.nix
+++ b/pkgs/desktops/gnome-2/bindings/gnome-python/default.nix
@@ -15,8 +15,8 @@ stdenv.mkDerivation rec {
 
   # WAF is probably the biggest crap on this planet, btw i removed the /gtk-2.0 path thingy
   configurePhase = ''
-    sed -e "s@{PYTHONDIR}/gtk-2.0@{PYTHONDIR}/@" -i gconf/wscript 
-    python waf configure --prefix=$out 
+    sed -e "s@{PYTHONDIR}/gtk-2.0@{PYTHONDIR}/@" -i gconf/wscript
+    python waf configure --prefix=$out
   '';
 
   buildPhase = ''
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
 
   installPhase = ''
     python waf install
+    cp bonobo/*.{py,defs} $out/share/pygtk/2.0/defs/
   '';
 
   buildInputs = [ python pkgconfig pygobject pygtk glib gtk GConf libgnome pythonDBus ];
diff --git a/pkgs/desktops/gnome-2/bindings/python-rsvg/default.nix b/pkgs/desktops/gnome-2/bindings/python-rsvg/default.nix
new file mode 100644
index 000000000000..c09ed74a97c0
--- /dev/null
+++ b/pkgs/desktops/gnome-2/bindings/python-rsvg/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, gnome, librsvg, pkgconfig, pygtk, python }:
+
+stdenv.mkDerivation rec {
+  version = "2.32";
+  name = "python-rsvg-${version}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-python-desktop/${version}/gnome-python-desktop-${version}.0.tar.gz";
+    sha256 = "1xhh3h1qdnimydvv55pmqwyzjchhjwfvp951sjlq0180kskqrlj5";
+  };
+
+  configurePhase = ''
+    sed -e "s@{PYTHONDIR}/gtk-2.0@{PYTHONDIR}/@" -i rsvg/wscript 
+    python waf configure --enable-modules=rsvg --prefix=$out 
+  '';
+
+  buildPhase = "python waf build";
+
+  installPhase = "python waf install";
+
+  buildInputs = [ gnome.gnome_python librsvg pkgconfig pygtk python ];
+
+  meta = with stdenv.lib; {
+    homepage = "http://www.pygtk.org";
+    description = "The rsvg python module";
+    license = licenses.lgpl21;
+    maintainers = [ maintainers.goibhniu ];
+  };
+}
diff --git a/pkgs/desktops/gnome-2/default.nix b/pkgs/desktops/gnome-2/default.nix
index 36d0860caa5d..3d76ba72daeb 100644
--- a/pkgs/desktops/gnome-2/default.nix
+++ b/pkgs/desktops/gnome-2/default.nix
@@ -29,8 +29,6 @@
 
   libgtkhtml = callPackage ./platform/libgtkhtml { };
 
-  intltool = callPackage ./platform/intltool { };
-
   GConf = callPackage ./platform/GConf { };
 
   gconfmm = callPackage ./platform/gconfmm { };
@@ -58,6 +56,8 @@
 
   libbonoboui = callPackage ./platform/libbonoboui { };
 
+  python_rsvg = callPackage ./bindings/python-rsvg { };
+
   at_spi = callPackage ./platform/at-spi { };
 
   gtkhtml = callPackage ./platform/gtkhtml { };
diff --git a/pkgs/desktops/gnome-2/desktop/gnome-icon-theme/default.nix b/pkgs/desktops/gnome-2/desktop/gnome-icon-theme/default.nix
index a1dbf78bba26..fffffcb0c2d0 100644
--- a/pkgs/desktops/gnome-2/desktop/gnome-icon-theme/default.nix
+++ b/pkgs/desktops/gnome-2/desktop/gnome-icon-theme/default.nix
@@ -10,5 +10,5 @@ stdenv.mkDerivation rec {
     sha256 = "cc7f15e54e2640697b58c26e74cc3f6ebadeb4ef6622bffe9c1e6874cc3478d6";
   };
   
-  buildNativeInputs = [ pkgconfig intltool iconnamingutils gtk ];
+  nativeBuildInputs = [ pkgconfig intltool iconnamingutils gtk ];
 }
diff --git a/pkgs/desktops/gnome-2/desktop/gnome-keyring/default.nix b/pkgs/desktops/gnome-2/desktop/gnome-keyring/default.nix
index a0c11d1b85e2..f31875bed91c 100644
--- a/pkgs/desktops/gnome-2/desktop/gnome-keyring/default.nix
+++ b/pkgs/desktops/gnome-2/desktop/gnome-keyring/default.nix
@@ -13,5 +13,5 @@ stdenv.mkDerivation {
 
   propagatedBuildInputs = [ glib libtasn1 ];
 
-  buildNativeInputs = [ pkgconfig intltool ];
+  nativeBuildInputs = [ pkgconfig intltool ];
 }
diff --git a/pkgs/desktops/gnome-2/desktop/gnome-panel/default.nix b/pkgs/desktops/gnome-2/desktop/gnome-panel/default.nix
index a1427d822834..6ca2a9142c15 100644
--- a/pkgs/desktops/gnome-2/desktop/gnome-panel/default.nix
+++ b/pkgs/desktops/gnome-2/desktop/gnome-panel/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation {
       libtasn1 libtool libcanberra
     ];
 
-  buildNativeInputs = [ pkgconfig intltool which ];
+  nativeBuildInputs = [ pkgconfig intltool which ];
   configureFlags = "--disable-scrollkeeper";
 
   NIX_CFLAGS_COMPILE="-I${GConf}/include/gconf/2";
diff --git a/pkgs/desktops/gnome-2/desktop/gnome-session/default.nix b/pkgs/desktops/gnome-2/desktop/gnome-session/default.nix
index 8704d22d2f27..ccabff27549f 100644
--- a/pkgs/desktops/gnome-2/desktop/gnome-session/default.nix
+++ b/pkgs/desktops/gnome-2/desktop/gnome-session/default.nix
@@ -13,5 +13,5 @@ stdenv.mkDerivation {
     [ dbus_glib gtk libXau libXtst inputproto libglade startup_notification
       GConf upower
     ];
-  buildNativeInputs = [ pkgconfig intltool ];
+  nativeBuildInputs = [ pkgconfig intltool ];
 }
diff --git a/pkgs/desktops/gnome-2/desktop/gnome-settings-daemon/default.nix b/pkgs/desktops/gnome-2/desktop/gnome-settings-daemon/default.nix
index 47ddde9029f2..dca3b3a16a2e 100644
--- a/pkgs/desktops/gnome-2/desktop/gnome-settings-daemon/default.nix
+++ b/pkgs/desktops/gnome-2/desktop/gnome-settings-daemon/default.nix
@@ -14,5 +14,5 @@ stdenv.mkDerivation {
       pulseaudio
     ];
 
-  buildNativeInputs = [ pkgconfig intltool ];
+  nativeBuildInputs = [ pkgconfig intltool ];
 }
diff --git a/pkgs/desktops/gnome-2/desktop/gvfs/default.nix b/pkgs/desktops/gnome-2/desktop/gvfs/default.nix
index 5455e95ef3f3..9e7949047c7f 100644
--- a/pkgs/desktops/gnome-2/desktop/gvfs/default.nix
+++ b/pkgs/desktops/gnome-2/desktop/gvfs/default.nix
@@ -1,19 +1,21 @@
 { stdenv, fetchurl, pkgconfig, dbus_libs, samba, libarchive, fuse, libgphoto2
 , libcdio, libxml2, libtool, glib, intltool, GConf, libgnome_keyring, libsoup
-, udev, avahi}:
+, udev, avahi, libxslt, docbook_xsl }:
 
-stdenv.mkDerivation {
-  name = "gvfs-1.10.1";
+stdenv.mkDerivation rec {
+  name = "gvfs-1.14.1";
 
   src = fetchurl {
-    url = mirror://gnome/sources/gvfs/1.10/gvfs-1.10.1.tar.xz;
-    sha256 = "124jrkph3cqr2pijmzzr6qwzy2vaq3vvndskzkxd0v5dwp7glc6d";
+    url = "mirror://gnome/sources/gvfs/1.14/${name}.tar.xz";
+    sha256 = "0af86cd7ee7b6daca144776bdf12f2f30d3e18fdd70b4da58e1a68cea4f6716a";
   };
 
   buildInputs =
     [ glib dbus_libs udev samba libarchive fuse libgphoto2 libcdio libxml2 GConf
-      libgnome_keyring libsoup avahi libtool
+      libgnome_keyring libsoup avahi libtool libxslt docbook_xsl
     ];
 
-  buildNativeInputs = [ pkgconfig intltool ];
+  nativeBuildInputs = [ pkgconfig intltool ];
+
+  enableParallelBuilding = true;
 }
diff --git a/pkgs/desktops/gnome-2/desktop/zenity/default.nix b/pkgs/desktops/gnome-2/desktop/zenity/default.nix
index 9e6785146894..3ab8838c97b6 100644
--- a/pkgs/desktops/gnome-2/desktop/zenity/default.nix
+++ b/pkgs/desktops/gnome-2/desktop/zenity/default.nix
@@ -12,5 +12,5 @@ stdenv.mkDerivation {
   configureFlags = "--disable-scrollkeeper";
   buildInputs = [ gtk libglade libxml2 libxslt libX11 ];
 
-  buildNativeInputs = [ pkgconfig intltool gnome_doc_utils which ];
+  nativeBuildInputs = [ pkgconfig intltool gnome_doc_utils which ];
 }
diff --git a/pkgs/desktops/gnome-2/platform/GConf/default.nix b/pkgs/desktops/gnome-2/platform/GConf/default.nix
index a75e089b5080..4769247a5162 100644
--- a/pkgs/desktops/gnome-2/platform/GConf/default.nix
+++ b/pkgs/desktops/gnome-2/platform/GConf/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation {
   buildInputs = [ ORBit2 dbus_libs dbus_glib libxml2 polkit gtk ];
   propagatedBuildInputs = [ glib ];
 
-  buildNativeInputs = [ pkgconfig intltool ];
+  nativeBuildInputs = [ pkgconfig intltool ];
 
   configureFlags = "--with-gtk=2.0";
 }
diff --git a/pkgs/desktops/gnome-2/platform/ORBit2/default.nix b/pkgs/desktops/gnome-2/platform/ORBit2/default.nix
index e58dd38e369e..ec6931724bc2 100644
--- a/pkgs/desktops/gnome-2/platform/ORBit2/default.nix
+++ b/pkgs/desktops/gnome-2/platform/ORBit2/default.nix
@@ -9,6 +9,6 @@ stdenv.mkDerivation rec {
     sha256 = "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam";
   };
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
   propagatedBuildInputs = [ glib libIDL ];
 }
diff --git a/pkgs/desktops/gnome-2/platform/gconfmm/default.nix b/pkgs/desktops/gnome-2/platform/gconfmm/default.nix
index 0597da92e68a..8f6075375d6d 100644
--- a/pkgs/desktops/gnome-2/platform/gconfmm/default.nix
+++ b/pkgs/desktops/gnome-2/platform/gconfmm/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "a5e0092bb73371a3ca76b2ecae794778f3a9409056fee9b28ec1db072d8e6108";
   };
 
-  buildNativeInputs = [pkgconfig];
+  nativeBuildInputs = [pkgconfig];
 
   propagatedBuildInputs = [ GConf gtkmm glibmm ];
 
diff --git a/pkgs/desktops/gnome-2/platform/gtkglext/default.nix b/pkgs/desktops/gnome-2/platform/gtkglext/default.nix
index 4eab4b8213c6..903387f50b14 100644
--- a/pkgs/desktops/gnome-2/platform/gtkglext/default.nix
+++ b/pkgs/desktops/gnome-2/platform/gtkglext/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, gtk, mesa, pango }:
+{ stdenv, fetchurl, pkgconfig, glib, gtk, mesa, pango, pangox_compat, xlibs }:
 
 stdenv.mkDerivation rec {
   name = "gtkglext-1.2.0";
@@ -8,7 +8,8 @@ stdenv.mkDerivation rec {
     sha256 = "0lbz96jwz57hnn52b8rfj54inwpwcc9fkdq6ya043cgnfih77g8n";
   };
 
-  buildInputs = [ pkgconfig gtk mesa pango ];
+  buildInputs = with xlibs;
+    [ pkgconfig glib gtk mesa pango pangox_compat libX11 libXmu ];
 
   # The library uses `GTK_WIDGET_REALIZED', `GTK_WIDGET_TOPLEVEL', and
   # `GTK_WIDGET_NO_WINDOW', all of which appear to be deprecated nowadays.
diff --git a/pkgs/desktops/gnome-2/platform/gtkglextmm/default.nix b/pkgs/desktops/gnome-2/platform/gtkglextmm/default.nix
index 38b816ccc77f..93bb44c54e1e 100644
--- a/pkgs/desktops/gnome-2/platform/gtkglextmm/default.nix
+++ b/pkgs/desktops/gnome-2/platform/gtkglextmm/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 
   patches = [ ./gdk.patch ];
 
-  buildNativeInputs = [pkgconfig];
+  nativeBuildInputs = [pkgconfig];
 
   propagatedBuildInputs = [ gtkglext gtkmm gtk mesa gdk_pixbuf ];
 
diff --git a/pkgs/desktops/gnome-2/platform/intltool/default.nix b/pkgs/desktops/gnome-2/platform/intltool/default.nix
deleted file mode 100644
index 51eaa4a2cf48..000000000000
--- a/pkgs/desktops/gnome-2/platform/intltool/default.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{stdenv, fetchurl, pkgconfig, perl, perlXMLParser, gettext}:
-
-stdenv.mkDerivation rec {
-  name = "intltool-0.40.6";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/intltool/0.40/intltool-0.40.6.tar.bz2;
-    sha256 = "0r1vkvy5xzqk01yl6a0xlrry39bra24alkrx6279b77hc62my7jd";
-  };
-
-  buildInputs = [ pkgconfig ];
-  propagatedBuildInputs = [ perl perlXMLParser gettext ];
-}
diff --git a/pkgs/desktops/gnome-2/platform/libIDL/default.nix b/pkgs/desktops/gnome-2/platform/libIDL/default.nix
index 5783976d9a22..64f2b19c3e9f 100644
--- a/pkgs/desktops/gnome-2/platform/libIDL/default.nix
+++ b/pkgs/desktops/gnome-2/platform/libIDL/default.nix
@@ -11,5 +11,5 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ glib gettext ];
 
-  buildNativeInputs = [ flex bison pkgconfig ];
+  nativeBuildInputs = [ flex bison pkgconfig ];
 }
diff --git a/pkgs/desktops/gnome-2/platform/libbonobo/default.nix b/pkgs/desktops/gnome-2/platform/libbonobo/default.nix
index bd268e5ec43a..79c41f924d3f 100644
--- a/pkgs/desktops/gnome-2/platform/libbonobo/default.nix
+++ b/pkgs/desktops/gnome-2/platform/libbonobo/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   };
 
   preConfigure = "export USER=`whoami`";
-  buildNativeInputs = [ flex bison pkgconfig intltool procps ];
+  nativeBuildInputs = [ flex bison pkgconfig intltool procps ];
   buildInputs = [ libxml2 ];
   propagatedBuildInputs = [ popt glib ORBit2 ];
 }
diff --git a/pkgs/desktops/gnome-2/platform/libbonoboui/default.nix b/pkgs/desktops/gnome-2/platform/libbonoboui/default.nix
index 6eefd42b38db..55a4ecec6959 100644
--- a/pkgs/desktops/gnome-2/platform/libbonoboui/default.nix
+++ b/pkgs/desktops/gnome-2/platform/libbonoboui/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     sha256 = "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs";
   };
 
-  buildNativeInputs = [ pkgconfig intltool ];
+  nativeBuildInputs = [ pkgconfig intltool ];
   buildInputs = [ bison popt gtk libxml2 GConf libglade libtool ];
   propagatedBuildInputs = [ libbonobo libgnomecanvas libgnome ];
 }
diff --git a/pkgs/desktops/gnome-2/platform/libgnome/default.nix b/pkgs/desktops/gnome-2/platform/libgnome/default.nix
index 76f213b5fa89..37dbfd129611 100644
--- a/pkgs/desktops/gnome-2/platform/libgnome/default.nix
+++ b/pkgs/desktops/gnome-2/platform/libgnome/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     sha256 = "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj";
   };
   
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ popt zlib intltool GConf gnome_vfs libcanberra libtool ];
   propagatedBuildInputs = [ glib libbonobo ];
 }
diff --git a/pkgs/desktops/gnome-2/platform/libgnomecanvas/default.nix b/pkgs/desktops/gnome-2/platform/libgnomecanvas/default.nix
index bf2c0360aa21..dd6ebbb91745 100644
--- a/pkgs/desktops/gnome-2/platform/libgnomecanvas/default.nix
+++ b/pkgs/desktops/gnome-2/platform/libgnomecanvas/default.nix
@@ -10,6 +10,6 @@ stdenv.mkDerivation rec {
   };
   
   buildInputs = [ libglade ];
-  buildNativeInputs = [ pkgconfig intltool ];
+  nativeBuildInputs = [ pkgconfig intltool ];
   propagatedBuildInputs = [ libart_lgpl gtk ];
 }
diff --git a/pkgs/desktops/gnome-2/platform/libgnomecups/default.nix b/pkgs/desktops/gnome-2/platform/libgnomecups/default.nix
index 0521ce9058fb..9a0afd1275d0 100644
--- a/pkgs/desktops/gnome-2/platform/libgnomecups/default.nix
+++ b/pkgs/desktops/gnome-2/platform/libgnomecups/default.nix
@@ -1,16 +1,16 @@
-{stdenv, fetchurl, pkgconfig, gtk, gettext, libxml2, intltool, libart_lgpl }:
+{ stdenv, fetchurl, pkgconfig, gtk, gettext, libxml2, intltool, libart_lgpl }:
 
-let
+stdenv.mkDerivation rec {
   name = "libgnomecups-0.2.3";
-in
-stdenv.mkDerivation {
-  inherit name;
 
   src = fetchurl {
     url = "mirror://gnome/sources/libgnomecups/0.2/${name}.tar.bz2";
     sha256 = "0a8xdaxzz2wc0n1fjcav65093gixzyac3948l8cxx1mk884yhc71";
   };
 
+  patches = [ ./glib.patch ];
+
   buildInputs = [ pkgconfig gtk gettext intltool libart_lgpl ];
+
   propagatedBuildInputs = [ libxml2 ];
 }
diff --git a/pkgs/desktops/gnome-2/platform/libgnomecups/glib.patch b/pkgs/desktops/gnome-2/platform/libgnomecups/glib.patch
new file mode 100644
index 000000000000..3f73af861c04
--- /dev/null
+++ b/pkgs/desktops/gnome-2/platform/libgnomecups/glib.patch
@@ -0,0 +1,38 @@
+From d84eee9450b3b6f6155074915efc61bedcc8d446 Mon Sep 17 00:00:00 2001
+From: Dominique Leuenberger <dimstar@opensuse.org>
+Date: Sun, 27 Nov 2011 21:36:41 +0100
+Subject: [PATCH] Fix: Only glib.h can be included
+
+---
+ libgnomecups/gnome-cups-i18n.c |    2 +-
+ libgnomecups/gnome-cups-init.h |    3 +--
+ 2 files changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/libgnomecups/gnome-cups-i18n.c b/libgnomecups/gnome-cups-i18n.c
+index 8987c5c..127756d 100644
+--- a/libgnomecups/gnome-cups-i18n.c
++++ b/libgnomecups/gnome-cups-i18n.c
+@@ -1,5 +1,5 @@
+ #include <config.h>
+-#include <glib/gmacros.h>
++#include <glib.h>
+ #include "gnome-cups-i18n.h"
+ 
+ #ifdef ENABLE_NLS
+diff --git a/libgnomecups/gnome-cups-init.h b/libgnomecups/gnome-cups-init.h
+index 22b682a..c4600fc 100644
+--- a/libgnomecups/gnome-cups-init.h
++++ b/libgnomecups/gnome-cups-init.h
+@@ -1,8 +1,7 @@
+ #ifndef GNOME_CUPS_INIT
+ #define GNOME_CUPS_INIT
+ 
+-#include <glib/gtypes.h>
+-#include <glib/gmacros.h>
++#include <glib.h>
+ 
+ G_BEGIN_DECLS
+ 
+-- 
+1.7.7
+
diff --git a/pkgs/desktops/gnome-2/platform/libgnomeprint/default.nix b/pkgs/desktops/gnome-2/platform/libgnomeprint/default.nix
index 410e408baa3d..0b6d3e25e2e7 100644
--- a/pkgs/desktops/gnome-2/platform/libgnomeprint/default.nix
+++ b/pkgs/desktops/gnome-2/platform/libgnomeprint/default.nix
@@ -1,11 +1,8 @@
-{stdenv, fetchurl, pkgconfig, gtk, gettext, libxml2, intltool, libart_lgpl, libgnomecups, bison,
-flex }:
+{ stdenv, fetchurl, pkgconfig, gtk, gettext, libxml2, intltool, libart_lgpl
+, libgnomecups, bison, flex }:
 
-let
+stdenv.mkDerivation rec {
   name = "libgnomeprint-2.18.8";
-in
-stdenv.mkDerivation {
-  inherit name;
 
   src = fetchurl {
     url = "mirror://gnome/sources/libgnomeprint/2.18/${name}.tar.bz2";
@@ -15,5 +12,6 @@ stdenv.mkDerivation {
   patches = [ ./bug653388.patch ];
 
   buildInputs = [ pkgconfig gtk gettext intltool libart_lgpl libgnomecups bison flex ];
+
   propagatedBuildInputs = [ libxml2 ];
 }
diff --git a/pkgs/desktops/gnome-2/platform/libgnomeui/default.nix b/pkgs/desktops/gnome-2/platform/libgnomeui/default.nix
index 379602c6ea37..cc8db43ad130 100644
--- a/pkgs/desktops/gnome-2/platform/libgnomeui/default.nix
+++ b/pkgs/desktops/gnome-2/platform/libgnomeui/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf";
   };
   
-  buildNativeInputs = [ pkgconfig intltool ];
+  nativeBuildInputs = [ pkgconfig intltool ];
   buildInputs =
     [ xlibs.xlibs libxml2 GConf pango glib libgnome_keyring libglade libtool ];
 
diff --git a/pkgs/desktops/gnome-2/platform/libunique/default.nix b/pkgs/desktops/gnome-2/platform/libunique/default.nix
index 2661307c9d2a..6b9cee800429 100644
--- a/pkgs/desktops/gnome-2/platform/libunique/default.nix
+++ b/pkgs/desktops/gnome-2/platform/libunique/default.nix
@@ -9,6 +9,6 @@ stdenv.mkDerivation rec {
     sha256 = "1fsgvmncd9caw552lyfg8swmsd6bh4ijjsph69bwacwfxwf09j75";
   };
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ gtk ];
 }
diff --git a/pkgs/desktops/kde-3/kdelibs/default.nix b/pkgs/desktops/kde-3/kdelibs/default.nix
deleted file mode 100644
index 2c9e8e3563a8..000000000000
--- a/pkgs/desktops/kde-3/kdelibs/default.nix
+++ /dev/null
@@ -1,51 +0,0 @@
-{ stdenv, fetchurl, xlibs, zlib, perl, qt3, openssl, pcre
-, pkgconfig, libtiff, libxml2, libxslt, libtool, expat
-, freetype, bzip2, cups, attr, acl
-}:
-
-let version = "3.5.10"; in
-
-stdenv.mkDerivation {
-  name = "kdelibs-${version}";
-  
-  src = fetchurl {
-    url = "mirror://kde/stable/${version}/src/kdelibs-${version}.tar.bz2";
-    sha256 = "0wjw51r96h6rngbsrzndw890xggzvrakydsbaldlrvbh3jq9qzk1";
-  };
-
-  patches = [
-    # We're not supposed to use linux/inotify.h, use sys/inotify.h instead.
-    # Adapted from Gentoo.
-    ./inotify.patch
-    
-    # Fixes compilation issues with openssl-1.0.0
-    ./kdelibs-3.5.10-openssl_1.0.0.patch
-  ];
-
-  buildInputs = [
-    zlib perl qt3 openssl pcre pkgconfig libtiff libxml2
-    libxslt expat libtool freetype bzip2 cups
-    xlibs.libX11 xlibs.libXt xlibs.libXext xlibs.libXrender xlibs.libXft
-  ];
-
-  propagatedBuildInputs = [attr acl];
-
-  # Prevent configure from looking for pkg-config and freetype-config
-  # in the wrong location (it looks in /usr/bin etc. *before* looking
-  # in $PATH).
-  preConfigure = ''
-    substituteInPlace configure \
-      --replace /usr/bin /no-such-path \
-      --replace /usr/local/bin /no-such-path \
-      --replace /opt/local/bin /no-such-path
-  '';
-
-  configureFlags = ''
-    --without-arts 
-    --with-ssl-dir=${openssl}
-    --x-includes=${xlibs.libX11}/include
-    --x-libraries=${xlibs.libX11}/lib
-  '';
-
-  meta.platforms = stdenv.lib.platforms.linux;
-}
diff --git a/pkgs/desktops/kde-3/kdelibs/inotify.patch b/pkgs/desktops/kde-3/kdelibs/inotify.patch
deleted file mode 100644
index 3d0b470811af..000000000000
--- a/pkgs/desktops/kde-3/kdelibs/inotify.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-diff -rc kdelibs-3.5.10-orig/kio/kio/kdirwatch.cpp kdelibs-3.5.10/kio/kio/kdirwatch.cpp
-*** kdelibs-3.5.10-orig/kio/kio/kdirwatch.cpp	2006-07-22 10:16:37.000000000 +0200
---- kdelibs-3.5.10/kio/kio/kdirwatch.cpp	2009-04-01 13:26:48.000000000 +0200
-***************
-*** 64,74 ****
-  // debug
-  #include <sys/ioctl.h>
-  
-! #ifdef HAVE_INOTIFY
-  #include <unistd.h>
-  #include <fcntl.h>
-  #include <sys/syscall.h>
-- #include <linux/types.h>
-  // Linux kernel headers are documented to not compile
-  #define _S390_BITOPS_H
-  #include <linux/inotify.h>
---- 64,76 ----
-  // debug
-  #include <sys/ioctl.h>
-  
-! #if 1
-! #include <sys/inotify.h>
-! #include <fcntl.h>
-! #elif HAVE_INOTIFY
-  #include <unistd.h>
-  #include <fcntl.h>
-  #include <sys/syscall.h>
-  // Linux kernel headers are documented to not compile
-  #define _S390_BITOPS_H
-  #include <linux/inotify.h>
diff --git a/pkgs/desktops/kde-3/kdelibs/kdelibs-3.5.10-openssl_1.0.0.patch b/pkgs/desktops/kde-3/kdelibs/kdelibs-3.5.10-openssl_1.0.0.patch
deleted file mode 100644
index 7a3a96e972f8..000000000000
--- a/pkgs/desktops/kde-3/kdelibs/kdelibs-3.5.10-openssl_1.0.0.patch
+++ /dev/null
@@ -1,180 +0,0 @@
-diff -Naur kdelibs-3.5.10-old/kio/kssl/kopenssl.cc kdelibs-3.5.10-new/kio/kssl/kopenssl.cc
---- kdelibs-3.5.10-old/kio/kssl/kopenssl.cc	2006-07-22 01:16:39.000000000 -0700
-+++ kdelibs-3.5.10-new/kio/kssl/kopenssl.cc	2010-03-31 09:34:38.000000000 -0700
-@@ -96,9 +96,14 @@
- static int (*K_PEM_ASN1_write_bio) (int (*)(),const char *,BIO *,char *,
-                                    const EVP_CIPHER *,unsigned char *,int ,
-                                             pem_password_cb *, void *) = 0L;
-+#if OPENSSL_VERSION_NUMBER >= 0x10000000L
-+static int (*K_ASN1_item_i2d_fp)(ASN1_ITEM *,FILE *,unsigned char *) = 0L;
-+static ASN1_ITEM *K_NETSCAPE_X509_it = 0L;
-+#else
- static ASN1_METHOD* (*K_X509_asn1_meth) (void) = 0L;
- static int (*K_ASN1_i2d_fp)(int (*)(),FILE *,unsigned char *) = 0L;
- static int (*K_i2d_ASN1_HEADER)(ASN1_HEADER *, unsigned char **) = 0L;
-+#endif
- static int (*K_X509_print_fp)  (FILE *, X509*) = 0L;
- static int (*K_i2d_PKCS12)  (PKCS12*, unsigned char**) = 0L;
- static int (*K_i2d_PKCS12_fp)  (FILE *, PKCS12*) = 0L;
-@@ -404,9 +409,14 @@
-       K_BIO_ctrl = (long (*) (BIO *,int,long,void *)) _cryptoLib->symbol("BIO_ctrl");
-       K_BIO_write = (int (*) (BIO *b, const void *data, int len)) _cryptoLib->symbol("BIO_write");
-       K_PEM_ASN1_write_bio = (int (*)(int (*)(), const char *,BIO*, char*, const EVP_CIPHER *, unsigned char *, int, pem_password_cb *, void *)) _cryptoLib->symbol("PEM_ASN1_write_bio");
-+#if OPENSSL_VERSION_NUMBER >= 0x10000000L
-+      K_ASN1_item_i2d_fp = (int (*)(ASN1_ITEM *, FILE*, unsigned char *)) _cryptoLib->symbol("ASN1_item_i2d_fp");
-+      K_NETSCAPE_X509_it = (ASN1_ITEM *) _cryptoLib->symbol("NETSCAPE_X509_it");
-+#else
-       K_X509_asn1_meth = (ASN1_METHOD* (*)(void)) _cryptoLib->symbol("X509_asn1_meth");
-       K_ASN1_i2d_fp = (int (*)(int (*)(), FILE*, unsigned char *)) _cryptoLib->symbol("ASN1_i2d_fp");
-       K_i2d_ASN1_HEADER = (int (*)(ASN1_HEADER *, unsigned char **)) _cryptoLib->symbol("i2d_ASN1_HEADER");
-+#endif
-       K_X509_print_fp = (int (*)(FILE*, X509*)) _cryptoLib->symbol("X509_print_fp");
-       K_i2d_PKCS12 = (int (*)(PKCS12*, unsigned char**)) _cryptoLib->symbol("i2d_PKCS12");
-       K_i2d_PKCS12_fp = (int (*)(FILE *, PKCS12*)) _cryptoLib->symbol("i2d_PKCS12_fp");
-@@ -568,7 +578,7 @@
-       K_SSL_set_session = (int (*)(SSL*,SSL_SESSION*)) _sslLib->symbol("SSL_set_session");
-       K_d2i_SSL_SESSION = (SSL_SESSION* (*)(SSL_SESSION**,unsigned char**, long)) _sslLib->symbol("d2i_SSL_SESSION");
-       K_i2d_SSL_SESSION = (int (*)(SSL_SESSION*,unsigned char**)) _sslLib->symbol("i2d_SSL_SESSION");
--      K_SSL_get_ciphers = (STACK *(*)(const SSL*)) _sslLib->symbol("SSL_get_ciphers");
-+      K_SSL_get_ciphers = (STACK_OF(SSL_CIPHER) *(*)(const SSL*)) _sslLib->symbol("SSL_get_ciphers");
- #endif
- 
- 
-@@ -956,7 +966,13 @@
-    else return -1;
- }
- 
--
-+#if OPENSSL_VERSION_NUMBER >= 0x10000000L
-+int KOpenSSLProxy::ASN1_i2d_fp(FILE *out,unsigned char *x) {
-+   if (K_ASN1_item_i2d_fp && K_NETSCAPE_X509_it)
-+        return (K_ASN1_item_i2d_fp)(K_NETSCAPE_X509_it, out, x);
-+   else return -1;
-+}
-+#else
- ASN1_METHOD *KOpenSSLProxy::X509_asn1_meth(void) {
-    if (K_X509_asn1_meth) return (K_X509_asn1_meth)();
-    else return 0L;
-@@ -968,7 +984,7 @@
-         return (K_ASN1_i2d_fp)((int (*)())K_i2d_ASN1_HEADER, out, x);
-    else return -1;
- }
--
-+#endif
- 
- int KOpenSSLProxy::X509_print(FILE *fp, X509 *x) {
-    if (K_X509_print_fp) return (K_X509_print_fp)(fp, x);
-diff -Naur kdelibs-3.5.10-old/kio/kssl/kopenssl.h kdelibs-3.5.10-new/kio/kssl/kopenssl.h
---- kdelibs-3.5.10-old/kio/kssl/kopenssl.h	2006-07-22 01:16:39.000000000 -0700
-+++ kdelibs-3.5.10-new/kio/kssl/kopenssl.h	2010-03-31 09:35:20.000000000 -0700
-@@ -48,6 +48,9 @@
- #include <openssl/stack.h>
- #include <openssl/bn.h>
- #undef crypt
-+#if OPENSSL_VERSION_NUMBER >= 0x10000000L
-+#define STACK _STACK
-+#endif
- #endif
- 
- #include <kstaticdeleter.h>
-@@ -446,12 +449,12 @@
-     */
-    int PEM_write_bio_X509(BIO *bp, X509 *x);
- 
--
-+#if OPENSSL_VERSION_NUMBER < 0x10000000L
-    /*
-     *   X509_asn1_meth - used for netscape output
-     */
-    ASN1_METHOD *X509_asn1_meth();
--
-+#endif
- 
-    /*
-     *   ASN1_i2d_fp - used for netscape output
-@@ -531,6 +534,9 @@
-     */
-    void sk_free(STACK *s);
- 
-+#if OPENSSL_VERSION_NUMBER >= 0x10000000L
-+   void sk_free(void *s) { return sk_free(reinterpret_cast<STACK*>(s)); }
-+#endif
- 
-    /* 
-     *  Number of elements in the stack
-@@ -543,6 +549,9 @@
-     */
-    char *sk_value(STACK *s, int n);
- 
-+#if OPENSSL_VERSION_NUMBER >= 0x10000000L
-+   char *sk_value(void *s, int n) { return sk_value(reinterpret_cast<STACK*>(s), n); }
-+#endif
- 
-    /* 
-     *  Create a new stack
-@@ -555,6 +564,9 @@
-     */
-    int sk_push(STACK *s, char *d);
- 
-+#if OPENSSL_VERSION_NUMBER >= 0x10000000L
-+   int sk_push(void *s, void *d) { return sk_push(reinterpret_cast<STACK*>(s), reinterpret_cast<char*>(d)); }
-+#endif
- 
-    /* 
-     *  Duplicate the stack
-diff -Naur kdelibs-3.5.10-old/kio/kssl/ksmimecrypto.cc kdelibs-3.5.10-new/kio/kssl/ksmimecrypto.cc
---- kdelibs-3.5.10-old/kio/kssl/ksmimecrypto.cc	2005-10-10 08:05:44.000000000 -0700
-+++ kdelibs-3.5.10-new/kio/kssl/ksmimecrypto.cc	2010-03-31 09:34:38.000000000 -0700
-@@ -87,7 +87,7 @@
- 
- 
- STACK_OF(X509) *KSMIMECryptoPrivate::certsToX509(QPtrList<KSSLCertificate> &certs) {
--    STACK_OF(X509) *x509 = sk_new(NULL);
-+    STACK_OF(X509) *x509 = reinterpret_cast<STACK_OF(X509)*>(sk_new(NULL));
-     KSSLCertificate *cert = certs.first();
-     while(cert) {
- 	sk_X509_push(x509, cert->getCert());
-diff -Naur kdelibs-3.5.10-old/kio/kssl/ksslcertificate.cc kdelibs-3.5.10-new/kio/kssl/ksslcertificate.cc
---- kdelibs-3.5.10-old/kio/kssl/ksslcertificate.cc	2006-01-19 09:06:12.000000000 -0800
-+++ kdelibs-3.5.10-new/kio/kssl/ksslcertificate.cc	2010-03-31 09:34:38.000000000 -0700
-@@ -1003,17 +1003,31 @@
- QByteArray KSSLCertificate::toNetscape() {
- QByteArray qba;
- #ifdef KSSL_HAVE_SSL
--ASN1_HEADER ah;
--ASN1_OCTET_STRING os;
--KTempFile ktf;
-+#if OPENSSL_VERSION_NUMBER >= 0x10000000L
-+	NETSCAPE_X509 nx;
-+	ASN1_OCTET_STRING hdr;
-+#else
-+   ASN1_HEADER ah;
-+   ASN1_OCTET_STRING os;
-+#endif
-+	KTempFile ktf;
- 
--	os.data = (unsigned char *)NETSCAPE_CERT_HDR;
--	os.length = strlen(NETSCAPE_CERT_HDR);
--	ah.header = &os;
--	ah.data = (char *)getCert();
--	ah.meth = d->kossl->X509_asn1_meth();
-+#if OPENSSL_VERSION_NUMBER >= 0x10000000L
-+	hdr.data = (unsigned char *)NETSCAPE_CERT_HDR;
-+	hdr.length = strlen(NETSCAPE_CERT_HDR);
-+	nx.header = &hdr;
-+	nx.cert = getCert();
-+
-+	d->kossl->ASN1_i2d_fp(ktf.fstream(),(unsigned char *)&nx);
-+#else
-+   os.data = (unsigned char *)NETSCAPE_CERT_HDR;
-+   os.length = strlen(NETSCAPE_CERT_HDR);
-+   ah.header = &os;
-+   ah.data = (char *)getCert();
-+   ah.meth = d->kossl->X509_asn1_meth();
- 
--	d->kossl->ASN1_i2d_fp(ktf.fstream(),(unsigned char *)&ah);
-+   d->kossl->ASN1_i2d_fp(ktf.fstream(),(unsigned char *)&ah);
-+#endif
- 
- 	ktf.close();
- 
diff --git a/pkgs/desktops/kde-4.7/kde-wallpapers.nix b/pkgs/desktops/kde-4.7/kde-wallpapers.nix
index 97773ffadcd5..57f2b643aa4d 100644
--- a/pkgs/desktops/kde-4.7/kde-wallpapers.nix
+++ b/pkgs/desktops/kde-4.7/kde-wallpapers.nix
@@ -1,7 +1,7 @@
 { kde, cmake }:
 
 kde {
-  buildNativeInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
 
   patches = [ ./files/kde-wallpapers-buildsystem.patch ];
 
diff --git a/pkgs/desktops/kde-4.7/kde-workspace.nix b/pkgs/desktops/kde-4.7/kde-workspace.nix
index 8116f4bb6b59..827307029890 100644
--- a/pkgs/desktops/kde-4.7/kde-workspace.nix
+++ b/pkgs/desktops/kde-4.7/kde-workspace.nix
@@ -1,6 +1,6 @@
 { kde, kdelibs, qimageblitz, libdbusmenu_qt, xorg, shared_desktop_ontologies
 , lm_sensors, pciutils, libraw1394, libusb, libxklavier, python, libqalculate
-, consolekit, xkeyboard_config, kdepimlibs, pam, boost, gpsd, prison, akonadi
+, xkeyboard_config, kdepimlibs, pam, boost, gpsd, prison, akonadi
 , pykde4, libjpeg, pkgconfig, libXft, libXxf86misc
 }:
 
@@ -12,10 +12,10 @@ kde {
       xorg.libXcomposite xorg.libXdamage xorg.libXau xorg.libXdmcp
       xorg.libpthreadstubs
       boost gpsd shared_desktop_ontologies lm_sensors pciutils libraw1394
-      libusb python libqalculate consolekit kdepimlibs pam prison akonadi
+      libusb python libqalculate kdepimlibs pam prison akonadi
     ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   preConfigure =
    ''
diff --git a/pkgs/desktops/kde-4.7/kdeartwork/kscreensaver.nix b/pkgs/desktops/kde-4.7/kdeartwork/kscreensaver.nix
index 72676e35f715..7028b9db228d 100644
--- a/pkgs/desktops/kde-4.7/kdeartwork/kscreensaver.nix
+++ b/pkgs/desktops/kde-4.7/kdeartwork/kscreensaver.nix
@@ -3,7 +3,7 @@
 kde {
   buildInputs = [ kdelibs xscreensaver kde_workspace eigen libkexiv2 libXt ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   preConfigure = "cp -v ${./FindXscreensaver.cmake} cmake/modules/FindXscreensaver.cmake";
 
diff --git a/pkgs/desktops/kde-4.7/kdebindings/perlqt.nix b/pkgs/desktops/kde-4.7/kdebindings/perlqt.nix
deleted file mode 100644
index 13c145f32753..000000000000
--- a/pkgs/desktops/kde-4.7/kdebindings/perlqt.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ kde, cmake, smokeqt, perl }:
-
-kde {
-  buildInputs = [ smokeqt perl ];
-  buildNativeInputs = [ cmake ];
-
-  meta = {
-    description = "Perl bindings for Qt library";
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/kdebindings/smokegen.nix b/pkgs/desktops/kde-4.7/kdebindings/smokegen.nix
index df26eb2717eb..43f54b552e5a 100644
--- a/pkgs/desktops/kde-4.7/kdebindings/smokegen.nix
+++ b/pkgs/desktops/kde-4.7/kdebindings/smokegen.nix
@@ -2,7 +2,7 @@
 
 kde {
   buildInputs = [ qt4 ];
-  buildNativeInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
 
   patchPhase = "sed -e /RPATH/d -i CMakeLists.txt";
 
diff --git a/pkgs/desktops/kde-4.7/kdebindings/smokekde.nix b/pkgs/desktops/kde-4.7/kdebindings/smokekde.nix
deleted file mode 100644
index c49a77a48ed6..000000000000
--- a/pkgs/desktops/kde-4.7/kdebindings/smokekde.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ kde, kdelibs, smokeqt }:
-
-kde {
-  propagatedBuildInputs = [ kdelibs smokeqt ];
-
-  meta = {
-    description = "C++ parser used to generate language bindings for Qt/KDE";
-    license = "GPLv2";
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/kdebindings/smokeqt.nix b/pkgs/desktops/kde-4.7/kdebindings/smokeqt.nix
index 0d0aa816a941..29e25093d11b 100644
--- a/pkgs/desktops/kde-4.7/kdebindings/smokeqt.nix
+++ b/pkgs/desktops/kde-4.7/kdebindings/smokeqt.nix
@@ -2,8 +2,8 @@
 
 kde {
   propagatedBuildInputs = [ qt4 phonon qimageblitz ];
-  buildNativeInputs = [ cmake ];
-  propagatedBuildNativeInputs = [ smokegen ];
+  nativeBuildInputs = [ cmake ];
+  propagatedNativeBuildInputs = [ smokegen ];
 
   meta = {
     description = "C++ parser used to generate language bindings for Qt/KDE";
diff --git a/pkgs/desktops/kde-4.7/kdegames.nix b/pkgs/desktops/kde-4.7/kdegames.nix
index 03ecfbd88b4b..dfca49be12fd 100644
--- a/pkgs/desktops/kde-4.7/kdegames.nix
+++ b/pkgs/desktops/kde-4.7/kdegames.nix
@@ -7,7 +7,7 @@ kde rec {
 
   pythonPath = [ pythonPackages.twisted pykde4 ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   # TODO: ggz
 
diff --git a/pkgs/desktops/kde-4.7/kdegraphics/gwenview.nix b/pkgs/desktops/kde-4.7/kdegraphics/gwenview.nix
index b6b659c39474..c03c82469e66 100644
--- a/pkgs/desktops/kde-4.7/kdegraphics/gwenview.nix
+++ b/pkgs/desktops/kde-4.7/kdegraphics/gwenview.nix
@@ -6,7 +6,7 @@ kde {
   buildInputs =
     [ kdelibs exiv2 shared_desktop_ontologies kde_baseapps libkipi libjpeg ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   meta = {
     description = "Gwenview, the KDE image viewer";
diff --git a/pkgs/desktops/kde-4.7/kdelibs.nix b/pkgs/desktops/kde-4.7/kdelibs.nix
index 31df83e5ee92..41a648d10561 100644
--- a/pkgs/desktops/kde-4.7/kdelibs.nix
+++ b/pkgs/desktops/kde-4.7/kdelibs.nix
@@ -1,4 +1,4 @@
-{ kde, gcc, cmake, perl
+{ kde, gcc, cmake, perl, aspell
 , qt4, bzip2, pcre, fam, libxml2, libxslt, shared_mime_info, giflib, jasper
 , openexr, avahi, kerberos, acl, attr, shared_desktop_ontologies, libXScrnSaver
 , automoc4, strigi, soprano, qca2, attica, enchant, libdbusmenu_qt
@@ -10,12 +10,12 @@ kde {
   buildInputs =
     [ acl attr attica avahi bzip2 enchant fam getopt giflib herqq jasper
       libdbusmenu_qt libXScrnSaver libxslt pcre polkit_qt_1 qca2
-      shared_desktop_ontologies xz udev libxml2 libjpeg kerberos
+      shared_desktop_ontologies xz udev libxml2 libjpeg kerberos aspell
     ];
 
   propagatedBuildInputs = [ qt4 soprano strigi phonon ];
 
-  propagatedBuildNativeInputs = [ automoc4 cmake perl shared_mime_info ];
+  propagatedNativeBuildInputs = [ automoc4 cmake perl shared_mime_info ];
 
   # TODO: make sonnet plugins (dictionaries) really work.
   # There are a few hardcoded paths.
diff --git a/pkgs/desktops/kde-4.7/kdenetwork/kopete.nix b/pkgs/desktops/kde-4.7/kdenetwork/kopete.nix
index 704f6d04dfe2..440e8595704a 100644
--- a/pkgs/desktops/kde-4.7/kdenetwork/kopete.nix
+++ b/pkgs/desktops/kde-4.7/kdenetwork/kopete.nix
@@ -7,7 +7,7 @@ kde {
     jasper libidn mediastreamer msilbc libxml2 libxslt giflib libgadu boost qca2
     gpgme sqlite ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   KDEDIRS = libktorrent;
 
diff --git a/pkgs/desktops/kde-4.7/kdenetwork/log-feature.diff b/pkgs/desktops/kde-4.7/kdenetwork/log-feature.diff
deleted file mode 100644
index 6770dd399e33..000000000000
--- a/pkgs/desktops/kde-4.7/kdenetwork/log-feature.diff
+++ /dev/null
@@ -1,60 +0,0 @@
---- a/kget/CMakeLists.txt	2010-08-16 19:08:36.000000000 +0400
-+++ b/kget/CMakeLists.txt	2010-08-16 22:04:24.000000000 +0400
-@@ -53,21 +53,20 @@
- add_subdirectory(desktop)
- add_subdirectory(plasma)
- 
--# find kworkspace library to allow the shutdown after downloads completed option
--find_library(KDE4_KWORKSPACE_LIBRARY NAMES kworkspace PATHS ${KDE4_LIB_INSTALL_DIR} NO_DEFAULT_PATH )
--if(KDE4_KWORKSPACE_LIBRARY)
--    set(KDE4_KWORKSPACE_LIBS ${kworkspace_LIB_DEPENDS} ${KDE4_KWORKSPACE_LIBRARY})
-+macro_optional_find_package(KDE4Workspace)
-+macro_log_feature(KDE4WORKSPACE_FOUND "KDE4Workspace" "KDE4 workspace libraries, part of kdebase-workspace" "http://www.kde.org" FALSE "" "Allows 'shutdown after downloads completed' in kget")
-+if(KDE4WORKSPACE_FOUND)
-     add_definitions(-DHAVE_KWORKSPACE)
--    set(KWORKSPACE_FOUND true)
--endif(KDE4_KWORKSPACE_LIBRARY)
-+	include_directories(${KDE4WORKSPACE_INCLUDE_DIR})
-+endif(KDE4WORKSPACE_FOUND)
- 
- # find libkonq to allow actions and open with options in the context menu of a transfer
--find_library(KDE4_KONQUEROR_LIBRARY NAMES konq PATHS ${KDE4_LIB_INSTALL_DIR} NO_DEFAULT_PATH )
--if(KDE4_KONQUEROR_LIBRARY)
--    set(KDE4_KONQUEROR_LIBS ${konq_LIB_DEPENDS} ${KDE4_KONQUEROR_LIBRARY})
-+macro_optional_find_package(LibKonq)
-+macro_log_feature(LIBKONQ_FOUND "libkonq" "KDE4 Konqueror library" "http://www.kde.org" FALSE "" "Needed to build actions and open with options in the context menu of a transfer")
-+if(LIBKONQ_FOUND)
-     add_definitions(-DHAVE_KONQUEROR)
--    set(KONQUEROR_FOUND true)
--endif(KDE4_KONQUEROR_LIBRARY)
-+	include_directories(${LIBKONQ_INCLUDE_DIR})
-+endif(LIBKONQ_FOUND)
- 
- 
- include_directories(
-@@ -142,9 +141,9 @@
- 
- target_link_libraries(kgetcore ${KDE4_KIO_LIBS})
- 
--if (KWORKSPACE_FOUND)
--    target_link_libraries(kgetcore ${KDE4_KWORKSPACE_LIBS})
--endif (KWORKSPACE_FOUND)
-+if (KDE4WORKSPACE_FOUND)
-+    target_link_libraries(kgetcore ${KDE4WORKSPACE_KWORKSPACE_LIBS})
-+endif (KDE4WORKSPACE_FOUND)
- 
- if (HAVE_NEPOMUK)
-   target_link_libraries(kgetcore ${SOPRANO_LIBRARIES} ${NEPOMUK_LIBRARIES})
-@@ -294,9 +293,9 @@
-   target_link_libraries(kget ${SOPRANO_LIBRARIES} ${NEPOMUK_LIBRARIES})
- endif (HAVE_NEPOMUK)
- 
--if (KONQUEROR_FOUND)
--  target_link_libraries(kget ${KDE4_KONQUEROR_LIBS})
--endif (KONQUEROR_FOUND)
-+if (LIBKONQ_FOUND)
-+  target_link_libraries(kget ${LIBKONQ_LIBRARY})
-+endif (LIBKONQ_FOUND)
- 
- if (QGPGME_FOUND)
-   target_link_libraries(kget ${QGPGME_LIBRARIES})
diff --git a/pkgs/desktops/kde-4.7/kdeplasma-addons.nix b/pkgs/desktops/kde-4.7/kdeplasma-addons.nix
index ddffa48dc55b..30a32b465b60 100644
--- a/pkgs/desktops/kde-4.7/kdeplasma-addons.nix
+++ b/pkgs/desktops/kde-4.7/kdeplasma-addons.nix
@@ -11,7 +11,7 @@ kde {
     attica python qca2 qimageblitz kdepimlibs
     libqalculate libXtst shared_desktop_ontologies marble libkexiv2];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   meta = {
     description = "KDE Plasma Addons";
diff --git a/pkgs/desktops/kde-4.7/kdesdk/optional-docs.diff b/pkgs/desktops/kde-4.7/kdesdk/optional-docs.diff
deleted file mode 100644
index f67e1f4cdd8e..000000000000
--- a/pkgs/desktops/kde-4.7/kdesdk/optional-docs.diff
+++ /dev/null
@@ -1,39 +0,0 @@
-diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt
-index 63cdef8..0c5b50a 100644
---- a/doc/CMakeLists.txt
-+++ b/doc/CMakeLists.txt
-@@ -3,22 +3,30 @@ if( UNIX )
-     add_subdirectory(cervisia)
-   endif()
- endif( UNIX )
--add_subdirectory(kapptemplate)
-+if(BUILD_kapptemplate)
-+  add_subdirectory(kapptemplate)
-+endif()
- if(BUILD_kbugbuster)
-   add_subdirectory(kbugbuster)
- endif()
- if(BUILD_kcachegrind)
-   add_subdirectory(kcachegrind)
- endif()
--add_subdirectory(kmtrace)
-+if(BUILD_kmtrace)
-+  add_subdirectory(kmtrace)
-+endif()
- if(BUILD_kompare)
-   add_subdirectory(kompare)
- endif()
- if(BUILD_lokalize)
-   add_subdirectory(lokalize)
- endif()
--add_subdirectory(poxml)
--add_subdirectory(scripts)
-+if(BUILD_poxml)
-+  add_subdirectory(poxml)
-+endif()
-+if(BUILD_scripts)
-+  add_subdirectory(scripts)
-+endif()
- 
- if(LIBXSLT_FOUND AND LIBXML2_FOUND)
-   if(BUILD_umbrello)
diff --git a/pkgs/desktops/kde-4.7/kipi-plugins.nix b/pkgs/desktops/kde-4.7/kipi-plugins.nix
deleted file mode 100644
index ea237a5d718e..000000000000
--- a/pkgs/desktops/kde-4.7/kipi-plugins.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ stdenv, fetchurl, cmake, kdelibs, qt4, automoc4, phonon, libkexiv2
-, libkdcraw, libkipi, gettext, libxml2, libxslt, qjson, qca2
-, kdepimlibs }:
-
-stdenv.mkDerivation rec {
-  name = "kipi-plugins-1.9.0";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/kipi/${name}.tar.bz2";
-    sha256 = "0k4k9v1rj7129n0s0i5pvv4rabx0prxqs6sca642fj95cxc6c96m";
-  };
-
-  buildInputs =
-    # Some dependencies are missing because they are very big (OpenCV,
-    # GTK).
-    [ cmake kdelibs qt4 automoc4 phonon libkexiv2 libkdcraw libkipi
-      gettext libxml2 libxslt qjson qca2 kdepimlibs
-    ];
-
-  enableParallelBuilding = true;
-
-  meta = {
-    description = "Photo Management Program";
-    license = "GPL";
-    homepage = http://www.kipi-plugins.org;
-    inherit (kdelibs.meta) platforms;
-    maintainers = with stdenv.lib.maintainers; [ viric urkud ];
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/oxygen-icons.nix b/pkgs/desktops/kde-4.7/oxygen-icons.nix
index f2a5e666232d..1f7572b4d8ee 100644
--- a/pkgs/desktops/kde-4.7/oxygen-icons.nix
+++ b/pkgs/desktops/kde-4.7/oxygen-icons.nix
@@ -5,7 +5,7 @@ kde {
   outputHashMode = "recursive";
   outputHash = "0c12c72bcf41cfaf03f85fc1ae27e44d8cecac3deb504ab1de4c30f4fc9e3cd0";
 
-  buildNativeInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
 
   meta = {
     description = "KDE Oxygen theme icons";
diff --git a/pkgs/desktops/kde-4.7/support/akonadi/default.nix b/pkgs/desktops/kde-4.7/support/akonadi/default.nix
index 38ec7f859076..cf5155096027 100644
--- a/pkgs/desktops/kde-4.7/support/akonadi/default.nix
+++ b/pkgs/desktops/kde-4.7/support/akonadi/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ qt4 soprano libxslt boost ];
 
-  buildNativeInputs = [ cmake automoc4 shared_mime_info ];
+  nativeBuildInputs = [ cmake automoc4 shared_mime_info ];
 
   enableParallelBuilding = true;
   
diff --git a/pkgs/desktops/kde-4.8/kde-runtime.nix b/pkgs/desktops/kde-4.8/kde-runtime.nix
index b219bd4599af..f8246190462d 100644
--- a/pkgs/desktops/kde-4.8/kde-runtime.nix
+++ b/pkgs/desktops/kde-4.8/kde-runtime.nix
@@ -9,7 +9,7 @@ kde {
       samba (libcanberra.override { gtk = null; }) ntrack libjpeg qca2 pulseaudio
     ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   passthru.propagatedUserEnvPackages = [ virtuoso ];
 
diff --git a/pkgs/desktops/kde-4.8/kde-wallpapers.nix b/pkgs/desktops/kde-4.8/kde-wallpapers.nix
index 803b027668a8..ad4c22c632db 100644
--- a/pkgs/desktops/kde-4.8/kde-wallpapers.nix
+++ b/pkgs/desktops/kde-4.8/kde-wallpapers.nix
@@ -1,7 +1,7 @@
 { kde, cmake }:
 
 kde {
-  buildNativeInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
 
   patches = [ ./files/kde-wallpapers-buildsystem.patch ];
 
diff --git a/pkgs/desktops/kde-4.8/kde-workspace.nix b/pkgs/desktops/kde-4.8/kde-workspace.nix
index 31937d4f1d56..97192e55be37 100644
--- a/pkgs/desktops/kde-4.8/kde-workspace.nix
+++ b/pkgs/desktops/kde-4.8/kde-workspace.nix
@@ -1,6 +1,6 @@
 { kde, kdelibs, qimageblitz, libdbusmenu_qt, xorg, shared_desktop_ontologies,
   lm_sensors, pciutils, libraw1394, libusb, libxklavier, python, libqalculate,
-  consolekit, xkeyboard_config, kdepimlibs, pam, boost, gpsd, prison, akonadi,
+  xkeyboard_config, kdepimlibs, pam, boost, gpsd, prison, akonadi,
   pykde4, libjpeg, pkgconfig, libXft, libXxf86misc, kactivities
 }:
 
@@ -12,11 +12,11 @@ kde {
       xorg.libXcomposite xorg.libXdamage xorg.libXau xorg.libXdmcp
       xorg.libpthreadstubs
       boost gpsd shared_desktop_ontologies lm_sensors pciutils libraw1394
-      libusb python libqalculate consolekit kdepimlibs pam prison akonadi
+      libusb python libqalculate kdepimlibs pam prison akonadi
       kactivities
     ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   preConfigure =
    ''
diff --git a/pkgs/desktops/kde-4.8/kdeartwork/kscreensaver.nix b/pkgs/desktops/kde-4.8/kdeartwork/kscreensaver.nix
index 72676e35f715..7028b9db228d 100644
--- a/pkgs/desktops/kde-4.8/kdeartwork/kscreensaver.nix
+++ b/pkgs/desktops/kde-4.8/kdeartwork/kscreensaver.nix
@@ -3,7 +3,7 @@
 kde {
   buildInputs = [ kdelibs xscreensaver kde_workspace eigen libkexiv2 libXt ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   preConfigure = "cp -v ${./FindXscreensaver.cmake} cmake/modules/FindXscreensaver.cmake";
 
diff --git a/pkgs/desktops/kde-4.8/kdebindings/perlqt.nix b/pkgs/desktops/kde-4.8/kdebindings/perlqt.nix
index 2c1378f10496..f2b5462f33e2 100644
--- a/pkgs/desktops/kde-4.8/kdebindings/perlqt.nix
+++ b/pkgs/desktops/kde-4.8/kdebindings/perlqt.nix
@@ -2,7 +2,7 @@
 
 kde {
   buildInputs = [ smokeqt perl ];
-  buildNativeInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
 
   patches =
     # The order is important
diff --git a/pkgs/desktops/kde-4.8/kdebindings/qtruby.nix b/pkgs/desktops/kde-4.8/kdebindings/qtruby.nix
index 5dd25899e74c..723732f6104a 100644
--- a/pkgs/desktops/kde-4.8/kdebindings/qtruby.nix
+++ b/pkgs/desktops/kde-4.8/kdebindings/qtruby.nix
@@ -2,7 +2,7 @@
 
 kde {
   buildInputs = [ smokeqt ruby ];
-  buildNativeInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
 
   # The second patch is not ready for upstream submmission. I should add an
   # option() instead.
diff --git a/pkgs/desktops/kde-4.8/kdebindings/smokegen.nix b/pkgs/desktops/kde-4.8/kdebindings/smokegen.nix
index e32ed57c9074..8b5da2a641dd 100644
--- a/pkgs/desktops/kde-4.8/kdebindings/smokegen.nix
+++ b/pkgs/desktops/kde-4.8/kdebindings/smokegen.nix
@@ -2,7 +2,7 @@
 
 kde {
   buildInputs = [ qt4 ];
-  buildNativeInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
 
   patches = [ ./smokegen-nix.patch ];
 
diff --git a/pkgs/desktops/kde-4.8/kdebindings/smokekde.nix b/pkgs/desktops/kde-4.8/kdebindings/smokekde.nix
index 6f1b7a0b7081..0e823a95e3b2 100644
--- a/pkgs/desktops/kde-4.8/kdebindings/smokekde.nix
+++ b/pkgs/desktops/kde-4.8/kdebindings/smokekde.nix
@@ -3,7 +3,7 @@
 kde {
   # attica, akonadi and kdepimlibs are disabled due to smokegen crash
   buildInputs = [ smokeqt kdelibs shared_desktop_ontologies ];
-  buildNativeInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
 
   cmakeFlags = "-DQTDEFINES_FILE=${smokeqt}/share/smokegen/qtdefines";
   meta = {
diff --git a/pkgs/desktops/kde-4.8/kdebindings/smokeqt.nix b/pkgs/desktops/kde-4.8/kdebindings/smokeqt.nix
index 0d0aa816a941..29e25093d11b 100644
--- a/pkgs/desktops/kde-4.8/kdebindings/smokeqt.nix
+++ b/pkgs/desktops/kde-4.8/kdebindings/smokeqt.nix
@@ -2,8 +2,8 @@
 
 kde {
   propagatedBuildInputs = [ qt4 phonon qimageblitz ];
-  buildNativeInputs = [ cmake ];
-  propagatedBuildNativeInputs = [ smokegen ];
+  nativeBuildInputs = [ cmake ];
+  propagatedNativeBuildInputs = [ smokegen ];
 
   meta = {
     description = "C++ parser used to generate language bindings for Qt/KDE";
diff --git a/pkgs/desktops/kde-4.8/kdegames.nix b/pkgs/desktops/kde-4.8/kdegames.nix
index 03ecfbd88b4b..dfca49be12fd 100644
--- a/pkgs/desktops/kde-4.8/kdegames.nix
+++ b/pkgs/desktops/kde-4.8/kdegames.nix
@@ -7,7 +7,7 @@ kde rec {
 
   pythonPath = [ pythonPackages.twisted pykde4 ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   # TODO: ggz
 
diff --git a/pkgs/desktops/kde-4.8/kdegraphics/gwenview.nix b/pkgs/desktops/kde-4.8/kdegraphics/gwenview.nix
index b6b659c39474..c03c82469e66 100644
--- a/pkgs/desktops/kde-4.8/kdegraphics/gwenview.nix
+++ b/pkgs/desktops/kde-4.8/kdegraphics/gwenview.nix
@@ -6,7 +6,7 @@ kde {
   buildInputs =
     [ kdelibs exiv2 shared_desktop_ontologies kde_baseapps libkipi libjpeg ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   meta = {
     description = "Gwenview, the KDE image viewer";
diff --git a/pkgs/desktops/kde-4.8/kdelibs.nix b/pkgs/desktops/kde-4.8/kdelibs.nix
index 31df83e5ee92..0e7c9cfdbea0 100644
--- a/pkgs/desktops/kde-4.8/kdelibs.nix
+++ b/pkgs/desktops/kde-4.8/kdelibs.nix
@@ -15,7 +15,7 @@ kde {
 
   propagatedBuildInputs = [ qt4 soprano strigi phonon ];
 
-  propagatedBuildNativeInputs = [ automoc4 cmake perl shared_mime_info ];
+  propagatedNativeBuildInputs = [ automoc4 cmake perl shared_mime_info ];
 
   # TODO: make sonnet plugins (dictionaries) really work.
   # There are a few hardcoded paths.
diff --git a/pkgs/desktops/kde-4.8/kdenetwork/kopete.nix b/pkgs/desktops/kde-4.8/kdenetwork/kopete.nix
index ec48b96fe19b..d1d9f0c8e03e 100644
--- a/pkgs/desktops/kde-4.8/kdenetwork/kopete.nix
+++ b/pkgs/desktops/kde-4.8/kdenetwork/kopete.nix
@@ -7,7 +7,7 @@ kde {
     jasper libidn mediastreamer msilbc libxml2 libxslt giflib libgadu boost qca2
     gpgme sqlite ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   KDEDIRS = libktorrent;
 
diff --git a/pkgs/desktops/kde-4.8/kdeplasma-addons.nix b/pkgs/desktops/kde-4.8/kdeplasma-addons.nix
index 9d70579d6d24..a69002bff28b 100644
--- a/pkgs/desktops/kde-4.8/kdeplasma-addons.nix
+++ b/pkgs/desktops/kde-4.8/kdeplasma-addons.nix
@@ -11,7 +11,7 @@ kde {
     attica python qca2 qimageblitz kdepimlibs libdbusmenu_qt
     libqalculate libXtst shared_desktop_ontologies marble libkexiv2];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   meta = {
     description = "KDE Plasma Addons";
diff --git a/pkgs/desktops/kde-4.8/oxygen-icons.nix b/pkgs/desktops/kde-4.8/oxygen-icons.nix
index c821e2a7aac4..52e5e5f6bb01 100644
--- a/pkgs/desktops/kde-4.8/oxygen-icons.nix
+++ b/pkgs/desktops/kde-4.8/oxygen-icons.nix
@@ -5,7 +5,7 @@ kde {
   outputHashMode = "recursive";
   outputHash = "3984dac79aa7398578bcd9d69d74988bd992807518d46cd1dabc03867044c8a4";
 
-  buildNativeInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
 
   meta = {
     description = "KDE Oxygen theme icons";
diff --git a/pkgs/desktops/kde-4.8/support/akonadi/default.nix b/pkgs/desktops/kde-4.8/support/akonadi/default.nix
index b939eb19b5e4..9a9e8a870660 100644
--- a/pkgs/desktops/kde-4.8/support/akonadi/default.nix
+++ b/pkgs/desktops/kde-4.8/support/akonadi/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ qt4 soprano libxslt boost ];
 
-  buildNativeInputs = [ cmake automoc4 shared_mime_info ];
+  nativeBuildInputs = [ cmake automoc4 shared_mime_info ];
 
   enableParallelBuilding = true;
   
diff --git a/pkgs/desktops/xfce-4.6/applications/mousepad.nix b/pkgs/desktops/xfce-4.6/applications/mousepad.nix
deleted file mode 100644
index 5912b21c7661..000000000000
--- a/pkgs/desktops/xfce-4.6/applications/mousepad.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, libxfce4util, libxfcegui4, gtk }:
-
-stdenv.mkDerivation rec {
-  name = "mousepad-0.2.16";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/src/apps/mousepad/0.2/${name}.tar.bz2";
-    sha1 = "4e63033e0a71578f3ec9a0d2e6a505efd0424ef9";
-  };
-
-  buildInputs = [ pkgconfig intltool libxfce4util libxfcegui4 gtk ];
-
-  meta = {
-    homepage = http://www.xfce.org/projects/mousepad/;
-    description = "A simple text editor for Xfce";
-    license = "GPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/applications/ristretto.nix b/pkgs/desktops/xfce-4.6/applications/ristretto.nix
deleted file mode 100644
index aefabcb65fbd..000000000000
--- a/pkgs/desktops/xfce-4.6/applications/ristretto.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, libexif, gtk, thunar
-, exo, dbus_glib, libxfce4util, libxfcegui4, xfconf }:
-
-stdenv.mkDerivation rec {
-  name = "ristretto-0.0.22";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/src/apps/ristretto/0.0/${name}.tar.gz";
-    sha1 = "bddbc8618ba67699ccf5ee4ea0b538b1be7fdb0a";
-  };
-
-  buildInputs =
-    [ pkgconfig intltool libexif gtk thunar exo dbus_glib
-      libxfce4util libxfcegui4 xfconf
-    ];
-
-  NIX_LDFLAGS = "-lX11";
-
-  meta = {
-    homepage = http://goodies.xfce.org/projects/applications/ristretto;
-    description = "A fast and lightweight picture-viewer for the Xfce desktop environment";
-    license = "GPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/applications/terminal.nix b/pkgs/desktops/xfce-4.6/applications/terminal.nix
deleted file mode 100644
index bd198a12af44..000000000000
--- a/pkgs/desktops/xfce-4.6/applications/terminal.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ stdenv, fetchurl
-, pkgconfig, ncurses
-, intltool, vte
-, exo, libxfce4util
-, gtk
-}:
-
-stdenv.mkDerivation {
-  name = "xfce-terminal-0.4.5";
-  
-  src = fetchurl {
-    url = http://archive.xfce.org/src/apps/terminal/0.4/Terminal-0.4.5.tar.bz2;
-    sha256 = "14w8mhmyrq6dd9574zfvq0pymknljckq6qgcv1r6c1r22jydrzcj";
-  };
-
-  buildInputs = [ pkgconfig intltool exo gtk vte libxfce4util ncurses ];
-
-  meta = {
-    homepage = http://www.xfce.org/projects/terminal;
-    description = "A modern terminal emulator primarily for the Xfce desktop environment";
-    license = "GPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/applications/xfce4-mixer.nix b/pkgs/desktops/xfce-4.6/applications/xfce4-mixer.nix
deleted file mode 100644
index 76cc5ea028f0..000000000000
--- a/pkgs/desktops/xfce-4.6/applications/xfce4-mixer.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, glib, gstreamer, gst_plugins_base
-, gtk, libxfce4util, libxfcegui4, xfce4panel, xfconf, makeWrapper }:
-
-let
-
-  # The usual Gstreamer plugins package has a zillion dependencies
-  # that we don't need for a simple mixer, so build a minimal package.
-  gst_plugins_minimal = gst_plugins_base.override {
-    minimalDeps = true;
-  };
-
-in
-
-stdenv.mkDerivation rec {
-  name = "xfce4-mixer-4.6.1";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/src/apps/xfce4-mixer/4.6/${name}.tar.bz2";
-    sha1 = "e86163782fc4fc31671c7cb212d23d34106ad3af";
-  };
-
-  buildInputs =
-    [ pkgconfig intltool glib gstreamer gst_plugins_minimal gtk
-      libxfce4util libxfcegui4 xfce4panel xfconf makeWrapper
-    ];
-
-  postInstall =
-    ''
-      mkdir -p $out/nix-support
-      echo ${gst_plugins_minimal} > $out/nix-support/propagated-user-env-packages
-    '';
-
-  meta = {
-    homepage = http://www.xfce.org/projects/xfce4-mixer;
-    description = "A volume control application for the Xfce desktop environment";
-    license = "GPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/applications/xfce4-power-manager.nix b/pkgs/desktops/xfce-4.6/applications/xfce4-power-manager.nix
deleted file mode 100644
index 65e906f5d83f..000000000000
--- a/pkgs/desktops/xfce-4.6/applications/xfce4-power-manager.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, gtk, dbus_glib, xfconf
-, libxfcegui4, libxfce4util, libnotify, xfce4panel }:
-
-stdenv.mkDerivation rec {
-  name = "xfce4-power-manager-0.8.5";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/src/apps/xfce4-power-manager/0.8/${name}.tar.bz2";
-    sha1 = "b1ce0f120733ec1a6267d50ba5c2990bbbbccfd4";
-  };
-
-  buildInputs =
-    [ pkgconfig intltool gtk dbus_glib xfconf libxfcegui4 libxfce4util
-      libnotify xfce4panel
-    ];
-
-  NIX_CFLAGS_COMPILE = "-I${libxfcegui4}/include/xfce4";
-
-  meta = {
-    homepage = http://goodies.xfce.org/projects/applications/xfce4-power-manager;
-    description = "A power manager for the Xfce Desktop Environment";
-    license = "GPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/art/xfce4-icon-theme.nix b/pkgs/desktops/xfce-4.6/art/xfce4-icon-theme.nix
deleted file mode 100644
index f42790c62166..000000000000
--- a/pkgs/desktops/xfce-4.6/art/xfce4-icon-theme.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, gtk }:
-
-stdenv.mkDerivation rec {
-  name = "xfce4-icon-theme-4.4.3";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/src/art/xfce4-icon-theme/4.4/${name}.tar.bz2";
-    sha1 = "0c0d0c45cd4a7f609310db8e9d17c1c4a131a6e7";
-  };
-
-  buildInputs = [ pkgconfig intltool gtk ];
-
-  meta = {
-    homepage = http://www.xfce.org/;
-    description = "Icons for Xfce";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/core/exo.nix b/pkgs/desktops/xfce-4.6/core/exo.nix
deleted file mode 100644
index 5115a402c0dc..000000000000
--- a/pkgs/desktops/xfce-4.6/core/exo.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, URI, glib, gtk, libxfce4util
-, enableHAL ? true, hal, dbus_glib }:
-
-stdenv.mkDerivation rec {
-  name = "exo-0.3.107";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/xfce/4.6.2/src/${name}.tar.bz2";
-    sha256 = "18z2xmdl577r60ln2waai10dd7i384k0bxrmf7gchrxd9c9aq4ha";
-  };
-
-  buildInputs =
-    [ pkgconfig intltool URI glib gtk libxfce4util ] ++
-    stdenv.lib.optionals enableHAL [ hal dbus_glib ];
-
-  meta = {
-    homepage = http://www.xfce.org/projects/exo;
-    description = "Application library for the Xfce desktop environment";
-    license = "GPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/core/gtk-xfce-engine.nix b/pkgs/desktops/xfce-4.6/core/gtk-xfce-engine.nix
deleted file mode 100644
index 156da1c64834..000000000000
--- a/pkgs/desktops/xfce-4.6/core/gtk-xfce-engine.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, gtk }:
-
-stdenv.mkDerivation rec {
-  name = "gtk-xfce-engine-2.6.0";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/xfce/4.6.2/src/${name}.tar.bz2";
-    sha1 = "a7be2f330833d150c5fb37f68a4c2138348b5446";
-  };
-
-  buildInputs =
-    [ pkgconfig intltool gtk ];
-
-  meta = {
-    homepage = http://www.xfce.org/;
-    description = "GTK+ theme engine for Xfce";
-    license = "GPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/core/libxfce4menu.nix b/pkgs/desktops/xfce-4.6/core/libxfce4menu.nix
deleted file mode 100644
index fda09979819e..000000000000
--- a/pkgs/desktops/xfce-4.6/core/libxfce4menu.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, glib, intltool, gtk, libxfce4util }:
-
-stdenv.mkDerivation rec {
-  name = "libxfce4menu-4.6.2";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/xfce-4.6.2/src/${name}.tar.bz2";
-    sha1 = "32a85c1ad31360347d5a2f240c4ddc08b444d124";
-  };
-
-  buildInputs = [ pkgconfig glib intltool gtk libxfce4util ];
-
-  meta = {
-    homepage = http://www.xfce.org/;
-    description = "Xfce menu support library";
-    license = "LGPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/core/libxfce4util.nix b/pkgs/desktops/xfce-4.6/core/libxfce4util.nix
deleted file mode 100644
index ca90822cfd0f..000000000000
--- a/pkgs/desktops/xfce-4.6/core/libxfce4util.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, glib, intltool }:
-
-stdenv.mkDerivation rec {
-  name = "libxfce4util-4.6.2";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/xfce-4.6.2/src/${name}.tar.bz2";
-    sha256 = "10wcw7r8cjb0farffic037pcjr5bwrjrm8s3jrcb7c0b038pwbmf";
-  };
-
-  buildInputs = [ pkgconfig glib intltool ];
-
-  meta = {
-    homepage = http://www.xfce.org/;
-    description = "Basic utility non-GUI functions for Xfce";
-    license = "bsd";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/core/thunar.nix b/pkgs/desktops/xfce-4.6/core/thunar.nix
deleted file mode 100644
index 2fecb7814b11..000000000000
--- a/pkgs/desktops/xfce-4.6/core/thunar.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, exo, gtk, libxfce4util
-, dbus_glib, libstartup_notification, xfconf, hal, xfce4panel
-, gamin }:
-
-stdenv.mkDerivation rec {
-  name = "thunar-1.0.2";
-  
-  src = fetchurl {
-    url = http://archive.xfce.org/xfce/4.6.2/src/Thunar-1.0.2.tar.bz2;
-    sha1 = "f7ae00c32402e4bc502aba15477b78e2c558c7c3";
-  };
-
-  buildInputs =
-    [ pkgconfig intltool exo gtk libxfce4util
-      dbus_glib libstartup_notification xfconf xfce4panel gamin
-    ];
-
-  propagatedBuildInputs = [ hal ];
-
-  meta = {
-    homepage = http://thunar.xfce.org/;
-    description = "Xfce file manager";
-    license = "GPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/core/xfce-utils.nix b/pkgs/desktops/xfce-4.6/core/xfce-utils.nix
deleted file mode 100644
index ed2bfc56108c..000000000000
--- a/pkgs/desktops/xfce-4.6/core/xfce-utils.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, gtk, libxfce4util, libxfcegui4 }:
-
-stdenv.mkDerivation rec {
-  name = "xfce-utils-4.6.2";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/xfce/4.6.2/src/${name}.tar.bz2";
-    sha1 = "6373886c3d70e576859741bde747a235567ffd8e";
-  };
-
-  configureFlags = "--with-xsession-prefix=$(out)/share/xsessions";
-
-  buildInputs = [ pkgconfig intltool gtk libxfce4util libxfcegui4 ];
-
-  meta = {
-    homepage = http://www.xfce.org/;
-    description = "Utilities and scripts for Xfce";
-    license = "GPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/core/xfce4-panel.nix b/pkgs/desktops/xfce-4.6/core/xfce4-panel.nix
deleted file mode 100644
index 7708d019b90a..000000000000
--- a/pkgs/desktops/xfce-4.6/core/xfce4-panel.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, gtk, libxfce4util, libxfcegui4
-, libwnck, exo, libstartup_notification }:
-
-stdenv.mkDerivation rec {
-  name = "xfce4-panel-4.6.4";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/xfce/4.6.2/src/${name}.tar.bz2";
-    sha1 = "d2b310c036be84ed9886c06ae35b7a1a8eabfcb8";
-  };
-
-  buildInputs =
-    [ pkgconfig intltool gtk libxfce4util exo libwnck
-      libstartup_notification
-    ];
-
-  propagatedBuildInputs = [ libxfcegui4 ];
-
-  meta = {
-    homepage = http://www.xfce.org/;
-    description = "Xfce panel";
-    license = "GPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/core/xfce4-session.nix b/pkgs/desktops/xfce-4.6/core/xfce4-session.nix
deleted file mode 100644
index fc56be085c4a..000000000000
--- a/pkgs/desktops/xfce-4.6/core/xfce4-session.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, gtk, libxfce4util, libxfcegui4
-, libwnck, dbus_glib, xfconf, libglade, xorg }:
-
-stdenv.mkDerivation rec {
-  name = "xfce4-session-4.6.2";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/xfce/4.6.2/src/${name}.tar.bz2";
-    sha1 = "2a5778a1543f97845f118a186e2dbb8a8ea3ff4b";
-  };
-
-  buildInputs =
-    [ pkgconfig intltool gtk libxfce4util libxfcegui4 libwnck dbus_glib
-      xfconf libglade xorg.iceauth
-    ];
-
-  meta = {
-    homepage = http://www.xfce.org/;
-    description = "Session manager for Xfce";
-    license = "GPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/core/xfce4-settings.nix b/pkgs/desktops/xfce-4.6/core/xfce4-settings.nix
deleted file mode 100644
index 0935955231e3..000000000000
--- a/pkgs/desktops/xfce-4.6/core/xfce4-settings.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, exo, gtk, libxfce4util, libxfcegui4
-, libglade, xfconf, xorg, libwnck, libnotify }:
-
-stdenv.mkDerivation rec {
-  name = "xfce4-settings-4.6.5";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/xfce/4.6.2/src/${name}.tar.bz2";
-    sha1 = "c036cc2f3100a46b2649e678dff7c0106b219263";
-  };
-
-  buildInputs =
-    [ pkgconfig intltool exo gtk libxfce4util libxfcegui4 libglade
-      xfconf xorg.libXi xorg.libXcursor libwnck libnotify
-    #gtk libxfce4util libxfcegui4 libwnck dbus_glib
-      #xfconf libglade xorg.iceauth
-    ];
-
-  meta = {
-    homepage = http://www.xfce.org/;
-    description = "Settings manager for Xfce";
-    license = "GPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/core/xfconf.nix b/pkgs/desktops/xfce-4.6/core/xfconf.nix
deleted file mode 100644
index 2fc88bd12586..000000000000
--- a/pkgs/desktops/xfce-4.6/core/xfconf.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, glib, libxfce4util, dbus_glib }:
-
-stdenv.mkDerivation rec {
-  name = "xfconf-4.6.2";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/xfce/4.6.2/src/${name}.tar.bz2";
-    sha1 = "2b9656a1b7f323d2600ddc929191afb50c8018f8";
-  };
-
-  buildInputs = [ pkgconfig intltool glib libxfce4util ];
-
-  propagatedBuildInputs = [ dbus_glib ];
-
-  meta = {
-    homepage = http://www.xfce.org/;
-    description = "Simple client-server configuration storage and query system for Xfce";
-    license = "GPLv2";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/core/xfdesktop.nix b/pkgs/desktops/xfce-4.6/core/xfdesktop.nix
deleted file mode 100644
index 90a69bd8692f..000000000000
--- a/pkgs/desktops/xfce-4.6/core/xfdesktop.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, gtk, libxfce4util, libxfcegui4
-, libwnck, xfconf, libglade, libxfce4menu, xfce4panel, thunar, exo }:
-
-stdenv.mkDerivation rec {
-  name = "xfdesktop-4.6.2";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/xfce/4.6.2/src/${name}.tar.bz2";
-    sha1 = "cefcd1c1386d34386d4e900cbf88b7c24ef3bafb";
-  };
-
-  buildInputs =
-    [ pkgconfig intltool gtk libxfce4util libxfcegui4 libwnck xfconf
-      libglade libxfce4menu xfce4panel thunar exo
-    ];
-
-  meta = {
-    homepage = http://www.xfce.org/;
-    description = "Xfce desktop manager";
-    license = "GPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/core/xfwm4.nix b/pkgs/desktops/xfce-4.6/core/xfwm4.nix
deleted file mode 100644
index 6e88ef9cd0d9..000000000000
--- a/pkgs/desktops/xfce-4.6/core/xfwm4.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, gtk, intltool, libglade, libxfce4util
-, libxfcegui4, xfconf, libwnck, libstartup_notification, xorg }:
-
-stdenv.mkDerivation rec {
-  name = "xfwm4-4.6.2";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/xfce/4.6.2/src/${name}.tar.bz2";
-    sha256 = "0a2q2pr5mzp6hsrd0llr90i9wii2qj2054shkpvkain20gp1ja11";
-  };
-
-  buildInputs =
-    [ pkgconfig intltool gtk libglade libxfce4util libxfcegui4 xfconf
-      libwnck libstartup_notification
-      xorg.libXcomposite xorg.libXfixes xorg.libXdamage
-    ];
-
-  meta = {
-    homepage = http://www.xfce.org/;
-    description = "Window manager for Xfce";
-    license = "GPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/default.nix b/pkgs/desktops/xfce-4.6/default.nix
deleted file mode 100644
index 1769c3f7a041..000000000000
--- a/pkgs/desktops/xfce-4.6/default.nix
+++ /dev/null
@@ -1,66 +0,0 @@
-{ callPackage, pkgs }:
-
-rec {
-  inherit (pkgs) gtk glib;
-
-  #### CORE
-
-  exo = callPackage ./core/exo.nix {
-    inherit (pkgs.perlPackages) URI;
-  };
-
-  libxfce4util = callPackage ./core/libxfce4util.nix { };
-
-  libxfcegui4 = callPackage ./core/libxfcegui4.nix {
-    inherit (pkgs.gnome) libglade;
-  };
-
-  libxfce4menu = callPackage ./core/libxfce4menu.nix { };
-
-  xfconf = callPackage ./core/xfconf.nix { };
-
-  xfwm4 = callPackage ./core/xfwm4.nix {
-    inherit (pkgs.gnome) libglade libwnck;
-  };
-
-  xfceutils = callPackage ./core/xfce-utils.nix { };
-
-  xfce4session = callPackage ./core/xfce4-session.nix {
-    inherit (pkgs.gnome) libglade libwnck;
-  };
-
-  xfce4settings = callPackage ./core/xfce4-settings.nix {
-    inherit (pkgs.gnome) libglade libwnck;
-  };
-
-  xfce4panel = callPackage ./core/xfce4-panel.nix {
-    inherit (pkgs.gnome) libwnck;
-  };
-
-  xfdesktop = callPackage ./core/xfdesktop.nix {
-    inherit (pkgs.gnome) libwnck libglade;
-  };
-
-  thunar = callPackage ./core/thunar.nix { };
-
-  gtk_xfce_engine = callPackage ./core/gtk-xfce-engine.nix { };
-
-  #### APPLICATIONS
-  
-  terminal = callPackage ./applications/terminal.nix {
-    inherit (pkgs.gnome) vte;
-  };
-
-  mousepad = callPackage ./applications/mousepad.nix { };
-
-  ristretto = callPackage ./applications/ristretto.nix { };
-
-  xfce4_power_manager = callPackage ./applications/xfce4-power-manager.nix { };
-
-  xfce4mixer = callPackage ./applications/xfce4-mixer.nix { };
-
-  #### ART
-
-  xfce4icontheme = callPackage ./art/xfce4-icon-theme.nix { };
-  
-}
diff --git a/pkgs/desktops/xfce-4.8/applications/mousepad.nix b/pkgs/desktops/xfce-4.8/applications/mousepad.nix
deleted file mode 100644
index 395a5c9f0848..000000000000
--- a/pkgs/desktops/xfce-4.8/applications/mousepad.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, libxfce4util, libxfcegui4, gtk }:
-
-stdenv.mkDerivation rec {
-  name = "mousepad-0.2.16";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/src/apps/mousepad/0.2/${name}.tar.bz2";
-    sha1 = "4e63033e0a71578f3ec9a0d2e6a505efd0424ef9";
-  };
-
-  buildInputs = [ pkgconfig intltool libxfce4util libxfcegui4 gtk ];
-
-  meta = {
-    homepage = http://www.xfce.org/projects/mousepad/;
-    description = "A simple text editor for Xfce";
-    license = "GPLv2+";
-    platforms = stdenv.lib.platforms.linux;
-    maintainers = [ stdenv.lib.maintainers.eelco ];
-  };
-}
diff --git a/pkgs/desktops/xfce-4.8/applications/terminal.nix b/pkgs/desktops/xfce-4.8/applications/terminal.nix
deleted file mode 100644
index 44aa72d9d8c8..000000000000
--- a/pkgs/desktops/xfce-4.8/applications/terminal.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ stdenv, fetchurl
-, pkgconfig, ncurses
-, intltool, vte
-, exo, libxfce4util
-, gtk
-}:
-
-stdenv.mkDerivation {
-  name = "xfce-terminal-0.4.8";
-  
-  src = fetchurl {
-    url = http://archive.xfce.org/src/apps/terminal/0.4/Terminal-0.4.8.tar.bz2;
-    sha1 = "2f12c3a0fffad18976d47e531d404ee308cb2f05";
-  };
-
-  buildInputs = [ pkgconfig intltool exo gtk vte libxfce4util ncurses ];
-
-  meta = {
-    homepage = http://www.xfce.org/projects/terminal;
-    description = "A modern terminal emulator primarily for the Xfce desktop environment";
-    license = "GPLv2+";
-    platforms = stdenv.lib.platforms.linux;
-    maintainers = [ stdenv.lib.maintainers.eelco ];
-  };
-}
diff --git a/pkgs/desktops/xfce-4.8/core/exo.nix b/pkgs/desktops/xfce-4.8/core/exo.nix
deleted file mode 100644
index 468132a2a81e..000000000000
--- a/pkgs/desktops/xfce-4.8/core/exo.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, URI, glib, gtk, libxfce4util }:
-
-stdenv.mkDerivation rec {
-  name = "exo-0.6.2";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/src/xfce/exo/0.6/${name}.tar.bz2";
-    sha1 = "2486f12c814630068665e22cdf417f0f0f05dab1";
-  };
-
-  buildInputs =
-    [ pkgconfig intltool URI glib gtk libxfce4util ];
-
-  meta = {
-    homepage = http://www.xfce.org/projects/exo;
-    description = "Application library for the Xfce desktop environment";
-    license = "GPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.8/core/garcon.nix b/pkgs/desktops/xfce-4.8/core/garcon.nix
deleted file mode 100644
index 7f5f18173b26..000000000000
--- a/pkgs/desktops/xfce-4.8/core/garcon.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, glib, libxfce4util }:
-
-stdenv.mkDerivation rec {
-  name = "garcon-0.1.9";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/src/xfce/garcon/0.1/${name}.tar.bz2";
-    sha1 = "2eeab19bc10747a40b44afd4598a2f555eb69952";
-  };
-
-  buildInputs = [ pkgconfig intltool glib libxfce4util ];
-
-  meta = {
-    homepage = http://www.xfce.org/;
-    description = "Xfce menu support library";
-    license = "GPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.8/core/gtk-xfce-engine.nix b/pkgs/desktops/xfce-4.8/core/gtk-xfce-engine.nix
deleted file mode 100644
index 4518897cc2fc..000000000000
--- a/pkgs/desktops/xfce-4.8/core/gtk-xfce-engine.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, gtk }:
-
-stdenv.mkDerivation rec {
-  name = "gtk-xfce-engine-2.8.1";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/src/xfce/gtk-xfce-engine/2.8/${name}.tar.bz2";
-    sha1 = "d7779f07cc76585be063bc25fa91e660e1fd9c97";
-  };
-
-  buildInputs =
-    [ pkgconfig intltool gtk ];
-
-  meta = {
-    homepage = http://www.xfce.org/;
-    description = "GTK+ theme engine for Xfce";
-    license = "GPLv2+";
-    platforms = stdenv.lib.platforms.linux;
-    maintainers = [ stdenv.lib.maintainers.eelco ];
-  };
-}
diff --git a/pkgs/desktops/xfce-4.8/core/libxfce4ui.nix b/pkgs/desktops/xfce-4.8/core/libxfce4ui.nix
deleted file mode 100644
index 76c285ae599a..000000000000
--- a/pkgs/desktops/xfce-4.8/core/libxfce4ui.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, gtk, libxfce4util, xfconf
-, libstartup_notification }:
-
-stdenv.mkDerivation rec {
-  name = "libxfce4ui-4.8.1";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/src/xfce/libxfce4ui/4.8/${name}.tar.bz2";
-    sha1 = "408645581e589135aa03d2e9b84f4eede68596b2";
-  };
-
-  buildInputs =
-    [ pkgconfig intltool gtk libxfce4util xfconf
-      libstartup_notification
-    ];
-
-  enableParallelBuilding = true;
-
-  meta = {
-    homepage = http://www.xfce.org/;
-    description = "Basic GUI library for Xfce";
-    license = "LGPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.8/core/libxfce4util.nix b/pkgs/desktops/xfce-4.8/core/libxfce4util.nix
deleted file mode 100644
index 7a567d629358..000000000000
--- a/pkgs/desktops/xfce-4.8/core/libxfce4util.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, glib, intltool }:
-
-stdenv.mkDerivation rec {
-  name = "libxfce4util-4.8.2";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/src/xfce/libxfce4util/4.8/${name}.tar.bz2";
-    sha1 = "e7498c2e5fca2c89dfef89e0788f10eebbd020c3";
-  };
-
-  buildInputs = [ pkgconfig glib intltool ];
-
-  meta = {
-    homepage = http://www.xfce.org/;
-    description = "Basic utility non-GUI functions for Xfce";
-    license = "bsd";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.8/core/libxfcegui4.nix b/pkgs/desktops/xfce-4.8/core/libxfcegui4.nix
deleted file mode 100644
index 20e82a2c92f8..000000000000
--- a/pkgs/desktops/xfce-4.8/core/libxfcegui4.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, gtk, libxfce4util, xfconf
-, libglade, libstartup_notification }:
-
-stdenv.mkDerivation rec {
-  name = "libxfcegui4-4.8.1";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/src/xfce/libxfcegui4/4.8/${name}.tar.bz2";
-    sha1 = "246fcaa71fc8cf44dae0b4c919411231eedd662f";
-  };
-
-  # By default, libxfcegui4 tries to install into libglade's prefix.
-  # Install into our own prefix instead.
-  preConfigure =
-    ''
-      configureFlags="--with-libglade-module-path=$out/lib/libglade/2.0"
-    '';
-
-  buildInputs =
-    [ pkgconfig intltool gtk libxfce4util libglade
-      libstartup_notification
-    ];
-
-  enableParallelBuilding = true;
-
-  meta = {
-    homepage = http://www.xfce.org/;
-    description = "Basic GUI library for Xfce";
-    license = "LGPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.8/core/thunar.nix b/pkgs/desktops/xfce-4.8/core/thunar.nix
deleted file mode 100644
index 07fd734a1f2e..000000000000
--- a/pkgs/desktops/xfce-4.8/core/thunar.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, exo, gtk, libxfce4util, libxfce4ui
-, dbus_glib, libstartup_notification, xfconf, xfce4panel, udev, libnotify }:
-
-stdenv.mkDerivation rec {
-  version = "1.2.3";
-  name = "thunar-${version}";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/src/xfce/thunar/1.2/Thunar-${version}.tar.bz2";
-    sha1 = "a05d0e14515d70c5ad94cca881822a707d366863";
-  };
-
-  buildInputs =
-    [ pkgconfig intltool gtk exo libxfce4util libxfce4ui
-      dbus_glib libstartup_notification xfconf xfce4panel udev libnotify
-    ];
-
-  enableParallelBuilding = true;
-
-  meta = {
-    homepage = http://thunar.xfce.org/;
-    description = "Xfce file manager";
-    license = "GPLv2+";
-    platforms = stdenv.lib.platforms.linux;
-    maintainers = [ stdenv.lib.maintainers.eelco ];
-  };
-}
diff --git a/pkgs/desktops/xfce-4.8/core/xfce4-panel.nix b/pkgs/desktops/xfce-4.8/core/xfce4-panel.nix
deleted file mode 100644
index bb2637129622..000000000000
--- a/pkgs/desktops/xfce-4.8/core/xfce4-panel.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, gtk, libxfce4util, garcon
-, libxfce4ui, xfconf, libwnck, exo }:
-
-stdenv.mkDerivation rec {
-  name = "xfce4-panel-4.8.6";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/src/xfce/xfce4-panel/4.8/${name}.tar.bz2";
-    sha1 = "332fc968332e6271e1bb65d6de8de2524b0440ec";
-  };
-
-  buildInputs =
-    [ pkgconfig intltool gtk libxfce4util garcon libxfce4ui xfconf
-      exo libwnck
-    ];
-
-  enableParallelBuilding = true;
-
-  meta = {
-    homepage = http://www.xfce.org/;
-    description = "Xfce panel";
-    license = "GPLv2+";
-    platforms = stdenv.lib.platforms.linux;
-    maintainers = [ stdenv.lib.maintainers.eelco ];
-  };
-}
diff --git a/pkgs/desktops/xfce-4.8/core/xfce4-session.nix b/pkgs/desktops/xfce-4.8/core/xfce4-session.nix
deleted file mode 100644
index 0e0f1a86939d..000000000000
--- a/pkgs/desktops/xfce-4.8/core/xfce4-session.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, gtk, libxfce4util, libxfce4ui
-, libwnck, dbus_glib, xfconf, xorg, xfce4panel }:
-
-stdenv.mkDerivation rec {
-  name = "xfce4-session-4.8.2";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/src/xfce/xfce4-session/4.8/${name}.tar.bz2";
-    sha1 = "636c2983552861a959225e554898675152a4d812";
-  };
-
-  buildInputs =
-    [ pkgconfig intltool gtk libxfce4util libxfce4ui libwnck dbus_glib
-      xfconf xorg.iceauth xfce4panel
-    ];
-
-  meta = {
-    homepage = http://www.xfce.org/;
-    description = "Session manager for Xfce";
-    license = "GPLv2+";
-    platforms = stdenv.lib.platforms.linux;
-    maintainers = [ stdenv.lib.maintainers.eelco ];
-  };
-}
diff --git a/pkgs/desktops/xfce-4.8/core/xfce4-settings.nix b/pkgs/desktops/xfce-4.8/core/xfce4-settings.nix
deleted file mode 100644
index dc6e8e555b21..000000000000
--- a/pkgs/desktops/xfce-4.8/core/xfce4-settings.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, exo, gtk, libxfce4util, libxfce4ui
-, xfconf, xorg, libnotify, libxklavier }:
-
-stdenv.mkDerivation rec {
-  name = "xfce4-settings-4.8.3";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/src/xfce/xfce4-settings/4.8/${name}.tar.bz2";
-    sha1 = "98431633ba3ec2a4a10182bc7266904d9256949b";
-  };
-
-  buildInputs =
-    [ pkgconfig intltool exo gtk libxfce4util libxfce4ui
-      xfconf libnotify xorg.libXcursor libxklavier
-    ];
-
-  configureFlags = "--enable-pluggable-dialogs --enable-sound-settings";
-
-  meta = {
-    homepage = http://www.xfce.org/;
-    description = "Settings manager for Xfce";
-    license = "GPLv2+";
-    platforms = stdenv.lib.platforms.linux;
-    maintainers = [ stdenv.lib.maintainers.eelco ];
-  };
-}
diff --git a/pkgs/desktops/xfce-4.8/core/xfconf.nix b/pkgs/desktops/xfce-4.8/core/xfconf.nix
deleted file mode 100644
index e0c61d3a1f59..000000000000
--- a/pkgs/desktops/xfce-4.8/core/xfconf.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, glib, libxfce4util, dbus_glib }:
-
-stdenv.mkDerivation rec {
-  name = "xfconf-4.8.1";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/src/xfce/xfconf/4.8/${name}.tar.bz2";
-    sha1 = "aeab124f7c548e387b37a5476e594ef559515533";
-  };
-
-  buildInputs = [ pkgconfig intltool glib libxfce4util ];
-
-  propagatedBuildInputs = [ dbus_glib ];
-
-  meta = {
-    homepage = http://www.xfce.org/;
-    description = "Simple client-server configuration storage and query system for Xfce";
-    license = "GPLv2";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.8/core/xfdesktop.nix b/pkgs/desktops/xfce-4.8/core/xfdesktop.nix
deleted file mode 100644
index 45c82f1ec025..000000000000
--- a/pkgs/desktops/xfce-4.8/core/xfdesktop.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, gtk, dbus_glib, libxfce4util
-, libxfce4ui, libwnck, xfconf, garcon, libnotify, exo }:
-
-stdenv.mkDerivation rec {
-  name = "xfdesktop-4.8.3";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/src/xfce/xfdesktop/4.8/${name}.tar.bz2";
-    sha1 = "b3af72a69627f860f22b37d021efd81e4e37eb55";
-  };
-
-  buildInputs =
-    [ pkgconfig intltool gtk dbus_glib libxfce4util libxfce4ui libwnck xfconf
-      garcon libnotify exo
-    ];
-
-  enableParallelBuilding = true;
-
-  meta = {
-    homepage = http://www.xfce.org/;
-    description = "Xfce desktop manager";
-    license = "GPLv2+";
-    platforms = stdenv.lib.platforms.linux;
-    maintainers = [ stdenv.lib.maintainers.eelco ];
-  };
-}
diff --git a/pkgs/desktops/xfce-4.8/default.nix b/pkgs/desktops/xfce-4.8/default.nix
deleted file mode 100644
index 8e6f7c10234c..000000000000
--- a/pkgs/desktops/xfce-4.8/default.nix
+++ /dev/null
@@ -1,83 +0,0 @@
-{ callPackage, pkgs }:
-
-rec {
-  inherit (pkgs) gtk glib;
-
-  #### SUPPORT
-
-  # 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 { };
-
-  
-  #### CORE
-
-  libxfce4util = callPackage ./core/libxfce4util.nix { };
-
-  exo = callPackage ./core/exo.nix {
-    inherit (pkgs.perlPackages) URI;
-  };
-
-  xfconf = callPackage ./core/xfconf.nix { };
-  
-  libxfcegui4 = callPackage ./core/libxfcegui4.nix {
-    inherit (pkgs.gnome) libglade;
-  };
-
-  libxfce4ui = callPackage ./core/libxfce4ui.nix { };
-
-  xfwm4 = callPackage ./core/xfwm4.nix {
-    inherit (pkgs.gnome) libwnck;
-  };
-
-  xfceutils = callPackage ./core/xfce-utils.nix { };
-
-  garcon = callPackage ./core/garcon.nix { };
-
-  xfce4panel = callPackage ./core/xfce4-panel.nix {
-    inherit (pkgs.gnome) libwnck;
-  };
-
-  xfce4session = callPackage ./core/xfce4-session.nix {
-    inherit (pkgs.gnome) libwnck;
-  };
-
-  xfce4settings = callPackage ./core/xfce4-settings.nix { };
-
-  xfdesktop = callPackage ./core/xfdesktop.nix {
-    inherit (pkgs.gnome) libwnck;
-  };
-
-  thunar = callPackage ./core/thunar.nix { };
-
-  thunar_volman = callPackage ./core/thunar-volman.nix { };
-
-  gtk_xfce_engine = callPackage ./core/gtk-xfce-engine.nix { };
-
-  xfce4_appfinder = callPackage ./core/xfce4-appfinder.nix { };
-
-
-  #### APPLICATIONS
-  
-  terminal = callPackage ./applications/terminal.nix {
-    inherit (pkgs.gnome) vte;
-  };
-
-  mousepad = callPackage ./applications/mousepad.nix { };
-
-  ristretto = callPackage ./applications/ristretto.nix { };
-
-  xfce4_power_manager = callPackage ./applications/xfce4-power-manager.nix { };
-
-  xfce4mixer = callPackage ./applications/xfce4-mixer.nix { };
-
-  
-  #### ART
-
-  xfce4icontheme = callPackage ./art/xfce4-icon-theme.nix { };
-  
-}
diff --git a/pkgs/desktops/xfce-4.8/support/gvfs.nix b/pkgs/desktops/xfce-4.8/support/gvfs.nix
deleted file mode 100644
index 33f7315a9d9b..000000000000
--- a/pkgs/desktops/xfce-4.8/support/gvfs.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, glib, dbus, intltool, udev, libgdu, fuse }:
-
-stdenv.mkDerivation rec {
-  name = "gvfs-1.8.2";
-  
-  src = fetchurl {
-    url = "mirror://gnome/sources/gvfs/1.8/${name}.tar.bz2";
-    sha256 = "0895ac8f6d416e1b15433b6b6b68eb119c6e8b04fdb66db665d684355ef89345";
-  };
-
-  buildInputs = [ pkgconfig glib dbus.libs intltool udev libgdu fuse ];
-
-  meta = {
-    description = "Virtual Filesystem support library (for Xfce)";
-    platforms = stdenv.lib.platforms.linux;
-    maintainers = [ stdenv.lib.maintainers.eelco ];
-  };
-}
diff --git a/pkgs/desktops/xfce/4_08.nix b/pkgs/desktops/xfce/4_08.nix
new file mode 100644
index 000000000000..d29e3ac51ef0
--- /dev/null
+++ b/pkgs/desktops/xfce/4_08.nix
@@ -0,0 +1,37 @@
+{ pkgs, newScope }: let
+
+common = (import ./common.nix) { inherit pkgs newScope xfce_self; };
+callPackage = common.callPackage;
+
+xfce_self = common.xfce_common // rec { # the lines are very long but it seems better than the even-odd line approach
+
+  #### CORE
+
+  exo           = callPackage ./core/exo.nix                { v= "0.6.2"; h= "0f8zh5y057l7xffskjvky6k88hrnz6jyk35mvlfpmx26anlgd77l"; };
+  libxfce4ui    = callPackage ./core/libxfce4ui.nix         { v= "4.8.1"; h= "0mlrcr8rqmv047xrb2dbh7f4knsppb1anx2b05s015h6v8lyvjrr"; };
+  libxfce4util  = callPackage ./core/libxfce4util.nix       { v= "4.8.2"; h= "05n8586h2fwkibfld5fm4ygx1w66jnbqqb3li0ardjvm2n24k885"; };
+  libxfcegui4   = callPackage ./core/libxfcegui4.nix        { v= "4.8.1"; h= "0hr4h6a9p6w3qw1976p8v9c9pwhd9zhrjlbaph0p7nyz7j1836ih"; };
+  thunar        = callPackage ./core/thunar.nix             { v= "1.2.3"; h= "19mczys6xr683r68g3s2njrrmnk1p73zypvwrhajw859c6nsjsp6"; };
+  xfce4panel    = callPackage ./core/xfce4-panel.nix        { v= "4.8.6"; h= "00zdkg1jg4n2n109nxan8ji2m06r9mc4lnlrvb55xvj229m2dwb6"; };
+  xfce4session  = callPackage ./core/xfce4-session.nix      { v= "4.8.2"; h= "1l608kik98jxbjl73waf8515hzji06lr80qmky2qlnp0b6js5g1i"; };
+  xfce4settings = callPackage ./core/xfce4-settings.nix     { v= "4.8.3"; h= "0bmw0s6jp2ws4n0f3387zwsyv46b0w89m6r70yb7wrqy9r3wqy6q"; };
+  xfceutils     = callPackage ./core/xfce-utils.nix         { v= "4.8.3"; h= "09mr0amp2f632q9i3vykaa0x5nrfihfm9v5nxsx9vch8wvbp0l03"; };
+  xfconf        = callPackage ./core/xfconf.nix             { v= "4.8.1"; h= "1jwkb73xcgqfly449jwbn2afiyx50p150z60x19bicps75sp6q4q"; };
+  xfdesktop     = callPackage ./core/xfdesktop.nix          { v= "4.8.3"; h= "097lc9djmay0jyyl42jmvcfda75ndp265nzn0aa3hv795bsn1175"; };
+  xfwm4         = callPackage ./core/xfwm4.nix              { v= "4.8.3"; h= "0zi2g1d2jdgw5armlk9xjh4ykmydy266gdba86nmhy951gm8n3hb"; };
+
+  xfce4_appfinder = callPackage ./core/xfce4-appfinder.nix  { v= "4.8.0"; h= "0zy7i9x4qjchmyb8nfpb7m2ply5n2aq35p9wrhb8lpz4am1ihx7x"; };
+
+  #### APPLICATIONS
+
+  terminal      = null; # newer versions don't build with 4.8
+
+    # versions > 0.3* don't build with xfce-4.8.*
+  ristretto     = callPackage ./applications/ristretto.nix    { v= "0.3.7"; h= "19mzy159j4qhd7pd1b83gimxfdg3mwdab9lq9kk505d21r7iqc9b"; };
+
+  xfce4mixer    = callPackage ./applications/xfce4-mixer.nix  { v= "4.8.0"; h= "1aqgjxvck6hx26sk3n4n5avhv02vs523mfclcvjb3xnks3yli7wz"; };
+
+}; # xfce_self
+
+in xfce_self
+
diff --git a/pkgs/desktops/xfce/4_10.nix b/pkgs/desktops/xfce/4_10.nix
new file mode 100644
index 000000000000..3f846198e3f5
--- /dev/null
+++ b/pkgs/desktops/xfce/4_10.nix
@@ -0,0 +1,35 @@
+{ pkgs, newScope }: let
+
+common = (import ./common.nix) { inherit pkgs newScope xfce_self; };
+callPackage = common.callPackage;
+
+xfce_self = common.xfce_common // rec { # the lines are very long but it seems better than the even-odd line approach
+
+  #### CORE
+
+  exo             = callPackage ./core/exo.nix              { v= "0.10.2"; h= "1kknxiz703q4snmry65ajm26jwjslbgpzdal6bd090m3z25q51dk"; };
+  libxfce4ui      = callPackage ./core/libxfce4ui.nix       { v= "4.10.0"; h= "1qm31s6568cz4c8rl9fsfq0xmf7pldxm0ki62gx1cpybihlgmfd2"; };
+  libxfce4util    = callPackage ./core/libxfce4util.nix     { v= "4.10.0"; h= "13k0wwbbqvdmbj4xmk4nxdlgvrdgr5y6r3dk380mzfw053hzwy89"; };
+  libxfcegui4     = callPackage ./core/libxfcegui4.nix      { v= "4.10.0"; h= "0cs5im0ib0cmr1lhr5765yliqjfyxvk4kwy8h1l8bn3mj6bzk0ib"; };
+  thunar          = callPackage ./core/thunar.nix           { v= "1.6.2";  h= "11dx38rvkfbp91pxrprymxhimsm90gvizp277x9s5rwnwcm1ggbx"; };
+  xfce4panel      = callPackage ./core/xfce4-panel.nix      { v= "4.10.0"; h= "1f8903nx6ivzircl8d8s9zna4vjgfy0qhjk5d2x19g9bmycgj89k"; };
+  xfce4session    = callPackage ./core/xfce4-session.nix    { v= "4.10.0"; h= "1kj65jkjhd0ysf0yxsf88wzpyv6n8i8qgd3gb502hf1x9jksk2mv"; };
+  xfce4settings   = callPackage ./core/xfce4-settings.nix   { v= "4.10.0"; h= "0zppq747z9lrxyv5zrrvpalq7hb3gfhy9p7qbldisgv7m6dz0hq8"; };
+  xfceutils       = null; # removed in 4.10
+  xfconf          = callPackage ./core/xfconf.nix           { v= "4.10.0"; h= "0xh520z0qh0ib0ijgnyrgii9h5d4pc53n6mx1chhyzfc86j1jlhp"; };
+  xfdesktop       = callPackage ./core/xfdesktop.nix        { v= "4.10.0"; h= "0yrddj1lgk3xn4w340y89z7x2isks72ia36pka08kk2x8gpfcyl9"; };
+  xfwm4           = callPackage ./core/xfwm4.nix            { v= "4.10.0"; h= "170zzs7adj47srsi2cl723w9pl8k8awd7w1bpzxby7hj92zmf8s9"; };
+
+  xfce4_appfinder = callPackage ./core/xfce4-appfinder.nix  { v= "4.9.4";  h= "12lgrbd1n50w9n8xkpai98s2aw8vmjasrgypc57sp0x0qafsqaxq"; };
+
+  #### APPLICATIONS
+
+  ristretto     = callPackage ./applications/ristretto.nix    { v= "0.6.3";  h= "0y9d8w1plwp4vmxs44y8k8x15i0k0xln89k6jndhv6lf57g1cs1b"; };
+  terminal      = xfce4terminal; # it has changed its name
+  xfce4mixer    = callPackage ./applications/xfce4-mixer.nix  { v= "4.10.0"; h= "1pnsd00583l7p5d80rxbh58brzy3jnccwikbbbm730a33c08kid8"; };
+  xfce4terminal = callPackage ./applications/terminal.nix     { v= "0.6.1";  h= "1j6lpkq952mrl5p24y88f89wn9g0namvywhma639xxsswlkn8d31"; };
+
+};
+
+in xfce_self
+
diff --git a/pkgs/desktops/xfce/applications/gigolo.nix b/pkgs/desktops/xfce/applications/gigolo.nix
new file mode 100644
index 000000000000..94b6392e068d
--- /dev/null
+++ b/pkgs/desktops/xfce/applications/gigolo.nix
@@ -0,0 +1,19 @@
+{ h, v, stdenv, fetchXfce, python, gettext, intltool, pkgconfig, gtk, gvfs }:
+
+stdenv.mkDerivation rec {
+  name = "gigolo-${v}";
+
+  src = fetchXfce.app name h;
+
+  buildInputs = [ python gettext intltool gtk pkgconfig gvfs];
+
+  preConfigure = ''
+    sed -i "waf" -e "1 s^.*/env[ ]*python^#!${python}/bin/python^";
+  '';
+
+  meta = {
+    homepage = http://goodies.xfce.org/projects/applications/gigolo;
+    description = "A frontend to easily manage connections to remote filesystems";
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/xfce/applications/mousepad.nix b/pkgs/desktops/xfce/applications/mousepad.nix
new file mode 100644
index 000000000000..3d5c14e84d45
--- /dev/null
+++ b/pkgs/desktops/xfce/applications/mousepad.nix
@@ -0,0 +1,18 @@
+{ v, h, stdenv, fetchXfce, pkgconfig, intltool, libxfce4util, libxfcegui4
+, gtk, gtksourceview, dbus, dbus_glib }:
+
+stdenv.mkDerivation rec {
+  name = "mousepad-${v}";
+  src = fetchXfce.app name h;
+
+  buildInputs = [
+    pkgconfig intltool libxfce4util libxfcegui4
+    gtk gtksourceview dbus dbus_glib
+  ];
+
+  meta = {
+    homepage = http://www.xfce.org/projects/mousepad/;
+    description = "A simple text editor for Xfce";
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/desktops/xfce-4.8/applications/ristretto.nix b/pkgs/desktops/xfce/applications/ristretto.nix
index ce90891bb0ba..bfe7932cdf3c 100644
--- a/pkgs/desktops/xfce-4.8/applications/ristretto.nix
+++ b/pkgs/desktops/xfce/applications/ristretto.nix
@@ -1,18 +1,15 @@
-{ stdenv, fetchurl, pkgconfig, intltool, libexif, gtk, thunar
+{ v, h, stdenv, fetchXfce, pkgconfig, intltool, libexif, gtk
 , exo, dbus_glib, libxfce4util, libxfce4ui, xfconf }:
 
 stdenv.mkDerivation rec {
-  name = "ristretto-0.2.3";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/src/apps/ristretto/0.2/${name}.tar.bz2";
-    sha1 = "5a34b865cb9013b67467b0e8d51970f0a1e977d1";
-  };
+  name = "ristretto-${v}";
+  src = fetchXfce.app name h;
 
   buildInputs =
-    [ pkgconfig intltool libexif gtk dbus_glib libxfce4util
+    [ pkgconfig intltool libexif gtk dbus_glib exo libxfce4util
       libxfce4ui xfconf
     ];
+  preFixup = "rm $out/share/icons/hicolor/icon-theme.cache";
 
   meta = {
     homepage = http://goodies.xfce.org/projects/applications/ristretto;
diff --git a/pkgs/desktops/xfce/applications/terminal.nix b/pkgs/desktops/xfce/applications/terminal.nix
new file mode 100644
index 000000000000..f217995d0066
--- /dev/null
+++ b/pkgs/desktops/xfce/applications/terminal.nix
@@ -0,0 +1,16 @@
+{ v, h, stdenv, fetchXfce, pkgconfig, intltool, ncurses, gtk, vte, dbus_glib
+, exo, libxfce4util, libxfce4ui
+}:
+
+stdenv.mkDerivation rec {
+  name = "xfce4-terminal-${v}";
+  src = fetchXfce.app name h;
+
+  buildInputs = [ pkgconfig intltool exo gtk vte libxfce4util ncurses dbus_glib libxfce4ui ];
+
+  meta = {
+    homepage = http://www.xfce.org/projects/terminal;
+    description = "A modern terminal emulator primarily for the Xfce desktop environment";
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/desktops/xfce-4.8/applications/xfce4-mixer.nix b/pkgs/desktops/xfce/applications/xfce4-mixer.nix
index 2f1ab8a8e93c..1236d38f59eb 100644
--- a/pkgs/desktops/xfce-4.8/applications/xfce4-mixer.nix
+++ b/pkgs/desktops/xfce/applications/xfce4-mixer.nix
@@ -1,8 +1,7 @@
-{ stdenv, fetchurl, pkgconfig, intltool, glib, gstreamer, gst_plugins_base
-, gtk, libxfce4util, libxfce4ui, xfce4panel, xfconf }:
+{ v, h, stdenv, fetchXfce, pkgconfig, intltool, glib, gstreamer, gst_plugins_base, gtk
+, libxfce4util, libxfce4ui, xfce4panel, xfconf, libunique?null }:
 
 let
-
   # The usual Gstreamer plugins package has a zillion dependencies
   # that we don't need for a simple mixer, so build a minimal package.
   gst_plugins_minimal = gst_plugins_base.override {
@@ -12,16 +11,12 @@ let
 in
 
 stdenv.mkDerivation rec {
-  name = "xfce4-mixer-4.8.0";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/src/apps/xfce4-mixer/4.8/${name}.tar.bz2";
-    sha1 = "24f3401a68f10d2c620e354a6de98e09fe808665";
-  };
+  name = "xfce4-mixer-${v}";
+  src = fetchXfce.app name h;
 
   buildInputs =
     [ pkgconfig intltool glib gstreamer gst_plugins_minimal gtk
-      libxfce4util libxfce4ui xfce4panel xfconf
+      libxfce4util libxfce4ui xfce4panel xfconf libunique
     ];
 
   postInstall =
@@ -31,7 +26,7 @@ stdenv.mkDerivation rec {
     '';
 
   meta = {
-    homepage = http://www.xfce.org/projects/xfce4-mixer;
+    homepage = http://www.xfce.org/projects/xfce4-mixer; # referenced but inactive
     description = "A volume control application for the Xfce desktop environment";
     license = "GPLv2+";
     platforms = stdenv.lib.platforms.linux;
diff --git a/pkgs/desktops/xfce/applications/xfce4-notifyd.nix b/pkgs/desktops/xfce/applications/xfce4-notifyd.nix
new file mode 100644
index 000000000000..b7cd3b0e638a
--- /dev/null
+++ b/pkgs/desktops/xfce/applications/xfce4-notifyd.nix
@@ -0,0 +1,21 @@
+{ v, h, stdenv, fetchXfce, pkgconfig, intltool
+, gtk , libxfce4util, libxfce4ui, xfconf }:
+
+stdenv.mkDerivation rec {
+  name = "xfce4-notifyd-${v}";
+  src = fetchXfce.app name h;
+
+  buildInputs = [ pkgconfig intltool 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
+  '';
+
+  meta = {
+    homepage = http://goodies.xfce.org/projects/applications/xfce4-notifyd;
+    description = "Notification daemon for Xfce";
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/desktops/xfce/applications/xfce4-taskmanager.nix b/pkgs/desktops/xfce/applications/xfce4-taskmanager.nix
new file mode 100644
index 000000000000..4653a678a991
--- /dev/null
+++ b/pkgs/desktops/xfce/applications/xfce4-taskmanager.nix
@@ -0,0 +1,14 @@
+{ stdenv, v, h, fetchXfce, intltool, pkgconfig, gtk, libwnck }:
+
+stdenv.mkDerivation rec {
+  name = "xfce4-taskmanager-${v}";
+  src = fetchXfce.app name h;
+
+  buildInputs = [ intltool pkgconfig gtk libwnck ];
+
+  meta = {
+    homepage = http://goodies.xfce.org/projects/applications/xfce4-taskmanager;
+    description = "Easy to use task manager for XFCE";
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/xfce-4.8/art/xfce4-icon-theme.nix b/pkgs/desktops/xfce/art/xfce4-icon-theme.nix
index afa934b60316..dd170f8ebdbf 100644
--- a/pkgs/desktops/xfce-4.8/art/xfce4-icon-theme.nix
+++ b/pkgs/desktops/xfce/art/xfce4-icon-theme.nix
@@ -1,12 +1,8 @@
-{ stdenv, fetchurl, pkgconfig, intltool, gtk }:
+{ v, h, stdenv, fetchXfce, pkgconfig, intltool, gtk }:
 
 stdenv.mkDerivation rec {
-  name = "xfce4-icon-theme-4.4.3";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/src/art/xfce4-icon-theme/4.4/${name}.tar.bz2";
-    sha1 = "0c0d0c45cd4a7f609310db8e9d17c1c4a131a6e7";
-  };
+  name = "xfce4-icon-theme-${v}";
+  src = fetchXfce.art name h;
 
   buildInputs = [ pkgconfig intltool gtk ];
 
diff --git a/pkgs/desktops/xfce/common.nix b/pkgs/desktops/xfce/common.nix
new file mode 100644
index 000000000000..8be4ac09e145
--- /dev/null
+++ b/pkgs/desktops/xfce/common.nix
@@ -0,0 +1,72 @@
+{ pkgs, newScope, xfce_self }: rec {
+
+  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 { };
+
+    # intelligent fetcher for Xfce
+    fetchXfce = rec {
+      generic = prepend : name : hash :
+        let lib = pkgs.lib;
+            p = builtins.parseDrvName name;
+            versions = lib.splitString "." p.version;
+            ver_maj = lib.concatStrings (lib.intersperse "." (lib.take 2 versions));
+            name_low = lib.toLower p.name;
+        in pkgs.fetchurl {
+          url = "mirror://xfce/src/${prepend}/${name_low}/${ver_maj}/${name}.tar.bz2";
+          sha256 = hash;
+        };
+      core = generic "xfce";
+      app = generic "apps";
+      art = generic "art";
+    };
+  };
+
+  xfce_common = rec {
+
+    inherit (deps) gvfs; # used by NixOS
+
+    #### CORE
+
+    garcon  = callPackage ./core/garcon.nix { v= "0.2.0";   h= "0v7pkvxcayi86z4f173z5l7w270f3g369sa88z59w0y0p7ns7ph2"; };
+
+    # not used anymore TODO: really? Update to 2.99.2?
+    gtk_xfce_engine = callPackage ./core/gtk-xfce-engine.nix { };
+
+    # ToDo: segfaults after some work
+    tumbler = callPackage ./core/tumbler.nix  { v= "0.1.27"; h= "0s9qj99b81asmlqa823nzykq8g6p9azcp2niak67y9bp52wv6q2c"; };
+
+    xfce4_power_manager = callPackage ./core/xfce4-power-manager.nix  { v= "1.0.10"; h= "1w120k1sl4s459ijaxkqkba6g1p2sqrf9paljv05wj0wz12bpr40"; };
+
+
+    #### APPLICATIONS
+    #TODO: correct links; more stuff
+
+    xfce4notifyd      = callPackage ./applications/xfce4-notifyd.nix      { v= "0.2.2"; h= "0s4ilc36sl5k5mg5727rmqims1l3dy5pwg6dk93wyjqnqbgnhvmn"; };
+    gigolo            = callPackage ./applications/gigolo.nix             { v= "0.4.1"; h= "1y8p9bbv1a4qgbxl4vn6zbag3gb7gl8qj75cmhgrrw9zrvqbbww2"; };
+    xfce4taskmanager  = callPackage ./applications/xfce4-taskmanager.nix  { v= "1.0.0"; h= "1vm9gw7j4ngjlpdhnwdf7ifx6xrrn21011almx2vwidhk2f9zvy0"; };
+    mousepad          = callPackage ./applications/mousepad.nix           { v= "0.3.0"; h= "0v84zwhjv2xynvisn5vmp7dbxfj4l4258m82ks7hn3adk437bwhh"; };
+    thunar_volman     = callPackage ./core/thunar-volman.nix              { };
+
+    #### ART
+
+    xfce4icontheme  = callPackage ./art/xfce4-icon-theme.nix  { v= "4.4.3"; h= "1yk6rx3zr9grm4jwpjvqdkl13pisy7qn1wm5cqzmd2kbsn96cy6l"; };
+
+    #### PANEL PLUGINS
+
+    xfce4_systemload_plugin = callPackage ./panel-plugins/xfce4-systemload-plugin.nix { };
+    xfce4_cpufreq_plugin    = callPackage ./panel-plugins/xfce4-cpufreq-plugin.nix    { };
+
+  };
+}
+
diff --git a/pkgs/desktops/xfce/core/exo.nix b/pkgs/desktops/xfce/core/exo.nix
new file mode 100644
index 000000000000..03a0d5872b54
--- /dev/null
+++ b/pkgs/desktops/xfce/core/exo.nix
@@ -0,0 +1,16 @@
+{ v, h, stdenv, fetchXfce, pkgconfig, intltool, URI, glib, gtk, libxfce4ui, libxfce4util }:
+
+stdenv.mkDerivation rec {
+  name = "exo-${v}";
+  src = fetchXfce.core name h;
+
+  buildInputs = [ pkgconfig intltool URI glib gtk libxfce4ui libxfce4util ];
+
+  preFixup = "rm $out/share/icons/hicolor/icon-theme.cache";
+
+  meta = {
+    homepage = http://www.xfce.org/projects/exo;
+    description = "Application library for the Xfce desktop environment";
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/desktops/xfce/core/garcon.nix b/pkgs/desktops/xfce/core/garcon.nix
new file mode 100644
index 000000000000..d6480c54cc41
--- /dev/null
+++ b/pkgs/desktops/xfce/core/garcon.nix
@@ -0,0 +1,14 @@
+{ v, h, stdenv, fetchXfce, pkgconfig, intltool, glib, libxfce4util }:
+
+stdenv.mkDerivation rec {
+  name = "garcon-${v}";
+  src = fetchXfce.core name h;
+
+  buildInputs = [ pkgconfig intltool glib libxfce4util ];
+
+  meta = {
+    homepage = http://www.xfce.org/;
+    description = "Xfce menu support library";
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/desktops/xfce/core/gtk-xfce-engine.nix b/pkgs/desktops/xfce/core/gtk-xfce-engine.nix
new file mode 100644
index 000000000000..8bd6bc5bde25
--- /dev/null
+++ b/pkgs/desktops/xfce/core/gtk-xfce-engine.nix
@@ -0,0 +1,17 @@
+{ stdenv, fetchXfce, pkgconfig, intltool, gtk }:
+
+stdenv.mkDerivation rec {
+  name = "gtk-xfce-engine-3.0.1";
+  src = fetchXfce.core name "0vd0ly81540f9133abza56mlqqx1swp0j70ll8kf948sva0wy0zb";
+
+  #TODO: gtk3
+  buildInputs = [ pkgconfig intltool gtk ];
+
+  meta = {
+    homepage = http://www.xfce.org/;
+    description = "GTK+ theme engine for Xfce";
+    license = "GPLv2+";
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.eelco ];
+  };
+}
diff --git a/pkgs/desktops/xfce/core/libxfce4ui.nix b/pkgs/desktops/xfce/core/libxfce4ui.nix
new file mode 100644
index 000000000000..e9f6fe3a3f90
--- /dev/null
+++ b/pkgs/desktops/xfce/core/libxfce4ui.nix
@@ -0,0 +1,28 @@
+{ v, h, stdenv, fetchXfce, pkgconfig, intltool, gtk, libxfce4util, xfconf
+, libglade, libstartup_notification }:
+
+stdenv.mkDerivation rec {
+  name = "libxfce4ui-${v}";
+  src = fetchXfce.core name h;
+
+  #TODO: gladeui
+  # Install into our own prefix instead.
+  preConfigure =
+    ''
+      configureFlags="--with-libglade-module-path=$out/lib/libglade/2.0"
+    '';
+
+  buildInputs =
+    [ pkgconfig intltool gtk libxfce4util xfconf libglade
+      libstartup_notification
+    ];
+
+  enableParallelBuilding = true;
+
+  meta = {
+    homepage = http://www.xfce.org/projects/libxfce4;
+#TODO
+    description = "Basic GUI library for Xfce";
+    license = "LGPLv2+";
+  };
+}
diff --git a/pkgs/desktops/xfce/core/libxfce4util.nix b/pkgs/desktops/xfce/core/libxfce4util.nix
new file mode 100644
index 000000000000..6b16d890a3e0
--- /dev/null
+++ b/pkgs/desktops/xfce/core/libxfce4util.nix
@@ -0,0 +1,14 @@
+{ v, h, stdenv, fetchXfce, pkgconfig, glib, intltool }:
+
+stdenv.mkDerivation rec {
+  name = "libxfce4util-${v}";
+  src = fetchXfce.core name h;
+
+  buildInputs = [ pkgconfig glib intltool ];
+
+  meta = {
+    homepage = http://www.xfce.org/projects/libxfce4;
+    description = "Basic utility non-GUI functions for Xfce";
+    license = "bsd";
+  };
+}
diff --git a/pkgs/desktops/xfce-4.6/core/libxfcegui4.nix b/pkgs/desktops/xfce/core/libxfcegui4.nix
index 056853f9eb15..6fcc1c754c86 100644
--- a/pkgs/desktops/xfce-4.6/core/libxfcegui4.nix
+++ b/pkgs/desktops/xfce/core/libxfcegui4.nix
@@ -1,25 +1,24 @@
-{ stdenv, fetchurl, pkgconfig, intltool, gtk, libxfce4util, xfconf
-, libglade, libstartup_notification }:
+{ v, h, stdenv, fetchXfce, pkgconfig, intltool, gtk
+, libxfce4util, xfconf, libglade, libstartup_notification }:
 
 stdenv.mkDerivation rec {
-  name = "libxfcegui4-4.6.4";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/xfce-4.6.2/src/${name}.tar.bz2";
-    sha1 = "a12c79f8fa14c5d1fc0fca5615a451b7d23f8695";
-  };
+  name = "libxfcegui4-${v}";
+  src = fetchXfce.core name h;
 
+  #TODO: gladeui
   # By default, libxfcegui4 tries to install into libglade's prefix.
   # Install into our own prefix instead.
   preConfigure =
     ''
       configureFlags="--with-libglade-module-path=$out/lib/libglade/2.0"
     '';
+  #NOTE: missing keyboard library support is OK according to the mailing-list
 
   buildInputs =
     [ pkgconfig intltool gtk libxfce4util xfconf libglade
       libstartup_notification
     ];
+  preFixup = "rm $out/share/icons/hicolor/icon-theme.cache";
 
   meta = {
     homepage = http://www.xfce.org/;
diff --git a/pkgs/desktops/xfce-4.8/core/thunar-volman.nix b/pkgs/desktops/xfce/core/thunar-volman.nix
index 490390d1bac3..92f4739b540a 100644
--- a/pkgs/desktops/xfce-4.8/core/thunar-volman.nix
+++ b/pkgs/desktops/xfce/core/thunar-volman.nix
@@ -3,7 +3,7 @@
 
 stdenv.mkDerivation rec {
   name = "thunar-volman-0.6.0";
-  
+
   src = fetchurl {
     url = "http://archive.xfce.org/src/xfce/thunar-volman/0.6/${name}.tar.bz2";
     sha1 = "dcda936948623b342b290a78c294f71c038e832e";
@@ -13,6 +13,7 @@ stdenv.mkDerivation rec {
     [ pkgconfig intltool exo gtk udev libxfce4ui libxfce4util
       xfconf libnotify
     ];
+  preFixup = "rm $out/share/icons/hicolor/icon-theme.cache";
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/desktops/xfce/core/thunar.nix b/pkgs/desktops/xfce/core/thunar.nix
new file mode 100644
index 000000000000..8cd47d787c62
--- /dev/null
+++ b/pkgs/desktops/xfce/core/thunar.nix
@@ -0,0 +1,25 @@
+{ v, h, stdenv, fetchXfce, pkgconfig, intltool, exo, gtk, libxfce4util
+, dbus_glib, libstartup_notification, libnotify, xfconf, xfce4panel, gamin, libexif, pcre }:
+
+stdenv.mkDerivation rec {
+  name = "Thunar-${v}";
+  src = fetchXfce.core name h;
+
+  buildInputs =
+    [ pkgconfig intltool exo gtk libxfce4util
+      dbus_glib libstartup_notification libnotify xfconf xfce4panel gamin libexif pcre
+    ];
+  # TODO: gudev, optionality
+
+  enableParallelBuilding = true;
+
+  preFixup = "rm $out/share/icons/hicolor/icon-theme.cache";
+
+  meta = {
+    homepage = http://thunar.xfce.org/;
+    description = "Xfce file manager";
+    license = "GPLv2+";
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.eelco ];
+  };
+}
diff --git a/pkgs/desktops/xfce/core/tumbler.nix b/pkgs/desktops/xfce/core/tumbler.nix
new file mode 100644
index 000000000000..c9bcb9aeb9af
--- /dev/null
+++ b/pkgs/desktops/xfce/core/tumbler.nix
@@ -0,0 +1,14 @@
+{ v, h, stdenv, fetchXfce, pkgconfig, intltool, dbus_glib, gdk_pixbuf }:
+
+stdenv.mkDerivation rec {
+  name = "tumbler-${v}";
+  src = fetchXfce.core name h;
+
+  buildInputs = [ pkgconfig intltool dbus_glib gdk_pixbuf ];
+
+  meta = {
+    homepage = http://git.xfce.org/xfce/tumbler/;
+    description = "A D-Bus thumbnailer service";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/xfce-4.8/core/xfce-utils.nix b/pkgs/desktops/xfce/core/xfce-utils.nix
index fde8a2c3953a..625780adb313 100644
--- a/pkgs/desktops/xfce-4.8/core/xfce-utils.nix
+++ b/pkgs/desktops/xfce/core/xfce-utils.nix
@@ -1,19 +1,17 @@
-{ stdenv, fetchurl, pkgconfig, intltool, gtk, libxfce4util, libxfce4ui }:
+{ v, h, stdenv, fetchXfce, pkgconfig, intltool, gtk, libxfce4util, libxfce4ui, dbus_glib }:
 
 stdenv.mkDerivation rec {
-  name = "xfce-utils-4.8.3";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/src/xfce/xfce-utils/4.8/${name}.tar.bz2";
-    sha1 = "159d445b689ebbf73462a4b4baf5cce4e04afaab";
-  };
+  name = "xfce-utils-${v}";
+  src = fetchXfce.core name h;
 
   configureFlags = "--with-xsession-prefix=$(out)/share/xsessions --with-vendor-info=NixOS.org";
 
-  buildInputs = [ pkgconfig intltool gtk libxfce4util libxfce4ui ];
+  buildInputs = [ pkgconfig intltool gtk libxfce4util libxfce4ui dbus_glib ];
+
+  preFixup = "rm $out/share/icons/hicolor/icon-theme.cache";
 
   meta = {
-    homepage = http://www.xfce.org/;
+    homepage = http://www.xfce.org/projects/xfce-utils;
     description = "Utilities and scripts for Xfce";
     license = "GPLv2+";
     platforms = stdenv.lib.platforms.linux;
diff --git a/pkgs/desktops/xfce-4.8/core/xfce4-appfinder.nix b/pkgs/desktops/xfce/core/xfce4-appfinder.nix
index b8165ebb1783..b37cbd95b996 100644
--- a/pkgs/desktops/xfce-4.8/core/xfce4-appfinder.nix
+++ b/pkgs/desktops/xfce/core/xfce4-appfinder.nix
@@ -1,13 +1,9 @@
-{ stdenv, fetchurl, pkgconfig, intltool, glib, gtk, libxfce4util
+{ v, h, stdenv, fetchXfce, pkgconfig, intltool, glib, gtk, libxfce4util
 , libxfce4ui, garcon, xfconf }:
 
 stdenv.mkDerivation rec {
-  name = "xfce4-appfinder-4.8.0";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/src/xfce/xfce4-appfinder/4.8/${name}.tar.bz2";
-    sha1 = "444bbcbded8d2346f9b9beb57ec7adaf556811c9";
-  };
+  name = "xfce4-appfinder-${v}";
+  src = fetchXfce.core name h;
 
   buildInputs =
     [ pkgconfig intltool glib gtk libxfce4util libxfce4ui garcon xfconf ];
@@ -15,7 +11,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = {
-    homepage = http://www.xfce.org/;
+    homepage = http://docs.xfce.org/xfce/xfce4-appfinder/;
     description = "Xfce application finder, a tool to locate and launch programs on your system";
     license = "GPLv2+";
     platforms = stdenv.lib.platforms.linux;
diff --git a/pkgs/desktops/xfce/core/xfce4-panel-datadir.patch b/pkgs/desktops/xfce/core/xfce4-panel-datadir.patch
new file mode 100644
index 000000000000..ed9df9ef36f3
--- /dev/null
+++ b/pkgs/desktops/xfce/core/xfce4-panel-datadir.patch
@@ -0,0 +1,24 @@
+diff --git a/panel/panel-module-factory.c b/panel/panel-module-factory.c
+index 529fe85..8c792b7 100644
+--- a/panel/panel-module-factory.c
++++ b/panel/panel-module-factory.c
+@@ -39,6 +39,7 @@
+ #include <panel/panel-module.h>
+ #include <panel/panel-module-factory.h>
+ 
++#define DATADIR "/run/current-system/sw/share/xfce4"
+ #define PANEL_PLUGINS_DATA_DIR     (DATADIR G_DIR_SEPARATOR_S "panel" G_DIR_SEPARATOR_S "plugins")
+ #define PANEL_PLUGINS_DATA_DIR_OLD (DATADIR G_DIR_SEPARATOR_S "panel-plugins")
+ 
+diff --git a/panel/panel-module.c b/panel/panel-module.c
+index ba39320..519440b 100644
+--- a/panel/panel-module.c
++++ b/panel/panel-module.c
+@@ -35,6 +35,7 @@
+ #include <panel/panel-plugin-external-wrapper.h>
+ #include <panel/panel-plugin-external-46.h>
+ 
++#define LIBDIR "/run/current-system/sw/lib/xfce4"
+ #define PANEL_PLUGINS_LIB_DIR (LIBDIR G_DIR_SEPARATOR_S "panel" G_DIR_SEPARATOR_S "plugins")
+ #define PANEL_PLUGINS_LIB_DIR_OLD (LIBDIR G_DIR_SEPARATOR_S "panel-plugins")
+ 
diff --git a/pkgs/desktops/xfce/core/xfce4-panel.nix b/pkgs/desktops/xfce/core/xfce4-panel.nix
new file mode 100644
index 000000000000..cfce1a57780a
--- /dev/null
+++ b/pkgs/desktops/xfce/core/xfce4-panel.nix
@@ -0,0 +1,28 @@
+{ v, h, stdenv, fetchXfce, pkgconfig, intltool, gtk, libxfce4util, libxfce4ui
+, libwnck, exo, garcon, xfconf, libstartup_notification }:
+
+stdenv.mkDerivation rec {
+  name = "xfce4-panel-${v}";
+  src = fetchXfce.core name h;
+
+  patches = [ ./xfce4-panel-datadir.patch ];
+  patchFlags = "-p1";
+
+  buildInputs =
+    [ pkgconfig intltool gtk libxfce4util exo libwnck
+      garcon xfconf libstartup_notification
+    ];
+  propagatedBuildInputs = [ libxfce4ui ];
+
+  preFixup = "rm $out/share/icons/hicolor/icon-theme.cache";
+
+  enableParallelBuilding = true;
+
+  meta = {
+    homepage = http://www.xfce.org/projects/xfce4-panel;
+    description = "Xfce panel";
+    license = "GPLv2+";
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.eelco ];
+  };
+}
diff --git a/pkgs/desktops/xfce-4.8/applications/xfce4-power-manager.nix b/pkgs/desktops/xfce/core/xfce4-power-manager.nix
index bad3b52a6bbc..3928b43eb0ba 100644
--- a/pkgs/desktops/xfce-4.8/applications/xfce4-power-manager.nix
+++ b/pkgs/desktops/xfce/core/xfce4-power-manager.nix
@@ -1,18 +1,15 @@
-{ stdenv, fetchurl, pkgconfig, intltool, gtk, dbus_glib, xfconf
+{ v, h, stdenv, fetchXfce, pkgconfig, intltool, gtk, dbus_glib, xfconf
 , libxfce4ui, libxfce4util, libnotify, xfce4panel }:
 
 stdenv.mkDerivation rec {
-  name = "xfce4-power-manager-1.0.10";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/src/apps/xfce4-power-manager/1.0/${name}.tar.bz2";
-    sha1 = "64dd7a8fae9cd1cbcf6403d2f51f2281f38cca05";
-  };
+  name = "xfce4-power-manager-${v}";
+  src = fetchXfce.core name h;
 
   buildInputs =
     [ pkgconfig intltool gtk dbus_glib xfconf libxfce4ui libxfce4util
       libnotify xfce4panel
     ];
+  preFixup = "rm $out/share/icons/hicolor/icon-theme.cache";
 
   meta = {
     homepage = http://goodies.xfce.org/projects/applications/xfce4-power-manager;
diff --git a/pkgs/desktops/xfce/core/xfce4-session.nix b/pkgs/desktops/xfce/core/xfce4-session.nix
new file mode 100644
index 000000000000..00d3e6d27833
--- /dev/null
+++ b/pkgs/desktops/xfce/core/xfce4-session.nix
@@ -0,0 +1,26 @@
+{ v, h, stdenv, fetchXfce, pkgconfig, intltool, gtk, libxfce4util, libxfce4ui, xfce4panel
+, libwnck, dbus_glib, xfconf, libglade, xorg }:
+
+#TODO: gnome stuff: gconf (assistive?), keyring
+
+stdenv.mkDerivation rec {
+  name = "xfce4-session-${v}";
+  src = fetchXfce.core name h;
+
+  buildInputs =
+    [ pkgconfig intltool gtk libxfce4util libxfce4ui libwnck dbus_glib
+      xfconf xfce4panel libglade xorg.iceauth
+    ];
+
+  configureFlags = [ "--with-xsession-prefix=$$out" ];
+
+  preFixup = "rm $out/share/icons/hicolor/icon-theme.cache";
+
+  meta = {
+    homepage = http://www.xfce.org/projects/xfce4-session;
+    description = "Session manager for Xfce";
+    license = "GPLv2+";
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.eelco ];
+  };
+}
diff --git a/pkgs/desktops/xfce/core/xfce4-settings.nix b/pkgs/desktops/xfce/core/xfce4-settings.nix
new file mode 100644
index 000000000000..c228e90bcaef
--- /dev/null
+++ b/pkgs/desktops/xfce/core/xfce4-settings.nix
@@ -0,0 +1,24 @@
+{ v, h, stdenv, fetchXfce, pkgconfig, intltool, exo, gtk, libxfce4util, libxfce4ui
+, libglade, xfconf, xorg, libwnck, libnotify, libxklavier, garcon }:
+
+#TODO: optional packages
+stdenv.mkDerivation rec {
+  name = "xfce4-settings-${v}";
+  src = fetchXfce.core name h;
+
+  buildInputs =
+    [ pkgconfig intltool exo gtk libxfce4util libxfce4ui libglade
+      xfconf xorg.libXi xorg.libXcursor libwnck libnotify libxklavier garcon
+    #gtk libxfce4util libxfcegui4 libwnck dbus_glib
+      #xfconf libglade xorg.iceauth
+    ];
+  configureFlags = "--enable-pluggable-dialogs --enable-sound-settings";
+
+  meta = {
+    homepage = http://www.xfce.org/projects/xfce4-settings;
+    description = "Settings manager for Xfce";
+    license = "GPLv2+";
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.eelco ];
+  };
+}
diff --git a/pkgs/desktops/xfce/core/xfconf.nix b/pkgs/desktops/xfce/core/xfconf.nix
new file mode 100644
index 000000000000..7e7059bf3dc6
--- /dev/null
+++ b/pkgs/desktops/xfce/core/xfconf.nix
@@ -0,0 +1,16 @@
+{ v, h, stdenv, fetchXfce, pkgconfig, intltool, glib, libxfce4util, dbus_glib }:
+
+stdenv.mkDerivation rec {
+  name = "xfconf-${v}";
+  src = fetchXfce.core name h;
+
+  #TODO: no perl bingings yet (ExtUtils::Depends, ExtUtils::PkgConfig, Glib)
+  buildInputs = [ pkgconfig intltool glib libxfce4util ];
+  propagatedBuildInputs = [ dbus_glib ];
+
+  meta = {
+    homepage = http://www.xfce.org/projects/xfconf;
+    description = "Simple client-server configuration storage and query system for Xfce";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/xfce/core/xfdesktop.nix b/pkgs/desktops/xfce/core/xfdesktop.nix
new file mode 100644
index 000000000000..0a9bdecd738c
--- /dev/null
+++ b/pkgs/desktops/xfce/core/xfdesktop.nix
@@ -0,0 +1,23 @@
+{ v, h, stdenv, fetchXfce, pkgconfig, intltool, gtk, libxfce4util, libxfce4ui
+, libwnck, xfconf, libglade, xfce4panel, thunar, exo, garcon, libnotify }:
+
+stdenv.mkDerivation rec {
+  name = "xfdesktop-${v}";
+  src = fetchXfce.core name h;
+
+  buildInputs =
+    [ pkgconfig intltool gtk libxfce4util libxfce4ui libwnck xfconf
+      libglade xfce4panel thunar exo garcon libnotify
+    ];
+  preFixup = "rm $out/share/icons/hicolor/icon-theme.cache";
+
+  enableParallelBuilding = true;
+
+  meta = {
+    homepage = http://www.xfce.org/projects/xfdesktop;
+    description = "Xfce desktop manager";
+    license = "GPLv2+";
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.eelco ];
+  };
+}
diff --git a/pkgs/desktops/xfce-4.8/core/xfwm4.nix b/pkgs/desktops/xfce/core/xfwm4.nix
index c0f89784bfbc..e30b83d4e27d 100644
--- a/pkgs/desktops/xfce-4.8/core/xfwm4.nix
+++ b/pkgs/desktops/xfce/core/xfwm4.nix
@@ -1,16 +1,13 @@
-{ stdenv, fetchurl, pkgconfig, gtk, intltool, libxfce4util
+{ v, h, stdenv, fetchXfce, pkgconfig, gtk, intltool, libglade, libxfce4util
 , libxfce4ui, xfconf, libwnck, libstartup_notification, xorg }:
 
 stdenv.mkDerivation rec {
-  name = "xfwm4-4.8.3";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/src/xfce/xfwm4/4.8/${name}.tar.bz2";
-    sha1 = "6d27deca383e0c2fba0cede0bbe0e9aee18e9257";
-  };
+  name = "xfwm4-${v}";
+  src = fetchXfce.core name h;
 
+  #TODO: kde systray, docs
   buildInputs =
-    [ pkgconfig intltool gtk libxfce4util libxfce4ui xfconf
+    [ pkgconfig intltool gtk libglade libxfce4util libxfce4ui xfconf
       libwnck libstartup_notification
       xorg.libXcomposite xorg.libXfixes xorg.libXdamage
     ];
@@ -18,7 +15,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = {
-    homepage = http://www.xfce.org/;
+    homepage = http://www.xfce.org/projects/xfwm4;
     description = "Window manager for Xfce";
     license = "GPLv2+";
     platforms = stdenv.lib.platforms.linux;
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-cpufreq-plugin.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-cpufreq-plugin.nix
new file mode 100644
index 000000000000..9fbeb8a76eab
--- /dev/null
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-cpufreq-plugin.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4panel, libxfce4ui, libxfcegui4, xfconf, gtk}:
+
+stdenv.mkDerivation rec {
+  name = "xfce4-cpufreq-plugin-1.0.0";
+
+  src = fetchurl {
+    url = "http://archive.xfce.org/src/panel-plugins/xfce4-cpufreq-plugin/1.0/${name}.tar.bz2";
+    sha256 = "0q2lj8a25iq9w3dynh6qvsmh19y1v7i82g46yza6gvw7fjcrmcz1";
+  };
+
+  buildInputs = [ pkgconfig intltool libxfce4util libxfce4ui xfce4panel libxfcegui4 xfconf gtk ];
+  preFixup = "rm $out/share/icons/hicolor/icon-theme.cache";
+
+  meta = {
+    homepage = http://www.xfce.org/;
+    description = "CPU Freq load panel plugin for Xfce";
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-systemload-plugin.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-systemload-plugin.nix
new file mode 100644
index 000000000000..6d0f997500cd
--- /dev/null
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-systemload-plugin.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4panel, libxfce4ui, gtk}:
+
+stdenv.mkDerivation rec {
+  name = "xfce4-systemload-plugin-1.1.1";
+  
+  src = fetchurl {
+    url = "http://archive.xfce.org/src/panel-plugins/xfce4-systemload-plugin/1.1/${name}.tar.bz2";
+    sha256 = "1bnrr30h6kgb37ixcq7frx2gvj2p99bpa1jyzppwjxp5x7xkxh8s";
+  };
+
+  buildInputs = [ pkgconfig intltool libxfce4util libxfce4ui xfce4panel gtk ];
+
+  meta = {
+    homepage = http://www.xfce.org/;
+    description = "System load panel plugin for Xfce";
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/xfce/support/gvfs.nix b/pkgs/desktops/xfce/support/gvfs.nix
new file mode 100644
index 000000000000..af70aea755af
--- /dev/null
+++ b/pkgs/desktops/xfce/support/gvfs.nix
@@ -0,0 +1,22 @@
+{ 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-4.8/support/libgdu-only.patch b/pkgs/desktops/xfce/support/libgdu-only.patch
index c5873c716811..c5873c716811 100644
--- a/pkgs/desktops/xfce-4.8/support/libgdu-only.patch
+++ b/pkgs/desktops/xfce/support/libgdu-only.patch
diff --git a/pkgs/desktops/xfce-4.8/support/libgdu.nix b/pkgs/desktops/xfce/support/libgdu.nix
index 32835f0434ab..32835f0434ab 100644
--- a/pkgs/desktops/xfce-4.8/support/libgdu.nix
+++ b/pkgs/desktops/xfce/support/libgdu.nix