summary refs log tree commit diff
path: root/pkgs/desktops
diff options
context:
space:
mode:
authorMichael Raskin <7c6f434c@mail.ru>2009-09-30 05:27:34 +0000
committerMichael Raskin <7c6f434c@mail.ru>2009-09-30 05:27:34 +0000
commitc1ae2bd62fa9ef175a308d8c53aeb71cc4949d49 (patch)
treea4cf443d5781fb69f5848eb933f413245a4cb4b3 /pkgs/desktops
parentb595a17822e37390f496705e500ea501f1940306 (diff)
Adding Gnome-2.28 sources
svn path=/nixpkgs/trunk/; revision=17519
Diffstat (limited to 'pkgs/desktops')
-rw-r--r--pkgs/desktops/gnome-2.28/default.nix259
-rw-r--r--pkgs/desktops/gnome-2.28/desktop/gnome-control-center/default.nix29
-rw-r--r--pkgs/desktops/gnome-2.28/desktop/gnome-desktop/default.nix13
-rw-r--r--pkgs/desktops/gnome-2.28/desktop/gnome-doc-utils/default.nix11
-rw-r--r--pkgs/desktops/gnome-2.28/desktop/gnome-keyring/default.nix10
-rw-r--r--pkgs/desktops/gnome-2.28/desktop/gnome-menus/default.nix10
-rw-r--r--pkgs/desktops/gnome-2.28/desktop/gnome-panel/default.nix24
-rw-r--r--pkgs/desktops/gnome-2.28/desktop/gnome-session/default.nix16
-rw-r--r--pkgs/desktops/gnome-2.28/desktop/gnome-settings-daemon/default.nix11
-rw-r--r--pkgs/desktops/gnome-2.28/desktop/gvfs/builder.sh9
-rw-r--r--pkgs/desktops/gnome-2.28/desktop/gvfs/default.nix13
-rw-r--r--pkgs/desktops/gnome-2.28/desktop/libcroco/default.nix10
-rw-r--r--pkgs/desktops/gnome-2.28/desktop/libgnomekbd/default.nix10
-rw-r--r--pkgs/desktops/gnome-2.28/desktop/libgweather/default.nix11
-rw-r--r--pkgs/desktops/gnome-2.28/desktop/librsvg/default.nix10
-rw-r--r--pkgs/desktops/gnome-2.28/desktop/libsoup/default.nix10
-rw-r--r--pkgs/desktops/gnome-2.28/desktop/libwnck/default.nix10
-rw-r--r--pkgs/desktops/gnome-2.28/desktop/metacity/default.nix12
-rw-r--r--pkgs/desktops/gnome-2.28/desktop/nautilus/default.nix10
-rw-r--r--pkgs/desktops/gnome-2.28/desktop/scrollkeeper/default.nix14
-rw-r--r--pkgs/desktops/gnome-2.28/desktop/zenity/default.nix16
-rw-r--r--pkgs/desktops/gnome-2.28/platform/GConf/default.nix12
-rw-r--r--pkgs/desktops/gnome-2.28/platform/ORBit2/default.nix10
-rw-r--r--pkgs/desktops/gnome-2.28/platform/at-spi/default.nix12
-rw-r--r--pkgs/desktops/gnome-2.28/platform/audiofile/default.nix9
-rw-r--r--pkgs/desktops/gnome-2.28/platform/esound/default.nix10
-rw-r--r--pkgs/desktops/gnome-2.28/platform/gnome-common/default.nix15
-rw-r--r--pkgs/desktops/gnome-2.28/platform/gnome-mime-data/default.nix10
-rw-r--r--pkgs/desktops/gnome-2.28/platform/gnome-vfs-monikers/default.nix13
-rw-r--r--pkgs/desktops/gnome-2.28/platform/gnome-vfs/default.nix12
-rw-r--r--pkgs/desktops/gnome-2.28/platform/gtk-doc/default.nix27
-rw-r--r--pkgs/desktops/gnome-2.28/platform/intltool/default.nix13
-rw-r--r--pkgs/desktops/gnome-2.28/platform/libIDL/default.nix10
-rw-r--r--pkgs/desktops/gnome-2.28/platform/libart_lgpl/default.nix9
-rw-r--r--pkgs/desktops/gnome-2.28/platform/libbonobo/default.nix10
-rw-r--r--pkgs/desktops/gnome-2.28/platform/libbonoboui/default.nix23
-rw-r--r--pkgs/desktops/gnome-2.28/platform/libglade/default.nix10
-rw-r--r--pkgs/desktops/gnome-2.28/platform/libgnome/default.nix13
-rw-r--r--pkgs/desktops/gnome-2.28/platform/libgnomecanvas/default.nix11
-rw-r--r--pkgs/desktops/gnome-2.28/platform/libgnomeui/default.nix21
-rw-r--r--pkgs/desktops/gnome-2.28/platform/libunique/default.nix10
-rw-r--r--pkgs/desktops/gnome-2.28/platform/startup-notification/default.nix10
42 files changed, 788 insertions, 0 deletions
diff --git a/pkgs/desktops/gnome-2.28/default.nix b/pkgs/desktops/gnome-2.28/default.nix
new file mode 100644
index 0000000000000..245791a71c45a
--- /dev/null
+++ b/pkgs/desktops/gnome-2.28/default.nix
@@ -0,0 +1,259 @@
+pkgs:
+
+rec {
+#### PLATFORM
+  audiofile = import ./platform/audiofile {
+    inherit (pkgs) stdenv fetchurl;
+  };
+
+  esound = import ./platform/esound {
+    inherit (pkgs) stdenv fetchurl pkgconfig alsaLib;
+    inherit audiofile;
+  };
+  
+  libIDL = import ./platform/libIDL {
+    inherit (pkgs) stdenv fetchurl flex bison pkgconfig;
+    inherit (pkgs.gtkLibs) glib;
+  };
+  
+  ORBit2 = import ./platform/ORBit2 {
+    inherit (pkgs) stdenv fetchurl pkgconfig;
+    inherit (pkgs.gtkLibs) glib;
+    inherit libIDL;
+  };
+  
+  libart_lgpl = import ./platform/libart_lgpl {
+    inherit (pkgs) stdenv fetchurl;
+  };
+  
+  libglade = import ./platform/libglade {
+    inherit (pkgs) stdenv fetchurl pkgconfig libxml2 expat python gettext;
+    inherit (pkgs.gtkLibs) gtk;
+  };
+  
+  intltool = import ./platform/intltool {
+    inherit (pkgs) stdenv fetchurl pkgconfig perl perlXMLParser gettext;
+  };
+  
+  GConf = import ./platform/GConf {
+    inherit (pkgs) stdenv fetchurl pkgconfig dbus_glib libxml2 expat policykit;
+    inherit (pkgs.gtkLibs) glib gtk;
+    inherit intltool ORBit2;
+  };
+
+  libgnomecanvas = import ./platform/libgnomecanvas {
+    inherit (pkgs) stdenv fetchurl pkgconfig cairo;
+    inherit (pkgs.gtkLibs) glib gtk pango atk;
+    inherit intltool libart_lgpl libglade;
+  };
+
+  # for git-head builds
+  gnome_common = import platform/gnome-common {
+    inherit (pkgs) stdenv fetchgit pkgconfig
+      autoconf automake libtool;
+  };
+  
+  gnome_mime_data = import ./platform/gnome-mime-data {
+    inherit (pkgs) stdenv fetchurl;
+    inherit intltool;
+  };
+  
+  gnome_vfs = import ./platform/gnome-vfs {
+    inherit (pkgs) stdenv fetchurl pkgconfig libxml2 bzip2 openssl samba dbus_glib fam hal cdparanoia;
+    inherit (pkgs.gtkLibs) glib;
+    inherit intltool GConf gnome_mime_data;
+  };
+  
+  gnome_vfs_monikers = import ./platform/gnome-vfs-monikers {
+    inherit (pkgs) stdenv fetchurl pkgconfig;
+    inherit (pkgs.gtkLibs) glib;
+    inherit intltool gnome_vfs libbonobo ORBit2;
+  };
+  
+  libgnome = import ./platform/libgnome {
+    inherit (pkgs) stdenv fetchurl pkgconfig popt;
+    inherit (pkgs.gtkLibs) glib;
+    inherit intltool esound audiofile libbonobo GConf gnome_vfs ORBit2;
+  };
+  
+  libgnomeui = import ./platform/libgnomeui {
+    inherit (pkgs) stdenv fetchurl pkgconfig libxml2 popt cairo;
+    inherit (pkgs.xlibs) libX11 libICE;
+    inherit (pkgs.gtkLibs) glib gtk atk pango;
+    inherit intltool libgnome libgnomecanvas libbonobo libbonoboui GConf;
+    inherit gnome_vfs gnome_keyring libglade libart_lgpl ORBit2;
+  };
+  
+  libbonobo = import ./platform/libbonobo {
+    inherit (pkgs) stdenv fetchurl flex bison pkgconfig dbus_glib libxml2 popt;
+    inherit (pkgs.gtkLibs) glib;
+    inherit intltool ORBit2;
+  };
+  
+  libbonoboui = import ./platform/libbonoboui {
+    inherit (pkgs) stdenv fetchurl bison pkgconfig popt libxml2 cairo;
+    inherit (pkgs.gtkLibs) glib gtk atk pango;
+    inherit intltool libbonobo GConf libgnomecanvas libgnome libglade ORBit2 libart_lgpl;
+  };
+  
+  at_spi = import ./platform/at-spi {
+    inherit (pkgs) stdenv fetchurl python pkgconfig popt;
+    inherit (pkgs.xlibs) libX11 libICE libXtst libXi;
+    inherit (pkgs.gtkLibs) atk gtk;
+    inherit intltool libbonobo ORBit2;
+  };
+
+  gtk_doc = import ./platform/gtk-doc {
+    inherit (pkgs) stdenv fetchurl pkgconfig perl python libxml2 libxslt;
+    inherit (pkgs) docbook_xml_dtd_43 docbook_xsl;
+    inherit gnome_doc_utils;
+  };
+  
+  # Freedesktop library
+  startup_notification = import ./platform/startup-notification {
+    inherit (pkgs) stdenv fetchurl pkgconfig;
+    inherit (pkgs.xlibs) libX11 libxcb libICE xcbutil libSM;
+  };
+  
+  # Required for nautilus
+  libunique = import ./platform/libunique {
+    inherit (pkgs) stdenv fetchurl pkgconfig gettext;
+    inherit (pkgs.gtkLibs) gtk;
+  };
+  
+#### DESKTOP
+
+  gnome_keyring = import ./desktop/gnome-keyring {
+    inherit (pkgs) stdenv fetchurl pkgconfig dbus libgcrypt libtasn1 pam hal python;
+    inherit (pkgs.gtkLibs) glib gtk;
+    inherit intltool GConf;
+  };
+  
+  libsoup = import ./desktop/libsoup {
+    inherit (pkgs) stdenv fetchurl pkgconfig libxml2 gnutls libproxy sqlite curl;
+    inherit (pkgs.gtkLibs) glib;
+    inherit GConf;
+  };
+
+  # fails with a mysterious error on linking
+  # symbol not found although it is actually present
+  libsoup_git_head = import ./desktop/libsoup/git-head.nix {
+    inherit (pkgs) stdenv fetchgit pkgconfig libxml2 gnutls libproxy sqlite curl
+      automake autoconf libtool which;
+    glib = pkgs.gtkLibs216.glib_2_21;
+    inherit GConf gnome_common gtk_doc gnome_keyring;
+  };
+
+  libwnck = import ./desktop/libwnck {
+    inherit (pkgs) stdenv fetchurl pkgconfig;
+    inherit (pkgs.xlibs) libX11;
+    inherit (pkgs.gtkLibs) gtk;
+    inherit intltool;
+  };
+  
+  # Not part of GNOME desktop, but provides CSS support for librsvg
+  libcroco = import ./desktop/libcroco {
+    inherit (pkgs) stdenv fetchurl pkgconfig libxml2;
+    inherit (pkgs.gtkLibs) glib;
+  };
+  
+  librsvg = import ./desktop/librsvg {
+    inherit (pkgs) stdenv fetchurl pkgconfig libxml2 libgsf bzip2;
+    inherit (pkgs.gtkLibs) glib gtk;
+    inherit libcroco;
+  };
+  
+  libgweather = import ./desktop/libgweather {
+    inherit (pkgs) stdenv fetchurl pkgconfig libxml2;
+    inherit (pkgs.gtkLibs) gtk;
+    inherit intltool GConf libsoup;
+  };
+  
+  gvfs = import ./desktop/gvfs {
+    inherit (pkgs) stdenv fetchurl pkgconfig dbus samba hal libarchive fuse libgphoto2 cdparanoia libxml2 libtool;
+    inherit (pkgs.gtkLibs) glib;
+    inherit intltool GConf gnome_keyring libsoup;
+  };
+  
+  libgnomekbd = import ./desktop/libgnomekbd {
+    inherit (pkgs) stdenv fetchurl pkgconfig dbus_glib libxklavier;
+    inherit (pkgs.gtkLibs) glib gtk;
+    inherit intltool GConf libglade;
+  };
+  
+  # Removed from recent GNOME releases, but still required
+  scrollkeeper = import ./desktop/scrollkeeper {
+    inherit (pkgs) stdenv fetchurl pkgconfig perl perlXMLParser libxml2 libxslt docbook_xml_dtd_42;
+  };
+  
+  gnome_doc_utils = import ./desktop/gnome-doc-utils {
+    inherit (pkgs) stdenv fetchurl python pkgconfig libxml2 libxslt;
+    inherit intltool scrollkeeper;
+  };
+  
+  zenity = import ./desktop/zenity {
+    inherit (pkgs) stdenv fetchurl pkgconfig cairo libxml2 libxslt;
+    inherit (pkgs.gtkLibs) glib gtk pango atk;
+    inherit gnome_doc_utils intltool libglade;
+    inherit (pkgs.xlibs) libX11;
+  };
+  
+  metacity = import ./desktop/metacity {
+    inherit (pkgs) stdenv fetchurl pkgconfig;
+    inherit (pkgs.gtkLibs) glib gtk;
+    inherit (pkgs.xlibs) libXcomposite libXcursor libXdamage;
+    inherit intltool GConf startup_notification zenity gnome_doc_utils;
+  };
+
+  gnome_menus = import ./desktop/gnome-menus {
+    inherit (pkgs) stdenv fetchurl pkgconfig python;
+    inherit (pkgs.gtkLibs) glib;
+    inherit intltool;
+  };
+  
+  gnome_desktop = import ./desktop/gnome-desktop {
+    inherit (pkgs) stdenv fetchurl pkgconfig python libxslt which;
+    libxml2 = pkgs.libxml2Python;
+    inherit (pkgs.xlibs) libX11;
+    inherit (pkgs.gtkLibs) gtk;
+    inherit intltool GConf gnome_doc_utils;
+  };
+    
+  gnome_panel = import ./desktop/gnome-panel {
+    inherit (pkgs) stdenv fetchurl pkgconfig dbus_glib dbus cairo popt which bzip2 python libxslt;
+    libxml2 = pkgs.libxml2Python;
+    inherit (pkgs.gtkLibs) glib gtk pango atk;
+    inherit (pkgs.xlibs) libXau;
+    inherit intltool ORBit2 libglade libgnome libgnomeui libbonobo libbonoboui GConf gnome_menus gnome_desktop;
+    inherit libwnck librsvg libgweather gnome_doc_utils libgnomecanvas libart_lgpl;
+  };
+  
+  gnome_session = import ./desktop/gnome-session {
+    inherit (pkgs) stdenv fetchurl pkgconfig dbus_glib cairo dbus;
+    inherit (pkgs.gtkLibs) gtk pango atk;
+    inherit (pkgs.xlibs) libXau libXtst inputproto;
+    inherit intltool libglade startup_notification GConf;
+  };
+  
+  gnome_settings_daemon = import ./desktop/gnome-settings-daemon {
+    inherit (pkgs) stdenv fetchurl pkgconfig dbus_glib libxklavier;
+    inherit (pkgs.gtkLibs) gtk;
+    inherit intltool GConf gnome_desktop libglade libgnomekbd;
+  };
+  
+  gnome_control_center = import ./desktop/gnome-control-center {
+    inherit (pkgs) stdenv fetchurl pkgconfig dbus_glib libxklavier hal;
+    inherit (pkgs) cairo popt which python libxslt shared_mime_info desktop_file_utils;
+    inherit (pkgs.gtkLibs) glib gtk pango atk;
+    inherit gnome_doc_utils intltool GConf libglade libgnome libgnomeui libgnomekbd;
+    inherit librsvg gnome_menus gnome_desktop gnome_panel metacity gnome_settings_daemon;
+    inherit libbonobo libbonoboui libgnomecanvas libart_lgpl gnome_vfs ORBit2;
+    libxml2 = pkgs.libxml2Python;
+  };
+  
+  nautilus = import ./desktop/nautilus {
+    inherit (pkgs) stdenv fetchurl pkgconfig libxml2 dbus_glib libexif shared_mime_info;
+    inherit (pkgs.gtkLibs) gtk;
+    inherit gnome_desktop libunique intltool GConf;
+  };
+}
diff --git a/pkgs/desktops/gnome-2.28/desktop/gnome-control-center/default.nix b/pkgs/desktops/gnome-2.28/desktop/gnome-control-center/default.nix
new file mode 100644
index 0000000000000..66fbd4ac12fcf
--- /dev/null
+++ b/pkgs/desktops/gnome-2.28/desktop/gnome-control-center/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, pkgconfig, dbus_glib, libxml2, libxslt, libxklavier, hal, cairo, popt, which, python
+, shared_mime_info, desktop_file_utils
+, glib, gtk, pango, atk, gnome_doc_utils, intltool, GConf, libglade, libgnome, libgnomeui, libgnomekbd
+, librsvg, gnome_menus, gnome_desktop, gnome_panel, metacity, gnome_settings_daemon
+, libbonobo, libbonoboui, libgnomecanvas, libart_lgpl, gnome_vfs, ORBit2}:
+
+stdenv.mkDerivation {
+  name = "gnome-control-center-2.28.0";
+  src = fetchurl {
+    url = mirror:/gnome/sources/gnome-control-center/2.28/gnome-control-center-2.28.0.tar.bz2;
+    sha256 = "0m0z7dn5qzl63cpc8ivagm4yfsfgigfawl5v3df3pw3z4jk2bsfp"
+  };
+  buildInputs = [ pkgconfig dbus_glib libxml2 libxslt libxklavier hal popt which python shared_mime_info desktop_file_utils
+                  gtk gnome_doc_utils intltool GConf libglade libgnomekbd
+                  libgnomeui librsvg gnome_menus gnome_desktop gnome_panel metacity gnome_settings_daemon ];
+  configureFlags = "--disable-scrollkeeper";
+  # This makes me cry
+  CPPFLAGS = "-I${glib}/include/glib-2.0 -I${glib}/lib/glib-2.0/include "+
+             "-I${gtk}/include/gtk-2.0 -I${gtk}/lib/gtk-2.0/include -I${cairo}/include/cairo "+
+             "-I${pango}/include/pango-1.0 -I${atk}/include/atk-1.0 "+
+	     "-I${gnome_desktop}/include/gnome-desktop-2.0 -I${gnome_menus}/include/gnome-menus "+
+	     "-I${libgnomeui}/include/libgnomeui-2.0 -I${libbonoboui}/include/libbonoboui-2.0 "+
+	     "-I${libgnomecanvas}/include/libgnomecanvas-2.0 -I${libart_lgpl}/include/libart-2.0 "+
+	     "-I${libgnome}/include/libgnome-2.0 -I${gnome_vfs}/include/gnome-vfs-2.0 "+
+	     "-I${libbonobo}/include/libbonobo-2.0 -I${libbonobo}/include/bonobo-activation-2.0 "+
+	     "-I${ORBit2}/include/orbit-2.0 -I${GConf}/include/gconf/2 -I${librsvg}/include/librsvg-2 "+
+	     "-I${gnome_panel}/include/panel-2.0";
+  LIBS = "-lXft -lglib-2.0 -lgtk-x11-2.0 -lrsvg-2 -lgconf-2 -lgnome-desktop-2 -lgnome-menu -lgnomeui-2";
+}
diff --git a/pkgs/desktops/gnome-2.28/desktop/gnome-desktop/default.nix b/pkgs/desktops/gnome-2.28/desktop/gnome-desktop/default.nix
new file mode 100644
index 0000000000000..1d2539e5b0631
--- /dev/null
+++ b/pkgs/desktops/gnome-2.28/desktop/gnome-desktop/default.nix
@@ -0,0 +1,13 @@
+{ stdenv, fetchurl, pkgconfig, python, libxml2, libxslt, which, libX11, gtk
+, intltool, GConf, gnome_doc_utils}:
+
+stdenv.mkDerivation {
+  name = "gnome-desktop-2.28.0";
+  src = fetchurl {
+    url = mirror:/gnome/sources/gnome-desktop/2.28/gnome-desktop-2.28.0.tar.bz2;
+    sha256 = "1raag5c74pyy0f1i37fjxyxcnk9ck4mh6c1hcdmv5dv40xndwvwp"
+  };
+  configureFlags = "--disable-scrollkeeper";
+  buildInputs = [ pkgconfig python libxml2 libxslt which libX11 gtk
+                  intltool GConf gnome_doc_utils ];
+}
diff --git a/pkgs/desktops/gnome-2.28/desktop/gnome-doc-utils/default.nix b/pkgs/desktops/gnome-2.28/desktop/gnome-doc-utils/default.nix
new file mode 100644
index 0000000000000..226fba54cd30b
--- /dev/null
+++ b/pkgs/desktops/gnome-2.28/desktop/gnome-doc-utils/default.nix
@@ -0,0 +1,11 @@
+{stdenv, fetchurl, python, pkgconfig, libxml2, libxslt, intltool, scrollkeeper}:
+
+stdenv.mkDerivation {
+  name = "gnome-doc-utils-0.18.0";
+  src = fetchurl {
+    url = mirror:/gnome/sources/gnome-doc-utils/0.18/gnome-doc-utils-0.18.0.tar.bz2;
+    sha256 = "1937zr088vn7vhy9rwfc021ih21hhf700c3m4ria8mlcpcvh1380"
+  };
+  configureFlags = "--disable-scrollkeeper";
+  buildInputs = [ python pkgconfig libxml2 libxslt intltool scrollkeeper ];
+}
diff --git a/pkgs/desktops/gnome-2.28/desktop/gnome-keyring/default.nix b/pkgs/desktops/gnome-2.28/desktop/gnome-keyring/default.nix
new file mode 100644
index 0000000000000..f4e070fd5080c
--- /dev/null
+++ b/pkgs/desktops/gnome-2.28/desktop/gnome-keyring/default.nix
@@ -0,0 +1,10 @@
+{stdenv, fetchurl, pkgconfig, dbus, libgcrypt, libtasn1, pam, hal, python, glib, gtk, intltool, GConf}:
+
+stdenv.mkDerivation {
+  name = "gnome-keyring-2.28.0";
+  src = fetchurl {
+    url = mirror:/gnome/sources/gnome-keyring/2.28/gnome-keyring-2.28.0.tar.bz2;
+    sha256 = "1d6av3cq32ypq9f9mv7f9bcqkkdqgbvbb831kad62smczvqk8chv"
+  };
+  buildInputs = [ pkgconfig dbus.libs libgcrypt libtasn1 pam hal python glib gtk intltool GConf ];
+}
diff --git a/pkgs/desktops/gnome-2.28/desktop/gnome-menus/default.nix b/pkgs/desktops/gnome-2.28/desktop/gnome-menus/default.nix
new file mode 100644
index 0000000000000..00847d320c126
--- /dev/null
+++ b/pkgs/desktops/gnome-2.28/desktop/gnome-menus/default.nix
@@ -0,0 +1,10 @@
+{stdenv, fetchurl, pkgconfig, python, glib, intltool}:
+
+stdenv.mkDerivation {
+  name = "gnome-menus-2.28.0";
+  src = fetchurl {
+    url = mirror:/gnome/sources/gnome-menus/2.28/gnome-menus-2.28.0.tar.bz2;
+    sha256 = "1lgkqa5gn0g61mfmr2xj2yfg4qjpdavj8rgbdg4bldznphmhp11s"
+  };
+  buildInputs = [ pkgconfig python glib intltool ];
+}
diff --git a/pkgs/desktops/gnome-2.28/desktop/gnome-panel/default.nix b/pkgs/desktops/gnome-2.28/desktop/gnome-panel/default.nix
new file mode 100644
index 0000000000000..1b79e784e4237
--- /dev/null
+++ b/pkgs/desktops/gnome-2.28/desktop/gnome-panel/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, pkgconfig, dbus_glib, dbus, cairo, popt, which, libxml2, libxslt, bzip2, python
+, glib, gtk, pango, atk, libXau
+, intltool, ORBit2, libglade, libgnome, libgnomeui, libbonobo, libbonoboui, GConf, gnome_menus, gnome_desktop
+, libwnck, librsvg, libgweather, gnome_doc_utils, libgnomecanvas, libart_lgpl}:
+
+stdenv.mkDerivation {
+  name = "gnome-panel-2.28.0";
+  src = fetchurl {
+    url = mirror:/gnome/sources/gnome-panel/2.28/gnome-panel-2.28.0.tar.bz2;
+    sha256 = "0rc4f6vmyrm3s8ncbll0a1ik2j1gg068fq3xal120sc4iw68q5n1"
+  };
+  buildInputs = [ pkgconfig gtk dbus_glib popt which libxml2 libxslt bzip2 python libXau
+                  intltool ORBit2 libglade libgnome libgnomeui libbonobo libbonoboui GConf gnome_menus gnome_desktop 
+		  libwnck librsvg libgweather gnome_doc_utils ];
+  configureFlags = "--disable-scrollkeeper";
+  CPPFLAGS = "-I${glib}/include/glib-2.0 -I${glib}/include/gio-unix-2.0 -I${glib}/lib/glib-2.0/include -I${dbus_glib}/include/dbus-1.0 -I${dbus.libs}/include/dbus-1.0 "+
+             "-I${gtk}/include/gtk-2.0 -I${gtk}/lib/gtk-2.0/include -I${cairo}/include/cairo -I${pango}/include/pango-1.0 "+
+	     "-I${atk}/include/atk-1.0 -I${ORBit2}/include/orbit-2.0 -I${libbonobo}/include/bonobo-activation-2.0 "+
+	     "-I${libgnomeui}/include/libgnomeui-2.0 -I${libgnome}/include/libgnome-2.0 -I${GConf}/include/gconf/2 "+
+	     "-I${libglade}/include/libglade-2.0 -I${gnome_menus}/include/gnome-menus -I${gnome_desktop}/include/gnome-desktop-2.0 "+
+	     "-I${libbonoboui}/include/libbonoboui-2.0 -I${libbonobo}/include/libbonobo-2.0 -I${libgnomecanvas}/include/libgnomecanvas-2.0 "+
+	     "-I${libart_lgpl}/include/libart-2.0 -I${librsvg}/include/librsvg-2 -I${libwnck}/include/libwnck-1.0";
+  LIBS = "-lORBit-2 -lbonobo-2 -lgtk-x11-2.0 -lgconf-2 -lgnomeui-2 -lglade-2.0 -lgnome-menu -lgnome-desktop-2 -lrsvg-2 -lwnck-1";
+}
diff --git a/pkgs/desktops/gnome-2.28/desktop/gnome-session/default.nix b/pkgs/desktops/gnome-2.28/desktop/gnome-session/default.nix
new file mode 100644
index 0000000000000..c56bd02e7e5b1
--- /dev/null
+++ b/pkgs/desktops/gnome-2.28/desktop/gnome-session/default.nix
@@ -0,0 +1,16 @@
+{ stdenv, fetchurl, pkgconfig, dbus_glib, cairo, dbus, gtk, pango, atk, libXau, libXtst, inputproto
+, intltool, libglade, startup_notification, GConf}:
+
+stdenv.mkDerivation {
+  name = "gnome-session-2.28.0";
+  src = fetchurl {
+    url = mirror:/gnome/sources/gnome-session/2.28/gnome-session-2.28.0.tar.bz2;
+    sha256 = "032wfr70z61fnfk7snw8kck914z6y4wxr6v0dcgil3q9zc29ms43"
+  };
+  buildInputs = [ pkgconfig dbus_glib gtk libXau libXtst inputproto intltool libglade startup_notification GConf ];
+  CPPFLAGS = "-I${gtk}/include/gtk-2.0 -I${gtk}/lib/gtk-2.0/include -I${dbus_glib}/include/dbus-1.0 "+
+             "-I${pango}/include/pango-1.0 -I${atk}/include/atk-1.0 -I${cairo}/include/cairo "+
+	     "-I${dbus.libs}/include/dbus-1.0 -I${dbus.libs}/lib/dbus-1.0/include "+
+	     "-I${libglade}/include/libglade-2.0";
+  LIBS = "-lglade-2.0 -ldbus-glib-1";
+}
diff --git a/pkgs/desktops/gnome-2.28/desktop/gnome-settings-daemon/default.nix b/pkgs/desktops/gnome-2.28/desktop/gnome-settings-daemon/default.nix
new file mode 100644
index 0000000000000..c71442575a9bd
--- /dev/null
+++ b/pkgs/desktops/gnome-2.28/desktop/gnome-settings-daemon/default.nix
@@ -0,0 +1,11 @@
+{ stdenv, fetchurl, pkgconfig, dbus_glib, libxklavier, gtk
+, intltool, GConf, gnome_desktop, libglade, libgnomekbd}:
+
+stdenv.mkDerivation {
+  name = "gnome-settings-daemon-2.28.0";
+  src = fetchurl {
+    url = mirror:/gnome/sources/gnome-settings-daemon/2.28/gnome-settings-daemon-2.28.0.tar.bz2;
+    sha256 = "1md46vs3m36czwjdkz084facanjr03cxgr50frf2yln60kc06cnz"
+  };
+  buildInputs = [ pkgconfig intltool dbus_glib libxklavier gtk GConf gnome_desktop libglade libgnomekbd ];
+}
diff --git a/pkgs/desktops/gnome-2.28/desktop/gvfs/builder.sh b/pkgs/desktops/gnome-2.28/desktop/gvfs/builder.sh
new file mode 100644
index 0000000000000..5be453c09a24d
--- /dev/null
+++ b/pkgs/desktops/gnome-2.28/desktop/gvfs/builder.sh
@@ -0,0 +1,9 @@
+source $stdenv/setup
+
+myPatchPhase()
+{
+    sed -i -e "/giomodulesdir=/ agiomodulesdir=$out/lib/gio" configure
+}
+
+patchPhase=myPatchPhase
+genericBuild
diff --git a/pkgs/desktops/gnome-2.28/desktop/gvfs/default.nix b/pkgs/desktops/gnome-2.28/desktop/gvfs/default.nix
new file mode 100644
index 0000000000000..902cf8ab88807
--- /dev/null
+++ b/pkgs/desktops/gnome-2.28/desktop/gvfs/default.nix
@@ -0,0 +1,13 @@
+{ stdenv, fetchurl, pkgconfig, dbus, samba, hal, libarchive, fuse, libgphoto2
+, cdparanoia, libxml2, libtool, glib, intltool, GConf, gnome_keyring, libsoup}:
+
+stdenv.mkDerivation {
+  name = "gvfs-1.4.0";
+  src = fetchurl {
+    url = mirror:/gnome/sources/gvfs/1.4/gvfs-1.4.0.tar.bz2;
+    sha256 = "1fzqq21888c1w357kcy8m12393wd6jjlk4pg118npn11m4gbb13s"
+  };
+  builder = ./builder.sh;
+  buildInputs = [ pkgconfig dbus.libs samba hal libarchive fuse libgphoto2 cdparanoia libxml2 libtool
+                  glib intltool GConf gnome_keyring libsoup ];
+}
diff --git a/pkgs/desktops/gnome-2.28/desktop/libcroco/default.nix b/pkgs/desktops/gnome-2.28/desktop/libcroco/default.nix
new file mode 100644
index 0000000000000..b7cfb1c31a0d1
--- /dev/null
+++ b/pkgs/desktops/gnome-2.28/desktop/libcroco/default.nix
@@ -0,0 +1,10 @@
+{stdenv, fetchurl, pkgconfig, libxml2, glib}:
+
+stdenv.mkDerivation {
+  name = "libcroco-0.6.2";
+  src = fetchurl {
+    url = mirror:/gnome/sources/libcroco/0.6/libcroco-0.6.2.tar.bz2;
+    sha256 = "0j8p6xlpdhhbzjznr7rx7jiy3fi95qib0gsnkv9n76y0chzqa95y"
+  };
+  buildInputs = [ pkgconfig libxml2 glib ];
+}
diff --git a/pkgs/desktops/gnome-2.28/desktop/libgnomekbd/default.nix b/pkgs/desktops/gnome-2.28/desktop/libgnomekbd/default.nix
new file mode 100644
index 0000000000000..c132c404cee3a
--- /dev/null
+++ b/pkgs/desktops/gnome-2.28/desktop/libgnomekbd/default.nix
@@ -0,0 +1,10 @@
+{stdenv, fetchurl, pkgconfig, dbus_glib, libxklavier, glib, gtk, intltool, GConf, libglade}:
+
+stdenv.mkDerivation {
+  name = "libgnomekbd-2.28.0";
+  src = fetchurl {
+    url = mirror:/gnome/sources/libgnomekbd/2.28/libgnomekbd-2.28.0.tar.bz2;
+    sha256 = "0s1664nwsavwjfmg4wkhvrpz9qxw04nsx5l8z87nlrny3312rnkj"
+  };
+  buildInputs = [ pkgconfig dbus_glib libxklavier glib gtk intltool GConf libglade ];
+}
diff --git a/pkgs/desktops/gnome-2.28/desktop/libgweather/default.nix b/pkgs/desktops/gnome-2.28/desktop/libgweather/default.nix
new file mode 100644
index 0000000000000..4bbedec5781c4
--- /dev/null
+++ b/pkgs/desktops/gnome-2.28/desktop/libgweather/default.nix
@@ -0,0 +1,11 @@
+{stdenv, fetchurl, pkgconfig, libxml2, gtk, intltool, GConf, libsoup}:
+
+stdenv.mkDerivation {
+  name = "libgweather-2.28.0";
+  src = fetchurl {
+    url = mirror:/gnome/sources/libgweather/2.28/libgweather-2.28.0.tar.bz2;
+    sha256 = "0m4ncqzf13037zvyihydif1asgp6pnzdkmx5qnmffzb1gd6qxzb5"
+  };
+  configureFlags = "--with-zoneinfo-dir=${stdenv.glibc}/share/zoneinfo";
+  buildInputs = [ pkgconfig libxml2 gtk intltool GConf libsoup ];
+}
diff --git a/pkgs/desktops/gnome-2.28/desktop/librsvg/default.nix b/pkgs/desktops/gnome-2.28/desktop/librsvg/default.nix
new file mode 100644
index 0000000000000..f213e009e60ba
--- /dev/null
+++ b/pkgs/desktops/gnome-2.28/desktop/librsvg/default.nix
@@ -0,0 +1,10 @@
+{stdenv, fetchurl, pkgconfig, libxml2, libgsf, bzip2, glib, gtk, libcroco}:
+
+stdenv.mkDerivation {
+  name = "librsvg-2.26.0";
+  src = fetchurl {
+    url = mirror:/gnome/sources/librsvg/2.26/librsvg-2.26.0.tar.bz2;
+    sha256 = "1sivagvlyr58hxgazr6pyq3yfxbg0wrv7rgzsk5xi631v3qbbjpx"
+  };
+  buildInputs = [ pkgconfig libxml2 libgsf bzip2 glib gtk libcroco ];
+}
diff --git a/pkgs/desktops/gnome-2.28/desktop/libsoup/default.nix b/pkgs/desktops/gnome-2.28/desktop/libsoup/default.nix
new file mode 100644
index 0000000000000..5dc5a89868bc7
--- /dev/null
+++ b/pkgs/desktops/gnome-2.28/desktop/libsoup/default.nix
@@ -0,0 +1,10 @@
+{stdenv, fetchurl, pkgconfig, libxml2, gnutls, libproxy, sqlite, curl, glib, GConf}:
+
+stdenv.mkDerivation {
+  name = "libsoup-2.28.0";
+  src = fetchurl {
+    url = mirror:/gnome/sources/libsoup/2.28/libsoup-2.28.0.tar.bz2;
+    sha256 = "1dkgih5im81lqc0y2qv3xcjd8hvmd4fjjvh5a5akfq6mjp9ifwk4"
+  };
+  buildInputs = [ pkgconfig libxml2 gnutls libproxy sqlite curl glib GConf ];
+}
diff --git a/pkgs/desktops/gnome-2.28/desktop/libwnck/default.nix b/pkgs/desktops/gnome-2.28/desktop/libwnck/default.nix
new file mode 100644
index 0000000000000..e088ba3ea1bd7
--- /dev/null
+++ b/pkgs/desktops/gnome-2.28/desktop/libwnck/default.nix
@@ -0,0 +1,10 @@
+{stdenv, fetchurl, pkgconfig, libX11, gtk, intltool}:
+
+stdenv.mkDerivation {
+  name = "libwnck-2.28.0";
+  src = fetchurl {
+    url = mirror:/gnome/sources/libwnck/2.28/libwnck-2.28.0.tar.bz2;
+    sha256 = "0ixr2sffbcm6gn29vmli7x30cfi1848w8vgdhy93m8zg5xny62yr"
+  };
+  buildInputs = [ pkgconfig libX11 gtk intltool ];
+}
diff --git a/pkgs/desktops/gnome-2.28/desktop/metacity/default.nix b/pkgs/desktops/gnome-2.28/desktop/metacity/default.nix
new file mode 100644
index 0000000000000..9207d9f42bc03
--- /dev/null
+++ b/pkgs/desktops/gnome-2.28/desktop/metacity/default.nix
@@ -0,0 +1,12 @@
+{ stdenv, fetchurl, pkgconfig, glib, gtk, libXcomposite, libXcursor, libXdamage
+, intltool, GConf, startup_notification, zenity, gnome_doc_utils}:
+
+stdenv.mkDerivation {
+  name = "metacity-2.28.0";
+  src = fetchurl {
+    url = mirror:/gnome/sources/metacity/2.28/metacity-2.28.0.tar.bz2;
+    sha256 = "0iamb6gw6gl6bfs7nqxpwr9xiij5axxr1iy4bl6g9z11dwx5a886"
+  };
+  buildInputs = [ pkgconfig glib gtk libXcomposite libXcursor libXdamage
+                  intltool GConf startup_notification zenity gnome_doc_utils ];
+}
diff --git a/pkgs/desktops/gnome-2.28/desktop/nautilus/default.nix b/pkgs/desktops/gnome-2.28/desktop/nautilus/default.nix
new file mode 100644
index 0000000000000..e6c8bf52de6cd
--- /dev/null
+++ b/pkgs/desktops/gnome-2.28/desktop/nautilus/default.nix
@@ -0,0 +1,10 @@
+{stdenv, fetchurl, pkgconfig, libxml2, dbus_glib, shared_mime_info, libexif, gtk, gnome_desktop, libunique, intltool, GConf}:
+
+stdenv.mkDerivation {
+  name = "nautilus-2.28.0";
+  src = fetchurl {
+    url = mirror:/gnome/sources/nautilus/2.28/nautilus-2.28.0.tar.bz2;
+    sha256 = "0wmskjxf231r2vra22zy02561gh5q10pj3lhzya13dvlliyv4q9p"
+  };
+  buildInputs = [ pkgconfig libxml2 dbus_glib shared_mime_info libexif gtk gnome_desktop libunique intltool GConf ];
+}
diff --git a/pkgs/desktops/gnome-2.28/desktop/scrollkeeper/default.nix b/pkgs/desktops/gnome-2.28/desktop/scrollkeeper/default.nix
new file mode 100644
index 0000000000000..6190077b98a92
--- /dev/null
+++ b/pkgs/desktops/gnome-2.28/desktop/scrollkeeper/default.nix
@@ -0,0 +1,14 @@
+{stdenv, fetchurl, pkgconfig, perl, perlXMLParser, libxml2, libxslt, docbook_xml_dtd_42}:
+
+stdenv.mkDerivation {
+  name = "scrollkeeper-0.3.14";
+  src = fetchurl {
+    url = mirror:/gnome/sources/scrollkeeper/0.3/scrollkeeper-0.3.14.tar.bz2.sha256sum;
+    sha256 = "0anwj7481k1klnwblhlkdxls50fbaqk942flf0s1zcdjli6ari9v"
+  };
+  preConfigure = "
+    substituteInPlace extract/dtds/Makefile.am --replace /usr/bin/xmlcatalog xmlcatalog
+  ";
+  buildInputs = [pkgconfig perl perlXMLParser libxml2 libxslt];
+  configureFlags = "--with-xml-catalog=${docbook_xml_dtd_42}/xml/dtd/docbook/docbook.cat";
+}
diff --git a/pkgs/desktops/gnome-2.28/desktop/zenity/default.nix b/pkgs/desktops/gnome-2.28/desktop/zenity/default.nix
new file mode 100644
index 0000000000000..e2440a3c7501e
--- /dev/null
+++ b/pkgs/desktops/gnome-2.28/desktop/zenity/default.nix
@@ -0,0 +1,16 @@
+{stdenv, fetchurl, pkgconfig, cairo, libxml2, libxslt, glib, gtk, pango, atk, gnome_doc_utils, intltool, libglade,
+  libX11}:
+
+stdenv.mkDerivation {
+  name = "zenity-2.28.0";
+  src = fetchurl {
+    url = mirror:/gnome/sources/zenity/2.28/zenity-2.28.0.tar.bz2;
+    sha256 = "0qwcrkgqsldxmh29xlbakh6lc3qz8sp6kmk1ca7fc3kbwhya4irp"
+  };
+  configureFlags = "--disable-scrollkeeper";
+  buildInputs = [ pkgconfig gtk gnome_doc_utils intltool libglade libxml2 libxslt libX11];
+  CPPFLAGS = "-I${cairo}/include/cairo -I${glib}/include/glib-2.0 -I${glib}/lib/glib-2.0/include "+
+             "-I${gtk}/include/gtk-2.0 -I${gtk}/lib/gtk-2.0/include -I${pango}/include/pango-1.0 "+
+	     "-I${atk}/include/atk-1.0 -I${libglade}/include/libglade-2.0";
+  LIBS = "-lgtk-x11-2.0 -lglade-2.0 -lX11";
+}
diff --git a/pkgs/desktops/gnome-2.28/platform/GConf/default.nix b/pkgs/desktops/gnome-2.28/platform/GConf/default.nix
new file mode 100644
index 0000000000000..e668b4a5c1701
--- /dev/null
+++ b/pkgs/desktops/gnome-2.28/platform/GConf/default.nix
@@ -0,0 +1,12 @@
+{ stdenv, fetchurl, pkgconfig, dbus_glib, glib, gtk, ORBit2, libxml2
+, expat, policykit, intltool}:
+
+stdenv.mkDerivation {
+  name = "GConf-2.28.0";
+  src = fetchurl {
+    url = mirror:/gnome/sources/GConf/2.28/GConf-2.28.0.tar.bz2;
+    sha256 = "1j3ah0f71yv4di3fvv1aahcjvqfwsxw2m71ljbjq0apv5gzdqmyh"
+  };
+  buildInputs = [ pkgconfig glib gtk dbus_glib ORBit2 libxml2
+                  expat policykit intltool ];
+}
diff --git a/pkgs/desktops/gnome-2.28/platform/ORBit2/default.nix b/pkgs/desktops/gnome-2.28/platform/ORBit2/default.nix
new file mode 100644
index 0000000000000..f7da4d8cab5d6
--- /dev/null
+++ b/pkgs/desktops/gnome-2.28/platform/ORBit2/default.nix
@@ -0,0 +1,10 @@
+{stdenv, fetchurl, pkgconfig, glib, libIDL}:
+
+stdenv.mkDerivation {
+  name = "ORBit2-2.14.17";
+  src = fetchurl {
+    url = mirror:/gnome/sources/ORBit2/2.14/ORBit2-2.14.17.tar.bz2;
+    sha256 = "0k4px2f949ac7vmj7b155g1rpf7pmvl48sbnkjhlg4wgcwzwxgv2"
+  };
+  buildInputs = [ pkgconfig glib libIDL ];
+}
diff --git a/pkgs/desktops/gnome-2.28/platform/at-spi/default.nix b/pkgs/desktops/gnome-2.28/platform/at-spi/default.nix
new file mode 100644
index 0000000000000..66a8234ce459e
--- /dev/null
+++ b/pkgs/desktops/gnome-2.28/platform/at-spi/default.nix
@@ -0,0 +1,12 @@
+{ stdenv, fetchurl, python, pkgconfig, popt, atk, gtk, libX11, libICE, libXtst, libXi
+, intltool, libbonobo, ORBit2}:
+
+stdenv.mkDerivation {
+  name = "at-spi-1.28.0";
+  src = fetchurl {
+    url = mirror:/gnome/sources/at-spi/1.28/at-spi-1.28.0.tar.bz2;
+    sha256 = "0rv616drqpk58vybi3kalzyx06dxg26iwkbcrzk5563avhhj5qpb"
+  };
+  buildInputs = [ python pkgconfig popt atk gtk libX11 libICE libXtst libXi
+                  intltool libbonobo ORBit2 ];
+}
diff --git a/pkgs/desktops/gnome-2.28/platform/audiofile/default.nix b/pkgs/desktops/gnome-2.28/platform/audiofile/default.nix
new file mode 100644
index 0000000000000..7722ba6d8ca7a
--- /dev/null
+++ b/pkgs/desktops/gnome-2.28/platform/audiofile/default.nix
@@ -0,0 +1,9 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation {
+  name = "audiofile-0.2.6";
+  src = fetchurl {
+    url = mirror:/gnome/sources/audiofile/0.2/audiofile-0.2.6.tar.bz2;
+    sha256 = "1d00w9hxx3flfs6cjyja99y8vpj1qwa34zfdj96dpa54drd9da62"
+  };
+}
diff --git a/pkgs/desktops/gnome-2.28/platform/esound/default.nix b/pkgs/desktops/gnome-2.28/platform/esound/default.nix
new file mode 100644
index 0000000000000..618130b749926
--- /dev/null
+++ b/pkgs/desktops/gnome-2.28/platform/esound/default.nix
@@ -0,0 +1,10 @@
+{stdenv, fetchurl, pkgconfig, alsaLib, audiofile}:
+
+stdenv.mkDerivation {
+  name = "esound-0.2.41";
+  src = fetchurl {
+    url = mirror:/gnome/sources/esound/0.2/esound-0.2.41.tar.bz2;
+    sha256 = "04a9ldy7hsvry1xmfhzg5is2dabsp8m6a82vkai64d2blqlxvday"
+  };
+  buildInputs = [ pkgconfig alsaLib audiofile ];
+}
diff --git a/pkgs/desktops/gnome-2.28/platform/gnome-common/default.nix b/pkgs/desktops/gnome-2.28/platform/gnome-common/default.nix
new file mode 100644
index 0000000000000..96991b8e65c45
--- /dev/null
+++ b/pkgs/desktops/gnome-2.28/platform/gnome-common/default.nix
@@ -0,0 +1,15 @@
+{stdenv, fetchgit, pkgconfig, autoconf, automake, libtool}:
+
+stdenv.mkDerivation {
+  name = "gnome-common-2.28.0";
+  src =  fetchgit {
+    url = mirror:/gnome/sources/gnome-common/2.28/gnome-common-2.28.0.tar.bz2;
+    rev = "53ca82d81d93b52bc057d649247eb18549a86d55";
+    md5 = "a3e4c471c73af14d87fa753c2ee05f15";
+  };
+  buildInputs = [ pkgconfig automake autoconf libtool
+    ];
+  preConfigure = ''
+    ./autogen.sh
+  '';
+}
diff --git a/pkgs/desktops/gnome-2.28/platform/gnome-mime-data/default.nix b/pkgs/desktops/gnome-2.28/platform/gnome-mime-data/default.nix
new file mode 100644
index 0000000000000..00ecb8f859fcb
--- /dev/null
+++ b/pkgs/desktops/gnome-2.28/platform/gnome-mime-data/default.nix
@@ -0,0 +1,10 @@
+{stdenv, fetchurl, intltool}:
+
+stdenv.mkDerivation {
+  name = "gnome-mime-data-2.18.0";
+  src = fetchurl {
+    url = mirror:/gnome/sources/gnome-mime-data/2.18/gnome-mime-data-2.18.0.tar.bz2;
+    sha256 = "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"
+  };
+  buildInputs = [ intltool ];
+}
diff --git a/pkgs/desktops/gnome-2.28/platform/gnome-vfs-monikers/default.nix b/pkgs/desktops/gnome-2.28/platform/gnome-vfs-monikers/default.nix
new file mode 100644
index 0000000000000..4b041a23d69dc
--- /dev/null
+++ b/pkgs/desktops/gnome-2.28/platform/gnome-vfs-monikers/default.nix
@@ -0,0 +1,13 @@
+{stdenv, fetchurl, pkgconfig, glib, intltool, gnome_vfs, libbonobo, ORBit2}:
+
+stdenv.mkDerivation {
+  name = "gnome-vfs-monikers-2.15.3";
+  src = fetchurl {
+    url = mirror:/gnome/sources/gnome-vfs-monikers/2.15/gnome-vfs-monikers-2.15.3.tar.bz2;
+    sha256 = "0gpgk5vwhgqfhrd8pf1314kh7sv3jfqll2xbdbrs5s5sxy3v7b15"
+  };
+  buildInputs = [ pkgconfig glib intltool gnome_vfs libbonobo ];
+  CPPFLAGS = "-I${libbonobo}/include/libbonobo-2.0 -I${libbonobo}/include/bonobo-activation-2.0 "+
+             "-I${glib}/include/glib-2.0 -I${glib}/lib/glib-2.0/include -I${ORBit2}/include/orbit-2.0 "+
+	     "-I${gnome_vfs}/include/gnome-vfs-2.0";
+}
diff --git a/pkgs/desktops/gnome-2.28/platform/gnome-vfs/default.nix b/pkgs/desktops/gnome-2.28/platform/gnome-vfs/default.nix
new file mode 100644
index 0000000000000..efe8aa98d475a
--- /dev/null
+++ b/pkgs/desktops/gnome-2.28/platform/gnome-vfs/default.nix
@@ -0,0 +1,12 @@
+{ stdenv, fetchurl, pkgconfig, libxml2, bzip2, openssl, samba, dbus_glib, glib, fam, hal, cdparanoia
+, intltool, GConf, gnome_mime_data}:
+
+stdenv.mkDerivation {
+  name = "gnome-vfs-2.24.1";
+  src = fetchurl {
+    url = mirror:/gnome/sources/gnome-vfs/2.24/gnome-vfs-2.24.1.tar.bz2;
+    sha256 = "1dmyr8nj77717r8dhwkixpar2yp8ld3r683gp222n59v61718ndw"
+  };
+  buildInputs = [ pkgconfig libxml2 bzip2 openssl samba dbus_glib glib fam hal cdparanoia
+                  intltool GConf gnome_mime_data ];
+}
diff --git a/pkgs/desktops/gnome-2.28/platform/gtk-doc/default.nix b/pkgs/desktops/gnome-2.28/platform/gtk-doc/default.nix
new file mode 100644
index 0000000000000..081d3ab75ec52
--- /dev/null
+++ b/pkgs/desktops/gnome-2.28/platform/gtk-doc/default.nix
@@ -0,0 +1,27 @@
+{stdenv, fetchurl, pkgconfig, perl, python, libxml2, libxslt, docbook_xml_dtd_43, docbook_xsl, gnome_doc_utils}:
+
+stdenv.mkDerivation {
+  name = "gtk-doc-1.11";
+  src = fetchurl {
+    url = mirror:/gnome/sources/gtk-doc/1.11/gtk-doc-1.11.tar.bz2;
+    sha256 = "08zz6gn90aqps84hfhdgarsilbdj0bbnj3wjm2x552n4i7gmq4wj"
+  };
+  
+  # maybe there is a better way to pass the needed dtd and xsl files
+  # "-//OASIS//DTD DocBook XML V4.1.2//EN" and "http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl"
+  preConfigure = ''
+    ensureDir $out/nix-support
+    cat > $out/nix-support/catalog.xml << EOF
+    <?xml version="1.0"?>
+    <!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN" "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">
+    <catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
+      <nextCatalog  catalog="${docbook_xsl}/xml/xsl/docbook/catalog.xml" />
+      <nextCatalog  catalog="${docbook_xml_dtd_43}/xml/dtd/docbook/catalog.xml" />
+    </catalog>
+    EOF
+
+    configureFlags="--with-xml-catalog=$out/nix-support/catalog.xml --disable-scrollkeeper";
+  '';
+
+  buildInputs = [ pkgconfig perl python libxml2 libxslt docbook_xml_dtd_43 gnome_doc_utils ];
+}
diff --git a/pkgs/desktops/gnome-2.28/platform/intltool/default.nix b/pkgs/desktops/gnome-2.28/platform/intltool/default.nix
new file mode 100644
index 0000000000000..82478c63f05a5
--- /dev/null
+++ b/pkgs/desktops/gnome-2.28/platform/intltool/default.nix
@@ -0,0 +1,13 @@
+{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 = ""
+  };
+
+  buildInputs = [ pkgconfig ];
+  propagatedBuildInputs = [ perl perlXMLParser gettext ];
+}
diff --git a/pkgs/desktops/gnome-2.28/platform/libIDL/default.nix b/pkgs/desktops/gnome-2.28/platform/libIDL/default.nix
new file mode 100644
index 0000000000000..e451e38c6a6f6
--- /dev/null
+++ b/pkgs/desktops/gnome-2.28/platform/libIDL/default.nix
@@ -0,0 +1,10 @@
+{stdenv, fetchurl, flex, bison, pkgconfig, glib}:
+
+stdenv.mkDerivation {
+  name = "libIDL-0.8.13";
+  src = fetchurl {
+    url = mirror:/gnome/sources/libIDL/0.8/libIDL-0.8.13.tar.bz2;
+    sha256 = "0w9b4q5sllwncz498sj5lmc3ajzc8x74dy0jy27m2yg9v887xk5w"
+  };
+  buildInputs = [ flex bison pkgconfig glib ];
+}
diff --git a/pkgs/desktops/gnome-2.28/platform/libart_lgpl/default.nix b/pkgs/desktops/gnome-2.28/platform/libart_lgpl/default.nix
new file mode 100644
index 0000000000000..3b48c14619307
--- /dev/null
+++ b/pkgs/desktops/gnome-2.28/platform/libart_lgpl/default.nix
@@ -0,0 +1,9 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation {
+  name = "libart_lgpl-2.3.20";
+  src = fetchurl {
+    url = mirror:/gnome/sources/libart_lgpl/2.3/libart_lgpl-2.3.20.tar.bz2;
+    sha256 = "0iyqsc517lj8xnidchnk0fxa6aqvss4hv8p9fk6bba86lbiillym"
+  };
+}
diff --git a/pkgs/desktops/gnome-2.28/platform/libbonobo/default.nix b/pkgs/desktops/gnome-2.28/platform/libbonobo/default.nix
new file mode 100644
index 0000000000000..c50b83d9535fc
--- /dev/null
+++ b/pkgs/desktops/gnome-2.28/platform/libbonobo/default.nix
@@ -0,0 +1,10 @@
+{stdenv, fetchurl, flex, bison, pkgconfig, glib, dbus_glib, libxml2, popt, intltool, ORBit2}:
+
+stdenv.mkDerivation {
+  name = "libbonobo-2.24.2";
+  src = fetchurl {
+    url = mirror:/gnome/sources/libbonobo/2.24/libbonobo-2.24.2.tar.bz2;
+    sha256 = "1gr85amd271z0lbr68crcsc24rx1pa5k20f67y3y2mx664527h4m"
+  };
+  buildInputs = [ flex bison pkgconfig glib dbus_glib libxml2 popt intltool ORBit2 ];
+}
diff --git a/pkgs/desktops/gnome-2.28/platform/libbonoboui/default.nix b/pkgs/desktops/gnome-2.28/platform/libbonoboui/default.nix
new file mode 100644
index 0000000000000..3b639b4a3ad61
--- /dev/null
+++ b/pkgs/desktops/gnome-2.28/platform/libbonoboui/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, bison, pkgconfig, popt, libxml2, cairo, glib, gtk, atk, pango
+, intltool, libbonobo, GConf, libgnomecanvas, libgnome, libglade, ORBit2, libart_lgpl}:
+
+stdenv.mkDerivation {
+  name = "libbonoboui-2.24.2";
+  src = fetchurl {
+    url = mirror:/gnome/sources/libbonoboui/2.24/libbonoboui-2.24.2.tar.bz2;
+    sha256 = "005ypnzb3mfsb0k0aa3h77vwc4ifjq6r4d11msqllvx7avfgkg5f"
+  };
+  buildInputs = [ bison pkgconfig popt gtk libxml2
+                  intltool libbonobo GConf libgnomecanvas libgnome libglade ];
+	  
+  # For some reason GNOME maintainers write crappy automake files and they forget to include
+  # a lot of required headers (the headers may be found if they are in /usr)
+  
+  CPPFLAGS = "-I${cairo}/include/cairo -I${gtk}/include/gtk-2.0 -I${gtk}/lib/gtk-2.0/include " +
+             "-I${glib}/include/glib-2.0 -I${glib}/lib/glib-2.0/include -I${atk}/include/atk-1.0 " +
+	     "-I${pango}/include/pango-1.0 -I${libgnome}/include/libgnome-2.0 -I${libbonobo}/include/libbonobo-2.0 "+
+	     "-I${libbonobo}/include/bonobo-activation-2.0 -I${ORBit2}/include/orbit-2.0 -I${libxml2}/include/libxml2 "+
+	     "-I${libgnomecanvas}/include/libgnomecanvas-2.0 -I${libart_lgpl}/include/libart-2.0 "+
+	     "-I${GConf}/include/gconf/2 -I${libglade}/include/libglade-2.0";
+  LIBS = "-lgobject-2.0 -lbonobo-2 -lgtk-x11-2.0 -lgconf-2 -lxml2 -lgnome-2 -lgnomecanvas-2";
+}
diff --git a/pkgs/desktops/gnome-2.28/platform/libglade/default.nix b/pkgs/desktops/gnome-2.28/platform/libglade/default.nix
new file mode 100644
index 0000000000000..55836560f5b6f
--- /dev/null
+++ b/pkgs/desktops/gnome-2.28/platform/libglade/default.nix
@@ -0,0 +1,10 @@
+{stdenv, fetchurl, pkgconfig, gtk, libxml2, expat, python, gettext}:
+
+stdenv.mkDerivation {
+  name = "libglade-2.6.4";
+  src = fetchurl {
+    url = mirror:/gnome/sources/libglade/2.6/libglade-2.6.4.tar.bz2;
+    sha256 = "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"
+  };
+  buildInputs = [ pkgconfig gtk libxml2 expat python gettext ];
+}
diff --git a/pkgs/desktops/gnome-2.28/platform/libgnome/default.nix b/pkgs/desktops/gnome-2.28/platform/libgnome/default.nix
new file mode 100644
index 0000000000000..4c5f0a3712d8d
--- /dev/null
+++ b/pkgs/desktops/gnome-2.28/platform/libgnome/default.nix
@@ -0,0 +1,13 @@
+{ stdenv, fetchurl, pkgconfig, glib, popt
+, intltool, esound, audiofile, libbonobo, GConf, gnome_vfs, ORBit2}:
+
+stdenv.mkDerivation {
+  name = "libgnome-2.28.0";
+  src = fetchurl {
+    url = mirror:/gnome/sources/libgnome/2.28/libgnome-2.28.0.tar.bz2;
+    sha256 = "03hc1m88swxxw4cq491kz7495ksv762imamzbbvhci41bc40anwv"
+  };
+  buildInputs = [ pkgconfig glib popt intltool esound audiofile libbonobo GConf gnome_vfs ];
+  CPPFLAGS = "-I${glib}/include/glib-2.0 -I${glib}/lib/glib-2.0/include -I${ORBit2}/include/orbit-2.0 -I${libbonobo}/include/libbonobo-2.0 -I${libbonobo}/include/bonobo-activation-2.0 -I${GConf}/include/gconf/2 -I${gnome_vfs}/include/gnome-vfs-2.0";
+  LIBS = "-lesd -lgconf-2 -lbonobo-activation -lbonobo-2 -lgnomevfs-2";
+}
diff --git a/pkgs/desktops/gnome-2.28/platform/libgnomecanvas/default.nix b/pkgs/desktops/gnome-2.28/platform/libgnomecanvas/default.nix
new file mode 100644
index 0000000000000..189205a48ab1b
--- /dev/null
+++ b/pkgs/desktops/gnome-2.28/platform/libgnomecanvas/default.nix
@@ -0,0 +1,11 @@
+{stdenv, fetchurl, pkgconfig, glib, gtk, pango, atk, cairo, intltool, libart_lgpl, libglade}:
+
+stdenv.mkDerivation {
+  name = "libgnomecanvas-2.26.0";
+  src = fetchurl {
+    url = mirror:/gnome/sources/libgnomecanvas/2.26/libgnomecanvas-2.26.0.tar.bz2;
+    sha256 = "13f5rf5pkp9hnyxzvssrxnlykjaixa7vrig9a7v06wrxqfn81d40"
+  };
+  buildInputs = [ pkgconfig gtk intltool libart_lgpl libglade ];
+  CPPFLAGS = "-I${libglade}/include/libglade-2.0 -I${libart_lgpl}/include/libart-2.0 -I${glib}/include/glib-2.0 -I${glib}/lib/glib-2.0/include -I${gtk}/include/gtk-2.0 -I${gtk}/lib/gtk-2.0/include -I${atk}/include/atk-1.0 -I${cairo}/include/cairo -I${pango}/include/pango-1.0";
+}
diff --git a/pkgs/desktops/gnome-2.28/platform/libgnomeui/default.nix b/pkgs/desktops/gnome-2.28/platform/libgnomeui/default.nix
new file mode 100644
index 0000000000000..6842f8982c232
--- /dev/null
+++ b/pkgs/desktops/gnome-2.28/platform/libgnomeui/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, pkgconfig, libxml2, popt, cairo, libX11, libICE, glib, gtk, atk, pango
+, intltool, libgnome, libgnomecanvas, libbonobo, libbonoboui, GConf
+, gnome_vfs, gnome_keyring, libglade, libart_lgpl, ORBit2}:
+
+stdenv.mkDerivation {
+  name = "libgnomeui-2.24.2";
+  src = fetchurl {
+    url = mirror:/gnome/sources/libgnomeui/2.24/libgnomeui-2.24.2.tar.bz2;
+    sha256 = "04296nf6agg8zsbw6pzl3mzn890bkcczs6fnna5jay7fvnrmjx5f"
+  };
+  buildInputs = [ pkgconfig libxml2 popt libX11 libICE glib gtk pango
+                  intltool libgnome libgnomecanvas libbonoboui GConf gnome_vfs gnome_keyring libglade ];
+  CPPFLAGS = "-I${glib}/include/glib-2.0 -I${glib}/lib/glib-2.0/include -I${atk}/include/atk-1.0 "+
+             "-I${gtk}/include/gtk-2.0 -I${gtk}/lib/gtk-2.0/include -I${libbonoboui}/include/libbonoboui-2.0 "+
+	     "-I${cairo}/include/cairo -I${pango}/include/pango-1.0 -I${libgnomecanvas}/include/libgnomecanvas-2.0 "+
+	     "-I${libgnome}/include/libgnome-2.0 -I${libart_lgpl}/include/libart-2.0 -I${gnome_vfs}/include/gnome-vfs-2.0 "+
+	     "-I${libbonobo}/include/libbonobo-2.0 -I${GConf}/include/gconf/2 -I${libxml2}/include/libxml2 "+
+	     "-I${libbonobo}/include/bonobo-activation-2.0 -I${ORBit2}/include/orbit-2.0 "+
+	     "-I${gnome_keyring}/include/gnome-keyring-1 -I${libglade}/include/libglade-2.0";
+  LIBS = "-lgtk-x11-2.0 -lgnomecanvas-2 -lgconf-2 -lbonoboui-2 -lgnome-keyring";
+}
diff --git a/pkgs/desktops/gnome-2.28/platform/libunique/default.nix b/pkgs/desktops/gnome-2.28/platform/libunique/default.nix
new file mode 100644
index 0000000000000..a327e24fa514a
--- /dev/null
+++ b/pkgs/desktops/gnome-2.28/platform/libunique/default.nix
@@ -0,0 +1,10 @@
+{stdenv, fetchurl, pkgconfig, gettext, gtk}:
+
+stdenv.mkDerivation {
+  name = "libunique-1.1.2";
+  src = fetchurl {
+    url = mirror:/gnome/sources/libunique/1.1/libunique-1.1.2.tar.bz2;
+    sha256 = "0vhcbw4ccc58xhs99r6bkabrzbayyq2qk01xm8vv4hpwjl117yvk"
+  };
+  buildInputs = [ pkgconfig gettext gtk ];
+}
diff --git a/pkgs/desktops/gnome-2.28/platform/startup-notification/default.nix b/pkgs/desktops/gnome-2.28/platform/startup-notification/default.nix
new file mode 100644
index 0000000000000..edaea4183bc19
--- /dev/null
+++ b/pkgs/desktops/gnome-2.28/platform/startup-notification/default.nix
@@ -0,0 +1,10 @@
+{stdenv, fetchurl, pkgconfig, libX11, libxcb, libICE, xcbutil, libSM}:
+
+stdenv.mkDerivation {
+  name = "startup-notification-0.9";
+  src = fetchurl {
+    url = mirror:/gnome/sources/startup-notification/0.9/startup-notification-0.9.tar.bz2;
+    sha256 = "03aqkgv8d29yx2vmv6bfdlxq3ahagrb7dbsvhd5d9acy6znimpk1"
+  };
+  buildInputs = [ pkgconfig libX11 libxcb libICE xcbutil libSM ];
+}