summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/build-support/fetchurl/mirrors.nix14
-rw-r--r--pkgs/desktops/xfce-4.8/applications/mousepad.nix20
-rw-r--r--pkgs/desktops/xfce-4.8/applications/ristretto.nix24
-rw-r--r--pkgs/desktops/xfce-4.8/applications/terminal.nix25
-rw-r--r--pkgs/desktops/xfce-4.8/applications/xfce4-notifyd.nix18
-rw-r--r--pkgs/desktops/xfce-4.8/applications/xfce4-taskmanager.nix18
-rw-r--r--pkgs/desktops/xfce-4.8/core/exo.nix19
-rw-r--r--pkgs/desktops/xfce-4.8/core/libxfce4ui.nix24
-rw-r--r--pkgs/desktops/xfce-4.8/core/thunar.nix27
-rw-r--r--pkgs/desktops/xfce-4.8/core/xfce4-panel.nix29
-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/core/xfwm4.nix27
-rw-r--r--pkgs/desktops/xfce-4.8/default.nix94
-rw-r--r--pkgs/desktops/xfce-4.8/panel-plugins/xfce4-cpufreq-plugin.nix18
-rw-r--r--pkgs/desktops/xfce/applications/gigolo.nix (renamed from pkgs/desktops/xfce-4.8/applications/gigolo.nix)17
-rw-r--r--pkgs/desktops/xfce/applications/mousepad.nix25
-rw-r--r--pkgs/desktops/xfce/applications/ristretto.nix28
-rw-r--r--pkgs/desktops/xfce/applications/terminal.nix23
-rw-r--r--pkgs/desktops/xfce/applications/xfce4-mixer.nix (renamed from pkgs/desktops/xfce-4.8/applications/xfce4-mixer.nix)20
-rw-r--r--pkgs/desktops/xfce/applications/xfce4-notifyd.nix28
-rw-r--r--pkgs/desktops/xfce/applications/xfce4-taskmanager.nix21
-rw-r--r--pkgs/desktops/xfce/art/xfce4-icon-theme.nix (renamed from pkgs/desktops/xfce-4.8/art/xfce4-icon-theme.nix)11
-rw-r--r--pkgs/desktops/xfce/core/exo.nix23
-rw-r--r--pkgs/desktops/xfce/core/garcon.nix (renamed from pkgs/desktops/xfce-4.8/core/garcon.nix)11
-rw-r--r--pkgs/desktops/xfce/core/gtk-xfce-engine.nix (renamed from pkgs/desktops/xfce-4.8/core/gtk-xfce-engine.nix)15
-rw-r--r--pkgs/desktops/xfce/core/libxfce4ui.nix (renamed from pkgs/desktops/xfce-4.8/core/libxfcegui4.nix)15
-rw-r--r--pkgs/desktops/xfce/core/libxfce4util.nix (renamed from pkgs/desktops/xfce-4.8/core/libxfce4util.nix)11
-rw-r--r--pkgs/desktops/xfce/core/libxfcegui4.nix35
-rw-r--r--pkgs/desktops/xfce/core/thunar-volman.nix (renamed from pkgs/desktops/xfce-4.8/core/thunar-volman.nix)14
-rw-r--r--pkgs/desktops/xfce/core/thunar.nix35
-rw-r--r--pkgs/desktops/xfce/core/tumbler.nix21
-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)13
-rw-r--r--pkgs/desktops/xfce/core/xfce4-panel-datadir.patch (renamed from pkgs/desktops/xfce-4.8/core/xfce4-panel-datadir.patch)0
-rw-r--r--pkgs/desktops/xfce/core/xfce4-panel.nix35
-rw-r--r--pkgs/desktops/xfce/core/xfce4-power-manager.nix (renamed from pkgs/desktops/xfce-4.8/applications/xfce4-power-manager.nix)12
-rw-r--r--pkgs/desktops/xfce/core/xfce4-session.nix33
-rw-r--r--pkgs/desktops/xfce/core/xfce4-settings.nix31
-rw-r--r--pkgs/desktops/xfce/core/xfconf.nix23
-rw-r--r--pkgs/desktops/xfce/core/xfdesktop.nix30
-rw-r--r--pkgs/desktops/xfce/core/xfwm4.nix31
-rw-r--r--pkgs/desktops/xfce/default.nix71
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-cpufreq-plugin.nix22
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-systemload-plugin.nix (renamed from pkgs/desktops/xfce-4.8/panel-plugins/xfce4-systemload-plugin.nix)13
-rw-r--r--pkgs/desktops/xfce/support/gvfs.nix (renamed from pkgs/desktops/xfce-4.8/support/gvfs.nix)4
-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
-rw-r--r--pkgs/development/libraries/libunique/1.1.6-G_CONST_RETURN.patch143
-rw-r--r--pkgs/development/libraries/libunique/1.1.6-compiler-warnings.patch50
-rw-r--r--pkgs/development/libraries/libunique/1.1.6-fix-test.patch26
-rw-r--r--pkgs/development/libraries/libunique/1.1.6-include-terminator.patch37
-rw-r--r--pkgs/development/libraries/libunique/default.nix31
-rw-r--r--pkgs/top-level/all-packages.nix10
-rw-r--r--pkgs/top-level/release.nix1
57 files changed, 922 insertions, 516 deletions
diff --git a/pkgs/build-support/fetchurl/mirrors.nix b/pkgs/build-support/fetchurl/mirrors.nix
index 23404e6da5d..9d9aa344f42 100644
--- a/pkgs/build-support/fetchurl/mirrors.nix
+++ b/pkgs/build-support/fetchurl/mirrors.nix
@@ -223,6 +223,20 @@ rec {
     ftp://ftp.nara.wide.ad.jp/pub/X11/GNOME/
   ];
 
+  xfce = [
+    http://archive.xfce.org/
+    http://mirror.netcologne.de/xfce/
+    http://archive.se.xfce.org/xfce/
+    http://archive.be.xfce.org/xfce/
+    http://mirror.perldude.de/archive.xfce.org/
+    http://archive.be2.xfce.org/
+    http://ftp.udc.es/xfce/
+    http://archive.al-us.xfce.org/
+    http://mirror.yongbok.net/X11/xfce-mirror/
+    http://mirrors.tummy.com/pub/archive.xfce.org/
+    http://xfce.mirror.uber.com.au/
+  ];
+
   # X.org.
   xorg = [
     http://xorg.freedesktop.org/releases/
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 395a5c9f084..00000000000
--- 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/ristretto.nix b/pkgs/desktops/xfce-4.8/applications/ristretto.nix
deleted file mode 100644
index ce90891bb0b..00000000000
--- a/pkgs/desktops/xfce-4.8/applications/ristretto.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, libexif, gtk, thunar
-, 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";
-  };
-
-  buildInputs =
-    [ pkgconfig intltool libexif gtk dbus_glib libxfce4util
-      libxfce4ui xfconf
-    ];
-
-  meta = {
-    homepage = http://goodies.xfce.org/projects/applications/ristretto;
-    description = "A fast and lightweight picture-viewer 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/applications/terminal.nix b/pkgs/desktops/xfce-4.8/applications/terminal.nix
deleted file mode 100644
index f03a940679a..00000000000
--- 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/xfce4-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/applications/xfce4-notifyd.nix b/pkgs/desktops/xfce-4.8/applications/xfce4-notifyd.nix
deleted file mode 100644
index 598e6eb414d..00000000000
--- a/pkgs/desktops/xfce-4.8/applications/xfce4-notifyd.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ stdenv, fetchurl, intltool, pkgconfig, gtk, xfce }:
-
-stdenv.mkDerivation rec {
-  name = "xfce4-notifyd-0.2.2";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/src/apps/xfce4-notifyd/0.2/${name}.tar.bz2";
-    sha256 = "0s4ilc36sl5k5mg5727rmqims1l3dy5pwg6dk93wyjqnqbgnhvmn";
-  };
-
-  buildInputs = [ intltool pkgconfig gtk xfce.libxfce4util xfce.libxfce4ui xfce.xfconf ];
-
-  meta = {
-    homepage = http://goodies.xfce.org/projects/applications/xfce4-notifyd;
-    description = "The Xfce Notify Daemon";
-    platforms = stdenv.lib.platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/xfce-4.8/applications/xfce4-taskmanager.nix b/pkgs/desktops/xfce-4.8/applications/xfce4-taskmanager.nix
deleted file mode 100644
index cffaa6bfe09..00000000000
--- a/pkgs/desktops/xfce-4.8/applications/xfce4-taskmanager.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ stdenv, fetchurl, intltool, pkgconfig, gtk }:
-
-stdenv.mkDerivation rec {
-  name = "xfce4-taskmanager-1.0.0";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/src/apps/xfce4-taskmanager/1.0/${name}.tar.bz2";
-    sha256 = "1vm9gw7j4ngjlpdhnwdf7ifx6xrrn21011almx2vwidhk2f9zvy0";
-  };
-
-  buildInputs = [ intltool pkgconfig gtk ];
-
-  meta = {
-    homepage = http://goodies.xfce.org/projects/applications/xfce4-taskmanager;
-    description = "Easy to use task manager for XFCE";
-    platforms = stdenv.lib.platforms.linux;
-  };
-}
\ No newline at end of file
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 468132a2a81..00000000000
--- 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/libxfce4ui.nix b/pkgs/desktops/xfce-4.8/core/libxfce4ui.nix
deleted file mode 100644
index 76c285ae599..00000000000
--- 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/thunar.nix b/pkgs/desktops/xfce-4.8/core/thunar.nix
deleted file mode 100644
index 07fd734a1f2..00000000000
--- 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 e14d1acf33d..00000000000
--- a/pkgs/desktops/xfce-4.8/core/xfce4-panel.nix
+++ /dev/null
@@ -1,29 +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";
-  };
-
-  patches = [ ./xfce4-panel-datadir.patch ];
-  patchFlags = "-p1";
-
-  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 0e0f1a86939..00000000000
--- 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 dc6e8e555b2..00000000000
--- 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 e0c61d3a1f5..00000000000
--- 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 45c82f1ec02..00000000000
--- 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/core/xfwm4.nix b/pkgs/desktops/xfce-4.8/core/xfwm4.nix
deleted file mode 100644
index c0f89784bfb..00000000000
--- a/pkgs/desktops/xfce-4.8/core/xfwm4.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, gtk, intltool, 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";
-  };
-
-  buildInputs =
-    [ pkgconfig intltool gtk libxfce4util libxfce4ui xfconf
-      libwnck libstartup_notification
-      xorg.libXcomposite xorg.libXfixes xorg.libXdamage
-    ];
-
-  enableParallelBuilding = true;
-
-  meta = {
-    homepage = http://www.xfce.org/;
-    description = "Window manager for Xfce";
-    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 bfe7fddd738..00000000000
--- a/pkgs/desktops/xfce-4.8/default.nix
+++ /dev/null
@@ -1,94 +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;
-  };
-
-  gigolo = callPackage ./applications/gigolo.nix { };
-
-  mousepad = callPackage ./applications/mousepad.nix { };
-
-  ristretto = callPackage ./applications/ristretto.nix { };
-
-  xfce4_notifyd = callPackage ./applications/xfce4-notifyd.nix { };
-
-  xfce4_power_manager = callPackage ./applications/xfce4-power-manager.nix { };
-
-  xfce4mixer = callPackage ./applications/xfce4-mixer.nix { };
-
-  xfce4_taskmanager = callPackage ./applications/xfce4-taskmanager.nix { };
-
-  
-  #### ART
-
-  xfce4icontheme = callPackage ./art/xfce4-icon-theme.nix { };
-
-  #### 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-4.8/panel-plugins/xfce4-cpufreq-plugin.nix b/pkgs/desktops/xfce-4.8/panel-plugins/xfce4-cpufreq-plugin.nix
deleted file mode 100644
index c3f34219464..00000000000
--- a/pkgs/desktops/xfce-4.8/panel-plugins/xfce4-cpufreq-plugin.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ 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 ];
-
-  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-4.8/applications/gigolo.nix b/pkgs/desktops/xfce/applications/gigolo.nix
index 5215697bbca..b54ea8cc623 100644
--- a/pkgs/desktops/xfce-4.8/applications/gigolo.nix
+++ b/pkgs/desktops/xfce/applications/gigolo.nix
@@ -1,12 +1,15 @@
-{ stdenv, fetchurl, python, gettext, intltool, pkgconfig, gtk, gvfs}:
+{ stdenv, fetchurl, python, gettext, intltool, pkgconfig, gtk, gvfs }:
 
 stdenv.mkDerivation rec {
-  name = "gigolo-0.4.1";
-  
+  p_name  = "gigolo";
+  ver_maj = "0.4";
+  ver_min = "1";
+
   src = fetchurl {
-    url = "http://archive.xfce.org/src/apps/gigolo/0.4/${name}.tar.bz2";
+    url = "mirror://xfce/src/apps/${p_name}/${ver_maj}/${name}.tar.bz2";
     sha256 = "1y8p9bbv1a4qgbxl4vn6zbag3gb7gl8qj75cmhgrrw9zrvqbbww2";
   };
+  name = "${p_name}-${ver_maj}.${ver_min}";
 
   buildInputs = [ python gettext intltool gtk pkgconfig gvfs];
 
@@ -15,8 +18,8 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    homepage = http://goodies.xfce.org/projects/applications/gigolo;
-    description = "Gigolo is a frontend to easily manage connections to remote filesystems";
+    homepage = "http://goodies.xfce.org/projects/applications/${p_name}";
+    description = "A frontend to easily manage connections to remote filesystems";
     platforms = stdenv.lib.platforms.linux;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/desktops/xfce/applications/mousepad.nix b/pkgs/desktops/xfce/applications/mousepad.nix
new file mode 100644
index 00000000000..9bc9634469c
--- /dev/null
+++ b/pkgs/desktops/xfce/applications/mousepad.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, pkgconfig, intltool, libxfce4util, libxfcegui4
+, gtk, gtksourceview, dbus, dbus_glib }:
+
+stdenv.mkDerivation rec {
+  p_name  = "mousepad";
+  ver_maj = "0.3";
+  ver_min = "0";
+
+  src = fetchurl {
+    url = "mirror://xfce/src/apps/${p_name}/${ver_maj}/${name}.tar.bz2";
+    sha256 = "0v84zwhjv2xynvisn5vmp7dbxfj4l4258m82ks7hn3adk437bwhh";
+  };
+  name = "${p_name}-${ver_maj}.${ver_min}";
+
+  buildInputs = [
+    pkgconfig intltool libxfce4util libxfcegui4
+    gtk gtksourceview dbus dbus_glib
+  ];
+
+  meta = {
+    homepage = http://www.xfce.org/;
+    description = "A simple text editor for Xfce";
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/desktops/xfce/applications/ristretto.nix b/pkgs/desktops/xfce/applications/ristretto.nix
new file mode 100644
index 00000000000..a42e882710a
--- /dev/null
+++ b/pkgs/desktops/xfce/applications/ristretto.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, pkgconfig, intltool, libexif, gtk
+, exo, dbus_glib, libxfce4util, libxfce4ui, xfconf }:
+
+stdenv.mkDerivation rec {
+  p_name  = "ristretto";
+  ver_maj = "0.6";
+  ver_min = "3";
+
+  src = fetchurl {
+    url = "mirror://xfce/src/apps/${p_name}/${ver_maj}/${name}.tar.bz2";
+    sha256 = "0y9d8w1plwp4vmxs44y8k8x15i0k0xln89k6jndhv6lf57g1cs1b";
+  };
+  name = "${p_name}-${ver_maj}.${ver_min}";
+
+  buildInputs =
+    [ 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/${p_name}";
+    description = "A fast and lightweight picture-viewer for the Xfce desktop environment";
+    license = "GPLv2+";
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.eelco ];
+  };
+}
diff --git a/pkgs/desktops/xfce/applications/terminal.nix b/pkgs/desktops/xfce/applications/terminal.nix
new file mode 100644
index 00000000000..0a61e027356
--- /dev/null
+++ b/pkgs/desktops/xfce/applications/terminal.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, pkgconfig, intltool, ncurses, gtk, vte, dbus_glib
+, exo, libxfce4util, libxfce4ui
+}:
+
+stdenv.mkDerivation rec {
+  p_name  = "xfce4-terminal";
+  ver_maj = "0.6";
+  ver_min = "1";
+
+  src = fetchurl {
+    url = "mirror://xfce/src/apps/${p_name}/${ver_maj}/${name}.tar.bz2";
+    sha256 = "1j6lpkq952mrl5p24y88f89wn9g0namvywhma639xxsswlkn8d31";
+  };
+  name = "${p_name}-${ver_maj}.${ver_min}";
+
+  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 2f1ab8a8e93..972442dc56b 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 }:
+{ stdenv, fetchurl, 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,19 @@ let
 in
 
 stdenv.mkDerivation rec {
-  name = "xfce4-mixer-4.8.0";
-  
+  p_name  = "xfce4-mixer";
+  ver_maj = "4.10";
+  ver_min = "0";
+
   src = fetchurl {
-    url = "http://archive.xfce.org/src/apps/xfce4-mixer/4.8/${name}.tar.bz2";
-    sha1 = "24f3401a68f10d2c620e354a6de98e09fe808665";
+    url = "mirror://xfce/src/apps/${p_name}/${ver_maj}/${name}.tar.bz2";
+    sha256 = "1pnsd00583l7p5d80rxbh58brzy3jnccwikbbbm730a33c08kid8";
   };
+  name = "${p_name}-${ver_maj}.${ver_min}";
 
   buildInputs =
     [ pkgconfig intltool glib gstreamer gst_plugins_minimal gtk
-      libxfce4util libxfce4ui xfce4panel xfconf
+      libxfce4util libxfce4ui xfce4panel xfconf libunique
     ];
 
   postInstall =
@@ -31,7 +33,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 00000000000..62c5bbe5220
--- /dev/null
+++ b/pkgs/desktops/xfce/applications/xfce4-notifyd.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, pkgconfig, intltool
+, gtk , libxfce4util, libxfce4ui, xfconf }:
+
+stdenv.mkDerivation rec {
+  p_name  = "xfce4-notifyd";
+  ver_maj = "0.2";
+  ver_min = "2";
+
+  src = fetchurl {
+    url = "mirror://xfce/src/apps/${p_name}/${ver_maj}/${name}.tar.bz2";
+    sha256 = "0s4ilc36sl5k5mg5727rmqims1l3dy5pwg6dk93wyjqnqbgnhvmn";
+  };
+  name = "${p_name}-${ver_maj}.${ver_min}";
+
+  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/${p_name}";
+    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 00000000000..baef6872848
--- /dev/null
+++ b/pkgs/desktops/xfce/applications/xfce4-taskmanager.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, intltool, pkgconfig, gtk, libwnck }:
+
+stdenv.mkDerivation rec {
+  p_name  = "xfce4-taskmanager";
+  ver_maj = "1.0";
+  ver_min = "0";
+
+  src = fetchurl {
+    url = "mirror://xfce/src/apps/${p_name}/${ver_maj}/${name}.tar.bz2";
+    sha256 = "1vm9gw7j4ngjlpdhnwdf7ifx6xrrn21011almx2vwidhk2f9zvy0";
+  };
+  name = "${p_name}-${ver_maj}.${ver_min}";
+
+  buildInputs = [ intltool pkgconfig gtk libwnck ];
+
+  meta = {
+    homepage = "http://goodies.xfce.org/projects/applications/${p_name}";
+    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 afa934b6031..1bd257991c9 100644
--- a/pkgs/desktops/xfce-4.8/art/xfce4-icon-theme.nix
+++ b/pkgs/desktops/xfce/art/xfce4-icon-theme.nix
@@ -1,12 +1,15 @@
 { stdenv, fetchurl, pkgconfig, intltool, gtk }:
 
 stdenv.mkDerivation rec {
-  name = "xfce4-icon-theme-4.4.3";
-  
+  p_name  = "xfce4-icon-theme";
+  ver_maj = "4.4";
+  ver_min = "3";
+
   src = fetchurl {
-    url = "http://archive.xfce.org/src/art/xfce4-icon-theme/4.4/${name}.tar.bz2";
-    sha1 = "0c0d0c45cd4a7f609310db8e9d17c1c4a131a6e7";
+    url = "mirror://xfce/src/art/${p_name}/${ver_maj}/${name}.tar.bz2";
+    sha256 = "1yk6rx3zr9grm4jwpjvqdkl13pisy7qn1wm5cqzmd2kbsn96cy6l";
   };
+  name = "${p_name}-${ver_maj}.${ver_min}";
 
   buildInputs = [ pkgconfig intltool gtk ];
 
diff --git a/pkgs/desktops/xfce/core/exo.nix b/pkgs/desktops/xfce/core/exo.nix
new file mode 100644
index 00000000000..3131ea679b0
--- /dev/null
+++ b/pkgs/desktops/xfce/core/exo.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, pkgconfig, intltool, URI, glib, gtk, libxfce4ui, libxfce4util }:
+
+stdenv.mkDerivation rec {
+  p_name  = "exo";
+  ver_maj = "0.10";
+  ver_min = "2";
+
+  src = fetchurl {
+    url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
+    sha256 = "1kknxiz703q4snmry65ajm26jwjslbgpzdal6bd090m3z25q51dk";
+  };
+  name = "${p_name}-${ver_maj}.${ver_min}";
+
+  buildInputs = [ pkgconfig intltool URI glib gtk libxfce4ui libxfce4util ];
+
+  preFixup = "rm $out/share/icons/hicolor/icon-theme.cache";
+
+  meta = {
+    homepage = "http://www.xfce.org/projects/${p_name}";
+    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/core/garcon.nix
index 7f5f18173b2..8e87212c7f7 100644
--- a/pkgs/desktops/xfce-4.8/core/garcon.nix
+++ b/pkgs/desktops/xfce/core/garcon.nix
@@ -1,12 +1,15 @@
 { stdenv, fetchurl, pkgconfig, intltool, glib, libxfce4util }:
 
 stdenv.mkDerivation rec {
-  name = "garcon-0.1.9";
-  
+  p_name  = "garcon";
+  ver_maj = "0.2";
+  ver_min = "0";
+
   src = fetchurl {
-    url = "http://archive.xfce.org/src/xfce/garcon/0.1/${name}.tar.bz2";
-    sha1 = "2eeab19bc10747a40b44afd4598a2f555eb69952";
+    url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
+    sha256 = "0v7pkvxcayi86z4f173z5l7w270f3g369sa88z59w0y0p7ns7ph2";
   };
+  name = "${p_name}-${ver_maj}.${ver_min}";
 
   buildInputs = [ pkgconfig intltool glib libxfce4util ];
 
diff --git a/pkgs/desktops/xfce-4.8/core/gtk-xfce-engine.nix b/pkgs/desktops/xfce/core/gtk-xfce-engine.nix
index 4518897cc2f..a97a11c6f12 100644
--- a/pkgs/desktops/xfce-4.8/core/gtk-xfce-engine.nix
+++ b/pkgs/desktops/xfce/core/gtk-xfce-engine.nix
@@ -1,15 +1,18 @@
 { stdenv, fetchurl, pkgconfig, intltool, gtk }:
 
 stdenv.mkDerivation rec {
-  name = "gtk-xfce-engine-2.8.1";
-  
+  p_name  = "gtk-xfce-engine";
+  ver_maj = "3.0";
+  ver_min = "1";
+
   src = fetchurl {
-    url = "http://archive.xfce.org/src/xfce/gtk-xfce-engine/2.8/${name}.tar.bz2";
-    sha1 = "d7779f07cc76585be063bc25fa91e660e1fd9c97";
+    url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
+    sha256 = "0vd0ly81540f9133abza56mlqqx1swp0j70ll8kf948sva0wy0zb";
   };
+  name = "${p_name}-${ver_maj}.${ver_min}";
 
-  buildInputs =
-    [ pkgconfig intltool gtk ];
+  #TODO: gtk3
+  buildInputs = [ pkgconfig intltool gtk ];
 
   meta = {
     homepage = http://www.xfce.org/;
diff --git a/pkgs/desktops/xfce-4.8/core/libxfcegui4.nix b/pkgs/desktops/xfce/core/libxfce4ui.nix
index 20e82a2c92f..4f0e7062e45 100644
--- a/pkgs/desktops/xfce-4.8/core/libxfcegui4.nix
+++ b/pkgs/desktops/xfce/core/libxfce4ui.nix
@@ -2,14 +2,17 @@
 , libglade, libstartup_notification }:
 
 stdenv.mkDerivation rec {
-  name = "libxfcegui4-4.8.1";
-  
+  p_name  = "libxfce4ui";
+  ver_maj = "4.10";
+  ver_min = "0";
+
   src = fetchurl {
-    url = "http://archive.xfce.org/src/xfce/libxfcegui4/4.8/${name}.tar.bz2";
-    sha1 = "246fcaa71fc8cf44dae0b4c919411231eedd662f";
+    url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
+    sha256 = "1qm31s6568cz4c8rl9fsfq0xmf7pldxm0ki62gx1cpybihlgmfd2";
   };
+  name = "${p_name}-${ver_maj}.${ver_min}";
 
-  # By default, libxfcegui4 tries to install into libglade's prefix.
+  #TODO: gladeui
   # Install into our own prefix instead.
   preConfigure =
     ''
@@ -17,7 +20,7 @@ stdenv.mkDerivation rec {
     '';
 
   buildInputs =
-    [ pkgconfig intltool gtk libxfce4util libglade
+    [ pkgconfig intltool gtk libxfce4util xfconf libglade
       libstartup_notification
     ];
 
diff --git a/pkgs/desktops/xfce-4.8/core/libxfce4util.nix b/pkgs/desktops/xfce/core/libxfce4util.nix
index 7a567d62935..88874722b7d 100644
--- a/pkgs/desktops/xfce-4.8/core/libxfce4util.nix
+++ b/pkgs/desktops/xfce/core/libxfce4util.nix
@@ -1,12 +1,15 @@
 { stdenv, fetchurl, pkgconfig, glib, intltool }:
 
 stdenv.mkDerivation rec {
-  name = "libxfce4util-4.8.2";
-  
+  p_name  = "libxfce4util";
+  ver_maj = "4.10";
+  ver_min = "0";
+
   src = fetchurl {
-    url = "http://archive.xfce.org/src/xfce/libxfce4util/4.8/${name}.tar.bz2";
-    sha1 = "e7498c2e5fca2c89dfef89e0788f10eebbd020c3";
+    url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
+    sha256 = "13k0wwbbqvdmbj4xmk4nxdlgvrdgr5y6r3dk380mzfw053hzwy89";
   };
+  name = "${p_name}-${ver_maj}.${ver_min}";
 
   buildInputs = [ pkgconfig glib intltool ];
 
diff --git a/pkgs/desktops/xfce/core/libxfcegui4.nix b/pkgs/desktops/xfce/core/libxfcegui4.nix
new file mode 100644
index 00000000000..e30fcf22357
--- /dev/null
+++ b/pkgs/desktops/xfce/core/libxfcegui4.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, pkgconfig, intltool, gtk
+, libxfce4util, xfconf, libglade, libstartup_notification }:
+
+stdenv.mkDerivation rec {
+  p_name  = "libxfcegui4";
+  ver_maj = "4.10";
+  ver_min = "0";
+
+  src = fetchurl {
+    url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
+    sha256 = "0cs5im0ib0cmr1lhr5765yliqjfyxvk4kwy8h1l8bn3mj6bzk0ib";
+  };
+  name = "${p_name}-${ver_maj}.${ver_min}";
+
+  #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/;
+    description = "Basic GUI library for Xfce";
+    license = "LGPLv2+";
+  };
+}
diff --git a/pkgs/desktops/xfce-4.8/core/thunar-volman.nix b/pkgs/desktops/xfce/core/thunar-volman.nix
index 490390d1bac..94fc0e369e5 100644
--- a/pkgs/desktops/xfce-4.8/core/thunar-volman.nix
+++ b/pkgs/desktops/xfce/core/thunar-volman.nix
@@ -2,22 +2,26 @@
 , xfconf, udev, libnotify }:
 
 stdenv.mkDerivation rec {
-  name = "thunar-volman-0.6.0";
-  
+  p_name  = "thunar-volman";
+  ver_maj = "0.8";
+  ver_min = "0";
+
   src = fetchurl {
-    url = "http://archive.xfce.org/src/xfce/thunar-volman/0.6/${name}.tar.bz2";
-    sha1 = "dcda936948623b342b290a78c294f71c038e832e";
+    url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
+    sha256 = "1sxw09fwyn5sr6ipxk7r8gqjyf41c2v7vkgl0l6mhy5mcb48f27z";
   };
+  name = "${p_name}-${ver_maj}.${ver_min}";
 
   buildInputs =
     [ pkgconfig intltool exo gtk udev libxfce4ui libxfce4util
       xfconf libnotify
     ];
+  preFixup = "rm $out/share/icons/hicolor/icon-theme.cache";
 
   enableParallelBuilding = true;
 
   meta = {
-    homepage = http://thunar.xfce.org/;
+    homepage = http://goodies.xfce.org/projects/thunar-plugins/thunar-volman;
     description = "Thunar extension for automatic management of removable drives and media";
     license = "GPLv2+";
     platforms = stdenv.lib.platforms.linux;
diff --git a/pkgs/desktops/xfce/core/thunar.nix b/pkgs/desktops/xfce/core/thunar.nix
new file mode 100644
index 00000000000..848fca345c5
--- /dev/null
+++ b/pkgs/desktops/xfce/core/thunar.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, pkgconfig, intltool
+, gtk, dbus_glib, libstartup_notification, libnotify, libexif, pcre, udev
+, exo, libxfce4util,  xfconf, xfce4panel
+}:
+
+stdenv.mkDerivation rec {
+  p_name  = "thunar";
+  ver_maj = "1.6";
+  ver_min = "2";
+
+  src = fetchurl {
+    url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/Thunar-${ver_maj}.${ver_min}.tar.bz2";
+    sha256 = "11dx38rvkfbp91pxrprymxhimsm90gvizp277x9s5rwnwcm1ggbx";
+  };
+  name = "${p_name}-${ver_maj}.${ver_min}";
+
+  buildInputs = [
+    pkgconfig intltool
+    gtk dbus_glib libstartup_notification libnotify libexif pcre udev
+    exo libxfce4util xfconf xfce4panel
+  ];
+  # TODO: 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 00000000000..a1da730b35b
--- /dev/null
+++ b/pkgs/desktops/xfce/core/tumbler.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, pkgconfig, intltool, dbus_glib, gdk_pixbuf }:
+
+stdenv.mkDerivation rec {
+  p_name  = "tumbler";
+  ver_maj = "0.1";
+  ver_min = "27";
+
+  src = fetchurl {
+    url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
+    sha256 = "0s9qj99b81asmlqa823nzykq8g6p9azcp2niak67y9bp52wv6q2c";
+  };
+  name = "${p_name}-${ver_maj}.${ver_min}";
+
+  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 fde8a2c3953..625780adb31 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 b8165ebb178..b4c9c790ac1 100644
--- a/pkgs/desktops/xfce-4.8/core/xfce4-appfinder.nix
+++ b/pkgs/desktops/xfce/core/xfce4-appfinder.nix
@@ -2,12 +2,15 @@
 , libxfce4ui, garcon, xfconf }:
 
 stdenv.mkDerivation rec {
-  name = "xfce4-appfinder-4.8.0";
-  
+  p_name  = "xfce4-appfinder";
+  ver_maj = "4.9"; # no 4.10 (stable) release yet
+  ver_min = "4";
+
   src = fetchurl {
-    url = "http://archive.xfce.org/src/xfce/xfce4-appfinder/4.8/${name}.tar.bz2";
-    sha1 = "444bbcbded8d2346f9b9beb57ec7adaf556811c9";
+    url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
+    sha256 = "12lgrbd1n50w9n8xkpai98s2aw8vmjasrgypc57sp0x0qafsqaxq";
   };
+  name = "${p_name}-${ver_maj}.${ver_min}";
 
   buildInputs =
     [ pkgconfig intltool glib gtk libxfce4util libxfce4ui garcon xfconf ];
@@ -15,7 +18,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-4.8/core/xfce4-panel-datadir.patch b/pkgs/desktops/xfce/core/xfce4-panel-datadir.patch
index ed9df9ef36f..ed9df9ef36f 100644
--- a/pkgs/desktops/xfce-4.8/core/xfce4-panel-datadir.patch
+++ b/pkgs/desktops/xfce/core/xfce4-panel-datadir.patch
diff --git a/pkgs/desktops/xfce/core/xfce4-panel.nix b/pkgs/desktops/xfce/core/xfce4-panel.nix
new file mode 100644
index 00000000000..a026c4664f1
--- /dev/null
+++ b/pkgs/desktops/xfce/core/xfce4-panel.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, pkgconfig, intltool, gtk, libxfce4util, libxfce4ui
+, libwnck, exo, garcon, xfconf, libstartup_notification }:
+
+stdenv.mkDerivation rec {
+  p_name  = "xfce4-panel";
+  ver_maj = "4.10";
+  ver_min = "0";
+
+  src = fetchurl {
+    url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
+    sha256 = "1f8903nx6ivzircl8d8s9zna4vjgfy0qhjk5d2x19g9bmycgj89k";
+  };
+  name = "${p_name}-${ver_maj}.${ver_min}";
+
+  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 bad3b52a6bb..7a9b2596e75 100644
--- a/pkgs/desktops/xfce-4.8/applications/xfce4-power-manager.nix
+++ b/pkgs/desktops/xfce/core/xfce4-power-manager.nix
@@ -2,17 +2,21 @@
 , libxfce4ui, libxfce4util, libnotify, xfce4panel }:
 
 stdenv.mkDerivation rec {
-  name = "xfce4-power-manager-1.0.10";
-  
+  p_name  = "xfce4-power-manager";
+  ver_maj = "1.0";
+  ver_min = "10";
+
   src = fetchurl {
-    url = "http://archive.xfce.org/src/apps/xfce4-power-manager/1.0/${name}.tar.bz2";
-    sha1 = "64dd7a8fae9cd1cbcf6403d2f51f2281f38cca05";
+    url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
+    sha256 = "1w120k1sl4s459ijaxkqkba6g1p2sqrf9paljv05wj0wz12bpr40";
   };
+  name = "${p_name}-${ver_maj}.${ver_min}";
 
   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 00000000000..a8e7e66c705
--- /dev/null
+++ b/pkgs/desktops/xfce/core/xfce4-session.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, pkgconfig, intltool, gtk, libxfce4util, libxfce4ui, xfce4panel
+, libwnck, dbus_glib, xfconf, libglade, xorg }:
+
+#TODO: gnome stuff: gconf (assistive?), keyring
+
+stdenv.mkDerivation rec {
+  p_name  = "xfce4-session";
+  ver_maj = "4.10";
+  ver_min = "0";
+
+  src = fetchurl {
+    url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
+    sha256 = "1kj65jkjhd0ysf0yxsf88wzpyv6n8i8qgd3gb502hf1x9jksk2mv";
+  };
+  name = "${p_name}-${ver_maj}.${ver_min}";
+
+  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 00000000000..4cbadaeb54a
--- /dev/null
+++ b/pkgs/desktops/xfce/core/xfce4-settings.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, pkgconfig, intltool, exo, gtk, libxfce4util, libxfce4ui
+, libglade, xfconf, xorg, libwnck, libnotify, libxklavier, garcon }:
+
+#TODO: optional packages
+stdenv.mkDerivation rec {
+  p_name  = "xfce4-settings";
+  ver_maj = "4.10";
+  ver_min = "0";
+
+  src = fetchurl {
+    url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
+    sha256 = "0zppq747z9lrxyv5zrrvpalq7hb3gfhy9p7qbldisgv7m6dz0hq8";
+  };
+  name = "${p_name}-${ver_maj}.${ver_min}";
+
+  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 00000000000..e608d459106
--- /dev/null
+++ b/pkgs/desktops/xfce/core/xfconf.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, pkgconfig, intltool, glib, libxfce4util, dbus_glib }:
+
+stdenv.mkDerivation rec {
+  p_name  = "xfconf";
+  ver_maj = "4.10";
+  ver_min = "0";
+
+  src = fetchurl {
+    url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
+    sha256 = "0xh520z0qh0ib0ijgnyrgii9h5d4pc53n6mx1chhyzfc86j1jlhp";
+  };
+  name = "${p_name}-${ver_maj}.${ver_min}";
+
+  #TODO: no perl bingings yet (ExtUtils::Depends, ExtUtils::PkgConfig, Glib)
+  buildInputs = [ pkgconfig intltool glib libxfce4util ];
+  propagatedBuildInputs = [ dbus_glib ];
+
+  meta = {
+    homepage = http://docs.xfce.org/xfce/xfconf/start;
+    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 00000000000..4f287af6437
--- /dev/null
+++ b/pkgs/desktops/xfce/core/xfdesktop.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, pkgconfig, intltool, gtk, libxfce4util, libxfce4ui
+, libwnck, xfconf, libglade, xfce4panel, thunar, exo, garcon, libnotify }:
+
+stdenv.mkDerivation rec {
+  p_name  = "xfdesktop";
+  ver_maj = "4.10";
+  ver_min = "0";
+
+  src = fetchurl {
+    url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
+    sha256 = "0yrddj1lgk3xn4w340y89z7x2isks72ia36pka08kk2x8gpfcyl9";
+  };
+  name = "${p_name}-${ver_maj}.${ver_min}";
+
+  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/core/xfwm4.nix b/pkgs/desktops/xfce/core/xfwm4.nix
new file mode 100644
index 00000000000..e2fea73eaeb
--- /dev/null
+++ b/pkgs/desktops/xfce/core/xfwm4.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, pkgconfig, gtk, intltool, libglade, libxfce4util
+, libxfce4ui, xfconf, libwnck, libstartup_notification, xorg }:
+
+stdenv.mkDerivation rec {
+  p_name  = "xfwm4";
+  ver_maj = "4.10";
+  ver_min = "0";
+
+  src = fetchurl {
+    url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
+    sha256 = "170zzs7adj47srsi2cl723w9pl8k8awd7w1bpzxby7hj92zmf8s9";
+  };
+  name = "${p_name}-${ver_maj}.${ver_min}";
+
+  #TODO: kde systray, docs
+  buildInputs =
+    [ pkgconfig intltool gtk libglade libxfce4util libxfce4ui xfconf
+      libwnck libstartup_notification
+      xorg.libXcomposite xorg.libXfixes xorg.libXdamage
+    ];
+
+  enableParallelBuilding = true;
+
+  meta = {
+    homepage = http://www.xfce.org/projects/xfwm4;
+    description = "Window manager for Xfce";
+    license = "GPLv2+";
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.eelco ];
+  };
+}
diff --git a/pkgs/desktops/xfce/default.nix b/pkgs/desktops/xfce/default.nix
new file mode 100644
index 00000000000..07a3ffc6baf
--- /dev/null
+++ b/pkgs/desktops/xfce/default.nix
@@ -0,0 +1,71 @@
+{ pkgs, newScope }: let
+
+callPackage = newScope (deps // xfce_self);
+
+deps = rec { # xfce-global dependency overrides should be here
+  inherit (pkgs.gnome) libglade libwnck vte gtksourceview;
+  inherit (pkgs.perlPackages) URI;
+
+  # The useful bits from ‘gnome-disk-utility’.
+  libgdu = callPackage ./support/libgdu.nix { };
+
+  # Gvfs is required by Thunar for the trash feature and for volume
+  # mounting.  Should use the one from Gnome, but I don't want to mess
+  # with the Gnome packages (or pull in a zillion Gnome dependencies).
+  gvfs = callPackage ./support/gvfs.nix { };
+};
+
+xfce_self = rec { # the lines are very long but it seems better than the even-odd line approach
+
+  #### CORE                 from "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2"
+
+  exo             = callPackage ./core/exo.nix { };
+  garcon          = callPackage ./core/garcon.nix { };
+  gtk_xfce_engine = callPackage ./core/gtk-xfce-engine.nix { }; # ToDo: when should be used?
+  libxfce4ui      = callPackage ./core/libxfce4ui.nix { };
+  libxfce4util    = callPackage ./core/libxfce4util.nix { };
+  libxfcegui4     = callPackage ./core/libxfcegui4.nix { };
+  thunar          = callPackage ./core/thunar.nix { };
+  thunar_volman   = callPackage ./core/thunar-volman.nix { }; # ToDo: probably inside Thunar now
+  tumbler         = callPackage ./core/tumbler.nix { }; # ToDo: segfaults after some work
+  xfce4panel      = callPackage ./core/xfce4-panel.nix { }; # ToDo: impure plugins from /run/current-system/sw/lib/xfce4
+  xfce4session    = callPackage ./core/xfce4-session.nix { };
+  xfce4settings   = callPackage ./core/xfce4-settings.nix { };
+  xfce4_power_manager = callPackage ./core/xfce4-power-manager.nix { };
+  xfceutils       = null; # removed in 4.10
+  xfconf          = callPackage ./core/xfconf.nix { };
+  xfdesktop       = callPackage ./core/xfdesktop.nix { };
+  xfwm4           = callPackage ./core/xfwm4.nix { };
+
+  xfce4_appfinder = callPackage ./core/xfce4-appfinder.nix { };
+
+
+  #### APPLICATIONS         from "mirror://xfce/src/apps/${p_name}/${ver_maj}/${name}.tar.bz2"
+
+  gigolo          = callPackage ./applications/gigolo.nix { };
+  mousepad        = callPackage ./applications/mousepad.nix { };
+  ristretto       = callPackage ./applications/ristretto.nix { };
+  terminal        = xfce4terminal; # it has changed its name
+  xfce4mixer      = callPackage ./applications/xfce4-mixer.nix { };
+  xfce4notifyd    = callPackage ./applications/xfce4-notifyd.nix { };
+  xfce4taskmanager= callPackage ./applications/xfce4-taskmanager.nix { };
+  xfce4terminal   = callPackage ./applications/terminal.nix { };
+
+
+  #### ART                  from "mirror://xfce/src/art/${p_name}/${ver_maj}/${name}.tar.bz2"
+
+  xfce4icontheme  = callPackage ./art/xfce4-icon-theme.nix { };
+
+
+  #### PANEL PLUGINS        from "mirror://xfce/src/panel-plugins/${p_name}/${ver_maj}/${name}.tar.bz2"
+
+  xfce4_systemload_plugin = callPackage ./panel-plugins/xfce4-systemload-plugin.nix { };
+  xfce4_cpufreq_plugin    = callPackage ./panel-plugins/xfce4-cpufreq-plugin.nix { };
+
+}; # xfce_self
+
+in xfce_self
+
+
+
+
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 00000000000..18d043c51fd
--- /dev/null
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-cpufreq-plugin.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4panel, libxfce4ui, libxfcegui4, xfconf, gtk}:
+
+stdenv.mkDerivation rec {
+  p_name  = "xfce4-cpufreq-plugin";
+  ver_maj = "1.0";
+  ver_min = "0";
+
+  src = fetchurl {
+    url = "mirror://xfce/src/panel-plugins/${p_name}/${ver_maj}/${name}.tar.bz2";
+    sha256 = "0q2lj8a25iq9w3dynh6qvsmh19y1v7i82g46yza6gvw7fjcrmcz1";
+  };
+  name = "${p_name}-${ver_maj}.${ver_min}";
+
+  buildInputs = [ pkgconfig intltool libxfce4util libxfce4ui xfce4panel libxfcegui4 xfconf gtk ];
+  preFixup = "rm $out/share/icons/hicolor/icon-theme.cache";
+
+  meta = {
+    homepage = "http://goodies.xfce.org/projects/panel-plugins/${p_name}";
+    description = "CPU Freq load plugin for Xfce panel";
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/xfce-4.8/panel-plugins/xfce4-systemload-plugin.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-systemload-plugin.nix
index 6d0f997500c..dda5dc89def 100644
--- a/pkgs/desktops/xfce-4.8/panel-plugins/xfce4-systemload-plugin.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-systemload-plugin.nix
@@ -1,18 +1,21 @@
 { stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4panel, libxfce4ui, gtk}:
 
 stdenv.mkDerivation rec {
-  name = "xfce4-systemload-plugin-1.1.1";
-  
+  p_name  = "xfce4-systemload-plugin";
+  ver_maj = "1.1";
+  ver_min = "1";
+
   src = fetchurl {
-    url = "http://archive.xfce.org/src/panel-plugins/xfce4-systemload-plugin/1.1/${name}.tar.bz2";
+    url = "mirror://xfce/src/panel-plugins/${p_name}/${ver_maj}/${name}.tar.bz2";
     sha256 = "1bnrr30h6kgb37ixcq7frx2gvj2p99bpa1jyzppwjxp5x7xkxh8s";
   };
+  name = "${p_name}-${ver_maj}.${ver_min}";
 
   buildInputs = [ pkgconfig intltool libxfce4util libxfce4ui xfce4panel gtk ];
 
   meta = {
-    homepage = http://www.xfce.org/;
-    description = "System load panel plugin for Xfce";
+    homepage = "http://goodies.xfce.org/projects/panel-plugins/${p_name}";
+    description = "System load plugin for Xfce panel";
     platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/desktops/xfce-4.8/support/gvfs.nix b/pkgs/desktops/xfce/support/gvfs.nix
index f922b194f87..af70aea755a 100644
--- a/pkgs/desktops/xfce-4.8/support/gvfs.nix
+++ b/pkgs/desktops/xfce/support/gvfs.nix
@@ -2,11 +2,11 @@
 , libxml2, libxslt, docbook_xsl, libgphoto2, libtool }:
 
 stdenv.mkDerivation rec {
-  name = "gvfs-1.14.1";
+  name = "gvfs-1.14.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gvfs/1.14/${name}.tar.xz";
-    sha256 = "0af86cd7ee7b6daca144776bdf12f2f30d3e18fdd70b4da58e1a68cea4f6716a";
+    sha256 = "1g4ghyf45jg2ajdkv2d972hbckyjh3d9jdrppai85pl9pk2dmfy3";
   };
 
   buildInputs =
diff --git a/pkgs/desktops/xfce-4.8/support/libgdu-only.patch b/pkgs/desktops/xfce/support/libgdu-only.patch
index c5873c71681..c5873c71681 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 32835f0434a..32835f0434a 100644
--- a/pkgs/desktops/xfce-4.8/support/libgdu.nix
+++ b/pkgs/desktops/xfce/support/libgdu.nix
diff --git a/pkgs/development/libraries/libunique/1.1.6-G_CONST_RETURN.patch b/pkgs/development/libraries/libunique/1.1.6-G_CONST_RETURN.patch
new file mode 100644
index 00000000000..1cc5b6e01be
--- /dev/null
+++ b/pkgs/development/libraries/libunique/1.1.6-G_CONST_RETURN.patch
@@ -0,0 +1,143 @@
+From 557b0e5045c9eadb556ce11e16965cf0d0787438 Mon Sep 17 00:00:00 2001
+From: Stef Walter <stefw@collabora.co.uk>
+Date: Tue, 14 Jun 2011 12:33:45 +0100
+Subject: [PATCH] Remove G_CONST_RETURN usage, now that its gone in glib.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=652545
+
+[Alexandre Rostovtsev <tetromino@gmail.com>: backported to unique-1.1]
+---
+ unique/uniqueapp.c       |    4 ++--
+ unique/uniquebackend.c   |    4 ++--
+ unique/uniquebackend.h   |    4 ++--
+ unique/uniqueinternals.h |    4 ++--
+ unique/uniquemessage.c   |    4 ++--
+ unique/uniquemessage.h   |    4 ++--
+ 6 files changed, 12 insertions(+), 12 deletions(-)
+
+diff --git a/unique/uniqueapp.c b/unique/uniqueapp.c
+index b40a86c..e8edc94 100644
+--- a/unique/uniqueapp.c
++++ b/unique/uniqueapp.c
+@@ -781,7 +781,7 @@ unique_app_watch_window (UniqueApp *app,
+ }
+ 
+ 
+-G_CONST_RETURN gchar *
++const gchar *
+ unique_command_to_string (UniqueApp *app,
+                           gint       command)
+ {
+@@ -863,7 +863,7 @@ unique_command_from_string (UniqueApp   *app,
+   return retval;
+ }
+ 
+-G_CONST_RETURN gchar *
++const gchar *
+ unique_response_to_string (UniqueResponse response)
+ {
+   GEnumClass *enum_class;
+diff --git a/unique/uniquebackend.c b/unique/uniquebackend.c
+index a76e42e..68e2735 100644
+--- a/unique/uniquebackend.c
++++ b/unique/uniquebackend.c
+@@ -111,7 +111,7 @@ unique_backend_set_name (UniqueBackend *backend,
+  *
+  * Return value: FIXME
+  */
+-G_CONST_RETURN gchar *
++const gchar *
+ unique_backend_get_name (UniqueBackend *backend)
+ {
+   g_return_val_if_fail (UNIQUE_IS_BACKEND (backend), NULL);
+@@ -154,7 +154,7 @@ unique_backend_set_startup_id (UniqueBackend *backend,
+  *
+  * Return value: FIXME
+  */
+-G_CONST_RETURN gchar *
++const gchar *
+ unique_backend_get_startup_id (UniqueBackend *backend)
+ {
+   g_return_val_if_fail (UNIQUE_IS_BACKEND (backend), NULL);
+diff --git a/unique/uniquebackend.h b/unique/uniquebackend.h
+index a50ce4e..b19ad3e 100644
+--- a/unique/uniquebackend.h
++++ b/unique/uniquebackend.h
+@@ -94,10 +94,10 @@ GType                 unique_backend_get_type       (void) G_GNUC_CONST;
+ 
+ UniqueBackend *       unique_backend_create         (void);
+ 
+-G_CONST_RETURN gchar *unique_backend_get_name       (UniqueBackend     *backend);
++const gchar *         unique_backend_get_name       (UniqueBackend     *backend);
+ void                  unique_backend_set_name       (UniqueBackend     *backend,
+                                                      const gchar       *name);
+-G_CONST_RETURN gchar *unique_backend_get_startup_id (UniqueBackend     *backend);
++const gchar *         unique_backend_get_startup_id (UniqueBackend     *backend);
+ void                  unique_backend_set_startup_id (UniqueBackend     *backend,
+                                                      const gchar       *startup_id);
+ GdkScreen *           unique_backend_get_screen     (UniqueBackend     *backend);
+diff --git a/unique/uniqueinternals.h b/unique/uniqueinternals.h
+index 3cec152..ccae0cd 100644
+--- a/unique/uniqueinternals.h
++++ b/unique/uniqueinternals.h
+@@ -44,11 +44,11 @@ UniqueResponse unique_app_emit_message_received (UniqueApp         *app,
+  * and then back into an id
+  */
+ UniqueResponse        unique_response_from_string  (const gchar    *response);
+-G_CONST_RETURN gchar *unique_response_to_string    (UniqueResponse  response);
++const gchar *         unique_response_to_string    (UniqueResponse  response);
+ 
+ gint                  unique_command_from_string   (UniqueApp      *app,
+                                                     const gchar    *command);
+-G_CONST_RETURN gchar *unique_command_to_string     (UniqueApp      *app,
++const gchar *         unique_command_to_string     (UniqueApp      *app,
+                                                     gint            command);
+ 
+ G_END_DECLS
+diff --git a/unique/uniquemessage.c b/unique/uniquemessage.c
+index c74392d..2b2a9fc 100644
+--- a/unique/uniquemessage.c
++++ b/unique/uniquemessage.c
+@@ -185,7 +185,7 @@ unique_message_data_set (UniqueMessageData *message_data,
+  *
+  * Since: 1.0.2
+  */
+-G_CONST_RETURN guchar *
++const guchar *
+ unique_message_data_get (UniqueMessageData *message_data,
+                          gsize             *length)
+ {
+@@ -525,7 +525,7 @@ unique_message_data_get_screen (UniqueMessageData *message_data)
+  *   owned by the #UniqueMessageData structure and should not be
+  *   modified or freed
+  */
+-G_CONST_RETURN gchar *
++const gchar *
+ unique_message_data_get_startup_id (UniqueMessageData *message_data)
+ {
+   g_return_val_if_fail (message_data != NULL, NULL);
+diff --git a/unique/uniquemessage.h b/unique/uniquemessage.h
+index d3e9c3c..93eee21 100644
+--- a/unique/uniquemessage.h
++++ b/unique/uniquemessage.h
+@@ -48,7 +48,7 @@ void                   unique_message_data_free           (UniqueMessageData *me
+ void                   unique_message_data_set            (UniqueMessageData *message_data,
+                                                            const guchar      *data,
+                                                            gsize              length);
+-G_CONST_RETURN guchar *unique_message_data_get            (UniqueMessageData *message_data,
++const guchar *         unique_message_data_get            (UniqueMessageData *message_data,
+                                                            gsize             *length);
+ 
+ gboolean               unique_message_data_set_text       (UniqueMessageData *message_data,
+@@ -63,7 +63,7 @@ void                   unique_message_data_set_filename   (UniqueMessageData *me
+ gchar *                unique_message_data_get_filename   (UniqueMessageData *message_data);
+ 
+ GdkScreen *            unique_message_data_get_screen     (UniqueMessageData *message_data);
+-G_CONST_RETURN gchar * unique_message_data_get_startup_id (UniqueMessageData *message_data);
++const gchar *          unique_message_data_get_startup_id (UniqueMessageData *message_data);
+ guint                  unique_message_data_get_workspace  (UniqueMessageData *message_data);
+ 
+ G_END_DECLS
+-- 
+1.7.6
+
diff --git a/pkgs/development/libraries/libunique/1.1.6-compiler-warnings.patch b/pkgs/development/libraries/libunique/1.1.6-compiler-warnings.patch
new file mode 100644
index 00000000000..f47e66267d5
--- /dev/null
+++ b/pkgs/development/libraries/libunique/1.1.6-compiler-warnings.patch
@@ -0,0 +1,50 @@
+From 9df132a70d54b768a8e1d0335d24b85ac9b3fb76 Mon Sep 17 00:00:00 2001
+From: Emmanuele Bassi <ebassi@linux.intel.com>
+Date: Sun, 27 Mar 2011 08:42:22 +0000
+Subject: Remove compiler warnings
+
+(cherry picked from commit f791ed16b19dddc7fbaf90d8f797520e67883021)
+
+Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
+---
+diff --git a/unique/dbus/uniquebackend-dbus.c b/unique/dbus/uniquebackend-dbus.c
+index 3ae1bed..69faa00 100644
+--- a/unique/dbus/uniquebackend-dbus.c
++++ b/unique/dbus/uniquebackend-dbus.c
+@@ -84,7 +84,6 @@ unique_backend_dbus_register_proxy (UniqueBackendDBus *backend_dbus)
+ static gboolean
+ unique_backend_dbus_request_name (UniqueBackend *backend)
+ {
+-  UniqueBackendDBus *backend_dbus;
+   const gchar *name;
+   DBusGConnection *connection;
+   DBusGProxy *proxy;
+@@ -97,8 +96,6 @@ unique_backend_dbus_request_name (UniqueBackend *backend)
+   if (!connection)
+     return FALSE;
+ 
+-  backend_dbus = UNIQUE_BACKEND_DBUS (backend);
+-
+   retval = TRUE;
+   name = unique_backend_get_name (backend);
+   g_assert (name != NULL);
+@@ -207,10 +204,14 @@ unique_backend_dbus_send_message (UniqueBackend     *backend,
+                                         cmd, data, time_,
+                                         &resp,
+                                         &error);
+-  if (error)
++  if (!res)
+     {
+-      g_warning ("Error while sending message: %s", error->message);
+-      g_error_free (error);
++      if (error)
++        {
++          g_warning ("Error while sending message: %s", error->message);
++          g_error_free (error);
++        }
++
+       g_free (cmd);
+       
+       return UNIQUE_RESPONSE_INVALID;
+--
+cgit v0.9
diff --git a/pkgs/development/libraries/libunique/1.1.6-fix-test.patch b/pkgs/development/libraries/libunique/1.1.6-fix-test.patch
new file mode 100644
index 00000000000..b2e85e4d71a
--- /dev/null
+++ b/pkgs/development/libraries/libunique/1.1.6-fix-test.patch
@@ -0,0 +1,26 @@
+From caf736f4b84808393b0d7030ae6128a3322a71e2 Mon Sep 17 00:00:00 2001
+From: Tobias Mueller <tobiasmue@gnome.org>
+Date: Mon, 12 Apr 2010 13:01:42 +0000
+Subject: test-unique: Resolve format string issues
+
+Provide a proper literal format string to not expose potential vulnerabilites.
+Fixes bug 615522.
+---
+diff --git a/tests/test-unique.c b/tests/test-unique.c
+index b7cde45..c9958c9 100644
+--- a/tests/test-unique.c
++++ b/tests/test-unique.c
+@@ -82,9 +82,11 @@ app_message_cb (UniqueApp         *app,
+                                    GTK_DIALOG_DESTROY_WITH_PARENT,
+                                    GTK_MESSAGE_INFO,
+                                    GTK_BUTTONS_CLOSE,
++                                   "%s",
+                                    title);
+   if (message)
+     gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog),
++                                              "%s",
+                                               message);
+ 
+   gtk_window_set_urgency_hint (GTK_WINDOW (dialog), TRUE);
+--
+cgit v0.9
diff --git a/pkgs/development/libraries/libunique/1.1.6-include-terminator.patch b/pkgs/development/libraries/libunique/1.1.6-include-terminator.patch
new file mode 100644
index 00000000000..927771e7311
--- /dev/null
+++ b/pkgs/development/libraries/libunique/1.1.6-include-terminator.patch
@@ -0,0 +1,37 @@
+From 30ca2903a8ed4eed974ea744e4b9bd96198c425d Mon Sep 17 00:00:00 2001
+From: Rodney Lorrimar <r.lorrimar@fugro-fsi.com.au>
+Date: Mon, 21 Dec 2009 02:07:46 +0000
+Subject: Include NUL terminator in unique_message_data_get_filename()
+
+https://bugzilla.gnome.org/show_bug.cgi?id=605104
+
+Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
+---
+diff --git a/unique/uniqueinternals.h b/unique/uniqueinternals.h
+index ace40ed..3cec152 100644
+--- a/unique/uniqueinternals.h
++++ b/unique/uniqueinternals.h
+@@ -13,7 +13,7 @@ G_BEGIN_DECLS
+ struct _UniqueMessageData
+ {
+   guchar *data;
+-  gint length;
++  gint length;  /* length of data not including NUL terminator */
+ 
+   GdkScreen *screen;
+   gchar *startup_id;
+diff --git a/unique/uniquemessage.c b/unique/uniquemessage.c
+index 10f6df5..c74392d 100644
+--- a/unique/uniquemessage.c
++++ b/unique/uniquemessage.c
+@@ -493,7 +493,7 @@ unique_message_data_get_filename (UniqueMessageData *message_data)
+ {
+   g_return_val_if_fail (message_data != NULL, NULL);
+ 
+-  return g_memdup (message_data->data, message_data->length);
++  return g_memdup (message_data->data, message_data->length + 1);
+ }
+ 
+ /**
+--
+cgit v0.9
diff --git a/pkgs/development/libraries/libunique/default.nix b/pkgs/development/libraries/libunique/default.nix
new file mode 100644
index 00000000000..603759d47c0
--- /dev/null
+++ b/pkgs/development/libraries/libunique/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, pkgconfig, glib, gtk, dbus_glib }:
+
+stdenv.mkDerivation rec {
+  name = "libunique-1.1.6";
+  src = fetchurl {
+    url = "mirror://gnome/sources/libunique/1.1/${name}.tar.bz2";
+    sha256 = "1fsgvmncd9caw552lyfg8swmsd6bh4ijjsph69bwacwfxwf09j75";
+  };
+
+  # patches from Gentoo portage
+  patches = [
+    ./1.1.6-compiler-warnings.patch
+    ./1.1.6-fix-test.patch
+    ./1.1.6-G_CONST_RETURN.patch
+    ./1.1.6-include-terminator.patch
+  ];
+
+  buildInputs = [ pkgconfig glib gtk dbus_glib ];
+
+  # don't make deprecated usages hard errors
+  preBuildPhases = "preBuild";
+  preBuild = ''substituteInPlace unique/dbus/Makefile --replace -Werror ""'';
+
+  doCheck = true;
+
+  meta = {
+    homepage = http://live.gnome.org/LibUnique;
+    description = "A library for writing single instance applications";
+    license = "LGPLv2.1";
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 4bb08128798..6b2b13260f4 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -4418,6 +4418,8 @@ let
 
   libungif = callPackage ../development/libraries/giflib/libungif.nix { };
 
+  libunique = callPackage ../development/libraries/libunique/default.nix { };
+
   libusb = callPackage ../development/libraries/libusb { };
 
   libusb1 = callPackage ../development/libraries/libusb1 { };
@@ -8531,12 +8533,8 @@ let
 
   oxygen_gtk = callPackage ../misc/themes/gtk2/oxygen-gtk { };
 
-  xfce = xfce48;
-
-  xfce48 = recurseIntoAttrs
-    (let callPackage = newScope pkgs.xfce48; in
-     import ../desktops/xfce-4.8 { inherit callPackage pkgs; });
-
+  xfce = xfce4_10;
+  xfce4_10 = recurseIntoAttrs (import ../desktops/xfce { inherit pkgs newScope; });
 
   ### SCIENCE
 
diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix
index 473db5f4384..194e6085e15 100644
--- a/pkgs/top-level/release.nix
+++ b/pkgs/top-level/release.nix
@@ -447,7 +447,6 @@ with (import ./release-lib.nix);
     xfce4panel = linux;
     xfce4session = linux;
     xfce4settings = linux;
-    xfceutils = linux;
     xfdesktop = linux;
     xfwm4 = linux;
   };