about summary refs log tree commit diff
path: root/pkgs/desktops/gnome-3/3.10/core
diff options
context:
space:
mode:
authorLuca Bruno <lucabru@src.gnome.org>2014-05-18 21:08:04 +0200
committerLuca Bruno <lucabru@src.gnome.org>2014-05-20 13:41:33 +0200
commitd05fa3ccfeafbf81e514a82cf2f04fff2b03659b (patch)
tree06daeb89a6b398fa369a45a37f995b0dccc67d6a /pkgs/desktops/gnome-3/3.10/core
parent139608dd34414ae63e6679d34436588029d463b0 (diff)
downloadnixlib-d05fa3ccfeafbf81e514a82cf2f04fff2b03659b.tar
nixlib-d05fa3ccfeafbf81e514a82cf2f04fff2b03659b.tar.gz
nixlib-d05fa3ccfeafbf81e514a82cf2f04fff2b03659b.tar.bz2
nixlib-d05fa3ccfeafbf81e514a82cf2f04fff2b03659b.tar.lz
nixlib-d05fa3ccfeafbf81e514a82cf2f04fff2b03659b.tar.xz
nixlib-d05fa3ccfeafbf81e514a82cf2f04fff2b03659b.tar.zst
nixlib-d05fa3ccfeafbf81e514a82cf2f04fff2b03659b.zip
Branch gnome 3.12
Diffstat (limited to 'pkgs/desktops/gnome-3/3.10/core')
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/at-spi2-atk/default.nix21
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/at-spi2-core/default.nix32
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/baobab/default.nix42
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/caribou/default.nix27
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/dconf/default.nix28
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/empathy/default.nix56
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/eog/default.nix31
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/epiphany/default.nix48
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/evince/default.nix70
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/evolution-data-server/default.nix32
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/folks/default.nix40
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gconf/default.nix30
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gcr/default.nix28
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gdm/default.nix18
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/geocode-glib/default.nix20
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gjs/default.nix21
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-backgrounds/default.nix16
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-calculator/default.nix36
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-common/default.nix17
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-contacts/configure_dbus_glib.patch10
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-contacts/default.nix51
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-contacts/fix_row_selected.patch11
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-control-center/default.nix62
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-control-center/search_providers_dir.patch17
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-desktop/default.nix27
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-dictionary/default.nix38
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-disk-utility/default.nix42
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-font-viewer/default.nix37
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-icon-theme-symbolic/default.nix24
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-icon-theme/default.nix18
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-icon-theme/setup-hook.sh10
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-keyring/default.nix38
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-menus/default.nix24
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-online-accounts/default.nix22
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-online-miners/default.nix35
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-screenshot/default.nix37
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-session/default.nix30
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-settings-daemon/default.nix34
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-shell-extensions/default.nix26
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-shell/default.nix48
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-shell/fix_background_corruption.patch147
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-system-log/default.nix38
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-system-monitor/default.nix38
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-terminal/default.nix31
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-themes-standard/default.nix15
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-user-docs/default.nix20
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-user-share/default.nix52
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/grilo-plugins/default.nix27
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/grilo/default.nix31
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gsettings-desktop-schemas/default.nix30
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gtksourceview/default.nix19
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gucharmap/default.nix40
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/libcroco/default.nix18
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/libgdata/default.nix25
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/libgee/default.nix25
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/libgee/fix_introspection_paths.patch13
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/libgnome-keyring/default.nix26
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/libgnomekbd/default.nix24
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/libgweather/default.nix21
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/libgxps/default.nix20
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/libpeas/default.nix29
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/libzapojit/default.nix16
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/mutter/default.nix33
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/nautilus/default.nix28
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/rest/default.nix18
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/sushi/default.nix38
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/totem-pl-parser/default.nix20
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/totem/default.nix49
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/tracker/default.nix49
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/vino/default.nix31
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/vte/default.nix35
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/yelp-tools/default.nix22
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/yelp-xsl/default.nix23
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/yelp/default.nix36
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/zenity/default.nix23
75 files changed, 2364 insertions, 0 deletions
diff --git a/pkgs/desktops/gnome-3/3.10/core/at-spi2-atk/default.nix b/pkgs/desktops/gnome-3/3.10/core/at-spi2-atk/default.nix
new file mode 100644
index 000000000000..fc0c4f2a6bc0
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/at-spi2-atk/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, python, pkgconfig, popt, atk, libX11, libICE, xlibs, libXi
+, intltool, dbus_glib, at_spi2_core, libSM }:
+
+stdenv.mkDerivation rec {
+  versionMajor = "2.12";
+  versionMinor = "0";
+  moduleName   = "at-spi2-atk";
+  name = "${moduleName}-${versionMajor}.${versionMinor}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
+    sha256 = "0crn3k6qvn6fjvgm68dj5ska1ppfgmdkaia2db1jp0b9y74nfm1v";
+  };
+
+  buildInputs = [ python pkgconfig popt atk libX11 libICE xlibs.libXtst libXi
+                  intltool dbus_glib at_spi2_core libSM ];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/at-spi2-core/default.nix b/pkgs/desktops/gnome-3/3.10/core/at-spi2-core/default.nix
new file mode 100644
index 000000000000..d60a0ff7480c
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/at-spi2-core/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, python, pkgconfig, popt, intltool, dbus_glib
+, libX11, xextproto, libSM, libICE, libXtst, libXi, gobjectIntrospection }:
+
+stdenv.mkDerivation (rec {
+  versionMajor = "2.12";
+  versionMinor = "0";
+  moduleName   = "at-spi2-core";
+  name = "${moduleName}-${versionMajor}.${versionMinor}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
+    sha256 = "12gvsgdaxnxskndlhlmdkc50cfqgmzfc4n8la9944fz5k3fhwmfv";
+  };
+
+  buildInputs = [
+    python pkgconfig popt  intltool dbus_glib
+    libX11 xextproto libSM libICE libXtst libXi
+    gobjectIntrospection
+  ];
+
+  # ToDo: on non-NixOS we create a symlink from there?
+  configureFlags = "--with-dbus-daemondir=/run/current-system/sw/bin/";
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
+}
+  // stdenv.lib.optionalAttrs stdenv.isDarwin {
+    NIX_LDFLAGS = "-lintl";
+  }
+)
+
diff --git a/pkgs/desktops/gnome-3/3.10/core/baobab/default.nix b/pkgs/desktops/gnome-3/3.10/core/baobab/default.nix
new file mode 100644
index 000000000000..9381f45105df
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/baobab/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, intltool, fetchurl, vala, libgtop
+, pkgconfig, gtk3, glib, hicolor_icon_theme
+, bash, makeWrapper, itstool, libxml2
+, gnome3, librsvg, gdk_pixbuf, file }:
+
+stdenv.mkDerivation rec {
+  name = "baobab-3.10.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/baobab/3.10/${name}.tar.xz";
+    sha256 = "23ce8e4847ce5f1c8230e757532d94c84e6e273d6ec8fca20eecaed5f96563f9";
+  };
+
+  configureFlags = [ "--disable-static" ];
+
+  doCheck = true;
+
+  NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+  propagatedBuildInputs = [ gdk_pixbuf gnome3.gnome_icon_theme librsvg
+                            hicolor_icon_theme gnome3.gnome_icon_theme_symbolic ];
+
+  buildInputs = [ vala pkgconfig gtk3 glib libgtop intltool itstool libxml2
+                  gnome3.gsettings_desktop_schemas makeWrapper file ];
+
+  preFixup = ''
+    rm $out/share/icons/hicolor/icon-theme.cache
+    rm $out/share/icons/HighContrast/icon-theme.cache
+    wrapProgram "$out/bin/baobab" \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Baobab;
+    description = "Graphical application to analyse disk usage in any Gnome environment";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/caribou/default.nix b/pkgs/desktops/gnome-3/3.10/core/caribou/default.nix
new file mode 100644
index 000000000000..41a997c1f714
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/caribou/default.nix
@@ -0,0 +1,27 @@
+{ fetchurl, stdenv, pkgconfig, gnome3, clutter, dbus, pythonPackages, libxml2
+, libxklavier, libXtst, gtk2, intltool, libxslt }:
+
+
+stdenv.mkDerivation rec {
+  name = "caribou-0.4.12";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/caribou/0.4/${name}.tar.xz";
+    sha256 = "0235sws58rg0kadxbp2nq5ha76zmhd4mr10n9qlbryf8p78qsvii";
+  };
+
+  buildInputs = with gnome3;
+    [ glib pkgconfig gtk clutter at_spi2_core dbus pythonPackages.python pythonPackages.pygobject3
+      libxml2 libXtst gtk2 intltool libxslt ];
+
+  propagatedBuildInputs = [ gnome3.libgee libxklavier ];
+
+  preBuild = ''
+    patchShebangs .
+  '';
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/dconf/default.nix b/pkgs/desktops/gnome-3/3.10/core/dconf/default.nix
new file mode 100644
index 000000000000..a6236f167440
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/dconf/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, vala, libxslt, pkgconfig, glib, dbus_glib, gnome3
+, libxml2, intltool, docbook_xsl_ns, docbook_xsl, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "dconf-${version}";
+  version = "0.18.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/dconf/0.18/${name}.tar.xz";
+    sha256 = "0mf921pnkhs8xn1dr2wxfq277vjsbkpl9cccv0gaz4460z31p6qh";
+  };
+
+  buildInputs = [ vala libxslt pkgconfig glib dbus_glib gnome3.gtk libxml2
+                  intltool docbook_xsl docbook_xsl_ns makeWrapper ];
+
+  preFixup = ''
+    wrapProgram "$out/bin/dconf-editor" \
+      --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
+
+    rm $out/lib/gio/modules/giomodule.cache
+    rm $out/share/icons/hicolor/icon-theme.cache
+    rm $out/share/icons/HighContrast/icon-theme.cache
+  '';
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/empathy/default.nix b/pkgs/desktops/gnome-3/3.10/core/empathy/default.nix
new file mode 100644
index 000000000000..051bc9b7fb25
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/empathy/default.nix
@@ -0,0 +1,56 @@
+{ stdenv, intltool, fetchurl, webkitgtk, pkgconfig, gtk3, glib
+, file, librsvg, hicolor_icon_theme, gnome3, gdk_pixbuf
+, dbus_glib, dbus_libs, telepathy_glib, telepathy_farstream
+, clutter_gtk, clutter-gst, gst_all_1, cogl, gnome_online_accounts
+, gcr, libsecret, folks, pulseaudio, telepathy_mission_control
+, telepathy_logger, libnotify, clutter, libsoup, gnutls
+, evolution_data_server
+, libcanberra_gtk3, p11_kit, farstream, libtool, shared_mime_info
+, bash, makeWrapper, itstool, libxml2, libxslt, icu, libgee  }:
+
+# TODO: enable more features
+
+stdenv.mkDerivation rec {
+  name = "empathy-3.10.3";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/empathy/3.10/${name}.tar.xz";
+    sha256 = "49366acdd3c3ef9a74f63eb09920803c4c9df83056acbf8a7899e7890a9fb196";
+  };
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard
+                            gnome3.gnome_icon_theme hicolor_icon_theme
+                            gnome_online_accounts shared_mime_info
+                            gnome3.gnome_icon_theme_symbolic ];
+  propagatedBuildInputs = [ folks telepathy_logger evolution_data_server
+                            telepathy_mission_control ];
+  buildInputs = [ pkgconfig gtk3 glib webkitgtk intltool itstool
+                  libxml2 libxslt icu file makeWrapper
+                  telepathy_glib clutter_gtk clutter-gst cogl
+                  gst_all_1.gstreamer gst_all_1.gst-plugins-base
+                  gcr libsecret pulseaudio gnome3.yelp_xsl gdk_pixbuf
+                  libnotify clutter libsoup gnutls libgee p11_kit
+                  libcanberra_gtk3 telepathy_farstream farstream
+                  gnome3.gsettings_desktop_schemas file libtool librsvg ];
+
+  NIX_CFLAGS_COMPILE = [ "-I${dbus_glib}/include/dbus-1.0"
+                         "-I${dbus_libs}/include/dbus-1.0"
+                         "-I${dbus_libs}/lib/dbus-1.0/include" ];
+
+  preFixup = ''
+    for f in $out/bin/* $out/libexec/*; do
+      wrapProgram $f \
+        --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+        --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk3}/share:${gnome3.gnome_themes_standard}/:${gnome3.gnome_themes_standard}/share:${hicolor_icon_theme}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
+    done
+    rm $out/share/icons/hicolor/icon-theme.cache
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Empathy;
+    description = "Messaging program which supports text, voice, video chat, and file transfers over many different protocols";
+    maintainers = with maintainers; [ lethalman ];
+    # TODO: license = [ licenses.gpl2 licenses.lgpl2 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/eog/default.nix b/pkgs/desktops/gnome-3/3.10/core/eog/default.nix
new file mode 100644
index 000000000000..57f19dcaa321
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/eog/default.nix
@@ -0,0 +1,31 @@
+{ fetchurl, stdenv, intltool, pkgconfig, itstool, libxml2, libjpeg, gnome3
+, shared_mime_info, makeWrapper, librsvg, libexif }:
+
+
+stdenv.mkDerivation rec {
+  name = "eog-3.10.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/eog/3.10/${name}.tar.xz";
+    sha256 = "0qs7wmn987vd0cw8w16gmb0bnda3nkcwfg1q343l4rm6kih9ik2w";
+  };
+
+  buildInputs = with gnome3;
+    [ intltool pkgconfig itstool libxml2 libjpeg gtk glib libpeas makeWrapper librsvg
+      gsettings_desktop_schemas shared_mime_info gnome_icon_theme gnome_desktop libexif ];
+
+  preFixup = ''
+    wrapProgram "$out/bin/eog" \
+      --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${shared_mime_info}/share:${gnome3.gnome_icon_theme}/share:${gnome3.gtk}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
+
+    rm $out/share/icons/hicolor/icon-theme.cache
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/EyeOfGnome; 
+    platforms = platforms.linux;
+    description = "GNOME image viewer";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/epiphany/default.nix b/pkgs/desktops/gnome-3/3.10/core/epiphany/default.nix
new file mode 100644
index 000000000000..9df3a7ed01e5
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/epiphany/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, intltool, fetchurl, pkgconfig, gtk3, glib, nspr, icu
+, bash, makeWrapper, gnome3, libwnck3, libxml2, libxslt, libtool
+, webkitgtk, libsoup, libsecret, gnome_desktop, libnotify, p11_kit
+, sqlite, gcr, avahi, nss, isocodes, itstool, file
+, hicolor_icon_theme, gdk_pixbuf, librsvg }:
+
+stdenv.mkDerivation rec {
+  name = "epiphany-3.10.3";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/epiphany/3.10/${name}.tar.xz";
+    sha256 = "c18235ecceaa9c76e7d90d370861cb2bba45019e1e14391a00dac3d2e94a0db7";
+  };
+
+  # Tests need an X display
+  configureFlags = [ "--disable-static --disable-tests" ];
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+  propagatedBuildInputs = [ gdk_pixbuf gnome3.gnome_icon_theme librsvg
+                            hicolor_icon_theme gnome3.gnome_icon_theme_symbolic ];
+
+  nativeBuildInputs = [ pkgconfig file ];
+
+  preConfigure = "substituteInPlace ./configure --replace /usr/bin/file ${file}/bin/file";
+
+  buildInputs = [ gtk3 glib intltool libwnck3 libxml2 libxslt pkgconfig file 
+                  webkitgtk libsoup libsecret gnome_desktop libnotify libtool
+                  sqlite isocodes nss itstool p11_kit nspr icu gnome3.yelp_tools
+                  gcr avahi gnome3.gsettings_desktop_schemas makeWrapper ];
+
+  NIX_CFLAGS_COMPILE = "-I${nspr}/include/nspr -I${nss}/include/nss";
+
+  enableParallelBuilding = true;
+
+  preFixup = ''
+    wrapProgram "$out/bin/epiphany" \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Epiphany;
+    description = "WebKit based web browser for GNOME";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/evince/default.nix b/pkgs/desktops/gnome-3/3.10/core/evince/default.nix
new file mode 100644
index 000000000000..4b50840534cf
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/evince/default.nix
@@ -0,0 +1,70 @@
+{ fetchurl, stdenv, pkgconfig, intltool, perl, perlXMLParser, libxml2
+, glib, gtk3, pango, atk, gdk_pixbuf, shared_mime_info, itstool, gnome3
+, poppler, ghostscriptX, djvulibre, libspectre, libsecret , makeWrapper
+, librsvg, recentListSize ? null # 5 is not enough, allow passing a different number
+, gobjectIntrospection
+}:
+
+stdenv.mkDerivation rec {
+  name = "evince-3.10.3";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/evince/3.10/${name}.tar.xz";
+    sha256 = "1bz9ypsvlfw1vgs7i5glba1h1n6c90f0d1g64linhg6xjcxcq3dk";
+  };
+
+  buildInputs = [
+    pkgconfig intltool perl perlXMLParser libxml2
+    glib gtk3 pango atk gdk_pixbuf gobjectIntrospection
+    itstool gnome3.gnome_icon_theme gnome3.gnome_icon_theme_symbolic
+    gnome3.libgnome_keyring gnome3.gsettings_desktop_schemas
+    poppler ghostscriptX djvulibre libspectre
+    makeWrapper libsecret librsvg
+  ];
+
+  configureFlags = [
+    "--disable-nautilus" # Do not use nautilus
+    "--enable-introspection"
+  ];
+
+  NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
+
+  preConfigure = with stdenv.lib;
+    optionalString doCheck ''
+      for file in test/*.py; do
+        echo "patching $file"
+        sed '1s,/usr,${python},' -i "$file"
+      done
+    '' + optionalString (recentListSize != null) ''
+      sed -i 's/\(gtk_recent_chooser_set_limit .*\)5)/\1${builtins.toString recentListSize})/' shell/ev-open-recent-action.c
+      sed -i 's/\(if (++n_items == \)5\(.*\)/\1${builtins.toString recentListSize}\2/' shell/ev-window.c
+    '';
+
+  preFixup = ''
+    # Tell Glib/GIO about the MIME info directory, which is used
+    # by `g_file_info_get_content_type ()'.
+    wrapProgram "$out/bin/evince" \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk3}/share:${shared_mime_info}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
+
+    rm $out/share/icons/hicolor/icon-theme.cache
+  '';
+
+  doCheck = false; # would need pythonPackages.dogTail, which is missing
+
+  meta = with stdenv.lib; {
+    homepage = http://www.gnome.org/projects/evince/;
+    description = "GNOME's document viewer";
+
+    longDescription = ''
+      Evince is a document viewer for multiple document formats.  It
+      currently supports PDF, PostScript, DjVu, TIFF and DVI.  The goal
+      of Evince is to replace the multiple document viewers that exist
+      on the GNOME Desktop with a single simple application.
+    '';
+
+    license = "GPLv2+";
+    platforms = platforms.linux;
+    maintainers = [ maintainers.vcunat ];
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/evolution-data-server/default.nix b/pkgs/desktops/gnome-3/3.10/core/evolution-data-server/default.nix
new file mode 100644
index 000000000000..685f8c24e7cf
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/evolution-data-server/default.nix
@@ -0,0 +1,32 @@
+{ fetchurl, stdenv, pkgconfig, gnome3, python, intltool, libsoup, libxml2, libsecret
+, p11_kit, db, nspr, nss, libical, gperf, makeWrapper, valaSupport ? true, vala }:
+
+
+stdenv.mkDerivation rec {
+  name = "evolution-data-server-3.10.4";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/evolution-data-server/3.10/${name}.tar.xz";
+    sha256 = "5c2d5e19af19ecfa81f31306411ab6155c3c62cf407d5a5aaa675a8ce940fa2d";
+  };
+
+  buildInputs = with gnome3;
+    [ pkgconfig glib python intltool libsoup libxml2 gtk gnome_online_accounts libsecret
+      gcr p11_kit db nspr nss libgweather libical libgdata gperf makeWrapper ]
+    ++ stdenv.lib.optional valaSupport vala;
+
+  # uoa irrelevant for now
+  configureFlags = ["--disable-uoa" "--with-nspr-includes=${nspr}/include/nspr" "--with-nss-includes=${nss}/include/nss"]
+                   ++ stdenv.lib.optional valaSupport "--enable-vala-bindings";
+
+  preFixup = ''
+    for f in "$out/libexec/evolution-addressbook-factory" "$out/libexec/evolution-calendar-factory"; do
+      wrapProgram $f --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/folks/default.nix b/pkgs/desktops/gnome-3/3.10/core/folks/default.nix
new file mode 100644
index 000000000000..12518c634c4f
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/folks/default.nix
@@ -0,0 +1,40 @@
+{ fetchurl, stdenv, pkgconfig, glib, gnome3, nspr, intltool
+, vala, sqlite, libxml2, dbus_glib, libsoup, nss, dbus_libs
+, telepathy_glib, evolution_data_server, libsecret, db }:
+
+# TODO: enable more folks backends
+
+stdenv.mkDerivation rec {
+  name = "folks-0.9.6";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/folks/0.9/${name}.tar.xz";
+    sha256 = "a67e055b5a2724a34a80946e2940c4c0ad708cb1f4e0a09407c6b69a5e40267f";
+  };
+
+  propagatedBuildInputs = [ glib gnome3.libgee sqlite ];
+  # dbus_daemon needed for tests
+  buildInputs = [ dbus_glib telepathy_glib evolution_data_server dbus_libs
+                  vala libsecret libxml2 libsoup nspr nss intltool db ];
+  nativeBuildInputs = [ pkgconfig ];
+
+  configureFlags = "--disable-fatal-warnings";
+
+  NIX_CFLAGS_COMPILE = ["-I${nspr}/include/nspr" "-I${nss}/include/nss"
+                        "-I${dbus_glib}/include/dbus-1.0" "-I${dbus_libs}/include/dbus-1.0"];
+
+  enableParallelBuilding = true;
+
+  postBuild = "rm -rf $out/share/gtk-doc";
+
+  meta = {
+    description = "Folks";
+
+    homepage = https://wiki.gnome.org/Projects/Folks;
+
+    license = "LGPLv2+";
+
+    maintainers = with stdenv.lib.maintainers; [ lethalman ];
+    platforms = stdenv.lib.platforms.gnu;  # arbitrary choice
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/gconf/default.nix b/pkgs/desktops/gnome-3/3.10/core/gconf/default.nix
new file mode 100644
index 000000000000..47dae0486e93
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/gconf/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, pkgconfig, dbus_glib, gnome3, glib, libxml2
+, intltool, polkit, orbit }:
+
+stdenv.mkDerivation rec {
+
+  versionMajor = "3.2";
+  versionMinor = "6";
+  moduleName   = "GConf";
+
+  origName = "${moduleName}-${versionMajor}.${versionMinor}";
+
+  name = "gconf-${versionMajor}.${versionMinor}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${origName}.tar.xz";
+    sha256 = "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr";
+  };
+
+  buildInputs = [ libxml2 polkit gnome3.gtk orbit ];
+  propagatedBuildInputs = [ glib dbus_glib  ];
+  nativeBuildInputs = [ pkgconfig intltool ];
+
+  # ToDo: ldap reported as not found but afterwards reported as supported
+
+  meta = with stdenv.lib; {
+    homepage = http://projects.gnome.org/gconf/;
+    description = "A system for storing application preferences";
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/gcr/default.nix b/pkgs/desktops/gnome-3/3.10/core/gcr/default.nix
new file mode 100644
index 000000000000..a1fdd4712820
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/gcr/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, pkgconfig, intltool, gnupg, p11_kit, glib
+, libgcrypt, libtasn1, dbus_glib, gtk, pango, gdk_pixbuf, atk
+, gobjectIntrospection, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "gcr-3.10.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gcr/3.10/${name}.tar.xz";
+    sha256 = "0nv470a8cvw4rw49hf5aqvll1rpkacmsr3pj8s1l205yaid4yvq0";
+  };
+
+  buildInputs = [
+    pkgconfig intltool gnupg p11_kit glib gobjectIntrospection
+    libgcrypt libtasn1 dbus_glib gtk pango gdk_pixbuf atk makeWrapper
+  ];
+
+  #doCheck = true;
+
+  preFixup = ''
+    wrapProgram "$out/bin/gcr-viewer" \
+      --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
+  '';
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/gdm/default.nix b/pkgs/desktops/gnome-3/3.10/core/gdm/default.nix
new file mode 100644
index 000000000000..3df5ab40eaf8
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/gdm/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl, pkgconfig, glib, itstool, libxml2, intltool, accountservice, libX11
+, gtk, libcanberra_gtk3, pam, libtool, gobjectIntrospection }:
+
+stdenv.mkDerivation rec {
+  name = "gdm-3.10.0.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gdm/3.10/${name}.tar.xz";
+    sha256 = "1rva3djas48m8w1gyv3nds3jxfkirdfl0bk30x79mizrk80456jl";
+  };
+
+  buildInputs = [ pkgconfig glib itstool libxml2 intltool accountservice
+                  gobjectIntrospection libX11 gtk libcanberra_gtk3 pam libtool ];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/geocode-glib/default.nix b/pkgs/desktops/gnome-3/3.10/core/geocode-glib/default.nix
new file mode 100644
index 000000000000..d3b21bef167a
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/geocode-glib/default.nix
@@ -0,0 +1,20 @@
+{ fetchurl, stdenv, pkgconfig, gnome3, intltool, libsoup, json_glib }:
+
+
+stdenv.mkDerivation rec {
+  name = "geocode-glib-3.10.0";
+
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/geocode-glib/3.10/${name}.tar.xz";
+    sha256 = "0dx6v9n4dsskcy6630s77cyb32xlykdall0d555976warycc3v8a";
+  };
+
+  buildInputs = with gnome3;
+    [ intltool pkgconfig glib libsoup json_glib ];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/gjs/default.nix b/pkgs/desktops/gnome-3/3.10/core/gjs/default.nix
new file mode 100644
index 000000000000..429d147e728b
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/gjs/default.nix
@@ -0,0 +1,21 @@
+{ fetchurl, stdenv, pkgconfig, gnome3, gobjectIntrospection, spidermonkey_17, pango }:
+
+
+stdenv.mkDerivation rec {
+  name = "gjs-1.38.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gjs/1.38/${name}.tar.xz";
+    sha256 = "0xl1zc5ncaxqs5ww5j82rzqrg429l8pdapqclxiba7dxwyh6a83b";
+  };
+
+  buildInputs = with gnome3;
+    [ gobjectIntrospection pkgconfig glib pango ];
+
+  propagatedBuildInputs = [ spidermonkey_17 ];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/gnome-backgrounds/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-backgrounds/default.nix
new file mode 100644
index 000000000000..3879b81859a4
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-backgrounds/default.nix
@@ -0,0 +1,16 @@
+{ stdenv, fetchurl, pkgconfig, intltool }:
+
+stdenv.mkDerivation rec {
+  name = "gnome-backgrounds-3.10.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-backgrounds/3.10/${name}.tar.xz";
+    sha256 = "11rv03m4hznpx0brf47hil04199z3jjvl1aq7q0lnill3yrffiyc";
+  };
+
+  nativeBuildInputs = [ pkgconfig intltool ];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/gnome-calculator/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-calculator/default.nix
new file mode 100644
index 000000000000..205961a91713
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-calculator/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, intltool, fetchurl, pkgconfig, libxml2
+, bash, gtk3, glib, hicolor_icon_theme, makeWrapper
+, itstool, gnome3, librsvg, gdk_pixbuf }:
+
+stdenv.mkDerivation rec {
+  name = "gnome-calculator-3.10.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-calculator/3.10/${name}.tar.xz";
+    sha256 = "0gkddnk9x76895xrz0ps4yny36w62fhi459gwmxqqb9kx5934n1f";
+  };
+
+  NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+  propagatedBuildInputs = [ gdk_pixbuf gnome3.gnome_icon_theme librsvg
+                            hicolor_icon_theme gnome3.gnome_icon_theme_symbolic ];
+
+  buildInputs = [ bash pkgconfig gtk3 glib intltool itstool
+                  libxml2 gnome3.gtksourceview
+                  gnome3.gsettings_desktop_schemas makeWrapper ];
+
+  preFixup = ''
+    wrapProgram "$out/bin/gnome-calculator" \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/action/show/Apps/Calculator;
+    description = "Application that solves mathematical equations and is suitable as a default application in a Desktop environment";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/gnome-common/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-common/default.nix
new file mode 100644
index 000000000000..12b2510dc436
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-common/default.nix
@@ -0,0 +1,17 @@
+{ stdenv, fetchurl, which, autoconf, automake }:
+
+stdenv.mkDerivation rec {
+  name = "gnome-common-3.10.0";
+
+  src = fetchurl {
+    url = "https://download.gnome.org/sources/gnome-common/3.10/${name}.tar.xz";
+    sha256 = "aed69474a671e046523827f73ba5e936d57235b661db97900db7356e1e03b0a3";
+  };
+
+  patches = [(fetchurl {
+    url = "https://bug697543.bugzilla-attachments.gnome.org/attachment.cgi?id=240935";
+    sha256 = "17abp7czfzirjm7qsn2czd03hdv9kbyhk3lkjxg2xsf5fky7z7jl";
+  })];
+
+  propagatedBuildInputs = [ which autoconf automake ]; # autogen.sh which is using gnome_common tends to require which
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/gnome-contacts/configure_dbus_glib.patch b/pkgs/desktops/gnome-3/3.10/core/gnome-contacts/configure_dbus_glib.patch
new file mode 100644
index 000000000000..926762defbde
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-contacts/configure_dbus_glib.patch
@@ -0,0 +1,10 @@
+--- configure.ac.orig	2014-04-08 10:25:49.497620879 +0200
++++ configure.ac	2014-04-08 10:26:36.639440950 +0200
+@@ -43,6 +43,7 @@
+ 	     folks-telepathy
+ 	     folks-eds
+ 	     libnotify
++	     dbus-glib-1
+ 	     telepathy-glib >= 0.17.5
+ 	     libebook-1.2 >= 3.5.3
+ 	     libedataserver-1.2 >= 3.5.3
diff --git a/pkgs/desktops/gnome-3/3.10/core/gnome-contacts/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-contacts/default.nix
new file mode 100644
index 000000000000..f8059f952e62
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-contacts/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, intltool, fetchurl, evolution_data_server, db
+, pkgconfig, gtk3, glib, hicolor_icon_theme, libsecret
+, bash, makeWrapper, itstool, folks, libnotify, libxml2
+, gnome3, librsvg, gdk_pixbuf, file, telepathy_glib, nspr, nss
+, libsoup, vala, dbus_glib, automake114x, autoconf }:
+
+stdenv.mkDerivation rec {
+  name = "gnome-contacts-3.10.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-contacts/3.10/${name}.tar.xz";
+    sha256 = "e119c32bb10136e7190f11f79334fa82ed56468cff5bb7836da0ebf7b572779b";
+  };
+
+  doCheck = true;
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard evolution_data_server ];
+  propagatedBuildInputs = [ gdk_pixbuf gnome3.gnome_icon_theme librsvg
+                            hicolor_icon_theme gnome3.gnome_icon_theme_symbolic ];
+
+  # force build from vala
+  preBuild = ''
+   touch src/*.vala
+  '';
+
+  buildInputs = [ pkgconfig gtk3 glib intltool itstool evolution_data_server
+                  gnome3.gsettings_desktop_schemas makeWrapper file libnotify
+                  folks gnome3.gnome_desktop telepathy_glib libsecret dbus_glib
+                  libxml2 libsoup gnome3.gnome_online_accounts nspr nss
+                  vala automake114x autoconf db ];
+
+  preFixup = ''
+    for f in "$out/bin/gnome-contacts" "$out/libexec/gnome-contacts-search-provider"; do
+      wrapProgram $f \
+        --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+        --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+    done
+  '';
+
+  patches = [ ./configure_dbus_glib.patch ./fix_row_selected.patch ];
+
+  patchFlags = "-p0";
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Contacts;
+    description = "Contacts is GNOME's integrated address book";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/gnome-contacts/fix_row_selected.patch b/pkgs/desktops/gnome-3/3.10/core/gnome-contacts/fix_row_selected.patch
new file mode 100644
index 000000000000..b379b4b8ee97
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-contacts/fix_row_selected.patch
@@ -0,0 +1,11 @@
+--- src/contacts-view.vala.orig	2014-04-08 11:35:36.302252460 +0200
++++ src/contacts-view.vala	2014-04-08 11:37:37.045343221 +0200
+@@ -265,7 +265,7 @@
+     data.destroy ();
+   }
+ 
+-  public override void row_selected (ListBoxRow row) {
++  public override void row_selected (ListBoxRow? row) {
+     var data = row as ContactDataRow;
+     var contact = data != null ? data.contact : null;
+     selection_changed (contact);
diff --git a/pkgs/desktops/gnome-3/3.10/core/gnome-control-center/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-control-center/default.nix
new file mode 100644
index 000000000000..1222f03d66e3
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-control-center/default.nix
@@ -0,0 +1,62 @@
+{ fetchurl, stdenv, pkgconfig, gnome3, ibus, intltool, upower, makeWrapper
+, libcanberra, accountservice, libpwquality, pulseaudio, fontconfig
+, gdk_pixbuf, hicolor_icon_theme, librsvg, libxkbfile, libnotify
+, libxml2, polkit, libxslt, libgtop, libsoup, colord, colord-gtk
+, cracklib, python, krb5, networkmanagerapplet, networkmanager
+, libwacom, samba, shared_mime_info, tzdata, icu, libtool
+, docbook_xsl, docbook_xsl_ns, modemmanager }:
+
+# http://ftp.gnome.org/pub/GNOME/teams/releng/3.10.2/gnome-suites-core-3.10.2.modules
+# TODO: bluetooth, wacom, smbclient, printers
+
+stdenv.mkDerivation rec {
+  name = "gnome-control-center-3.10.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-control-center/3.10/${name}.tar.xz";
+    sha256 = "1ac34kqkf174w0qc12p927dfhcm69xnv7fqzmbhjab56rn49wypn";
+  };
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard gnome3.libgnomekbd ];
+  propagatedBuildInputs = [ gdk_pixbuf gnome3.gnome_icon_theme librsvg
+                            hicolor_icon_theme gnome3.gnome_icon_theme_symbolic ];
+
+  enableParallelBuilding = true;
+
+  buildInputs = with gnome3;
+    [ pkgconfig intltool ibus gtk glib upower libcanberra gsettings_desktop_schemas
+      libxml2 gnome_desktop gnome_settings_daemon polkit libxslt libgtop gnome-menus
+      gnome_online_accounts libsoup colord pulseaudio fontconfig colord-gtk libpwquality
+      accountservice krb5 networkmanagerapplet libwacom samba libnotify libxkbfile
+      shared_mime_info icu libtool docbook_xsl docbook_xsl_ns 
+      networkmanager modemmanager makeWrapper  ];
+
+  preBuild = ''
+    substituteInPlace tz.h --replace "/usr/share/zoneinfo/zone.tab" "${tzdata}/share/zoneinfo/zone.tab"
+    substituteInPlace panels/datetime/tz.h --replace "/usr/share/zoneinfo/zone.tab" "${tzdata}/share/zoneinfo/zone.tab"
+
+    # hack to make test-endianess happy
+    mkdir -p $out/share/locale
+    substituteInPlace panels/datetime/test-endianess.c --replace "/usr/share/locale/" "$out/share/locale/"
+  '';
+
+  preFixup = with gnome3; ''
+    wrapProgram $out/bin/gnome-control-center \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:${gnome_settings_daemon}/share:${glib}/share:${gtk}/share:${colord}/share:$out/share:$out/share/gnome-control-center:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+    for i in $out/share/applications/*; do
+      substituteInPlace $i --replace "gnome-control-center" "$out/bin/gnome-control-center"
+    done
+
+    rm $out/share/icons/hicolor/icon-theme.cache
+  '';
+
+  patches = [ ./search_providers_dir.patch ];
+
+  meta = with stdenv.lib; {
+    description = "Single sign-on framework for GNOME";
+    maintainers = with maintainers; [ lethalman ];
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/gnome-control-center/search_providers_dir.patch b/pkgs/desktops/gnome-3/3.10/core/gnome-control-center/search_providers_dir.patch
new file mode 100644
index 000000000000..7f5ad970f34e
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-control-center/search_providers_dir.patch
@@ -0,0 +1,17 @@
+diff --git a/panels/search/cc-search-panel.c b/panels/search/cc-search-panel.c
+index d08e230..3bff4ad 100644
+--- a/panels/search/cc-search-panel.c
++++ b/panels/search/cc-search-panel.c
+@@ -574,7 +574,11 @@ populate_search_providers (CcSearchPanel *self)
+ {
+   GFile *providers_location;
+ 
+-  providers_location = g_file_new_for_path (DATADIR "/gnome-shell/search-providers");
++  const gchar* search_providers_dir = g_getenv ("GNOME_SEARCH_PROVIDERS_DIR");
++  if (search_providers_dir == NULL) {
++    search_providers_dir = DATADIR "/gnome-shell/search-providers";
++  }
++  providers_location = g_file_new_for_path (search_providers_dir);
+   g_file_enumerate_children_async (providers_location,
+                                    "standard::type,standard::name,standard::content-type",
+                                    G_FILE_QUERY_INFO_NONE,
diff --git a/pkgs/desktops/gnome-3/3.10/core/gnome-desktop/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-desktop/default.nix
new file mode 100644
index 000000000000..584705d658ef
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-desktop/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, pkgconfig, python, libxml2Python, libxslt, which, libX11, gnome3, gtk3, glib
+, intltool, gnome_doc_utils, libxkbfile, xkeyboard_config, isocodes, itstool, wayland
+, gobjectIntrospection }:
+
+stdenv.mkDerivation rec {
+
+  majorVersion = "3.10";
+  minorVersion = "1";
+  name = "gnome-desktop-${majorVersion}.${minorVersion}";
+
+  # this should probably be setuphook for glib
+  NIX_CFLAGS_COMPILE = "-I${glib}/include/gio-unix-2.0";
+
+  enableParallelBuilding = true;
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-desktop/${majorVersion}/${name}.tar.xz";
+    sha256 = "0hdvm909lbpnixqv11qdx9iaycx4dpxys46fa128bqp8alisgb0h";
+  };
+
+  buildInputs = [ pkgconfig python libxml2Python libxslt which libX11 xkeyboard_config isocodes itstool wayland
+                  gtk3 glib intltool gnome_doc_utils libxkbfile gnome3.gsettings_desktop_schemas gobjectIntrospection ];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/gnome-dictionary/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-dictionary/default.nix
new file mode 100644
index 000000000000..6f68916b781e
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-dictionary/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, intltool, fetchurl
+, pkgconfig, gtk3, glib, hicolor_icon_theme
+, bash, makeWrapper, itstool, libxml2
+, gnome3, librsvg, gdk_pixbuf, file }:
+
+stdenv.mkDerivation rec {
+  name = "gnome-dictionary-3.10.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-dictionary/3.10/${name}.tar.xz";
+    sha256 = "258b60fe50f7d0580a7dc3bb83f7fe2f6f0597d4013d97ac083c3f062c350ed7";
+  };
+
+  doCheck = true;
+
+  NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+  propagatedBuildInputs = [ gdk_pixbuf gnome3.gnome_icon_theme librsvg
+                            hicolor_icon_theme gnome3.gnome_icon_theme_symbolic ];
+
+  buildInputs = [ pkgconfig gtk3 glib intltool itstool libxml2 file
+                  gnome3.gsettings_desktop_schemas makeWrapper ];
+
+  preFixup = ''
+    wrapProgram "$out/bin/gnome-dictionary" \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Dictionary;
+    description = "Dictionary is the GNOME application to look up definitions";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/gnome-disk-utility/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-disk-utility/default.nix
new file mode 100644
index 000000000000..334471c2943c
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-disk-utility/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, intltool, fetchurl, pkgconfig, udisks2, libsecret, libdvdread
+, bash, gtk3, glib, hicolor_icon_theme, makeWrapper, cracklib, libnotify
+, itstool, gnome3, librsvg, gdk_pixbuf, libxml2, python
+, libcanberra_gtk3, libxslt, libtool, docbook_xsl, libpwquality }:
+
+stdenv.mkDerivation rec {
+  name = "gnome-disk-utility-3.10.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-disk-utility/3.10/${name}.tar.xz";
+    sha256 = "1amqi2bribxn8r8k8mvxh3710rmdll9963smf0v59v0iwxi3mqil";
+  };
+
+  doCheck = true;
+
+  NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+  propagatedBuildInputs = [ gdk_pixbuf gnome3.gnome_icon_theme
+                            librsvg udisks2 gnome3.gnome_settings_daemon
+                            hicolor_icon_theme gnome3.gnome_icon_theme_symbolic ];
+
+  buildInputs = [ bash pkgconfig gtk3 glib intltool itstool
+                  libxslt libtool libsecret libpwquality cracklib
+                  libnotify libdvdread libcanberra_gtk3 docbook_xsl
+                  gnome3.gsettings_desktop_schemas makeWrapper libxml2 ];
+
+  preFixup = ''
+    wrapProgram "$out/bin/gnome-disks" \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+    rm $out/share/icons/hicolor/icon-theme.cache
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://en.wikipedia.org/wiki/GNOME_Disks;
+    description = "A udisks graphical front-end";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/gnome-font-viewer/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-font-viewer/default.nix
new file mode 100644
index 000000000000..cba651ca36a3
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-font-viewer/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, intltool, fetchurl
+, pkgconfig, gtk3, glib, hicolor_icon_theme
+, bash, makeWrapper, itstool
+, gnome3, librsvg, gdk_pixbuf }:
+
+stdenv.mkDerivation rec {
+  name = "gnome-font-viewer-3.10.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-font-viewer/3.10/${name}.tar.xz";
+    sha256 = "3928350f58ac6c95f44b64cba1a5f03437b19d9b2645a7b01176067504fdd652";
+  };
+
+  doCheck = true;
+
+  NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+  propagatedBuildInputs = [ gdk_pixbuf gnome3.gnome_icon_theme librsvg
+                            hicolor_icon_theme gnome3.gnome_icon_theme_symbolic ];
+
+  buildInputs = [ pkgconfig gtk3 glib intltool itstool gnome3.gnome_desktop
+                  gnome3.gsettings_desktop_schemas makeWrapper ];
+
+  preFixup = ''
+    wrapProgram "$out/bin/gnome-font-viewer" \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Program that can preview fonts and create thumbnails for fonts";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/gnome-icon-theme-symbolic/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-icon-theme-symbolic/default.nix
new file mode 100644
index 000000000000..feb3d84b994e
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-icon-theme-symbolic/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, pkgconfig, gnome3, iconnamingutils, gtk }:
+
+stdenv.mkDerivation rec {
+  name = "gnome-icon-theme-symbolic-3.10.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-icon-theme-symbolic/3.10/${name}.tar.xz";
+    sha256 = "344e88e5f9dac3184bf012d9bac972110df2133b93d76f2ad128d4c9cbf41412";
+  };
+
+  configureFlags = "--enable-icon-mapping";
+
+  # Avoid postinstall make hooks
+  installPhase = ''
+    make install-exec-am install-data-local install-pkgconfigDATA
+    make -C src install
+  '';
+
+  buildInputs = [ pkgconfig iconnamingutils gtk gnome3.gnome_icon_theme ];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/gnome-icon-theme/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-icon-theme/default.nix
new file mode 100644
index 000000000000..5b16f827ae00
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-icon-theme/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl, pkgconfig, intltool, iconnamingutils, gtk }:
+
+stdenv.mkDerivation rec {
+  name = "gnome-icon-theme-3.10.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-icon-theme/3.10/${name}.tar.xz";
+    sha256 = "1xinbgkkvlhazj887ajcl13i7kdc1wcca02jwxzvjrvchjsp4m66";
+  };
+
+  setupHook = ./setup-hook.sh;
+
+  nativeBuildInputs = [ pkgconfig intltool iconnamingutils gtk ];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/gnome-icon-theme/setup-hook.sh b/pkgs/desktops/gnome-3/3.10/core/gnome-icon-theme/setup-hook.sh
new file mode 100644
index 000000000000..d7156f3d4630
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-icon-theme/setup-hook.sh
@@ -0,0 +1,10 @@
+make_gtk_applications_find_icon_themes() {
+
+    # where to find icon themes
+    if [ -d "$1/share/icons" ]; then
+      addToSearchPath XDG_ICON_DIRS $1/share
+    fi
+	
+}
+
+envHooks+=(make_gtk_applications_find_icon_themes)
diff --git a/pkgs/desktops/gnome-3/3.10/core/gnome-keyring/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-keyring/default.nix
new file mode 100644
index 000000000000..dbb8da93c6cb
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-keyring/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, pkgconfig, dbus, libgcrypt, libtasn1, pam, python, glib, libxslt
+, intltool, pango, gcr, gdk_pixbuf, atk, p11_kit, makeWrapper
+, docbook_xsl_ns, docbook_xsl, gnome3 }:
+
+stdenv.mkDerivation rec {
+  name = "gnome-keyring-3.10.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-keyring/3.10/${name}.tar.xz";
+    sha256 = "1y6v2p14jx5h6yh14c53pd8r0r5zbmcgw8v4nxvf94kd9jliy00q";
+  };
+
+  buildInputs = with gnome3; [
+    dbus libgcrypt pam python gtk3 gconf libgnome_keyring
+    pango gcr gdk_pixbuf atk p11_kit makeWrapper
+  ];
+
+  propagatedBuildInputs = [ glib libtasn1 libxslt ];
+
+  nativeBuildInputs = [ pkgconfig intltool docbook_xsl_ns docbook_xsl ];
+
+  configureFlags = [
+    "--with-ca-certificates=/etc/ssl/certs/ca-bundle.crt" # NixOS hardcoded path
+    "--with-pkcs11-config=$$out/etc/pkcs11/" # installation directories
+    "--with-pkcs11-modules=$$out/lib/pkcs11/"
+  ];
+
+  preFixup = ''
+    wrapProgram "$out/bin/gnome-keyring" \
+      --prefix XDG_DATA_DIRS : "${glib}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
+    wrapProgram "$out/bin/gnome-keyring-daemon" \
+      --prefix XDG_DATA_DIRS : "${glib}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
+  '';
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/gnome-menus/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-menus/default.nix
new file mode 100644
index 000000000000..37d2ea1c0863
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-menus/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, intltool, pkgconfig, glib, gobjectIntrospection }:
+
+stdenv.mkDerivation rec {
+  name = "gnome-menus-${version}";
+  version = "3.10.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-menus/3.10/${name}.tar.xz";
+    sha256 = "0wcacs1vk3pld8wvrwq7fdrm11i56nrajkrp6j1da6jc4yx0m5a6";
+  };
+
+  makeFlags = "INTROSPECTION_GIRDIR=$(out)/share/gir-1.0/ INTROSPECTION_TYPELIBDIR=$(out)/lib/girepository-1.0";
+
+  preBuild = "patchShebangs ./scripts";
+
+  buildInputs = [ intltool pkgconfig glib gobjectIntrospection ];
+
+  meta = {
+    homepage = "http://www.gnome.org";
+    description = "Gnome menu specification";
+
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/gnome-online-accounts/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-online-accounts/default.nix
new file mode 100644
index 000000000000..8c4594357333
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-online-accounts/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, pkgconfig, glib, libxslt, gtk, webkitgtk, json_glib, rest, libsecret, dbus_glib
+, telepathy_glib, intltool, dbus_libs, icu, libsoup, docbook_xsl_ns, docbook_xsl
+}:
+
+stdenv.mkDerivation rec {
+  name = "gnome-online-accounts-3.10.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-online-accounts/3.10/${name}.tar.xz";
+    sha256 = "15qvw40dmi886491s3abpidsm2lx65fhglhj99bvcdskhk0ih90b";
+  };
+
+  NIX_CFLAGS_COMPILE = "-I${dbus_glib}/include/dbus-1.0 -I${dbus_libs}/include/dbus-1.0";
+
+  enableParallelBuilding = true;
+
+  buildInputs = [ pkgconfig glib libxslt gtk webkitgtk json_glib rest libsecret dbus_glib telepathy_glib intltool icu libsoup docbook_xsl_ns docbook_xsl];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/gnome-online-miners/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-online-miners/default.nix
new file mode 100644
index 000000000000..4c904bf40f67
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-online-miners/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, pkgconfig, glib, gnome3, libxml2
+, libsoup, json_glib, gmp, openssl, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "gnome-online-miners-3.10.3";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-online-miners/3.10/${name}.tar.xz";
+    sha256 = "129807d398e7744870110e6875629b6858d289021271550569ce5afa10fe9ea8";
+  };
+
+  doCheck = true;
+
+  buildInputs = [ pkgconfig glib gnome3.libgdata libxml2 libsoup gmp openssl
+                  gnome3.grilo gnome3.libzapojit gnome3.grilo-plugins
+                  gnome3.gnome_online_accounts makeWrapper
+                  gnome3.tracker gnome3.gfbgraph json_glib gnome3.rest ];
+
+  enableParallelBuilding = true;
+
+  preFixup = ''
+    for f in $out/libexec/*; do
+      wrapProgram "$f" \
+        --prefix GRL_PLUGIN_PATH : "${gnome3.grilo-plugins}/lib/grilo-0.2"
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Projects/GnomeOnlineMiners;
+    description = "A set of crawlers that go through your online content and index them locally in Tracker";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/gnome-screenshot/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-screenshot/default.nix
new file mode 100644
index 000000000000..7b94d0f90270
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-screenshot/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, intltool, fetchurl, pkgconfig, libcanberra_gtk3
+, bash, gtk3, glib, hicolor_icon_theme, makeWrapper
+, itstool, gnome3, librsvg, gdk_pixbuf }:
+
+stdenv.mkDerivation rec {
+  name = "gnome-screenshot-3.10.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-screenshot/3.10/${name}.tar.xz";
+    sha256 = "1nb56kzcj5z4hmrmxap5r53smi52ki3pc8qmhi4rymkgqswyk7bh";
+  };
+
+  doCheck = true;
+
+  NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+  propagatedBuildInputs = [ gdk_pixbuf gnome3.gnome_icon_theme librsvg
+                            hicolor_icon_theme gnome3.gnome_icon_theme_symbolic ];
+
+  buildInputs = [ bash pkgconfig gtk3 glib intltool itstool libcanberra_gtk3
+                  gnome3.gsettings_desktop_schemas makeWrapper ];
+
+  preFixup = ''
+    wrapProgram "$out/bin/gnome-screenshot" \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://en.wikipedia.org/wiki/GNOME_Screenshot;
+    description = "Utility used in the GNOME desktop environment for taking screenshots";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/gnome-session/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-session/default.nix
new file mode 100644
index 000000000000..f999702af54a
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-session/default.nix
@@ -0,0 +1,30 @@
+{ fetchurl, stdenv, pkgconfig, gnome3, glib, dbus_glib, json_glib, upower
+, libxslt, intltool, makeWrapper, systemd }:
+
+
+stdenv.mkDerivation rec {
+  name = "gnome-session-3.10.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-session/3.10/${name}.tar.xz";
+    sha256 = "1k59yss7r748nvr0cdjrqmx0zy26b93rfn66lsdg9fz60x77087n";
+  };
+
+  configureFlags = "--enable-systemd";
+
+  buildInputs = with gnome3;
+    [ pkgconfig glib gnome_desktop gtk dbus_glib json_glib libxslt 
+      gnome3.gnome_settings_daemon
+      gsettings_desktop_schemas upower intltool gconf makeWrapper systemd ];
+
+  preFixup = ''
+    wrapProgram "$out/bin/gnome-session" \
+      --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
+      --prefix XDG_DATA_DIRS : "$out/share:$GSETTINGS_SCHEMAS_PATH"
+  '';
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/gnome-settings-daemon/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-settings-daemon/default.nix
new file mode 100644
index 000000000000..7a50b8db56fd
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-settings-daemon/default.nix
@@ -0,0 +1,34 @@
+{ fetchurl, stdenv, pkgconfig, gnome3, intltool, glib, libnotify, lcms2, libXtst
+, libxkbfile, pulseaudio, libcanberra_gtk3, upower, colord, libgweather, polkit
+, geoclue2, librsvg, xf86_input_wacom, udev, libwacom, libxslt, libtool
+, docbook_xsl, docbook_xsl_ns, makeWrapper, ibus }:
+
+stdenv.mkDerivation rec {
+  name = "gnome-settings-daemon-3.10.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-settings-daemon/3.10/${name}.tar.xz";
+    sha256 = "0r42lzlgk0w40ws4d3s7yayn6n8zqlnh5b6k88gvgv1lwk39k240";
+  };
+
+  # fatal error: gio/gunixfdlist.h: No such file or directory
+  NIX_CFLAGS_COMPILE = "-I${glib}/include/gio-unix-2.0";
+
+  buildInputs = with gnome3;
+    [ intltool pkgconfig ibus gtk glib gsettings_desktop_schemas libnotify gnome_desktop
+      lcms2 libXtst libxkbfile pulseaudio libcanberra_gtk3 upower colord libgweather
+      polkit geocode_glib geoclue2 librsvg xf86_input_wacom udev libwacom libxslt
+      libtool docbook_xsl docbook_xsl_ns makeWrapper gnome_themes_standard ];
+
+  preFixup = ''
+    wrapProgram "$out/libexec/gnome-settings-daemon-localeexec" \
+      --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
+      --prefix PATH : "${glib}/bin" \
+      --prefix XDG_DATA_DIRS : "${gnome3.gtk}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
+  '';
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/gnome-shell-extensions/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-shell-extensions/default.nix
new file mode 100644
index 000000000000..00974edb1db3
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-shell-extensions/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, intltool, fetchurl, libgtop
+, pkgconfig, gtk3, glib, hicolor_icon_theme
+, bash, makeWrapper, itstool
+, gnome3, file }:
+
+stdenv.mkDerivation rec {
+  name = "gnome-shell-extensions-3.10.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-shell-extensions/3.10/${name}.tar.xz";
+    sha256 = "9baa9ddaf4e14cab6d4d7944d8dc009378b25f995acfd0fd72843f599cb5ae43";
+  };
+
+  doCheck = true;
+
+  buildInputs = [ pkgconfig gtk3 glib libgtop intltool itstool
+                  makeWrapper file ];
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Projects/GnomeShell/Extensions;
+    description = "Modify and extend GNOME Shell functionality and behavior";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/gnome-shell/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-shell/default.nix
new file mode 100644
index 000000000000..554b09a1e592
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-shell/default.nix
@@ -0,0 +1,48 @@
+{ fetchurl, stdenv, pkgconfig, gnome3, json_glib, libcroco, intltool, libsecret
+, python, libsoup, polkit, clutter, networkmanager, docbook_xsl, docbook_xsl_ns
+, libstartup_notification, telepathy_glib, telepathy_logger, libXtst, p11_kit, unzip
+, pulseaudio, libical, libtool, nss, gobjectIntrospection, gstreamer, makeWrapper
+, accountservice, gdk_pixbuf, gdm, upower, ibus, networkmanagerapplet, librsvg }:
+
+# http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/gnome-base/gnome-shell/gnome-shell-3.10.2.1.ebuild?revision=1.3&view=markup
+
+stdenv.mkDerivation rec {
+  name = "gnome-shell-3.10.2.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-shell/3.10/${name}.tar.xz";
+    sha256 = "0k642y6h878v6mczx4z1zj4pjl7z4bvq02raxxwxkjyvyz2fv36j";
+  };
+
+  buildInputs = with gnome3;
+    [ gsettings_desktop_schemas gnome_keyring gnome-menus glib gcr json_glib accountservice
+      libcroco intltool libsecret pkgconfig python libsoup polkit libcanberra gdk_pixbuf librsvg
+      clutter networkmanager libstartup_notification telepathy_glib docbook_xsl docbook_xsl_ns
+      libXtst p11_kit networkmanagerapplet gjs mutter pulseaudio caribou evolution_data_server
+      libical libtool nss gobjectIntrospection gtk gstreamer makeWrapper gdm gnome_control_center
+      at_spi2_core upower ibus gnome_session gnome_desktop telepathy_logger gnome3.gnome_settings_daemon ];
+
+  preBuild = ''
+    patchShebangs src/data-to-c.pl
+    substituteInPlace data/Makefile --replace " install-keysDATA" ""
+  '';
+
+  preFixup = with gnome3; ''
+    wrapProgram "$out/bin/gnome-shell" \
+      --prefix PATH : "${unzip}/bin" \
+      --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
+      --prefix LD_LIBRARY_PATH : "${accountservice}/lib:${ibus}/lib:${gdm}/lib" \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --prefix XDG_DATA_DIRS : "${gnome_themes_standard}/share:${gtk}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+
+    wrapProgram "$out/libexec/gnome-shell-calendar-server" \
+      --prefix XDG_DATA_DIRS : "${evolution_data_server}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+  '';
+
+  patches = [ ./fix_background_corruption.patch ];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/gnome-shell/fix_background_corruption.patch b/pkgs/desktops/gnome-3/3.10/core/gnome-shell/fix_background_corruption.patch
new file mode 100644
index 000000000000..9cb041bcce2c
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-shell/fix_background_corruption.patch
@@ -0,0 +1,147 @@
+commit 831bd07b0d6b7055fea8317f2cdf8fd4a408c36d
+Author: Jasper St. Pierre <jstpierre@mecheye.net>
+Date:   Thu Nov 7 17:14:47 2013 -0500
+
+    layout: Fix several issues with the background management code
+    
+    If monitor-changed fires at startup, it will destroy all of the
+    backgrounds, but since this._isStartup is true, won't recreate any
+    of them. Additionally, since _bgManagers is indexed by monitor index,
+    if the primary index is not 0, it could become a sparse array (e.g.
+    [undefined, undefined, primaryBackground]), and our for loop will
+    crash trying to access properties of undefined.
+    
+    Fix both of these issues by always creating background managers for
+    every monitor, hiding them on startup but only showing them after
+    the startup animation is complete.
+    
+    One thing we need to watch out for is that while LayoutManager is
+    constructing, Main.uiGroup / Main.layoutManager will be undefined,
+    so addBackgroundMenu will fail. Fix this by passing down the uiGroup
+    to the background menu code.
+    
+    https://bugzilla.gnome.org/show_bug.cgi?id=709313
+
+diff --git a/js/ui/backgroundMenu.js b/js/ui/backgroundMenu.js
+index 06e698c..dcbbb39 100644
+--- a/js/ui/backgroundMenu.js
++++ b/js/ui/backgroundMenu.js
+@@ -13,7 +13,7 @@ const BackgroundMenu = new Lang.Class({
+     Name: 'BackgroundMenu',
+     Extends: PopupMenu.PopupMenu,
+ 
+-    _init: function(source) {
++    _init: function(source, layoutManager) {
+         this.parent(source, 0, St.Side.TOP);
+ 
+         this.addSettingsAction(_("Settings"), 'gnome-control-center.desktop');
+@@ -22,17 +22,17 @@ const BackgroundMenu = new Lang.Class({
+ 
+         this.actor.add_style_class_name('background-menu');
+ 
+-        Main.uiGroup.add_actor(this.actor);
++        layoutManager.uiGroup.add_actor(this.actor);
+         this.actor.hide();
+     }
+ });
+ 
+-function addBackgroundMenu(actor) {
++function addBackgroundMenu(actor, layoutManager) {
+     let cursor = new St.Bin({ opacity: 0 });
+-    Main.uiGroup.add_actor(cursor);
++    layoutManager.uiGroup.add_actor(cursor);
+ 
+     actor.reactive = true;
+-    actor._backgroundMenu = new BackgroundMenu(cursor);
++    actor._backgroundMenu = new BackgroundMenu(cursor, layoutManager);
+     actor._backgroundManager = new PopupMenu.PopupMenuManager({ actor: actor });
+     actor._backgroundManager.addMenu(actor._backgroundMenu);
+ 
+diff --git a/js/ui/layout.js b/js/ui/layout.js
+index 17073a6..80bae9d 100644
+--- a/js/ui/layout.js
++++ b/js/ui/layout.js
+@@ -352,26 +352,26 @@ const LayoutManager = new Lang.Class({
+         this.emit('hot-corners-changed');
+     },
+ 
+-    _createBackground: function(monitorIndex) {
++    _addBackgroundMenu: function(bgManager) {
++        BackgroundMenu.addBackgroundMenu(bgManager.background.actor, this);
++    },
++
++    _createBackgroundManager: function(monitorIndex) {
+         let bgManager = new Background.BackgroundManager({ container: this._backgroundGroup,
+                                                            layoutManager: this,
+                                                            monitorIndex: monitorIndex });
+-        BackgroundMenu.addBackgroundMenu(bgManager.background.actor);
+-
+-        bgManager.connect('changed', Lang.bind(this, function() {
+-                              BackgroundMenu.addBackgroundMenu(bgManager.background.actor);
+-                          }));
+ 
+-        this._bgManagers[monitorIndex] = bgManager;
++        bgManager.connect('changed', Lang.bind(this, this._addBackgroundMenu));
++        this._addBackgroundMenu(bgManager);
+ 
+-        return bgManager.background;
++        return bgManager;
+     },
+ 
+-    _createSecondaryBackgrounds: function() {
++    _showSecondaryBackgrounds: function() {
+         for (let i = 0; i < this.monitors.length; i++) {
+             if (i != this.primaryIndex) {
+-                let background = this._createBackground(i);
+-
++                let background = this._bgManagers[i].background;
++                background.actor.show();
+                 background.actor.opacity = 0;
+                 Tweener.addTween(background.actor,
+                                  { opacity: 255,
+@@ -381,10 +381,6 @@ const LayoutManager = new Lang.Class({
+         }
+     },
+ 
+-    _createPrimaryBackground: function() {
+-        this._createBackground(this.primaryIndex);
+-    },
+-
+     _updateBackgrounds: function() {
+         let i;
+         for (i = 0; i < this._bgManagers.length; i++)
+@@ -395,11 +391,12 @@ const LayoutManager = new Lang.Class({
+         if (Main.sessionMode.isGreeter)
+             return;
+ 
+-        if (this._startingUp)
+-            return;
+-
+         for (let i = 0; i < this.monitors.length; i++) {
+-            this._createBackground(i);
++            let bgManager = this._createBackgroundManager(i);
++            this._bgManagers.push(bgManager);
++
++            if (i != this.primaryIndex && this._startingUp)
++                bgManager.background.actor.hide();
+         }
+     },
+ 
+@@ -595,7 +592,7 @@ const LayoutManager = new Lang.Class({
+         if (Main.sessionMode.isGreeter) {
+             this.panelBox.translation_y = -this.panelBox.height;
+         } else {
+-            this._createPrimaryBackground();
++            this._updateBackgrounds();
+ 
+             // We need to force an update of the regions now before we scale
+             // the UI group to get the coorect allocation for the struts.
+@@ -673,7 +670,7 @@ const LayoutManager = new Lang.Class({
+         this.keyboardBox.show();
+ 
+         if (!Main.sessionMode.isGreeter) {
+-            this._createSecondaryBackgrounds();
++            this._showSecondaryBackgrounds();
+             global.window_group.remove_clip();
+         }
+ 
diff --git a/pkgs/desktops/gnome-3/3.10/core/gnome-system-log/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-system-log/default.nix
new file mode 100644
index 000000000000..cdc4b732b97e
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-system-log/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, intltool, fetchurl, pkgconfig
+, bash, gtk3, glib, hicolor_icon_theme, makeWrapper
+, itstool, gnome3, librsvg, gdk_pixbuf, libxml2 }:
+
+stdenv.mkDerivation rec {
+  name = "gnome-system-log-3.9.90";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-system-log/3.9/${name}.tar.xz";
+    sha256 = "9eeb51982d347aa7b33703031e2c1d8084201374665425cd62199649b29a5411";
+  };
+
+  doCheck = true;
+
+  NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+  propagatedBuildInputs = [ gdk_pixbuf gnome3.gnome_icon_theme librsvg
+                            hicolor_icon_theme gnome3.gnome_icon_theme_symbolic ];
+
+  buildInputs = [ bash pkgconfig gtk3 glib intltool itstool
+                  gnome3.gsettings_desktop_schemas makeWrapper libxml2 ];
+
+  preFixup = ''
+    wrapProgram "$out/bin/gnome-system-log" \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+    rm $out/share/icons/hicolor/icon-theme.cache
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://help.gnome.org/users/gnome-system-log/3.9/;
+    description = "Graphical, menu-driven viewer that you can use to view and monitor your system logs";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/gnome-system-monitor/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-system-monitor/default.nix
new file mode 100644
index 000000000000..91fbe67957fe
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-system-monitor/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, intltool, fetchurl, pkgconfig, gtkmm3, libxml2
+, bash, gtk3, glib, hicolor_icon_theme, makeWrapper
+, itstool, gnome3, librsvg, gdk_pixbuf, libgtop }:
+
+stdenv.mkDerivation rec {
+  name = "gnome-system-monitor-3.10.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-system-monitor/3.10/${name}.tar.xz";
+    sha256 = "bd009e15672afe4ad3ebd7ed286cce79b9f76420fd39bc77a5826b29134b9db0";
+  };
+
+  doCheck = true;
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+  propagatedBuildInputs = [ gdk_pixbuf gnome3.gnome_icon_theme librsvg
+                            hicolor_icon_theme gnome3.gnome_icon_theme_symbolic ];
+
+  buildInputs = [ bash pkgconfig gtk3 glib intltool itstool libxml2
+                  gtkmm3 libgtop makeWrapper
+                  gnome3.gsettings_desktop_schemas ];
+
+  preFixup = ''
+    wrapProgram "$out/bin/gnome-system-monitor" \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    homepage = https://help.gnome.org/users/gnome-system-monitor/3.10/;
+    description = "System Monitor shows you what programs are running and how much processor time, memory, and disk space are being used";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/gnome-terminal/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-terminal/default.nix
new file mode 100644
index 000000000000..541db5720db4
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-terminal/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, pkgconfig, cairo, libxml2, gnome3, pango
+, gnome_doc_utils, intltool, libX11, which, gconf, libuuid
+, desktop_file_utils, itstool, ncurses, makeWrapper }:
+
+stdenv.mkDerivation rec {
+
+  versionMajor = "3.10";
+  versionMinor = "2";
+
+  name = "gnome-terminal-${versionMajor}.${versionMinor}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-terminal/${versionMajor}/${name}.tar.xz";
+    sha256 = "04yrk9531f373nl64jx3pczsnq7a56mj3n436jbhjp74kp12fa70";
+  };
+
+  buildInputs = [ gnome3.gtk gnome3.gsettings_desktop_schemas gnome3.vte
+                  gnome3.dconf gnome3.gconf itstool ncurses makeWrapper ];
+
+  nativeBuildInputs = [ pkgconfig intltool gnome_doc_utils which libuuid libxml2 desktop_file_utils ];
+
+  preFixup = ''
+    for f in "$out/libexec/gnome-terminal-migration" "$out/libexec/gnome-terminal-server"; do
+      wrapProgram "$f" --prefix XDG_DATA_DIRS : "$out/share:$GSETTINGS_SCHEMAS_PATH"
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/gnome-themes-standard/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-themes-standard/default.nix
new file mode 100644
index 000000000000..08d82b7ae918
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-themes-standard/default.nix
@@ -0,0 +1,15 @@
+{ stdenv, fetchurl, intltool, gtk3, librsvg, pkgconfig, pango, atk, gtk2, gdk_pixbuf }:
+
+stdenv.mkDerivation rec {
+  name = "gnome-themes-standard-3.10.0";
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-themes-standard/3.10/${name}.tar.xz";
+    sha256 = "0f2b3ypkfvrdsxcvp14ja9wqj382f1p46yrjvhhxkkjgagy6qb41";
+  };
+  
+  buildInputs = [ intltool gtk3 librsvg pkgconfig pango atk gtk2 gdk_pixbuf ];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/gnome-user-docs/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-user-docs/default.nix
new file mode 100644
index 000000000000..d66863a22184
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-user-docs/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, pkgconfig, file, gnome3, itstool, libxml2, intltool }:
+
+stdenv.mkDerivation rec {
+  name = "gnome-user-docs-3.10.3";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-user-docs/3.10/${name}.tar.xz";
+    sha256 = "960b6373ea52e41e3deb3501930e024005b29d2cc958bfadc87450a291d2a905";
+  };
+
+  buildInputs = [ pkgconfig gnome3.yelp itstool libxml2 intltool ];
+
+  meta = with stdenv.lib; {
+    homepage = https://help.gnome.org/users/gnome-help/3.10;
+    description = "User and system administration help for the Gnome desktop";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.cc-by-30;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/gnome-user-share/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-user-share/default.nix
new file mode 100644
index 000000000000..976b0eaca45b
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-user-share/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, intltool, fetchurl, apacheHttpd_2_2, nautilus
+, pkgconfig, gtk3, glib, hicolor_icon_theme, libxml2, gnused
+, bash, makeWrapper, itstool, libnotify, libtool, mod_dnssd
+, gnome3, librsvg, gdk_pixbuf, file, libcanberra_gtk3 }:
+
+stdenv.mkDerivation rec {
+  name = "gnome-user-share-3.10.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-user-share/3.10/${name}.tar.xz";
+    sha256 = "1d1ea57a49224c36e7cba04f80265e835639377f474a7582c9e8ac946eda0f8f";
+  };
+
+  doCheck = true;
+
+  NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
+
+  preConfigure = ''
+    sed -e 's,^LoadModule dnssd_module.\+,LoadModule dnssd_module ${mod_dnssd}/modules/mod_dnssd.so,' -i data/dav_user_2.2.conf 
+  '';
+
+  configureFlags = [ "--with-httpd=${apacheHttpd_2_2}/bin/httpd"
+                     "--with-modules-path=${apacheHttpd_2_2}/modules"
+                     "--disable-bluetooth"
+                     "--with-nautilusdir=$(out)/lib/nautilus/extensions-3.0" ];
+
+  buildInputs = [ pkgconfig gtk3 glib intltool itstool libxml2 libtool
+                  makeWrapper file gdk_pixbuf gnome3.gnome_icon_theme librsvg
+                  hicolor_icon_theme gnome3.gnome_icon_theme_symbolic
+                  nautilus libnotify libcanberra_gtk3 ];
+
+  postInstall = ''
+    mkdir -p $out/share/gsettings-schemas/$name
+    mv $out/share/glib-2.0 $out/share/gsettings-schemas/$name
+    ${glib}/bin/glib-compile-schemas $out/share/gsettings-schemas/$name/glib-2.0/schemas
+  '';
+
+  preFixup = ''
+    wrapProgram "$out/libexec/gnome-user-share" \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --prefix XDG_DATA_DIRS : "$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+    rm $out/share/icons/hicolor/icon-theme.cache
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://help.gnome.org/users/gnome-user-share/3.8;
+    description = "Service that exports the contents of the Public folder in your home directory on the local network";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/grilo-plugins/default.nix b/pkgs/desktops/gnome-3/3.10/core/grilo-plugins/default.nix
new file mode 100644
index 000000000000..a8a1c244767c
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/grilo-plugins/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, pkgconfig, file, intltool, glib, sqlite
+, gnome3, libxml2, gupnp, gssdp, lua5, liboauth, gupnp_av
+, gmime, json_glib, avahi, tracker, itstool }:
+
+stdenv.mkDerivation rec {
+  name = "grilo-plugins-0.2.12";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/grilo-plugins/0.2/${name}.tar.xz";
+    sha256 = "15bed8a633c81b251920ab677d455433e641388f605277ca88e549cc89012b48";
+  };
+
+  installFlags = [ "GRL_PLUGINS_DIR=$(out)/lib/grilo-0.2" ];
+
+  buildInputs = [ pkgconfig gnome3.grilo libxml2 gupnp gssdp gnome3.libgdata
+                  lua5 liboauth gupnp_av sqlite gnome3.gnome_online_accounts
+                  gnome3.totem-pl-parser gnome3.rest gmime json_glib
+                  avahi gnome3.libmediaart tracker intltool itstool ];
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/action/show/Projects/Grilo;
+    description = "A collection of plugins for the Grilo framework";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.lgpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/grilo/default.nix b/pkgs/desktops/gnome-3/3.10/core/grilo/default.nix
new file mode 100644
index 000000000000..6f1bfbbcfe94
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/grilo/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, pkgconfig, file, intltool, glib
+, libxml2, gnome3, gobjectIntrospection, libsoup }:
+
+stdenv.mkDerivation rec {
+  name = "grilo-0.2.10";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/grilo/0.2/${name}.tar.xz";
+    sha256 = "559a2470fe541b0090bcfdfac7a33e92dba967727bbab6d0eca70e5636a77b25";
+  };
+
+  configureFlags = [ "--enable-grl-pls" "--enable-grl-net" ];
+
+  preConfigure = ''
+    for f in src/Makefile.in libs/pls/Makefile.in libs/net/Makefile.in; do
+       substituteInPlace $f --replace @INTROSPECTION_GIRDIR@ "$out/share/gir-1.0/"
+       substituteInPlace $f --replace @INTROSPECTION_TYPELIBDIR@ "$out/lib/girepository-1.0"
+    done
+  '';
+
+  buildInputs = [ pkgconfig file intltool glib libxml2 libsoup
+                  gnome3.totem-pl-parser gobjectIntrospection ];
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/action/show/Projects/Grilo;
+    description = "Framework that provides access to various sources of multimedia content, using a pluggable system";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.lgpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/gsettings-desktop-schemas/default.nix b/pkgs/desktops/gnome-3/3.10/core/gsettings-desktop-schemas/default.nix
new file mode 100644
index 000000000000..13f357db29af
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/gsettings-desktop-schemas/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, pkgconfig, intltool, glib, gobjectIntrospection
+  # just for passthru
+, gtk3, gsettings_desktop_schemas }:
+
+stdenv.mkDerivation rec {
+
+  versionMajor = "3.10";
+  versionMinor = "1";
+  moduleName   = "gsettings-desktop-schemas";
+
+  name = "${moduleName}-${versionMajor}.${versionMinor}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
+    sha256 = "04b8wy10l6pzs5928gnzaia73dz5fjlcdy39xi3mf50ajv27h8s5";
+  };
+
+  buildInputs = [ glib gobjectIntrospection ];
+
+  nativeBuildInputs = [ pkgconfig intltool ];
+
+  passthru = {
+    doCompileSchemas = ''
+      for pkg in "${gsettings_desktop_schemas}" "${gtk3}"; do
+        cp -s $pkg/share/glib-2.0/schemas/*.gschema.xml $out/share/glib-2.0/schemas/
+      done
+      ${glib}/bin/glib-compile-schemas $out/share/glib-2.0/schemas/
+    '';
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/gtksourceview/default.nix b/pkgs/desktops/gnome-3/3.10/core/gtksourceview/default.nix
new file mode 100644
index 000000000000..900bb2c922bb
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/gtksourceview/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, pkgconfig, atk, cairo, glib, gtk3, pango
+, libxml2Python, perl, intltool, gettext }:
+
+stdenv.mkDerivation rec {
+  name = "gtksourceview-${version}";
+  version = "3.10.1";
+
+  src = fetchurl {
+    url = "https://download.gnome.org/sources/gtksourceview/3.10/gtksourceview-${version}.tar.xz";
+    sha256 = "008bzfr1s6ywpj8c8qx7495lz9g0ziccwbxg88s0l4dl6bw49piq";
+  };
+
+  buildInputs = [ pkgconfig atk cairo glib gtk3 pango
+                  libxml2Python perl intltool gettext ];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/gucharmap/default.nix b/pkgs/desktops/gnome-3/3.10/core/gucharmap/default.nix
new file mode 100644
index 000000000000..a6bf72b2fc7e
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/gucharmap/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, intltool, fetchurl, pkgconfig, gtk3
+, glib, desktop_file_utils, bash
+, makeWrapper, gnome3, file, itstool, libxml2 }:
+
+# TODO: icons and theme still does not work
+# use packaged gnome3.gnome_icon_theme_symbolic 
+
+stdenv.mkDerivation rec {
+  name = "gucharmap-3.10.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gucharmap/3.10/${name}.tar.xz";
+    sha256 = "04e8606c65adb14d267b50b1cf9eb4fee92bd9c5ab512a346bd4c9c686403f78";
+  };
+
+  configureFlags = [ "--disable-static" ];
+
+  doCheck = true;
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+
+  preConfigure = "substituteInPlace ./configure --replace /usr/bin/file ${file}/bin/file";
+
+  buildInputs = [ pkgconfig gtk3 intltool itstool glib
+                  gnome3.yelp_tools libxml2 file desktop_file_utils
+                  gnome3.gsettings_desktop_schemas makeWrapper ];
+
+  preFixup = ''
+    wrapProgram "$out/bin/gucharmap" \
+      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Gucharmap;
+    description = "GNOME Character Map, based on the Unicode Character Database";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/libcroco/default.nix b/pkgs/desktops/gnome-3/3.10/core/libcroco/default.nix
new file mode 100644
index 000000000000..e5f6a0aa9b8b
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/libcroco/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl, pkgconfig, libxml2, glib }:
+
+stdenv.mkDerivation rec {
+  name = "libcroco-0.6.8";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/libcroco/0.6/${name}.tar.xz";
+    sha256 = "0w453f3nnkbkrly7spx5lx5pf6mwynzmd5qhszprq8amij2invpa";
+  };
+
+  configureFlags = stdenv.lib.optional stdenv.isDarwin "--disable-Bsymbolic";
+
+  buildInputs = [ pkgconfig libxml2 glib ];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/libgdata/default.nix b/pkgs/desktops/gnome-3/3.10/core/libgdata/default.nix
new file mode 100644
index 000000000000..9a1a45e0d1ac
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/libgdata/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, pkgconfig, intltool, libxml2, glib
+, gobjectIntrospection, liboauth, gnome3, p11_kit, openssl }:
+
+stdenv.mkDerivation rec {
+  name = "libgdata-0.14.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/libgdata/0.14/${name}.tar.xz";
+    sha256 = "1scjs944kjazbsh86kdj6w2vprib6yd3wzxzabcs59acmr0m4hax";
+  };
+
+  NIX_CFLAGS_COMPILE = "-I${gnome3.libsoup}/include/libsoup-gnome-2.4/ -I${gnome3.gcr}/include/gcr-3 -I${gnome3.gcr}/include/gck-1";
+
+  buildInputs = with gnome3;
+    [ pkgconfig libsoup intltool libxml2 glib gobjectIntrospection
+      liboauth gcr gnome_online_accounts p11_kit openssl ];
+      
+  meta = with stdenv.lib; {
+    description = "GData API library";
+    maintainers = with maintainers; [ raskin ];
+    platforms = platforms.linux;
+    license = licenses.lgpl21Plus;
+  };
+
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/libgee/default.nix b/pkgs/desktops/gnome-3/3.10/core/libgee/default.nix
new file mode 100644
index 000000000000..c7ed541082d5
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/libgee/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, autoconf, vala, pkgconfig, glib, gobjectIntrospection }:
+let
+  ver_maj = "0.12";
+  ver_min = "0";
+in
+stdenv.mkDerivation rec {
+  name = "libgee-${ver_maj}.${ver_min}";
+
+  src = fetchurl {
+    url = "https://download.gnome.org/sources/libgee/${ver_maj}/${name}.tar.xz";
+    sha256 = "19bf94ia1h5z8h0hdhwcd2b2p6ngffirg0dai7pdb98dzriys1ni";
+  };
+
+  doCheck = true;
+
+  patches = [ ./fix_introspection_paths.patch ];
+
+  buildInputs = [ autoconf vala pkgconfig glib gobjectIntrospection ];
+
+  meta = with stdenv.lib; {
+    description = "Utility library providing GObject-based interfaces and classes for commonly used data structures";
+    license = licenses.lgpl21Plus;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/libgee/fix_introspection_paths.patch b/pkgs/desktops/gnome-3/3.10/core/libgee/fix_introspection_paths.patch
new file mode 100644
index 000000000000..67003f451645
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/libgee/fix_introspection_paths.patch
@@ -0,0 +1,13 @@
+--- fix_introspection_paths.patch/configure	2014-01-07 17:43:53.521339338 +0000
++++ fix_introspection_paths.patch/configure-fix	2014-01-07 17:45:11.068635069 +0000
+@@ -12085,8 +12085,8 @@
+        INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
+        INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
+        INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
+-       INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0`
+-       INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
++       INTROSPECTION_GIRDIR="${datadir}/gir-1.0"
++       INTROSPECTION_TYPELIBDIR="${libdir}/girepository-1.0"
+        INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0`
+        INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0`
+        INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
diff --git a/pkgs/desktops/gnome-3/3.10/core/libgnome-keyring/default.nix b/pkgs/desktops/gnome-3/3.10/core/libgnome-keyring/default.nix
new file mode 100644
index 000000000000..28c7b80c0d4f
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/libgnome-keyring/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, glib, dbus_libs, libgcrypt, pkgconfig, intltool, gobjectIntrospection }:
+
+stdenv.mkDerivation rec {
+  name = "libgnome-keyring-3.10.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/libgnome-keyring/3.10/${name}.tar.xz";
+    sha256 = "0wip88r91kwx4zp6sc9b38mnlv11grgl4k2kzsd3a8x83c9g2b05";
+  };
+
+  propagatedBuildInputs = [ glib gobjectIntrospection dbus_libs libgcrypt ];
+  nativeBuildInputs = [ pkgconfig intltool ];
+
+  meta = {
+    description = "Framework for managing passwords and other secrets";
+    homepage = http://live.gnome.org/GnomeKeyring;
+    # TODO license = with stdenv.lib.licenses; [ gpl2Plus lgpl2Plus ];
+    inherit (glib.meta) platforms maintainers;
+
+    longDescription = ''
+      gnome-keyring is a program that keeps password and other secrets for
+      users. The library libgnome-keyring is used by applications to integrate
+      with the gnome-keyring system.
+    '';
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/libgnomekbd/default.nix b/pkgs/desktops/gnome-3/3.10/core/libgnomekbd/default.nix
new file mode 100644
index 000000000000..1156474e5a7c
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/libgnomekbd/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, pkgconfig, file, intltool, glib, gtk3, libxklavier, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "libgnomekbd-3.6.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/libgnomekbd/3.6/${name}.tar.xz";
+    sha256 = "c41ea5b0f64da470925ba09f9f1b46b26b82d4e433e594b2c71eab3da8856a09";
+  };
+
+  buildInputs = [ pkgconfig file intltool glib gtk3 libxklavier makeWrapper ];
+
+  preFixup = ''
+    wrapProgram $out/bin/gkbd-keyboard-display \
+      --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Keyboard management library";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/libgweather/default.nix b/pkgs/desktops/gnome-3/3.10/core/libgweather/default.nix
new file mode 100644
index 000000000000..c480a59e453e
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/libgweather/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, pkgconfig, libxml2, gtk, intltool, libsoup, gconf
+, pango, gdk_pixbuf, atk, tzdata }:
+
+stdenv.mkDerivation rec {
+  name = "libgweather-3.10.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/libgweather/3.10/${name}.tar.xz";
+    sha256 = "1iyg0l90m14iw0ksjbmrrhb5fqn0y7x5f726y56gxd4qcxgpi3mf";
+  };
+
+  makeFlags = "INTROSPECTION_GIRDIR=$(out)/share/gir-1.0/ INTROSPECTION_TYPELIBDIR=$(out)/lib/girepository-1.0";
+
+  configureFlags = [ "--with-zoneinfo-dir=${tzdata}/share/zoneinfo" ];
+  propagatedBuildInputs = [ libxml2 gtk libsoup gconf pango gdk_pixbuf atk ];
+  nativeBuildInputs = [ pkgconfig intltool ];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/libgxps/default.nix b/pkgs/desktops/gnome-3/3.10/core/libgxps/default.nix
new file mode 100644
index 000000000000..72d307f4f1a7
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/libgxps/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, pkgconfig, glib, cairo, libarchive, freetype, libjpeg, libtiff
+, openssl, bzip2, acl, attr
+}:
+
+stdenv.mkDerivation rec {
+  name = "libgxps-0.2.2";
+
+  src = fetchurl {
+    url = "http://ftp.acc.umu.se/pub/GNOME/core/3.10/3.10.2/sources/${name}.tar.xz";
+    sha256 = "1gi0b0x0354jyqc48vspk2hg2q1403cf2p9ibj847nzhkdrh9l9r";
+  };
+
+  buildInputs = [ pkgconfig glib cairo libarchive freetype libjpeg libtiff acl openssl bzip2 attr];
+
+  configureFlags = "--without-liblcms2";
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/libpeas/default.nix b/pkgs/desktops/gnome-3/3.10/core/libpeas/default.nix
new file mode 100644
index 000000000000..9cf8426104be
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/libpeas/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, pkgconfig, intltool
+, glib, gtk3, gobjectIntrospection, python, pygobject3
+}:
+
+stdenv.mkDerivation rec {
+  name = "libpeas-${version}";
+  version = "1.9.0";
+
+  buildInputs =  [
+   intltool pkgconfig
+   glib gtk3 gobjectIntrospection python pygobject3
+  ];
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/libpeas/1.9/${name}.tar.xz";
+    sha256 = "13fzyzv6c0cfdj83z1s16lv8k997wpnzyzr0wfwcfkcmvz64g1q0";
+  };
+
+  preFixup = ''
+    rm $out/share/icons/hicolor/icon-theme.cache
+  '';
+
+  meta = {
+    description = "A GObject-based plugins engine";
+    homepage = "http://ftp.acc.umu.se/pub/GNOME/sources/libpeas/";
+    license = stdenv.lib.licenses.gpl2Plus;
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/libzapojit/default.nix b/pkgs/desktops/gnome-3/3.10/core/libzapojit/default.nix
new file mode 100644
index 000000000000..e0e4c02c084c
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/libzapojit/default.nix
@@ -0,0 +1,16 @@
+{ stdenv, fetchurl, pkgconfig, glib, intltool, json_glib, rest, libsoup, gtk, gnome_online_accounts }:
+
+stdenv.mkDerivation rec {
+  name = "libzapojit-0.0.3";
+
+  src = fetchurl {
+    url = "http://ftp.acc.umu.se/pub/GNOME/core/3.10/3.10.2/sources/${name}.tar.xz";
+    sha256 = "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x";
+  };
+
+  buildInputs = [ pkgconfig glib intltool json_glib rest libsoup gtk gnome_online_accounts ];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/mutter/default.nix b/pkgs/desktops/gnome-3/3.10/core/mutter/default.nix
new file mode 100644
index 000000000000..0acfa9f36aed
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/mutter/default.nix
@@ -0,0 +1,33 @@
+{ fetchurl, stdenv, pkgconfig, gnome3, intltool, gobjectIntrospection, upower, cairo
+, pango, cogl, clutter, libstartup_notification, libcanberra, zenity, libcanberra_gtk3
+, libtool, makeWrapper }:
+
+
+stdenv.mkDerivation rec {
+  name = "mutter-3.10.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/mutter/3.10/${name}.tar.xz";
+    sha256 = "000iclb96mgc4rp2q0cy72nfwyfzl6avijl9nmk87f5sgyy670a3";
+  };
+
+  # fatal error: gio/gunixfdlist.h: No such file or directory
+  NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
+
+  configureFlags = "--with-x --disable-static --enable-shape --enable-sm --enable-startup-notification --enable-xsync --enable-verbose-mode --with-libcanberra"; 
+
+  buildInputs = with gnome3;
+    [ pkgconfig intltool glib gobjectIntrospection gtk gsettings_desktop_schemas upower
+      gnome_desktop cairo pango cogl clutter zenity libstartup_notification libcanberra
+      libcanberra_gtk3 zenity libtool makeWrapper ];
+
+  preFixup = ''
+    wrapProgram "$out/bin/mutter" \
+      --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
+  '';
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/nautilus/default.nix b/pkgs/desktops/gnome-3/3.10/core/nautilus/default.nix
new file mode 100644
index 000000000000..2041a71a82c3
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/nautilus/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, pkgconfig, libxml2, dbus_glib, shared_mime_info, libexif
+, gtk, gnome3, libunique, intltool, gobjectIntrospection
+, libnotify, makeWrapper, exempi, librsvg }:
+
+stdenv.mkDerivation rec {
+  name = "nautilus-3.10.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/nautilus/3.10/${name}.tar.xz";
+    sha256 = "09y7dxaw4bjgan3q10azky0h6kndqv2lfn75iip12zchf2hk59gn";
+  };
+
+  configureFlags = [ "--enable-tracker=no" ];
+
+  buildInputs = [ pkgconfig libxml2 dbus_glib shared_mime_info libexif gtk libunique intltool exempi librsvg
+                  gnome3.gnome_desktop gnome3.gnome_icon_theme gnome3.gnome_icon_theme_symbolic gnome3.gsettings_desktop_schemas libnotify makeWrapper ];
+
+  preFixup = ''
+    wrapProgram "$out/bin/nautilus" \
+      --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk}/share:${gnome3.gnome_icon_theme}:${gnome3.gsettings_desktop_schemas}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
+  '';
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/rest/default.nix b/pkgs/desktops/gnome-3/3.10/core/rest/default.nix
new file mode 100644
index 000000000000..f543f8e13b82
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/rest/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl, pkgconfig, glib, libsoup, gobjectIntrospection }:
+
+stdenv.mkDerivation rec {
+  name = "rest-0.7.90";
+
+  src = fetchurl {
+    url = "http://ftp.acc.umu.se/pub/GNOME/core/3.10/3.10.2/sources/${name}.tar.xz";
+    sha256 = "08n0cvz44l4b1gkmjryap3ysd0wcbbbdjbcar73nr52dmk52ls0x";
+  };
+
+  buildInputs = [ pkgconfig glib libsoup gobjectIntrospection];
+
+  configureFlags = "--with-ca-certificates=/etc/ssl/certs/ca-bundle.crt";
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/sushi/default.nix b/pkgs/desktops/gnome-3/3.10/core/sushi/default.nix
new file mode 100644
index 000000000000..089b5cd03c13
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/sushi/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, pkgconfig, file, intltool, gobjectIntrospection, glib
+, clutter_gtk, clutter-gst, gnome3, gtksourceview, libmusicbrainz
+, webkitgtk, libmusicbrainz5, icu, makeWrapper, gst_all_1
+, gdk_pixbuf, librsvg, hicolor_icon_theme }:
+
+stdenv.mkDerivation rec {
+  name = "sushi-3.10.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/sushi/3.10/${name}.tar.xz";
+    sha256 = "cffcf28b170f5825e84983a979972d4d901a453b61cbe3e560d362e8dd4b4bc8";
+  };
+
+  propagatedUserEnvPkgs = [ gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good ];
+
+  buildInputs = [ pkgconfig file intltool gobjectIntrospection glib
+                  clutter_gtk clutter-gst gnome3.gjs gtksourceview gdk_pixbuf librsvg
+                  gnome3.gnome_icon_theme hicolor_icon_theme gnome3.gnome_icon_theme_symbolic
+                  libmusicbrainz5 webkitgtk gnome3.evince icu makeWrapper ];
+
+  enableParallelBuilding = true;
+
+  preFixup = ''
+    wrapProgram $out/libexec/sushi-start \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
+      --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0" \
+      --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "http://en.wikipedia.org/wiki/Sushi_(software)";
+    description = "A quick previewer for Nautilus";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/totem-pl-parser/default.nix b/pkgs/desktops/gnome-3/3.10/core/totem-pl-parser/default.nix
new file mode 100644
index 000000000000..f1b3bfe53c13
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/totem-pl-parser/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, pkgconfig, file, intltool, gmime, libxml2, libsoup }:
+
+stdenv.mkDerivation rec {
+  name = "totem-pl-parser-3.10.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/totem-pl-parser/3.10/${name}.tar.xz";
+    sha256 = "38be09bddc46ddecd2b5ed7c82144ef52aafe879a5ec3d8b192b4b64ba995469";
+  };
+
+  buildInputs = [ pkgconfig file intltool gmime libxml2 libsoup ];
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Videos;
+    description = "Simple GObject-based library to parse and save a host of playlist formats";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.lgpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/totem/default.nix b/pkgs/desktops/gnome-3/3.10/core/totem/default.nix
new file mode 100644
index 000000000000..c6b78c827dba
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/totem/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, intltool, fetchurl, gst_all_1
+, clutter_gtk, clutter-gst, pygobject3, shared_mime_info
+, pkgconfig, gtk3, glib, hicolor_icon_theme
+, bash, makeWrapper, itstool, libxml2, dbus_glib
+, gnome3, librsvg, gdk_pixbuf, file }:
+
+stdenv.mkDerivation rec {
+  name = "totem-3.10.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/totem/3.10/${name}.tar.xz";
+    sha256 = "b6b6038c9104965671a6d25e98496a487c3a9c590c9c104f668bd9f4fa7be9e2";
+  };
+
+  doCheck = true;
+
+  enableParallelBuilding = true;
+
+  NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+
+  buildInputs = [ pkgconfig gtk3 glib intltool itstool libxml2 gnome3.grilo
+                  clutter_gtk clutter-gst gnome3.totem-pl-parser gnome3.grilo-plugins
+                  gst_all_1.gstreamer gst_all_1.gst-plugins-base
+                  gst_all_1.gst-plugins-good gst_all_1.gst-plugins-bad
+                  gnome3.libpeas pygobject3 shared_mime_info dbus_glib
+                  gdk_pixbuf gnome3.gnome_icon_theme librsvg
+                  hicolor_icon_theme gnome3.gnome_icon_theme_symbolic
+                  gnome3.gsettings_desktop_schemas makeWrapper file ];
+
+  preFixup = ''
+    wrapProgram "$out/bin/totem" \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0" \
+      --prefix GRL_PLUGIN_PATH : "${gnome3.grilo-plugins}/lib/grilo-0.2" \
+      --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+
+    rm $out/share/icons/hicolor/icon-theme.cache
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Videos;
+    description = "Movie player for the GNOME desktop based on GStreamer";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/tracker/default.nix b/pkgs/desktops/gnome-3/3.10/core/tracker/default.nix
new file mode 100644
index 000000000000..dbae108d2e96
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/tracker/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, intltool, fetchurl, libxml2, upower
+, pkgconfig, gtk3, glib, hicolor_icon_theme
+, bash, makeWrapper, itstool, vala, sqlite
+, gnome3, librsvg, gdk_pixbuf, file, libnotify
+, evolution_data_server, gst_all_1, poppler
+, icu, taglib, libjpeg, libtiff, giflib, libcue
+, libvorbis, flac, exempi, networkmanager
+, libpng, libexif, libgsf, libuuid, bzip2 }:
+
+stdenv.mkDerivation rec {
+  name = "tracker-0.16.4";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/tracker/0.16/${name}.tar.xz";
+    sha256 = "9c2f50839c2b8b352ab9a022597ef985c1900e6286c0c3bcb7a64da39dbb3580";
+  };
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+
+  NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
+
+  enableParallelBuilding = true;
+
+  buildInputs = [ vala pkgconfig gtk3 glib intltool itstool libxml2
+                  bzip2 gnome3.totem-pl-parser
+                  gnome3.gsettings_desktop_schemas makeWrapper file
+                  gdk_pixbuf gnome3.gnome_icon_theme librsvg sqlite
+                  upower libnotify evolution_data_server gnome3.libgee
+                  gst_all_1.gstreamer gst_all_1.gst-plugins-base flac
+                  poppler icu taglib libjpeg libtiff giflib libvorbis
+                  exempi networkmanager libpng libexif libgsf libuuid
+                  hicolor_icon_theme gnome3.gnome_icon_theme_symbolic ];
+
+  preFixup = ''
+    for f in $out/bin/* $out/libexec/*; do
+      wrapProgram $f \
+        --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+        --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Projects/Tracker;
+    description = "Desktop-neutral user information store, search tool and indexer";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/vino/default.nix b/pkgs/desktops/gnome-3/3.10/core/vino/default.nix
new file mode 100644
index 000000000000..65668dce6a20
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/vino/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, intltool, fetchurl, gtk3, glib, libsoup, pkgconfig, makeWrapper
+, libnotify, file }:
+
+stdenv.mkDerivation rec {
+  name = "vino-${versionMajor}.${versionMinor}";
+  versionMajor = "3.10";
+  versionMinor = "1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/vino/${versionMajor}/${name}.tar.xz";
+    sha256 = "0imyvz96b7kikikwxn1r5sfxwmi40523nd66gp9hrl23gik0vwgs";
+  };
+
+  doCheck = true;
+
+  buildInputs = [ gtk3 intltool glib libsoup pkgconfig libnotify file makeWrapper ];
+
+  preFixup = ''
+    for f in "$out/bin/vino-passwd" "$out/libexec/vino-server"; do
+      wrapProgram $f --prefix XDG_DATA_DIRS : "${gtk3}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/action/show/Projects/Vino;
+    description = "GNOME desktop sharing server";
+    maintainers = with maintainers; [ lethalman iElectric ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/vte/default.nix b/pkgs/desktops/gnome-3/3.10/core/vte/default.nix
new file mode 100644
index 000000000000..d98ddc716dec
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/vte/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, intltool, pkgconfig, gnome3, ncurses, gobjectIntrospection }:
+
+stdenv.mkDerivation rec {
+
+  versionMajor = "0.35";
+  versionMinor = "90";
+  moduleName   = "vte";
+  
+  name = "${moduleName}-${versionMajor}.${versionMinor}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
+    sha256 = "c47182d1724db479095b918898ce62297ec71988f24cd575506151c59f7b98cf";
+  };
+
+  buildInputs = [ gobjectIntrospection intltool pkgconfig gnome3.glib gnome3.gtk3 ncurses ];
+
+  configureFlags = ''--enable-introspection'';
+
+  meta = {
+    homepage = http://www.gnome.org/;
+    description = "A library implementing a terminal emulator widget for GTK+";
+    longDescription = ''
+      VTE is a library (libvte) implementing a terminal emulator widget for
+      GTK+, and a minimal sample application (vte) using that.  Vte is
+      mainly used in gnome-terminal, but can also be used to embed a
+      console/terminal in games, editors, IDEs, etc. VTE supports Unicode and
+      character set conversion, as well as emulating any terminal known to
+      the system's terminfo database.
+    '';
+    license = "LGPLv2";
+    maintainers = with stdenv.lib.maintainers; [ astsmtl antono ];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/yelp-tools/default.nix b/pkgs/desktops/gnome-3/3.10/core/yelp-tools/default.nix
new file mode 100644
index 000000000000..39ff3838f4a8
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/yelp-tools/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, libxml2, libxslt, itstool, gnome3, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  name = "yelp-tools-3.10.0";
+
+  src = fetchurl {
+    url = "https://download.gnome.org/sources/yelp-tools/3.10/${name}.tar.xz";
+    sha256 = "0496xyx1657db22ks3k92al64fp6236y5bgh7s7b0j8hcc112ppz";
+  };
+
+  buildInputs = [ libxml2 libxslt itstool gnome3.yelp_xsl pkgconfig ];
+
+  doCheck = true;
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Yelp/Tools;
+    description = "Small programs that help you create, edit, manage, and publish your Mallard or DocBook documentation";
+    maintainers = with maintainers; [ iElectric ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/yelp-xsl/default.nix b/pkgs/desktops/gnome-3/3.10/core/yelp-xsl/default.nix
new file mode 100644
index 000000000000..c5060bdba75c
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/yelp-xsl/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, intltool, fetchurl, pkgconfig, bash
+, itstool, libxml2, libxslt }:
+
+stdenv.mkDerivation rec {
+  name = "yelp-xsl-3.10.1";
+
+  src = fetchurl {
+    url = "https://download.gnome.org/sources/yelp-xsl/3.10/${name}.tar.xz";
+    sha256 = "59c6dee3999121f6ffd33a9c5228316b75bc22e3bd68fff310beb4eeff245887";
+  };
+
+  doCheck = true;
+
+  buildInputs = [ pkgconfig intltool itstool libxml2 libxslt ];
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Yelp;
+    description = "Yelp's universal stylesheets for Mallard and DocBook";
+    maintainers = with maintainers; [ lethalman ];
+    # TODO license = [licenses.gpl2 licenses.lgpl2];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/yelp/default.nix b/pkgs/desktops/gnome-3/3.10/core/yelp/default.nix
new file mode 100644
index 000000000000..b58aa99721e2
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/yelp/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, intltool, fetchurl, webkitgtk, pkgconfig, gtk3, glib
+, file, librsvg, hicolor_icon_theme, gnome3, gdk_pixbuf
+, bash, makeWrapper, itstool, libxml2, libxslt, icu }:
+
+stdenv.mkDerivation rec {
+  name = "yelp-3.10.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/yelp/3.10/${name}.tar.xz";
+    sha256 = "17736479b7d0b1128c7d6cb3073f2b09e4bbc82670731b2a0d3a3219a520f816";
+  };
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard  ];
+  propagatedBuildInputs = [ librsvg gdk_pixbuf gnome3.gnome_icon_theme
+                            hicolor_icon_theme gnome3.gnome_icon_theme_symbolic ];
+
+  preConfigure = "substituteInPlace ./configure --replace /usr/bin/file ${file}/bin/file";
+
+  buildInputs = [ pkgconfig gtk3 glib webkitgtk intltool itstool
+                  libxml2 libxslt icu file makeWrapper gnome3.yelp_xsl
+                  gnome3.gsettings_desktop_schemas ];
+
+  preFixup = ''
+    wrapProgram "$out/bin/yelp" \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/:${gnome3.gnome_themes_standard}/share:${gnome3.yelp_xsl}/share/yelp-xsl:${gnome3.gsettings_desktop_schemas}/share:$out/share:$out/share/yelp:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Yelp;
+    description = "Yelp is the help viewer in Gnome.";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.10/core/zenity/default.nix b/pkgs/desktops/gnome-3/3.10/core/zenity/default.nix
new file mode 100644
index 000000000000..366088c67291
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.10/core/zenity/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, pkgconfig, cairo, libxml2, libxslt, gnome3, pango
+, gnome_doc_utils, intltool, libX11, which, itstool }:
+
+stdenv.mkDerivation rec {
+
+  versionMajor = "3.8";
+  versionMinor = "0";
+
+  name = "zenity-${versionMajor}.${versionMinor}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/zenity/${versionMajor}/zenity-${versionMajor}.${versionMinor}.tar.xz";
+    sha256 = "0gsnwvhsqqba5i6d4jh86j29q4q18hmvhj9c1v76vwlj2nvz1ywl";
+  };
+
+  buildInputs = [ gnome3.gtk libxml2 libxslt libX11 itstool ];
+
+  nativeBuildInputs = [ pkgconfig intltool gnome_doc_utils which ];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
+}