summary refs log tree commit diff
path: root/pkgs/desktops
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
parent139608dd34414ae63e6679d34436588029d463b0 (diff)
downloadnixpkgs-d05fa3ccfeafbf81e514a82cf2f04fff2b03659b.tar
nixpkgs-d05fa3ccfeafbf81e514a82cf2f04fff2b03659b.tar.gz
nixpkgs-d05fa3ccfeafbf81e514a82cf2f04fff2b03659b.tar.bz2
nixpkgs-d05fa3ccfeafbf81e514a82cf2f04fff2b03659b.tar.lz
nixpkgs-d05fa3ccfeafbf81e514a82cf2f04fff2b03659b.tar.xz
nixpkgs-d05fa3ccfeafbf81e514a82cf2f04fff2b03659b.tar.zst
nixpkgs-d05fa3ccfeafbf81e514a82cf2f04fff2b03659b.zip
Branch gnome 3.12
Diffstat (limited to 'pkgs/desktops')
-rw-r--r--pkgs/desktops/gnome-3/3.10/apps/bijiben/default.nix (renamed from pkgs/desktops/gnome-3/apps/bijiben/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/apps/evolution/default.nix (renamed from pkgs/desktops/gnome-3/apps/evolution/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/apps/file-roller/default.nix (renamed from pkgs/desktops/gnome-3/apps/file-roller/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/apps/gedit/default.nix (renamed from pkgs/desktops/gnome-3/apps/gedit/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/apps/glade/default.nix (renamed from pkgs/desktops/gnome-3/apps/glade/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/apps/gnome-clocks/default.nix (renamed from pkgs/desktops/gnome-3/apps/gnome-clocks/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/apps/gnome-documents/default.nix (renamed from pkgs/desktops/gnome-3/apps/gnome-documents/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/apps/gnome-music/default.nix (renamed from pkgs/desktops/gnome-3/apps/gnome-music/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/apps/gnome-photos/default.nix (renamed from pkgs/desktops/gnome-3/apps/gnome-photos/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/apps/seahorse/default.nix (renamed from pkgs/desktops/gnome-3/apps/seahorse/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/at-spi2-atk/default.nix (renamed from pkgs/desktops/gnome-3/core/at-spi2-atk/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/at-spi2-core/default.nix (renamed from pkgs/desktops/gnome-3/core/at-spi2-core/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/baobab/default.nix (renamed from pkgs/desktops/gnome-3/core/baobab/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/caribou/default.nix (renamed from pkgs/desktops/gnome-3/core/caribou/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/dconf/default.nix (renamed from pkgs/desktops/gnome-3/core/dconf/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/empathy/default.nix (renamed from pkgs/desktops/gnome-3/core/empathy/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/eog/default.nix (renamed from pkgs/desktops/gnome-3/core/eog/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/epiphany/default.nix (renamed from pkgs/desktops/gnome-3/core/epiphany/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/evince/default.nix (renamed from pkgs/desktops/gnome-3/core/evince/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/evolution-data-server/default.nix (renamed from pkgs/desktops/gnome-3/core/evolution-data-server/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/folks/default.nix (renamed from pkgs/desktops/gnome-3/core/folks/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gconf/default.nix (renamed from pkgs/desktops/gnome-3/core/gconf/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gcr/default.nix (renamed from pkgs/desktops/gnome-3/core/gcr/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gdm/default.nix (renamed from pkgs/desktops/gnome-3/core/gdm/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/geocode-glib/default.nix (renamed from pkgs/desktops/gnome-3/core/geocode-glib/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gjs/default.nix (renamed from pkgs/desktops/gnome-3/core/gjs/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-backgrounds/default.nix (renamed from pkgs/desktops/gnome-3/core/gnome-backgrounds/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-calculator/default.nix (renamed from pkgs/desktops/gnome-3/core/gnome-calculator/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-common/default.nix (renamed from pkgs/desktops/gnome-3/core/gnome-common/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-contacts/configure_dbus_glib.patch (renamed from pkgs/desktops/gnome-3/core/gnome-contacts/configure_dbus_glib.patch)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-contacts/default.nix (renamed from pkgs/desktops/gnome-3/core/gnome-contacts/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-contacts/fix_row_selected.patch (renamed from pkgs/desktops/gnome-3/core/gnome-contacts/fix_row_selected.patch)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-control-center/default.nix (renamed from pkgs/desktops/gnome-3/core/gnome-control-center/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-control-center/search_providers_dir.patch (renamed from pkgs/desktops/gnome-3/core/gnome-control-center/search_providers_dir.patch)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-desktop/default.nix (renamed from pkgs/desktops/gnome-3/core/gnome-desktop/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-dictionary/default.nix (renamed from pkgs/desktops/gnome-3/core/gnome-dictionary/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-disk-utility/default.nix (renamed from pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-font-viewer/default.nix (renamed from pkgs/desktops/gnome-3/core/gnome-font-viewer/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-icon-theme-symbolic/default.nix (renamed from pkgs/desktops/gnome-3/core/gnome-icon-theme-symbolic/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-icon-theme/default.nix (renamed from pkgs/desktops/gnome-3/core/gnome-icon-theme/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-icon-theme/setup-hook.sh (renamed from pkgs/desktops/gnome-3/core/gnome-icon-theme/setup-hook.sh)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-keyring/default.nix (renamed from pkgs/desktops/gnome-3/core/gnome-keyring/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-menus/default.nix (renamed from pkgs/desktops/gnome-3/core/gnome-menus/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-online-accounts/default.nix (renamed from pkgs/desktops/gnome-3/core/gnome-online-accounts/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-online-miners/default.nix (renamed from pkgs/desktops/gnome-3/core/gnome-online-miners/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-screenshot/default.nix (renamed from pkgs/desktops/gnome-3/core/gnome-screenshot/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-session/default.nix (renamed from pkgs/desktops/gnome-3/core/gnome-session/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-settings-daemon/default.nix (renamed from pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-shell-extensions/default.nix (renamed from pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-shell/default.nix (renamed from pkgs/desktops/gnome-3/core/gnome-shell/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-shell/fix_background_corruption.patch (renamed from pkgs/desktops/gnome-3/core/gnome-shell/fix_background_corruption.patch)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-system-log/default.nix (renamed from pkgs/desktops/gnome-3/core/gnome-system-log/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-system-monitor/default.nix (renamed from pkgs/desktops/gnome-3/core/gnome-system-monitor/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-terminal/default.nix (renamed from pkgs/desktops/gnome-3/core/gnome-terminal/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-themes-standard/default.nix (renamed from pkgs/desktops/gnome-3/core/gnome-themes-standard/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-user-docs/default.nix (renamed from pkgs/desktops/gnome-3/core/gnome-user-docs/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gnome-user-share/default.nix (renamed from pkgs/desktops/gnome-3/core/gnome-user-share/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/grilo-plugins/default.nix (renamed from pkgs/desktops/gnome-3/core/grilo-plugins/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/grilo/default.nix (renamed from pkgs/desktops/gnome-3/core/grilo/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gsettings-desktop-schemas/default.nix (renamed from pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gtksourceview/default.nix (renamed from pkgs/desktops/gnome-3/core/gtksourceview/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/gucharmap/default.nix (renamed from pkgs/desktops/gnome-3/core/gucharmap/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/libcroco/default.nix (renamed from pkgs/desktops/gnome-3/core/libcroco/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/libgdata/default.nix (renamed from pkgs/desktops/gnome-3/core/libgdata/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/libgee/default.nix (renamed from pkgs/desktops/gnome-3/core/libgee/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/libgee/fix_introspection_paths.patch (renamed from pkgs/desktops/gnome-3/core/libgee/fix_introspection_paths.patch)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/libgnome-keyring/default.nix (renamed from pkgs/desktops/gnome-3/core/libgnome-keyring/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/libgnomekbd/default.nix (renamed from pkgs/desktops/gnome-3/core/libgnomekbd/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/libgweather/default.nix (renamed from pkgs/desktops/gnome-3/core/libgweather/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/libgxps/default.nix (renamed from pkgs/desktops/gnome-3/core/libgxps/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/libpeas/default.nix (renamed from pkgs/desktops/gnome-3/core/libpeas/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/libzapojit/default.nix (renamed from pkgs/desktops/gnome-3/core/libzapojit/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/mutter/default.nix (renamed from pkgs/desktops/gnome-3/core/mutter/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/nautilus/default.nix (renamed from pkgs/desktops/gnome-3/core/nautilus/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/rest/default.nix (renamed from pkgs/desktops/gnome-3/core/rest/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/sushi/default.nix (renamed from pkgs/desktops/gnome-3/core/sushi/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/totem-pl-parser/default.nix (renamed from pkgs/desktops/gnome-3/core/totem-pl-parser/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/totem/default.nix (renamed from pkgs/desktops/gnome-3/core/totem/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/tracker/default.nix (renamed from pkgs/desktops/gnome-3/core/tracker/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/vino/default.nix (renamed from pkgs/desktops/gnome-3/core/vino/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/vte/default.nix (renamed from pkgs/desktops/gnome-3/core/vte/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/yelp-tools/default.nix (renamed from pkgs/desktops/gnome-3/core/yelp-tools/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/yelp-xsl/default.nix (renamed from pkgs/desktops/gnome-3/core/yelp-xsl/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/yelp/default.nix (renamed from pkgs/desktops/gnome-3/core/yelp/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/zenity/default.nix (renamed from pkgs/desktops/gnome-3/core/zenity/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/default.nix (renamed from pkgs/desktops/gnome-3/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/desktop/rarian/default.nix (renamed from pkgs/desktops/gnome-3/desktop/rarian/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/misc/gexiv2/default.nix (renamed from pkgs/desktops/gnome-3/misc/gexiv2/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/misc/gfbgraph/default.nix (renamed from pkgs/desktops/gnome-3/misc/gfbgraph/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/misc/gitg/default.nix (renamed from pkgs/desktops/gnome-3/misc/gitg/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/misc/gnome-tweak-tool/default.nix (renamed from pkgs/desktops/gnome-3/misc/gnome-tweak-tool/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/misc/gnome-tweak-tool/find_gsettings.patch (renamed from pkgs/desktops/gnome-3/misc/gnome-tweak-tool/find_gsettings.patch)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/misc/goffice/0.8.nix (renamed from pkgs/desktops/gnome-3/misc/goffice/0.8.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/misc/goffice/default.nix (renamed from pkgs/desktops/gnome-3/misc/goffice/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/misc/goffice/pcre_info.patch (renamed from pkgs/desktops/gnome-3/misc/goffice/pcre_info.patch)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/misc/gtkhtml/default.nix (renamed from pkgs/desktops/gnome-3/misc/gtkhtml/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/misc/libgit2-glib/default.nix (renamed from pkgs/desktops/gnome-3/misc/libgit2-glib/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.10/misc/libmediaart/default.nix (renamed from pkgs/desktops/gnome-3/misc/libmediaart/default.nix)0
-rw-r--r--pkgs/desktops/gnome-3/3.12/apps/bijiben/default.nix41
-rw-r--r--pkgs/desktops/gnome-3/3.12/apps/evolution/default.nix48
-rw-r--r--pkgs/desktops/gnome-3/3.12/apps/file-roller/default.nix30
-rw-r--r--pkgs/desktops/gnome-3/3.12/apps/gedit/default.nix39
-rw-r--r--pkgs/desktops/gnome-3/3.12/apps/glade/default.nix37
-rw-r--r--pkgs/desktops/gnome-3/3.12/apps/gnome-clocks/default.nix41
-rw-r--r--pkgs/desktops/gnome-3/3.12/apps/gnome-documents/default.nix54
-rw-r--r--pkgs/desktops/gnome-3/3.12/apps/gnome-music/default.nix54
-rw-r--r--pkgs/desktops/gnome-3/3.12/apps/gnome-photos/default.nix44
-rw-r--r--pkgs/desktops/gnome-3/3.12/apps/seahorse/default.nix41
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/at-spi2-atk/default.nix21
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/at-spi2-core/default.nix32
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/baobab/default.nix42
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/caribou/default.nix27
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/dconf/default.nix28
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/empathy/default.nix56
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/eog/default.nix31
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/epiphany/default.nix48
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/evince/default.nix70
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/evolution-data-server/default.nix32
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/folks/default.nix40
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/gconf/default.nix30
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/gcr/default.nix28
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/gdm/default.nix18
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/geocode-glib/default.nix20
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/gjs/default.nix21
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/gnome-backgrounds/default.nix16
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/gnome-calculator/default.nix36
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/gnome-common/default.nix17
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/gnome-contacts/configure_dbus_glib.patch10
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/gnome-contacts/default.nix51
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/gnome-contacts/fix_row_selected.patch11
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/gnome-control-center/default.nix62
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/gnome-control-center/search_providers_dir.patch17
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/gnome-desktop/default.nix27
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/gnome-dictionary/default.nix38
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/gnome-disk-utility/default.nix42
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/gnome-font-viewer/default.nix37
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/gnome-icon-theme-symbolic/default.nix24
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/gnome-icon-theme/default.nix18
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/gnome-icon-theme/setup-hook.sh10
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/gnome-keyring/default.nix38
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/gnome-menus/default.nix24
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/gnome-online-accounts/default.nix22
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/gnome-online-miners/default.nix35
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/gnome-screenshot/default.nix37
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/gnome-session/default.nix30
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/gnome-settings-daemon/default.nix34
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/gnome-shell-extensions/default.nix26
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/gnome-shell/default.nix48
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/gnome-shell/fix_background_corruption.patch147
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/gnome-system-log/default.nix38
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/gnome-system-monitor/default.nix38
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/gnome-terminal/default.nix31
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/gnome-themes-standard/default.nix15
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/gnome-user-docs/default.nix20
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/gnome-user-share/default.nix52
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/grilo-plugins/default.nix27
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/grilo/default.nix31
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/gsettings-desktop-schemas/default.nix30
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/gtksourceview/default.nix19
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/gucharmap/default.nix40
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/libcroco/default.nix18
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/libgdata/default.nix25
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/libgee/default.nix25
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/libgee/fix_introspection_paths.patch13
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/libgnome-keyring/default.nix26
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/libgnomekbd/default.nix24
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/libgweather/default.nix21
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/libgxps/default.nix20
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/libpeas/default.nix29
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/libzapojit/default.nix16
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/mutter/default.nix33
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/nautilus/default.nix28
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/rest/default.nix18
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/sushi/default.nix38
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/totem-pl-parser/default.nix20
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/totem/default.nix49
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/tracker/default.nix49
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/vino/default.nix31
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/vte/default.nix35
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/yelp-tools/default.nix22
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/yelp-xsl/default.nix23
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/yelp/default.nix36
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/zenity/default.nix23
-rw-r--r--pkgs/desktops/gnome-3/3.12/default.nix198
-rw-r--r--pkgs/desktops/gnome-3/3.12/desktop/rarian/default.nix16
-rw-r--r--pkgs/desktops/gnome-3/3.12/misc/gexiv2/default.nix25
-rw-r--r--pkgs/desktops/gnome-3/3.12/misc/gfbgraph/default.nix23
-rw-r--r--pkgs/desktops/gnome-3/3.12/misc/gitg/default.nix46
-rw-r--r--pkgs/desktops/gnome-3/3.12/misc/gnome-tweak-tool/default.nix46
-rw-r--r--pkgs/desktops/gnome-3/3.12/misc/gnome-tweak-tool/find_gsettings.patch22
-rw-r--r--pkgs/desktops/gnome-3/3.12/misc/goffice/0.8.nix37
-rw-r--r--pkgs/desktops/gnome-3/3.12/misc/goffice/default.nix36
-rw-r--r--pkgs/desktops/gnome-3/3.12/misc/goffice/pcre_info.patch13
-rw-r--r--pkgs/desktops/gnome-3/3.12/misc/gtkhtml/default.nix17
-rw-r--r--pkgs/desktops/gnome-3/3.12/misc/libgit2-glib/default.nix21
-rw-r--r--pkgs/desktops/gnome-3/3.12/misc/libmediaart/default.nix19
196 files changed, 3312 insertions, 0 deletions
diff --git a/pkgs/desktops/gnome-3/apps/bijiben/default.nix b/pkgs/desktops/gnome-3/3.10/apps/bijiben/default.nix
index ef460112d21..ef460112d21 100644
--- a/pkgs/desktops/gnome-3/apps/bijiben/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/apps/bijiben/default.nix
diff --git a/pkgs/desktops/gnome-3/apps/evolution/default.nix b/pkgs/desktops/gnome-3/3.10/apps/evolution/default.nix
index ee62c951b4c..ee62c951b4c 100644
--- a/pkgs/desktops/gnome-3/apps/evolution/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/apps/evolution/default.nix
diff --git a/pkgs/desktops/gnome-3/apps/file-roller/default.nix b/pkgs/desktops/gnome-3/3.10/apps/file-roller/default.nix
index e13e169ccc5..e13e169ccc5 100644
--- a/pkgs/desktops/gnome-3/apps/file-roller/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/apps/file-roller/default.nix
diff --git a/pkgs/desktops/gnome-3/apps/gedit/default.nix b/pkgs/desktops/gnome-3/3.10/apps/gedit/default.nix
index 84a77e5a024..84a77e5a024 100644
--- a/pkgs/desktops/gnome-3/apps/gedit/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/apps/gedit/default.nix
diff --git a/pkgs/desktops/gnome-3/apps/glade/default.nix b/pkgs/desktops/gnome-3/3.10/apps/glade/default.nix
index 5979d10fa70..5979d10fa70 100644
--- a/pkgs/desktops/gnome-3/apps/glade/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/apps/glade/default.nix
diff --git a/pkgs/desktops/gnome-3/apps/gnome-clocks/default.nix b/pkgs/desktops/gnome-3/3.10/apps/gnome-clocks/default.nix
index c39f731e028..c39f731e028 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-clocks/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/apps/gnome-clocks/default.nix
diff --git a/pkgs/desktops/gnome-3/apps/gnome-documents/default.nix b/pkgs/desktops/gnome-3/3.10/apps/gnome-documents/default.nix
index b393bb43931..b393bb43931 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-documents/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/apps/gnome-documents/default.nix
diff --git a/pkgs/desktops/gnome-3/apps/gnome-music/default.nix b/pkgs/desktops/gnome-3/3.10/apps/gnome-music/default.nix
index b8d2bbc79ef..b8d2bbc79ef 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-music/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/apps/gnome-music/default.nix
diff --git a/pkgs/desktops/gnome-3/apps/gnome-photos/default.nix b/pkgs/desktops/gnome-3/3.10/apps/gnome-photos/default.nix
index 68d4e3690f9..68d4e3690f9 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-photos/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/apps/gnome-photos/default.nix
diff --git a/pkgs/desktops/gnome-3/apps/seahorse/default.nix b/pkgs/desktops/gnome-3/3.10/apps/seahorse/default.nix
index cecc4a8913d..cecc4a8913d 100644
--- a/pkgs/desktops/gnome-3/apps/seahorse/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/apps/seahorse/default.nix
diff --git a/pkgs/desktops/gnome-3/core/at-spi2-atk/default.nix b/pkgs/desktops/gnome-3/3.10/core/at-spi2-atk/default.nix
index fc0c4f2a6bc..fc0c4f2a6bc 100644
--- a/pkgs/desktops/gnome-3/core/at-spi2-atk/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/at-spi2-atk/default.nix
diff --git a/pkgs/desktops/gnome-3/core/at-spi2-core/default.nix b/pkgs/desktops/gnome-3/3.10/core/at-spi2-core/default.nix
index d60a0ff7480..d60a0ff7480 100644
--- a/pkgs/desktops/gnome-3/core/at-spi2-core/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/at-spi2-core/default.nix
diff --git a/pkgs/desktops/gnome-3/core/baobab/default.nix b/pkgs/desktops/gnome-3/3.10/core/baobab/default.nix
index 9381f45105d..9381f45105d 100644
--- a/pkgs/desktops/gnome-3/core/baobab/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/baobab/default.nix
diff --git a/pkgs/desktops/gnome-3/core/caribou/default.nix b/pkgs/desktops/gnome-3/3.10/core/caribou/default.nix
index 41a997c1f71..41a997c1f71 100644
--- a/pkgs/desktops/gnome-3/core/caribou/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/caribou/default.nix
diff --git a/pkgs/desktops/gnome-3/core/dconf/default.nix b/pkgs/desktops/gnome-3/3.10/core/dconf/default.nix
index a6236f16744..a6236f16744 100644
--- a/pkgs/desktops/gnome-3/core/dconf/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/dconf/default.nix
diff --git a/pkgs/desktops/gnome-3/core/empathy/default.nix b/pkgs/desktops/gnome-3/3.10/core/empathy/default.nix
index 051bc9b7fb2..051bc9b7fb2 100644
--- a/pkgs/desktops/gnome-3/core/empathy/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/empathy/default.nix
diff --git a/pkgs/desktops/gnome-3/core/eog/default.nix b/pkgs/desktops/gnome-3/3.10/core/eog/default.nix
index 57f19dcaa32..57f19dcaa32 100644
--- a/pkgs/desktops/gnome-3/core/eog/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/eog/default.nix
diff --git a/pkgs/desktops/gnome-3/core/epiphany/default.nix b/pkgs/desktops/gnome-3/3.10/core/epiphany/default.nix
index 9df3a7ed01e..9df3a7ed01e 100644
--- a/pkgs/desktops/gnome-3/core/epiphany/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/epiphany/default.nix
diff --git a/pkgs/desktops/gnome-3/core/evince/default.nix b/pkgs/desktops/gnome-3/3.10/core/evince/default.nix
index 4b50840534c..4b50840534c 100644
--- a/pkgs/desktops/gnome-3/core/evince/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/evince/default.nix
diff --git a/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix b/pkgs/desktops/gnome-3/3.10/core/evolution-data-server/default.nix
index 685f8c24e7c..685f8c24e7c 100644
--- a/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/evolution-data-server/default.nix
diff --git a/pkgs/desktops/gnome-3/core/folks/default.nix b/pkgs/desktops/gnome-3/3.10/core/folks/default.nix
index 12518c634c4..12518c634c4 100644
--- a/pkgs/desktops/gnome-3/core/folks/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/folks/default.nix
diff --git a/pkgs/desktops/gnome-3/core/gconf/default.nix b/pkgs/desktops/gnome-3/3.10/core/gconf/default.nix
index 47dae0486e9..47dae0486e9 100644
--- a/pkgs/desktops/gnome-3/core/gconf/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/gconf/default.nix
diff --git a/pkgs/desktops/gnome-3/core/gcr/default.nix b/pkgs/desktops/gnome-3/3.10/core/gcr/default.nix
index a1fdd471282..a1fdd471282 100644
--- a/pkgs/desktops/gnome-3/core/gcr/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/gcr/default.nix
diff --git a/pkgs/desktops/gnome-3/core/gdm/default.nix b/pkgs/desktops/gnome-3/3.10/core/gdm/default.nix
index 3df5ab40eaf..3df5ab40eaf 100644
--- a/pkgs/desktops/gnome-3/core/gdm/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/gdm/default.nix
diff --git a/pkgs/desktops/gnome-3/core/geocode-glib/default.nix b/pkgs/desktops/gnome-3/3.10/core/geocode-glib/default.nix
index d3b21bef167..d3b21bef167 100644
--- a/pkgs/desktops/gnome-3/core/geocode-glib/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/geocode-glib/default.nix
diff --git a/pkgs/desktops/gnome-3/core/gjs/default.nix b/pkgs/desktops/gnome-3/3.10/core/gjs/default.nix
index 429d147e728..429d147e728 100644
--- a/pkgs/desktops/gnome-3/core/gjs/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/gjs/default.nix
diff --git a/pkgs/desktops/gnome-3/core/gnome-backgrounds/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-backgrounds/default.nix
index 3879b81859a..3879b81859a 100644
--- a/pkgs/desktops/gnome-3/core/gnome-backgrounds/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-backgrounds/default.nix
diff --git a/pkgs/desktops/gnome-3/core/gnome-calculator/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-calculator/default.nix
index 205961a9171..205961a9171 100644
--- a/pkgs/desktops/gnome-3/core/gnome-calculator/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-calculator/default.nix
diff --git a/pkgs/desktops/gnome-3/core/gnome-common/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-common/default.nix
index 12b2510dc43..12b2510dc43 100644
--- a/pkgs/desktops/gnome-3/core/gnome-common/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-common/default.nix
diff --git a/pkgs/desktops/gnome-3/core/gnome-contacts/configure_dbus_glib.patch b/pkgs/desktops/gnome-3/3.10/core/gnome-contacts/configure_dbus_glib.patch
index 926762defbd..926762defbd 100644
--- a/pkgs/desktops/gnome-3/core/gnome-contacts/configure_dbus_glib.patch
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-contacts/configure_dbus_glib.patch
diff --git a/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-contacts/default.nix
index f8059f952e6..f8059f952e6 100644
--- a/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-contacts/default.nix
diff --git a/pkgs/desktops/gnome-3/core/gnome-contacts/fix_row_selected.patch b/pkgs/desktops/gnome-3/3.10/core/gnome-contacts/fix_row_selected.patch
index b379b4b8ee9..b379b4b8ee9 100644
--- a/pkgs/desktops/gnome-3/core/gnome-contacts/fix_row_selected.patch
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-contacts/fix_row_selected.patch
diff --git a/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-control-center/default.nix
index 1222f03d66e..1222f03d66e 100644
--- a/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-control-center/default.nix
diff --git a/pkgs/desktops/gnome-3/core/gnome-control-center/search_providers_dir.patch b/pkgs/desktops/gnome-3/3.10/core/gnome-control-center/search_providers_dir.patch
index 7f5ad970f34..7f5ad970f34 100644
--- a/pkgs/desktops/gnome-3/core/gnome-control-center/search_providers_dir.patch
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-control-center/search_providers_dir.patch
diff --git a/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-desktop/default.nix
index 584705d658e..584705d658e 100644
--- a/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-desktop/default.nix
diff --git a/pkgs/desktops/gnome-3/core/gnome-dictionary/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-dictionary/default.nix
index 6f68916b781..6f68916b781 100644
--- a/pkgs/desktops/gnome-3/core/gnome-dictionary/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-dictionary/default.nix
diff --git a/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-disk-utility/default.nix
index 334471c2943..334471c2943 100644
--- a/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-disk-utility/default.nix
diff --git a/pkgs/desktops/gnome-3/core/gnome-font-viewer/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-font-viewer/default.nix
index cba651ca36a..cba651ca36a 100644
--- a/pkgs/desktops/gnome-3/core/gnome-font-viewer/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-font-viewer/default.nix
diff --git a/pkgs/desktops/gnome-3/core/gnome-icon-theme-symbolic/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-icon-theme-symbolic/default.nix
index feb3d84b994..feb3d84b994 100644
--- a/pkgs/desktops/gnome-3/core/gnome-icon-theme-symbolic/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-icon-theme-symbolic/default.nix
diff --git a/pkgs/desktops/gnome-3/core/gnome-icon-theme/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-icon-theme/default.nix
index 5b16f827ae0..5b16f827ae0 100644
--- a/pkgs/desktops/gnome-3/core/gnome-icon-theme/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-icon-theme/default.nix
diff --git a/pkgs/desktops/gnome-3/core/gnome-icon-theme/setup-hook.sh b/pkgs/desktops/gnome-3/3.10/core/gnome-icon-theme/setup-hook.sh
index d7156f3d463..d7156f3d463 100644
--- a/pkgs/desktops/gnome-3/core/gnome-icon-theme/setup-hook.sh
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-icon-theme/setup-hook.sh
diff --git a/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-keyring/default.nix
index dbb8da93c6c..dbb8da93c6c 100644
--- a/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-keyring/default.nix
diff --git a/pkgs/desktops/gnome-3/core/gnome-menus/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-menus/default.nix
index 37d2ea1c086..37d2ea1c086 100644
--- a/pkgs/desktops/gnome-3/core/gnome-menus/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-menus/default.nix
diff --git a/pkgs/desktops/gnome-3/core/gnome-online-accounts/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-online-accounts/default.nix
index 8c459435733..8c459435733 100644
--- a/pkgs/desktops/gnome-3/core/gnome-online-accounts/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-online-accounts/default.nix
diff --git a/pkgs/desktops/gnome-3/core/gnome-online-miners/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-online-miners/default.nix
index 4c904bf40f6..4c904bf40f6 100644
--- a/pkgs/desktops/gnome-3/core/gnome-online-miners/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-online-miners/default.nix
diff --git a/pkgs/desktops/gnome-3/core/gnome-screenshot/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-screenshot/default.nix
index 7b94d0f9027..7b94d0f9027 100644
--- a/pkgs/desktops/gnome-3/core/gnome-screenshot/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-screenshot/default.nix
diff --git a/pkgs/desktops/gnome-3/core/gnome-session/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-session/default.nix
index f999702af54..f999702af54 100644
--- a/pkgs/desktops/gnome-3/core/gnome-session/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-session/default.nix
diff --git a/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-settings-daemon/default.nix
index 7a50b8db56f..7a50b8db56f 100644
--- a/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-settings-daemon/default.nix
diff --git a/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-shell-extensions/default.nix
index 00974edb1db..00974edb1db 100644
--- a/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-shell-extensions/default.nix
diff --git a/pkgs/desktops/gnome-3/core/gnome-shell/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-shell/default.nix
index 554b09a1e59..554b09a1e59 100644
--- a/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-shell/default.nix
diff --git a/pkgs/desktops/gnome-3/core/gnome-shell/fix_background_corruption.patch b/pkgs/desktops/gnome-3/3.10/core/gnome-shell/fix_background_corruption.patch
index 9cb041bcce2..9cb041bcce2 100644
--- a/pkgs/desktops/gnome-3/core/gnome-shell/fix_background_corruption.patch
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-shell/fix_background_corruption.patch
diff --git a/pkgs/desktops/gnome-3/core/gnome-system-log/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-system-log/default.nix
index cdc4b732b97..cdc4b732b97 100644
--- a/pkgs/desktops/gnome-3/core/gnome-system-log/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-system-log/default.nix
diff --git a/pkgs/desktops/gnome-3/core/gnome-system-monitor/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-system-monitor/default.nix
index 91fbe67957f..91fbe67957f 100644
--- a/pkgs/desktops/gnome-3/core/gnome-system-monitor/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-system-monitor/default.nix
diff --git a/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-terminal/default.nix
index 541db5720db..541db5720db 100644
--- a/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-terminal/default.nix
diff --git a/pkgs/desktops/gnome-3/core/gnome-themes-standard/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-themes-standard/default.nix
index 08d82b7ae91..08d82b7ae91 100644
--- a/pkgs/desktops/gnome-3/core/gnome-themes-standard/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-themes-standard/default.nix
diff --git a/pkgs/desktops/gnome-3/core/gnome-user-docs/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-user-docs/default.nix
index d66863a2218..d66863a2218 100644
--- a/pkgs/desktops/gnome-3/core/gnome-user-docs/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-user-docs/default.nix
diff --git a/pkgs/desktops/gnome-3/core/gnome-user-share/default.nix b/pkgs/desktops/gnome-3/3.10/core/gnome-user-share/default.nix
index 976b0eaca45..976b0eaca45 100644
--- a/pkgs/desktops/gnome-3/core/gnome-user-share/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/gnome-user-share/default.nix
diff --git a/pkgs/desktops/gnome-3/core/grilo-plugins/default.nix b/pkgs/desktops/gnome-3/3.10/core/grilo-plugins/default.nix
index a8a1c244767..a8a1c244767 100644
--- a/pkgs/desktops/gnome-3/core/grilo-plugins/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/grilo-plugins/default.nix
diff --git a/pkgs/desktops/gnome-3/core/grilo/default.nix b/pkgs/desktops/gnome-3/3.10/core/grilo/default.nix
index 6f1bfbbcfe9..6f1bfbbcfe9 100644
--- a/pkgs/desktops/gnome-3/core/grilo/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/grilo/default.nix
diff --git a/pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix b/pkgs/desktops/gnome-3/3.10/core/gsettings-desktop-schemas/default.nix
index 13f357db29a..13f357db29a 100644
--- a/pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/gsettings-desktop-schemas/default.nix
diff --git a/pkgs/desktops/gnome-3/core/gtksourceview/default.nix b/pkgs/desktops/gnome-3/3.10/core/gtksourceview/default.nix
index 900bb2c922b..900bb2c922b 100644
--- a/pkgs/desktops/gnome-3/core/gtksourceview/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/gtksourceview/default.nix
diff --git a/pkgs/desktops/gnome-3/core/gucharmap/default.nix b/pkgs/desktops/gnome-3/3.10/core/gucharmap/default.nix
index a6bf72b2fc7..a6bf72b2fc7 100644
--- a/pkgs/desktops/gnome-3/core/gucharmap/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/gucharmap/default.nix
diff --git a/pkgs/desktops/gnome-3/core/libcroco/default.nix b/pkgs/desktops/gnome-3/3.10/core/libcroco/default.nix
index e5f6a0aa9b8..e5f6a0aa9b8 100644
--- a/pkgs/desktops/gnome-3/core/libcroco/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/libcroco/default.nix
diff --git a/pkgs/desktops/gnome-3/core/libgdata/default.nix b/pkgs/desktops/gnome-3/3.10/core/libgdata/default.nix
index 9a1a45e0d1a..9a1a45e0d1a 100644
--- a/pkgs/desktops/gnome-3/core/libgdata/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/libgdata/default.nix
diff --git a/pkgs/desktops/gnome-3/core/libgee/default.nix b/pkgs/desktops/gnome-3/3.10/core/libgee/default.nix
index c7ed541082d..c7ed541082d 100644
--- a/pkgs/desktops/gnome-3/core/libgee/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/libgee/default.nix
diff --git a/pkgs/desktops/gnome-3/core/libgee/fix_introspection_paths.patch b/pkgs/desktops/gnome-3/3.10/core/libgee/fix_introspection_paths.patch
index 67003f45164..67003f45164 100644
--- a/pkgs/desktops/gnome-3/core/libgee/fix_introspection_paths.patch
+++ b/pkgs/desktops/gnome-3/3.10/core/libgee/fix_introspection_paths.patch
diff --git a/pkgs/desktops/gnome-3/core/libgnome-keyring/default.nix b/pkgs/desktops/gnome-3/3.10/core/libgnome-keyring/default.nix
index 28c7b80c0d4..28c7b80c0d4 100644
--- a/pkgs/desktops/gnome-3/core/libgnome-keyring/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/libgnome-keyring/default.nix
diff --git a/pkgs/desktops/gnome-3/core/libgnomekbd/default.nix b/pkgs/desktops/gnome-3/3.10/core/libgnomekbd/default.nix
index 1156474e5a7..1156474e5a7 100644
--- a/pkgs/desktops/gnome-3/core/libgnomekbd/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/libgnomekbd/default.nix
diff --git a/pkgs/desktops/gnome-3/core/libgweather/default.nix b/pkgs/desktops/gnome-3/3.10/core/libgweather/default.nix
index c480a59e453..c480a59e453 100644
--- a/pkgs/desktops/gnome-3/core/libgweather/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/libgweather/default.nix
diff --git a/pkgs/desktops/gnome-3/core/libgxps/default.nix b/pkgs/desktops/gnome-3/3.10/core/libgxps/default.nix
index 72d307f4f1a..72d307f4f1a 100644
--- a/pkgs/desktops/gnome-3/core/libgxps/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/libgxps/default.nix
diff --git a/pkgs/desktops/gnome-3/core/libpeas/default.nix b/pkgs/desktops/gnome-3/3.10/core/libpeas/default.nix
index 9cf8426104b..9cf8426104b 100644
--- a/pkgs/desktops/gnome-3/core/libpeas/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/libpeas/default.nix
diff --git a/pkgs/desktops/gnome-3/core/libzapojit/default.nix b/pkgs/desktops/gnome-3/3.10/core/libzapojit/default.nix
index e0e4c02c084..e0e4c02c084 100644
--- a/pkgs/desktops/gnome-3/core/libzapojit/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/libzapojit/default.nix
diff --git a/pkgs/desktops/gnome-3/core/mutter/default.nix b/pkgs/desktops/gnome-3/3.10/core/mutter/default.nix
index 0acfa9f36ae..0acfa9f36ae 100644
--- a/pkgs/desktops/gnome-3/core/mutter/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/mutter/default.nix
diff --git a/pkgs/desktops/gnome-3/core/nautilus/default.nix b/pkgs/desktops/gnome-3/3.10/core/nautilus/default.nix
index 2041a71a82c..2041a71a82c 100644
--- a/pkgs/desktops/gnome-3/core/nautilus/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/nautilus/default.nix
diff --git a/pkgs/desktops/gnome-3/core/rest/default.nix b/pkgs/desktops/gnome-3/3.10/core/rest/default.nix
index f543f8e13b8..f543f8e13b8 100644
--- a/pkgs/desktops/gnome-3/core/rest/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/rest/default.nix
diff --git a/pkgs/desktops/gnome-3/core/sushi/default.nix b/pkgs/desktops/gnome-3/3.10/core/sushi/default.nix
index 089b5cd03c1..089b5cd03c1 100644
--- a/pkgs/desktops/gnome-3/core/sushi/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/sushi/default.nix
diff --git a/pkgs/desktops/gnome-3/core/totem-pl-parser/default.nix b/pkgs/desktops/gnome-3/3.10/core/totem-pl-parser/default.nix
index f1b3bfe53c1..f1b3bfe53c1 100644
--- a/pkgs/desktops/gnome-3/core/totem-pl-parser/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/totem-pl-parser/default.nix
diff --git a/pkgs/desktops/gnome-3/core/totem/default.nix b/pkgs/desktops/gnome-3/3.10/core/totem/default.nix
index c6b78c827db..c6b78c827db 100644
--- a/pkgs/desktops/gnome-3/core/totem/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/totem/default.nix
diff --git a/pkgs/desktops/gnome-3/core/tracker/default.nix b/pkgs/desktops/gnome-3/3.10/core/tracker/default.nix
index dbae108d2e9..dbae108d2e9 100644
--- a/pkgs/desktops/gnome-3/core/tracker/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/tracker/default.nix
diff --git a/pkgs/desktops/gnome-3/core/vino/default.nix b/pkgs/desktops/gnome-3/3.10/core/vino/default.nix
index 65668dce6a2..65668dce6a2 100644
--- a/pkgs/desktops/gnome-3/core/vino/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/vino/default.nix
diff --git a/pkgs/desktops/gnome-3/core/vte/default.nix b/pkgs/desktops/gnome-3/3.10/core/vte/default.nix
index d98ddc716de..d98ddc716de 100644
--- a/pkgs/desktops/gnome-3/core/vte/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/vte/default.nix
diff --git a/pkgs/desktops/gnome-3/core/yelp-tools/default.nix b/pkgs/desktops/gnome-3/3.10/core/yelp-tools/default.nix
index 39ff3838f4a..39ff3838f4a 100644
--- a/pkgs/desktops/gnome-3/core/yelp-tools/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/yelp-tools/default.nix
diff --git a/pkgs/desktops/gnome-3/core/yelp-xsl/default.nix b/pkgs/desktops/gnome-3/3.10/core/yelp-xsl/default.nix
index c5060bdba75..c5060bdba75 100644
--- a/pkgs/desktops/gnome-3/core/yelp-xsl/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/yelp-xsl/default.nix
diff --git a/pkgs/desktops/gnome-3/core/yelp/default.nix b/pkgs/desktops/gnome-3/3.10/core/yelp/default.nix
index b58aa99721e..b58aa99721e 100644
--- a/pkgs/desktops/gnome-3/core/yelp/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/yelp/default.nix
diff --git a/pkgs/desktops/gnome-3/core/zenity/default.nix b/pkgs/desktops/gnome-3/3.10/core/zenity/default.nix
index 366088c6729..366088c6729 100644
--- a/pkgs/desktops/gnome-3/core/zenity/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/zenity/default.nix
diff --git a/pkgs/desktops/gnome-3/default.nix b/pkgs/desktops/gnome-3/3.10/default.nix
index 2cb28e0c307..2cb28e0c307 100644
--- a/pkgs/desktops/gnome-3/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/default.nix
diff --git a/pkgs/desktops/gnome-3/desktop/rarian/default.nix b/pkgs/desktops/gnome-3/3.10/desktop/rarian/default.nix
index a1b38b21869..a1b38b21869 100644
--- a/pkgs/desktops/gnome-3/desktop/rarian/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/desktop/rarian/default.nix
diff --git a/pkgs/desktops/gnome-3/misc/gexiv2/default.nix b/pkgs/desktops/gnome-3/3.10/misc/gexiv2/default.nix
index 86942c13f34..86942c13f34 100644
--- a/pkgs/desktops/gnome-3/misc/gexiv2/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/misc/gexiv2/default.nix
diff --git a/pkgs/desktops/gnome-3/misc/gfbgraph/default.nix b/pkgs/desktops/gnome-3/3.10/misc/gfbgraph/default.nix
index ee8259af8d6..ee8259af8d6 100644
--- a/pkgs/desktops/gnome-3/misc/gfbgraph/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/misc/gfbgraph/default.nix
diff --git a/pkgs/desktops/gnome-3/misc/gitg/default.nix b/pkgs/desktops/gnome-3/3.10/misc/gitg/default.nix
index 7ca35a8255f..7ca35a8255f 100644
--- a/pkgs/desktops/gnome-3/misc/gitg/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/misc/gitg/default.nix
diff --git a/pkgs/desktops/gnome-3/misc/gnome-tweak-tool/default.nix b/pkgs/desktops/gnome-3/3.10/misc/gnome-tweak-tool/default.nix
index 2eccb9a32cf..2eccb9a32cf 100644
--- a/pkgs/desktops/gnome-3/misc/gnome-tweak-tool/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/misc/gnome-tweak-tool/default.nix
diff --git a/pkgs/desktops/gnome-3/misc/gnome-tweak-tool/find_gsettings.patch b/pkgs/desktops/gnome-3/3.10/misc/gnome-tweak-tool/find_gsettings.patch
index 3e68c04cb3a..3e68c04cb3a 100644
--- a/pkgs/desktops/gnome-3/misc/gnome-tweak-tool/find_gsettings.patch
+++ b/pkgs/desktops/gnome-3/3.10/misc/gnome-tweak-tool/find_gsettings.patch
diff --git a/pkgs/desktops/gnome-3/misc/goffice/0.8.nix b/pkgs/desktops/gnome-3/3.10/misc/goffice/0.8.nix
index 02520a9f121..02520a9f121 100644
--- a/pkgs/desktops/gnome-3/misc/goffice/0.8.nix
+++ b/pkgs/desktops/gnome-3/3.10/misc/goffice/0.8.nix
diff --git a/pkgs/desktops/gnome-3/misc/goffice/default.nix b/pkgs/desktops/gnome-3/3.10/misc/goffice/default.nix
index 0390fc13368..0390fc13368 100644
--- a/pkgs/desktops/gnome-3/misc/goffice/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/misc/goffice/default.nix
diff --git a/pkgs/desktops/gnome-3/misc/goffice/pcre_info.patch b/pkgs/desktops/gnome-3/3.10/misc/goffice/pcre_info.patch
index cd4ef3c9fed..cd4ef3c9fed 100644
--- a/pkgs/desktops/gnome-3/misc/goffice/pcre_info.patch
+++ b/pkgs/desktops/gnome-3/3.10/misc/goffice/pcre_info.patch
diff --git a/pkgs/desktops/gnome-3/misc/gtkhtml/default.nix b/pkgs/desktops/gnome-3/3.10/misc/gtkhtml/default.nix
index 5e27b474cbd..5e27b474cbd 100644
--- a/pkgs/desktops/gnome-3/misc/gtkhtml/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/misc/gtkhtml/default.nix
diff --git a/pkgs/desktops/gnome-3/misc/libgit2-glib/default.nix b/pkgs/desktops/gnome-3/3.10/misc/libgit2-glib/default.nix
index 17c3b4fa0a8..17c3b4fa0a8 100644
--- a/pkgs/desktops/gnome-3/misc/libgit2-glib/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/misc/libgit2-glib/default.nix
diff --git a/pkgs/desktops/gnome-3/misc/libmediaart/default.nix b/pkgs/desktops/gnome-3/3.10/misc/libmediaart/default.nix
index 4985bfa902c..4985bfa902c 100644
--- a/pkgs/desktops/gnome-3/misc/libmediaart/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/misc/libmediaart/default.nix
diff --git a/pkgs/desktops/gnome-3/3.12/apps/bijiben/default.nix b/pkgs/desktops/gnome-3/3.12/apps/bijiben/default.nix
new file mode 100644
index 00000000000..ef460112d21
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/apps/bijiben/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, intltool, fetchurl, pkgconfig, glib
+, hicolor_icon_theme, makeWrapper, itstool
+, clutter_gtk, libuuid, webkitgtk, zeitgeist
+, gnome3, librsvg, gdk_pixbuf, libxml2 }:
+
+stdenv.mkDerivation rec {
+  name = "bijiben-3.10.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/bijiben/3.10/${name}.tar.xz";
+    sha256 = "81257f85218968b0ad386da6e1143586de478870ca74bb5387646a479999a7d4";
+  };
+
+  doCheck = true;
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+
+  buildInputs = [ pkgconfig glib intltool itstool libxml2
+                  clutter_gtk libuuid webkitgtk gnome3.tracker
+                  gnome3.gnome_online_accounts zeitgeist
+                  gnome3.gsettings_desktop_schemas makeWrapper
+                  gdk_pixbuf gnome3.gnome_icon_theme librsvg
+                  hicolor_icon_theme gnome3.gnome_icon_theme_symbolic ];
+
+  enableParallelBuilding = true;
+
+  preFixup = ''
+    wrapProgram "$out/bin/bijiben" \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --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/Bijiben;
+    description = "Note editor designed to remain simple to use";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.12/apps/evolution/default.nix b/pkgs/desktops/gnome-3/3.12/apps/evolution/default.nix
new file mode 100644
index 00000000000..ee62c951b4c
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/apps/evolution/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, intltool, fetchurl, libxml2, webkitgtk, highlight
+, pkgconfig, gtk3, glib, hicolor_icon_theme, libnotify
+, makeWrapper, itstool, shared_mime_info, libical, db
+, gnome3, librsvg, gdk_pixbuf, libsecret, nss, nspr, icu
+, libcanberra_gtk3, bogofilter, gst_all_1, procps }:
+
+stdenv.mkDerivation rec {
+  name = "evolution-3.10.4";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/evolution/3.10/${name}.tar.xz";
+    sha256 = "ac60557f264f211e6a7bc0ced919041c154e4c7b9c79600516aee7acc1d03e40";
+  };
+
+  doCheck = true;
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+
+  buildInputs = [ pkgconfig gtk3 glib intltool itstool libxml2
+                  gdk_pixbuf gnome3.gnome_icon_theme librsvg db icu
+                  gnome3.evolution_data_server libsecret libical
+                  webkitgtk shared_mime_info gnome3.gnome_desktop
+                  libcanberra_gtk3 gnome3.gtkhtml bogofilter gnome3.libgdata
+                  gst_all_1.gstreamer gst_all_1.gst-plugins-base
+                  hicolor_icon_theme gnome3.gnome_icon_theme_symbolic
+                  nss nspr libnotify procps highlight gnome3.libgweather
+                  gnome3.gsettings_desktop_schemas makeWrapper ];
+
+  configureFlags = [ "--disable-spamassassin" "--disable-pst-import" ];
+
+  NIX_CFLAGS_COMPILE = "-I${nspr}/include/nspr -I${nss}/include/nss";
+
+  enableParallelBuilding = true;
+
+  preFixup = ''
+    wrapProgram "$out/bin/evolution" \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Evolution;
+    description = "Personal information management application that provides integrated mail, calendaring and address book functionality";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.lgpl2Plus;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.12/apps/file-roller/default.nix b/pkgs/desktops/gnome-3/3.12/apps/file-roller/default.nix
new file mode 100644
index 00000000000..e13e169ccc5
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/apps/file-roller/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, glib, pkgconfig, gnome3, intltool, itstool, libxml2, libarchive
+, attr, bzip2, acl, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "file-roller-${version}";
+
+  majVersion = "3.10";
+  version = "${majVersion}.2.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/file-roller/${majVersion}/${name}.tar.xz";
+    sha256 = "14374z1yfbjlgpl4k1ih8b35x8kzvh99y22rwwkc2wfz0d0i1qgx";
+  };
+
+  # TODO: support nautilus
+  # it tries to create {nautilus}/lib/nautilus/extensions-3.0/libnautilus-fileroller.so
+
+  buildInputs = [ glib pkgconfig gnome3.gtk intltool itstool libxml2 libarchive
+                  attr bzip2 acl makeWrapper ];
+
+  preFixup = ''
+    wrapProgram "$out/bin/file-roller" \
+      --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
+    rm $out/share/icons/hicolor/icon-theme.cache
+  '';
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.12/apps/gedit/default.nix b/pkgs/desktops/gnome-3/3.12/apps/gedit/default.nix
new file mode 100644
index 00000000000..84a77e5a024
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/apps/gedit/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, intltool, fetchurl, enchant, isocodes
+, pkgconfig, gtk3, glib, hicolor_icon_theme
+, bash, makeWrapper, itstool, libsoup, libxml2
+, gnome3, librsvg, gdk_pixbuf, file }:
+
+stdenv.mkDerivation rec {
+  name = "gedit-3.10.4";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gedit/3.10/${name}.tar.xz";
+    sha256 = "40dc10b6e26fd8523087e7321a20a063f4c1e586dffd7ce8ee78eead11359f9e";
+  };
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+
+  buildInputs = [ pkgconfig gtk3 glib intltool itstool enchant isocodes
+                  gdk_pixbuf gnome3.gnome_icon_theme librsvg libsoup
+                  gnome3.libpeas gnome3.gtksourceview libxml2
+                  hicolor_icon_theme gnome3.gnome_icon_theme_symbolic
+                  gnome3.gsettings_desktop_schemas makeWrapper file ];
+
+  enableParallelBuilding = true;
+
+  preFixup = ''
+    wrapProgram "$out/bin/gedit" \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
+      --prefix LD_LIBRARY_PATH : "${gnome3.libpeas}/lib:${gnome3.gtksourceview}/lib" \
+      --prefix XDG_DATA_DIRS : "${gnome3.gtksourceview}/share:${gnome3.gnome_themes_standard}/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Gedit;
+    description = "Official text editor of the GNOME desktop environment";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.12/apps/glade/default.nix b/pkgs/desktops/gnome-3/3.12/apps/glade/default.nix
new file mode 100644
index 00000000000..5979d10fa70
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/apps/glade/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, intltool, fetchurl, python
+, pkgconfig, gtk3, glib, hicolor_icon_theme
+, makeWrapper, itstool, libxml2, docbook_xsl
+, gnome3, librsvg, gdk_pixbuf, libxslt }:
+
+stdenv.mkDerivation rec {
+  name = "glade-3.16.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/glade/3.16/${name}.tar.xz";
+    sha256 = "994ac258bc100d3907ed40a2880c3144f13997b324477253e812d59f2716523f";
+  };
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+
+  buildInputs = [ pkgconfig gtk3 glib intltool itstool libxml2 python
+                  gnome3.gsettings_desktop_schemas makeWrapper docbook_xsl
+                  gdk_pixbuf gnome3.gnome_icon_theme librsvg libxslt
+                  hicolor_icon_theme gnome3.gnome_icon_theme_symbolic ];
+
+  enableParallelBuilding = true;
+
+  preFixup = ''
+    wrapProgram "$out/bin/glade" \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --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/Glade;
+    description = "User interface designer for GTK+ applications";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.lgpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.12/apps/gnome-clocks/default.nix b/pkgs/desktops/gnome-3/3.12/apps/gnome-clocks/default.nix
new file mode 100644
index 00000000000..c39f731e028
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/apps/gnome-clocks/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, intltool, fetchurl, libgweather, libnotify
+, pkgconfig, gtk3, glib, hicolor_icon_theme
+, makeWrapper, itstool, libcanberra_gtk3, libtool
+, gnome3, librsvg, gdk_pixbuf, geoclue2 }:
+
+stdenv.mkDerivation rec {
+  name = "gnome-clocks-3.10.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-clocks/3.10/${name}.tar.xz";
+    sha256 = "5f6f3b7bb9929353d974aa444b10bb4d0f414176449cce2c626fabd2d4b55b43";
+  };
+
+  doCheck = true;
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+
+  buildInputs = [ pkgconfig gtk3 glib intltool itstool libcanberra_gtk3
+                  gnome3.gsettings_desktop_schemas makeWrapper
+                  gdk_pixbuf gnome3.gnome_icon_theme librsvg
+                  gnome3.gnome_desktop gnome3.geocode_glib geoclue2
+                  libgweather libnotify libtool
+                  hicolor_icon_theme gnome3.gnome_icon_theme_symbolic ];
+
+  enableParallelBuilding = true;
+
+  preFixup = ''
+    wrapProgram "$out/bin/gnome-clocks" \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --prefix XDG_DATA_DIRS : "${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://wiki.gnome.org/Apps/Clocks;
+    description = "Clock application designed for GNOME 3";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.12/apps/gnome-documents/default.nix b/pkgs/desktops/gnome-3/3.12/apps/gnome-documents/default.nix
new file mode 100644
index 00000000000..b393bb43931
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/apps/gnome-documents/default.nix
@@ -0,0 +1,54 @@
+{ stdenv, intltool, fetchurl, evince, gjs
+, pkgconfig, gtk3, glib, hicolor_icon_theme
+, makeWrapper, itstool, libxslt, webkitgtk
+, gnome3, librsvg, gdk_pixbuf, libsoup, docbook_xsl
+, gobjectIntrospection, json_glib
+, gmp, desktop_file_utils }:
+
+stdenv.mkDerivation rec {
+  name = "gnome-documents-3.10.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-documents/3.10/${name}.tar.xz";
+    sha256 = "2b7267c9c4e5767039632cb31877ed2e57f994b657e8863dd79af5287db45745";
+  };
+
+  doCheck = true;
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+
+  buildInputs = [ pkgconfig gtk3 glib intltool itstool libxslt
+                  docbook_xsl desktop_file_utils
+                  gnome3.gsettings_desktop_schemas makeWrapper gmp
+                  gdk_pixbuf gnome3.gnome_icon_theme librsvg evince
+                  libsoup webkitgtk gjs gobjectIntrospection gnome3.rest
+                  gnome3.tracker gnome3.libgdata gnome3.gnome_online_accounts
+                  gnome3.gnome_desktop gnome3.libzapojit json_glib
+                  hicolor_icon_theme gnome3.gnome_icon_theme_symbolic ];
+
+  enableParallelBuilding = true;
+
+  preFixup =
+    let
+      libPath = stdenv.lib.makeLibraryPath
+        [ evince gtk3 gnome3.tracker gnome3.gnome_online_accounts ];
+    in
+    ''
+    substituteInPlace $out/bin/gnome-documents --replace gapplication "${glib}/bin/gapplication"
+    wrapProgram "$out/bin/gnome-documents" \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
+      --prefix LD_LIBRARY_PATH ":" "${libPath}" \
+      --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" \
+      --run "if [ -z \"\$XDG_CACHE_DIR\" ]; then XDG_CACHE_DIR=\$HOME/.cache; fi; if [ -w \"\$XDG_CACHE_DIR/..\" ]; then mkdir -p \"\$XDG_CACHE_DIR/gnome-documents\"; fi"
+    rm $out/share/icons/hicolor/icon-theme.cache
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Documents;
+    description = "Document manager application designed to work with GNOME 3";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.12/apps/gnome-music/default.nix b/pkgs/desktops/gnome-3/3.12/apps/gnome-music/default.nix
new file mode 100644
index 00000000000..b8d2bbc79ef
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/apps/gnome-music/default.nix
@@ -0,0 +1,54 @@
+{ stdenv, intltool, fetchurl, gdk_pixbuf, tracker
+, python3, libxml2, python3Packages, libnotify
+, pkgconfig, gtk3, glib, hicolor_icon_theme, cairo
+, makeWrapper, itstool, gnome3, librsvg, gst_all_1 }:
+
+stdenv.mkDerivation rec {
+  name = "gnome-music-3.10.4";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-music/3.10/${name}.tar.xz";
+    sha256 = "64220d4c0f9115a6ed27ec99c7ec7afc065d12e5a32371936f303ef981f5325f";
+  };
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+
+  buildInputs = [ pkgconfig gtk3 glib intltool itstool gnome3.libmediaart
+                  gdk_pixbuf gnome3.gnome_icon_theme librsvg python3
+                  gnome3.grilo libxml2 python3Packages.pygobject3 libnotify
+                  python3Packages.pycairo python3Packages.dbus
+                  gst_all_1.gstreamer gst_all_1.gst-plugins-base
+                  gst_all_1.gst-plugins-good gst_all_1.gst-plugins-bad
+                  hicolor_icon_theme gnome3.gnome_icon_theme_symbolic
+                  gnome3.gsettings_desktop_schemas makeWrapper tracker ];
+
+  enableParallelBuilding = true;
+
+  preFixup =
+    let
+      libPath = stdenv.lib.makeLibraryPath
+        [ glib gtk3 libnotify tracker gnome3.grilo cairo
+          gst_all_1.gstreamer gst_all_1.gst-plugins-base
+          gst_all_1.gst-plugins-good gst_all_1.gst-plugins-bad ];
+    in
+    ''
+    wrapProgram "$out/bin/gnome-music" \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" \
+      --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
+      --prefix LD_LIBRARY_PATH : "${libPath}" \
+      --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 PYTHONPATH : "$PYTHONPATH"
+
+    rm $out/share/icons/hicolor/icon-theme.cache
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Music;
+    description = "Music player and management application for the GNOME desktop environment";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.12/apps/gnome-photos/default.nix b/pkgs/desktops/gnome-3/3.12/apps/gnome-photos/default.nix
new file mode 100644
index 00000000000..68d4e3690f9
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/apps/gnome-photos/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, intltool, fetchurl, exempi, libxml2
+, pkgconfig, gtk3, glib, hicolor_icon_theme
+, makeWrapper, itstool, gegl, babl, lcms2
+, desktop_file_utils, gmp
+, gnome3, librsvg, gdk_pixbuf, libexif }:
+
+stdenv.mkDerivation rec {
+  name = "gnome-photos-3.10.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-photos/3.10/${name}.tar.xz";
+    sha256 = "820503c26a0f829682dd46653e8f0850ac687aba42728ac74350ba8406e80975";
+  };
+
+  doCheck = true;
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+
+  NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
+
+  buildInputs = [ pkgconfig gtk3 glib intltool itstool gegl babl
+                  gnome3.gsettings_desktop_schemas makeWrapper gmp
+                  gdk_pixbuf gnome3.gnome_icon_theme librsvg exempi
+                  gnome3.gfbgraph gnome3.grilo-plugins gnome3.grilo
+                  gnome3.gnome_online_accounts gnome3.gnome_desktop
+                  lcms2 libexif gnome3.tracker libxml2 desktop_file_utils
+                  hicolor_icon_theme gnome3.gnome_icon_theme_symbolic ];
+
+  preFixup = ''
+    wrapProgram "$out/bin/gnome-photos" \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --prefix GRL_PLUGIN_PATH : "${gnome3.grilo-plugins}/lib/grilo-0.2" \
+      --prefix XDG_DATA_DIRS : "${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://wiki.gnome.org/Apps/Photos;
+    description = "Photos is an application to access, organize and share your photos with GNOME 3";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.12/apps/seahorse/default.nix b/pkgs/desktops/gnome-3/3.12/apps/seahorse/default.nix
new file mode 100644
index 00000000000..cecc4a8913d
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/apps/seahorse/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, intltool, fetchurl
+, pkgconfig, gtk3, glib, hicolor_icon_theme
+, makeWrapper, itstool, gnupg, libsoup
+, gnome3, librsvg, gdk_pixbuf, gpgme
+, libsecret, avahi, p11_kit }:
+
+stdenv.mkDerivation rec {
+  name = "seahorse-3.10.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/seahorse/3.10/${name}.tar.xz";
+    sha256 = "89cabf19f77a55f220bc61a3b97e4db845a0980f0f1d9c66147cc9a4ced8cd16";
+  };
+
+  doCheck = true;
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+
+  NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
+
+  buildInputs = [ pkgconfig gtk3 glib intltool itstool gnome3.gcr
+                  gnome3.gsettings_desktop_schemas makeWrapper gnupg
+                  gdk_pixbuf gnome3.gnome_icon_theme librsvg gpgme
+                  libsecret avahi libsoup p11_kit
+                  hicolor_icon_theme gnome3.gnome_icon_theme_symbolic ];
+
+  preFixup = ''
+    wrapProgram "$out/bin/seahorse" \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --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/Seahorse;
+    description = "Application for managing encryption keys and passwords in the GnomeKeyring";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.12/core/at-spi2-atk/default.nix b/pkgs/desktops/gnome-3/3.12/core/at-spi2-atk/default.nix
new file mode 100644
index 00000000000..fc0c4f2a6bc
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/at-spi2-core/default.nix b/pkgs/desktops/gnome-3/3.12/core/at-spi2-core/default.nix
new file mode 100644
index 00000000000..d60a0ff7480
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/baobab/default.nix b/pkgs/desktops/gnome-3/3.12/core/baobab/default.nix
new file mode 100644
index 00000000000..9381f45105d
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/caribou/default.nix b/pkgs/desktops/gnome-3/3.12/core/caribou/default.nix
new file mode 100644
index 00000000000..41a997c1f71
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/dconf/default.nix b/pkgs/desktops/gnome-3/3.12/core/dconf/default.nix
new file mode 100644
index 00000000000..a6236f16744
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/empathy/default.nix b/pkgs/desktops/gnome-3/3.12/core/empathy/default.nix
new file mode 100644
index 00000000000..051bc9b7fb2
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/eog/default.nix b/pkgs/desktops/gnome-3/3.12/core/eog/default.nix
new file mode 100644
index 00000000000..57f19dcaa32
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/epiphany/default.nix b/pkgs/desktops/gnome-3/3.12/core/epiphany/default.nix
new file mode 100644
index 00000000000..9df3a7ed01e
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/evince/default.nix b/pkgs/desktops/gnome-3/3.12/core/evince/default.nix
new file mode 100644
index 00000000000..4b50840534c
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/evolution-data-server/default.nix b/pkgs/desktops/gnome-3/3.12/core/evolution-data-server/default.nix
new file mode 100644
index 00000000000..685f8c24e7c
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/folks/default.nix b/pkgs/desktops/gnome-3/3.12/core/folks/default.nix
new file mode 100644
index 00000000000..12518c634c4
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/gconf/default.nix b/pkgs/desktops/gnome-3/3.12/core/gconf/default.nix
new file mode 100644
index 00000000000..47dae0486e9
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/gcr/default.nix b/pkgs/desktops/gnome-3/3.12/core/gcr/default.nix
new file mode 100644
index 00000000000..a1fdd471282
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/gdm/default.nix b/pkgs/desktops/gnome-3/3.12/core/gdm/default.nix
new file mode 100644
index 00000000000..3df5ab40eaf
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/geocode-glib/default.nix b/pkgs/desktops/gnome-3/3.12/core/geocode-glib/default.nix
new file mode 100644
index 00000000000..d3b21bef167
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/gjs/default.nix b/pkgs/desktops/gnome-3/3.12/core/gjs/default.nix
new file mode 100644
index 00000000000..429d147e728
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/gnome-backgrounds/default.nix b/pkgs/desktops/gnome-3/3.12/core/gnome-backgrounds/default.nix
new file mode 100644
index 00000000000..3879b81859a
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/gnome-calculator/default.nix b/pkgs/desktops/gnome-3/3.12/core/gnome-calculator/default.nix
new file mode 100644
index 00000000000..205961a9171
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/gnome-common/default.nix b/pkgs/desktops/gnome-3/3.12/core/gnome-common/default.nix
new file mode 100644
index 00000000000..12b2510dc43
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/gnome-contacts/configure_dbus_glib.patch b/pkgs/desktops/gnome-3/3.12/core/gnome-contacts/configure_dbus_glib.patch
new file mode 100644
index 00000000000..926762defbd
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/gnome-contacts/default.nix b/pkgs/desktops/gnome-3/3.12/core/gnome-contacts/default.nix
new file mode 100644
index 00000000000..f8059f952e6
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/gnome-contacts/fix_row_selected.patch b/pkgs/desktops/gnome-3/3.12/core/gnome-contacts/fix_row_selected.patch
new file mode 100644
index 00000000000..b379b4b8ee9
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/gnome-control-center/default.nix b/pkgs/desktops/gnome-3/3.12/core/gnome-control-center/default.nix
new file mode 100644
index 00000000000..1222f03d66e
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/gnome-control-center/search_providers_dir.patch b/pkgs/desktops/gnome-3/3.12/core/gnome-control-center/search_providers_dir.patch
new file mode 100644
index 00000000000..7f5ad970f34
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/gnome-desktop/default.nix b/pkgs/desktops/gnome-3/3.12/core/gnome-desktop/default.nix
new file mode 100644
index 00000000000..584705d658e
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/gnome-dictionary/default.nix b/pkgs/desktops/gnome-3/3.12/core/gnome-dictionary/default.nix
new file mode 100644
index 00000000000..6f68916b781
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/gnome-disk-utility/default.nix b/pkgs/desktops/gnome-3/3.12/core/gnome-disk-utility/default.nix
new file mode 100644
index 00000000000..334471c2943
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/gnome-font-viewer/default.nix b/pkgs/desktops/gnome-3/3.12/core/gnome-font-viewer/default.nix
new file mode 100644
index 00000000000..cba651ca36a
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/gnome-icon-theme-symbolic/default.nix b/pkgs/desktops/gnome-3/3.12/core/gnome-icon-theme-symbolic/default.nix
new file mode 100644
index 00000000000..feb3d84b994
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/gnome-icon-theme/default.nix b/pkgs/desktops/gnome-3/3.12/core/gnome-icon-theme/default.nix
new file mode 100644
index 00000000000..5b16f827ae0
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/gnome-icon-theme/setup-hook.sh b/pkgs/desktops/gnome-3/3.12/core/gnome-icon-theme/setup-hook.sh
new file mode 100644
index 00000000000..d7156f3d463
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/gnome-keyring/default.nix b/pkgs/desktops/gnome-3/3.12/core/gnome-keyring/default.nix
new file mode 100644
index 00000000000..dbb8da93c6c
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/gnome-menus/default.nix b/pkgs/desktops/gnome-3/3.12/core/gnome-menus/default.nix
new file mode 100644
index 00000000000..37d2ea1c086
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/gnome-online-accounts/default.nix b/pkgs/desktops/gnome-3/3.12/core/gnome-online-accounts/default.nix
new file mode 100644
index 00000000000..8c459435733
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/gnome-online-miners/default.nix b/pkgs/desktops/gnome-3/3.12/core/gnome-online-miners/default.nix
new file mode 100644
index 00000000000..4c904bf40f6
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/gnome-screenshot/default.nix b/pkgs/desktops/gnome-3/3.12/core/gnome-screenshot/default.nix
new file mode 100644
index 00000000000..7b94d0f9027
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/gnome-session/default.nix b/pkgs/desktops/gnome-3/3.12/core/gnome-session/default.nix
new file mode 100644
index 00000000000..f999702af54
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/gnome-settings-daemon/default.nix b/pkgs/desktops/gnome-3/3.12/core/gnome-settings-daemon/default.nix
new file mode 100644
index 00000000000..7a50b8db56f
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/gnome-shell-extensions/default.nix b/pkgs/desktops/gnome-3/3.12/core/gnome-shell-extensions/default.nix
new file mode 100644
index 00000000000..00974edb1db
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/gnome-shell/default.nix b/pkgs/desktops/gnome-3/3.12/core/gnome-shell/default.nix
new file mode 100644
index 00000000000..554b09a1e59
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/gnome-shell/fix_background_corruption.patch b/pkgs/desktops/gnome-3/3.12/core/gnome-shell/fix_background_corruption.patch
new file mode 100644
index 00000000000..9cb041bcce2
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/gnome-system-log/default.nix b/pkgs/desktops/gnome-3/3.12/core/gnome-system-log/default.nix
new file mode 100644
index 00000000000..cdc4b732b97
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/gnome-system-monitor/default.nix b/pkgs/desktops/gnome-3/3.12/core/gnome-system-monitor/default.nix
new file mode 100644
index 00000000000..91fbe67957f
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/gnome-terminal/default.nix b/pkgs/desktops/gnome-3/3.12/core/gnome-terminal/default.nix
new file mode 100644
index 00000000000..541db5720db
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/gnome-themes-standard/default.nix b/pkgs/desktops/gnome-3/3.12/core/gnome-themes-standard/default.nix
new file mode 100644
index 00000000000..08d82b7ae91
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/gnome-user-docs/default.nix b/pkgs/desktops/gnome-3/3.12/core/gnome-user-docs/default.nix
new file mode 100644
index 00000000000..d66863a2218
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/gnome-user-share/default.nix b/pkgs/desktops/gnome-3/3.12/core/gnome-user-share/default.nix
new file mode 100644
index 00000000000..976b0eaca45
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/grilo-plugins/default.nix b/pkgs/desktops/gnome-3/3.12/core/grilo-plugins/default.nix
new file mode 100644
index 00000000000..a8a1c244767
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/grilo/default.nix b/pkgs/desktops/gnome-3/3.12/core/grilo/default.nix
new file mode 100644
index 00000000000..6f1bfbbcfe9
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/gsettings-desktop-schemas/default.nix b/pkgs/desktops/gnome-3/3.12/core/gsettings-desktop-schemas/default.nix
new file mode 100644
index 00000000000..13f357db29a
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/gtksourceview/default.nix b/pkgs/desktops/gnome-3/3.12/core/gtksourceview/default.nix
new file mode 100644
index 00000000000..900bb2c922b
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/gucharmap/default.nix b/pkgs/desktops/gnome-3/3.12/core/gucharmap/default.nix
new file mode 100644
index 00000000000..a6bf72b2fc7
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/libcroco/default.nix b/pkgs/desktops/gnome-3/3.12/core/libcroco/default.nix
new file mode 100644
index 00000000000..e5f6a0aa9b8
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/libgdata/default.nix b/pkgs/desktops/gnome-3/3.12/core/libgdata/default.nix
new file mode 100644
index 00000000000..9a1a45e0d1a
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/libgee/default.nix b/pkgs/desktops/gnome-3/3.12/core/libgee/default.nix
new file mode 100644
index 00000000000..c7ed541082d
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/libgee/fix_introspection_paths.patch b/pkgs/desktops/gnome-3/3.12/core/libgee/fix_introspection_paths.patch
new file mode 100644
index 00000000000..67003f45164
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/libgnome-keyring/default.nix b/pkgs/desktops/gnome-3/3.12/core/libgnome-keyring/default.nix
new file mode 100644
index 00000000000..28c7b80c0d4
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/libgnomekbd/default.nix b/pkgs/desktops/gnome-3/3.12/core/libgnomekbd/default.nix
new file mode 100644
index 00000000000..1156474e5a7
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/libgweather/default.nix b/pkgs/desktops/gnome-3/3.12/core/libgweather/default.nix
new file mode 100644
index 00000000000..c480a59e453
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/libgxps/default.nix b/pkgs/desktops/gnome-3/3.12/core/libgxps/default.nix
new file mode 100644
index 00000000000..72d307f4f1a
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/libpeas/default.nix b/pkgs/desktops/gnome-3/3.12/core/libpeas/default.nix
new file mode 100644
index 00000000000..9cf8426104b
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/libzapojit/default.nix b/pkgs/desktops/gnome-3/3.12/core/libzapojit/default.nix
new file mode 100644
index 00000000000..e0e4c02c084
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/mutter/default.nix b/pkgs/desktops/gnome-3/3.12/core/mutter/default.nix
new file mode 100644
index 00000000000..0acfa9f36ae
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/nautilus/default.nix b/pkgs/desktops/gnome-3/3.12/core/nautilus/default.nix
new file mode 100644
index 00000000000..2041a71a82c
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/rest/default.nix b/pkgs/desktops/gnome-3/3.12/core/rest/default.nix
new file mode 100644
index 00000000000..f543f8e13b8
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/sushi/default.nix b/pkgs/desktops/gnome-3/3.12/core/sushi/default.nix
new file mode 100644
index 00000000000..089b5cd03c1
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/totem-pl-parser/default.nix b/pkgs/desktops/gnome-3/3.12/core/totem-pl-parser/default.nix
new file mode 100644
index 00000000000..f1b3bfe53c1
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/totem/default.nix b/pkgs/desktops/gnome-3/3.12/core/totem/default.nix
new file mode 100644
index 00000000000..c6b78c827db
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/tracker/default.nix b/pkgs/desktops/gnome-3/3.12/core/tracker/default.nix
new file mode 100644
index 00000000000..dbae108d2e9
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/vino/default.nix b/pkgs/desktops/gnome-3/3.12/core/vino/default.nix
new file mode 100644
index 00000000000..65668dce6a2
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/vte/default.nix b/pkgs/desktops/gnome-3/3.12/core/vte/default.nix
new file mode 100644
index 00000000000..d98ddc716de
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/yelp-tools/default.nix b/pkgs/desktops/gnome-3/3.12/core/yelp-tools/default.nix
new file mode 100644
index 00000000000..39ff3838f4a
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/yelp-xsl/default.nix b/pkgs/desktops/gnome-3/3.12/core/yelp-xsl/default.nix
new file mode 100644
index 00000000000..c5060bdba75
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/yelp/default.nix b/pkgs/desktops/gnome-3/3.12/core/yelp/default.nix
new file mode 100644
index 00000000000..b58aa99721e
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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.12/core/zenity/default.nix b/pkgs/desktops/gnome-3/3.12/core/zenity/default.nix
new file mode 100644
index 00000000000..366088c6729
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/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;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.12/default.nix b/pkgs/desktops/gnome-3/3.12/default.nix
new file mode 100644
index 00000000000..e5c57903da0
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/default.nix
@@ -0,0 +1,198 @@
+{ callPackage, pkgs }:
+
+rec {
+  inherit (pkgs) glib gtk2 gtk3 gnome2;
+  gnome3 = pkgs.gnome3_12;
+  gtk = gtk3; # just to be sure
+  libcanberra = pkgs.libcanberra_gtk3; # just to be sure
+  inherit (pkgs.gnome2) ORBit2;
+  orbit = ORBit2;
+  inherit (pkgs) libsoup;
+
+#### Core (http://ftp.acc.umu.se/pub/GNOME/core/)
+
+  at_spi2_atk = callPackage ./core/at-spi2-atk { };
+
+  at_spi2_core = callPackage ./core/at-spi2-core { };
+
+  baobab = callPackage ./core/baobab { };
+
+  caribou = callPackage ./core/caribou { };
+
+  dconf = callPackage ./core/dconf { };
+
+  empathy = callPackage ./core/empathy { };
+
+  epiphany = callPackage ./core/epiphany { };
+
+  evince = callPackage ./core/evince { }; # ToDo: dbus would prevent compilation, enable tests
+
+  evolution_data_server = callPackage ./core/evolution-data-server { };
+
+  gconf = callPackage ./core/gconf { };
+
+  geocode_glib = callPackage ./core/geocode-glib { };
+
+  gcr = callPackage ./core/gcr { }; # ToDo: tests fail
+
+  gdm = callPackage ./core/gdm { };
+
+  gjs = callPackage ./core/gjs { };
+
+  gnome-backgrounds = callPackage ./core/gnome-backgrounds { };
+
+  gnome-contacts = callPackage ./core/gnome-contacts { };
+
+  gnome_control_center = callPackage ./core/gnome-control-center { };
+
+  gnome-calculator = callPackage ./core/gnome-calculator { };
+
+  gnome_common = callPackage ./core/gnome-common { };
+
+  gnome_desktop = callPackage ./core/gnome-desktop { };
+
+  gnome-dictionary = callPackage ./core/gnome-dictionary { };
+
+  gnome-disk-utility = callPackage ./core/gnome-disk-utility { };
+
+  gnome-font-viewer = callPackage ./core/gnome-font-viewer { };
+
+  gnome_icon_theme = callPackage ./core/gnome-icon-theme { };
+
+  gnome_icon_theme_symbolic = callPackage ./core/gnome-icon-theme-symbolic { };
+
+  gnome-menus = callPackage ./core/gnome-menus { };
+
+  gnome_keyring = callPackage ./core/gnome-keyring { };
+
+  libgnome_keyring = callPackage ./core/libgnome-keyring { };
+
+  libgnomekbd = callPackage ./core/libgnomekbd { };
+
+  folks = callPackage ./core/folks { };
+
+  gnome_online_accounts = callPackage ./core/gnome-online-accounts { };
+
+  gnome-online-miners = callPackage ./core/gnome-online-miners { };
+
+  gnome_session = callPackage ./core/gnome-session { };
+
+  gnome_shell = callPackage ./core/gnome-shell { };
+
+  gnome-shell-extensions = callPackage ./core/gnome-shell-extensions { };
+
+  gnome-screenshot = callPackage ./core/gnome-screenshot { };
+
+  gnome_settings_daemon = callPackage ./core/gnome-settings-daemon { };
+
+  gnome-system-log = callPackage ./core/gnome-system-log { };
+
+  gnome-system-monitor = callPackage ./core/gnome-system-monitor { };
+
+  gnome_terminal = callPackage ./core/gnome-terminal { };
+
+  gnome_themes_standard = callPackage ./core/gnome-themes-standard { };
+
+  gnome-user-docs = callPackage ./core/gnome-user-docs { };
+
+  gnome-user-share = callPackage ./core/gnome-user-share { };
+
+  grilo = callPackage ./core/grilo { };
+
+  grilo-plugins = callPackage ./core/grilo-plugins { };
+
+  gsettings_desktop_schemas = callPackage ./core/gsettings-desktop-schemas { };
+
+  gtksourceview = callPackage ./core/gtksourceview { };
+
+  gucharmap = callPackage ./core/gucharmap { };
+
+  gvfs = pkgs.gvfs.override { gnome = pkgs.gnome3; };
+
+  eog = callPackage ./core/eog { };
+
+  libcroco = callPackage ./core/libcroco {};
+
+  libgee = callPackage ./core/libgee { };
+
+  libgdata = callPackage ./core/libgdata { };
+
+  libgxps = callPackage ./core/libgxps { };
+
+  libpeas = callPackage ./core/libpeas {};
+
+  libgweather = callPackage ./core/libgweather { };
+
+  libzapojit = callPackage ./core/libzapojit { };
+
+  mutter = callPackage ./core/mutter { };
+
+  nautilus = callPackage ./core/nautilus { };
+
+  rest = callPackage ./core/rest { };
+
+  sushi = callPackage ./core/sushi { };
+
+  totem = callPackage ./core/totem { };
+
+  totem-pl-parser = callPackage ./core/totem-pl-parser { };
+
+  tracker = callPackage ./core/tracker { };
+
+  vte = callPackage ./core/vte { };
+
+  vino = callPackage ./core/vino { };
+
+  yelp = callPackage ./core/yelp { };
+
+  yelp_xsl = callPackage ./core/yelp-xsl { };
+
+  yelp_tools = callPackage ./core/yelp-tools { };
+
+  zenity = callPackage ./core/zenity { };
+
+
+#### Apps (http://ftp.acc.umu.se/pub/GNOME/apps/)
+
+  bijiben = callPackage ./apps/bijiben { };
+
+  evolution = callPackage ./apps/evolution { };
+
+  file-roller = callPackage ./apps/file-roller { };
+
+  gedit = callPackage ./apps/gedit { };
+
+  glade = callPackage ./apps/glade { };
+
+  gnome-clocks = callPackage ./apps/gnome-clocks { };
+
+  gnome-documents = callPackage ./apps/gnome-documents { };
+
+  gnome-music = callPackage ./apps/gnome-music { };
+
+  gnome-photos = callPackage ./apps/gnome-photos { };
+
+  # scrollkeeper replacement
+  rarian = callPackage ./desktop/rarian { };
+
+  seahorse = callPackage ./apps/seahorse { };
+
+
+#### Misc -- other packages on http://ftp.gnome.org/pub/GNOME/sources/
+
+  gfbgraph = callPackage ./misc/gfbgraph { };
+
+  goffice = callPackage ./misc/goffice { };
+
+  gitg = callPackage ./misc/gitg { };
+
+  libgit2-glib = callPackage ./misc/libgit2-glib { };
+
+  libmediaart = callPackage ./misc/libmediaart { };
+  
+  gexiv2 = callPackage ./misc/gexiv2 { };
+
+  gnome-tweak-tool = callPackage ./misc/gnome-tweak-tool { };
+
+  gtkhtml = callPackage ./misc/gtkhtml { };
+}
diff --git a/pkgs/desktops/gnome-3/3.12/desktop/rarian/default.nix b/pkgs/desktops/gnome-3/3.12/desktop/rarian/default.nix
new file mode 100644
index 00000000000..a1b38b21869
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/desktop/rarian/default.nix
@@ -0,0 +1,16 @@
+{stdenv, fetchurl, pkgconfig, perl, perlXMLParser, libxml2, libxslt, docbook_xml_dtd_42}:
+
+stdenv.mkDerivation rec {
+  name = "rarian-0.8.1";
+  src = fetchurl {
+    url = "mirror://gnome/sources/rarian/0.8/${name}.tar.bz2";
+    sha256 = "aafe886d46e467eb3414e91fa9e42955bd4b618c3e19c42c773026b205a84577";
+  };
+
+  buildInputs = [pkgconfig perl perlXMLParser libxml2 libxslt];
+  configureFlags = "--with-xml-catalog=${docbook_xml_dtd_42}/xml/dtd/docbook/docbook.cat";
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.12/misc/gexiv2/default.nix b/pkgs/desktops/gnome-3/3.12/misc/gexiv2/default.nix
new file mode 100644
index 00000000000..86942c13f34
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/misc/gexiv2/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, pkgconfig, exiv2, glib, libtool, m4 }:
+
+
+stdenv.mkDerivation rec {
+  name = "gexiv2-${version}";
+  version = "0.7.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gexiv2/0.7/${name}.tar.xz";
+    sha256 = "12pfc5a57dhlf0c3yg5x3jissxi7jy2b6ir6y99cn510801gwcdn";
+  };
+  
+  preConfigure = ''
+    patchShebangs .
+  '';
+  
+  buildInputs = [ pkgconfig glib libtool m4 ];
+  propagatedBuildInputs = [ exiv2 ];
+  
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Projects/gexiv2;
+    description = "GObject wrapper around the Exiv2 photo metadata library";
+    platforms = platforms.linux;
+  };
+}
\ No newline at end of file
diff --git a/pkgs/desktops/gnome-3/3.12/misc/gfbgraph/default.nix b/pkgs/desktops/gnome-3/3.12/misc/gfbgraph/default.nix
new file mode 100644
index 00000000000..ee8259af8d6
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/misc/gfbgraph/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, intltool, fetchurl, pkgconfig, glib
+, gnome3, libsoup, json_glib }:
+
+stdenv.mkDerivation rec {
+  name = "gfbgraph-0.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gfbgraph/0.2/${name}.tar.xz";
+    sha256 = "534ca84920445b9d89e2480348eedde3ce950db3628ae0a79703e8f2d52fa724";
+  };
+
+  buildInputs = [ pkgconfig glib libsoup gnome3.gnome_online_accounts
+                  json_glib gnome3.rest ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "GLib/GObject wrapper for the Facebook Graph API";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.lgpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.12/misc/gitg/default.nix b/pkgs/desktops/gnome-3/3.12/misc/gitg/default.nix
new file mode 100644
index 00000000000..7ca35a8255f
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/misc/gitg/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, fetchgit, vala, intltool, libgit2, pkgconfig, gtk3, glib
+, json_glib, webkitgtk,  makeWrapper, libpeas, bash, gobjectIntrospection
+, gnome3, gtkspell3, shared_mime_info, libgee, libgit2-glib, librsvg }:
+
+# TODO: icons and theme still does not work
+# use packaged gnome3.gnome_icon_theme_symbolic 
+
+stdenv.mkDerivation rec {
+  name = "gitg-0.3.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gitg/0.3/${name}.tar.xz";
+    sha256 = "03vc59d1r3326piqdph6qjqnc40chm1lpg52lpf8466ddjs0x8vp";
+  };
+
+  preCheck = ''
+    substituteInPlace tests/libgitg/test-commit.c --replace "/bin/bash" "${bash}/bin/bash"
+  '';
+  doCheck = true;
+
+  makeFlags = "INTROSPECTION_GIRDIR=$(out)/share/gir-1.0/ INTROSPECTION_TYPELIBDIR=$(out)/lib/girepository-1.0";
+
+  propagatedUserEnvPkgs = [ shared_mime_info
+                            gnome3.gnome_themes_standard ];
+
+  buildInputs = [ vala intltool libgit2 pkgconfig gtk3 glib json_glib webkitgtk libgee libpeas
+                  libgit2-glib gtkspell3 gnome3.gsettings_desktop_schemas gnome3.gtksourceview librsvg
+                  gobjectIntrospection makeWrapper gnome3.gnome_icon_theme_symbolic gnome3.gnome_icon_theme ];
+
+  preFixup = ''
+    wrapProgram "$out/bin/gitg" \
+      --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
+    rm $out/share/icons/hicolor/icon-theme.cache
+    rm $out/share/gitg/icons/hicolor/icon-theme.cache
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/action/show/Apps/Gitg;
+    description = "GNOME GUI client to view git repositories";
+    maintainers = with maintainers; [ iElectric ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.12/misc/gnome-tweak-tool/default.nix b/pkgs/desktops/gnome-3/3.12/misc/gnome-tweak-tool/default.nix
new file mode 100644
index 00000000000..2eccb9a32cf
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/misc/gnome-tweak-tool/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, intltool, fetchurl, python, pygobject3, atk
+, pkgconfig, gtk3, glib, hicolor_icon_theme, libsoup
+, bash, makeWrapper, itstool, libxml2, python3Packages
+, gnome3, librsvg, gdk_pixbuf, file, libnotify }:
+
+stdenv.mkDerivation rec {
+  name = "gnome-tweak-tool-3.10.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-tweak-tool/3.10/${name}.tar.xz";
+    sha256 = "fb5af9022c0521a925ef9f295e4080212b1b45427cd5f5f3a901667590afa7ec";
+  };
+
+  doCheck = true;
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+
+  makeFlags = [ "DESTDIR=/" ];
+
+  buildInputs = [ pkgconfig gtk3 glib intltool itstool libxml2
+                  gnome3.gsettings_desktop_schemas makeWrapper file
+                  gdk_pixbuf gnome3.gnome_icon_theme librsvg
+                  hicolor_icon_theme gnome3.gnome_icon_theme_symbolic
+                  python pygobject3 libnotify gnome3.gnome_shell
+                  libsoup gnome3.gnome_settings_daemon gnome3.nautilus
+                  gnome3.gnome_desktop ];
+
+  preFixup = ''
+    wrapProgram "$out/bin/gnome-tweak-tool" \
+      --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" \
+      --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
+      --prefix LD_LIBRARY_PATH ":" "${libsoup}/lib:${gnome3.gnome_desktop}/lib:${libnotify}/lib:${gtk3}/lib:${atk}/lib" \
+      --prefix PYTHONPATH : "$PYTHONPATH:$(toPythonPath $out)"
+  '';
+
+  patches = [ ./find_gsettings.patch ];
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/action/show/Apps/GnomeTweakTool;
+    description = "A tool to customize advanced GNOME 3 options";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.12/misc/gnome-tweak-tool/find_gsettings.patch b/pkgs/desktops/gnome-3/3.12/misc/gnome-tweak-tool/find_gsettings.patch
new file mode 100644
index 00000000000..3e68c04cb3a
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/misc/gnome-tweak-tool/find_gsettings.patch
@@ -0,0 +1,22 @@
+diff --git a/gtweak/gsettings.py b/gtweak/gsettings.py
+index a00fe19..dce74b2 100644
+--- a/gtweak/gsettings.py
++++ b/gtweak/gsettings.py
+@@ -33,10 +33,15 @@ class GSettingsMissingError(Exception):
+ 
+ class _GSettingsSchema:
+     def __init__(self, schema_name, schema_dir=None, schema_filename=None, **options):
+-        if not schema_dir:
+-            schema_dir = gtweak.GSETTINGS_SCHEMA_DIR
+         if not schema_filename:
+             schema_filename = schema_name + ".gschema.xml"
++        if not schema_dir:
++            schema_dir = gtweak.GSETTINGS_SCHEMA_DIR
++            for xdg_dir in GLib.get_system_data_dirs():
++                dir = os.path.join(xdg_dir, "glib-2.0", "schemas")
++                if os.path.exists(os.path.join(dir, schema_filename)):
++                    schema_dir = dir
++                    break
+ 
+         schema_path = os.path.join(schema_dir, schema_filename)
+         if not os.path.exists(schema_path):
diff --git a/pkgs/desktops/gnome-3/3.12/misc/goffice/0.8.nix b/pkgs/desktops/gnome-3/3.12/misc/goffice/0.8.nix
new file mode 100644
index 00000000000..02520a9f121
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/misc/goffice/0.8.nix
@@ -0,0 +1,37 @@
+{ fetchurl, stdenv, pkgconfig, glib, gtk, libglade, bzip2
+, pango, libgsf, libxml2, libart, intltool, gettext
+, cairo, gconf, libgnomeui, pcre, gnome3/*just meta*/ }:
+
+stdenv.mkDerivation rec {
+  name = "goffice-0.8.17";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/goffice/0.8/${name}.tar.xz";
+    sha256 = "165070beb67b84580afe80a8a100b674a81d553ab791acd72ac0c655f4fadb15";
+  };
+
+  # fix linking error: undefined reference to pcre_info
+  patches = [ ./pcre_info.patch ]; # inspired by https://bugs.php.net/bug.php?id=60986
+
+  buildInputs = [
+    pkgconfig libglade bzip2 libart intltool gettext
+    gconf libgnomeui pcre
+  ];
+
+  propagatedBuildInputs = [
+    # All these are in the "Requires:" field of `libgoffice-0.6.pc'.
+    glib libgsf libxml2 gtk libglade libart cairo pango
+  ];
+
+  postInstall =
+    ''
+      # Get GnuCash to build.  Might be unnecessary if we upgrade pkgconfig.
+      substituteInPlace $out/lib/pkgconfig/libgoffice-*.pc --replace Requires.private Requires
+    '';
+
+  doCheck = true;
+
+  meta = gnome3.goffice.meta // {
+    maintainers = [ ];
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.12/misc/goffice/default.nix b/pkgs/desktops/gnome-3/3.12/misc/goffice/default.nix
new file mode 100644
index 00000000000..0390fc13368
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/misc/goffice/default.nix
@@ -0,0 +1,36 @@
+{ fetchurl, stdenv, pkgconfig, intltool, glib, gtk3
+, libgsf, libxml2, libxslt, cairo, pango, librsvg, libspectre }:
+
+stdenv.mkDerivation rec {
+  name = "goffice-0.10.12";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/goffice/0.10/${name}.tar.xz";
+    sha256 = "0vh0sdig5n8sxzh4xx82lm8y8d0jcdhc2ipb1kq02qs142zs74ff";
+  };
+
+  nativeBuildInputs = [ pkgconfig intltool ];
+
+  propagatedBuildInputs = [ # ToDo lasem library for MathML, opt. introspection?
+    glib gtk3 libxml2 cairo pango libgsf
+  ];
+
+  buildInputs = [ libxslt librsvg ];
+
+  enableParallelBuilding = true;
+  doCheck = true;
+
+  meta = {
+    description = "A Glib/GTK+ set of document centric objects and utilities";
+
+    longDescription = ''
+      There are common operations for document centric applications that are
+      conceptually simple, but complex to implement fully: plugins, load/save
+      documents, undo/redo.
+    '';
+
+    license = "GPLv2+";
+
+    platforms = stdenv.lib.platforms.gnu;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.12/misc/goffice/pcre_info.patch b/pkgs/desktops/gnome-3/3.12/misc/goffice/pcre_info.patch
new file mode 100644
index 00000000000..cd4ef3c9fed
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/misc/goffice/pcre_info.patch
@@ -0,0 +1,13 @@
+diff --git a/goffice/utils/regutf8.c b/goffice/utils/regutf8.c
+index bc4aae4..3adb696 100644
+--- a/goffice/utils/regutf8.c
++++ b/goffice/utils/regutf8.c
+@@ -155,7 +155,7 @@ go_regcomp (GORegexp *gor, const char *pat, int cflags)
+ 		default: return GO_REG_BADPAT;
+ 		}
+ 	} else {
+-		gor->re_nsub = pcre_info (r, NULL, NULL);
++		gor->re_nsub = pcre_fullinfo (r, NULL, NULL, NULL);
+ 		gor->nosub = (cflags & GO_REG_NOSUB) != 0;
+ 		return 0;
+ 	}
diff --git a/pkgs/desktops/gnome-3/3.12/misc/gtkhtml/default.nix b/pkgs/desktops/gnome-3/3.12/misc/gtkhtml/default.nix
new file mode 100644
index 00000000000..5e27b474cbd
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/misc/gtkhtml/default.nix
@@ -0,0 +1,17 @@
+{ stdenv, fetchurl, pkgconfig, gtk3, intltool
+, gnome3, enchant, isocodes }:
+
+stdenv.mkDerivation rec {
+  name = "gtkhtml-4.6.6";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gtkhtml/4.6/${name}.tar.xz";
+    sha256 = "145d23bbe729ff4ee7e7027bb5ff405b34822271327fdd81fe913134831374cd";
+  };
+
+  buildInputs = [ pkgconfig gtk3 intltool gnome3.gnome_icon_theme
+                  gnome3.gsettings_desktop_schemas ];
+
+  propagatedBuildInputs = [ enchant isocodes ];
+
+}
diff --git a/pkgs/desktops/gnome-3/3.12/misc/libgit2-glib/default.nix b/pkgs/desktops/gnome-3/3.12/misc/libgit2-glib/default.nix
new file mode 100644
index 00000000000..17c3b4fa0a8
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/misc/libgit2-glib/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, gnome3, libtool, pkgconfig
+, gtk_doc, gobjectIntrospection, libgit2, glib }:
+
+stdenv.mkDerivation rec {
+  name = "libgit2-glib-${version}";
+  version = "0.0.10";
+
+  src = fetchurl {
+    url = "https://github.com/GNOME/libgit2-glib/archive/v${version}.tar.gz";
+    sha256 = "0zn3k85jw6yks8s5ca8dyh9mwh4if1lni9gz9bd5lqlpa803ixxs";
+  };
+
+  configureScript = "sh ./autogen.sh";
+
+  buildInputs = [ gnome3.gnome_common libtool pkgconfig
+                  gtk_doc gobjectIntrospection libgit2 glib ];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.12/misc/libmediaart/default.nix b/pkgs/desktops/gnome-3/3.12/misc/libmediaart/default.nix
new file mode 100644
index 00000000000..4985bfa902c
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.12/misc/libmediaart/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, pkgconfig, glib, gdk_pixbuf }:
+
+stdenv.mkDerivation rec {
+  name = "libmediaart-0.4.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/libmediaart/0.4/${name}.tar.xz";
+    sha256 = "e8ec92a642f4df7f988364f6451adf89e1611d7379a636d8c7eff4ca21a0fd1c";
+  };
+
+  buildInputs = [ pkgconfig glib gdk_pixbuf ];
+
+  meta = with stdenv.lib; {
+    description = "Library tasked with managing, extracting and handling media art caches";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}