summary refs log tree commit diff
diff options
context:
space:
mode:
authorLuca Bruno <lethalman88@gmail.com>2015-09-25 10:36:01 +0200
committerLuca Bruno <lethalman88@gmail.com>2015-09-25 10:48:41 +0200
commit26aea8b1aa798fa4cae5cf45953f8e3f3b7dbea9 (patch)
tree6d0f51f30841d919d2ff07ff305ae100a857b02a
parent41fc49ed7e94d9a0aef044a6ea34c142e376d3f7 (diff)
downloadnixpkgs-26aea8b1aa798fa4cae5cf45953f8e3f3b7dbea9.tar
nixpkgs-26aea8b1aa798fa4cae5cf45953f8e3f3b7dbea9.tar.gz
nixpkgs-26aea8b1aa798fa4cae5cf45953f8e3f3b7dbea9.tar.bz2
nixpkgs-26aea8b1aa798fa4cae5cf45953f8e3f3b7dbea9.tar.lz
nixpkgs-26aea8b1aa798fa4cae5cf45953f8e3f3b7dbea9.tar.xz
nixpkgs-26aea8b1aa798fa4cae5cf45953f8e3f3b7dbea9.tar.zst
nixpkgs-26aea8b1aa798fa4cae5cf45953f8e3f3b7dbea9.zip
gnome3: init 3.18
-rw-r--r--nixos/tests/gnome3_18.nix36
-rw-r--r--pkgs/desktops/gnome-3/3.18/apps/accerciser/default.nix28
-rw-r--r--pkgs/desktops/gnome-3/3.18/apps/bijiben/default.nix36
-rw-r--r--pkgs/desktops/gnome-3/3.18/apps/bijiben/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/apps/cheese/default.nix25
-rw-r--r--pkgs/desktops/gnome-3/3.18/apps/cheese/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/apps/evolution/default.nix49
-rw-r--r--pkgs/desktops/gnome-3/3.18/apps/evolution/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/apps/file-roller/default.nix25
-rw-r--r--pkgs/desktops/gnome-3/3.18/apps/file-roller/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/apps/gedit/default.nix33
-rw-r--r--pkgs/desktops/gnome-3/3.18/apps/gedit/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/apps/glade/default.nix30
-rw-r--r--pkgs/desktops/gnome-3/3.18/apps/glade/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/apps/gnome-boxes/default.nix42
-rw-r--r--pkgs/desktops/gnome-3/3.18/apps/gnome-boxes/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/apps/gnome-calendar/default.nix22
-rw-r--r--pkgs/desktops/gnome-3/3.18/apps/gnome-calendar/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/apps/gnome-characters/default.nix19
-rw-r--r--pkgs/desktops/gnome-3/3.18/apps/gnome-characters/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/apps/gnome-clocks/default.nix27
-rw-r--r--pkgs/desktops/gnome-3/3.18/apps/gnome-clocks/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/apps/gnome-documents/default.nix39
-rw-r--r--pkgs/desktops/gnome-3/3.18/apps/gnome-documents/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/apps/gnome-getting-started-docs/default.nix15
-rw-r--r--pkgs/desktops/gnome-3/3.18/apps/gnome-getting-started-docs/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/apps/gnome-logs/default.nix21
-rw-r--r--pkgs/desktops/gnome-3/3.18/apps/gnome-logs/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/apps/gnome-maps/default.nix25
-rw-r--r--pkgs/desktops/gnome-3/3.18/apps/gnome-maps/soup.patch10
-rw-r--r--pkgs/desktops/gnome-3/3.18/apps/gnome-maps/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/apps/gnome-music/default.nix30
-rw-r--r--pkgs/desktops/gnome-3/3.18/apps/gnome-music/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/apps/gnome-nettool/default.nix26
-rw-r--r--pkgs/desktops/gnome-3/3.18/apps/gnome-photos/default.nix31
-rw-r--r--pkgs/desktops/gnome-3/3.18/apps/gnome-photos/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/apps/gnome-weather/default.nix19
-rw-r--r--pkgs/desktops/gnome-3/3.18/apps/gnome-weather/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/apps/nautilus-sendto/default.nix22
-rw-r--r--pkgs/desktops/gnome-3/3.18/apps/polari/default.nix22
-rw-r--r--pkgs/desktops/gnome-3/3.18/apps/polari/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/apps/seahorse/default.nix35
-rw-r--r--pkgs/desktops/gnome-3/3.18/apps/seahorse/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/apps/vinagre/default.nix21
-rw-r--r--pkgs/desktops/gnome-3/3.18/apps/vinagre/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/adwaita-icon-theme/default.nix21
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/adwaita-icon-theme/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/baobab/default.nix32
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/baobab/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/caribou/default.nix31
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/dconf-editor/default.nix19
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/dconf-editor/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/dconf/default.nix23
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/empathy/default.nix57
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/eog/default.nix25
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/eog/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/epiphany/default.nix42
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/epiphany/libxml_depend.patch10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/epiphany/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/evince/default.nix64
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/evince/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/evolution-data-server/default.nix30
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/evolution-data-server/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/folks/default.nix43
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gconf/default.nix32
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gcr/default.nix28
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gcr/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/default.nix41
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/disable_x_access_control.patch15
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/sessions_dir.patch17
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/xserver_path.patch83
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gdm/default.nix41
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gdm/disable_x_access_control.patch13
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gdm/no-dbus-launch.patch20
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gdm/sessions_dir.patch17
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gdm/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gdm/xserver_path.patch15
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/geocode-glib/default.nix14
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/geocode-glib/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gjs/default.nix28
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gnome-backgrounds/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gnome-backgrounds/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gnome-bluetooth/default.nix23
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gnome-bluetooth/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gnome-calculator/default.nix30
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gnome-calculator/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gnome-common/default.nix17
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gnome-common/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gnome-contacts/default.nix47
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gnome-contacts/gio_unix.patch10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gnome-contacts/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gnome-control-center/default.nix59
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gnome-control-center/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gnome-control-center/vpn_plugins_path.patch19
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gnome-desktop/default.nix24
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gnome-desktop/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gnome-dictionary/default.nix32
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gnome-dictionary/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gnome-disk-utility/default.nix35
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gnome-disk-utility/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gnome-font-viewer/default.nix31
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gnome-font-viewer/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gnome-keyring/default.nix34
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gnome-keyring/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gnome-menus/default.nix22
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gnome-online-accounts/default.nix33
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gnome-online-accounts/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gnome-online-miners/default.nix37
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gnome-screenshot/default.nix31
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gnome-screenshot/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gnome-session/default.nix25
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gnome-session/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gnome-settings-daemon/default.nix31
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gnome-settings-daemon/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gnome-shell-extensions/default.nix19
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gnome-shell-extensions/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gnome-shell/default.nix57
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gnome-shell/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gnome-system-log/default.nix36
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gnome-system-monitor/default.nix32
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gnome-system-monitor/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gnome-terminal/default.nix28
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gnome-terminal/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gnome-themes-standard/default.nix14
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gnome-themes-standard/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gnome-user-docs/default.nix15
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gnome-user-docs/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gnome-user-share/default.nix45
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gnome-user-share/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/grilo-plugins/default.nix27
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/grilo/default.nix33
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/grilo/setup-hook.sh7
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gsettings-desktop-schemas/default.nix22
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gsettings-desktop-schemas/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gsound/default.nix22
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gtksourceview/default.nix22
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gtksourceview/nix_share_path.patch11
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gtksourceview/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gucharmap/default.nix33
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gucharmap/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/libcroco/default.nix20
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/libgdata/default.nix33
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/libgee/default.nix26
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/libgee/fix_introspection_paths.patch13
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/libgnome-keyring/default.nix26
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/libgnomekbd/default.nix24
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/libgweather/default.nix17
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/libgweather/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/libgxps/default.nix20
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/libpeas/default.nix20
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/libpeas/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/libzapojit/default.nix16
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/mutter/default.nix31
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/mutter/math.patch10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/mutter/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/mutter/x86.patch20
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/nautilus/default.nix25
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/nautilus/extension_dir.patch24
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/nautilus/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/rest/default.nix19
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/sushi/default.nix33
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/sushi/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/totem-pl-parser/default.nix20
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/totem/default.nix42
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/totem/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/tracker/default.nix55
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/vino/default.nix25
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/vino/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/vte/2.90.nix40
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/vte/default.nix39
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/vte/expose_select_text.0.40.0.patch226
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/vte/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/yelp-tools/default.nix17
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/yelp-tools/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/yelp-xsl/default.nix18
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/yelp-xsl/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/yelp/default.nix26
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/yelp/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/zenity/default.nix19
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/zenity/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/default.nix394
-rw-r--r--pkgs/desktops/gnome-3/3.18/desktop/rarian/default.nix16
-rw-r--r--pkgs/desktops/gnome-3/3.18/devtools/anjuta/default.nix24
-rw-r--r--pkgs/desktops/gnome-3/3.18/devtools/anjuta/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/devtools/devhelp/default.nix18
-rw-r--r--pkgs/desktops/gnome-3/3.18/devtools/devhelp/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/devtools/gdl/default.nix15
-rw-r--r--pkgs/desktops/gnome-3/3.18/devtools/gdl/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/devtools/gnome-devel-docs/default.nix15
-rw-r--r--pkgs/desktops/gnome-3/3.18/devtools/gnome-devel-docs/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/games/aisleriot/default.nix20
-rw-r--r--pkgs/desktops/gnome-3/3.18/games/aisleriot/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/games/five-or-more/default.nix19
-rw-r--r--pkgs/desktops/gnome-3/3.18/games/five-or-more/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/games/four-in-a-row/default.nix19
-rw-r--r--pkgs/desktops/gnome-3/3.18/games/four-in-a-row/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/games/gnome-chess/default.nix19
-rw-r--r--pkgs/desktops/gnome-3/3.18/games/gnome-chess/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/games/gnome-klotski/default.nix19
-rw-r--r--pkgs/desktops/gnome-3/3.18/games/gnome-klotski/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/games/gnome-mahjongg/default.nix19
-rw-r--r--pkgs/desktops/gnome-3/3.18/games/gnome-mahjongg/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/games/gnome-mines/default.nix19
-rw-r--r--pkgs/desktops/gnome-3/3.18/games/gnome-mines/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/games/gnome-nibbles/default.nix20
-rw-r--r--pkgs/desktops/gnome-3/3.18/games/gnome-nibbles/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/games/gnome-robots/default.nix19
-rw-r--r--pkgs/desktops/gnome-3/3.18/games/gnome-robots/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/games/gnome-sudoku/default.nix17
-rw-r--r--pkgs/desktops/gnome-3/3.18/games/gnome-sudoku/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/games/gnome-taquin/default.nix19
-rw-r--r--pkgs/desktops/gnome-3/3.18/games/gnome-taquin/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/games/gnome-tetravex/default.nix18
-rw-r--r--pkgs/desktops/gnome-3/3.18/games/gnome-tetravex/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/games/hitori/default.nix24
-rw-r--r--pkgs/desktops/gnome-3/3.18/games/iagno/default.nix19
-rw-r--r--pkgs/desktops/gnome-3/3.18/games/iagno/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/games/lightsoff/default.nix19
-rw-r--r--pkgs/desktops/gnome-3/3.18/games/lightsoff/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/games/quadrapassel/default.nix21
-rw-r--r--pkgs/desktops/gnome-3/3.18/games/quadrapassel/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/games/swell-foop/default.nix19
-rw-r--r--pkgs/desktops/gnome-3/3.18/games/swell-foop/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/games/tali/default.nix19
-rw-r--r--pkgs/desktops/gnome-3/3.18/games/tali/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/misc/california/0002-Build-with-evolution-data-server-3.13.90.patch39
-rw-r--r--pkgs/desktops/gnome-3/3.18/misc/california/default.nix39
-rw-r--r--pkgs/desktops/gnome-3/3.18/misc/geary/default.nix52
-rw-r--r--pkgs/desktops/gnome-3/3.18/misc/geary/disable_valadoc.patch24
-rw-r--r--pkgs/desktops/gnome-3/3.18/misc/gexiv2/default.nix28
-rw-r--r--pkgs/desktops/gnome-3/3.18/misc/gfbgraph/default.nix23
-rw-r--r--pkgs/desktops/gnome-3/3.18/misc/gitg/default.nix39
-rw-r--r--pkgs/desktops/gnome-3/3.18/misc/gitg/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/0001-Search-for-themes-and-icons-in-system-data-dirs.patch123
-rw-r--r--pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/0002-Don-t-show-multiple-entries-for-a-single-theme.patch103
-rw-r--r--pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/0003-Create-config-dir-if-it-doesn-t-exist.patch29
-rw-r--r--pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/default.nix44
-rw-r--r--pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/find_gsettings.patch22
-rw-r--r--pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/misc/gnome-video-effects/default.nix20
-rw-r--r--pkgs/desktops/gnome-3/3.18/misc/gpaste/default.nix44
-rw-r--r--pkgs/desktops/gnome-3/3.18/misc/gtkhtml/default.nix16
-rw-r--r--pkgs/desktops/gnome-3/3.18/misc/gtkhtml/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.18/misc/libgda/default.nix30
-rw-r--r--pkgs/desktops/gnome-3/3.18/misc/libgit2-glib/default.nix21
-rw-r--r--pkgs/desktops/gnome-3/3.18/misc/libmediaart/default.nix22
-rw-r--r--pkgs/desktops/gnome-3/3.18/misc/pomodoro/default.nix50
-rw-r--r--pkgs/top-level/all-packages.nix2
248 files changed, 5838 insertions, 0 deletions
diff --git a/nixos/tests/gnome3_18.nix b/nixos/tests/gnome3_18.nix
new file mode 100644
index 00000000000..971fd48b186
--- /dev/null
+++ b/nixos/tests/gnome3_18.nix
@@ -0,0 +1,36 @@
+import ./make-test.nix ({ pkgs, ...} : {
+  name = "gnome3";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ iElectric eelco chaoflow lethalman ];
+  };
+
+  machine =
+    { config, pkgs, ... }:
+
+    { imports = [ ./common/user-account.nix ];
+
+      services.xserver.enable = true;
+
+      services.xserver.displayManager.auto.enable = true;
+      services.xserver.displayManager.auto.user = "alice";
+      services.xserver.desktopManager.gnome3.enable = true;
+
+      environment.gnome3.packageSet = pkgs.gnome3_18;
+
+      virtualisation.memorySize = 512;
+    };
+
+  testScript =
+    ''
+      $machine->waitForX;
+      $machine->sleep(15);
+
+      # Check that logging in has given the user ownership of devices.
+      $machine->succeed("getfacl /dev/snd/timer | grep -q alice");
+
+      $machine->succeed("su - alice -c 'DISPLAY=:0.0 gnome-terminal &'");
+      $machine->waitForWindow(qr/Terminal/);
+      $machine->sleep(20);
+      $machine->screenshot("screen");
+    '';
+})
diff --git a/pkgs/desktops/gnome-3/3.18/apps/accerciser/default.nix b/pkgs/desktops/gnome-3/3.18/apps/accerciser/default.nix
new file mode 100644
index 00000000000..a2813e0581b
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/apps/accerciser/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook
+, itstool, libxml2, python3, python3Packages, pyatspi, at_spi2_core
+, dbus, intltool, libwnck3 }:
+
+stdenv.mkDerivation rec {
+  name = "accerciser-3.14.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/accerciser/3.14/${name}.tar.xz";
+    sha256 = "0x05gpajpcs01g7m34g6fxz8122cf9kx3k0lchwl34jy8xfr39gm";
+  };
+
+  buildInputs = [
+    pkgconfig gtk3 wrapGAppsHook itstool libxml2 python3 pyatspi
+    python3Packages.pygobject3 python3Packages.ipython
+    at_spi2_core dbus intltool libwnck3 gnome3.defaultIconTheme
+  ];
+
+  wrapPrefixVariables = [ "PYTHONPATH" ];
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Accerciser;
+    description = "Interactive Python accessibility explorer";
+    maintainers = gnome3.maintainers;
+    license = licenses.bsd3;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/apps/bijiben/default.nix b/pkgs/desktops/gnome-3/3.18/apps/bijiben/default.nix
new file mode 100644
index 00000000000..00895f9a2bb
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/apps/bijiben/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, intltool, fetchurl, pkgconfig, glib
+, evolution_data_server, evolution, sqlite
+, makeWrapper, itstool, desktop_file_utils
+, clutter_gtk, libuuid, webkitgtk, zeitgeist
+, gnome3, librsvg, gdk_pixbuf, libxml2 }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  doCheck = true;
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+
+  buildInputs = [ pkgconfig glib intltool itstool libxml2
+                  clutter_gtk libuuid webkitgtk gnome3.tracker
+                  gnome3.gnome_online_accounts zeitgeist desktop_file_utils
+                  gnome3.gsettings_desktop_schemas makeWrapper
+                  gdk_pixbuf gnome3.defaultIconTheme librsvg
+                  evolution_data_server evolution sqlite ];
+
+  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"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Bijiben;
+    description = "Note editor designed to remain simple to use";
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/apps/bijiben/src.nix b/pkgs/desktops/gnome-3/3.18/apps/bijiben/src.nix
new file mode 100644
index 00000000000..9eb11c0e379
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/apps/bijiben/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "bijiben-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/bijiben/3.18/bijiben-3.18.0.tar.xz;
+    sha256 = "3e933eae3776ae50a639f0866b5c11279961b5ebdaa83a621509dfe31c218fea";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/apps/cheese/default.nix b/pkgs/desktops/gnome-3/3.18/apps/cheese/default.nix
new file mode 100644
index 00000000000..ed5bbf6ca22
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/apps/cheese/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, intltool, fetchurl, wrapGAppsHook, gnome-video-effects, libcanberra_gtk3
+, pkgconfig, gtk3, glib, clutter_gtk, clutter-gst_2, udev, gst_all_1, itstool
+, adwaita-icon-theme, librsvg, gdk_pixbuf, gnome3, gnome_desktop, libxml2 }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  buildInputs = [ pkgconfig gtk3 glib intltool wrapGAppsHook gnome-video-effects itstool
+                  gdk_pixbuf adwaita-icon-theme librsvg udev gst_all_1.gstreamer libxml2
+                  gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good gnome_desktop
+                  gst_all_1.gst-plugins-bad clutter_gtk clutter-gst_2
+                  libcanberra_gtk3 ];
+
+  enableParallelBuilding = true;
+
+  NIX_CFLAGS_COMPILE = "-I${glib}/include/gio-unix-2.0";
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Cheese;
+    description = "Take photos and videos with your webcam, with fun graphical effects";
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/apps/cheese/src.nix b/pkgs/desktops/gnome-3/3.18/apps/cheese/src.nix
new file mode 100644
index 00000000000..7e47c2c4950
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/apps/cheese/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "cheese-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/cheese/3.18/cheese-3.18.0.tar.xz;
+    sha256 = "65ba4a60be51b9fc5537e5c1cdb6605b3098145982fae75a08ace94b965aeb0b";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/apps/evolution/default.nix b/pkgs/desktops/gnome-3/3.18/apps/evolution/default.nix
new file mode 100644
index 00000000000..a9bb87d4ddd
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/apps/evolution/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, intltool, fetchurl, libxml2, webkitgtk, highlight
+, pkgconfig, gtk3, glib, libnotify, gtkspell3
+, makeWrapper, itstool, shared_mime_info, libical, db, gcr, sqlite
+, gnome3, librsvg, gdk_pixbuf, libsecret, nss, nspr, icu, libtool
+, libcanberra_gtk3, bogofilter, gst_all_1, procps, p11_kit }:
+
+let
+  majVer = gnome3.version;
+in stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  doCheck = true;
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+
+  propagatedBuildInputs = [ gnome3.gtkhtml ];
+
+  buildInputs = [ pkgconfig gtk3 glib intltool itstool libxml2 libtool
+                  gdk_pixbuf gnome3.defaultIconTheme librsvg db icu
+                  gnome3.evolution_data_server libsecret libical gcr
+                  webkitgtk shared_mime_info gnome3.gnome_desktop gtkspell3
+                  libcanberra_gtk3 bogofilter gnome3.libgdata sqlite
+                  gst_all_1.gstreamer gst_all_1.gst-plugins-base p11_kit
+                  nss nspr libnotify procps highlight gnome3.libgweather
+                  gnome3.gsettings_desktop_schemas makeWrapper ];
+
+  configureFlags = [ "--disable-spamassassin" "--disable-pst-import" "--disable-autoar"
+                     "--disable-libcryptui" ];
+
+  NIX_CFLAGS_COMPILE = "-I${nspr}/include/nspr -I${nss}/include/nss -I${glib}/include/gio-unix-2.0";
+
+  enableParallelBuilding = true;
+
+  preFixup = ''
+    for f in $out/bin/* $out/libexec/*; do
+      wrapProgram "$f" \
+        --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+        --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+    done
+  '';
+
+  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 = gnome3.maintainers;
+    license = licenses.lgpl2Plus;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/apps/evolution/src.nix b/pkgs/desktops/gnome-3/3.18/apps/evolution/src.nix
new file mode 100644
index 00000000000..46af1c8b8bb
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/apps/evolution/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "evolution-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/evolution/3.18/evolution-3.18.0.tar.xz;
+    sha256 = "a3efe42a861200c0463476e0a02e566fde74a0d4a699d8cc6514c031d5cad410";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/apps/file-roller/default.nix b/pkgs/desktops/gnome-3/3.18/apps/file-roller/default.nix
new file mode 100644
index 00000000000..4e35676f3cb
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/apps/file-roller/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, glib, pkgconfig, gnome3, intltool, itstool, libxml2, libarchive
+, attr, bzip2, acl, makeWrapper, librsvg, gdk_pixbuf }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  # 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
+                  gnome3.defaultIconTheme attr bzip2 acl gdk_pixbuf librsvg
+                  makeWrapper ];
+
+  preFixup = ''
+    wrapProgram "$out/bin/file-roller" \
+      --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH:$out/share"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/FileRoller;
+    description = "Archive manager for the GNOME desktop environment";
+    platforms = platforms.linux;
+    maintainers = gnome3.maintainers;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/apps/file-roller/src.nix b/pkgs/desktops/gnome-3/3.18/apps/file-roller/src.nix
new file mode 100644
index 00000000000..3e166f996e9
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/apps/file-roller/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "file-roller-3.16.4";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/file-roller/3.16/file-roller-3.16.4.tar.xz;
+    sha256 = "5455980b2c9c7eb063d2d65560ae7ab2e7f01b208ea3947e151680231c7a4185";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/apps/gedit/default.nix b/pkgs/desktops/gnome-3/3.18/apps/gedit/default.nix
new file mode 100644
index 00000000000..6cff4bdee48
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/apps/gedit/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, intltool, fetchurl, enchant, isocodes
+, pkgconfig, gtk3, glib
+, bash, makeWrapper, itstool, libsoup, libxml2
+, gnome3, librsvg, gdk_pixbuf, file }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+
+  buildInputs = [ pkgconfig gtk3 glib intltool itstool enchant isocodes
+                  gdk_pixbuf gnome3.defaultIconTheme librsvg libsoup
+                  gnome3.libpeas gnome3.gtksourceview libxml2
+                  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.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 = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/apps/gedit/src.nix b/pkgs/desktops/gnome-3/3.18/apps/gedit/src.nix
new file mode 100644
index 00000000000..ff427fdfb90
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/apps/gedit/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gedit-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gedit/3.18/gedit-3.18.0.tar.xz;
+    sha256 = "9abd4f1478385f8b6c983298206f4ab1a25c682b9c87fb00d759b7db5b949533";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/apps/glade/default.nix b/pkgs/desktops/gnome-3/3.18/apps/glade/default.nix
new file mode 100644
index 00000000000..a0f8d966955
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/apps/glade/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, intltool, fetchurl, python
+, pkgconfig, gtk3, glib
+, makeWrapper, itstool, libxml2, docbook_xsl
+, gnome3, librsvg, gdk_pixbuf, libxslt }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+
+  buildInputs = [ pkgconfig gtk3 glib intltool itstool libxml2 python
+                  gnome3.gsettings_desktop_schemas makeWrapper docbook_xsl
+                  gdk_pixbuf gnome3.defaultIconTheme librsvg libxslt ];
+
+  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"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Glade;
+    description = "User interface designer for GTK+ applications";
+    maintainers = gnome3.maintainers;
+    license = licenses.lgpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/apps/glade/src.nix b/pkgs/desktops/gnome-3/3.18/apps/glade/src.nix
new file mode 100644
index 00000000000..aaa913babea
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/apps/glade/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "glade-3.18.3";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/glade/3.18/glade-3.18.3.tar.xz;
+    sha256 = "ecdbce46e7fbfecd463be840b94fbf54d83723b3ebe075414cfd225ddab66452";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-boxes/default.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-boxes/default.nix
new file mode 100644
index 00000000000..90955bd3ccf
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-boxes/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl, makeWrapper, pkgconfig, intltool, itstool, libvirt-glib
+, glib, gobjectIntrospection, libxml2, gtk3, gtkvnc, libvirt, spice_gtk
+, spice_protocol, libuuid, libsoup, libosinfo, systemd, tracker, vala
+, libcap_ng, libcap, yajl, gmp, gdbm, cyrus_sasl, gnome3, librsvg
+, desktop_file_utils, mtools, cdrkit, libcdio
+, libusb, libarchive, acl
+}:
+
+# TODO: ovirt (optional)
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  enableParallelBuilding = true;
+
+  doCheck = true;
+
+  buildInputs = [
+    makeWrapper pkgconfig intltool itstool libvirt-glib glib
+    gobjectIntrospection libxml2 gtk3 gtkvnc libvirt spice_gtk spice_protocol
+    libuuid libsoup libosinfo systemd tracker vala libcap_ng libcap yajl gmp
+    gdbm cyrus_sasl gnome3.defaultIconTheme libusb libarchive
+    librsvg desktop_file_utils acl
+  ];
+
+  preFixup = ''
+    for prog in "$out/bin/"*; do
+        wrapProgram "$prog" \
+            --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 PATH : "${mtools}/bin:${cdrkit}/bin:${libcdio}/bin"
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Simple GNOME 3 application to access remote or virtual systems";
+    homepage = https://wiki.gnome.org/action/show/Apps/Boxes;
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ bjornfor ];
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-boxes/src.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-boxes/src.nix
new file mode 100644
index 00000000000..06543540e76
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-boxes/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gnome-boxes-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gnome-boxes/3.18/gnome-boxes-3.18.0.tar.xz;
+    sha256 = "ed2b442fc676bdfa47d6b6326836238c2c98af9725a91eb023784a3e692ae749";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-calendar/default.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-calendar/default.nix
new file mode 100644
index 00000000000..cbd5a84bdb5
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-calendar/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook
+, intltool, evolution_data_server, sqlite, libxml2, libsoup
+, glib, gnome_online_accounts }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
+
+  buildInputs = [
+    pkgconfig gtk3 wrapGAppsHook intltool evolution_data_server
+    sqlite libxml2 libsoup glib gnome3.defaultIconTheme gnome_online_accounts
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Calendar;
+    description = "Simple and beautiful calendar application for GNOME";
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-calendar/src.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-calendar/src.nix
new file mode 100644
index 00000000000..6b941b592e5
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-calendar/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gnome-calendar-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gnome-calendar/3.18/gnome-calendar-3.18.0.tar.xz;
+    sha256 = "f7d50fe8d5d3dcc574f0034dba6a64cbb9b3f842faab5978c9d02b38548f355b";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-characters/default.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-characters/default.nix
new file mode 100644
index 00000000000..4571a5d50e8
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-characters/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook
+, intltool, gjs, gdk_pixbuf, librsvg }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  buildInputs = [
+    pkgconfig gtk3 wrapGAppsHook intltool gjs gdk_pixbuf
+    librsvg gnome3.defaultIconTheme
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Design/Apps/CharacterMap;
+    description = "Simple utility application to find and insert unusual characters";
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-characters/src.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-characters/src.nix
new file mode 100644
index 00000000000..a957aa91d75
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-characters/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gnome-characters-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gnome-characters/3.18/gnome-characters-3.18.0.tar.xz;
+    sha256 = "e068b2275a08639565a88b096d378a4ac2abf90301ff43056bb5157dff54ce08";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-clocks/default.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-clocks/default.nix
new file mode 100644
index 00000000000..e39614e765d
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-clocks/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, intltool, fetchurl, libgweather, libnotify
+, pkgconfig, gtk3, glib, gsound
+, makeWrapper, itstool, libcanberra_gtk3, libtool
+, gnome3, librsvg, gdk_pixbuf, geoclue2, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  doCheck = true;
+
+  buildInputs = [ pkgconfig gtk3 glib intltool itstool libcanberra_gtk3
+                  gnome3.gsettings_desktop_schemas makeWrapper
+                  gdk_pixbuf gnome3.defaultIconTheme librsvg
+                  gnome3.gnome_desktop gnome3.geocode_glib geoclue2
+                  libgweather libnotify libtool gsound
+                  wrapGAppsHook ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Clocks;
+    description = "Clock application designed for GNOME 3";
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-clocks/src.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-clocks/src.nix
new file mode 100644
index 00000000000..9f0be0ede98
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-clocks/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gnome-clocks-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gnome-clocks/3.18/gnome-clocks-3.18.0.tar.xz;
+    sha256 = "ca0818ec89e3539201da6b5388365e3d66df815198beccc90e2be44c7822baa0";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-documents/default.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-documents/default.nix
new file mode 100644
index 00000000000..7f1f70114b7
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-documents/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, intltool, fetchurl, evince, gjs
+, pkgconfig, gtk3, glib
+, makeWrapper, itstool, libxslt, webkitgtk
+, gnome3, librsvg, gdk_pixbuf, libsoup, docbook_xsl
+, gobjectIntrospection, json_glib, inkscape, poppler_utils
+, gmp, desktop_file_utils, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  doCheck = true;
+
+  configureFlags = [ "--enable-getting-started" ];
+
+  buildInputs = [ pkgconfig gtk3 glib intltool itstool libxslt
+                  docbook_xsl desktop_file_utils inkscape poppler_utils
+                  gnome3.gsettings_desktop_schemas makeWrapper gmp
+                  gdk_pixbuf gnome3.defaultIconTheme librsvg evince
+                  libsoup webkitgtk gjs gobjectIntrospection gnome3.rest
+                  gnome3.tracker gnome3.libgdata gnome3.gnome_online_accounts
+                  gnome3.gnome_desktop gnome3.libzapojit json_glib
+                  wrapGAppsHook ];
+
+  enableParallelBuilding = true;
+
+  preFixup = ''
+    substituteInPlace $out/bin/gnome-documents --replace gapplication "${glib}/bin/gapplication"
+
+    gappsWrapperArgs+=(--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')
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Documents;
+    description = "Document manager application designed to work with GNOME 3";
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-documents/src.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-documents/src.nix
new file mode 100644
index 00000000000..5906bade1ef
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-documents/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gnome-documents-3.18.0.1";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gnome-documents/3.18/gnome-documents-3.18.0.1.tar.xz;
+    sha256 = "0b19593e949276de71cb7292bb77520eb3cd915ac8c71d27a8d05f79b9e86816";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-getting-started-docs/default.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-getting-started-docs/default.nix
new file mode 100644
index 00000000000..0c75ebd7c78
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-getting-started-docs/default.nix
@@ -0,0 +1,15 @@
+{ stdenv, fetchurl, gnome3, intltool, itstool, libxml2 }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  buildInputs = [ intltool itstool libxml2 ];
+
+  meta = with stdenv.lib; {
+    homepage = https://live.gnome.org/DocumentationProject;
+    description = "Help a new user get started in GNOME";
+    maintainers = gnome3.maintainers;
+    license = licenses.cc-by-sa-30;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-getting-started-docs/src.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-getting-started-docs/src.nix
new file mode 100644
index 00000000000..a4ed1d6b909
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-getting-started-docs/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gnome-getting-started-docs-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gnome-getting-started-docs/3.18/gnome-getting-started-docs-3.18.0.tar.xz;
+    sha256 = "5ef0373c5a864fefdecb17bffdfc2cca00fb2abf93756b1df9062e12208925d6";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-logs/default.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-logs/default.nix
new file mode 100644
index 00000000000..d4135fdb1ba
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-logs/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook
+, intltool, itstool, libxml2, systemd }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  configureFlags = [ "--disable-tests" ];
+
+  buildInputs = [
+    pkgconfig gtk3 wrapGAppsHook intltool itstool libxml2
+    systemd gnome3.defaultIconTheme
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Logs;
+    description = "A log viewer for the systemd journal";
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-logs/src.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-logs/src.nix
new file mode 100644
index 00000000000..b077f8cee4d
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-logs/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gnome-logs-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gnome-logs/3.18/gnome-logs-3.18.0.tar.xz;
+    sha256 = "7602b55d47b5d889be7547869a0a48f03f6b22a1c872b86ed70049695d06d699";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-maps/default.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-maps/default.nix
new file mode 100644
index 00000000000..b9aac0539ae
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-maps/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, intltool, pkgconfig, gnome3, gtk3
+, gobjectIntrospection, gdk_pixbuf, librsvg, autoreconfHook
+, geoclue2, wrapGAppsHook, folks, libchamplain, gfbgraph, file, libsoup }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  doCheck = true;
+
+  buildInputs = [ pkgconfig intltool gobjectIntrospection wrapGAppsHook
+                  gtk3 geoclue2 gnome3.gjs gnome3.libgee folks gfbgraph
+                  gnome3.geocode_glib libchamplain file libsoup
+                  gdk_pixbuf librsvg autoreconfHook
+                  gnome3.gnome_online_accounts gnome3.defaultIconTheme ];
+
+  patches = [ ./soup.patch ];
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Maps;
+    description = "A map application for GNOME 3";
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-maps/soup.patch b/pkgs/desktops/gnome-3/3.18/apps/gnome-maps/soup.patch
new file mode 100644
index 00000000000..e7e86ba76c7
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-maps/soup.patch
@@ -0,0 +1,10 @@
+--- gnome-maps-3.18.0/configure.ac.orig	2015-09-24 18:38:31.912498368 +0200
++++ gnome-maps-3.18.0/configure.ac	2015-09-24 18:38:40.783320413 +0200
+@@ -50,6 +50,7 @@
+     folks                        >= $FOLKS_MIN_VERSION
+     geocode-glib-1.0             >= $GEOCODE_MIN_VERSION
+     champlain-0.12               >= $CHAMPLAIN_MIN_VERSION
++    libsoup-2.4
+ ])
+ AC_SUBST(GNOME_MAPS_LIB_CFLAGS)
+ AC_SUBST(GNOME_MAPS_LIB_LIBS)
diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-maps/src.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-maps/src.nix
new file mode 100644
index 00000000000..9d33216480d
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-maps/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gnome-maps-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gnome-maps/3.18/gnome-maps-3.18.0.tar.xz;
+    sha256 = "242f70346a1527ba0d9a664bd863b02e2227f9f0f0f577b9b0c00dc3075eb85e";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-music/default.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-music/default.nix
new file mode 100644
index 00000000000..bb89ef84202
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-music/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, intltool, fetchurl, gdk_pixbuf, tracker
+, python3, libxml2, python3Packages, libnotify, wrapGAppsHook
+, pkgconfig, gtk3, glib, cairo
+, makeWrapper, itstool, gnome3, librsvg, gst_all_1 }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+
+  buildInputs = [ pkgconfig gtk3 glib intltool itstool gnome3.libmediaart
+                  gdk_pixbuf gnome3.defaultIconTheme librsvg python3
+                  gnome3.grilo gnome3.grilo-plugins libxml2 python3Packages.pygobject3 libnotify
+                  python3Packages.pycairo python3Packages.dbus gnome3.totem-pl-parser
+                  gst_all_1.gstreamer gst_all_1.gst-plugins-base wrapGAppsHook
+                  gst_all_1.gst-plugins-good gst_all_1.gst-plugins-bad
+                  gnome3.gsettings_desktop_schemas makeWrapper tracker ];
+
+  wrapPrefixVariables = [ "PYTHONPATH" ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Music;
+    description = "Music player and management application for the GNOME desktop environment";
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-music/src.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-music/src.nix
new file mode 100644
index 00000000000..de2cf605486
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-music/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gnome-music-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gnome-music/3.18/gnome-music-3.18.0.tar.xz;
+    sha256 = "e2e4b99a57c7b5c83ce3deccd38880cbafb875b423ab276204af523bc648d69c";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-nettool/default.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-nettool/default.nix
new file mode 100644
index 00000000000..4c152777f2c
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-nettool/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook
+, libgtop, intltool, itstool, libxml2, nmap, inetutils }:
+
+stdenv.mkDerivation rec {
+  name = "gnome-nettool-3.8.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-nettool/3.8/${name}.tar.xz";
+    sha256 = "1c9cvzvyqgfwa5zzyvp7118pkclji62fkbb33g4y9sp5kw6m397h";
+  };
+
+  buildInputs = [
+    pkgconfig gtk3 wrapGAppsHook libgtop intltool itstool libxml2
+    gnome3.defaultIconTheme
+  ];
+
+  propagatedUserEnvPkgs = [ nmap inetutils ];
+
+  meta = with stdenv.lib; {
+    homepage = http://projects.gnome.org/gnome-network;
+    description = "A collection of networking tools";
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-photos/default.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-photos/default.nix
new file mode 100644
index 00000000000..eaace044af0
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-photos/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, intltool, fetchurl, exempi, libxml2
+, pkgconfig, gtk3, glib
+, makeWrapper, itstool, gegl, babl, lcms2
+, desktop_file_utils, gmp, libmediaart, wrapGAppsHook
+, gnome3, librsvg, gdk_pixbuf, libexif }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  # doCheck = true;
+
+  NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
+
+  buildInputs = [ pkgconfig gtk3 glib intltool itstool gegl babl gnome3.libgdata
+                  gnome3.gsettings_desktop_schemas makeWrapper gmp libmediaart
+                  gdk_pixbuf gnome3.defaultIconTheme librsvg exempi
+                  gnome3.gfbgraph gnome3.grilo-plugins gnome3.grilo
+                  gnome3.gnome_online_accounts gnome3.gnome_desktop
+                  lcms2 libexif gnome3.tracker libxml2 desktop_file_utils
+                  wrapGAppsHook ];
+
+  enableParallelBuilding = true;
+
+  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 = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-photos/src.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-photos/src.nix
new file mode 100644
index 00000000000..1af6b71cdb9
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-photos/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gnome-photos-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gnome-photos/3.18/gnome-photos-3.18.0.tar.xz;
+    sha256 = "5ca74b33de33da125059918e2d7c665ff78ac1adfbc04c98b3378e705cc73a54";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-weather/default.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-weather/default.nix
new file mode 100644
index 00000000000..f4d2c8ad0c1
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-weather/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook, gjs
+, libgweather, intltool, itstool }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  buildInputs = [
+    pkgconfig gtk3 wrapGAppsHook gjs intltool itstool
+    libgweather gnome3.defaultIconTheme
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Weather;
+    description = "Access current weather conditions and forecasts";
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-weather/src.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-weather/src.nix
new file mode 100644
index 00000000000..b1dc538815d
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-weather/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gnome-weather-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gnome-weather/3.18/gnome-weather-3.18.0.tar.xz;
+    sha256 = "fa0c098bef351af7457abf0ef6bd0afb62d727f041a15107e02693c9c7bd48aa";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/apps/nautilus-sendto/default.nix b/pkgs/desktops/gnome-3/3.18/apps/nautilus-sendto/default.nix
new file mode 100644
index 00000000000..093900dcb7a
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/apps/nautilus-sendto/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, glib, pkgconfig, gnome3, intltool
+, gobjectIntrospection, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "nautilus-sendto-${version}";
+
+  version = "3.8.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/nautilus-sendto/3.8/${name}.tar.xz";
+    sha256 = "03fa46bff271acdbdedab6243b2a84e5ed3daa19c81b69d087b3e852c8fe5dab";
+  };
+
+  buildInputs = [ glib pkgconfig gobjectIntrospection intltool makeWrapper ];
+
+  meta = with stdenv.lib; {
+    description = "Integrates Evolution and Pidgin into the Nautilus file manager";
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/apps/polari/default.nix b/pkgs/desktops/gnome-3/3.18/apps/polari/default.nix
new file mode 100644
index 00000000000..8efaa4e4aac
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/apps/polari/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, intltool, fetchurl, gdk_pixbuf, adwaita-icon-theme
+, telepathy_glib, gjs, itstool, telepathy_idle
+, pkgconfig, gtk3, glib, librsvg, gnome3, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  propagatedUserEnvPkgs = [ telepathy_idle ];
+
+  buildInputs = [ pkgconfig gtk3 glib intltool itstool adwaita-icon-theme wrapGAppsHook
+                  telepathy_glib gjs gdk_pixbuf librsvg ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Polari;
+    description = "IRC chat client designed to integrate with the GNOME desktop";
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/apps/polari/src.nix b/pkgs/desktops/gnome-3/3.18/apps/polari/src.nix
new file mode 100644
index 00000000000..9d7497b61c7
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/apps/polari/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "polari-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/polari/3.18/polari-3.18.0.tar.xz;
+    sha256 = "7b98c820a1e9a25a0f3a927e8d4ba8400296041f783301a764e37840c7ef6018";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/apps/seahorse/default.nix b/pkgs/desktops/gnome-3/3.18/apps/seahorse/default.nix
new file mode 100644
index 00000000000..3b78babadd9
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/apps/seahorse/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, intltool, fetchurl, vala
+, pkgconfig, gtk3, glib
+, makeWrapper, itstool, gnupg, libsoup
+, gnome3, librsvg, gdk_pixbuf, gpgme
+, libsecret, avahi, p11_kit, openssh }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  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.defaultIconTheme librsvg gpgme
+                  libsecret avahi libsoup p11_kit vala gnome3.gcr
+                  openssh ];
+
+  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"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Seahorse;
+    description = "Application for managing encryption keys and passwords in the GnomeKeyring";
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/apps/seahorse/src.nix b/pkgs/desktops/gnome-3/3.18/apps/seahorse/src.nix
new file mode 100644
index 00000000000..1d790c81e4f
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/apps/seahorse/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "seahorse-3.16.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/seahorse/3.16/seahorse-3.16.0.tar.xz;
+    sha256 = "770a5f03b8745054ef04cef9923dd713b1fbf309169150bc8dd32d7e5f7ee131";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/apps/vinagre/default.nix b/pkgs/desktops/gnome-3/3.18/apps/vinagre/default.nix
new file mode 100644
index 00000000000..8b8b6248642
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/apps/vinagre/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, pkgconfig, gtk3, gnome3, vte, libxml2, gtkvnc, intltool
+, libsecret, itstool, makeWrapper, librsvg }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  buildInputs = [ pkgconfig gtk3 vte libxml2 gtkvnc intltool libsecret
+                  itstool makeWrapper gnome3.defaultIconTheme librsvg ];
+
+  preFixup = ''
+    wrapProgram "$out/bin/vinagre" \
+      --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH:$out/share"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Vinagre;
+    description = "Remote desktop viewer for GNOME";
+    platforms = platforms.linux;
+    maintainers = gnome3.maintainers;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/apps/vinagre/src.nix b/pkgs/desktops/gnome-3/3.18/apps/vinagre/src.nix
new file mode 100644
index 00000000000..94b6d8a83e1
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/apps/vinagre/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "vinagre-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/vinagre/3.18/vinagre-3.18.0.tar.xz;
+    sha256 = "77214384c03df985551a5094ea16fd3f42b74c708123128b29baff6458b2fef9";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/adwaita-icon-theme/default.nix b/pkgs/desktops/gnome-3/3.18/core/adwaita-icon-theme/default.nix
new file mode 100644
index 00000000000..3c3a05dc3af
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/adwaita-icon-theme/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, pkgconfig, intltool, gnome3
+, iconnamingutils, gtk, gdk_pixbuf, librsvg, hicolor_icon_theme }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  # For convenience, we can specify adwaita-icon-theme only in packages
+  propagatedBuildInputs = [ hicolor_icon_theme ];
+
+  buildInputs = [ gdk_pixbuf librsvg ];
+
+  nativeBuildInputs = [ pkgconfig intltool iconnamingutils gtk ];
+
+  # remove a tree of dirs with no files within
+  postInstall = '' rm -rf "$out/locale" '';
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+    maintainers = gnome3.maintainers;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/adwaita-icon-theme/src.nix b/pkgs/desktops/gnome-3/3.18/core/adwaita-icon-theme/src.nix
new file mode 100644
index 00000000000..59fc291eb4e
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/adwaita-icon-theme/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "adwaita-icon-theme-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/adwaita-icon-theme/3.18/adwaita-icon-theme-3.18.0.tar.xz;
+    sha256 = "5e9ce726001fdd8ee93c394fdc3cdb9e1603bbed5b7c62df453ccf521ec50e58";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/baobab/default.nix b/pkgs/desktops/gnome-3/3.18/core/baobab/default.nix
new file mode 100644
index 00000000000..2ff85662bbb
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/baobab/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, intltool, fetchurl, vala, libgtop
+, pkgconfig, gtk3, glib
+, bash, makeWrapper, itstool, libxml2
+, gnome3, librsvg, gdk_pixbuf, file }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  doCheck = true;
+
+  NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+
+  buildInputs = [ vala pkgconfig gtk3 glib libgtop intltool itstool libxml2
+                  gnome3.gsettings_desktop_schemas makeWrapper file
+                  gdk_pixbuf gnome3.defaultIconTheme librsvg ];
+
+  preFixup = ''
+    wrapProgram "$out/bin/baobab" \
+      --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"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Baobab;
+    description = "Graphical application to analyse disk usage in any Gnome environment";
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/baobab/src.nix b/pkgs/desktops/gnome-3/3.18/core/baobab/src.nix
new file mode 100644
index 00000000000..5032262f278
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/baobab/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "baobab-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/baobab/3.18/baobab-3.18.0.tar.xz;
+    sha256 = "75924c53dd0e94d97c2f0ec30270fa3ffc59adfab7e21aac3ed9c6c088760b5a";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/caribou/default.nix b/pkgs/desktops/gnome-3/3.18/core/caribou/default.nix
new file mode 100644
index 00000000000..c2cb6a661ab
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/caribou/default.nix
@@ -0,0 +1,31 @@
+{ fetchurl, stdenv, pkgconfig, gnome3, clutter, dbus, pythonPackages, libxml2, autoconf
+, libxklavier, libXtst, gtk2, intltool, libxslt, at_spi2_core, automake114x }:
+
+let
+  majorVersion = "0.4";
+in
+stdenv.mkDerivation rec {
+  name = "caribou-${majorVersion}.18.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/caribou/${majorVersion}/${name}.tar.xz";
+    sha256 = "0l1ikx56ddgayvny3s2xv8hs3p23xsclw4zljs3cczv4b89dzymf";
+  };
+
+  buildInputs = with gnome3;
+    [ glib pkgconfig gtk clutter at_spi2_core dbus pythonPackages.python automake114x
+      pythonPackages.pygobject3 libxml2 libXtst gtk2 intltool libxslt autoconf ];
+
+  propagatedBuildInputs = [ gnome3.libgee libxklavier ];
+
+  preBuild = ''
+    patchShebangs .
+    substituteInPlace libcaribou/Makefile.am --replace "--shared-library=libcaribou.so.0" "--shared-library=$out/lib/libcaribou.so.0"
+  '';
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+    maintainers = gnome3.maintainers;
+  };
+
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/dconf-editor/default.nix b/pkgs/desktops/gnome-3/3.18/core/dconf-editor/default.nix
new file mode 100644
index 00000000000..5b2b055fe66
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/dconf-editor/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, vala, libxslt, pkgconfig, glib, dbus_glib, gnome3
+, libxml2, intltool, docbook_xsl_ns, docbook_xsl, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  buildInputs = [ vala libxslt pkgconfig glib dbus_glib gnome3.gtk libxml2 gnome3.defaultIconTheme
+                  intltool docbook_xsl docbook_xsl_ns makeWrapper gnome3.dconf ];
+
+  preFixup = ''
+    wrapProgram "$out/bin/dconf-editor" \
+      --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+  '';
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+    maintainers = gnome3.maintainers;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/dconf-editor/src.nix b/pkgs/desktops/gnome-3/3.18/core/dconf-editor/src.nix
new file mode 100644
index 00000000000..eb15838bb48
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/dconf-editor/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "dconf-editor-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/dconf-editor/3.18/dconf-editor-3.18.0.tar.xz;
+    sha256 = "6579b8b216b068acae7d8301b5e2d57054c85a3f147c92355ffa46a62c052534";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/dconf/default.nix b/pkgs/desktops/gnome-3/3.18/core/dconf/default.nix
new file mode 100644
index 00000000000..990e2007a23
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/dconf/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, vala, libxslt, pkgconfig, glib, dbus_glib, gnome3
+, libxml2, intltool, docbook_xsl_ns, docbook_xsl, makeWrapper }:
+
+let
+  majorVersion = "0.24";
+in
+stdenv.mkDerivation rec {
+  name = "dconf-${version}";
+  version = "${majorVersion}.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/dconf/${majorVersion}/${name}.tar.xz";
+    sha256 = "4373e0ced1f4d7d68d518038796c073696280e22957babb29feb0267c630fec2";
+  };
+
+  buildInputs = [ vala libxslt pkgconfig glib dbus_glib gnome3.gtk libxml2
+                  intltool docbook_xsl docbook_xsl_ns makeWrapper ];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+    maintainers = gnome3.maintainers;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/empathy/default.nix b/pkgs/desktops/gnome-3/3.18/core/empathy/default.nix
new file mode 100644
index 00000000000..4c42c6c026d
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/empathy/default.nix
@@ -0,0 +1,57 @@
+{ stdenv, intltool, fetchurl, webkitgtk, pkgconfig, gtk3, glib
+, file, librsvg, 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, libpulseaudio, 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
+
+let
+  majorVersion = "3.12";
+in
+stdenv.mkDerivation rec {
+  name = "empathy-${majorVersion}.8";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/empathy/${majorVersion}/${name}.tar.xz";
+    sha256 = "10z6ksia6yx7vg0wsdbk4w6vjgfg3cg3n04jf9bj2vr7kr5zvs7w";
+  };
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard
+                            gnome_online_accounts shared_mime_info ];
+  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 libpulseaudio gnome3.yelp_xsl gdk_pixbuf
+                  libnotify clutter libsoup gnutls libgee p11_kit
+                  libcanberra_gtk3 telepathy_farstream farstream
+                  gnome3.defaultIconTheme 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:${gnome3.gnome_themes_standard}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
+    done
+  '';
+
+  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 = gnome3.maintainers;
+    # TODO: license = [ licenses.gpl2 licenses.lgpl2 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/eog/default.nix b/pkgs/desktops/gnome-3/3.18/core/eog/default.nix
new file mode 100644
index 00000000000..fff901142dc
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/eog/default.nix
@@ -0,0 +1,25 @@
+{ fetchurl, stdenv, intltool, pkgconfig, itstool, libxml2, libjpeg, gnome3
+, shared_mime_info, makeWrapper, librsvg, libexif }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  buildInputs = with gnome3;
+    [ intltool pkgconfig itstool libxml2 libjpeg gtk glib libpeas makeWrapper librsvg
+      gsettings_desktop_schemas shared_mime_info adwaita-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.adwaita-icon-theme}/share:${gnome3.gtk}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
+
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/EyeOfGnome; 
+    platforms = platforms.linux;
+    description = "GNOME image viewer";
+    maintainers = gnome3.maintainers;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/eog/src.nix b/pkgs/desktops/gnome-3/3.18/core/eog/src.nix
new file mode 100644
index 00000000000..154a02d7b43
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/eog/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "eog-3.16.3";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/eog/3.16/eog-3.16.3.tar.xz;
+    sha256 = "ee6d101f8e73aacc8d48256f06a780c6d0d5f3975990f375f58cd0e70816b766";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/epiphany/default.nix b/pkgs/desktops/gnome-3/3.18/core/epiphany/default.nix
new file mode 100644
index 00000000000..5a98770b663
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/epiphany/default.nix
@@ -0,0 +1,42 @@
+{ 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, which
+, gdk_pixbuf, librsvg, gnome_common }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  # Tests need an X display
+  configureFlags = [ "--disable-static --disable-tests" ];
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+
+  nativeBuildInputs = [ pkgconfig 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
+                  gdk_pixbuf gnome3.defaultIconTheme librsvg which gnome_common
+                  gcr avahi gnome3.gsettings_desktop_schemas makeWrapper ];
+
+  NIX_CFLAGS_COMPILE = "-I${nspr}/include/nspr -I${nss}/include/nss -I${glib}/include/gio-unix-2.0";
+
+  enableParallelBuilding = true;
+
+  preFixup = ''
+    for f in $out/bin/* $out/libexec/*; do
+      wrapProgram "$f" \
+        --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"
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Epiphany;
+    description = "WebKit based web browser for GNOME";
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/epiphany/libxml_depend.patch b/pkgs/desktops/gnome-3/3.18/core/epiphany/libxml_depend.patch
new file mode 100644
index 00000000000..89e3694a02d
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/epiphany/libxml_depend.patch
@@ -0,0 +1,10 @@
+--- configure.ac.orig	2015-04-08 18:53:52.284580835 +0200
++++ configure.ac	2015-04-08 18:55:55.697225280 +0200
+@@ -113,6 +113,7 @@
+ PKG_CHECK_MODULES(WEB_EXTENSION, [
+                   webkit2gtk-web-extension-4.0 >= $WEBKIT_GTK_REQUIRED
+                   libsecret-1 >= $LIBSECRET_REQUIRED
++                  libxml-2.0 >= $LIBXML_REQUIRED
+                   ])
+ AC_SUBST(WEB_EXTENSION_CFLAGS)
+ AC_SUBST(WEB_EXTENSION_LIBS)
diff --git a/pkgs/desktops/gnome-3/3.18/core/epiphany/src.nix b/pkgs/desktops/gnome-3/3.18/core/epiphany/src.nix
new file mode 100644
index 00000000000..2ecf2c98d19
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/epiphany/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "epiphany-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/epiphany/3.18/epiphany-3.18.0.tar.xz;
+    sha256 = "d5ba67a8cd85c80b81e076862bcab3fc376ba51b0a1536ca7430608d1f50491d";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/evince/default.nix b/pkgs/desktops/gnome-3/3.18/core/evince/default.nix
new file mode 100644
index 00000000000..154182eef88
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/evince/default.nix
@@ -0,0 +1,64 @@
+{ 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 {
+  inherit (import ./src.nix fetchurl) name src;
+
+  buildInputs = [
+    pkgconfig intltool perl perlXMLParser libxml2
+    glib gtk3 pango atk gdk_pixbuf gobjectIntrospection
+    itstool gnome3.adwaita-icon-theme
+    gnome3.libgnome_keyring gnome3.gsettings_desktop_schemas
+    poppler ghostscriptX djvulibre libspectre
+    makeWrapper libsecret librsvg gnome3.adwaita-icon-theme
+  ];
+
+  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"
+
+  '';
+
+  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 = stdenv.lib.licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.vcunat ];
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/evince/src.nix b/pkgs/desktops/gnome-3/3.18/core/evince/src.nix
new file mode 100644
index 00000000000..392aeefb4e9
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/evince/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "evince-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/evince/3.18/evince-3.18.0.tar.xz;
+    sha256 = "96e8351f6a6fc5823bb8f51178cde1182bd66481af6fb09bf58a18b673cafa70";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/evolution-data-server/default.nix b/pkgs/desktops/gnome-3/3.18/core/evolution-data-server/default.nix
new file mode 100644
index 00000000000..fb3c8bdceab
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/evolution-data-server/default.nix
@@ -0,0 +1,30 @@
+{ fetchurl, stdenv, pkgconfig, gnome3, python
+, intltool, libsoup, libxml2, libsecret, icu, sqlite
+, p11_kit, db, nspr, nss, libical, gperf, makeWrapper, valaSupport ? true, vala }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  buildInputs = with gnome3;
+    [ pkgconfig glib python intltool libsoup libxml2 gtk gnome_online_accounts
+      gcr p11_kit libgweather libgdata gperf makeWrapper icu sqlite gsettings_desktop_schemas ]
+    ++ stdenv.lib.optional valaSupport vala;
+
+  propagatedBuildInputs = [ libsecret nss nspr libical db ];
+
+  # uoa irrelevant for now
+  configureFlags = [ "--disable-uoa" ]
+                   ++ stdenv.lib.optional valaSupport "--enable-vala-bindings";
+
+  preFixup = ''
+    for f in "$out/libexec/"*; do
+      wrapProgram "$f" --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+    maintainers = gnome3.maintainers;
+  };
+
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/evolution-data-server/src.nix b/pkgs/desktops/gnome-3/3.18/core/evolution-data-server/src.nix
new file mode 100644
index 00000000000..876b2236ef5
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/evolution-data-server/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "evolution-data-server-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/evolution-data-server/3.18/evolution-data-server-3.18.0.tar.xz;
+    sha256 = "ca4273b888912cadc474c1c2aebd2f02639381a9ddfa516a46cf9abd3dbc11f7";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/folks/default.nix b/pkgs/desktops/gnome-3/3.18/core/folks/default.nix
new file mode 100644
index 00000000000..6e200bdb318
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/folks/default.nix
@@ -0,0 +1,43 @@
+{ 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
+
+let
+  majorVersion = "0.11";
+in
+stdenv.mkDerivation rec {
+  name = "folks-${majorVersion}.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/folks/${majorVersion}/${name}.tar.xz";
+    sha256 = "0q9hny6a38zn0gamv0ji0pn3jw6bpn2i0fr6vbzkhm9h9ws0cqvz";
+  };
+
+  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 = stdenv.lib.licenses.lgpl2Plus;
+
+    maintainers = gnome3.maintainers;
+    platforms = stdenv.lib.platforms.gnu;  # arbitrary choice
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gconf/default.nix b/pkgs/desktops/gnome-3/3.18/core/gconf/default.nix
new file mode 100644
index 00000000000..a4cb3e8c146
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gconf/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, pkgconfig, dbus_glib, gnome3 ? null, glib, libxml2
+, intltool, polkit, orbit, withGtk ? false }:
+
+assert withGtk -> (gnome3 != null);
+
+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 orbit ] ++ stdenv.lib.optional withGtk gnome3.gtk;
+  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.18/core/gcr/default.nix b/pkgs/desktops/gnome-3/3.18/core/gcr/default.nix
new file mode 100644
index 00000000000..e0e8d1e7338
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/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, libxslt, vala, gnome3 }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  buildInputs = [
+    pkgconfig intltool gnupg glib gobjectIntrospection libxslt
+    libgcrypt libtasn1 dbus_glib gtk pango gdk_pixbuf atk makeWrapper vala
+  ];
+
+  propagatedBuildInputs = [ p11_kit ];
+
+  #doCheck = true;
+
+  #enableParallelBuilding = true; issues on hydra
+
+  preFixup = ''
+    wrapProgram "$out/bin/gcr-viewer" \
+      --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
+  '';
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+    maintainers = gnome3.maintainers;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gcr/src.nix b/pkgs/desktops/gnome-3/3.18/core/gcr/src.nix
new file mode 100644
index 00000000000..e2b4ad195ff
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gcr/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gcr-3.16.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gcr/3.16/gcr-3.16.0.tar.xz;
+    sha256 = "ecfe8df41cc88158364bb15addc670b11e539fe844742983629ba2323888d075";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/default.nix b/pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/default.nix
new file mode 100644
index 00000000000..51b67afb01f
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, pkgconfig, glib, itstool, libxml2, xorg, dbus
+, intltool, accountsservice, libX11, gnome3, systemd, gnome_session
+, gtk, libcanberra_gtk3, pam, libtool, gobjectIntrospection }:
+
+stdenv.mkDerivation rec {
+  name = "gdm-${gnome3.version}.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gdm/${gnome3.version}/${name}.tar.xz";
+    sha256 = "0mhv3q8z208qvhz00zrxlqn7w9gi5vy6w8dpjh5s2ka28l3yhbn3";
+  };
+
+  preConfigure = ''
+    substituteInPlace ./configure --replace "/usr/bin/X" "${xorg.xorgserver}/bin/X"
+    substituteInPlace daemon/gdm-simple-slave.c --replace 'BINDIR "/gnome-session' '"${gnome_session}/bin/gnome-session'
+    substituteInPlace daemon/gdm-launch-environment.c --replace 'BINDIR "/dbus-launch' '"${dbus.tools}/bin/dbus-launch'
+    substituteInPlace data/gdm.conf-custom.in --replace '#WaylandEnable=false' 'WaylandEnable=false'
+    sed 's/#Enable=true/Enable=true/' -i data/gdm.conf-custom.in
+ '';
+
+  configureFlags = [ "--localstatedir=/var" "--with-systemd=yes" "--without-plymouth"
+                     "--with-systemdsystemunitdir=$(out)/etc/systemd/system"
+                     "--with-initial-vt=10" ];
+
+  buildInputs = [ pkgconfig glib itstool libxml2 intltool
+                  accountsservice gnome3.dconf systemd
+                  gobjectIntrospection libX11 gtk
+                  libcanberra_gtk3 pam libtool ];
+
+  #enableParallelBuilding = true; # problems compiling
+
+  # Disable Access Control because our X does not support FamilyServerInterpreted yet
+  patches = [ ./xserver_path.patch ./sessions_dir.patch ./disable_x_access_control.patch ];
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Projects/GDM;
+    description = "A program that manages graphical display servers and handles graphical user logins";
+    platforms = platforms.linux;
+    maintainers = gnome3.maintainers;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/disable_x_access_control.patch b/pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/disable_x_access_control.patch
new file mode 100644
index 00000000000..7691a9e86f0
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/disable_x_access_control.patch
@@ -0,0 +1,15 @@
+--- gdm-3.16.0/daemon/gdm-display.c.orig	2015-04-08 13:53:14.370274369 +0200
++++ gdm-3.16.0/daemon/gdm-display.c	2015-04-08 13:53:36.287520435 +0200
+@@ -1706,9 +1706,10 @@
+ 
+                 gdm_error_trap_push ();
+ 
+-                for (i = 0; i < G_N_ELEMENTS (host_entries); i++) {
++                /*for (i = 0; i < G_N_ELEMENTS (host_entries); i++) {
+                         XAddHost (self->priv->x11_display, &host_entries[i]);
+-                }
++                }*/
++                XDisableAccessControl(self->priv->x11_display);
+ 
+                 XSync (self->priv->x11_display, False);
+                 if (gdm_error_trap_pop ()) {
diff --git a/pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/sessions_dir.patch b/pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/sessions_dir.patch
new file mode 100644
index 00000000000..b8fbad4d731
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/sessions_dir.patch
@@ -0,0 +1,17 @@
+diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c
+index f759d2d..d154716 100644
+--- a/daemon/gdm-session.c
++++ b/daemon/gdm-session.c
+@@ -373,9 +373,12 @@ get_system_session_dirs (void)
+ #ifdef ENABLE_WAYLAND_SUPPORT
+                 DATADIR "/wayland-sessions/",
+ #endif
++                NULL,
+                 NULL
+         };
+ 
++        search_dirs[4] = getenv("GDM_SESSIONS_DIR") != NULL ? getenv("GDM_SESSIONS_DIR") : NULL;
++
+         return search_dirs;
+ }
+ 
diff --git a/pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/xserver_path.patch b/pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/xserver_path.patch
new file mode 100644
index 00000000000..b451d129391
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/xserver_path.patch
@@ -0,0 +1,83 @@
+--- a/daemon/gdm-server.c	2014-07-30 23:00:17.786841724 +0200
++++ b/daemon/gdm-server.c	2014-07-30 23:02:10.491239180 +0200
+@@ -322,7 +322,11 @@
+ fallback:
+ #endif
+ 
+-        server->priv->command = g_strdup_printf (X_SERVER X_SERVER_ARG_FORMAT, verbosity, debug_options);
++        if (g_getenv("GDM_X_SERVER") != NULL) {
++            server->priv->command = g_strdup (g_getenv("GDM_X_SERVER"));
++        } else {
++            server->priv->command = g_strdup_printf (X_SERVER X_SERVER_ARG_FORMAT, verbosity, debug_options);
++        }
+ }
+ 
+ static gboolean
+--- gdm-3.16.0/daemon/gdm-x-session.c.orig	2015-04-15 18:44:16.875743928 +0200
++++ gdm-3.16.0/daemon/gdm-x-session.c	2015-04-16 13:34:02.335708638 +0200
+@@ -207,6 +207,8 @@
+         char     *display_fd_string = NULL;
+         char     *vt_string = NULL;
+         char     *display_number;
++        int nixos_argc = 0;
++        char **nixos_argv = NULL;
+         gsize     display_number_size;
+ 
+         auth_file = prepare_auth_file ();
+@@ -236,7 +238,15 @@
+ 
+         display_fd_string = g_strdup_printf ("%d", DISPLAY_FILENO);
+ 
+-        g_ptr_array_add (arguments, X_SERVER);
++        if (g_getenv("GDM_X_SERVER") != NULL) {
++                int i = 0;
++                g_shell_parse_argv(g_getenv("GDM_X_SERVER"), &nixos_argc, &nixos_argv, NULL);
++                for (i = 0; i < nixos_argc; i++) {
++                        g_ptr_array_add (arguments, nixos_argv[i]);
++                }
++        } else {
++                g_ptr_array_add (arguments, X_SERVER);
++        }
+ 
+         if (vt_string != NULL) {
+                 g_ptr_array_add (arguments, vt_string);
+@@ -259,12 +269,12 @@
+         g_ptr_array_add (arguments, "-noreset");
+         g_ptr_array_add (arguments, "-keeptty");
+ 
+-        g_ptr_array_add (arguments, "-verbose");
++        /*g_ptr_array_add (arguments, "-verbose");
+         if (state->debug_enabled) {
+                 g_ptr_array_add (arguments, "7");
+         } else {
+                 g_ptr_array_add (arguments, "3");
+-        }
++        }*/
+ 
+         if (state->debug_enabled) {
+                 g_ptr_array_add (arguments, "-core");
+@@ -275,6 +285,9 @@
+                                                    (const char * const *) arguments->pdata,
+                                                    &error);
+         g_free (display_fd_string);
++        if (nixos_argv) {
++                 g_strfreev (nixos_argv);
++        }
+         g_clear_object (&launcher);
+         g_ptr_array_free (arguments, TRUE);
+ 
+--- gdm-3.16.0/daemon/gdm-session.c.orig	2015-04-16 14:19:01.392802683 +0200
++++ gdm-3.16.0/daemon/gdm-session.c	2015-04-16 14:20:36.012296764 +0200
+@@ -2359,6 +2359,12 @@
+         gchar *desktop_names;
+         const char *locale;
+ 
++        if (g_getenv ("GDM_X_SERVER") != NULL) {
++                gdm_session_set_environment_variable (self,
++                                                      "GDM_X_SERVER",
++                                                      g_getenv ("GDM_X_SERVER"));
++        }
++
+         gdm_session_set_environment_variable (self,
+                                               "GDMSESSION",
+                                               get_session_name (self));
diff --git a/pkgs/desktops/gnome-3/3.18/core/gdm/default.nix b/pkgs/desktops/gnome-3/3.18/core/gdm/default.nix
new file mode 100644
index 00000000000..1db96965131
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gdm/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, pkgconfig, glib, itstool, libxml2, xorg, dbus
+, intltool, accountsservice, libX11, gnome3, systemd, gnome_session
+, gtk, libcanberra_gtk3, pam, libtool, gobjectIntrospection }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  # Only needed to make it build
+  preConfigure = ''
+    substituteInPlace ./configure --replace "/usr/bin/X" "${xorg.xorgserver}/bin/X"
+  '';
+
+  configureFlags = [ "--sysconfdir=/etc"
+                     "--localstatedir=/var"
+                     "--with-systemd=yes"
+                     "--with-systemdsystemunitdir=$(out)/etc/systemd/system" ];
+
+  buildInputs = [ pkgconfig glib itstool libxml2 intltool
+                  accountsservice gnome3.dconf systemd
+                  gobjectIntrospection libX11 gtk
+                  libcanberra_gtk3 pam libtool ];
+
+  #enableParallelBuilding = true; # problems compiling
+
+  preBuild = ''
+    substituteInPlace daemon/gdm-simple-slave.c --replace 'BINDIR "/gnome-session' '"${gnome_session}/bin/gnome-session'
+  '';
+
+  # Disable Access Control because our X does not support FamilyServerInterpreted yet
+  patches = [ ./xserver_path.patch ./sessions_dir.patch
+              ./disable_x_access_control.patch ./no-dbus-launch.patch ];
+
+  installFlags = [ "sysconfdir=$(out)/etc" "dbusconfdir=$(out)/etc/dbus-1/system.d" ];
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Projects/GDM;
+    description = "A program that manages graphical display servers and handles graphical user logins";
+    platforms = platforms.linux;
+    maintainers = gnome3.maintainers;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gdm/disable_x_access_control.patch b/pkgs/desktops/gnome-3/3.18/core/gdm/disable_x_access_control.patch
new file mode 100644
index 00000000000..e100e013b78
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gdm/disable_x_access_control.patch
@@ -0,0 +1,13 @@
+--- gdm-3.14.2/daemon/gdm-slave.c.orig	2015-04-16 15:05:27.844353079 +0200
++++ gdm-3.14.2/daemon/gdm-slave.c	2015-04-16 15:05:40.240417915 +0200
+@@ -369,8 +369,9 @@
+                 gdm_error_trap_push ();
+ 
+                 for (i = 0; i < G_N_ELEMENTS (host_entries); i++) {
+-                        XAddHost (slave->priv->server_display, &host_entries[i]);
++                        //XAddHost (slave->priv->server_display, &host_entries[i]);
+                 }
++                XDisableAccessControl(slave->priv->server_display);
+ 
+                 XSync (slave->priv->server_display, False);
+                 if (gdm_error_trap_pop ()) {
diff --git a/pkgs/desktops/gnome-3/3.18/core/gdm/no-dbus-launch.patch b/pkgs/desktops/gnome-3/3.18/core/gdm/no-dbus-launch.patch
new file mode 100644
index 00000000000..c87554078c7
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gdm/no-dbus-launch.patch
@@ -0,0 +1,20 @@
+--- a/daemon/gdm-launch-environment.c	2015-06-22 15:11:07.277474398 +0000
++++ b/daemon/gdm-launch-environment.c	2015-06-22 15:12:31.301157665 +0000
+@@ -48,8 +48,6 @@
+ #include "gdm-session-enum-types.h"
+ #include "gdm-launch-environment.h"
+ 
+-#define DBUS_LAUNCH_COMMAND BINDIR "/dbus-launch --exit-with-session"
+-
+ extern char **environ;
+ 
+ #define GDM_LAUNCH_ENVIRONMENT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GDM_TYPE_LAUNCH_ENVIRONMENT, GdmLaunchEnvironmentPrivate))
+@@ -512,7 +510,7 @@
+                 gdm_session_select_program (launch_environment->priv->session, launch_environment->priv->command);
+         } else {
+                 /* wrap it in dbus-launch */
+-                char *command = g_strdup_printf ("%s %s", DBUS_LAUNCH_COMMAND, launch_environment->priv->command);
++                char *command = g_strdup (launch_environment->priv->command);
+ 
+                 gdm_session_select_program (launch_environment->priv->session, command);
+                 g_free (command);
diff --git a/pkgs/desktops/gnome-3/3.18/core/gdm/sessions_dir.patch b/pkgs/desktops/gnome-3/3.18/core/gdm/sessions_dir.patch
new file mode 100644
index 00000000000..b8fbad4d731
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gdm/sessions_dir.patch
@@ -0,0 +1,17 @@
+diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c
+index f759d2d..d154716 100644
+--- a/daemon/gdm-session.c
++++ b/daemon/gdm-session.c
+@@ -373,9 +373,12 @@ get_system_session_dirs (void)
+ #ifdef ENABLE_WAYLAND_SUPPORT
+                 DATADIR "/wayland-sessions/",
+ #endif
++                NULL,
+                 NULL
+         };
+ 
++        search_dirs[4] = getenv("GDM_SESSIONS_DIR") != NULL ? getenv("GDM_SESSIONS_DIR") : NULL;
++
+         return search_dirs;
+ }
+ 
diff --git a/pkgs/desktops/gnome-3/3.18/core/gdm/src.nix b/pkgs/desktops/gnome-3/3.18/core/gdm/src.nix
new file mode 100644
index 00000000000..acd46534e14
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gdm/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gdm-3.14.2";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gdm/3.14/gdm-3.14.2.tar.xz;
+    sha256 = "e20eb61496161ad95b1058dbf8aea9b7b004df4d0ea6b0fab4401397d9db5930";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gdm/xserver_path.patch b/pkgs/desktops/gnome-3/3.18/core/gdm/xserver_path.patch
new file mode 100644
index 00000000000..412daee9f27
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gdm/xserver_path.patch
@@ -0,0 +1,15 @@
+--- a/daemon/gdm-server.c	2014-07-30 23:00:17.786841724 +0200
++++ b/daemon/gdm-server.c	2014-07-30 23:02:10.491239180 +0200
+@@ -322,7 +322,11 @@
+ fallback:
+ #endif
+ 
+-        server->priv->command = g_strdup_printf (X_SERVER X_SERVER_ARG_FORMAT, verbosity, debug_options);
++        if (g_getenv("GDM_X_SERVER") != NULL) {
++            server->priv->command = g_strdup (g_getenv("GDM_X_SERVER"));
++        } else {
++            server->priv->command = g_strdup_printf (X_SERVER X_SERVER_ARG_FORMAT, verbosity, debug_options);
++        }
+ }
+ 
+ static gboolean
diff --git a/pkgs/desktops/gnome-3/3.18/core/geocode-glib/default.nix b/pkgs/desktops/gnome-3/3.18/core/geocode-glib/default.nix
new file mode 100644
index 00000000000..4d75bdc4996
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/geocode-glib/default.nix
@@ -0,0 +1,14 @@
+{ fetchurl, stdenv, pkgconfig, gnome3, intltool, libsoup, json_glib }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  buildInputs = with gnome3;
+    [ intltool pkgconfig glib libsoup json_glib ];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+    maintainers = gnome3.maintainers;
+  };
+
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/geocode-glib/src.nix b/pkgs/desktops/gnome-3/3.18/core/geocode-glib/src.nix
new file mode 100644
index 00000000000..faaadf5bb91
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/geocode-glib/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "geocode-glib-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/geocode-glib/3.18/geocode-glib-3.18.0.tar.xz;
+    sha256 = "8fb7f0d569e3e6696aaa1fdf275cb3094527ec5e9fa36fd88dd633dfec63495d";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gjs/default.nix b/pkgs/desktops/gnome-3/3.18/core/gjs/default.nix
new file mode 100644
index 00000000000..792e34c7b14
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gjs/default.nix
@@ -0,0 +1,28 @@
+{ fetchurl, stdenv, pkgconfig, gnome3, gtk3, gobjectIntrospection
+, spidermonkey_24, pango, readline, glib, libxml2 }:
+
+let
+  majorVersion = "1.43";
+in
+stdenv.mkDerivation rec {
+  name = "gjs-${majorVersion}.3";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gjs/${majorVersion}/${name}.tar.xz";
+    sha256 = "0khwm8l6m6x71rwf3q92d6scbhmrpiw7kqmj34nn588fb7a4vdc2";
+  };
+
+  buildInputs = [ libxml2 gobjectIntrospection pkgconfig gtk3 glib pango readline ];
+
+  propagatedBuildInputs = [ spidermonkey_24 ];
+
+  postInstall = ''
+    sed 's|-lreadline|-L${readline}/lib -lreadline|g' -i $out/lib/libgjs.la
+  '';
+
+  meta = with stdenv.lib; {
+    maintainers = gnome3.maintainers;
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-backgrounds/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-backgrounds/default.nix
new file mode 100644
index 00000000000..32d6d6e7535
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-backgrounds/default.nix
@@ -0,0 +1,12 @@
+{ stdenv, fetchurl, pkgconfig, gnome3, intltool }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  nativeBuildInputs = [ pkgconfig intltool ];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+    maintainers = gnome3.maintainers;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-backgrounds/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-backgrounds/src.nix
new file mode 100644
index 00000000000..b191826a2d0
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-backgrounds/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gnome-backgrounds-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gnome-backgrounds/3.18/gnome-backgrounds-3.18.0.tar.xz;
+    sha256 = "aa560f0e5f12a308dd36aaac2fff32916abd61d42f47b4bc42c8c7011bf2a7b9";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-bluetooth/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-bluetooth/default.nix
new file mode 100644
index 00000000000..7fae0b5c67f
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-bluetooth/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, gnome3, pkgconfig, gtk3, intltool, glib
+, udev, itstool, libxml2, makeWrapper, libnotify, libcanberra_gtk3 }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  buildInputs = [ pkgconfig intltool glib gtk3 udev libxml2 gnome3.defaultIconTheme
+                  makeWrapper gnome3.gsettings_desktop_schemas itstool
+                  libnotify libcanberra_gtk3 ];
+
+  preFixup = ''
+    wrapProgram "$out/bin/bluetooth-sendto" \
+      --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://help.gnome.org/users/gnome-bluetooth/stable/index.html.en;
+    description = "Application that let you manage Bluetooth in the GNOME destkop";
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-bluetooth/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-bluetooth/src.nix
new file mode 100644
index 00000000000..eb5f6149976
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-bluetooth/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gnome-bluetooth-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gnome-bluetooth/3.18/gnome-bluetooth-3.18.0.tar.xz;
+    sha256 = "f5c0d43226c4ec6a545dddb86181adadbc2b5cf720b640026003b9660fba0b8f";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-calculator/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-calculator/default.nix
new file mode 100644
index 00000000000..7ca66863d86
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-calculator/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, intltool, fetchurl, pkgconfig, libxml2
+, bash, gtk3, glib, makeWrapper
+, itstool, gnome3, librsvg, gdk_pixbuf, mpfr, gmp }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+
+  buildInputs = [ bash pkgconfig gtk3 glib intltool itstool
+                  libxml2 gnome3.gtksourceview mpfr gmp
+                  gdk_pixbuf gnome3.defaultIconTheme librsvg
+                  gnome3.gsettings_desktop_schemas makeWrapper ];
+
+  preFixup = ''
+    wrapProgram "$out/bin/gnome-calculator" \
+      --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"
+  '';
+
+  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 = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-calculator/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-calculator/src.nix
new file mode 100644
index 00000000000..42fc4667087
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-calculator/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gnome-calculator-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gnome-calculator/3.18/gnome-calculator-3.18.0.tar.xz;
+    sha256 = "54dc40de68b118c06b443f9d8a56397425434a45dddbb2daba7b720b77b35672";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-common/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-common/default.nix
new file mode 100644
index 00000000000..f9261e183ef
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-common/default.nix
@@ -0,0 +1,17 @@
+{ stdenv, fetchurl, which, gnome3, autoconf, automake }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  patches = [(fetchurl {
+    name = "gnome-common-patch";
+    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
+
+  meta = with stdenv.lib; {
+    maintainers = gnome3.maintainers;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-common/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-common/src.nix
new file mode 100644
index 00000000000..8ffe7e20e1a
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-common/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gnome-common-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gnome-common/3.18/gnome-common-3.18.0.tar.xz;
+    sha256 = "22569e370ae755e04527b76328befc4c73b62bfd4a572499fde116b8318af8cf";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-contacts/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-contacts/default.nix
new file mode 100644
index 00000000000..6ec3c7871bb
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-contacts/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, intltool, fetchurl, evolution_data_server, db
+, pkgconfig, gtk3, glib, libsecret
+, libchamplain, clutter_gtk, geocode_glib
+, bash, makeWrapper, itstool, folks, libnotify, libxml2
+, gnome3, librsvg, gdk_pixbuf, file, telepathy_glib, nspr, nss
+, libsoup, vala, dbus_glib, automake115x, autoconf }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  doCheck = true;
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard evolution_data_server ];
+
+  # 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
+                  gdk_pixbuf gnome3.defaultIconTheme librsvg
+                  libchamplain clutter_gtk geocode_glib
+                  vala automake115x 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 : "${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+    done
+  '';
+
+  patches = [ ./gio_unix.patch ];
+
+  patchFlags = "-p0";
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Contacts;
+    description = "Contacts is GNOME's integrated address book";
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-contacts/gio_unix.patch b/pkgs/desktops/gnome-3/3.18/core/gnome-contacts/gio_unix.patch
new file mode 100644
index 00000000000..f1b3d3c94ac
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-contacts/gio_unix.patch
@@ -0,0 +1,10 @@
+--- configure.ac.orig	2015-04-09 18:45:50.581232289 +0200
++++ configure.ac	2015-04-09 18:45:59.744280137 +0200
+@@ -54,6 +54,7 @@
+ 	     champlain-0.12
+ 	     clutter-gtk-1.0
+ 	     geocode-glib-1.0 >= 3.15.3
++	     gio-unix-2.0
+ 	     "
+ PKG_CHECK_MODULES(CONTACTS, [$pkg_modules])
+ 
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-contacts/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-contacts/src.nix
new file mode 100644
index 00000000000..94fcfb85fdf
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-contacts/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gnome-contacts-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gnome-contacts/3.18/gnome-contacts-3.18.0.tar.xz;
+    sha256 = "c81ad739a1f554e4c89979564565e32ceaf1d2cc6c93a6a75d929d7d1fe8e287";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-control-center/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-control-center/default.nix
new file mode 100644
index 00000000000..e7ed0c6bade
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-control-center/default.nix
@@ -0,0 +1,59 @@
+{ fetchurl, stdenv, pkgconfig, gnome3, ibus, intltool, upower, makeWrapper
+, libcanberra, libcanberra_gtk3, accountsservice, libpwquality, libpulseaudio
+, gdk_pixbuf, librsvg, libxkbfile, libnotify
+, libxml2, polkit, libxslt, libgtop, libsoup, colord, colord-gtk
+, cracklib, python, libkrb5, networkmanagerapplet, networkmanager
+, libwacom, samba, shared_mime_info, tzdata, icu, libtool, udev
+, docbook_xsl, docbook_xsl_ns, modemmanager, clutter, clutter_gtk
+, fontconfig, sound-theme-freedesktop }:
+
+# http://ftp.gnome.org/pub/GNOME/teams/releng/3.10.2/gnome-suites-core-3.10.2.modules
+# TODO: bluetooth, wacom, printers
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  propagatedUserEnvPkgs =
+    [ gnome3.gnome_themes_standard gnome3.libgnomekbd ];
+
+  # https://bugzilla.gnome.org/show_bug.cgi?id=752596
+  enableParallelBuilding = false;
+
+  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 libpulseaudio fontconfig colord-gtk libpwquality
+      accountsservice libkrb5 networkmanagerapplet libwacom samba libnotify libxkbfile
+      shared_mime_info icu libtool docbook_xsl docbook_xsl_ns gnome3.grilo
+      gdk_pixbuf gnome3.defaultIconTheme librsvg clutter clutter_gtk
+      gnome3.vino udev libcanberra_gtk3
+      networkmanager modemmanager makeWrapper gnome3.gnome-bluetooth ];
+
+  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/"
+  '';
+
+  patches = [ ./vpn_plugins_path.patch ];
+
+  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:${sound-theme-freedesktop}/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
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Utilities to configure the GNOME desktop";
+    license = licenses.gpl2Plus;
+    maintainers = gnome3.maintainers;
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-control-center/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-control-center/src.nix
new file mode 100644
index 00000000000..f87859fe51f
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-control-center/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gnome-control-center-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gnome-control-center/3.18/gnome-control-center-3.18.0.tar.xz;
+    sha256 = "42648eda11fc1df0f717d7d3b385cb7c519fdd084ed4e3fad2e55fd11712fb52";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-control-center/vpn_plugins_path.patch b/pkgs/desktops/gnome-3/3.18/core/gnome-control-center/vpn_plugins_path.patch
new file mode 100644
index 00000000000..e25105a303f
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-control-center/vpn_plugins_path.patch
@@ -0,0 +1,19 @@
+diff --git a/panels/network/connection-editor/vpn-helpers.c b/panels/network/connection-editor/vpn-helpers.c
+index 7dc23c2..fcb1384 100644
+--- a/panels/network/connection-editor/vpn-helpers.c
++++ b/panels/network/connection-editor/vpn-helpers.c
+@@ -95,14 +95,6 @@ vpn_get_plugins (GError **error)
+ 		if (!so_path)
+ 			goto next;
+ 
+-		/* Remove any path and extension components, then reconstruct path
+-		 * to the SO in LIBDIR
+-		 */
+-		so_name = g_path_get_basename (so_path);
+-		g_free (so_path);
+-		so_path = g_build_filename (NM_VPN_MODULE_DIR, so_name, NULL);
+-		g_free (so_name);
+-
+ 		module = g_module_open (so_path, G_MODULE_BIND_LAZY | G_MODULE_BIND_LOCAL);
+ 		if (!module) {
+ 			g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED, "Cannot load the VPN plugin which provides the "
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-desktop/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-desktop/default.nix
new file mode 100644
index 00000000000..bf0ccd0224e
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-desktop/default.nix
@@ -0,0 +1,24 @@
+{ 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 {
+  inherit (import ./src.nix fetchurl) name src;
+
+  # this should probably be setuphook for glib
+  NIX_CFLAGS_COMPILE = "-I${glib}/include/gio-unix-2.0";
+
+  enableParallelBuilding = true;
+
+  buildInputs = [ pkgconfig python libxml2Python libxslt which libX11
+                  xkeyboard_config isocodes itstool wayland
+                  gtk3 glib intltool gnome_doc_utils libxkbfile
+                  gobjectIntrospection ];
+
+  propagatedBuildInputs = [ gnome3.gsettings_desktop_schemas ];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+    maintainers = gnome3.maintainers;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-desktop/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-desktop/src.nix
new file mode 100644
index 00000000000..84fbb8ebdff
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-desktop/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gnome-desktop-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gnome-desktop/3.18/gnome-desktop-3.18.0.tar.xz;
+    sha256 = "44c806b16ea7d38bdc0e6343f2cb6be97afd7f64490f30c0cb5c3373e89a9d44";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-dictionary/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-dictionary/default.nix
new file mode 100644
index 00000000000..1d1f9d18c56
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-dictionary/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, intltool, fetchurl
+, pkgconfig, gtk3, glib
+, bash, makeWrapper, itstool, libxml2
+, gnome3, librsvg, gdk_pixbuf, file }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  doCheck = true;
+
+  NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+  propagatedBuildInputs = [ gdk_pixbuf gnome3.defaultIconTheme librsvg ];
+
+  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 = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-dictionary/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-dictionary/src.nix
new file mode 100644
index 00000000000..9e3660f207b
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-dictionary/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gnome-dictionary-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gnome-dictionary/3.18/gnome-dictionary-3.18.0.tar.xz;
+    sha256 = "5338962124f6d784920ed4968d98734a7589513b36e4f4a6ff00d1ed5afb4ead";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-disk-utility/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-disk-utility/default.nix
new file mode 100644
index 00000000000..3f9f653bdba
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-disk-utility/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, intltool, fetchurl, pkgconfig, udisks2, libsecret, libdvdread
+, bash, gtk3, glib, makeWrapper, cracklib, libnotify
+, itstool, gnome3, librsvg, gdk_pixbuf, libxml2, python
+, libcanberra_gtk3, libxslt, libtool, docbook_xsl, libpwquality }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  doCheck = true;
+
+  NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+
+  buildInputs = [ bash pkgconfig gtk3 glib intltool itstool
+                  libxslt libtool libsecret libpwquality cracklib
+                  libnotify libdvdread libcanberra_gtk3 docbook_xsl
+                  gdk_pixbuf gnome3.defaultIconTheme
+                  librsvg udisks2 gnome3.gnome_settings_daemon
+                  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 : "${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://en.wikipedia.org/wiki/GNOME_Disks;
+    description = "A udisks graphical front-end";
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-disk-utility/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-disk-utility/src.nix
new file mode 100644
index 00000000000..29589586625
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-disk-utility/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gnome-disk-utility-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gnome-disk-utility/3.18/gnome-disk-utility-3.18.0.tar.xz;
+    sha256 = "e7363107e40fb1e7fb9f65e37194c0e8da3928f9ec35a4b27a5c439c64e51686";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-font-viewer/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-font-viewer/default.nix
new file mode 100644
index 00000000000..54767dbc4c5
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-font-viewer/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, intltool, fetchurl
+, pkgconfig, gtk3, glib
+, bash, makeWrapper, itstool
+, gnome3, librsvg, gdk_pixbuf }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  doCheck = true;
+
+  NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+
+  buildInputs = [ pkgconfig gtk3 glib intltool itstool gnome3.gnome_desktop
+                  gdk_pixbuf gnome3.defaultIconTheme librsvg
+                  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 : "${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 = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-font-viewer/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-font-viewer/src.nix
new file mode 100644
index 00000000000..256890e8079
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-font-viewer/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gnome-font-viewer-3.16.2";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gnome-font-viewer/3.16/gnome-font-viewer-3.16.2.tar.xz;
+    sha256 = "f5367417d926d1dbe175aceb8eb4d2733d723a237428f130edd4b4023c0dc1cf";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-keyring/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-keyring/default.nix
new file mode 100644
index 00000000000..8e755383dd6
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-keyring/default.nix
@@ -0,0 +1,34 @@
+{ 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 {
+  inherit (import ./src.nix fetchurl) name src;
+
+  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-certificates.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;
+    maintainers = gnome3.maintainers;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-keyring/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-keyring/src.nix
new file mode 100644
index 00000000000..ccd1488fd30
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-keyring/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gnome-keyring-3.16.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gnome-keyring/3.16/gnome-keyring-3.16.0.tar.xz;
+    sha256 = "15a3bb8c53855a4ff0dbbdfbe4ec3df206c32048f50bdc76a51f8e3e14ece1f5";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-menus/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-menus/default.nix
new file mode 100644
index 00000000000..90209634fbf
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-menus/default.nix
@@ -0,0 +1,22 @@
+{ 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";
+
+  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.18/core/gnome-online-accounts/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-online-accounts/default.nix
new file mode 100644
index 00000000000..d810fbb862b
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-online-accounts/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, pkgconfig, glib, libxslt, gtk, makeWrapper
+, webkitgtk, json_glib, rest, libsecret, dbus_glib, gnome_common
+, telepathy_glib, intltool, dbus_libs, icu, autoreconfHook
+, libsoup, docbook_xsl_ns, docbook_xsl, gnome3
+}:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  NIX_CFLAGS_COMPILE = "-I${dbus_glib}/include/dbus-1.0 -I${dbus_libs}/include/dbus-1.0";
+
+  enableParallelBuilding = true;
+
+  preAutoreconf = ''
+    sed '/disable-settings/d' -i configure.ac
+    sed "/if HAVE_INTROSPECTION/a INTROSPECTION_COMPILER_ARGS = --shared-library=$out/lib/libgoa-1.0.so" -i src/goa/Makefile.am
+  '';
+
+  buildInputs = [ pkgconfig glib libxslt gtk webkitgtk json_glib rest gnome_common makeWrapper
+                  libsecret dbus_glib telepathy_glib intltool icu libsoup autoreconfHook
+                  docbook_xsl_ns docbook_xsl gnome3.defaultIconTheme ];
+
+  preFixup = ''
+    for f in "$out/libexec/"*; do
+      wrapProgram "$f" --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+    maintainers = gnome3.maintainers;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-online-accounts/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-online-accounts/src.nix
new file mode 100644
index 00000000000..3038209042e
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-online-accounts/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gnome-online-accounts-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gnome-online-accounts/3.18/gnome-online-accounts-3.18.0.tar.xz;
+    sha256 = "fc2dac96551746576759bd14f9b322bae1dd0aeedc0e755065ddf5eaaefacd34";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-online-miners/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-online-miners/default.nix
new file mode 100644
index 00000000000..4c879b75098
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-online-miners/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, pkgconfig, glib, gnome3, libxml2
+, libsoup, json_glib, gmp, openssl, makeWrapper }:
+
+let
+  majVer = "3.14";
+in stdenv.mkDerivation rec {
+  name = "gnome-online-miners-${majVer}.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-online-miners/${majVer}/${name}.tar.xz";
+    sha256 = "0bbak8srcrvnw18s4ls5mqaamx9nqdi93lij6yjs0a3q320k22xl";
+  };
+
+  doCheck = true;
+
+  buildInputs = [ pkgconfig glib gnome3.libgdata libxml2 libsoup gmp openssl
+                  gnome3.grilo gnome3.libzapojit gnome3.grilo-plugins
+                  gnome3.gnome_online_accounts makeWrapper gnome3.libmediaart
+                  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 = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-screenshot/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-screenshot/default.nix
new file mode 100644
index 00000000000..763fc990bda
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-screenshot/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, intltool, fetchurl, pkgconfig, libcanberra_gtk3
+, bash, gtk3, glib, makeWrapper
+, itstool, gnome3, librsvg, gdk_pixbuf }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  doCheck = true;
+
+  NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+  propagatedBuildInputs = [ gdk_pixbuf gnome3.defaultIconTheme librsvg ];
+
+  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 = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-screenshot/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-screenshot/src.nix
new file mode 100644
index 00000000000..af6007fa233
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-screenshot/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gnome-screenshot-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gnome-screenshot/3.18/gnome-screenshot-3.18.0.tar.xz;
+    sha256 = "eba64dbf4acf0ab8222fec549d0a4f2dd7dbd51c255e7978dedf1f5c06a98841";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-session/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-session/default.nix
new file mode 100644
index 00000000000..dedad0729d1
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-session/default.nix
@@ -0,0 +1,25 @@
+{ fetchurl, stdenv, pkgconfig, gnome3, glib, dbus_glib, json_glib, upower
+, libxslt, intltool, makeWrapper, systemd, xorg }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  configureFlags = "--enable-systemd";
+
+  buildInputs = with gnome3;
+    [ pkgconfig glib gnome_desktop gtk dbus_glib json_glib libxslt 
+      gnome3.gnome_settings_daemon xorg.xtrans gnome3.defaultIconTheme
+      gsettings_desktop_schemas upower intltool gconf makeWrapper systemd ];
+
+  preFixup = ''
+    wrapProgram "$out/bin/gnome-session" \
+      --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
+      --suffix XDG_DATA_DIRS : "$out/share:$GSETTINGS_SCHEMAS_PATH"
+  '';
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+    maintainers = gnome3.maintainers;
+  };
+
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-session/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-session/src.nix
new file mode 100644
index 00000000000..211cc140a88
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-session/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gnome-session-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gnome-session/3.18/gnome-session-3.18.0.tar.xz;
+    sha256 = "ba23d0e41e90f238103835603eded0f30a7cc56506b68168899377785aec706f";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-settings-daemon/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-settings-daemon/default.nix
new file mode 100644
index 00000000000..18a6bdf43bf
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-settings-daemon/default.nix
@@ -0,0 +1,31 @@
+{ fetchurl, stdenv, pkgconfig, gnome3, intltool, glib, libnotify, lcms2, libXtst
+, libxkbfile, libpulseaudio, libcanberra_gtk3, upower, colord, libgweather, polkit
+, geoclue2, librsvg, xf86_input_wacom, udev, libwacom, libxslt, libtool, networkmanager
+, docbook_xsl, docbook_xsl_ns, makeWrapper, ibus, xkeyboard_config }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  # 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 networkmanager
+      libnotify gnome_desktop lcms2 libXtst libxkbfile libpulseaudio
+      libcanberra_gtk3 upower colord libgweather xkeyboard_config
+      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 : "$out/share:$GSETTINGS_SCHEMAS_PATH"
+  '';
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+    maintainers = gnome3.maintainers;
+  };
+
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-settings-daemon/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-settings-daemon/src.nix
new file mode 100644
index 00000000000..d7b459ae0ea
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-settings-daemon/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gnome-settings-daemon-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gnome-settings-daemon/3.18/gnome-settings-daemon-3.18.0.tar.xz;
+    sha256 = "8d3ef9c18538831ed89122fee0bdaca68b0e482a18b3c4388c4e672aba1b3cd5";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-shell-extensions/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-shell-extensions/default.nix
new file mode 100644
index 00000000000..e9eae87f14e
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-shell-extensions/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, intltool, fetchurl, libgtop, pkgconfig, gtk3, glib
+, bash, makeWrapper, itstool, gnome3, file }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  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 = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-shell-extensions/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-shell-extensions/src.nix
new file mode 100644
index 00000000000..ed51bc4b200
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-shell-extensions/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gnome-shell-extensions-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gnome-shell-extensions/3.18/gnome-shell-extensions-3.18.0.tar.xz;
+    sha256 = "a5fb88004b021e4a16f4fa5eb3d7d6f0903db1288023c18c0f9825152fa0f5f7";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-shell/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-shell/default.nix
new file mode 100644
index 00000000000..899efc5443b
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-shell/default.nix
@@ -0,0 +1,57 @@
+{ fetchurl, stdenv, pkgconfig, gnome3, json_glib, libcroco, intltool, libsecret
+, python3, libsoup, polkit, clutter, networkmanager, docbook_xsl, docbook_xsl_ns, at_spi2_core
+, libstartup_notification, telepathy_glib, telepathy_logger, libXtst, p11_kit, unzip
+, sqlite, libgweather, libcanberra_gtk3
+, libpulseaudio, libical, libtool, nss, gobjectIntrospection, gstreamer, makeWrapper
+, accountsservice, 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 {
+  inherit (import ./src.nix fetchurl) name src;
+
+  # Needed to find /etc/NetworkManager/VPN
+  configureFlags = [ "--sysconfdir=/etc" ];
+
+  buildInputs = with gnome3;
+    [ gsettings_desktop_schemas gnome_keyring gnome-menus glib gcr json_glib accountsservice
+      libcroco intltool libsecret pkgconfig python3 libsoup polkit libcanberra gdk_pixbuf librsvg
+      clutter networkmanager libstartup_notification telepathy_glib docbook_xsl docbook_xsl_ns
+      libXtst p11_kit networkmanagerapplet gjs mutter libpulseaudio caribou evolution_data_server
+      libical libtool nss gobjectIntrospection gtk gstreamer makeWrapper gdm
+      libcanberra_gtk3 gnome_control_center
+      defaultIconTheme sqlite gnome3.gnome-bluetooth
+      libgweather # not declared at build time, but typelib is needed at runtime
+      gnome3.gnome-clocks # schemas needed
+      at_spi2_core upower ibus gnome_session gnome_desktop telepathy_logger gnome3.gnome_settings_daemon ];
+
+  installFlags = [ "keysdir=$(out)/share/gnome-control-center/keybindings" ];
+
+  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" \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --suffix XDG_DATA_DIRS : "${gnome_themes_standard}/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"
+
+    echo "${unzip}/bin" > $out/${passthru.mozillaPlugin}/extra-bin-path
+  '';
+
+  passthru = {
+    mozillaPlugin = "/lib/mozilla/plugins";
+  };
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+    maintainers = gnome3.maintainers;
+  };
+
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-shell/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-shell/src.nix
new file mode 100644
index 00000000000..340a2e67252
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-shell/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gnome-shell-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gnome-shell/3.18/gnome-shell-3.18.0.tar.xz;
+    sha256 = "1f0f276c45c0979c72700121cb0f711aea343c4393eb3d5ddd6b311d8dc83c99";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-system-log/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-system-log/default.nix
new file mode 100644
index 00000000000..716f92a072d
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-system-log/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, intltool, fetchurl, pkgconfig
+, bash, gtk3, glib, 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.defaultIconTheme librsvg ];
+
+  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"
+  '';
+
+  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 = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-system-monitor/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-system-monitor/default.nix
new file mode 100644
index 00000000000..bdbdefecf22
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-system-monitor/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, intltool, fetchurl, pkgconfig, gtkmm3, libxml2
+, bash, gtk3, glib, makeWrapper
+, itstool, gnome3, librsvg, gdk_pixbuf, libgtop }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  doCheck = true;
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+
+  buildInputs = [ bash pkgconfig gtk3 glib intltool itstool libxml2
+                  gtkmm3 libgtop makeWrapper
+                  gdk_pixbuf gnome3.defaultIconTheme librsvg
+                  gnome3.gsettings_desktop_schemas ];
+
+  preFixup = ''
+    wrapProgram "$out/bin/gnome-system-monitor" \
+      --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"
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    homepage = https://help.gnome.org/users/gnome-system-monitor/3.12/;
+    description = "System Monitor shows you what programs are running and how much processor time, memory, and disk space are being used";
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-system-monitor/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-system-monitor/src.nix
new file mode 100644
index 00000000000..a4c87752e78
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-system-monitor/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gnome-system-monitor-3.18.0.1";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gnome-system-monitor/3.18/gnome-system-monitor-3.18.0.1.tar.xz;
+    sha256 = "71ff8db2fa3eb53d8f54ffd612c6679b231a9d69c13adb91cf63421425953b10";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-terminal/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-terminal/default.nix
new file mode 100644
index 00000000000..3bbb25ca5c1
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-terminal/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, pkgconfig, cairo, libxml2, gnome3, pango
+, gnome_doc_utils, intltool, libX11, which, libuuid, vala
+, desktop_file_utils, itstool, makeWrapper, appdata-tools }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  buildInputs = [ gnome3.gtk gnome3.gsettings_desktop_schemas gnome3.vte appdata-tools
+                  gnome3.dconf itstool makeWrapper gnome3.nautilus vala ];
+
+  nativeBuildInputs = [ pkgconfig intltool gnome_doc_utils which libuuid libxml2 desktop_file_utils ];
+
+  # FIXME: enable for gnome3
+  configureFlags = [ "--disable-search-provider" "--disable-migration" ];
+
+  preFixup = ''
+    for f in "$out/libexec/gnome-terminal-server"; do
+      wrapProgram "$f" \
+        --prefix XDG_DATA_DIRS : "$out/share:$GSETTINGS_SCHEMAS_PATH" \
+        --prefix GIO_EXTRA_MODULES : "${gnome3.dconf}/lib/gio/modules"
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+    maintainers = gnome3.maintainers;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-terminal/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-terminal/src.nix
new file mode 100644
index 00000000000..dff213cc389
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-terminal/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gnome-terminal-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gnome-terminal/3.18/gnome-terminal-3.18.0.tar.xz;
+    sha256 = "776642502b57b7a6b5f099291b660c0b4a4ff2b3024d15a2f5b33c4286c9dce6";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-themes-standard/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-themes-standard/default.nix
new file mode 100644
index 00000000000..a33252a934c
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-themes-standard/default.nix
@@ -0,0 +1,14 @@
+{ stdenv, fetchurl, intltool, gtk3, gnome3, librsvg, pkgconfig, pango, atk, gtk2
+, gdk_pixbuf }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+  
+  buildInputs = [ intltool gtk3 librsvg pkgconfig pango atk gtk2 gdk_pixbuf
+                  gnome3.defaultIconTheme ];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+    maintainers = gnome3.maintainers;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-themes-standard/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-themes-standard/src.nix
new file mode 100644
index 00000000000..c352242537a
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-themes-standard/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gnome-themes-standard-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gnome-themes-standard/3.18/gnome-themes-standard-3.18.0.tar.xz;
+    sha256 = "e646eb04c225282b7df7fff65741adaad4cf9ed2c12616b7310e7edd27d2bacb";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-user-docs/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-user-docs/default.nix
new file mode 100644
index 00000000000..4f02673e036
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-user-docs/default.nix
@@ -0,0 +1,15 @@
+{ stdenv, fetchurl, pkgconfig, file, gnome3, itstool, libxml2, intltool }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  buildInputs = [ pkgconfig gnome3.yelp itstool libxml2 intltool ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://help.gnome.org/users/gnome-help/${gnome3.version}";
+    description = "User and system administration help for the GNOME desktop";
+    maintainers = gnome3.maintainers;
+    license = licenses.cc-by-30;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-user-docs/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-user-docs/src.nix
new file mode 100644
index 00000000000..0187516061b
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-user-docs/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gnome-user-docs-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gnome-user-docs/3.18/gnome-user-docs-3.18.0.tar.xz;
+    sha256 = "c515d2c8b051ffb05ec497e4231d1ceecec824dc4fca45425d21295bb592e952";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-user-share/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-user-share/default.nix
new file mode 100644
index 00000000000..49ad40912c6
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-user-share/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, intltool, fetchurl, apacheHttpd_2_2, nautilus
+, pkgconfig, gtk3, glib, libxml2, gnused
+, bash, makeWrapper, itstool, libnotify, libtool, mod_dnssd
+, gnome3, librsvg, gdk_pixbuf, file, libcanberra_gtk3 }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  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.defaultIconTheme librsvg
+                  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-webdav" \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --prefix XDG_DATA_DIRS : "$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+  '';
+
+  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 = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-user-share/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-user-share/src.nix
new file mode 100644
index 00000000000..e0a283d896d
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-user-share/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gnome-user-share-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gnome-user-share/3.18/gnome-user-share-3.18.0.tar.xz;
+    sha256 = "feb3bed59193eafea31f563ed7eab5f066aa5f86d4a89f067b162653d168d3fc";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/grilo-plugins/default.nix b/pkgs/desktops/gnome-3/3.18/core/grilo-plugins/default.nix
new file mode 100644
index 00000000000..a236238c257
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/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.13";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/grilo-plugins/0.2/${name}.tar.xz";
+    sha256 = "008jwm5ydl0k25p3d2fkcail40fj9y3qknihxb5fg941p8qlhm55";
+  };
+
+  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 = gnome3.maintainers;
+    license = licenses.lgpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/grilo/default.nix b/pkgs/desktops/gnome-3/3.18/core/grilo/default.nix
new file mode 100644
index 00000000000..16dfb638a24
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/grilo/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, pkgconfig, file, intltool, glib
+, libxml2, gnome3, gobjectIntrospection, libsoup }:
+
+stdenv.mkDerivation rec {
+  name = "grilo-0.2.12";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/grilo/0.2/${name}.tar.xz";
+    sha256 = "11bvc7rsrjjwz8hp67p3fn8zmywrpawrcbi3vgw8b0dwa0sndd2m";
+  };
+
+  setupHook = ./setup-hook.sh;
+
+  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 = gnome3.maintainers;
+    license = licenses.lgpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/grilo/setup-hook.sh b/pkgs/desktops/gnome-3/3.18/core/grilo/setup-hook.sh
new file mode 100644
index 00000000000..bc93dddec38
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/grilo/setup-hook.sh
@@ -0,0 +1,7 @@
+make_grilo_find_plugins() {
+    if [ -d "$1"/lib/grilo-0.2 ]; then
+        addToSearchPath GRL_PLUGIN_PATH "$1/lib/grilo-0.2"
+    fi
+}
+
+envHooks+=(make_grilo_find_plugins)
diff --git a/pkgs/desktops/gnome-3/3.18/core/gsettings-desktop-schemas/default.nix b/pkgs/desktops/gnome-3/3.18/core/gsettings-desktop-schemas/default.nix
new file mode 100644
index 00000000000..5123cadbdaf
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gsettings-desktop-schemas/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, pkgconfig, intltool, glib, gobjectIntrospection
+  # just for passthru
+, gnome3, gtk3, gsettings_desktop_schemas }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  postPatch = ''
+    for file in "background" "screensaver"; do
+      substituteInPlace "schemas/org.gnome.desktop.$file.gschema.xml.in" \
+        --replace "@datadir@" "${gnome3.gnome-backgrounds}/share/"
+    done
+  '';
+
+  buildInputs = [ glib gobjectIntrospection ];
+
+  nativeBuildInputs = [ pkgconfig intltool ];
+
+  meta = with stdenv.lib; {
+    maintainers = gnome3.maintainers;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gsettings-desktop-schemas/src.nix b/pkgs/desktops/gnome-3/3.18/core/gsettings-desktop-schemas/src.nix
new file mode 100644
index 00000000000..047f014d2af
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gsettings-desktop-schemas/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gsettings-desktop-schemas-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gsettings-desktop-schemas/3.18/gsettings-desktop-schemas-3.18.0.tar.xz;
+    sha256 = "ba27337226a96d83f385c0ad192fdfe561c7e7882c61bb326c571be24e41eceb";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gsound/default.nix b/pkgs/desktops/gnome-3/3.18/core/gsound/default.nix
new file mode 100644
index 00000000000..5f255743313
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gsound/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, pkgconfig, glib, libcanberra, gobjectIntrospection, libtool, gnome3 }:
+
+let
+  majVer = "1.0";
+in stdenv.mkDerivation rec {
+  name = "gsound-${majVer}.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gsound/${majVer}/${name}.tar.xz";
+    sha256 = "ea0dd94429c0645f2f98824274ef04543fe459dd83a5449a68910acc3ba67f29";
+  };
+
+  buildInputs = [ pkgconfig glib libcanberra gobjectIntrospection libtool ];
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Projects/GSound;
+    description = "Small library for playing system sounds";
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gtksourceview/default.nix b/pkgs/desktops/gnome-3/3.18/core/gtksourceview/default.nix
new file mode 100644
index 00000000000..ea95e39e5b2
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gtksourceview/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, pkgconfig, atk, cairo, glib, gtk3, pango
+, libxml2Python, perl, intltool, gettext, gnome3 }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  propagatedBuildInputs = [ gtk3 ];
+
+  buildInputs = [ pkgconfig atk cairo glib pango
+                  libxml2Python perl intltool gettext ];
+
+  preBuild = ''
+    substituteInPlace gtksourceview/gtksourceview-utils.c --replace "@NIX_SHARE_PATH@" "$out/share"
+  ''; 
+
+  patches = [ ./nix_share_path.patch ];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+    maintainers = gnome3.maintainers;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gtksourceview/nix_share_path.patch b/pkgs/desktops/gnome-3/3.18/core/gtksourceview/nix_share_path.patch
new file mode 100644
index 00000000000..c87350167c2
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gtksourceview/nix_share_path.patch
@@ -0,0 +1,11 @@
+--- a/gtksourceview/gtksourceview-utils.c	2014-07-13 16:13:57.418687726 +0200
++++ b/gtksourceview/gtksourceview-utils.c	2014-07-13 16:14:20.550847767 +0200
+@@ -68,6 +68,8 @@
+ 							 basename,
+ 							 NULL));
+ 
++        g_ptr_array_add (dirs, g_build_filename ("@NIX_SHARE_PATH@", SOURCEVIEW_DIR, basename, NULL));
++
+ 	g_ptr_array_add (dirs, NULL);
+ 
+ 	return (gchar**) g_ptr_array_free (dirs, FALSE);
diff --git a/pkgs/desktops/gnome-3/3.18/core/gtksourceview/src.nix b/pkgs/desktops/gnome-3/3.18/core/gtksourceview/src.nix
new file mode 100644
index 00000000000..5bbd2c42474
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gtksourceview/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gtksourceview-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gtksourceview/3.18/gtksourceview-3.18.0.tar.xz;
+    sha256 = "54b111264e6985e26a878dec88ff94fd0a9ae0dc4cfcdf08f4a6b5f655d4b693";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gucharmap/default.nix b/pkgs/desktops/gnome-3/3.18/core/gucharmap/default.nix
new file mode 100644
index 00000000000..a43d3c570ce
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gucharmap/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, intltool, fetchurl, pkgconfig, gtk3
+, glib, desktop_file_utils, bash, appdata-tools
+, makeWrapper, gnome3, file, itstool, libxml2 }:
+
+# TODO: icons and theme still does not work
+# use packaged gnome3.adwaita-icon-theme 
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  doCheck = true;
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+
+  preConfigure = "substituteInPlace ./configure --replace /usr/bin/file ${file}/bin/file";
+
+  buildInputs = [ pkgconfig gtk3 intltool itstool glib appdata-tools
+                  gnome3.yelp_tools libxml2 file desktop_file_utils
+                  gnome3.gsettings_desktop_schemas makeWrapper ];
+
+  preFixup = ''
+    wrapProgram "$out/bin/gucharmap" \
+      --prefix XDG_DATA_DIRS : "${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 = gnome3.maintainers;
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/gucharmap/src.nix b/pkgs/desktops/gnome-3/3.18/core/gucharmap/src.nix
new file mode 100644
index 00000000000..01eca1e367b
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/gucharmap/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gucharmap-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gucharmap/3.18/gucharmap-3.18.0.tar.xz;
+    sha256 = "121d2652f59a26c9426c96e7c6ca73295c45b675dd4ef0ccdb1b50bc0b4f3830";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/libcroco/default.nix b/pkgs/desktops/gnome-3/3.18/core/libcroco/default.nix
new file mode 100644
index 00000000000..e8ddf7096e6
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/libcroco/default.nix
@@ -0,0 +1,20 @@
+{ 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";
+  };
+
+  outputs = [ "out" "doc" ];
+
+  configureFlags = stdenv.lib.optional stdenv.isDarwin "--disable-Bsymbolic";
+
+  buildInputs = [ pkgconfig libxml2 glib ];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/libgdata/default.nix b/pkgs/desktops/gnome-3/3.18/core/libgdata/default.nix
new file mode 100644
index 00000000000..bedbbee2dfe
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/libgdata/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, pkgconfig, intltool, libxml2, glib, json_glib
+, gobjectIntrospection, liboauth, gnome3, p11_kit, openssl }:
+
+let
+  majorVersion = "0.16";
+in
+stdenv.mkDerivation rec {
+  name = "libgdata-${majorVersion}.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/libgdata/${majorVersion}/${name}.tar.xz";
+    sha256 = "8740e071ecb2ae0d2a4b9f180d2ae5fdf9dc4c41e7ff9dc7e057f62442800827";
+  };
+
+  # TODO: need libuhttpmock
+  configureFlags = "--disable-tests";
+  
+  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 ];
+
+  propagatedBuildInputs = [ json_glib ];
+      
+  meta = with stdenv.lib; {
+    description = "GData API library";
+    maintainers = with maintainers; [ raskin lethalman ];
+    platforms = platforms.linux;
+    license = licenses.lgpl21Plus;
+  };
+
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/libgee/default.nix b/pkgs/desktops/gnome-3/3.18/core/libgee/default.nix
new file mode 100644
index 00000000000..4ff13295031
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/libgee/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, autoconf, vala, pkgconfig, glib, gobjectIntrospection, gnome3 }:
+let
+  ver_maj = "0.16";
+  ver_min = "1";
+in
+stdenv.mkDerivation rec {
+  name = "libgee-${ver_maj}.${ver_min}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/libgee/${ver_maj}/${name}.tar.xz";
+    sha256 = "d95f8ea8e78f843c71b1958fa2fb445e4a325e4821ec23d0d5108d8170e564a5";
+  };
+
+  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;
+    maintainers = gnome3.maintainers;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/libgee/fix_introspection_paths.patch b/pkgs/desktops/gnome-3/3.18/core/libgee/fix_introspection_paths.patch
new file mode 100644
index 00000000000..67003f45164
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/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.18/core/libgnome-keyring/default.nix b/pkgs/desktops/gnome-3/3.18/core/libgnome-keyring/default.nix
new file mode 100644
index 00000000000..c6c9323c010
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/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.12.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/libgnome-keyring/3.12/${name}.tar.xz";
+    sha256 = "c4c178fbb05f72acc484d22ddb0568f7532c409b0a13e06513ff54b91e947783";
+  };
+
+  propagatedBuildInputs = [ glib gobjectIntrospection dbus_libs libgcrypt ];
+  nativeBuildInputs = [ pkgconfig intltool ];
+
+  meta = {
+    description = "Framework for managing passwords and other secrets";
+    homepage = http://live.gnome.org/GnomeKeyring;
+    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.18/core/libgnomekbd/default.nix b/pkgs/desktops/gnome-3/3.18/core/libgnomekbd/default.nix
new file mode 100644
index 00000000000..4939a4ff728
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/libgnomekbd/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, pkgconfig, file, intltool, glib, gtk3, libxklavier, makeWrapper, gnome3 }:
+
+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 = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/libgweather/default.nix b/pkgs/desktops/gnome-3/3.18/core/libgweather/default.nix
new file mode 100644
index 00000000000..79ede15df8f
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/libgweather/default.nix
@@ -0,0 +1,17 @@
+{ stdenv, fetchurl, pkgconfig, libxml2, gtk, intltool, libsoup, gconf
+, pango, gdk_pixbuf, atk, tzdata, gnome3 }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  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 gnome3.geocode_glib ];
+  nativeBuildInputs = [ pkgconfig intltool ];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+    maintainers = gnome3.maintainers;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/libgweather/src.nix b/pkgs/desktops/gnome-3/3.18/core/libgweather/src.nix
new file mode 100644
index 00000000000..da56dc3361a
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/libgweather/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "libgweather-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/libgweather/3.18/libgweather-3.18.0.tar.xz;
+    sha256 = "8f4fda67f48c776f2bf955d384de4cc842aacb8d9b2ad87b42d83d0dc5a1cb1f";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/libgxps/default.nix b/pkgs/desktops/gnome-3/3.18/core/libgxps/default.nix
new file mode 100644
index 00000000000..72d307f4f1a
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/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.18/core/libpeas/default.nix b/pkgs/desktops/gnome-3/3.18/core/libpeas/default.nix
new file mode 100644
index 00000000000..8d40d977a80
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/libpeas/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, pkgconfig, intltool, gnome3
+, glib, gtk3, gobjectIntrospection, python, pygobject3
+}:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  buildInputs =  [
+   intltool pkgconfig glib gtk3 gobjectIntrospection python pygobject3
+   gnome3.defaultIconTheme
+  ];
+
+  meta = with stdenv.lib; {
+    description = "A GObject-based plugins engine";
+    homepage = "http://ftp.acc.umu.se/pub/GNOME/sources/libpeas/";
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = gnome3.maintainers;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/libpeas/src.nix b/pkgs/desktops/gnome-3/3.18/core/libpeas/src.nix
new file mode 100644
index 00000000000..8a24097bbd6
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/libpeas/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "libpeas-1.16.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/libpeas/1.16/libpeas-1.16.0.tar.xz;
+    sha256 = "b093008ecd65f7d55c80517589509698ff15ad41f664b11a3eb88ff461b1454e";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/libzapojit/default.nix b/pkgs/desktops/gnome-3/3.18/core/libzapojit/default.nix
new file mode 100644
index 00000000000..5a8117528b6
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/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 = "mirror://gnome/sources/libzapojit/0.0/${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.18/core/mutter/default.nix b/pkgs/desktops/gnome-3/3.18/core/mutter/default.nix
new file mode 100644
index 00000000000..dd08a96cc23
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/mutter/default.nix
@@ -0,0 +1,31 @@
+{ fetchurl, stdenv, pkgconfig, gnome3, intltool, gobjectIntrospection, upower, cairo
+, pango, cogl, clutter, libstartup_notification, libcanberra, zenity, libcanberra_gtk3
+, libtool, makeWrapper, xkeyboard_config, libxkbfile, libxkbcommon }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  # 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
+      gnome3.geocode_glib
+      libcanberra_gtk3 zenity libtool makeWrapper xkeyboard_config libxkbfile libxkbcommon ];
+
+  preFixup = ''
+    wrapProgram "$out/bin/mutter" \
+      --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
+  '';
+
+  patches = [ ./x86.patch ./math.patch ];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+    maintainers = gnome3.maintainers;
+  };
+
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/mutter/math.patch b/pkgs/desktops/gnome-3/3.18/core/mutter/math.patch
new file mode 100644
index 00000000000..dbdfd93f5e1
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/mutter/math.patch
@@ -0,0 +1,10 @@
+--- mutter-3.18.0/src/backends/meta-cursor-renderer.c.orig	2015-09-23 13:54:31.297523343 +0200
++++ mutter-3.18.0/src/backends/meta-cursor-renderer.c	2015-09-23 13:54:43.728271766 +0200
+@@ -31,6 +31,7 @@
+ 
+ #include <cogl/cogl.h>
+ #include <clutter/clutter.h>
++#include <math.h>
+ 
+ #include "meta-stage.h"
+ 
diff --git a/pkgs/desktops/gnome-3/3.18/core/mutter/src.nix b/pkgs/desktops/gnome-3/3.18/core/mutter/src.nix
new file mode 100644
index 00000000000..2f183d1a919
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/mutter/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "mutter-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/mutter/3.18/mutter-3.18.0.tar.xz;
+    sha256 = "9fb287976b9c65f0a2aca09d0e2c4c2748d3d2cfa5f38921dbeafe4cd1d541b1";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/mutter/x86.patch b/pkgs/desktops/gnome-3/3.18/core/mutter/x86.patch
new file mode 100644
index 00000000000..bc8829de42f
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/mutter/x86.patch
@@ -0,0 +1,20 @@
+--- mutter-3.16.2/src/core/window.c.orig	2015-05-26 10:52:41.382834963 +0200
++++ mutter-3.16.2/src/core/window.c	2015-05-26 10:53:03.039948034 +0200
+@@ -3499,7 +3499,7 @@
+ 
+ static MetaMonitorInfo *
+ find_monitor_by_winsys_id (MetaWindow *window,
+-                           guint       winsys_id)
++                           gint       winsys_id)
+ {
+   int i;
+ 
+@@ -3618,7 +3618,7 @@
+    */
+ 
+   gboolean did_placement;
+-  guint old_output_winsys_id;
++  gint old_output_winsys_id;
+   MetaRectangle unconstrained_rect;
+   MetaRectangle constrained_rect;
+   MetaMoveResizeResultFlags result = 0;
diff --git a/pkgs/desktops/gnome-3/3.18/core/nautilus/default.nix b/pkgs/desktops/gnome-3/3.18/core/nautilus/default.nix
new file mode 100644
index 00000000000..f28e86d7bad
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/nautilus/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, pkgconfig, libxml2, dbus_glib, shared_mime_info, libexif
+, gtk, gnome3, libunique, intltool, gobjectIntrospection
+, libnotify, makeWrapper, exempi, librsvg, tracker }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  buildInputs = [ pkgconfig libxml2 dbus_glib shared_mime_info libexif gtk libunique intltool exempi librsvg
+                  gnome3.gnome_desktop gnome3.adwaita-icon-theme
+                  gnome3.gsettings_desktop_schemas libnotify makeWrapper tracker ];
+
+  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:$out/share:$GSETTINGS_SCHEMAS_PATH"
+  '';
+
+  patches = [ ./extension_dir.patch ];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+    maintainers = gnome3.maintainers;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/nautilus/extension_dir.patch b/pkgs/desktops/gnome-3/3.18/core/nautilus/extension_dir.patch
new file mode 100644
index 00000000000..317b8257992
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/nautilus/extension_dir.patch
@@ -0,0 +1,24 @@
+diff --git a/libnautilus-private/nautilus-module.c b/libnautilus-private/nautilus-module.c
+index 6273a76..4adcc8a 100644
+--- a/libnautilus-private/nautilus-module.c
++++ b/libnautilus-private/nautilus-module.c
+@@ -242,11 +242,17 @@ void
+ nautilus_module_setup (void)
+ {
+ 	static gboolean initialized = FALSE;
++	const gchar* extensiondir = NULL;
+ 
+ 	if (!initialized) {
+ 		initialized = TRUE;
+-		
+-		load_module_dir (NAUTILUS_EXTENSIONDIR);
++	
++		extensiondir = g_getenv ("NAUTILUS_EXTENSION_DIR");
++		if (extensiondir == NULL) {
++			extensiondir = NAUTILUS_EXTENSIONDIR;
++		}
++	
++		load_module_dir (extensiondir);
+ 
+ 		eel_debug_call_at_shutdown (free_module_objects);
+ 	}
diff --git a/pkgs/desktops/gnome-3/3.18/core/nautilus/src.nix b/pkgs/desktops/gnome-3/3.18/core/nautilus/src.nix
new file mode 100644
index 00000000000..4e8c692bce4
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/nautilus/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "nautilus-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/nautilus/3.18/nautilus-3.18.0.tar.xz;
+    sha256 = "6914e5698c5ce865870086e4db9395d56a78eddf8002020458ce05db16a95a33";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/rest/default.nix b/pkgs/desktops/gnome-3/3.18/core/rest/default.nix
new file mode 100644
index 00000000000..eada9ab1993
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/rest/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, pkgconfig, glib, libsoup, gobjectIntrospection, gnome3 }:
+
+stdenv.mkDerivation rec {
+  name = "rest-0.7.92";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/rest/0.7/${name}.tar.xz";
+    sha256 = "07548c8785a3e743daf54a82b952ff5f32af94fee68997df4c83b00d52f9c0ec";
+  };
+
+  buildInputs = [ pkgconfig glib libsoup gobjectIntrospection];
+
+  configureFlags = "--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt";
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+    maintainers = gnome3.maintainers;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/sushi/default.nix b/pkgs/desktops/gnome-3/3.18/core/sushi/default.nix
new file mode 100644
index 00000000000..17c37e89dec
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/sushi/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, pkgconfig, file, intltool, gobjectIntrospection, glib
+, clutter_gtk, clutter-gst, gnome3, gtksourceview, libmusicbrainz
+, webkitgtk, libmusicbrainz5, icu, makeWrapper, gst_all_1
+, gdk_pixbuf, librsvg, gtk3 }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  propagatedUserEnvPkgs = [ gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good ];
+
+  buildInputs = [ pkgconfig file intltool gobjectIntrospection glib gtk3
+                  clutter_gtk clutter-gst gnome3.gjs gtksourceview gdk_pixbuf
+                  librsvg gnome3.defaultIconTheme 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 = gnome3.maintainers;
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/sushi/src.nix b/pkgs/desktops/gnome-3/3.18/core/sushi/src.nix
new file mode 100644
index 00000000000..5c852a0dc47
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/sushi/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "sushi-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/sushi/3.18/sushi-3.18.0.tar.xz;
+    sha256 = "7f4df92be950bf23aff28da49ce108766dd21a88efc14a9d0807e10225608e9c";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/totem-pl-parser/default.nix b/pkgs/desktops/gnome-3/3.18/core/totem-pl-parser/default.nix
new file mode 100644
index 00000000000..63f36004bcd
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/totem-pl-parser/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, pkgconfig, file, intltool, gmime, libxml2, libsoup, gnome3 }:
+
+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 = gnome3.maintainers;
+    license = licenses.lgpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/totem/default.nix b/pkgs/desktops/gnome-3/3.18/core/totem/default.nix
new file mode 100644
index 00000000000..13665c72274
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/totem/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, intltool, fetchurl, gst_all_1
+, clutter_gtk, clutter-gst, pygobject3, shared_mime_info
+, pkgconfig, gtk3, glib
+, bash, makeWrapper, itstool, libxml2, dbus_glib
+, gnome3, librsvg, gdk_pixbuf, file }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  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.defaultIconTheme librsvg gnome3.gnome_desktop
+                  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"
+
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Videos;
+    description = "Movie player for the GNOME desktop based on GStreamer";
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/totem/src.nix b/pkgs/desktops/gnome-3/3.18/core/totem/src.nix
new file mode 100644
index 00000000000..92bf2c1f8a6
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/totem/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "totem-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/totem/3.18/totem-3.18.0.tar.xz;
+    sha256 = "1b6a7e66414df4b2e2427a9c5f1fee5a5f286beb098fdbe0902e37e3663e3e89";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/tracker/default.nix b/pkgs/desktops/gnome-3/3.18/core/tracker/default.nix
new file mode 100644
index 00000000000..88e6da2ad2d
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/tracker/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, intltool, fetchurl, libxml2, upower
+, pkgconfig, gtk3, glib
+, bash, makeWrapper, itstool, vala, sqlite, libxslt
+, 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 }:
+
+let
+  majorVersion = "1.4";
+in
+stdenv.mkDerivation rec {
+  name = "tracker-${majorVersion}.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/tracker/${majorVersion}/${name}.tar.xz";
+    sha256 = "1ssisbix7ib3d6bgx9s675gx6ayy68jq2srhpzv038mkbaskaz68";
+  };
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+
+  NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0 -I${poppler}/include/poppler";
+
+  enableParallelBuilding = true;
+
+  buildInputs = [ vala pkgconfig gtk3 glib intltool itstool libxml2
+                  bzip2 gnome3.totem-pl-parser libxslt
+                  gnome3.gsettings_desktop_schemas makeWrapper file
+                  gdk_pixbuf gnome3.defaultIconTheme 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 ];
+
+  preConfigure = ''
+    substituteInPlace src/libtracker-sparql/Makefile.in --replace "--shared-library=libtracker-sparql" "--shared-library=$out/lib/libtracker-sparql"
+  '';
+
+  preFixup = ''
+    for f in $out/bin/* $out/libexec/*; do
+      wrapProgram $f \
+        --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"
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Projects/Tracker;
+    description = "Desktop-neutral user information store, search tool and indexer";
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/vino/default.nix b/pkgs/desktops/gnome-3/3.18/core/vino/default.nix
new file mode 100644
index 00000000000..7a015b4a010
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/vino/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, intltool, fetchurl, gtk3, glib, libsoup, pkgconfig, makeWrapper
+, gnome3, libnotify, file, telepathy_glib, dbus_glib }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  doCheck = true;
+
+  buildInputs = [ gtk3 intltool glib libsoup pkgconfig libnotify
+                  gnome3.defaultIconTheme dbus_glib telepathy_glib file
+                  makeWrapper ];
+
+  preFixup = ''
+    wrapProgram "$out/libexec/vino-server" \
+      --prefix XDG_DATA_DIRS : "$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+  '';
+
+  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.18/core/vino/src.nix b/pkgs/desktops/gnome-3/3.18/core/vino/src.nix
new file mode 100644
index 00000000000..b2202c48733
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/vino/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "vino-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/vino/3.18/vino-3.18.0.tar.xz;
+    sha256 = "52be0b036389713eab224abf27f2ca2a067ba5bd1f6b526592703576005e0919";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/vte/2.90.nix b/pkgs/desktops/gnome-3/3.18/core/vte/2.90.nix
new file mode 100644
index 00000000000..5ccca36bcaa
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/vte/2.90.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchurl, intltool, pkgconfig, gnome3, ncurses, gobjectIntrospection }:
+
+stdenv.mkDerivation rec {
+  versionMajor = "0.36";
+  versionMinor = "3";
+  moduleName   = "vte";
+
+  name = "${moduleName}-${versionMajor}.${versionMinor}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
+    sha256 = "54e5b07be3c0f7b158302f54ee79d4de1cb002f4259b6642b79b1e0e314a959c";
+  };
+
+  buildInputs = [ gobjectIntrospection intltool pkgconfig gnome3.glib gnome3.gtk3 ncurses ];
+
+  configureFlags = [ "--enable-introspection" ];
+
+  enableParallelBuilding = true;
+
+  postInstall = ''
+    substituteInPlace $out/lib/libvte2_90.la --replace "-lncurses" "-L${ncurses}/lib -lncurses"
+  '';
+
+  meta = with stdenv.lib; {
+    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 = licenses.lgpl2;
+    maintainers = with maintainers; [ astsmtl antono lethalman ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/vte/default.nix b/pkgs/desktops/gnome-3/3.18/core/vte/default.nix
new file mode 100644
index 00000000000..b47381cf61b
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/vte/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl, intltool, pkgconfig, gnome3, ncurses, gobjectIntrospection, vala, libxml2
+, gnutls, selectTextPatch ? false }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  patches = with stdenv.lib; optional selectTextPatch ./expose_select_text.0.40.0.patch;
+
+  buildInputs = [ gobjectIntrospection intltool pkgconfig gnome3.glib 
+                  gnome3.gtk3 ncurses vala libxml2 ];
+
+  propagatedBuildInputs = [ gnutls ];
+
+  preConfigure = "patchShebangs .";
+
+  configureFlags = [ "--enable-introspection" ];
+
+  enableParallelBuilding = true;
+
+  postInstall = ''
+    substituteInPlace $out/lib/libvte2_90.la --replace "-lncurses" "-L${ncurses}/lib -lncurses"
+  '';
+
+  meta = with stdenv.lib; {
+    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 = licenses.lgpl2;
+    maintainers = with maintainers; [ astsmtl antono lethalman ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/vte/expose_select_text.0.40.0.patch b/pkgs/desktops/gnome-3/3.18/core/vte/expose_select_text.0.40.0.patch
new file mode 100644
index 00000000000..c18f1b76b41
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/vte/expose_select_text.0.40.0.patch
@@ -0,0 +1,226 @@
+Only in vte-0.40.0.new: .git
+diff --unified -aur vte-0.40.0/src/vteaccess.c vte-0.40.0.new/src/vteaccess.c
+--- vte-0.40.0/src/vteaccess.c	2015-03-16 06:34:37.000000000 -0400
++++ vte-0.40.0.new/src/vteaccess.c	2015-04-10 00:08:53.146853382 -0400
+@@ -1444,7 +1444,7 @@
+ 	*start_offset = offset_from_xy (priv, start_x, start_y);
+ 	_vte_terminal_get_end_selection (terminal, &end_x, &end_y);
+ 	*end_offset = offset_from_xy (priv, end_x, end_y);
+-	return _vte_terminal_get_selection (terminal);
++	return vte_terminal_get_selection (terminal);
+ }
+ 
+ static gboolean
+diff --unified -aur vte-0.40.0/src/vte.c vte-0.40.0.new/src/vte.c
+--- vte-0.40.0/src/vte.c	2015-03-18 12:38:09.000000000 -0400
++++ vte-0.40.0.new/src/vte.c	2015-04-10 00:08:53.150186722 -0400
+@@ -123,7 +123,6 @@
+ 						 gpointer data,
+ 						 GArray *attributes,
+ 						 gboolean include_trailing_spaces);
+-static void _vte_terminal_disconnect_pty_read(VteTerminal *terminal);
+ static void _vte_terminal_disconnect_pty_write(VteTerminal *terminal);
+ static void vte_terminal_stop_processing (VteTerminal *terminal);
+ 
+@@ -3344,9 +3343,10 @@
+ 	_vte_debug_print (VTE_DEBUG_IO, "removed poll of vte_terminal_io_read\n");
+ 	terminal->pvt->pty_input_source = 0;
+ }
+-static void
+-_vte_terminal_connect_pty_read(VteTerminal *terminal)
++void
++vte_terminal_connect_pty_read(VteTerminal *terminal)
+ {
++	g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ 	if (terminal->pvt->pty_channel == NULL) {
+ 		return;
+ 	}
+@@ -3398,9 +3398,10 @@
+ 	}
+ }
+ 
+-static void
+-_vte_terminal_disconnect_pty_read(VteTerminal *terminal)
++void
++vte_terminal_disconnect_pty_read(VteTerminal *terminal)
+ {
++	g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ 	if (terminal->pvt->pty_input_source != 0) {
+ 		_vte_debug_print (VTE_DEBUG_IO, "disconnecting poll of vte_terminal_io_read\n");
+ 		g_source_remove(terminal->pvt->pty_input_source);
+@@ -6302,6 +6303,28 @@
+ 	}
+ }
+ 
++/**
++ * vte_terminal_set_cursor_position:
++ * @terminal: a #VteTerminal
++ * @column: the new cursor column
++ * @row: the new cursor row
++ *
++ * Set the location of the cursor.
++ */
++void
++vte_terminal_set_cursor_position(VteTerminal *terminal,
++				 long column, long row)
++{
++	g_return_if_fail(VTE_IS_TERMINAL(terminal));
++
++	_vte_invalidate_cursor_once(terminal, FALSE);
++	terminal->pvt->cursor.col = column;
++	terminal->pvt->cursor.row = row;
++	_vte_invalidate_cursor_once(terminal, FALSE);
++	_vte_check_cursor_blink(terminal);
++	vte_terminal_queue_cursor_moved(terminal);
++}
++
+ static GtkClipboard *
+ vte_terminal_clipboard_get(VteTerminal *terminal, GdkAtom board)
+ {
+@@ -6465,7 +6488,7 @@
+         vte_terminal_extend_selection(terminal, x, y, FALSE, TRUE);
+ 
+ 	/* Temporarily stop caring about input from the child. */
+-	_vte_terminal_disconnect_pty_read(terminal);
++	vte_terminal_disconnect_pty_read(terminal);
+ }
+ 
+ static gboolean
+@@ -6482,7 +6505,7 @@
+ 		terminal->pvt->selecting = FALSE;
+ 
+ 		/* Reconnect to input from the child if we paused it. */
+-		_vte_terminal_connect_pty_read(terminal);
++		vte_terminal_connect_pty_read(terminal);
+ 
+ 		return TRUE;
+ 	}
+@@ -6982,6 +7005,50 @@
+ 	vte_terminal_deselect_all (terminal);
+ }
+ 
++/**
++ * vte_terminal_get_selection_block_mode:
++ * @terminal: a #VteTerminal
++ *
++ * Checks whether or not block selection is enabled.
++ *
++ * Returns: %TRUE if block selection is enabled, %FALSE if not
++ */
++gboolean
++vte_terminal_get_selection_block_mode(VteTerminal *terminal) {
++	g_return_val_if_fail(VTE_IS_TERMINAL(terminal), FALSE);
++	return terminal->pvt->selection_block_mode;
++}
++
++/**
++ * vte_terminal_set_selection_block_mode:
++ * @terminal: a #VteTerminal
++ * @block_mode: whether block selection is enabled
++ *
++ * Sets whether or not block selection is enabled.
++ */
++void
++vte_terminal_set_selection_block_mode(VteTerminal *terminal, gboolean block_mode) {
++	g_return_if_fail(VTE_IS_TERMINAL(terminal));
++	terminal->pvt->selection_block_mode = block_mode;
++}
++
++/**
++ * vte_terminal_select_text:
++ * @terminal: a #VteTerminal
++ * @start_col: the starting column for the selection
++ * @start_row: the starting row for the selection
++ * @end_col: the end column for the selection
++ * @end_row: the end row for the selection
++ *
++ * Sets the current selection region.
++ */
++void
++vte_terminal_select_text(VteTerminal *terminal,
++			 long start_col, long start_row,
++			 long end_col, long end_row) {
++	_vte_terminal_select_text(terminal, start_col, start_row, end_col, end_row, 0, 0);
++}
++
+ /* Autoscroll a bit. */
+ static gboolean
+ vte_terminal_autoscroll(VteTerminal *terminal)
+@@ -8631,7 +8698,7 @@
+ #endif
+ 		kill(terminal->pvt->pty_pid, SIGHUP);
+ 	}
+-	_vte_terminal_disconnect_pty_read(terminal);
++	vte_terminal_disconnect_pty_read(terminal);
+ 	_vte_terminal_disconnect_pty_write(terminal);
+ 	if (terminal->pvt->pty_channel != NULL) {
+ 		g_io_channel_unref (terminal->pvt->pty_channel);
+@@ -12188,7 +12255,7 @@
+         g_object_freeze_notify(object);
+ 
+         if (pvt->pty != NULL) {
+-                _vte_terminal_disconnect_pty_read(terminal);
++                vte_terminal_disconnect_pty_read(terminal);
+                 _vte_terminal_disconnect_pty_write(terminal);
+ 
+                 if (terminal->pvt->pty_channel != NULL) {
+@@ -12243,7 +12310,7 @@
+         _vte_terminal_setup_utf8 (terminal);
+ 
+         /* Open channels to listen for input on. */
+-        _vte_terminal_connect_pty_read (terminal);
++        vte_terminal_connect_pty_read (terminal);
+ 
+         g_object_notify(object, "pty");
+ 
+@@ -12276,7 +12343,7 @@
+ }
+ 
+ char *
+-_vte_terminal_get_selection(VteTerminal *terminal)
++vte_terminal_get_selection(VteTerminal *terminal)
+ {
+ 	g_return_val_if_fail(VTE_IS_TERMINAL(terminal), NULL);
+ 
+diff --unified -aur vte-0.40.0/src/vteint.h vte-0.40.0.new/src/vteint.h
+--- vte-0.40.0/src/vteint.h	2014-05-28 08:22:48.000000000 -0400
++++ vte-0.40.0.new/src/vteint.h	2015-04-10 00:08:53.153520062 -0400
+@@ -25,7 +25,6 @@
+ G_BEGIN_DECLS
+ 
+ void _vte_terminal_accessible_ref(VteTerminal *terminal);
+-char* _vte_terminal_get_selection(VteTerminal *terminal);
+ void _vte_terminal_get_start_selection(VteTerminal *terminal, long *x, long *y);
+ void _vte_terminal_get_end_selection(VteTerminal *terminal, long *x, long *y);
+ void _vte_terminal_select_text(VteTerminal *terminal, long start_x, long start_y, long end_x, long end_y, int start_offset, int end_offset);
+diff --unified -aur vte-0.40.0/src/vteterminal.h vte-0.40.0.new/src/vteterminal.h
+--- vte-0.40.0/src/vteterminal.h	2015-03-18 12:38:09.000000000 -0400
++++ vte-0.40.0.new/src/vteterminal.h	2015-04-10 00:08:53.150186722 -0400
+@@ -169,6 +169,18 @@
+ 
+ void vte_terminal_select_all(VteTerminal *terminal) _VTE_GNUC_NONNULL(1);
+ void vte_terminal_unselect_all(VteTerminal *terminal) _VTE_GNUC_NONNULL(1);
++gboolean vte_terminal_get_selection_block_mode(VteTerminal *terminal) _VTE_GNUC_NONNULL(1);
++void vte_terminal_set_selection_block_mode(VteTerminal *terminal,
++                                           gboolean block_mode) _VTE_GNUC_NONNULL(1);
++void vte_terminal_select_text(VteTerminal *terminal,
++                              long start_col, long start_row,
++                              long end_col, long end_row) _VTE_GNUC_NONNULL(1);
++char *
++vte_terminal_get_selection(VteTerminal *terminal) _VTE_GNUC_NONNULL(1);
++
++/* pause and unpause output */
++void vte_terminal_disconnect_pty_read(VteTerminal *vte);
++void vte_terminal_connect_pty_read(VteTerminal *vte);
+ 
+ /* By-word selection */
+ void vte_terminal_set_word_char_exceptions(VteTerminal *terminal,
+@@ -280,6 +292,8 @@
+ void vte_terminal_get_cursor_position(VteTerminal *terminal,
+ 				      glong *column,
+                                       glong *row) _VTE_GNUC_NONNULL(1);
++void vte_terminal_set_cursor_position(VteTerminal *terminal,
++				      long column, long row) _VTE_GNUC_NONNULL(1);
+ 
+ /* Add a matching expression, returning the tag the widget assigns to that
+  * expression. */
diff --git a/pkgs/desktops/gnome-3/3.18/core/vte/src.nix b/pkgs/desktops/gnome-3/3.18/core/vte/src.nix
new file mode 100644
index 00000000000..ea6e39182fc
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/vte/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "vte-0.42.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/vte/0.42/vte-0.42.0.tar.xz;
+    sha256 = "2168f79d2043cbbe6d4375d01e54cebda71bb6f5d9dc8ad658b9a1dc1052de04";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/yelp-tools/default.nix b/pkgs/desktops/gnome-3/3.18/core/yelp-tools/default.nix
new file mode 100644
index 00000000000..de708d48c5e
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/yelp-tools/default.nix
@@ -0,0 +1,17 @@
+{ stdenv, fetchurl, libxml2, libxslt, itstool, gnome3, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  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.18/core/yelp-tools/src.nix b/pkgs/desktops/gnome-3/3.18/core/yelp-tools/src.nix
new file mode 100644
index 00000000000..f03c6d1bc31
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/yelp-tools/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "yelp-tools-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/yelp-tools/3.18/yelp-tools-3.18.0.tar.xz;
+    sha256 = "c6c1d65f802397267cdc47aafd5398c4b60766e0a7ad2190426af6c0d0716932";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/yelp-xsl/default.nix b/pkgs/desktops/gnome-3/3.18/core/yelp-xsl/default.nix
new file mode 100644
index 00000000000..0a3976f35a1
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/yelp-xsl/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, intltool, fetchurl, pkgconfig, bash
+, itstool, libxml2, libxslt, gnome3 }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  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 = gnome3.maintainers;
+    license = [licenses.gpl2 licenses.lgpl2];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/yelp-xsl/src.nix b/pkgs/desktops/gnome-3/3.18/core/yelp-xsl/src.nix
new file mode 100644
index 00000000000..a3343d2dfd1
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/yelp-xsl/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "yelp-xsl-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/yelp-xsl/3.18/yelp-xsl-3.18.0.tar.xz;
+    sha256 = "893620857b72b3b43ee3b462281240b7ca4d80292f469552827f0597bf60d2b2";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/yelp/default.nix b/pkgs/desktops/gnome-3/3.18/core/yelp/default.nix
new file mode 100644
index 00000000000..13464137bd8
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/yelp/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, intltool, fetchurl, webkitgtk, pkgconfig, gtk3, glib
+, file, librsvg, gnome3, gdk_pixbuf, sqlite
+, bash, makeWrapper, itstool, libxml2, libxslt, icu, gst_all_1
+, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+
+  preConfigure = "substituteInPlace ./configure --replace /usr/bin/file ${file}/bin/file";
+
+  buildInputs = [ pkgconfig gtk3 glib webkitgtk intltool itstool sqlite
+                  libxml2 libxslt icu file makeWrapper gnome3.yelp_xsl
+                  librsvg gdk_pixbuf gnome3.defaultIconTheme
+                  gnome3.gsettings_desktop_schemas wrapGAppsHook
+                  gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good ];
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Yelp;
+    description = "The help viewer in Gnome";
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/yelp/src.nix b/pkgs/desktops/gnome-3/3.18/core/yelp/src.nix
new file mode 100644
index 00000000000..cb25d3d30c6
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/yelp/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "yelp-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/yelp/3.18/yelp-3.18.0.tar.xz;
+    sha256 = "a8c201e520c87832d017439492e4343e957a90da5c6d85060e8dd3b28ffee72e";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/zenity/default.nix b/pkgs/desktops/gnome-3/3.18/core/zenity/default.nix
new file mode 100644
index 00000000000..8f525945a6a
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/zenity/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, pkgconfig, cairo, libxml2, libxslt, gnome3, pango
+, gnome_doc_utils, intltool, libX11, which, itstool }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  preBuild = ''
+    mkdir -p $out/include
+  '';
+
+  buildInputs = [ gnome3.gtk libxml2 libxslt libX11 itstool ];
+
+  nativeBuildInputs = [ pkgconfig intltool gnome_doc_utils which ];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+    maintainers = gnome3.maintainers;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/core/zenity/src.nix b/pkgs/desktops/gnome-3/3.18/core/zenity/src.nix
new file mode 100644
index 00000000000..87f16156515
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/core/zenity/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "zenity-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/zenity/3.18/zenity-3.18.0.tar.xz;
+    sha256 = "0efafea95a830f3bf6eca805ff4a8008df760a6ad3e81181b9473dcf721c3a69";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/default.nix b/pkgs/desktops/gnome-3/3.18/default.nix
new file mode 100644
index 00000000000..a3ae8933e64
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/default.nix
@@ -0,0 +1,394 @@
+{ pkgs }:
+
+let
+
+  pkgsFun = overrides:
+    let 
+      self = self_ // overrides;
+      self_ = with self; {
+
+  overridePackages = f:
+    let newself = pkgsFun (f newself self);
+    in newself;
+
+  callPackage = pkgs.newScope self;
+
+  version = "3.18";
+  maintainers = with pkgs.lib.maintainers; [ lethalman jgeerds ];
+
+  corePackages = with gnome3; [
+    pkgs.desktop_file_utils pkgs.ibus
+    pkgs.shared_mime_info # for update-mime-database
+    glib # for gsettings
+    gtk3 # for gtk-update-icon-cache
+    glib_networking gvfs dconf gnome-backgrounds gnome_control_center
+    gnome-menus gnome_settings_daemon gnome_shell
+    gnome_themes_standard defaultIconTheme gnome-shell-extensions
+    pkgs.hicolor_icon_theme
+  ];
+
+  optionalPackages = with gnome3; [ baobab empathy eog epiphany evince
+    gucharmap nautilus totem vino yelp gnome-bluetooth
+    gnome-calculator gnome-contacts gnome-font-viewer gnome-screenshot
+    gnome-system-log gnome-system-monitor
+    gnome_terminal gnome-user-docs bijiben evolution file-roller gedit
+    gnome-clocks gnome-music gnome-tweak-tool gnome-photos
+    nautilus-sendto dconf-editor vinagre gnome-weather gnome-logs
+    gnome-maps gnome-characters gnome-calendar accerciser gnome-nettool
+    gnome-getting-started-docs
+  ];
+
+  gamesPackages = with gnome3; [ swell-foop lightsoff iagno
+    tali quadrapassel gnome-sudoku aisleriot five-or-more
+    four-in-a-row gnome-chess gnome-klotski gnome-mahjongg
+    gnome-mines gnome-nibbles gnome-robots gnome-tetravex
+    hitori gnome-taquin
+  ];
+
+  inherit (pkgs) glib gtk2 webkitgtk24x gtk3 gtkmm3 libcanberra;
+  inherit (pkgs.gnome2) ORBit2;
+  libsoup = pkgs.libsoup.override { gnomeSupport = true; };
+  libchamplain = pkgs.libchamplain.override { libsoup = libsoup; };
+  orbit = ORBit2;
+  gnome3 = self // { recurseForDerivations = false; };
+  clutter = pkgs.clutter_1_24;
+  clutter_gtk = pkgs.clutter_gtk_1_6.override { inherit clutter gtk3; };
+  clutter-gst_2 = pkgs.clutter-gst;
+  clutter-gst = pkgs.clutter-gst_3_0.override { inherit clutter cogl; };
+  cogl = pkgs.cogl_1_22;
+  gtk = gtk3;
+  gtkmm = gtkmm3;
+  gtkvnc = pkgs.gtkvnc.override { enableGTK3 = true; };
+  vala = pkgs.vala_0_26;
+  gegl_0_3 = pkgs.gegl_0_3.override { inherit gtk; };
+
+# Simplify the nixos module and gnome packages
+  defaultIconTheme = adwaita-icon-theme;
+
+#### Core (http://ftp.acc.umu.se/pub/GNOME/core/)
+
+  adwaita-icon-theme = callPackage ./core/adwaita-icon-theme { };
+
+  baobab = callPackage ./core/baobab { };
+
+  caribou = callPackage ./core/caribou { };
+
+  dconf = callPackage ./core/dconf { };
+  dconf-editor = callPackage ./core/dconf-editor { };
+
+  empathy = callPackage ./core/empathy { 
+    webkitgtk = webkitgtk24x;
+    clutter-gst = pkgs.clutter-gst;
+  };
+
+  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 { };
+
+  glib_networking = pkgs.glib_networking.override {
+    inherit gsettings_desktop_schemas;
+  };
+
+  gnome-backgrounds = callPackage ./core/gnome-backgrounds { };
+
+  gnome-bluetooth = callPackage ./core/gnome-bluetooth { };
+
+  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-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 { };
+
+  gsound = callPackage ./core/gsound { };
+
+  gtksourceview = callPackage ./core/gtksourceview { };
+
+  gucharmap = callPackage ./core/gucharmap { };
+
+  gvfs = pkgs.gvfs.override { gnome = gnome3; gnomeSupport = true; };
+
+  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 { };
+
+  networkmanager_openvpn = pkgs.networkmanager_openvpn.override {
+    inherit gnome3;
+  };
+
+  networkmanager_pptp = pkgs.networkmanager_pptp.override {
+    inherit gnome3;
+  };
+
+  networkmanager_vpnc = pkgs.networkmanager_vpnc.override {
+    inherit gnome3;
+  };
+
+  networkmanager_openconnect = pkgs.networkmanager_openconnect.override {
+    inherit gnome3;
+  };
+
+  networkmanager_l2tp = pkgs.networkmanager_l2tp.override {
+    inherit gnome3;
+  };
+
+  networkmanagerapplet = pkgs.networkmanagerapplet.override {
+    inherit gnome3 gsettings_desktop_schemas glib_networking;
+  };
+
+  rest = callPackage ./core/rest { };
+
+  sushi = callPackage ./core/sushi {
+    clutter-gst = pkgs.clutter-gst;
+  };
+
+  totem = callPackage ./core/totem { };
+
+  totem-pl-parser = callPackage ./core/totem-pl-parser { };
+
+  tracker = callPackage ./core/tracker { giflib = pkgs.giflib_5_0; };
+
+  vte = callPackage ./core/vte { };
+
+  vte_290 = callPackage ./core/vte/2.90.nix { };
+
+  vte-select-text = vte.override { selectTextPatch = true; };
+
+  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/)
+
+  accerciser = callPackage ./apps/accerciser { };
+
+  bijiben = callPackage ./apps/bijiben {
+    webkitgtk = webkitgtk24x;
+  };
+
+  cheese = callPackage ./apps/cheese { };
+
+  evolution = callPackage ./apps/evolution {
+    webkitgtk = webkitgtk24x;
+  };
+
+  file-roller = callPackage ./apps/file-roller { };
+
+  gedit = callPackage ./apps/gedit { };
+
+  glade = callPackage ./apps/glade { };
+
+  gnome-boxes = callPackage ./apps/gnome-boxes {
+    gtkvnc = pkgs.gtkvnc.override { enableGTK3 = true; };
+    spice_gtk = pkgs.spice_gtk.override { enableGTK3 = true; };
+  };
+
+  gnome-calendar = callPackage ./apps/gnome-calendar { };
+
+  gnome-characters = callPackage ./apps/gnome-characters { };
+
+  gnome-clocks = callPackage ./apps/gnome-clocks { };
+
+  gnome-documents = callPackage ./apps/gnome-documents { };
+
+  gnome-getting-started-docs = callPackage ./apps/gnome-getting-started-docs { };
+
+  gnome-logs = callPackage ./apps/gnome-logs { };
+
+  gnome-maps = callPackage ./apps/gnome-maps { };
+
+  gnome-music = callPackage ./apps/gnome-music { };
+
+  gnome-nettool = callPackage ./apps/gnome-nettool { };
+
+  gnome-photos = callPackage ./apps/gnome-photos {
+    gegl = gegl_0_3;
+  };
+
+  gnome-weather = callPackage ./apps/gnome-weather { };
+
+  nautilus-sendto = callPackage ./apps/nautilus-sendto { };
+
+  polari = callPackage ./apps/polari { };
+
+  # scrollkeeper replacement
+  rarian = callPackage ./desktop/rarian { };
+
+  seahorse = callPackage ./apps/seahorse { };
+
+  vinagre = callPackage ./apps/vinagre { };
+
+#### Dev http://ftp.gnome.org/pub/GNOME/devtools/
+
+  anjuta = callPackage ./devtools/anjuta { };
+
+  devhelp = callPackage ./devtools/devhelp {
+    webkitgtk = webkitgtk24x;
+  };
+
+  gdl = callPackage ./devtools/gdl { };
+
+  gnome-devel-docs = callPackage ./devtools/gnome-devel-docs { };
+
+#### Games
+
+  aisleriot = callPackage ./games/aisleriot { };
+
+  five-or-more = callPackage ./games/five-or-more { };
+
+  four-in-a-row = callPackage ./games/four-in-a-row { };
+
+  gnome-chess = callPackage ./games/gnome-chess { };
+
+  gnome-klotski = callPackage ./games/gnome-klotski { };
+
+  gnome-mahjongg = callPackage ./games/gnome-mahjongg { };
+
+  gnome-mines = callPackage ./games/gnome-mines { };
+
+  gnome-nibbles = callPackage ./games/gnome-nibbles { };
+
+  gnome-robots = callPackage ./games/gnome-robots { };
+
+  gnome-sudoku = callPackage ./games/gnome-sudoku { };
+
+  gnome-taquin = callPackage ./games/gnome-taquin { };
+
+  gnome-tetravex = callPackage ./games/gnome-tetravex { };
+
+  hitori = callPackage ./games/hitori { };
+
+  iagno = callPackage ./games/iagno { };
+
+  lightsoff = callPackage ./games/lightsoff { };
+
+  swell-foop = callPackage ./games/swell-foop { };
+
+  tali = callPackage ./games/tali { };
+
+  quadrapassel = callPackage ./games/quadrapassel { };
+
+#### Misc -- other packages on http://ftp.gnome.org/pub/GNOME/sources/
+
+  california = callPackage ./misc/california { };
+
+  geary = callPackage ./misc/geary { 
+    webkitgtk = webkitgtk24x;
+  };
+
+  gfbgraph = callPackage ./misc/gfbgraph { };
+
+  gitg = callPackage ./misc/gitg { 
+    webkitgtk = webkitgtk24x;
+  };
+
+  libgda = callPackage ./misc/libgda { };
+
+  libgit2-glib = callPackage ./misc/libgit2-glib {
+    libgit2 = pkgs.libgit2.override { libssh2 = null; };
+  };
+
+  libmediaart = callPackage ./misc/libmediaart { };
+
+  gexiv2 = callPackage ./misc/gexiv2 { };
+
+  gnome-tweak-tool = callPackage ./misc/gnome-tweak-tool { };
+
+  gpaste = callPackage ./misc/gpaste { };
+
+  gtkhtml = callPackage ./misc/gtkhtml { };
+
+  pomodoro = callPackage ./misc/pomodoro { };
+
+  gnome-video-effects = callPackage ./misc/gnome-video-effects { };
+
+    };
+  in self; # pkgsFun
+
+in pkgsFun {}
diff --git a/pkgs/desktops/gnome-3/3.18/desktop/rarian/default.nix b/pkgs/desktops/gnome-3/3.18/desktop/rarian/default.nix
new file mode 100644
index 00000000000..a1b38b21869
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/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.18/devtools/anjuta/default.nix b/pkgs/desktops/gnome-3/3.18/devtools/anjuta/default.nix
new file mode 100644
index 00000000000..ef350e08684
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/devtools/anjuta/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, flex, bison, libxml2, intltool,
+  itstool, python, makeWrapper }:
+
+in stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  enableParallelBuilding = true;
+
+  buildInputs = [ pkgconfig flex bison gtk3 libxml2 gnome3.gjs gnome3.gdl
+    gnome3.libgda gnome3.gtksourceview intltool itstool python makeWrapper ];
+
+  preFixup = ''
+    wrapProgram $out/bin/anjuta \
+      --prefix XDG_DATA_DIRS : \
+        "$GSETTINGS_SCHEMAS_PATH"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Software development studio";
+    homepage = http://anjuta.org/;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/devtools/anjuta/src.nix b/pkgs/desktops/gnome-3/3.18/devtools/anjuta/src.nix
new file mode 100644
index 00000000000..835024c3447
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/devtools/anjuta/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "anjuta-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/anjuta/3.18/anjuta-3.18.0.tar.xz;
+    sha256 = "6a3fec0963f04bc62a9dfb951e577a3276d39c3414083ef73163c3fea8e741ba";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/devtools/devhelp/default.nix b/pkgs/desktops/gnome-3/3.18/devtools/devhelp/default.nix
new file mode 100644
index 00000000000..1cfae754cfe
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/devtools/devhelp/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook
+, webkitgtk, intltool }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  buildInputs = [
+    pkgconfig gtk3 wrapGAppsHook webkitgtk intltool gnome3.defaultIconTheme
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = https://live.gnome.org/devhelp;
+    description = "API documentation browser for GNOME";
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/devtools/devhelp/src.nix b/pkgs/desktops/gnome-3/3.18/devtools/devhelp/src.nix
new file mode 100644
index 00000000000..8da63dc2685
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/devtools/devhelp/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "devhelp-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/devhelp/3.18/devhelp-3.18.0.tar.xz;
+    sha256 = "2494af16fedc311d7bb50bc47c32a69035f7b95fd7995d9db4fe497926087fb5";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/devtools/gdl/default.nix b/pkgs/desktops/gnome-3/3.18/devtools/gdl/default.nix
new file mode 100644
index 00000000000..156d91b3eae
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/devtools/gdl/default.nix
@@ -0,0 +1,15 @@
+{ stdenv, fetchurl, pkgconfig, libxml2, gtk3, gnome3, intltool }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  buildInputs = [ pkgconfig libxml2 gtk3 intltool ];
+
+  meta = with stdenv.lib; {
+    description = "Gnome docking library";
+    homepage = https://developer.gnome.org/gdl/;
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/devtools/gdl/src.nix b/pkgs/desktops/gnome-3/3.18/devtools/gdl/src.nix
new file mode 100644
index 00000000000..3fd39139799
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/devtools/gdl/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gdl-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gdl/3.18/gdl-3.18.0.tar.xz;
+    sha256 = "1499884e4fce375a963cf2b98b90e6724144f9b1f1ac8b84d765f4c85a2140b2";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/devtools/gnome-devel-docs/default.nix b/pkgs/desktops/gnome-3/3.18/devtools/gnome-devel-docs/default.nix
new file mode 100644
index 00000000000..50960f41a31
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/devtools/gnome-devel-docs/default.nix
@@ -0,0 +1,15 @@
+{ stdenv, fetchurl, gnome3, intltool, itstool, libxml2 }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  buildInputs = [ intltool itstool libxml2 ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/GNOME/gnome-devel-docs;
+    description = "Developer documentation for GNOME";
+    maintainers = gnome3.maintainers;
+    license = licenses.fdl12;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/devtools/gnome-devel-docs/src.nix b/pkgs/desktops/gnome-3/3.18/devtools/gnome-devel-docs/src.nix
new file mode 100644
index 00000000000..50a575945d7
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/devtools/gnome-devel-docs/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gnome-devel-docs-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gnome-devel-docs/3.18/gnome-devel-docs-3.18.0.tar.xz;
+    sha256 = "f237fb8593ada0346ccc932ae17647a883cc9f7026f4cad16f084bb7420e0925";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/games/aisleriot/default.nix b/pkgs/desktops/gnome-3/3.18/games/aisleriot/default.nix
new file mode 100644
index 00000000000..e149a0b3126
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/games/aisleriot/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, pkgconfig, gnome3, intltool, itstool, gtk3
+, wrapGAppsHook, gconf, librsvg, libxml2, desktop_file_utils
+, guile, libcanberra_gtk3 }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  configureFlags = [ "--with-card-theme-formats=svg" ];
+
+  buildInputs = [ pkgconfig intltool itstool gtk3 wrapGAppsHook gconf
+                  librsvg libxml2 desktop_file_utils guile libcanberra_gtk3 ];
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Aisleriot;
+    description = "A collection of patience games written in guile scheme";
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/games/aisleriot/src.nix b/pkgs/desktops/gnome-3/3.18/games/aisleriot/src.nix
new file mode 100644
index 00000000000..465fccd15b4
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/games/aisleriot/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "aisleriot-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/aisleriot/3.18/aisleriot-3.18.0.tar.xz;
+    sha256 = "3421f7dabe482ddae2fd2a053a13a2a9549fe960fec5838ab4fe6d89cff054dd";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/games/five-or-more/default.nix b/pkgs/desktops/gnome-3/3.18/games/five-or-more/default.nix
new file mode 100644
index 00000000000..50a7d2906a7
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/games/five-or-more/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook
+, librsvg, intltool, itstool, libxml2 }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  buildInputs = [
+    pkgconfig gtk3 wrapGAppsHook librsvg intltool itstool libxml2
+    gnome3.defaultIconTheme
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Five_or_more;
+    description = "Remove colored balls from the board by forming lines";
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/games/five-or-more/src.nix b/pkgs/desktops/gnome-3/3.18/games/five-or-more/src.nix
new file mode 100644
index 00000000000..37d9794dc1b
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/games/five-or-more/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "five-or-more-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/five-or-more/3.18/five-or-more-3.18.0.tar.xz;
+    sha256 = "e1e7cc81b1281382da9a6ab466d97f09561dbaf39031a9b93f0a45221234fe62";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/games/four-in-a-row/default.nix b/pkgs/desktops/gnome-3/3.18/games/four-in-a-row/default.nix
new file mode 100644
index 00000000000..68228750cd8
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/games/four-in-a-row/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook
+, intltool, itstool, libcanberra_gtk3, librsvg, libxml2 }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  buildInputs = [
+    pkgconfig gtk3 wrapGAppsHook intltool itstool libcanberra_gtk3 librsvg
+    libxml2 gnome3.defaultIconTheme
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Four-in-a-row;
+    description = "Make lines of the same color to win";
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/games/four-in-a-row/src.nix b/pkgs/desktops/gnome-3/3.18/games/four-in-a-row/src.nix
new file mode 100644
index 00000000000..dc24a4366e3
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/games/four-in-a-row/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "four-in-a-row-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/four-in-a-row/3.18/four-in-a-row-3.18.0.tar.xz;
+    sha256 = "a65fece60b66122fbf5fddf646ac2acffc58a802cf3e87e5985d5b962d53df48";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-chess/default.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-chess/default.nix
new file mode 100644
index 00000000000..a96dae3c12c
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/games/gnome-chess/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook
+, intltool, itstool, librsvg, libxml2 }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  buildInputs = [
+    pkgconfig gtk3 wrapGAppsHook intltool itstool librsvg libxml2
+    gnome3.defaultIconTheme
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Chess;
+    description = "Play the classic two-player boardgame of chess";
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-chess/src.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-chess/src.nix
new file mode 100644
index 00000000000..5cbbb6c9025
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/games/gnome-chess/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gnome-chess-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gnome-chess/3.18/gnome-chess-3.18.0.tar.xz;
+    sha256 = "c841198935d807618c3cecbf10ed24643390d504e17961717bac455f4e1b37ad";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-klotski/default.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-klotski/default.nix
new file mode 100644
index 00000000000..b13bf8afbfa
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/games/gnome-klotski/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook
+, librsvg, libxml2, intltool, itstool }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  buildInputs = [
+    pkgconfig gtk3 wrapGAppsHook intltool itstool librsvg libxml2
+    gnome3.defaultIconTheme
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Klotski;
+    description = "Slide blocks to solve the puzzle";
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-klotski/src.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-klotski/src.nix
new file mode 100644
index 00000000000..c772988198c
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/games/gnome-klotski/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gnome-klotski-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gnome-klotski/3.18/gnome-klotski-3.18.0.tar.xz;
+    sha256 = "75ef9f7b3b09edf660165f62f8797f3850a49d6be4de0c258ee7d828e67820f2";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-mahjongg/default.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-mahjongg/default.nix
new file mode 100644
index 00000000000..43db32e8857
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/games/gnome-mahjongg/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook
+, librsvg, intltool, itstool, libxml2 }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  buildInputs = [
+    pkgconfig gtk3 wrapGAppsHook librsvg intltool itstool libxml2
+    gnome3.defaultIconTheme
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Mahjongg;
+    description = "Disassemble a pile of tiles by removing matching pairs";
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-mahjongg/src.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-mahjongg/src.nix
new file mode 100644
index 00000000000..214c4a7d6e0
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/games/gnome-mahjongg/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gnome-mahjongg-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gnome-mahjongg/3.18/gnome-mahjongg-3.18.0.tar.xz;
+    sha256 = "7034428f5ac04bfd90689ee66894a6948a2ff1bfa2d2548f7559d2134b967405";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-mines/default.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-mines/default.nix
new file mode 100644
index 00000000000..4d703bb37a7
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/games/gnome-mines/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook
+, librsvg, intltool, itstool, libxml2 }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  buildInputs = [
+    pkgconfig gtk3 wrapGAppsHook librsvg intltool itstool libxml2
+    gnome3.defaultIconTheme
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Mines;
+    description = "Clear hidden mines from a minefield";
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-mines/src.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-mines/src.nix
new file mode 100644
index 00000000000..e5099ac9575
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/games/gnome-mines/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gnome-mines-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gnome-mines/3.18/gnome-mines-3.18.0.tar.xz;
+    sha256 = "8b4c05ef0ab43031661e3cdb1b17ba551efe4e4488fe4462fee9557cd10a64f9";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-nibbles/default.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-nibbles/default.nix
new file mode 100644
index 00000000000..85ffeb3c50f
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/games/gnome-nibbles/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook
+, librsvg, libcanberra_gtk3, clutter_gtk, intltool, itstool
+, libxml2 }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  buildInputs = [
+    pkgconfig gtk3 wrapGAppsHook intltool itstool libxml2
+    librsvg libcanberra_gtk3 clutter_gtk gnome3.defaultIconTheme
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Nibbles;
+    description = "Guide a worm around a maze";
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-nibbles/src.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-nibbles/src.nix
new file mode 100644
index 00000000000..d82422619f8
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/games/gnome-nibbles/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gnome-nibbles-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gnome-nibbles/3.18/gnome-nibbles-3.18.0.tar.xz;
+    sha256 = "9ffc549d574774905c79b391d3e59f8045f47504d96279d9b26cc602f59ad545";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-robots/default.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-robots/default.nix
new file mode 100644
index 00000000000..3c318fa847c
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/games/gnome-robots/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook
+, librsvg, libcanberra_gtk3, intltool, itstool, libxml2 }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  buildInputs = [
+    pkgconfig gtk3 wrapGAppsHook intltool itstool librsvg libcanberra_gtk3
+    libxml2 gnome3.defaultIconTheme
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Robots;
+    description = "Avoid the robots and make them crash into each other";
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-robots/src.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-robots/src.nix
new file mode 100644
index 00000000000..228e2ca81b1
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/games/gnome-robots/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gnome-robots-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gnome-robots/3.18/gnome-robots-3.18.0.tar.xz;
+    sha256 = "34311cb9de6a970f00fa9743dced2925e98f40f77b4a406e17b589412cb902fc";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-sudoku/default.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-sudoku/default.nix
new file mode 100644
index 00000000000..c8ba82c7246
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/games/gnome-sudoku/default.nix
@@ -0,0 +1,17 @@
+{ stdenv, fetchurl, pkgconfig, intltool, gtk3, gnome3, wrapGAppsHook
+, json_glib, qqwing, itstool, libxml2 }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  buildInputs = [ pkgconfig intltool wrapGAppsHook gtk3 gnome3.libgee
+                  json_glib qqwing itstool libxml2 ];
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Sudoku;
+    description = "Test your logic skills in this number grid puzzle";
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-sudoku/src.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-sudoku/src.nix
new file mode 100644
index 00000000000..f7dd422bec5
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/games/gnome-sudoku/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gnome-sudoku-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gnome-sudoku/3.18/gnome-sudoku-3.18.0.tar.xz;
+    sha256 = "e6180b14f7ccb9ec43e187cf358eceaf707edb4d9defff3386ae4ef8e53cce5b";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-taquin/default.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-taquin/default.nix
new file mode 100644
index 00000000000..78eaa23e63b
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/games/gnome-taquin/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook
+, librsvg, libcanberra_gtk3, intltool, itstool, libxml2 }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  buildInputs = [
+    pkgconfig gtk3 wrapGAppsHook librsvg libcanberra_gtk3
+    intltool itstool libxml2 gnome3.defaultIconTheme
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Taquin;
+    description = "Move tiles so that they reach their places";
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-taquin/src.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-taquin/src.nix
new file mode 100644
index 00000000000..41cb361edb3
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/games/gnome-taquin/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gnome-taquin-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gnome-taquin/3.18/gnome-taquin-3.18.0.tar.xz;
+    sha256 = "3cee6a52003ccec3147020d24c079a0cd01b6855fcd486ef20a60e0f862e8760";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-tetravex/default.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-tetravex/default.nix
new file mode 100644
index 00000000000..d6feab93dba
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/games/gnome-tetravex/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook
+, libxml2, intltool, itstool }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  buildInputs = [
+    pkgconfig gtk3 wrapGAppsHook intltool itstool libxml2 gnome3.defaultIconTheme
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Tetravex;
+    description = "Complete the puzzle by matching numbered tiles";
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-tetravex/src.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-tetravex/src.nix
new file mode 100644
index 00000000000..d73562835e4
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/games/gnome-tetravex/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gnome-tetravex-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gnome-tetravex/3.18/gnome-tetravex-3.18.0.tar.xz;
+    sha256 = "ea00ff5ea9a3b583c4d755cefa2725dd7b3b0781972af1c56377c7eda48cb579";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/games/hitori/default.nix b/pkgs/desktops/gnome-3/3.18/games/hitori/default.nix
new file mode 100644
index 00000000000..bd6be7d43c5
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/games/hitori/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook
+, libxml2, intltool, itstool }:
+
+stdenv.mkDerivation rec {
+  name = "hitori-${gnome3.version}.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/hitori/${gnome3.version}/${name}.tar.xz";
+    sha256 = "07pm3xl05jgb8x151k1j2ap57dmfvk2nkz9dmqnn5iywfigsysd1";
+  };
+
+  buildInputs = [
+    pkgconfig gtk3 wrapGAppsHook intltool itstool libxml2
+    gnome3.defaultIconTheme
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Hitori;
+    description = "GTK+ application to generate and let you play games of Hitori";
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/games/iagno/default.nix b/pkgs/desktops/gnome-3/3.18/games/iagno/default.nix
new file mode 100644
index 00000000000..1b6f08d1fd6
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/games/iagno/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, pkgconfig, gtk3, gnome3, gdk_pixbuf, librsvg, wrapGAppsHook
+, intltool, itstool, libcanberra_gtk3, libxml2, dconf }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  buildInputs = [ pkgconfig gtk3 gnome3.defaultIconTheme gdk_pixbuf librsvg
+                  dconf libxml2 libcanberra_gtk3 wrapGAppsHook itstool intltool ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Iagno;
+    description = "Computer version of the game Reversi, more popularly called Othello";
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/games/iagno/src.nix b/pkgs/desktops/gnome-3/3.18/games/iagno/src.nix
new file mode 100644
index 00000000000..09b30cf066b
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/games/iagno/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "iagno-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/iagno/3.18/iagno-3.18.0.tar.xz;
+    sha256 = "4a03b474f9b0f0812c8b22b4991aa6dd894dedc05959001fd9e3e09d0d323c56";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/games/lightsoff/default.nix b/pkgs/desktops/gnome-3/3.18/games/lightsoff/default.nix
new file mode 100644
index 00000000000..8ec54b48972
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/games/lightsoff/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, pkgconfig, gtk3, gnome3, gdk_pixbuf, librsvg, wrapGAppsHook
+, intltool, itstool, clutter, clutter_gtk, libxml2, dconf }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  buildInputs = [ pkgconfig gtk3 gnome3.defaultIconTheme gdk_pixbuf librsvg dconf
+                  libxml2 clutter clutter_gtk wrapGAppsHook itstool intltool ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Lightsoff;
+    description = "Puzzle game, where the objective is to turn off all of the tiles on the board";
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/games/lightsoff/src.nix b/pkgs/desktops/gnome-3/3.18/games/lightsoff/src.nix
new file mode 100644
index 00000000000..6645182b3a4
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/games/lightsoff/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "lightsoff-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/lightsoff/3.18/lightsoff-3.18.0.tar.xz;
+    sha256 = "cd5126dae4506363d9196ce8ba083a769d9f8c287fb0008db53cecf6cdc55d61";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/games/quadrapassel/default.nix b/pkgs/desktops/gnome-3/3.18/games/quadrapassel/default.nix
new file mode 100644
index 00000000000..f319608764d
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/games/quadrapassel/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, pkgconfig, gtk3, gnome3, gdk_pixbuf
+, librsvg, libcanberra_gtk3
+, intltool, itstool, libxml2, clutter, clutter_gtk, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  buildInputs = [ pkgconfig gtk3 gnome3.defaultIconTheme gdk_pixbuf librsvg
+                  libcanberra_gtk3 itstool intltool clutter
+                  libxml2 clutter_gtk wrapGAppsHook ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Quadrapassel;
+    description = "Classic falling-block game, Tetris";
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/games/quadrapassel/src.nix b/pkgs/desktops/gnome-3/3.18/games/quadrapassel/src.nix
new file mode 100644
index 00000000000..55b70b7ec58
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/games/quadrapassel/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "quadrapassel-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/quadrapassel/3.18/quadrapassel-3.18.0.tar.xz;
+    sha256 = "2cd1d5328ab9e2c7041936e8e7e01157f292aa4428da81175fb1aa15d40ef8e1";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/games/swell-foop/default.nix b/pkgs/desktops/gnome-3/3.18/games/swell-foop/default.nix
new file mode 100644
index 00000000000..3d3e424d0da
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/games/swell-foop/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, pkgconfig, gtk3, gnome3, gdk_pixbuf, librsvg, dconf
+, clutter, clutter_gtk, intltool, itstool, libxml2, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  buildInputs = [ pkgconfig gtk3 gnome3.defaultIconTheme gdk_pixbuf librsvg
+                  dconf wrapGAppsHook itstool intltool clutter clutter_gtk libxml2 ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    homepage = "https://wiki.gnome.org/Apps/Swell%20Foop";
+    description = "Puzzle game, previously known as Same GNOME";
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/games/swell-foop/src.nix b/pkgs/desktops/gnome-3/3.18/games/swell-foop/src.nix
new file mode 100644
index 00000000000..ea127d8c8dc
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/games/swell-foop/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "swell-foop-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/swell-foop/3.18/swell-foop-3.18.0.tar.xz;
+    sha256 = "b105a36e04dc33e2fe1c3200ed62efea0a68e2411453cb41269508aa739d2936";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/games/tali/default.nix b/pkgs/desktops/gnome-3/3.18/games/tali/default.nix
new file mode 100644
index 00000000000..c2b1f585712
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/games/tali/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, pkgconfig, gtk3, gnome3, gdk_pixbuf
+, librsvg, intltool, itstool, libxml2, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  buildInputs = [ pkgconfig gtk3 gnome3.defaultIconTheme gdk_pixbuf librsvg
+                  libxml2 itstool intltool wrapGAppsHook ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Tali;
+    description = "Sort of poker with dice and less money";
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/games/tali/src.nix b/pkgs/desktops/gnome-3/3.18/games/tali/src.nix
new file mode 100644
index 00000000000..12c8aefcd71
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/games/tali/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "tali-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/tali/3.18/tali-3.18.0.tar.xz;
+    sha256 = "fe785ed2c3eeca8706834a967c0011cfee016008b4e55c1f5e0529b348bc9864";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/misc/california/0002-Build-with-evolution-data-server-3.13.90.patch b/pkgs/desktops/gnome-3/3.18/misc/california/0002-Build-with-evolution-data-server-3.13.90.patch
new file mode 100644
index 00000000000..c229cc96094
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/misc/california/0002-Build-with-evolution-data-server-3.13.90.patch
@@ -0,0 +1,39 @@
+diff --git a/configure.ac b/configure.ac
+index 8a94642..1ca6426 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -27,7 +27,7 @@ AC_SUBST(LDFLAGS)
+ GLIB_REQUIRED=2.38.0
+ GTK_REQUIRED=3.12.2
+ GEE_REQUIRED=0.10.5
+-ECAL_REQUIRED=3.8.5
++ECAL_REQUIRED=3.13.90
+ LIBSOUP_REQUIRED=2.44
+ GDATA_REQUIRED=0.14.0
+ GOA_REQUIRED=3.8.3
+diff --git a/src/backing/eds/backing-eds-calendar-source.vala b/src/backing/eds/backing-eds-calendar-source.vala
+index ee6a572..5009b5d 100644
+--- a/src/backing/eds/backing-eds-calendar-source.vala
++++ b/src/backing/eds/backing-eds-calendar-source.vala
+@@ -256,7 +256,7 @@ internal class EdsCalendarSource : CalendarSource {
+
+     // Invoked by EdsStore prior to making it available outside of unit
+     internal async void open_async(Cancellable? cancellable) throws Error {
+-        client = (E.CalClient) yield E.CalClient.connect(eds_source, E.CalClientSourceType.EVENTS,
++        client = (E.CalClient) yield E.CalClient.connect(eds_source, E.CalClientSourceType.EVENTS, 1,
+             cancellable);
+
+         client.bind_property("readonly", this, PROP_READONLY, BindingFlags.SYNC_CREATE);
+diff --git a/vapi/libecal-1.2.vapi b/vapi/libecal-1.2.vapi
+index 6ead3ec..46fd711 100644
+--- a/vapi/libecal-1.2.vapi
++++ b/vapi/libecal-1.2.vapi
+@@ -23,7 +23,7 @@ namespace E {
+		public bool check_save_schedules ();
+		public static bool check_timezones (iCal.icalcomponent comp, GLib.List comps, GLib.Callback tzlookup, void* ecalclient, GLib.Cancellable cancellable) throws GLib.Error;
+		[CCode (finish_name = "e_cal_client_connect_finish")]
+-		public static async unowned E.Client connect (E.Source source, E.CalClientSourceType source_type, GLib.Cancellable cancellable) throws GLib.Error;
++		public static async unowned E.Client connect (E.Source source, E.CalClientSourceType source_type, uint32 wait_for_connected_seconds, GLib.Cancellable cancellable) throws GLib.Error;
+		public static unowned E.Client connect_sync (E.Source source, E.CalClientSourceType source_type, GLib.Cancellable cancellable) throws GLib.Error;
+		[CCode (finish_name = "e_cal_client_create_object_finish")]
+		public async void create_object (iCal.icalcomponent icalcomp, GLib.Cancellable? cancellable, out string out_uid) throws GLib.Error;
diff --git a/pkgs/desktops/gnome-3/3.18/misc/california/default.nix b/pkgs/desktops/gnome-3/3.18/misc/california/default.nix
new file mode 100644
index 00000000000..4bdeeb23a91
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/misc/california/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl, intltool, pkgconfig, gtk3, vala, makeWrapper
+, gnome3, glib, libsoup, libgdata, sqlite, itstool, xdg_utils }:
+
+let
+  majorVersion = "0.4";
+in
+stdenv.mkDerivation rec {
+  name = "california-${majorVersion}.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/california/${majorVersion}/${name}.tar.xz";
+    sha256 = "1dky2kllv469k8966ilnf4xrr7z35pq8mdvs7kwziy59cdikapxj";
+  };
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+
+  buildInputs = [ makeWrapper intltool pkgconfig vala glib gtk3 gnome3.libgee
+    libsoup libgdata gnome3.gnome_online_accounts gnome3.evolution_data_server
+    sqlite itstool xdg_utils gnome3.gsettings_desktop_schemas ];
+
+  preFixup = ''
+    wrapProgram "$out/bin/california" \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gnome3.defaultIconTheme}/share:${gnome3.gnome_themes_standard}/share:$out/share:$GSETTINGS_SCHEMAS_PATH:${gnome3.gsettings_desktop_schemas}/share"
+  '';
+
+  enableParallelBuilding = true;
+
+  # Apply fedoras patch to build with evolution-data-server >3.13
+  patches = [ ./0002-Build-with-evolution-data-server-3.13.90.patch ];
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/California;
+    description = "Calendar application for GNOME 3";
+    maintainers = with maintainers; [ pSub ];
+    license = licenses.lgpl21;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/misc/geary/default.nix b/pkgs/desktops/gnome-3/3.18/misc/geary/default.nix
new file mode 100644
index 00000000000..11655edded0
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/misc/geary/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, fetchurl, intltool, pkgconfig, gtk3, vala
+, makeWrapper, gdk_pixbuf, cmake, desktop_file_utils
+, libnotify, libcanberra, libsecret, gmime
+, libpthreadstubs, sqlite
+, gnome3, librsvg, gnome_doc_utils, webkitgtk }:
+
+let
+  majorVersion = "0.8";
+in
+stdenv.mkDerivation rec {
+  name = "geary-${majorVersion}.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/geary/${majorVersion}/${name}.tar.xz";
+    sha256 = "3cfa626168935acf49c9415fad54c7849f17fd833026cfd3c224ba0fb892d641";
+  };
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+
+  buildInputs = [ intltool pkgconfig gtk3 makeWrapper cmake desktop_file_utils gnome_doc_utils
+                  vala webkitgtk libnotify libcanberra gnome3.libgee libsecret gmime sqlite
+                  libpthreadstubs gnome3.gsettings_desktop_schemas gnome3.gcr
+                  gdk_pixbuf librsvg gnome3.defaultIconTheme ];
+
+  preConfigure = ''
+    substituteInPlace src/CMakeLists.txt --replace '`pkg-config --variable=girdir gobject-introspection-1.0`' '${webkitgtk}/share/gir-1.0'
+  '';
+
+  postInstall = ''
+    mkdir -p $out/share/gsettings-schemas/${name}/
+    mv $out/share/glib-2.0 $out/share/gsettings-schemas/${name}
+  '';
+
+  preFixup = ''
+    wrapProgram "$out/bin/geary" \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gnome3.gnome_themes_standard}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
+  '';
+
+  enableParallelBuilding = true;
+
+  patches = [ ./disable_valadoc.patch ];
+  patchFlags = "-p0";
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Geary;
+    description = "Mail client for GNOME 3";
+    maintainers = gnome3.maintainers;
+    license = licenses.lgpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/misc/geary/disable_valadoc.patch b/pkgs/desktops/gnome-3/3.18/misc/geary/disable_valadoc.patch
new file mode 100644
index 00000000000..e65c0dea747
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/misc/geary/disable_valadoc.patch
@@ -0,0 +1,24 @@
+--- src/CMakeLists.txt.orig	2014-05-23 14:41:20.809160364 +0200
++++ src/CMakeLists.txt	2014-05-23 14:41:29.240261581 +0200
+@@ -696,21 +696,6 @@
+         ${CMAKE_COMMAND} -E copy geary-mailer ${CMAKE_BINARY_DIR}/
+ )
+ 
+-# Valadoc
+-#################################################
+-foreach(pkg ${ENGINE_PACKAGES})
+-    list(APPEND valadoc_pkg_opts "--pkg=${pkg}")
+-endforeach(pkg ${ENGINE_PACKAGES})
+-
+-include(FindValadoc)
+-add_custom_target(
+-    valadoc
+-    WORKING_DIRECTORY
+-        ${CMAKE_SOURCE_DIR}/src
+-    COMMAND
+-        ${VALADOC_EXECUTABLE} --force --no-protected -b ${CMAKE_CURRENT_SOURCE_DIR} -o ${CMAKE_SOURCE_DIR}/valadoc --package-name=geary --package-version=${VERSION} ${ENGINE_SRC} ${valadoc_pkg_opts} --vapidir=${CMAKE_SOURCE_DIR}/bindings/vapi
+-)
+-
+ ## Make clean: remove copied files
+ ##################################################
+ set_property(
diff --git a/pkgs/desktops/gnome-3/3.18/misc/gexiv2/default.nix b/pkgs/desktops/gnome-3/3.18/misc/gexiv2/default.nix
new file mode 100644
index 00000000000..7cea9cd8d15
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/misc/gexiv2/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, pkgconfig, exiv2, glib, libtool, m4, gnome3 }:
+
+let
+  majorVersion = "0.10";
+in
+stdenv.mkDerivation rec {
+  name = "gexiv2-${version}";
+  version = "${majorVersion}.3";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gexiv2/${majorVersion}/${name}.tar.xz";
+    sha256 = "390cfb966197fa9f3f32200bc578d7c7f3560358c235e6419657206a362d3988";
+  };
+
+  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;
+    maintainers = gnome3.maintainers;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/misc/gfbgraph/default.nix b/pkgs/desktops/gnome-3/3.18/misc/gfbgraph/default.nix
new file mode 100644
index 00000000000..e85b087fa41
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/misc/gfbgraph/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, intltool, fetchurl, pkgconfig, glib
+, gnome3, libsoup, json_glib }:
+
+stdenv.mkDerivation rec {
+  name = "gfbgraph-0.2.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gfbgraph/0.2/${name}.tar.xz";
+    sha256 = "66c7b1c951863565c179d0b4b5207f27b3b36f80afed9f6a9acfc5fc3ae775d4";
+  };
+
+  buildInputs = [ pkgconfig glib gnome3.gnome_online_accounts ];
+  propagatedBuildInputs = [ libsoup json_glib gnome3.rest ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "GLib/GObject wrapper for the Facebook Graph API";
+    maintainers = gnome3.maintainers;
+    license = licenses.lgpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/misc/gitg/default.nix b/pkgs/desktops/gnome-3/3.18/misc/gitg/default.nix
new file mode 100644
index 00000000000..c517fca57bf
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/misc/gitg/default.nix
@@ -0,0 +1,39 @@
+{ 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.adwaita-icon-theme 
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  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.adwaita-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"
+  '';
+
+  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.18/misc/gitg/src.nix b/pkgs/desktops/gnome-3/3.18/misc/gitg/src.nix
new file mode 100644
index 00000000000..ac95070b5f5
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/misc/gitg/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gitg-3.18.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gitg/3.18/gitg-3.18.0.tar.xz;
+    sha256 = "fa4b7b9c492f13f5f1d864af1281ea377ac8c7619c856e05f533b18989edf421";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/0001-Search-for-themes-and-icons-in-system-data-dirs.patch b/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/0001-Search-for-themes-and-icons-in-system-data-dirs.patch
new file mode 100644
index 00000000000..d5a6f90e33d
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/0001-Search-for-themes-and-icons-in-system-data-dirs.patch
@@ -0,0 +1,123 @@
+From 175218579aa2b4f4974ff1cf4fd1ac93082a4714 Mon Sep 17 00:00:00 2001
+From: Jascha Geerds <jg@ekby.de>
+Date: Sat, 1 Aug 2015 21:01:11 +0200
+Subject: [PATCH 1/1] Search for themes and icons in system data dirs
+
+---
+ gtweak/tweaks/tweak_group_interface.py | 17 ++++-------------
+ gtweak/tweaks/tweak_group_keymouse.py  |  7 ++-----
+ gtweak/utils.py                        | 17 +++++++++++++++++
+ 3 files changed, 23 insertions(+), 18 deletions(-)
+
+diff --git a/gtweak/tweaks/tweak_group_interface.py b/gtweak/tweaks/tweak_group_interface.py
+index ed2ad5f..a319907 100644
+--- a/gtweak/tweaks/tweak_group_interface.py
++++ b/gtweak/tweaks/tweak_group_interface.py
+@@ -26,7 +26,7 @@ from gi.repository import Gtk
+ from gi.repository import GLib
+ 
+ import gtweak
+-from gtweak.utils import walk_directories, make_combo_list_with_default, extract_zip_file
++from gtweak.utils import walk_directories, make_combo_list_with_default, extract_zip_file, get_resource_dirs
+ from gtweak.tweakmodel import Tweak, TWEAK_GROUP_APPEARANCE
+ from gtweak.gshellwrapper import GnomeShellFactory
+ from gtweak.gsettings import GSettingsSetting
+@@ -46,10 +46,7 @@ class GtkThemeSwitcher(GSettingsComboTweak):
+ 
+     def _get_valid_themes(self):
+         """ Only shows themes that have variations for gtk+-3 and gtk+-2 """
+-        dirs = ( os.path.join(gtweak.DATA_DIR, "themes"),
+-                 os.path.join(GLib.get_user_data_dir(), "themes"),
+-                 os.path.join(os.path.expanduser("~"), ".themes"))
+-        valid = walk_directories(dirs, lambda d:
++        valid = walk_directories(get_resource_dirs('themes'), lambda d:
+                     os.path.exists(os.path.join(d, "gtk-2.0")) and \
+                         os.path.exists(os.path.join(d, "gtk-3.0")))
+         return valid
+@@ -64,10 +61,7 @@ class IconThemeSwitcher(GSettingsComboTweak):
+             **options)
+ 
+     def _get_valid_icon_themes(self):
+-        dirs = ( os.path.join(gtweak.DATA_DIR, "icons"),
+-                 os.path.join(GLib.get_user_data_dir(), "icons"),
+-                 os.path.join(os.path.expanduser("~"), ".icons"))
+-        valid = walk_directories(dirs, lambda d:
++        valid = walk_directories(get_resource_dirs("icons"), lambda d:
+                     os.path.isdir(d) and \
+ 			os.path.exists(os.path.join(d, "index.theme")))
+         return valid
+@@ -82,10 +76,7 @@ class CursorThemeSwitcher(GSettingsComboTweak):
+             **options)
+ 
+     def _get_valid_cursor_themes(self):
+-        dirs = ( os.path.join(gtweak.DATA_DIR, "icons"),
+-                 os.path.join(GLib.get_user_data_dir(), "icons"),
+-                 os.path.join(os.path.expanduser("~"), ".icons"))
+-        valid = walk_directories(dirs, lambda d:
++        valid = walk_directories(get_resource_dirs("icons"), lambda d:
+                     os.path.isdir(d) and \
+                         os.path.exists(os.path.join(d, "cursors")))
+         return valid
+diff --git a/gtweak/tweaks/tweak_group_keymouse.py b/gtweak/tweaks/tweak_group_keymouse.py
+index b56a4f4..3486098 100644
+--- a/gtweak/tweaks/tweak_group_keymouse.py
++++ b/gtweak/tweaks/tweak_group_keymouse.py
+@@ -20,7 +20,7 @@ import os.path
+ from gi.repository import GLib
+ 
+ import gtweak
+-from gtweak.utils import XSettingsOverrides, walk_directories, make_combo_list_with_default
++from gtweak.utils import XSettingsOverrides, walk_directories, make_combo_list_with_default, get_resource_dirs
+ from gtweak.widgets import ListBoxTweakGroup, GSettingsComboTweak, GSettingsSwitchTweak, GetterSetterSwitchTweak, Title
+ 
+ class PrimaryPasteTweak(GetterSetterSwitchTweak):
+@@ -47,10 +47,7 @@ class KeyThemeSwitcher(GSettingsComboTweak):
+             **options)
+ 
+     def _get_valid_key_themes(self):
+-        dirs = ( os.path.join(gtweak.DATA_DIR, "themes"),
+-                 os.path.join(GLib.get_user_data_dir(), "themes"),
+-                 os.path.join(os.path.expanduser("~"), ".themes"))
+-        valid = walk_directories(dirs, lambda d:
++        valid = walk_directories(get_resource_dirs("themes"), lambda d:
+                     os.path.isfile(os.path.join(d, "gtk-3.0", "gtk-keys.css")) and \
+                     os.path.isfile(os.path.join(d, "gtk-2.0-key", "gtkrc")))
+         return valid
+diff --git a/gtweak/utils.py b/gtweak/utils.py
+index 3d20425..0fcb51d 100644
+--- a/gtweak/utils.py
++++ b/gtweak/utils.py
+@@ -21,6 +21,7 @@ import tempfile
+ import shutil
+ import subprocess
+ import glob
++import itertools
+ 
+ import gtweak
+ from gtweak.gsettings import GSettingsSetting
+@@ -114,6 +115,22 @@ def execute_subprocess(cmd_then_args, block=True):
+         stdout, stderr = p.communicate()
+         return stdout, stderr, p.returncode
+ 
++def get_resource_dirs(resource):
++    """Returns a list of all known resource dirs for a given resource.
++
++    :param str resource:
++        Name of the resource (e.g. "themes")
++    :return:
++        A list of resource dirs
++    """
++    dirs = [os.path.join(dir, resource)
++            for dir in itertools.chain(GLib.get_system_data_dirs(),
++                                       (gtweak.DATA_DIR,
++                                        GLib.get_user_data_dir()))]
++    dirs += [os.path.join(os.path.expanduser("~"), ".{}".format(resource))]
++
++    return [dir for dir in dirs if os.path.isdir(dir)]
++
+ @singleton
+ class AutostartManager:
+ 
+-- 
+2.4.5
+
diff --git a/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/0002-Don-t-show-multiple-entries-for-a-single-theme.patch b/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/0002-Don-t-show-multiple-entries-for-a-single-theme.patch
new file mode 100644
index 00000000000..61ae2734979
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/0002-Don-t-show-multiple-entries-for-a-single-theme.patch
@@ -0,0 +1,103 @@
+From edd3203c7b7d5ba596df9f148c443cdfc8a58d88 Mon Sep 17 00:00:00 2001
+From: Jascha Geerds <jg@ekby.de>
+Date: Sat, 1 Aug 2015 21:26:57 +0200
+Subject: [PATCH 1/1] Don't show multiple entries for a single theme
+
+---
+ gtweak/tweaks/tweak_group_interface.py |  8 ++++----
+ gtweak/tweaks/tweak_group_keymouse.py  |  4 ++--
+ gtweak/utils.py                        | 16 ++++++++++++++++
+ 3 files changed, 22 insertions(+), 6 deletions(-)
+
+diff --git a/gtweak/tweaks/tweak_group_interface.py b/gtweak/tweaks/tweak_group_interface.py
+index a319907..82c0286 100644
+--- a/gtweak/tweaks/tweak_group_interface.py
++++ b/gtweak/tweaks/tweak_group_interface.py
+@@ -26,7 +26,7 @@ from gi.repository import Gtk
+ from gi.repository import GLib
+ 
+ import gtweak
+-from gtweak.utils import walk_directories, make_combo_list_with_default, extract_zip_file, get_resource_dirs
++from gtweak.utils import walk_directories, make_combo_list_with_default, extract_zip_file, get_resource_dirs, get_unique_resources
+ from gtweak.tweakmodel import Tweak, TWEAK_GROUP_APPEARANCE
+ from gtweak.gshellwrapper import GnomeShellFactory
+ from gtweak.gsettings import GSettingsSetting
+@@ -49,7 +49,7 @@ class GtkThemeSwitcher(GSettingsComboTweak):
+         valid = walk_directories(get_resource_dirs('themes'), lambda d:
+                     os.path.exists(os.path.join(d, "gtk-2.0")) and \
+                         os.path.exists(os.path.join(d, "gtk-3.0")))
+-        return valid
++        return get_unique_resources(valid)
+ 
+ class IconThemeSwitcher(GSettingsComboTweak):
+     def __init__(self, **options):
+@@ -64,7 +64,7 @@ class IconThemeSwitcher(GSettingsComboTweak):
+         valid = walk_directories(get_resource_dirs("icons"), lambda d:
+                     os.path.isdir(d) and \
+ 			os.path.exists(os.path.join(d, "index.theme")))
+-        return valid
++        return get_unique_resources(valid)
+ 
+ class CursorThemeSwitcher(GSettingsComboTweak):
+     def __init__(self, **options):
+@@ -79,7 +79,7 @@ class CursorThemeSwitcher(GSettingsComboTweak):
+         valid = walk_directories(get_resource_dirs("icons"), lambda d:
+                     os.path.isdir(d) and \
+                         os.path.exists(os.path.join(d, "cursors")))
+-        return valid
++        return get_unique_resources(valid)
+ 
+ class ShellThemeTweak(Gtk.Box, Tweak):
+ 
+diff --git a/gtweak/tweaks/tweak_group_keymouse.py b/gtweak/tweaks/tweak_group_keymouse.py
+index 3486098..9f53425 100644
+--- a/gtweak/tweaks/tweak_group_keymouse.py
++++ b/gtweak/tweaks/tweak_group_keymouse.py
+@@ -20,7 +20,7 @@ import os.path
+ from gi.repository import GLib
+ 
+ import gtweak
+-from gtweak.utils import XSettingsOverrides, walk_directories, make_combo_list_with_default, get_resource_dirs
++from gtweak.utils import XSettingsOverrides, walk_directories, make_combo_list_with_default, get_resource_dirs, get_unique_resources
+ from gtweak.widgets import ListBoxTweakGroup, GSettingsComboTweak, GSettingsSwitchTweak, GetterSetterSwitchTweak, Title
+ 
+ class PrimaryPasteTweak(GetterSetterSwitchTweak):
+@@ -50,7 +50,7 @@ class KeyThemeSwitcher(GSettingsComboTweak):
+         valid = walk_directories(get_resource_dirs("themes"), lambda d:
+                     os.path.isfile(os.path.join(d, "gtk-3.0", "gtk-keys.css")) and \
+                     os.path.isfile(os.path.join(d, "gtk-2.0-key", "gtkrc")))
+-        return valid
++        return get_unique_resources(valid)
+ 
+ TWEAK_GROUPS = [
+     ListBoxTweakGroup(_("Keyboard and Mouse"),
+diff --git a/gtweak/utils.py b/gtweak/utils.py
+index 0fcb51d..ce8e12e 100644
+--- a/gtweak/utils.py
++++ b/gtweak/utils.py
+@@ -131,6 +131,22 @@ def get_resource_dirs(resource):
+ 
+     return [dir for dir in dirs if os.path.isdir(dir)]
+ 
++def get_unique_resources(dirs):
++    """Filter out duplicated resources.
++
++    :param list dirs:
++        List of resource dirs (e.g. /usr/share/themes/Adwaita)
++    :return:
++        List of dirs without duplicated resources
++    """
++    unique_dirs = {}
++    for dir in dirs:
++        basename = os.path.basename(dir)
++        if basename not in unique_dirs:
++            unique_dirs[basename] = dir
++
++    return unique_dirs
++
+ @singleton
+ class AutostartManager:
+ 
+-- 
+2.4.5
+
diff --git a/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/0003-Create-config-dir-if-it-doesn-t-exist.patch b/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/0003-Create-config-dir-if-it-doesn-t-exist.patch
new file mode 100644
index 00000000000..840ebb82ec7
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/0003-Create-config-dir-if-it-doesn-t-exist.patch
@@ -0,0 +1,29 @@
+From dea8fc3c37c43f4fbbcc658ee995a95b93452b3c Mon Sep 17 00:00:00 2001
+From: Jascha Geerds <jg@ekby.de>
+Date: Sun, 2 Aug 2015 12:01:20 +0200
+Subject: [PATCH 1/1] Create config dir if it doesn't exist
+
+Otherwise gnome-tweak-tool can't enable the dark theme and fails
+without a clear error message.
+---
+ gtweak/gtksettings.py | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/gtweak/gtksettings.py b/gtweak/gtksettings.py
+index bcec9f1..f39991b 100644
+--- a/gtweak/gtksettings.py
++++ b/gtweak/gtksettings.py
+@@ -35,6 +35,10 @@ class GtkSettingsManager:
+     def _get_keyfile(self):
+         keyfile = None
+         try:
++            config_dir = os.path.dirname(self._path)
++            if not os.path.isdir(config_dir):
++                os.makedirs(config_dir)
++
+             keyfile = GLib.KeyFile()
+             keyfile.load_from_file(self._path, 0)
+         except MemoryError:
+-- 
+2.4.5
+
diff --git a/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/default.nix b/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/default.nix
new file mode 100644
index 00000000000..986d4058af9
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, intltool, fetchurl, python, pygobject3, atk
+, pkgconfig, gtk3, glib, libsoup
+, bash, makeWrapper, itstool, libxml2, python3Packages
+, gnome3, librsvg, gdk_pixbuf, file, libnotify }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  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.defaultIconTheme librsvg
+                  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" \
+      --suffix 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 PYTHONPATH : "$PYTHONPATH:$(toPythonPath $out)"
+  '';
+
+  patches = [
+    ./find_gsettings.patch
+    ./0001-Search-for-themes-and-icons-in-system-data-dirs.patch
+    ./0002-Don-t-show-multiple-entries-for-a-single-theme.patch
+    ./0003-Create-config-dir-if-it-doesn-t-exist.patch
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/action/show/Apps/GnomeTweakTool;
+    description = "A tool to customize advanced GNOME 3 options";
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/find_gsettings.patch b/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/find_gsettings.patch
new file mode 100644
index 00000000000..3e68c04cb3a
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/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.18/misc/gnome-tweak-tool/src.nix b/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/src.nix
new file mode 100644
index 00000000000..abb957394e7
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gnome-tweak-tool-3.16.2";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gnome-tweak-tool/3.16/gnome-tweak-tool-3.16.2.tar.xz;
+    sha256 = "b1e403725c3489be07e1d754f044d1128eddb38204a344bbe0baa523d531bd64";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/misc/gnome-video-effects/default.nix b/pkgs/desktops/gnome-3/3.18/misc/gnome-video-effects/default.nix
new file mode 100644
index 00000000000..c0bd2fed3f2
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/misc/gnome-video-effects/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, pkgconfig, intltool, gnome3 }:
+
+stdenv.mkDerivation rec {
+  name = "gnome-video-effects-${version}";
+  version = "0.4.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-video-effects/0.4/${name}.tar.xz";
+    sha256 = "0jl4iny2dqpcgi3sgxzpgnbw0752i8ay3rscp2cgdjlp79ql5gil";
+  };
+
+  buildInputs = [ pkgconfig intltool ];
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Projects/GnomeVideoEffects;
+    platforms = platforms.linux;
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl2;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/misc/gpaste/default.nix b/pkgs/desktops/gnome-3/3.18/misc/gpaste/default.nix
new file mode 100644
index 00000000000..dee9caf444c
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/misc/gpaste/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchurl, intltool, autoreconfHook, pkgconfig, vala, glib
+, pango, gtk3, gnome3, dbus, clutter, appstream-glib, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  version = "${gnome3.version}.3";
+  name = "gpaste-${version}";
+
+  src = fetchurl {
+    url = "https://github.com/Keruspe/GPaste/archive/v${version}.tar.gz";
+    sha256 = "1czc707y2ksb8lgq1la0qkj3wpi202hjfiyshsndhw0pqn3qjj4a";
+  };
+
+  buildInputs = [ intltool autoreconfHook pkgconfig vala glib
+                  gtk3 gnome3.gnome_control_center dbus.libs
+                  clutter pango appstream-glib makeWrapper ];
+
+  preConfigure = "intltoolize -f";
+
+  configureFlags = [ "--with-controlcenterdir=$(out)/gnome-control-center/keybindings"
+                     "--with-dbusservicesdir=$(out)/share/dbus-1/services" ];
+
+  enableParallelBuilding = true;
+
+  preFixup = 
+    let
+      libPath = stdenv.lib.makeLibraryPath
+        [ glib gtk3 clutter pango ];
+    in
+    ''
+      for i in $out/libexec/gpaste/*; do
+        wrapProgram $i \
+          --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" \
+          --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH"
+      done
+    '';
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/Keruspe/GPaste;
+    description = "Clipboard management system with GNOME3 integration";
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = gnome3.maintainers;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/misc/gtkhtml/default.nix b/pkgs/desktops/gnome-3/3.18/misc/gtkhtml/default.nix
new file mode 100644
index 00000000000..89703b61932
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/misc/gtkhtml/default.nix
@@ -0,0 +1,16 @@
+{ stdenv, fetchurl, pkgconfig, gtk3, intltool
+, gnome3, enchant, isocodes }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  buildInputs = [ pkgconfig gtk3 intltool gnome3.adwaita-icon-theme
+                  gnome3.gsettings_desktop_schemas ];
+
+  propagatedBuildInputs = [ enchant isocodes ];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+    maintainers = gnome3.maintainers;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/misc/gtkhtml/src.nix b/pkgs/desktops/gnome-3/3.18/misc/gtkhtml/src.nix
new file mode 100644
index 00000000000..21876ec9c39
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/misc/gtkhtml/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gtkhtml-4.10.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gtkhtml/4.10/gtkhtml-4.10.0.tar.xz;
+    sha256 = "ca3b6424fb2c7ac5d9cb8fdafb69318fa2e825c9cf6ed17d1e38d9b29e5606c3";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/misc/libgda/default.nix b/pkgs/desktops/gnome-3/3.18/misc/libgda/default.nix
new file mode 100644
index 00000000000..1fcb411d120
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/misc/libgda/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, pkgconfig, intltool, itstool, libxml2, gtk3, openssl }:
+
+let
+  major = "5.2";
+  minor = "2";
+
+in stdenv.mkDerivation rec {
+  version = "${major}.${minor}";
+  name = "libgda-${version}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/libgda/${major}/${name}.tar.xz";
+    sha256 = "c9b8b1c32f1011e47b73c5dcf36649aaef2f1edaa5f5d75be20d9caadc2bc3e4";
+  };
+
+  configureFlags = [
+    "--enable-gi-system-install=no"
+  ];
+
+  enableParallelBuilding = true;
+
+  buildInputs = [ pkgconfig intltool itstool libxml2 gtk3 openssl ];
+
+  meta = with stdenv.lib; {
+    description = "Database access library";
+    homepage = http://www.gnome-db.org/;
+    license = [ licenses.lgpl2 licenses.gpl2 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/misc/libgit2-glib/default.nix b/pkgs/desktops/gnome-3/3.18/misc/libgit2-glib/default.nix
new file mode 100644
index 00000000000..dbdd2cc7fd1
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/misc/libgit2-glib/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, gnome3, libtool, pkgconfig, vala
+, gtk_doc, gobjectIntrospection, libgit2, glib }:
+
+let
+  majorVersion = "0.0";
+in
+stdenv.mkDerivation rec {
+  name = "libgit2-glib-${majorVersion}.24";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/libgit2-glib/0.0/${name}.tar.xz";
+    sha256 = "8a0a6f65d86f2c8cb9bcb20c5e0ea6fd02271399292a71fc7e6852f13adbbdb8";
+  };
+
+  buildInputs = [ gnome3.gnome_common libtool pkgconfig vala
+                  gtk_doc gobjectIntrospection libgit2 glib ];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/misc/libmediaart/default.nix b/pkgs/desktops/gnome-3/3.18/misc/libmediaart/default.nix
new file mode 100644
index 00000000000..b8648012573
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/misc/libmediaart/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, pkgconfig, glib, gdk_pixbuf, gobjectIntrospection, gnome3 }:
+
+let
+  majorVersion = "1.9";
+in
+stdenv.mkDerivation rec {
+  name = "libmediaart-${majorVersion}.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/libmediaart/${majorVersion}/${name}.tar.xz";
+    sha256 = "0vshvm3sfwqs365glamvkmgnzjnmxd15j47xn0ak3p6l57dqlrll";
+  };
+
+  buildInputs = [ pkgconfig glib gdk_pixbuf gobjectIntrospection ];
+
+  meta = with stdenv.lib; {
+    description = "Library tasked with managing, extracting and handling media art caches";
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/misc/pomodoro/default.nix b/pkgs/desktops/gnome-3/3.18/misc/pomodoro/default.nix
new file mode 100644
index 00000000000..0440af440fe
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/misc/pomodoro/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchFromGitHub, which, automake113x, intltool, pkgconfig, libtool, makeWrapper,
+  dbus_glib, libcanberra, gst_all_1, vala, gnome3, gtk3, gst_plugins_base,
+  glib, gobjectIntrospection, telepathy_glib
+}:
+
+stdenv.mkDerivation rec {
+  rev = "624945d";
+  name = "gnome-shell-pomodoro-${gnome3.version}-${rev}";
+
+  src = fetchFromGitHub {
+      owner = "codito";
+      repo = "gnome-pomodoro";
+      rev = "${rev}";
+      sha256 = "0vjy95zvd309n8g13fa80qhqlv7k6wswhrjw7gddxrnmr662xdqq";
+  };
+
+  configureScript = ''./autogen.sh'';
+
+  buildInputs = [
+    which automake113x intltool glib gobjectIntrospection pkgconfig libtool
+    makeWrapper dbus_glib libcanberra vala gst_all_1.gstreamer
+    gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good
+    gnome3.gsettings_desktop_schemas gnome3.gnome_desktop
+    gnome3.gnome_common gnome3.gnome_shell gtk3 telepathy_glib
+    gnome3.defaultIconTheme
+  ];
+
+  preBuild = ''
+    sed -i 's|\$(INTROSPECTION_GIRDIR)|${gnome3.gnome_desktop}/share/gir-1.0|' \
+      vapi/Makefile
+  '';
+
+  preFixup = ''
+    wrapProgram $out/bin/gnome-pomodoro \
+        --prefix XDG_DATA_DIRS : \
+        "$out/share:$GSETTINGS_SCHEMAS_PATH:$XDG_DATA_DIRS"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/codito/gnome-shell-pomodoro;
+    description = "A time management utility for GNOME based on the pomodoro technique";
+    longDescription = ''
+      This GNOME utility helps to manage time according to Pomodoro Technique.
+      It intends to improve productivity and focus by taking short breaks.
+    '';
+    maintainers = with maintainers; [ DamienCassou jgeerds ];
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 56fadb5ce10..e276c326859 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -13855,6 +13855,8 @@ let
 
   gnome3_16 = recurseIntoAttrs (callPackage ../desktops/gnome-3/3.16 { });
 
+  gnome3_18 = recurseIntoAttrs (callPackage ../desktops/gnome-3/3.18 { });
+
   gnome3 = gnome3_16;
 
   gnome = recurseIntoAttrs gnome2;