summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'mate-base')
-rw-r--r--mate-base/caja/Manifest2
-rw-r--r--mate-base/caja/caja-1.8.1.ebuild96
-rw-r--r--mate-base/caja/caja-1.8.2-r1.ebuild95
-rw-r--r--mate-base/caja/metadata.xml15
-rw-r--r--mate-base/libmatekbd/Manifest1
-rw-r--r--mate-base/libmatekbd/libmatekbd-1.8.0.ebuild45
-rw-r--r--mate-base/libmatekbd/metadata.xml8
-rw-r--r--mate-base/mate-applets/Manifest2
-rw-r--r--mate-base/mate-applets/files/mate-applets-1.6.2-r1-replace-cpufreq-by-cpupower.patch79
-rw-r--r--mate-base/mate-applets/mate-applets-1.8.0-r1.ebuild99
-rw-r--r--mate-base/mate-applets/mate-applets-1.8.1.ebuild101
-rw-r--r--mate-base/mate-applets/metadata.xml8
-rw-r--r--mate-base/mate-common/Manifest1
-rw-r--r--mate-base/mate-common/mate-common-1.8.0.ebuild26
-rw-r--r--mate-base/mate-common/metadata.xml8
-rw-r--r--mate-base/mate-control-center/Manifest2
-rw-r--r--mate-base/mate-control-center/files/mate-control-center-1.6.2-libsecret.patch15
-rw-r--r--mate-base/mate-control-center/mate-control-center-1.8.1.ebuild83
-rw-r--r--mate-base/mate-control-center/mate-control-center-1.8.3.ebuild83
-rw-r--r--mate-base/mate-control-center/metadata.xml8
-rw-r--r--mate-base/mate-desktop/Manifest2
-rw-r--r--mate-base/mate-desktop/mate-desktop-1.8.0-r1.ebuild66
-rw-r--r--mate-base/mate-desktop/mate-desktop-1.8.1-r1.ebuild67
-rw-r--r--mate-base/mate-desktop/metadata.xml8
-rw-r--r--mate-base/mate-menus/Manifest1
-rw-r--r--mate-base/mate-menus/files/10-xdg-menu-mate6
-rw-r--r--mate-base/mate-menus/mate-menus-1.8.0.ebuild82
-rw-r--r--mate-base/mate-menus/metadata.xml8
-rw-r--r--mate-base/mate-panel/Manifest2
-rw-r--r--mate-base/mate-panel/files/mate-panel-1.8.1-update_marco_wm_name.patch11
-rw-r--r--mate-base/mate-panel/mate-panel-1.8.0.ebuild81
-rw-r--r--mate-base/mate-panel/mate-panel-1.8.1-r1.ebuild81
-rw-r--r--mate-base/mate-panel/metadata.xml8
-rw-r--r--mate-base/mate-session-manager/Manifest1
-rwxr-xr-xmate-base/mate-session-manager/files/10-user-dirs-update-mate10
-rw-r--r--mate-base/mate-session-manager/files/15-xdg-data-mate9
-rw-r--r--mate-base/mate-session-manager/files/MATE109
-rw-r--r--mate-base/mate-session-manager/files/defaults.list336
-rw-r--r--mate-base/mate-session-manager/files/mate-session-manager-1.2.0-idle-transition.patch10
-rw-r--r--mate-base/mate-session-manager/files/mate-session-manager-1.5.2-save-session-ui.patch535
-rw-r--r--mate-base/mate-session-manager/files/mate-session-manager-1.6-gnome-keyring.patch328
-rw-r--r--mate-base/mate-session-manager/files/mate-session-manager-1.6.1-login1.patch267
-rw-r--r--mate-base/mate-session-manager/mate-session-manager-1.8.1-r1.ebuild101
-rw-r--r--mate-base/mate-session-manager/metadata.xml8
-rw-r--r--mate-base/mate-settings-daemon/Manifest3
-rw-r--r--mate-base/mate-settings-daemon/files/mate-settings-daemon-1.2.0-syndaemon-mode.patch22
-rw-r--r--mate-base/mate-settings-daemon/files/mate-settings-daemon-1.4.0-netfs-monitor.patch42
-rw-r--r--mate-base/mate-settings-daemon/mate-settings-daemon-1.8.0.ebuild89
-rw-r--r--mate-base/mate-settings-daemon/mate-settings-daemon-1.8.1.ebuild83
-rw-r--r--mate-base/mate-settings-daemon/mate-settings-daemon-1.8.2.ebuild83
-rw-r--r--mate-base/mate-settings-daemon/metadata.xml8
-rw-r--r--mate-base/mate/mate-1.8.0.ebuild74
-rw-r--r--mate-base/mate/metadata.xml19
-rw-r--r--mate-base/metadata.xml31
54 files changed, 3368 insertions, 0 deletions
diff --git a/mate-base/caja/Manifest b/mate-base/caja/Manifest
new file mode 100644
index 000000000000..229c6283970d
--- /dev/null
+++ b/mate-base/caja/Manifest
@@ -0,0 +1,2 @@
+DIST caja-1.8.1.tar.xz 3647396 SHA256 6706fc853a6cc6a2f0a012cd08b396f2f72607bc6c50cf6dfd5b38c64d7c6818 SHA512 d3bddd25c355e8f9aad810ccec302e08f5be4992dd8680a88f6ab552fd56f0a1517dd71eef6d3f7c35aca7acad7fed63f2af9fdbb0eb65e9b6751d97f7465367 WHIRLPOOL 3c0aaf0a23e142099312272feebb71ad9272e58b47d1bb152f12cb7aeda62235624d33ed66e5e4da3cd2c38bb4aeadfd9ccc9b0b92d456c4615b834afabdd215
+DIST caja-1.8.2.tar.xz 3596308 SHA256 99331a7439c346382c3b82c889fee9aaabca8760e9c7dfb60041c1fbcd2c6ac0 SHA512 0e704639ea895081f4175f88437d54635cf8b0891e04afda9f9cf87b6edae3ae32de35279f40518fb7044ef8fe38d1b2700acb5a93708e34e8ce2d6e7bc23ad6 WHIRLPOOL 28ec0d5f04c55bd71b368249a64bb0add323e3a0935d39e44b1f9c4919cfc4bfe3ce81d7e527a01abf033023405bdc272654a7ea05520004da7fb159e6abe47b
diff --git a/mate-base/caja/caja-1.8.1.ebuild b/mate-base/caja/caja-1.8.1.ebuild
new file mode 100644
index 000000000000..08af3838cdc5
--- /dev/null
+++ b/mate-base/caja/caja-1.8.1.ebuild
@@ -0,0 +1,96 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+GCONF_DEBUG="yes"
+GNOME2_LA_PUNT="yes"
+
+inherit eutils gnome2 versionator virtualx
+
+MATE_BRANCH="$(get_version_component_range 1-2)"
+
+SRC_URI="http://pub.mate-desktop.org/releases/${MATE_BRANCH}/${P}.tar.xz"
+DESCRIPTION="Caja file manager for the MATE desktop"
+HOMEPAGE="http://mate-desktop.org"
+
+LICENSE="GPL-2 LGPL-2 FDL-1.1"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+IUSE="X +mate +introspection +unique xmp"
+
+RDEPEND="dev-libs/atk:0
+ >=dev-libs/glib-2.28:2
+ >=dev-libs/libxml2-2.4.7:2
+ gnome-base/dconf:0
+ >=gnome-base/gvfs-1.10.1:0[udisks]
+ >=mate-base/mate-desktop-1.8:0
+ >=media-libs/libexif-0.5.12:0
+ >=x11-libs/gtk+-2.24:2[introspection?]
+ x11-libs/cairo:0
+ x11-libs/gdk-pixbuf:2
+ x11-libs/libICE:0
+ x11-libs/libSM:0
+ x11-libs/libX11:0
+ x11-libs/libXext:0
+ x11-libs/libXft:0
+ x11-libs/libXrender:0
+ >=x11-libs/pango-1.1.2:0
+ virtual/libintl:0
+ introspection? ( >=dev-libs/gobject-introspection-0.6.4:0 )
+ unique? ( >=dev-libs/libunique-1:1 )
+ xmp? ( >=media-libs/exempi-1.99.2:2 )"
+
+DEPEND="${RDEPEND}
+ !!mate-base/mate-file-manager
+ >=dev-lang/perl-5:0=
+ dev-util/gdbus-codegen:0
+ >=dev-util/intltool-0.40.1:*
+ >=mate-base/mate-common-1.8:0
+ sys-devel/gettext:*
+ virtual/pkgconfig:*"
+
+PDEPEND="mate? ( >=x11-themes/mate-icon-theme-1.8:0 )"
+
+# TODO: Test fails because Caja is not merged yet:
+# GLib-GIO-ERROR **: Settings schema 'org.mate.caja.preferences' is not installed
+RESTRICT="test"
+
+src_prepare() {
+ # Remove unnecessary CFLAGS.
+ sed -i -e 's:-DG.*DISABLE_DEPRECATED::g' \
+ configure{,.ac} eel/Makefile.{am,in} || die
+
+ gnome2_src_prepare
+}
+
+src_configure() {
+ gnome2_src_configure \
+ --enable-unique \
+ --disable-packagekit \
+ --disable-update-mimedb \
+ --with-gtk=2.0 \
+ $(use_enable introspection) \
+ $(use_enable unique) \
+ $(use_enable xmp) \
+ $(use_with X x)
+}
+
+DOCS="AUTHORS ChangeLog* HACKING MAINTAINERS NEWS README THANKS TODO"
+
+src_test() {
+ unset SESSION_MANAGER
+ unset DBUS_SESSION_BUS_ADDRESS
+
+ Xemake check || die "Test phase failed"
+}
+
+pkg_postinst() {
+ gnome2_pkg_postinst
+
+ elog "Caja can use gstreamer to preview audio files. Just make sure"
+ elog "to have the necessary plugins available to play the media type you"
+ elog "want to preview."
+}
diff --git a/mate-base/caja/caja-1.8.2-r1.ebuild b/mate-base/caja/caja-1.8.2-r1.ebuild
new file mode 100644
index 000000000000..a9486c950a62
--- /dev/null
+++ b/mate-base/caja/caja-1.8.2-r1.ebuild
@@ -0,0 +1,95 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+GCONF_DEBUG="yes"
+GNOME2_LA_PUNT="yes"
+
+inherit eutils gnome2 versionator virtualx
+
+MATE_BRANCH="$(get_version_component_range 1-2)"
+
+SRC_URI="http://pub.mate-desktop.org/releases/${MATE_BRANCH}/${P}.tar.xz"
+DESCRIPTION="Caja file manager for the MATE desktop"
+HOMEPAGE="http://mate-desktop.org"
+
+LICENSE="GPL-2 LGPL-2 FDL-1.1"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+IUSE="+mate +introspection +unique xmp"
+
+RDEPEND="dev-libs/atk:0
+ >=dev-libs/glib-2.28:2
+ >=dev-libs/libxml2-2.4.7:2
+ gnome-base/dconf:0
+ >=gnome-base/gvfs-1.10.1:0[udisks]
+ >=mate-base/mate-desktop-1.8:0
+ >=media-libs/libexif-0.5.12:0
+ >=x11-libs/gtk+-2.24:2[introspection?]
+ x11-libs/cairo:0
+ x11-libs/gdk-pixbuf:2
+ x11-libs/libICE:0
+ x11-libs/libSM:0
+ x11-libs/libX11:0
+ x11-libs/libXext:0
+ x11-libs/libXft:0
+ x11-libs/libXrender:0
+ >=x11-libs/pango-1.1.2:0
+ virtual/libintl:0
+ introspection? ( >=dev-libs/gobject-introspection-0.6.4:0 )
+ unique? ( >=dev-libs/libunique-1:1 )
+ xmp? ( >=media-libs/exempi-1.99.2:2 )"
+
+DEPEND="${RDEPEND}
+ !!mate-base/mate-file-manager
+ >=dev-lang/perl-5:0=
+ dev-util/gdbus-codegen:0
+ >=dev-util/intltool-0.40.1:*
+ >=mate-base/mate-common-1.8:0
+ sys-devel/gettext:*
+ virtual/pkgconfig:*"
+
+PDEPEND="mate? ( >=x11-themes/mate-icon-theme-1.8:0 )"
+
+# TODO: Test fails because Caja is not merged yet:
+# GLib-GIO-ERROR **: Settings schema 'org.mate.caja.preferences' is not installed
+RESTRICT="test"
+
+src_prepare() {
+ # Remove unnecessary CFLAGS.
+ sed -i -e 's:-DG.*DISABLE_DEPRECATED::g' \
+ configure{,.ac} eel/Makefile.{am,in} || die
+
+ gnome2_src_prepare
+}
+
+src_configure() {
+ gnome2_src_configure \
+ --enable-unique \
+ --disable-packagekit \
+ --disable-update-mimedb \
+ --with-gtk=2.0 \
+ $(use_enable introspection) \
+ $(use_enable unique) \
+ $(use_enable xmp)
+}
+
+DOCS="AUTHORS ChangeLog* HACKING MAINTAINERS NEWS README THANKS TODO"
+
+src_test() {
+ unset SESSION_MANAGER
+ unset DBUS_SESSION_BUS_ADDRESS
+
+ Xemake check || die "Test phase failed"
+}
+
+pkg_postinst() {
+ gnome2_pkg_postinst
+
+ elog "Caja can use gstreamer to preview audio files. Just make sure"
+ elog "to have the necessary plugins available to play the media type you"
+ elog "want to preview."
+}
diff --git a/mate-base/caja/metadata.xml b/mate-base/caja/metadata.xml
new file mode 100644
index 000000000000..3028d6e49532
--- /dev/null
+++ b/mate-base/caja/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>mate</herd>
+ <use>
+ <flag name="mate">Install <pkg>x11-themes/mate-icon-theme</pkg> which
+ is needed when this package is used in the MATE desktop
+ environment.</flag>
+ <flag name="unique">Enable single instance support using
+ <pkg>dev-libs/libunique</pkg>.</flag>
+ </use>
+ <upstream>
+ <remote-id type="github">mate-desktop/caja</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/mate-base/libmatekbd/Manifest b/mate-base/libmatekbd/Manifest
new file mode 100644
index 000000000000..c7a69528afa1
--- /dev/null
+++ b/mate-base/libmatekbd/Manifest
@@ -0,0 +1 @@
+DIST libmatekbd-1.8.0.tar.xz 364024 SHA256 b0e4b0e5388057a26e0ccd960b6f95281519805a4b46ac9a97ccc2ab62706f8d SHA512 4b789722a96bbb83e5baf5d7da668771a95dcdd678b137979ba990a7ae14129542fe7339b86706142b97ee3975d620b951a8c49833353c619474e8955d3a45bc WHIRLPOOL ede20a3037d47536fd610b23d042d1dd6cb3b46b08932fcf93104f470644f6cc697272c827eb06747f6ba3a236e6fb921ee4b6c78f115e3375ae3f2b8fd91c39
diff --git a/mate-base/libmatekbd/libmatekbd-1.8.0.ebuild b/mate-base/libmatekbd/libmatekbd-1.8.0.ebuild
new file mode 100644
index 000000000000..4db87b9e0f7c
--- /dev/null
+++ b/mate-base/libmatekbd/libmatekbd-1.8.0.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+GCONF_DEBUG="no"
+GNOME2_LA_PUNT="yes"
+
+inherit gnome2 versionator
+
+MATE_BRANCH="$(get_version_component_range 1-2)"
+
+SRC_URI="http://pub.mate-desktop.org/releases/${MATE_BRANCH}/${P}.tar.xz"
+DESCRIPTION="MATE keyboard configuration library"
+HOMEPAGE="http://mate-desktop.org"
+
+LICENSE="LGPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+IUSE="X test"
+
+RDEPEND=">=dev-libs/glib-2.18:2
+ x11-libs/cairo:0
+ >=x11-libs/gdk-pixbuf-2.18:2
+ >=x11-libs/gtk+-2.18:2
+ x11-libs/libX11:0
+ >=x11-libs/libxklavier-5.0:0
+ x11-libs/pango:0
+ virtual/libintl:0"
+
+DEPEND="${RDEPEND}
+ sys-devel/gettext:*
+ >=dev-util/intltool-0.35:*
+ virtual/pkgconfig:*"
+
+src_configure() {
+ gnome2_src_configure \
+ --with-gtk=2.0 \
+ $(use_enable test tests) \
+ $(use_with X x)
+}
+
+DOCS="AUTHORS ChangeLog NEWS README"
diff --git a/mate-base/libmatekbd/metadata.xml b/mate-base/libmatekbd/metadata.xml
new file mode 100644
index 000000000000..29638e67c804
--- /dev/null
+++ b/mate-base/libmatekbd/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>mate</herd>
+ <upstream>
+ <remote-id type="github">mate-desktop/libmatekbd</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/mate-base/mate-applets/Manifest b/mate-base/mate-applets/Manifest
new file mode 100644
index 000000000000..8c7e411fe590
--- /dev/null
+++ b/mate-base/mate-applets/Manifest
@@ -0,0 +1,2 @@
+DIST mate-applets-1.8.0.tar.xz 6911348 SHA256 e1798784cf2828803e8bae4660a7bcd4c5a44b510217a50c650cfcaacadf71c1 SHA512 d5d211377df4e7bb0135babee7f49fb1fdc894d3fee3a4a485efe0b47d392d0534a1aa978743730e927420f9607efb761b4d3e6814a76aa393aa892788055e35 WHIRLPOOL 69bc6167b2907463660e75fa9a69a97ee9f4d106c8ace983492c78631f603198f93396ed5d58abd87ffd123188503ddee222527aac28a998aa738b4aa76ad288
+DIST mate-applets-1.8.1.tar.xz 6877876 SHA256 6f1a88453e526a7ee67e14fa4d6b3dc74fb954a1465c7cb3a76f205389a2df83 SHA512 054d74be78175a4b8d29f854d6ee9c4eaadca518c6382a58230b0131115aff30567c4005f8601c5c6fc629d8c2b46d2512c24cb235c35d921d6fcd97a7ef24d9 WHIRLPOOL c426ba49c5e52541ca55843422249c487da7a05a1cf06c54f3db601b548a231c629ebbed504e5ae3552705096ec3506e29c17e30530dafdffd2b654dd0732434
diff --git a/mate-base/mate-applets/files/mate-applets-1.6.2-r1-replace-cpufreq-by-cpupower.patch b/mate-base/mate-applets/files/mate-applets-1.6.2-r1-replace-cpufreq-by-cpupower.patch
new file mode 100644
index 000000000000..880afc75b76b
--- /dev/null
+++ b/mate-base/mate-applets/files/mate-applets-1.6.2-r1-replace-cpufreq-by-cpupower.patch
@@ -0,0 +1,79 @@
+Obtained from: http://pkgs.fedoraproject.org/cgit/mate-applets.git/plain/cpufreq.patch
+
+diff -upr mate-applets-1.5.0-orig/configure.ac mate-applets-1.5.0/configure.ac
+--- mate-applets-1.5.0-orig/configure.ac 2012-12-08 22:37:32.000000000 +0100
++++ mate-applets-1.5.0/configure.ac 2013-01-14 18:04:15.726598991 +0100
+@@ -506,13 +506,13 @@ if test "x$HAVE_POLKIT" = "xyes"; then
+ fi
+
+ AC_CHECK_HEADER(cpufreq.h, have_libcpufreq=yes, have_libcpufreq=no)
+-LIBCPUFREQ_LIBS=
+-if test "x$have_libcpufreq" = "xyes"; then
+- AC_DEFINE([HAVE_LIBCPUFREQ], [1], [Have libcpufreq.])
+- LIBCPUFREQ_LIBS=-lcpufreq
++LIBCPUPOWER_LIBS=
++if test "x$have_libcpupower" = "xyes"; then
++ AC_DEFINE([HAVE_LIBCPUPOWER], [1], [Have libcpupower.])
++ LIBCPUPOWER_LIBS=-lcpupower
+ fi
+-AM_CONDITIONAL(HAVE_LIBCPUFREQ, test x$have_libcpufreq = xyes)
+-AC_SUBST(LIBCPUFREQ_LIBS)
++AM_CONDITIONAL(HAVE_LIBCPUPOWER, test x$have_libcpupower = xyes)
++AC_SUBST(LIBCPUPOWER_LIBS)
+
+ build_cpufreq_applet=no
+
+diff -upr mate-applets-1.5.0-orig/cpufreq/src/cpufreq-selector/cpufreq-selector-factory.c mate-applets-1.5.0/cpufreq/src/cpufreq-selector/cpufreq-selector-factory.c
+--- mate-applets-1.5.0-orig/cpufreq/src/cpufreq-selector/cpufreq-selector-factory.c 2012-12-08 22:37:32.000000000 +0100
++++ mate-applets-1.5.0/cpufreq/src/cpufreq-selector/cpufreq-selector-factory.c 2013-01-14 19:15:28.432366287 +0100
+@@ -24,7 +24,7 @@
+ #include "cpufreq-selector-factory.h"
+ #include "cpufreq-selector-sysfs.h"
+ #include "cpufreq-selector-procfs.h"
+-#ifdef HAVE_LIBCPUFREQ
++#ifdef HAVE_LIBCPUPOWER
+ #include "cpufreq-selector-libcpufreq.h"
+ #endif
+
+@@ -33,7 +33,7 @@ cpufreq_selector_factory_create_selector
+ {
+ CPUFreqSelector *selector = NULL;
+
+-#ifdef HAVE_LIBCPUFREQ
++#ifdef HAVE_LIBCPUPOWER
+ selector = cpufreq_selector_libcpufreq_new (cpu);
+ #else
+ if (g_file_test ("/sys/devices/system/cpu/cpu0/cpufreq", G_FILE_TEST_EXISTS)) { /* 2.6 kernel */
+@@ -41,7 +41,7 @@ cpufreq_selector_factory_create_selector
+ } else if (g_file_test ("/proc/cpufreq", G_FILE_TEST_EXISTS)) { /* 2.4 kernel */
+ selector = cpufreq_selector_procfs_new (cpu);
+ }
+-#endif /* HAVE_LIBCPUFREQ */
++#endif /* HAVE_LIBCPUPOWER */
+
+ return selector;
+ }
+diff -upr mate-applets-1.5.0-orig/cpufreq/src/cpufreq-selector/Makefile.am mate-applets-1.5.0/cpufreq/src/cpufreq-selector/Makefile.am
+--- mate-applets-1.5.0-orig/cpufreq/src/cpufreq-selector/Makefile.am 2012-12-08 22:37:32.000000000 +0100
++++ mate-applets-1.5.0/cpufreq/src/cpufreq-selector/Makefile.am 2013-01-14 19:13:27.223180712 +0100
+@@ -16,7 +16,7 @@ if CPUFREQ_SELECTOR_SUID
+ endif
+
+
+-if HAVE_LIBCPUFREQ
++if HAVE_LIBCPUPOWER
+ cpufreq_files=cpufreq-selector-libcpufreq.c cpufreq-selector-libcpufreq.h
+ endif
+
+diff -upr mate-applets-1.5.0-orig/cpufreq/src/Makefile.am mate-applets-1.5.0/cpufreq/src/Makefile.am
+--- mate-applets-1.5.0-orig/cpufreq/src/Makefile.am 2012-12-08 22:37:32.000000000 +0100
++++ mate-applets-1.5.0/cpufreq/src/Makefile.am 2013-01-14 19:14:01.647517888 +0100
+@@ -12,7 +12,7 @@ INCLUDES = \
+
+ libexec_PROGRAMS = mate-cpufreq-applet
+
+-if HAVE_LIBCPUFREQ
++if HAVE_LIBCPUPOWER
+ cpufreq_files=cpufreq-monitor-libcpufreq.c cpufreq-monitor-libcpufreq.h
+ endif
+
diff --git a/mate-base/mate-applets/mate-applets-1.8.0-r1.ebuild b/mate-base/mate-applets/mate-applets-1.8.0-r1.ebuild
new file mode 100644
index 000000000000..98e9687ad834
--- /dev/null
+++ b/mate-base/mate-applets/mate-applets-1.8.0-r1.ebuild
@@ -0,0 +1,99 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+GCONF_DEBUG="no"
+PYTHON_COMPAT=( python2_7 )
+
+inherit autotools eutils gnome2 python-single-r1 versionator
+
+MATE_BRANCH="$(get_version_component_range 1-2)"
+
+SRC_URI="http://pub.mate-desktop.org/releases/${MATE_BRANCH}/${P}.tar.xz"
+DESCRIPTION="Applets for the MATE Desktop and Panel"
+HOMEPAGE="http://mate-desktop.org"
+
+LICENSE="GPL-2 FDL-1.1 LGPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+IUSE="X ipv6 networkmanager policykit"
+
+RDEPEND="${PYTHON_DEPS}
+ app-text/rarian:0
+ dev-libs/atk:0
+ >=dev-libs/dbus-glib-0.74:0
+ >=dev-libs/glib-2.22:2
+ >=dev-libs/libmateweather-1.8:0
+ >=dev-libs/libxml2-2.5:2
+ dev-python/pygobject:3
+ >=gnome-base/libgtop-2.11.92:2=
+ >=mate-base/mate-desktop-1.8:0
+ >=mate-base/mate-panel-1.8:0
+ >=mate-base/mate-settings-daemon-1.8:0
+ >=sys-apps/dbus-1.1.2:0
+ sys-power/cpupower
+ || ( >=sys-power/upower-0.9.23 >=sys-power/upower-pm-utils-0.9.23 )
+ x11-libs/gdk-pixbuf:2
+ >=x11-libs/gtk+-2.24:2
+ >=x11-libs/libnotify-0.7:0
+ x11-libs/libX11:0
+ >=x11-libs/libxklavier-4:0
+ >=x11-libs/libwnck-2.30:1
+ x11-libs/pango:0
+ >=x11-themes/mate-icon-theme-1.8:0
+ virtual/libintl:0
+ networkmanager? ( >=net-misc/networkmanager-0.7:0 )
+ policykit? ( >=sys-auth/polkit-0.92:0 )"
+
+DEPEND="${RDEPEND}
+ app-text/docbook-xml-dtd:4.3
+ >=app-text/scrollkeeper-dtd-1:1.0
+ app-text/yelp-tools:0
+ >=dev-util/intltool-0.35:*
+ dev-libs/libxslt:0
+ >=mate-base/mate-common-1.8:0
+ sys-devel/gettext:*
+ virtual/pkgconfig:*"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-1.6.2-r1-replace-cpufreq-by-cpupower.patch
+
+ eautoreconf
+}
+
+src_configure() {
+ gnome2_src_configure \
+ --libexecdir=/usr/libexec/mate-applets \
+ --without-hal \
+ $(use_enable ipv6) \
+ $(use_enable networkmanager) \
+ $(use_enable policykit polkit) \
+ $(use_with X x)
+}
+
+src_test() {
+ unset DBUS_SESSION_BUS_ADDRESS
+ emake check
+}
+
+DOCS="AUTHORS ChangeLog NEWS README"
+
+src_install() {
+ python_fix_shebang invest-applet timer-applet/src
+ gnome2_src_install
+
+ local APPLETS="accessx-status battstat charpick command cpufreq drivemount
+ geyes invest-applet mateweather mini-commander mixer multiload
+ null_applet stickynotes timerapplet trashapplet"
+
+ for applet in ${APPLETS}; do
+ docinto ${applet}
+
+ for d in AUTHORS ChangeLog NEWS README README.themes TODO; do
+ [ -s ${applet}/${d} ] && dodoc ${applet}/${d}
+ done
+ done
+}
diff --git a/mate-base/mate-applets/mate-applets-1.8.1.ebuild b/mate-base/mate-applets/mate-applets-1.8.1.ebuild
new file mode 100644
index 000000000000..95da4f30901b
--- /dev/null
+++ b/mate-base/mate-applets/mate-applets-1.8.1.ebuild
@@ -0,0 +1,101 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+GCONF_DEBUG="no"
+PYTHON_COMPAT=( python2_7 )
+
+inherit autotools eutils gnome2 python-single-r1 versionator
+
+MATE_BRANCH="$(get_version_component_range 1-2)"
+
+SRC_URI="http://pub.mate-desktop.org/releases/${MATE_BRANCH}/${P}.tar.xz"
+DESCRIPTION="Applets for the MATE Desktop and Panel"
+HOMEPAGE="http://mate-desktop.org"
+
+LICENSE="GPL-2 FDL-1.1 LGPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+IUSE="X ipv6 networkmanager policykit +upower"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="${PYTHON_DEPS}
+ app-text/rarian:0
+ dev-libs/atk:0
+ >=dev-libs/dbus-glib-0.74:0
+ >=dev-libs/glib-2.22:2
+ >=dev-libs/libmateweather-1.8:0
+ >=dev-libs/libxml2-2.5:2
+ dev-python/pygobject:3
+ >=gnome-base/libgtop-2.11.92:2=
+ >=mate-base/mate-desktop-1.8:0
+ >=mate-base/mate-panel-1.8:0
+ >=mate-base/mate-settings-daemon-1.8:0
+ >=sys-apps/dbus-1.1.2:0
+ sys-power/cpupower
+ upower? ( || ( >=sys-power/upower-0.9.23 >=sys-power/upower-pm-utils-0.9.23 ) )
+ x11-libs/gdk-pixbuf:2
+ >=x11-libs/gtk+-2.24:2
+ >=x11-libs/libnotify-0.7:0
+ x11-libs/libX11:0
+ >=x11-libs/libxklavier-4:0
+ >=x11-libs/libwnck-2.30:1
+ x11-libs/pango:0
+ >=x11-themes/mate-icon-theme-1.8:0
+ virtual/libintl:0
+ networkmanager? ( >=net-misc/networkmanager-0.7:0 )
+ policykit? ( >=sys-auth/polkit-0.92:0 )"
+
+DEPEND="${RDEPEND}
+ app-text/docbook-xml-dtd:4.3
+ >=app-text/scrollkeeper-dtd-1:1.0
+ app-text/yelp-tools:0
+ >=dev-util/intltool-0.35:*
+ dev-libs/libxslt:0
+ >=mate-base/mate-common-1.8:0
+ sys-devel/gettext:*
+ virtual/pkgconfig:*"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-1.6.2-r1-replace-cpufreq-by-cpupower.patch
+
+ eautoreconf
+}
+
+src_configure() {
+ gnome2_src_configure \
+ --libexecdir=/usr/libexec/mate-applets \
+ --without-hal \
+ $(use_enable ipv6) \
+ $(use_enable networkmanager) \
+ $(use_enable policykit polkit) \
+ $(use_with upower) \
+ $(use_with X x)
+}
+
+src_test() {
+ unset DBUS_SESSION_BUS_ADDRESS
+ emake check
+}
+
+DOCS="AUTHORS ChangeLog NEWS README"
+
+src_install() {
+ python_fix_shebang invest-applet timer-applet/src
+ gnome2_src_install
+
+ local APPLETS="accessx-status battstat charpick command cpufreq drivemount
+ geyes invest-applet mateweather mini-commander mixer multiload
+ null_applet stickynotes timerapplet trashapplet"
+
+ for applet in ${APPLETS}; do
+ docinto ${applet}
+
+ for d in AUTHORS ChangeLog NEWS README README.themes TODO; do
+ [ -s ${applet}/${d} ] && dodoc ${applet}/${d}
+ done
+ done
+}
diff --git a/mate-base/mate-applets/metadata.xml b/mate-base/mate-applets/metadata.xml
new file mode 100644
index 000000000000..7cc8907038a4
--- /dev/null
+++ b/mate-base/mate-applets/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>mate</herd>
+ <upstream>
+ <remote-id type="github">mate-desktop/mate-applets</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/mate-base/mate-common/Manifest b/mate-base/mate-common/Manifest
new file mode 100644
index 000000000000..0fce9a16a211
--- /dev/null
+++ b/mate-base/mate-common/Manifest
@@ -0,0 +1 @@
+DIST mate-common-1.8.0.tar.xz 71072 SHA256 0b04310e61d0f9a7dd3ba32aadae38a6d0089b464b134bf015472fc9f47a23cc SHA512 a73e42a8a09a444ace9cf54efdfecf8204db55800f1d04915bae724ad259c2f87c94b147f7299f081c700bed8659e06720a2af31e7d2c3ceb42cb6cab8ea1818 WHIRLPOOL 5083276c41b02be82e1789c1d35a1d8292faf460be5b8e045593f4915f7b274671bfd3d8c02b740b2bd8ff3778d9e1f49e7fb2c1b683f3715f6306bf3fbfa2cb
diff --git a/mate-base/mate-common/mate-common-1.8.0.ebuild b/mate-base/mate-common/mate-common-1.8.0.ebuild
new file mode 100644
index 000000000000..2b995245270d
--- /dev/null
+++ b/mate-base/mate-common/mate-common-1.8.0.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+inherit versionator
+
+MATE_BRANCH="$(get_version_component_range 1-2)"
+
+SRC_URI="http://pub.mate-desktop.org/releases/${MATE_BRANCH}/${P}.tar.xz"
+DESCRIPTION="Common files for development of MATE packages"
+HOMEPAGE="http://mate-desktop.org"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+src_install() {
+ mv doc-build/README README.doc-build \
+ || die "Failed to rename doc-build/README."
+
+ default
+
+ dodoc doc/usage.txt
+}
diff --git a/mate-base/mate-common/metadata.xml b/mate-base/mate-common/metadata.xml
new file mode 100644
index 000000000000..9c63ff9eb0a8
--- /dev/null
+++ b/mate-base/mate-common/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>mate</herd>
+ <upstream>
+ <remote-id type="github">mate-desktop/mate-common</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/mate-base/mate-control-center/Manifest b/mate-base/mate-control-center/Manifest
new file mode 100644
index 000000000000..88707495f4c9
--- /dev/null
+++ b/mate-base/mate-control-center/Manifest
@@ -0,0 +1,2 @@
+DIST mate-control-center-1.8.1.tar.xz 1306504 SHA256 caf482b5944680b5f3e03334bd5932d2f7befda1855d0abb2aef73fbe9e5e8f0 SHA512 12edce98ebe45925ca3b4539d43a940f7d7de72163a9d4d742ff801fbc1198a980790e8e87366fffcdbd172e8b2f18de1fcffc8912c41b66fc6bdf28d2e800e7 WHIRLPOOL ccf44af90596dd493a67c52ffa068ccec1a1e6a62102f1d15eb308a4e63f7e1a7cd08a2b283c967a964dcc2afcc19cd2c2da578b5525034e1e18b2526ba873ca
+DIST mate-control-center-1.8.3.tar.xz 1306248 SHA256 97bfb66ac0283dcdeae5ec0104ff83b8c644768f8e508b7d227e2a1139934e36 SHA512 bb6b82ef9cb733fa4531a70aea969e5fa67f3066ff958f89cdf30d50671c3a6a169559f0b2e4df97846969611b043428f44420d6dfa4d6299fa624d46ec1f0e2 WHIRLPOOL 0535deb4f3bab926264223cccb3406bc9ec4fa22d1ffe3f11c2fa424101030df86495be71840dadb1248a6a61a08a20cc74c42bda7cfb8025e5f43e3e9e0ab28
diff --git a/mate-base/mate-control-center/files/mate-control-center-1.6.2-libsecret.patch b/mate-base/mate-control-center/files/mate-control-center-1.6.2-libsecret.patch
new file mode 100644
index 000000000000..b66a9af83a6b
--- /dev/null
+++ b/mate-base/mate-control-center/files/mate-control-center-1.6.2-libsecret.patch
@@ -0,0 +1,15 @@
+diff --git a/libslab/app-shell.c b/libslab/app-shell.c
+index 3c33230..5f4af23 100644
+--- a/libslab/app-shell.c
++++ b/libslab/app-shell.c
+@@ -987,8 +987,8 @@ static void handle_menu_action_performed (Tile * launcher, TileEvent * event, Ti
+ return TRUE;
+ }
+
+- /* discard mate-keyring-manager if CASA is installed */
+- if ((exec && !strcmp (exec, "mate-keyring-manager"))
++ /* discard gnome-keyring-manager if CASA is installed */
++ if ((exec && !strcmp (exec, "gnome-keyring-manager"))
+ && (path = g_find_program_in_path ("CASAManager.sh")))
+ {
+ g_free (path);
diff --git a/mate-base/mate-control-center/mate-control-center-1.8.1.ebuild b/mate-base/mate-control-center/mate-control-center-1.8.1.ebuild
new file mode 100644
index 000000000000..651350ac2412
--- /dev/null
+++ b/mate-base/mate-control-center/mate-control-center-1.8.1.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+GCONF_DEBUG="yes"
+GNOME2_LA_PUNT="yes"
+
+inherit eutils gnome2 versionator
+
+MATE_BRANCH="$(get_version_component_range 1-2)"
+
+SRC_URI="http://pub.mate-desktop.org/releases/${MATE_BRANCH}/${P}.tar.xz"
+DESCRIPTION="The MATE Desktop configuration tool"
+HOMEPAGE="http://mate-desktop.org"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+RDEPEND="app-text/rarian:0
+ dev-libs/atk:0
+ >=dev-libs/dbus-glib-0.73:0
+ >=dev-libs/glib-2.28:2
+ >=dev-libs/libunique-1:1
+ dev-libs/libxml2:2
+ >=gnome-base/dconf-0.13.4:0
+ >=gnome-base/librsvg-2.0:2
+ >=mate-base/libmatekbd-1.8:0
+ >=mate-base/mate-desktop-1.8:0
+ >=mate-base/caja-1.8:0
+ >=mate-base/mate-menus-1.8:0
+ >=mate-base/mate-settings-daemon-1.8:0
+ >=media-libs/fontconfig-1:1.0
+ media-libs/freetype:2
+ media-libs/libcanberra:0[gtk]
+ >=sys-apps/dbus-1:0
+ x11-apps/xmodmap:0
+ x11-libs/cairo:0
+ x11-libs/gdk-pixbuf:2
+ >=x11-libs/gtk+-2.24:2
+ x11-libs/libX11:0
+ x11-libs/libXScrnSaver:0
+ x11-libs/libXcursor:0
+ x11-libs/libXext:0
+ x11-libs/libXft:0
+ >=x11-libs/libXi-1.2:0
+ x11-libs/libXrandr:0
+ x11-libs/libXrender:0
+ x11-libs/libXxf86misc:0
+ >=x11-libs/libxklavier-4:0
+ x11-libs/pango:0
+ >=x11-wm/marco-1.8:0
+ virtual/libintl:0"
+
+DEPEND="${RDEPEND}
+ >=app-text/scrollkeeper-dtd-1:1.0
+ app-text/yelp-tools:0
+ dev-util/desktop-file-utils:0
+ >=dev-util/intltool-0.37.1:*
+ >=mate-base/mate-common-1.8:0
+ sys-devel/gettext:*
+ x11-proto/kbproto:0
+ x11-proto/randrproto:0
+ x11-proto/renderproto:0
+ x11-proto/scrnsaverproto:0
+ x11-proto/xextproto:0
+ x11-proto/xf86miscproto:0
+ x11-proto/xproto:0
+ virtual/pkgconfig:*"
+
+src_configure() {
+ gnome2_src_configure \
+ --disable-update-mimedb \
+ --disable-appindicator
+}
+
+src_compile() {
+ emake -j1
+}
+
+DOCS="AUTHORS ChangeLog NEWS README TODO"
diff --git a/mate-base/mate-control-center/mate-control-center-1.8.3.ebuild b/mate-base/mate-control-center/mate-control-center-1.8.3.ebuild
new file mode 100644
index 000000000000..7a4c487577d5
--- /dev/null
+++ b/mate-base/mate-control-center/mate-control-center-1.8.3.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+GCONF_DEBUG="yes"
+GNOME2_LA_PUNT="yes"
+
+inherit eutils gnome2 versionator
+
+MATE_BRANCH="$(get_version_component_range 1-2)"
+
+SRC_URI="http://pub.mate-desktop.org/releases/${MATE_BRANCH}/${P}.tar.xz"
+DESCRIPTION="The MATE Desktop configuration tool"
+HOMEPAGE="http://mate-desktop.org"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="app-text/rarian:0
+ dev-libs/atk:0
+ >=dev-libs/dbus-glib-0.73:0
+ >=dev-libs/glib-2.28:2
+ >=dev-libs/libunique-1:1
+ dev-libs/libxml2:2
+ >=gnome-base/dconf-0.13.4:0
+ >=gnome-base/librsvg-2.0:2
+ >=mate-base/libmatekbd-1.8:0
+ >=mate-base/mate-desktop-1.8:0
+ >=mate-base/caja-1.8:0
+ >=mate-base/mate-menus-1.8:0
+ >=mate-base/mate-settings-daemon-1.8:0
+ >=media-libs/fontconfig-1:1.0
+ media-libs/freetype:2
+ media-libs/libcanberra:0[gtk]
+ >=sys-apps/dbus-1:0
+ x11-apps/xmodmap:0
+ x11-libs/cairo:0
+ x11-libs/gdk-pixbuf:2
+ >=x11-libs/gtk+-2.24:2
+ x11-libs/libX11:0
+ x11-libs/libXScrnSaver:0
+ x11-libs/libXcursor:0
+ x11-libs/libXext:0
+ x11-libs/libXft:0
+ >=x11-libs/libXi-1.2:0
+ x11-libs/libXrandr:0
+ x11-libs/libXrender:0
+ x11-libs/libXxf86misc:0
+ >=x11-libs/libxklavier-4:0
+ x11-libs/pango:0
+ >=x11-wm/marco-1.8.2:0
+ virtual/libintl:0"
+
+DEPEND="${RDEPEND}
+ >=app-text/scrollkeeper-dtd-1:1.0
+ app-text/yelp-tools:0
+ dev-util/desktop-file-utils:0
+ >=dev-util/intltool-0.37.1:*
+ >=mate-base/mate-common-1.8:0
+ sys-devel/gettext:*
+ x11-proto/kbproto:0
+ x11-proto/randrproto:0
+ x11-proto/renderproto:0
+ x11-proto/scrnsaverproto:0
+ x11-proto/xextproto:0
+ x11-proto/xf86miscproto:0
+ x11-proto/xproto:0
+ virtual/pkgconfig:*"
+
+src_configure() {
+ gnome2_src_configure \
+ --disable-update-mimedb \
+ --disable-appindicator
+}
+
+src_compile() {
+ emake -j1
+}
+
+DOCS="AUTHORS ChangeLog NEWS README TODO"
diff --git a/mate-base/mate-control-center/metadata.xml b/mate-base/mate-control-center/metadata.xml
new file mode 100644
index 000000000000..064792223806
--- /dev/null
+++ b/mate-base/mate-control-center/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>mate</herd>
+ <upstream>
+ <remote-id type="github">mate-desktop/mate-control-center</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/mate-base/mate-desktop/Manifest b/mate-base/mate-desktop/Manifest
new file mode 100644
index 000000000000..bcdbcff67673
--- /dev/null
+++ b/mate-base/mate-desktop/Manifest
@@ -0,0 +1,2 @@
+DIST mate-desktop-1.8.0.tar.xz 7951460 SHA256 482e7bc4d77e45c03505a899a07b8107f33832b22d59c40f342d5695f789bd17 SHA512 2cf4dbfc0d628ebb48a92c06fc66ac021eb280031305f3c01725dcb5a4357f07a7a33fb2e6d017c5d5081902a68c82d93471530b0bb3415653657366ae8759cf WHIRLPOOL 3db86fa7385e33e97bd5c2388f2abf5e4e87e9177b636da5843aed257062eec1f9bc4bd097ce3f101c04e2128811e5ec39a22f08fa6523cc78200c0362e5e55f
+DIST mate-desktop-1.8.1.tar.xz 8027312 SHA256 a4e1316f9468150e30495b54024fbc9f98e12cc7f9750d972f5457f13ca908f3 SHA512 64c32ea32a0e0e88df314297b2b45c5a6da2747a3bed41437eb17bf282511a4d01bd678728005a6301f93ae2b3c09a38039af85a8666d18e51958d6ffa091d9b WHIRLPOOL f5ed8a0b338b453ccbf7fcb560dd2490f43edceff21c8b6104eb91e8df6e016890174d34a1be3eec2b20322fd34a5c9ce553d0450a533407d4ef8269ff1aa4f8
diff --git a/mate-base/mate-desktop/mate-desktop-1.8.0-r1.ebuild b/mate-base/mate-desktop/mate-desktop-1.8.0-r1.ebuild
new file mode 100644
index 000000000000..f06264ab24d7
--- /dev/null
+++ b/mate-base/mate-desktop/mate-desktop-1.8.0-r1.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+GCONF_DEBUG="yes"
+GNOME2_LA_PUNT="yes"
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit gnome2 multilib python-r1 versionator
+
+MATE_BRANCH="$(get_version_component_range 1-2)"
+
+SRC_URI="http://pub.mate-desktop.org/releases/${MATE_BRANCH}/${P}.tar.xz"
+DESCRIPTION="Libraries for the MATE desktop that are not part of the UI"
+HOMEPAGE="http://mate-desktop.org"
+
+LICENSE="GPL-2 FDL-1.1 LGPL-2"
+SLOT="0"
+KEYWORDS="~amd64"
+
+IUSE="X startup-notification"
+
+RDEPEND="${PYTHON_DEPS}
+ >=dev-libs/glib-2.34:2
+ >=dev-libs/libunique-1:1
+ x11-libs/cairo:0
+ >=x11-libs/gdk-pixbuf-2.4:2
+ >=x11-libs/gtk+-2.24:2
+ x11-libs/libX11:0
+ >=x11-libs/libXrandr-1.2:0
+ virtual/libintl:0
+ startup-notification? ( >=x11-libs/startup-notification-0.5:0 )"
+
+DEPEND="${RDEPEND}
+ app-text/docbook-xml-dtd:4.1.2
+ app-text/yelp-tools:0
+ >=dev-util/intltool-0.40:*
+ >=gnome-base/dconf-0.10:0
+ sys-devel/gettext:*
+ >=x11-proto/randrproto-1.2:0
+ x11-proto/xproto:0
+ virtual/pkgconfig:*"
+
+src_configure() {
+ gnome2_src_configure \
+ --enable-mate-about \
+ --enable-mate-conf-import \
+ --disable-desktop-docs \
+ --with-gtk=2.0 \
+ $(use_with X x) \
+ $(use_enable startup-notification)
+}
+
+DOCS="AUTHORS ChangeLog HACKING NEWS README"
+
+src_install() {
+ gnome2_src_install
+
+ python_replicate_script "${ED}"/usr/bin/mate-conf-import
+
+ # Remove installed files that cause collissions.
+ rm -rf "${ED}"/usr/share/help/C/{lgpl,gpl,fdl}
+}
diff --git a/mate-base/mate-desktop/mate-desktop-1.8.1-r1.ebuild b/mate-base/mate-desktop/mate-desktop-1.8.1-r1.ebuild
new file mode 100644
index 000000000000..f063d906682a
--- /dev/null
+++ b/mate-base/mate-desktop/mate-desktop-1.8.1-r1.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+GCONF_DEBUG="yes"
+GNOME2_LA_PUNT="yes"
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit gnome2 multilib python-r1 versionator
+
+MATE_BRANCH="$(get_version_component_range 1-2)"
+
+SRC_URI="http://pub.mate-desktop.org/releases/${MATE_BRANCH}/${P}.tar.xz"
+DESCRIPTION="Libraries for the MATE desktop that are not part of the UI"
+HOMEPAGE="http://mate-desktop.org"
+
+LICENSE="GPL-2 FDL-1.1 LGPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~arm x86"
+
+IUSE="X startup-notification"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="${PYTHON_DEPS}
+ >=dev-libs/glib-2.34:2
+ >=dev-libs/libunique-1:1
+ x11-libs/cairo:0
+ >=x11-libs/gdk-pixbuf-2.4:2
+ >=x11-libs/gtk+-2.24:2
+ x11-libs/libX11:0
+ >=x11-libs/libXrandr-1.2:0
+ virtual/libintl:0
+ startup-notification? ( >=x11-libs/startup-notification-0.5:0 )"
+
+DEPEND="${RDEPEND}
+ app-text/docbook-xml-dtd:4.1.2
+ app-text/yelp-tools:0
+ >=dev-util/intltool-0.40:*
+ >=gnome-base/dconf-0.10:0
+ sys-devel/gettext:*
+ >=x11-proto/randrproto-1.2:0
+ x11-proto/xproto:0
+ virtual/pkgconfig:*"
+
+src_configure() {
+ gnome2_src_configure \
+ --enable-mate-about \
+ --enable-mate-conf-import \
+ --disable-desktop-docs \
+ --with-gtk=2.0 \
+ $(use_with X x) \
+ $(use_enable startup-notification)
+}
+
+DOCS="AUTHORS ChangeLog HACKING NEWS README"
+
+src_install() {
+ gnome2_src_install
+
+ python_replicate_script "${ED}"/usr/bin/mate-conf-import
+
+ # Remove installed files that cause collissions.
+ rm -rf "${ED}"/usr/share/help/C/{lgpl,gpl,fdl}
+}
diff --git a/mate-base/mate-desktop/metadata.xml b/mate-base/mate-desktop/metadata.xml
new file mode 100644
index 000000000000..fef3aebebc37
--- /dev/null
+++ b/mate-base/mate-desktop/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>mate</herd>
+ <upstream>
+ <remote-id type="github">mate-desktop/mate-desktop</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/mate-base/mate-menus/Manifest b/mate-base/mate-menus/Manifest
new file mode 100644
index 000000000000..67097f395704
--- /dev/null
+++ b/mate-base/mate-menus/Manifest
@@ -0,0 +1 @@
+DIST mate-menus-1.8.0.tar.xz 342768 SHA256 0610c1c5c2348e8bcd1dae7bed808c451917a69b31d4b80de2b2f6288005b43c SHA512 724c0f4d98cabcc8d186e27024f116ba97ed4219ea563aecf14c22ef8d6b4dc1f5281ace2f836a5cfa32984e43cb3dd2b0ac1a9390dde9d477394c74a62348a0 WHIRLPOOL e5671a62f60eb8560a62e9f5e12267cd8cae34817a51a31afc58e26d3787ec7e9bdd2e17e81a3119892f2dc03df11004455d4c75247bef224428041003f3439b
diff --git a/mate-base/mate-menus/files/10-xdg-menu-mate b/mate-base/mate-menus/files/10-xdg-menu-mate
new file mode 100644
index 000000000000..06a6a91368e2
--- /dev/null
+++ b/mate-base/mate-menus/files/10-xdg-menu-mate
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+if [ -z "$XDG_MENU_PREFIX" ] && [ "$DESKTOP_SESSION" = "mate" ]
+then
+ export XDG_MENU_PREFIX=mate-
+fi
diff --git a/mate-base/mate-menus/mate-menus-1.8.0.ebuild b/mate-base/mate-menus/mate-menus-1.8.0.ebuild
new file mode 100644
index 000000000000..58d81766b8b1
--- /dev/null
+++ b/mate-base/mate-menus/mate-menus-1.8.0.ebuild
@@ -0,0 +1,82 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+GCONF_DEBUG="no"
+GNOME2_LA_PUNT="yes"
+PYTHON_COMPAT=( python2_7 )
+
+inherit gnome2 python-r1
+
+MATE_BRANCH="$(get_version_component_range 1-2)"
+
+SRC_URI="http://pub.mate-desktop.org/releases/${MATE_BRANCH}/${P}.tar.xz"
+DESCRIPTION="MATE menu system, implementing the F.D.O cross-desktop spec"
+HOMEPAGE="http://mate-desktop.org"
+
+LICENSE="GPL-2 LGPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+IUSE="debug +introspection python"
+
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+RDEPEND=">=dev-libs/glib-2.15.2:2
+ virtual/libintl:0
+ introspection? ( >=dev-libs/gobject-introspection-0.6.7:0 )
+ python? (
+ dev-python/pygtk:2[${PYTHON_USEDEP}]
+ ${PYTHON_DEPS}
+ )"
+
+DEPEND="${RDEPEND}
+ >=dev-util/intltool-0.40:*
+ >=mate-base/mate-common-1.8:0
+ sys-devel/gettext:*
+ virtual/pkgconfig:*"
+
+my_command() {
+ if use python ; then
+ python_foreach_impl run_in_build_dir $@
+ else
+ $@
+ fi
+}
+
+src_configure() {
+ G2CONF="${G2CONF} \
+ $(use_enable python) \
+ $(use_enable introspection)"
+
+ # Do NOT compile with --disable-debug/--enable-debug=no as it disables API
+ # usage checks.
+ if ! use debug ; then
+ G2CONF="${G2CONF} --enable-debug=minimum"
+ fi
+
+ if use python ; then
+ python_copy_sources
+ fi
+
+ my_command gnome2_src_configure
+}
+
+src_compile() {
+ my_command gnome2_src_compile
+}
+
+src_test() {
+ my_command emake check
+}
+
+DOCS="AUTHORS ChangeLog NEWS README"
+
+src_install() {
+ my_command gnome2_src_install
+
+ exeinto /etc/X11/xinit/xinitrc.d/
+ doexe "${FILESDIR}/10-xdg-menu-mate"
+}
diff --git a/mate-base/mate-menus/metadata.xml b/mate-base/mate-menus/metadata.xml
new file mode 100644
index 000000000000..e356fdf21ce7
--- /dev/null
+++ b/mate-base/mate-menus/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>mate</herd>
+ <upstream>
+ <remote-id type="github">mate-desktop/mate-menus</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/mate-base/mate-panel/Manifest b/mate-base/mate-panel/Manifest
new file mode 100644
index 000000000000..74bf05a2b592
--- /dev/null
+++ b/mate-base/mate-panel/Manifest
@@ -0,0 +1,2 @@
+DIST mate-panel-1.8.0.tar.xz 1930348 SHA256 ac20c42d1b2ae7bf08e4e701e12165e63753f80648c1ea4ff5297f3381481056 SHA512 bdac2baa567cb52cdb6ddf3ed1d20e9de496e22734538fbca8e9efa6c2d4263ea6c13800ff21cffa8e5383cc5ee875ae7982b0d6e0d0a704abcbd97e3c07c53a WHIRLPOOL 73090851f4410689f184beaafca8c587e8ecf633bffd1356212a8c145c60187de50f7c498e363ebd5f54ae51333e2a6dd6ab1d47c7f04c1318a76d6932fae3ba
+DIST mate-panel-1.8.1.tar.xz 1953156 SHA256 d53d1546577db3e45ce6b46b4a40b2edc066781cc1e864eef47ad07b0fdb3f19 SHA512 925189eedf604117b4b4033b77a6ec4096f5c663218ca6736d549cdfd69c5476eebed56688632a6a20d0e2de49bc09ebd8373ecf45f486161b012346bb2eff8b WHIRLPOOL bb298e1b4b4078409e3a6b7858e2abf1667339c8581ee728f95f8ab0ea63288598e9c205b63baed40a57b19268c062a099fc98600502fd3723675ccfc19baade
diff --git a/mate-base/mate-panel/files/mate-panel-1.8.1-update_marco_wm_name.patch b/mate-base/mate-panel/files/mate-panel-1.8.1-update_marco_wm_name.patch
new file mode 100644
index 000000000000..f57bf983bef9
--- /dev/null
+++ b/mate-base/mate-panel/files/mate-panel-1.8.1-update_marco_wm_name.patch
@@ -0,0 +1,11 @@
+--- a/applets/wncklet/workspace-switcher.c
++++ b/applets/wncklet/workspace-switcher.c
+@@ -143,6 +143,8 @@
+
+ if (!wm_name)
+ pager->wm = PAGER_WM_UNKNOWN;
++ else if (strcmp(wm_name, "Metacity (Marco)") == 0)
++ pager->wm = PAGER_WM_MARCO;
+ else if (strcmp(wm_name, "Marco") == 0)
+ pager->wm = PAGER_WM_MARCO;
+ else if (strcmp(wm_name, "Compiz") == 0)
diff --git a/mate-base/mate-panel/mate-panel-1.8.0.ebuild b/mate-base/mate-panel/mate-panel-1.8.0.ebuild
new file mode 100644
index 000000000000..50ff6e230e6a
--- /dev/null
+++ b/mate-base/mate-panel/mate-panel-1.8.0.ebuild
@@ -0,0 +1,81 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+GCONF_DEBUG="no"
+GNOME2_LA_PUNT="yes"
+
+inherit autotools gnome2 versionator
+
+MATE_BRANCH="$(get_version_component_range 1-2)"
+
+SRC_URI="http://pub.mate-desktop.org/releases/${MATE_BRANCH}/${P}.tar.xz"
+DESCRIPTION="The MATE panel"
+HOMEPAGE="http://mate-desktop.org"
+
+LICENSE="GPL-2 FDL-1.1 LGPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+IUSE="X +introspection networkmanager"
+
+RDEPEND="
+ dev-libs/atk:0
+ >=dev-libs/dbus-glib-0.80:0
+ >=dev-libs/glib-2.26:2
+ >=dev-libs/libmateweather-1.8
+ dev-libs/libxml2:2
+ >=gnome-base/dconf-0.10:0
+ gnome-base/librsvg:2
+ >=mate-base/mate-desktop-1.8:0
+ >=mate-base/mate-menus-1.8:0
+ >=media-libs/libcanberra-0.23:0[gtk]
+ >=sys-apps/dbus-1.1.2:0
+ >=x11-libs/cairo-1:0
+ >=x11-libs/gdk-pixbuf-2.7.1:2
+ x11-libs/libICE:0
+ x11-libs/libSM:0
+ x11-libs/libX11:0
+ >=x11-libs/libwnck-2.30:1[introspection?]
+ >=x11-libs/pango-1.15.4:0[introspection?]
+ >=x11-libs/gtk+-2.19.7:2[introspection?]
+ x11-libs/libXau:0
+ >=x11-libs/libXrandr-1.2:0
+ virtual/libintl:0
+ introspection? ( >=dev-libs/gobject-introspection-0.6.7:0 )
+ networkmanager? ( >=net-misc/networkmanager-0.6:0 )"
+
+DEPEND="${RDEPEND}
+ app-text/docbook-xml-dtd:4.1.2
+ app-text/yelp-tools:0
+ >=dev-lang/perl-5:0=
+ >=dev-util/intltool-0.40:*
+ >=mate-base/mate-common-1.8:0
+ sys-devel/gettext:*
+ virtual/pkgconfig:*"
+
+src_prepare() {
+ # Disable python check.
+ sed -e '/AM_PATH_PYTHON/d' -i configure.ac || die
+
+ eautoreconf
+
+ gnome2_src_prepare
+}
+
+src_configure() {
+ gnome2_src_configure \
+ --libexecdir=/usr/libexec/mate-applets \
+ --disable-deprecation-flags \
+ $(use_enable networkmanager network-manager) \
+ $(use_enable introspection) \
+ $(use_with X x)
+}
+
+src_compile() {
+ emake -j1
+}
+
+DOCS="AUTHORS ChangeLog HACKING NEWS README"
diff --git a/mate-base/mate-panel/mate-panel-1.8.1-r1.ebuild b/mate-base/mate-panel/mate-panel-1.8.1-r1.ebuild
new file mode 100644
index 000000000000..6bef4413a702
--- /dev/null
+++ b/mate-base/mate-panel/mate-panel-1.8.1-r1.ebuild
@@ -0,0 +1,81 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+GCONF_DEBUG="no"
+GNOME2_LA_PUNT="yes"
+
+inherit eutils autotools gnome2 versionator
+
+MATE_BRANCH="$(get_version_component_range 1-2)"
+
+SRC_URI="http://pub.mate-desktop.org/releases/${MATE_BRANCH}/${P}.tar.xz"
+DESCRIPTION="The MATE panel"
+HOMEPAGE="http://mate-desktop.org"
+
+LICENSE="GPL-2 FDL-1.1 LGPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+IUSE="X +introspection networkmanager"
+
+RDEPEND="
+ dev-libs/atk:0
+ >=dev-libs/dbus-glib-0.80:0
+ >=dev-libs/glib-2.26:2
+ >=dev-libs/libmateweather-1.8
+ dev-libs/libxml2:2
+ >=gnome-base/dconf-0.10:0
+ gnome-base/librsvg:2
+ >=mate-base/mate-desktop-1.8:0
+ >=mate-base/mate-menus-1.8:0
+ >=media-libs/libcanberra-0.23:0[gtk]
+ >=sys-apps/dbus-1.1.2:0
+ >=x11-libs/cairo-1:0
+ >=x11-libs/gdk-pixbuf-2.7.1:2
+ x11-libs/libICE:0
+ x11-libs/libSM:0
+ x11-libs/libX11:0
+ >=x11-libs/libwnck-2.30:1[introspection?]
+ >=x11-libs/pango-1.15.4:0[introspection?]
+ >=x11-libs/gtk+-2.19.7:2[introspection?]
+ x11-libs/libXau:0
+ >=x11-libs/libXrandr-1.2:0
+ virtual/libintl:0
+ introspection? ( >=dev-libs/gobject-introspection-0.6.7:0 )
+ networkmanager? ( >=net-misc/networkmanager-0.6:0 )"
+
+DEPEND="${RDEPEND}
+ app-text/docbook-xml-dtd:4.1.2
+ app-text/yelp-tools:0
+ >=dev-lang/perl-5:0=
+ >=dev-util/intltool-0.40:*
+ >=mate-base/mate-common-1.8:0
+ sys-devel/gettext:*
+ virtual/pkgconfig:*"
+
+src_prepare() {
+ # Disable python check.
+ sed -e '/AM_PATH_PYTHON/d' -i configure.ac || die
+
+ epatch "${FILESDIR}/${P}-update_marco_wm_name.patch"
+
+ epatch_user
+
+ eautoreconf
+
+ gnome2_src_prepare
+}
+
+src_configure() {
+ gnome2_src_configure \
+ --libexecdir=/usr/libexec/mate-applets \
+ --disable-deprecation-flags \
+ $(use_enable networkmanager network-manager) \
+ $(use_enable introspection) \
+ $(use_with X x)
+}
+
+DOCS="AUTHORS ChangeLog HACKING NEWS README"
diff --git a/mate-base/mate-panel/metadata.xml b/mate-base/mate-panel/metadata.xml
new file mode 100644
index 000000000000..89e7d8d2f4f3
--- /dev/null
+++ b/mate-base/mate-panel/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>mate</herd>
+ <upstream>
+ <remote-id type="github">mate-desktop/mate-panel</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/mate-base/mate-session-manager/Manifest b/mate-base/mate-session-manager/Manifest
new file mode 100644
index 000000000000..6cf562c9a635
--- /dev/null
+++ b/mate-base/mate-session-manager/Manifest
@@ -0,0 +1 @@
+DIST mate-session-manager-1.8.1.tar.xz 524204 SHA256 2f85a714704bc475d08809be6ecf24a5d94d2e2d0ea5ac704d67557c349d7b8c SHA512 1b09a471db710193a643ec90c9b153468d9a303957b9c4da4e30cf470aa5f582b6992f5e0ed69129943aa44f7c4e372e2a8554fc6020627817a3c49d656ca5b5 WHIRLPOOL 8c771ac713da92c2ae8bccc173a9cba4fc5bb16a943e588c679624e3e945555f2c37511426e666f38440947ec37139452ee230d07bc3a414a65629c04bfd31a6
diff --git a/mate-base/mate-session-manager/files/10-user-dirs-update-mate b/mate-base/mate-session-manager/files/10-user-dirs-update-mate
new file mode 100755
index 000000000000..35973aae2447
--- /dev/null
+++ b/mate-base/mate-session-manager/files/10-user-dirs-update-mate
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+# Create various XDG directories, and write ~/.config/user-dirs.dirs, etc.
+# That file is read by glib to get XDG_PICTURES_DIR, etc
+
+if [ "$DESKTOP_SESSION" = "mate" ]; then
+ if type xdg-user-dirs-update >/dev/null 2>&1; then
+ xdg-user-dirs-update
+ fi
+fi
diff --git a/mate-base/mate-session-manager/files/15-xdg-data-mate b/mate-base/mate-session-manager/files/15-xdg-data-mate
new file mode 100644
index 000000000000..df360cf85fdd
--- /dev/null
+++ b/mate-base/mate-session-manager/files/15-xdg-data-mate
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+if [ "$DESKTOP_SESSION" = "mate" ]; then
+ if [ -z "$XDG_DATA_DIRS" ]; then
+ export XDG_DATA_DIRS=/usr/share/mate:/usr/local/share/:/usr/share/
+ else
+ export XDG_DATA_DIRS=/usr/share/mate:"$XDG_DATA_DIRS"
+ fi
+fi
diff --git a/mate-base/mate-session-manager/files/MATE b/mate-base/mate-session-manager/files/MATE
new file mode 100644
index 000000000000..baa154bdbfd7
--- /dev/null
+++ b/mate-base/mate-session-manager/files/MATE
@@ -0,0 +1,109 @@
+#!/bin/sh
+#
+# This file has bitrotted badly. Someone needs to clean this up.
+#
+
+if [ -f /etc/xdg/menus/mate-applications.menu ] ; then
+ export XDG_MENU_PREFIX=mate-
+fi
+
+for errfile in "$HOME/.materc-errors" "${TMPDIR-/tmp}/materc-$USER/tmp/materc-$USER"
+do
+ if ( cp /dev/null "$errfile" 2> /dev/null )
+ then
+ chmod 600 "$errfile"
+ exec > "$errfile" 2>&1
+ break
+ fi
+done
+#
+# Distributors:
+# You should modify the paths here to fit your distro
+# If you need to do so, send me (jirka@5z.com) a patch
+# and I'll try to make the script detect the distro stuff
+#
+
+userresources=$HOME/.Xresources
+usermodmap=$HOME/.Xmodmap
+userxkbmap=$HOME/.Xkbmap
+
+sysresources=/etc/X11/Xresources
+sysmodmap=/etc/X11/Xmodmap
+sysxkbmap=/etc/X11/Xkbmap
+
+rh6sysresources=/etc/X11/xinit/Xresources
+rh6sysmodmap=/etc/X11/xinit/Xmodmap
+
+if [ -x "$HOME/.materc" ]; then
+ command="$HOME/.materc"
+elif [ -x /etc/X11/gdm/materc ]; then
+ command="/etc/X11/gdm/materc"
+else
+ # as fallback in case the config is screwed
+ command=`which mate-session`
+fi
+
+# merge in defaults
+if [ -f "$rh6sysresources" ]; then
+ xrdb -merge "$rh6sysresources"
+fi
+
+if [ -f "$sysresources" ]; then
+ xrdb -merge "$sysresources"
+fi
+
+if [ -f "$userresources" ]; then
+ xrdb -merge "$userresources"
+fi
+
+# merge in keymaps
+if [ -f "$sysxkbmap" ]; then
+ setxkbmap `cat "$sysxkbmap"`
+ XKB_IN_USE=yes
+fi
+
+if [ -f "$userxkbmap" ]; then
+ setxkbmap `cat "$userxkbmap"`
+ XKB_IN_USE=yes
+fi
+
+#
+# Eeek, this seems like too much magic here
+#
+if [ -z "$XKB_IN_USE" ] && [ ! -L /etc/X11/X ]; then
+ if grep '^exec.*/Xsun' /etc/X11/X > /dev/null 2>&1 && [ -f /etc/X11/XF86Config ]; then
+ xkbsymbols=`sed -n -e 's/^[ ]*XkbSymbols[ ]*"\(.*\)".*$/\1/p' /etc/X11/XF86Config`
+ if [ -n "$xkbsymbols" ]; then
+ setxkbmap -symbols "$xkbsymbols"
+ XKB_IN_USE=yes
+ fi
+ fi
+fi
+
+# xkb and xmodmap don't play nice together
+if [ -z "$XKB_IN_USE" ]; then
+ if [ -f "$rh6sysmodmap" ]; then
+ xmodmap "$rh6sysmodmap"
+ fi
+
+ if [ -f "$sysmodmap" ]; then
+ xmodmap "$sysmodmap"
+ fi
+
+ if [ -f "$usermodmap" ]; then
+ xmodmap "$usermodmap"
+ fi
+fi
+
+unset XKB_IN_USE
+
+# run all system xinitrc shell scripts.
+if [ -d /etc/X11/xinit/xinitrc.d ]; then
+ for i in /etc/X11/xinit/xinitrc.d/* ; do
+ if [ -x "$i" ]; then
+ . "$i"
+ fi
+ done
+fi
+
+exec $command
diff --git a/mate-base/mate-session-manager/files/defaults.list b/mate-base/mate-session-manager/files/defaults.list
new file mode 100644
index 000000000000..0d6d6bf9509a
--- /dev/null
+++ b/mate-base/mate-session-manager/files/defaults.list
@@ -0,0 +1,336 @@
+[Default Applications]
+application/rtf=abiword.desktop
+application/x-abiword=abiword.desktop
+text/abiword=abiword.desktop
+text/richtext=abiword.desktop
+text/rtf=abiword.desktop
+text/x-abiword=abiword.desktop
+text/x-xml-abiword=abiword.desktop
+x-content/blank-bd=brasero-caja.desktop
+x-content/blank-dvd=brasero-caja.desktop
+x-content/blank-cd=brasero-caja.desktop
+x-content/blank-hddvd=brasero-caja.desktop
+application/x-dia-diagram=dia.desktop
+image/bmp=eom.desktop
+image/gif=eom.desktop
+image/jpeg=eom.desktop
+image/jpg=eom.desktop
+image/pjpeg=eom.desktop
+image/png=eom.desktop
+image/svg+xml=eom.desktop
+image/svg+xml-compressed=eom.desktop
+image/x-bmp=eom.desktop
+image/x-gray=eom.desktop
+image/x-icb=eom.desktop
+image/x-ico=eom.desktop
+image/x-pcx=eom.desktop
+image/x-png=eom.desktop
+image/x-portable-anymap=eom.desktop
+image/x-portable-bitmap=eom.desktop
+image/x-portable-graymap=eom.desktop
+image/x-portable-pixmap=eom.desktop
+image/x-xbitmap=eom.desktop
+image/x-xpixmap=eom.desktop
+image/vnd.wap.wbmp=eom.desktop
+image/g3fax=gimp.desktop
+image/x-compressed-xcf=gimp.desktop
+image/x-fits=gimp.desktop
+image/x-icon=gimp.desktop
+image/x-psd=gimp.desktop
+image/x-sgi=gimp.desktop
+image/x-sun-raster=gimp.desktop
+image/x-tga=gimp.desktop
+image/x-xcf=gimp.desktop
+image/x-xwindowdump=gimp.desktop
+application/xhtml+xml=firefox.desktop;firefox-3.6.desktop;epiphany.desktop
+text/html=firefox.desktop;firefox-3.6.desktop;epiphany.desktop
+application/pdf=atril.desktop
+application/x-bzpdf=atril.desktop
+application/x-gzpdf=atril.desktop
+application/postscript=atril.desktop
+application/x-bzpostscript=atril.desktop
+application/x-gzpostscript=atril.desktop
+image/x-eps=atril.desktop
+image/x-bzeps=atril.desktop
+image/x-gzeps=atril.desktop
+application/x-dvi=atril.desktop
+application/x-bzdvi=atril.desktop
+application/x-gzdvi=atril.desktop
+image/vnd.djvu=atril.desktop
+image/tiff=atril.desktop
+application/x-cbr=atril.desktop
+application/x-cbz=atril.desktop
+application/x-cb7=atril.desktop
+application/x-7z-compressed=engrampa.desktop
+application/x-7z-compressed-tar=engrampa.desktop
+application/x-ace=engrampa.desktop
+application/x-alz=engrampa.desktop
+application/x-ar=engrampa.desktop
+application/x-arj=engrampa.desktop
+application/x-bzip=engrampa.desktop
+application/x-bzip-compressed-tar=engrampa.desktop
+application/x-bzip1=engrampa.desktop
+application/x-bzip1-compressed-tar=engrampa.desktop
+application/x-cabinet=engrampa.desktop
+application/x-cd-image=engrampa.desktop
+application/x-compress=engrampa.desktop
+application/x-compressed-tar=engrampa.desktop
+application/x-cpio=engrampa.desktop
+application/x-deb=engrampa.desktop
+application/x-ear=engrampa.desktop
+application/x-gtar=engrampa.desktop
+application/x-gzip=engrampa.desktop
+application/x-java-archive=engrampa.desktop
+application/x-lha=engrampa.desktop
+application/x-lhz=engrampa.desktop
+application/x-lzip=engrampa.desktop
+application/x-lzip-compressed-tar=engrampa.desktop
+application/x-lzma=engrampa.desktop
+application/x-lzma-compressed-tar=engrampa.desktop
+application/x-lzop=engrampa.desktop
+application/x-lzop-compressed-tar=engrampa.desktop
+application/x-rar=engrampa.desktop
+application/x-rar-compressed=engrampa.desktop
+application/x-rpm=engrampa.desktop
+application/x-rzip=engrampa.desktop
+application/x-tar=engrampa.desktop
+application/x-tarz=engrampa.desktop
+application/x-stuffit=engrampa.desktop
+application/x-war=engrampa.desktop
+application/x-xz=engrampa.desktop
+application/x-xz-compressed-tar=engrampa.desktop
+application/x-zip=engrampa.desktop
+application/x-zip-compressed=engrampa.desktop
+application/x-zoo=engrampa.desktop
+application/zip=engrampa.desktop
+multipart/x-zip=engrampa.desktop
+text/plain=pluma.desktop
+text/css=pluma.desktop
+text/javascript=pluma.desktop
+text/mathml=pluma.desktop
+text/x-csrc=pluma.desktop
+text/x-chdr=pluma.desktop
+text/x-dtd=pluma.desktop
+text/x-java=pluma.desktop
+text/x-javascript=pluma.desktop
+text/x-patch=pluma.desktop
+text/x-perl=pluma.destkop
+text/x-php=pluma.destkop
+text/x-python=pluma.destkop
+text/x-sql=pluma.desktop
+text/xml=pluma.desktop
+application/javascript=pluma.destkop
+application/x-cgi=pluma.desktop
+application/x-javascript=pluma.desktop
+application/x-perl=pluma.desktop
+application/x-php=pluma.desktop
+application/x-python=pluma.desktop
+application/xml=pluma.desktop
+application/xml-dtd=pluma.desktop
+application/x-font-ttf=mate-font-viewer.desktop
+application/x-font-pcf=mate-font-viewer.desktop
+application/x-font-type1=mate-font-viewer.desktop
+application/x-font-otf=mate-font-viewer.desktop
+application/csv=gnumeric.desktop
+application/excel=gnumeric.desktop
+application/msexcel=gnumeric.desktop
+application/tab-separated-values=gnumeric.desktop
+application/vnd.lotus-1-2-3=gnumeric.desktop
+application/vnd.ms-excel=gnumeric.desktop
+application/x-123=gnumeric.desktop
+application/x-applix-spreadsheet=gnumeric.desktop
+application/x-dbase=gnumeric.desktop
+application/x-dbf=gnumeric.desktop
+application/x-dos_ms_excel=gnumeric.desktop
+application/x-excel=gnumeric.desktop
+application/x-gnumeric=gnumeric.desktop
+application/x-mps=gnumeric.desktop
+application/x-ms-excel=gnumeric.desktop
+application/x-msexcel=gnumeric.desktop
+application/x-oleo=gnumeric.desktop
+application/x-planperfect=gnumeric.desktop
+application/x-quattropro=gnumeric.desktop
+application/x-sc=gnumeric.desktop
+application/x-sylk=gnumeric.desktop
+application/x-xbase=gnumeric.desktop
+application/x-xls=gnumeric.desktop
+application/xls=gnumeric.desktop
+text/comma-separated-values=gnumeric.desktop
+text/csv=gnumeric.desktop
+text/spreadsheet=gnumeric.desktop
+text/tab-separated-values=gnumeric.desktop
+text/x-comma-separated-values=gnumeric.desktop
+text/x-csv=gnumeric.desktop
+zz-application/zz-winassoc-xls=gnumeric.desktop
+x-content/software=caja-autorun-software.desktop
+x-directory/gnome-default-handler=caja-folder-handler.desktop
+x-directory/normal=caja-folder-handler.desktop
+inode/directory=caja-folder-handler.desktop
+application/x-gnome-saved-search=caja-folder-handler.desktop
+application/vnd.oasis.opendocument.spreadsheet=libreoffice-calc.desktop;openoffice.org-calc.desktop
+application/vnd.oasis.opendocument.spreadsheet-template=libreoffice-calc.desktop;openoffice.org-calc.desktop
+application/vnd.sun.xml.calc=libreoffice-calc.desktop;openoffice.org-calc.desktop
+application/vnd.sun.xml.calc.template=libreoffice-calc.desktop;openoffice.org-calc.desktop
+application/vnd.stardivision.calc=libreoffice-calc.desktop;openoffice.org-calc.desktop
+application/vnd.stardivision.chart=libreoffice-calc.desktop;openoffice.org-calc.desktop
+application/vnd.openxmlformats-officedocument.spreadsheetml.sheet=libreoffice-calc.desktop;openoffice.org-calc.desktop
+application/vnd.ms-excel.sheet.macroenabled.12=libreoffice-calc.desktop;openoffice.org-calc.desktop
+application/vnd.openxmlformats-officedocument.spreadsheetml.template=libreoffice-calc.desktop;openoffice.org-calc.desktop
+application/vnd.ms-excel.template.macroenabled.12=libreoffice-calc.desktop;openoffice.org-calc.desktop
+application/vnd.ms-excel.sheet.binary.macroenabled.12=libreoffice-calc.desktop;openoffice.org-calc.desktop
+application/vnd.oasis.opendocument.graphics=libreoffice-draw.desktop;openoffice.org-draw.desktop
+application/vnd.oasis.opendocument.graphics-template=libreoffice-draw.desktop;openoffice.org-draw.desktop
+application/vnd.sun.xml.draw=libreoffice-draw.desktop;openoffice.org-draw.desktop
+application/vnd.sun.xml.draw.template=libreoffice-draw.desktop;openoffice.org-draw.desktop
+application/vnd.stardivision.draw=libreoffice-draw.desktop;openoffice.org-draw.desktop
+application/vnd.oasis.opendocument.presentation=libreoffice-impress.desktop;openoffice.org-impress.desktop
+application/vnd.oasis.opendocument.presentation-template=libreoffice-impress.desktop;openoffice.org-impress.desktop
+application/vnd.sun.xml.impress=libreoffice-impress.desktop;openoffice.org-impress.desktop
+application/vnd.sun.xml.impress.template=libreoffice-impress.desktop;openoffice.org-impress.desktop
+application/vnd.stardivision.impress=libreoffice-impress.desktop;openoffice.org-impress.desktop
+application/mspowerpoint=libreoffice-impress.desktop;openoffice.org-impress.desktop
+application/vnd.ms-powerpoint=libreoffice-impress.desktop;openoffice.org-impress.desktop
+application/vnd.openxmlformats-officedocument.presentationml.presentation=libreoffice-impress.desktop;openoffice.org-impress.desktop
+application/vnd.ms-powerpoint.presentation.macroenabled.12=libreoffice-impress.desktop;openoffice.org-impress.desktop
+application/vnd.openxmlformats-officedocument.presentationml.template=libreoffice-impress.desktop;openoffice.org-impress.desktop
+application/vnd.ms-powerpoint.template.macroenabled.12=libreoffice-impress.desktop;openoffice.org-impress.desktop
+application/vnd.oasis.opendocument.formula=libreoffice-math.desktop;openoffice.org-math.desktop
+application/vnd.sun.xml.math=libreoffice-math.desktop;openoffice.org-math.desktop
+application/vnd.stardivision.math=libreoffice-math.desktop;openoffice.org-math.desktop
+application/vnd.oasis.opendocument.text=libreoffice-writer.desktop;openoffice.org-writer.desktop
+application/vnd.oasis.opendocument.text-template=libreoffice-writer.desktop;openoffice.org-writer.desktop
+application/vnd.oasis.opendocument.text-web=libreoffice-writer.desktop;openoffice.org-writer.desktop
+application/vnd.oasis.opendocument.text-master=libreoffice-writer.desktop;openoffice.org-writer.desktop
+application/vnd.sun.xml.writer=libreoffice-writer.desktop;openoffice.org-writer.desktop
+application/vnd.sun.xml.writer.template=libreoffice-writer.desktop;openoffice.org-writer.desktop
+application/vnd.sun.xml.writer.global=libreoffice-writer.desktop;openoffice.org-writer.desktop
+application/vnd.stardivision.writer=libreoffice-writer.desktop;openoffice.org-writer.desktop
+application/msword=libreoffice-writer.desktop;openoffice.org-writer.desktop
+application/vnd.ms-word=libreoffice-writer.desktop;openoffice.org-writer.desktop
+application/x-doc=libreoffice-writer.desktop;openoffice.org-writer.desktop
+application/vnd.wordperfect=libreoffice-writer.desktop;openoffice.org-writer.desktop
+application/wordperfect=libreoffice-writer.desktop;openoffice.org-writer.desktop
+application/vnd.openxmlformats-officedocument.wordprocessingml.document=libreoffice-writer.desktop;openoffice.org-writer.desktop
+application/vnd.ms-word.document.macroenabled.12=libreoffice-writer.desktop;openoffice.org-writer.desktop
+application/vnd.openxmlformats-officedocument.wordprocessingml.template=libreoffice-writer.desktop;openoffice.org-writer.desktop
+application/vnd.ms-word.template.macroenabled.12=libreoffice-writer.desktop;openoffice.org-writer.desktop
+x-content/audio-player=rhythmbox.desktop
+x-content/audio-cdda=sound-juicer.desktop
+application/x-shockwave-flash=swfdec-player.desktop
+application/futuresplash=swfdec-player.desktop
+application/mxf=vlc.desktop
+application/ogg=vlc.desktop
+application/ram=vlc.desktop
+application/sdp=vlc.desktop
+application/smil=vlc.desktop
+application/smil+xml=vlc.desktop
+application/vnd.ms-wpl=vlc.desktop
+application/vnd.rn-realmedia=vlc.desktop
+application/x-extension-m4a=vlc.desktop
+application/x-extension-mp4=vlc.desktop
+application/x-flac=vlc.desktop
+application/x-flash-video=vlc.desktop
+application/x-lyx=lyx.desktop
+application/x-matroska=vlc.desktop
+application/x-netshow-channel=vlc.desktop
+application/x-ogg=vlc.desktop
+application/x-quicktime-media-link=vlc.desktop
+application/x-quicktimeplayer=vlc.desktop
+application/x-shorten=vlc.desktop
+application/x-smil=vlc.desktop
+application/xspf+xml=vlc.desktop
+audio/3gpp=vlc.desktop
+audio/ac3=vlc.desktop
+audio/AMR=vlc.desktop
+audio/AMR-WB=vlc.desktop
+audio/basic=vlc.desktop
+audio/midi=vlc.desktop
+audio/mp4=vlc.desktop
+audio/mpeg=vlc.desktop
+audio/mpegurl=vlc.desktop
+audio/ogg=vlc.desktop
+audio/prs.sid=vlc.desktop
+audio/vnd.rn-realaudio=vlc.desktop
+audio/x-ape=vlc.desktop
+audio/x-flac=vlc.desktop
+audio/x-gsm=vlc.desktop
+audio/x-it=vlc.desktop
+audio/x-m4a=vlc.desktop
+audio/x-matroska=vlc.desktop
+audio/x-mod=vlc.desktop
+audio/x-mp3=vlc.desktop
+audio/x-mpeg=vlc.desktop
+audio/x-mpegurl=vlc.desktop
+audio/x-ms-asf=vlc.desktop
+audio/x-ms-asx=vlc.desktop
+audio/x-ms-wax=vlc.desktop
+audio/x-ms-wma=vlc.desktop
+audio/x-musepack=vlc.desktop
+audio/x-pn-aiff=vlc.desktop
+audio/x-pn-au=vlc.desktop
+audio/x-pn-realaudio=vlc.desktop
+audio/x-pn-realaudio-plugin=vlc.desktop
+audio/x-pn-wav=vlc.desktop
+audio/x-pn-windows-acm=vlc.desktop
+audio/x-realaudio=vlc.desktop
+audio/x-real-audio=vlc.desktop
+audio/x-sbc=vlc.desktop
+audio/x-scpls=vlc.desktop
+audio/x-speex=vlc.desktop
+audio/x-tta=vlc.desktop
+audio/x-vorbis=audacious.desktop
+audio/x-vorbis+ogg=audacious.desktop
+audio/x-wav=audacious.desktop
+audio/x-wavpack=audacious.desktop
+audio/x-xm=audacious.desktop
+image/vnd.rn-realpix=vlc.desktop
+image/x-pict=vlc.desktop
+misc/ultravox=vlc.desktop
+text/google-video-pointer=vlc.desktop
+text/x-google-video-pointer=vlc.desktop
+video/3gpp=vlc.desktop
+video/dv=vlc.desktop
+video/fli=vlc.desktop
+video/flv=vlc.desktop
+video/mp2t=vlc.desktop
+video/mp4=vlc.desktop
+video/mp4v-es=vlc.desktop
+video/mpeg=vlc.desktop
+video/msvideo=vlc.desktop
+video/ogg=vlc.desktop
+video/quicktime=vlc.desktop
+video/vivo=vlc.desktop
+video/vnd.divx=vlc.desktop
+video/vnd.rn-realvideo=vlc.desktop
+video/vnd.vivo=vlc.desktop
+video/webm=vlc.desktop
+video/x-anim=vlc.desktop
+video/x-avi=vlc.desktop
+video/x-flc=vlc.desktop
+video/x-fli=vlc.desktop
+video/x-flic=vlc.desktop
+video/x-flv=vlc.desktop
+video/x-m4v=vlc.desktop
+video/x-matroska=vlc.desktop
+video/x-mpeg=vlc.desktop
+video/x-ms-asf=vlc.desktop
+video/x-ms-asx=vlc.desktop
+video/x-msvideo=vlc.desktop
+video/x-ms-wm=vlc.desktop
+video/x-ms-wmv=vlc.desktop
+video/x-ms-wmx=vlc.desktop
+video/x-ms-wvx=vlc.desktop
+video/x-nsv=vlc.desktop
+video/x-ogm+ogg=vlc.desktop
+video/x-theora+ogg=vlc.desktop
+video/x-totem-stream=vlc.desktop
+x-content/video-dvd=vlc.desktop
+x-content/video-vcd=vlc.desktop
+x-content/video-svcd=vlc.desktop
+x-scheme-handler/ghelp=yelp.desktop;
+x-scheme-handler/help=yelp.desktop;
+x-scheme-handler/http=firefox.desktop;epiphany.desktop
+x-scheme-handler/https=firefox.desktop;epiphany.desktop
+x-scheme-handler/mailto=evolution.desktop
+application/x-bittorrent=transmission-gtk.desktop;deluge.desktop
+x-scheme-handler/magnet=transmission-gtk.desktop;deluge.desktop
diff --git a/mate-base/mate-session-manager/files/mate-session-manager-1.2.0-idle-transition.patch b/mate-base/mate-session-manager/files/mate-session-manager-1.2.0-idle-transition.patch
new file mode 100644
index 000000000000..62a229e55be3
--- /dev/null
+++ b/mate-base/mate-session-manager/files/mate-session-manager-1.2.0-idle-transition.patch
@@ -0,0 +1,10 @@
+--- a/mate-session/gs-idle-monitor.c 2012-02-29 22:03:08.000000000 +0100
++++ b/mate-session/gs-idle-monitor.c 2012-08-08 11:49:13.308281663 +0200
+@@ -448,6 +448,7 @@
+ attr.delta = delta;
+ attr.events = TRUE;
+
++ attr.trigger.wait_value = _int64_to_xsyncvalue (_xsyncvalue_to_int64 (watch->interval) - 1);
+ attr.trigger.test_type = XSyncPositiveTransition;
+ if (watch->xalarm_positive != None) {
+ g_debug ("GSIdleMonitor: updating alarm for positive transition wait=%lld",
diff --git a/mate-base/mate-session-manager/files/mate-session-manager-1.5.2-save-session-ui.patch b/mate-base/mate-session-manager/files/mate-session-manager-1.5.2-save-session-ui.patch
new file mode 100644
index 000000000000..8a57d44a9180
--- /dev/null
+++ b/mate-base/mate-session-manager/files/mate-session-manager-1.5.2-save-session-ui.patch
@@ -0,0 +1,535 @@
+diff -burN a/capplet/gsm-properties-dialog.c b/capplet/gsm-properties-dialog.c
+--- a/capplet/gsm-properties-dialog.c 2012-02-29 22:03:08.000000000 +0100
++++ b/capplet/gsm-properties-dialog.c 2012-08-08 12:16:37.527332034 +0200
+@@ -26,6 +26,8 @@
+ #include <glib.h>
+ #include <glib/gi18n.h>
+ #include <gtk/gtk.h>
++#include <dbus/dbus-glib.h>
++#include <dbus/dbus-glib-lowlevel.h>
+
+ #include <mateconf/mateconf-client.h>
+
+@@ -36,6 +38,11 @@
+ #include "gsp-app.h"
+ #include "gsp-app-manager.h"
+
++
++#define GSM_SERVICE_DBUS "org.mate.SessionManager"
++#define GSM_PATH_DBUS "/org/mate/SessionManager"
++#define GSM_INTERFACE_DBUS "org.mate.SessionManager"
++
+ #define GSM_PROPERTIES_DIALOG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSM_TYPE_PROPERTIES_DIALOG, GsmPropertiesDialogPrivate))
+
+ #define IS_STRING_EMPTY(x) ((x)==NULL||(x)[0]=='\0')
+@@ -50,6 +57,7 @@
+ #define CAPPLET_DELETE_WIDGET_NAME "session_properties_delete_button"
+ #define CAPPLET_EDIT_WIDGET_NAME "session_properties_edit_button"
+ #define CAPPLET_SAVE_WIDGET_NAME "session_properties_save_button"
++#define CAPPLET_SESSION_SAVED_WIDGET_NAME "session_properties_session_saved_label"
+ #define CAPPLET_REMEMBER_WIDGET_NAME "session_properties_remember_toggle"
+
+ #define STARTUP_APP_ICON "system-run"
+@@ -493,10 +501,66 @@
+ }
+
+ static void
++session_saved_message (GsmPropertiesDialog *dialog,
++ const char *msg,
++ gboolean is_error)
++{
++ GtkLabel *label;
++ gchar *markup;
++
++ label = GTK_LABEL (gtk_builder_get_object (dialog->priv->xml, CAPPLET_SESSION_SAVED_WIDGET_NAME));
++ if (is_error)
++ markup = g_markup_printf_escaped ("<span foreground=\"red\">%s</span>", msg);
++ else
++ markup = g_markup_escape_text (msg, -1);
++
++ gtk_label_set_markup (label, markup);
++ g_free (markup);
++}
++
++static void
++session_saved_cb (DBusGProxy *proxy,
++ DBusGProxyCall *call_id,
++ void *user_data)
++{
++ gboolean res;
++ GsmPropertiesDialog *dialog = user_data;
++
++ res = dbus_g_proxy_end_call (proxy, call_id, NULL, G_TYPE_INVALID);
++ if (res)
++ session_saved_message (dialog, _("Your session has been saved."), FALSE);
++ else
++ session_saved_message (dialog, _("Failed to save session"), TRUE);
++
++ g_object_unref (proxy);
++}
++
++static void
+ on_save_session_clicked (GtkWidget *widget,
+ GsmPropertiesDialog *dialog)
+ {
+- g_debug ("Session saving is not implemented yet!");
++ DBusGConnection *conn;
++ DBusGProxy *proxy;
++ DBusGProxyCall *call;
++
++ conn = dbus_g_bus_get (DBUS_BUS_SESSION, NULL);
++ if (conn == NULL) {
++ session_saved_message (dialog, _("Could not connect to the session bus"), TRUE);
++ return;
++ }
++
++ proxy = dbus_g_proxy_new_for_name (conn, GSM_SERVICE_DBUS, GSM_PATH_DBUS, GSM_INTERFACE_DBUS);
++ if (proxy == NULL) {
++ session_saved_message (dialog, _("Could not connect to the session manager"), TRUE);
++ return;
++ }
++
++ call = dbus_g_proxy_begin_call (proxy, "SaveSession", session_saved_cb, dialog, NULL, G_TYPE_INVALID);
++ if (call == NULL) {
++ session_saved_message (dialog, _("Failed to save session"), TRUE);
++ g_object_unref (proxy);
++ return;
++ }
+ }
+
+ static void
+diff -burN a/configure.ac b/configure.ac
+--- a/configure.ac 2012-02-29 22:03:09.000000000 +0100
++++ b/configure.ac 2012-08-08 12:18:58.740336360 +0200
+@@ -75,6 +75,7 @@
+ PKG_CHECK_MODULES(SESSION_PROPERTIES,
+ glib-2.0 >= $GLIB_REQUIRED
+ gtk+-$GTK_API_VERSION >= $GTK_REQUIRED
++ dbus-glib-1 >= $DBUS_GLIB_REQUIRED
+ )
+
+ PKG_CHECK_MODULES(SM, sm)
+diff -burN a/data/session-properties.ui b/data/session-properties.ui
+--- a/data/session-properties.ui 2012-02-29 22:03:08.000000000 +0100
++++ b/data/session-properties.ui 2012-08-08 12:22:36.619343035 +0200
+@@ -148,6 +148,7 @@
+ <property name="visible">True</property>
+ <child>
+ <object class="GtkButton" id="session_properties_save_button">
++ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <child>
+@@ -191,6 +192,17 @@
+ <property name="position">1</property>
+ </packing>
+ </child>
++ <child>
++ <object class="GtkLabel" id="session_properties_session_saved_label">
++ <property name="visible">True</property>
++ <property name="wrap">True</property>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ <property name="position">2</property>
++ </packing>
++ </child>
+ </object>
+ <packing>
+ <property name="position">1</property>
+diff -burN a/mate-session/gsm-client.c b/mate-session/gsm-client.c
+--- a/mate-session/gsm-client.c 2012-02-29 22:03:08.000000000 +0100
++++ b/mate-session/gsm-client.c 2012-08-08 12:24:20.120346205 +0200
+@@ -510,6 +510,17 @@
+ g_signal_emit (client, signals[DISCONNECTED], 0);
+ }
+
++gboolean
++gsm_client_request_save (GsmClient *client,
++ guint flags,
++ GError **error)
++{
++ g_return_val_if_fail (GSM_IS_CLIENT (client), FALSE);
++
++ return GSM_CLIENT_GET_CLASS (client)->impl_request_save (client, flags, error);
++}
++
++
+ GKeyFile *
+ gsm_client_save (GsmClient *client,
+ GError **error)
+diff -burN a/mate-session/gsm-client.h b/mate-session/gsm-client.h
+--- a/mate-session/gsm-client.h 2012-02-29 22:03:09.000000000 +0100
++++ b/mate-session/gsm-client.h 2012-08-08 12:26:38.848350455 +0200
+@@ -94,6 +94,9 @@
+ GError **error);
+ gboolean (*impl_stop) (GsmClient *client,
+ GError **error);
++ gboolean (*impl_request_save) (GsmClient *client,
++ guint flags,
++ GError **error);
+ GKeyFile * (*impl_save) (GsmClient *client,
+ GError **error);
+ };
+@@ -139,6 +142,10 @@
+
+ void gsm_client_disconnected (GsmClient *client);
+
++gboolean gsm_client_request_save (GsmClient *client,
++ guint flags,
++ GError **error);
++
+ GKeyFile *gsm_client_save (GsmClient *client,
+ GError **error);
+ /* exported to bus */
+diff -burN a/mate-session/gsm-dbus-client.c b/mate-session/gsm-dbus-client.c
+--- a/mate-session/gsm-dbus-client.c 2012-02-29 22:03:08.000000000 +0100
++++ b/mate-session/gsm-dbus-client.c 2012-08-08 12:38:15.393371794 +0200
+@@ -413,6 +413,19 @@
+ G_OBJECT_CLASS (gsm_dbus_client_parent_class)->finalize (object);
+ }
+
++static gboolean
++dbus_client_request_save (GsmClient *client,
++ guint flags,
++ GError **error)
++{
++ g_debug ("GsmDBusClient: sending save request to client with id %s",
++ gsm_client_peek_id (client));
++
++ /* FIXME: The protocol does not support this */
++
++ return FALSE;
++}
++
+ static GKeyFile *
+ dbus_client_save (GsmClient *client,
+ GError **error)
+@@ -665,6 +678,7 @@
+ object_class->set_property = gsm_dbus_client_set_property;
+ object_class->dispose = gsm_dbus_client_dispose;
+
++ client_class->impl_request_save = dbus_client_request_save;
+ client_class->impl_save = dbus_client_save;
+ client_class->impl_stop = dbus_client_stop;
+ client_class->impl_query_end_session = dbus_client_query_end_session;
+diff -burN a/mate-session/gsm-manager.c b/mate-session/gsm-manager.c
+--- a/mate-session/gsm-manager.c 2012-02-29 22:03:09.000000000 +0100
++++ b/mate-session/gsm-manager.c 2012-08-08 12:47:24.627388620 +0200
+@@ -68,6 +68,7 @@
+ #define GSM_MANAGER_DBUS_NAME "org.mate.SessionManager"
+
+ #define GSM_MANAGER_PHASE_TIMEOUT 30 /* seconds */
++#define GSM_MANAGER_SAVE_SESSION_TIMEOUT 2
+
+ #define MDM_FLEXISERVER_COMMAND "mdmflexiserver"
+ #define MDM_FLEXISERVER_ARGS "--startnew Standard"
+@@ -1176,6 +1177,69 @@
+
+ }
+
++static gboolean
++_client_request_save (GsmClient *client,
++ ClientEndSessionData *data)
++{
++ gboolean ret;
++ GError *error;
++
++ error = NULL;
++ ret = gsm_client_request_save (client, data->flags, &error);
++ if (ret) {
++ g_debug ("GsmManager: adding client to query clients: %s", gsm_client_peek_id (client));
++ data->manager->priv->query_clients = g_slist_prepend (data->manager->priv->query_clients,
++ client);
++ } else if (error) {
++ g_debug ("GsmManager: unable to query client: %s", error->message);
++ g_error_free (error);
++ }
++
++ return FALSE;
++}
++
++static gboolean
++_client_request_save_helper (const char *id,
++ GsmClient *client,
++ ClientEndSessionData *data)
++{
++ return _client_request_save (client, data);
++}
++
++static void
++query_save_session_complete (GsmManager *manager)
++{
++ GError *error = NULL;
++
++ if (g_slist_length (manager->priv->next_query_clients) > 0) {
++ ClientEndSessionData data;
++
++ data.manager = manager;
++ data.flags = GSM_CLIENT_END_SESSION_FLAG_LAST;
++
++ g_slist_foreach (manager->priv->next_query_clients,
++ (GFunc)_client_request_save,
++ &data);
++
++ g_slist_free (manager->priv->next_query_clients);
++ manager->priv->next_query_clients = NULL;
++
++ return;
++ }
++
++ if (manager->priv->query_timeout_id > 0) {
++ g_source_remove (manager->priv->query_timeout_id);
++ manager->priv->query_timeout_id = 0;
++ }
++
++ gsm_session_save (manager->priv->clients, &error);
++
++ if (error) {
++ g_warning ("Error saving session: %s", error->message);
++ g_error_free (error);
++ }
++}
++
+ static guint32
+ generate_cookie (void)
+ {
+@@ -1250,6 +1314,21 @@
+ return FALSE;
+ }
+
++static gboolean
++_on_query_save_session_timeout (GsmManager *manager)
++{
++ manager->priv->query_timeout_id = 0;
++
++ g_debug ("GsmManager: query to save session timed out");
++
++ g_slist_free (manager->priv->query_clients);
++ manager->priv->query_clients = NULL;
++
++ query_save_session_complete (manager);
++
++ return FALSE;
++}
++
+ static void
+ do_phase_query_end_session (GsmManager *manager)
+ {
+@@ -1886,13 +1965,32 @@
+ const char *reason,
+ GsmManager *manager)
+ {
+- /* just ignore if received outside of shutdown */
+- if (manager->priv->phase < GSM_MANAGER_PHASE_QUERY_END_SESSION) {
++ /* just ignore if we are not yet running */
++ if (manager->priv->phase < GSM_MANAGER_PHASE_RUNNING) {
+ return;
+ }
+
+ g_debug ("GsmManager: Response from end session request: is-ok=%d do-last=%d cancel=%d reason=%s", is_ok, do_last, cancel, reason ? reason :"");
+
++ if (manager->priv->phase == GSM_MANAGER_PHASE_RUNNING) {
++ /* Ignore responses when no requests were sent */
++ if (manager->priv->query_clients == NULL) {
++ return;
++ }
++
++ manager->priv->query_clients = g_slist_remove (manager->priv->query_clients, client);
++
++ if (do_last) {
++ manager->priv->next_query_clients = g_slist_prepend (manager->priv->next_query_clients,
++ client);
++ }
++
++ if (manager->priv->query_clients == NULL) {
++ query_save_session_complete (manager);
++ }
++ return;
++ }
++
+ if (cancel) {
+ cancel_end_session (manager);
+ return;
+@@ -1991,6 +2089,15 @@
+ }
+
+ static void
++on_xsmp_client_save_request (GsmXSMPClient *client,
++ gboolean show_dialog,
++ GsmManager *manager)
++{
++ g_debug ("GsmManager: save_request");
++ gsm_manager_save_session (manager, NULL);
++}
++
++static void
+ on_store_client_added (GsmStore *store,
+ const char *id,
+ GsmManager *manager)
+@@ -2011,6 +2118,10 @@
+ "logout-request",
+ G_CALLBACK (on_xsmp_client_logout_request),
+ manager);
++ g_signal_connect (client,
++ "save-request",
++ G_CALLBACK (on_xsmp_client_save_request),
++ manager);
+ }
+
+ g_signal_connect (client,
+@@ -2968,6 +3079,41 @@
+ }
+
+ gboolean
++gsm_manager_save_session (GsmManager *manager,
++ GError **error)
++{
++ ClientEndSessionData data;
++
++ g_debug ("GsmManager: SaveSession called");
++
++ g_return_val_if_fail (GSM_IS_MANAGER (manager), FALSE);
++
++ if (manager->priv->phase != GSM_MANAGER_PHASE_RUNNING) {
++ g_set_error (error,
++ GSM_MANAGER_ERROR,
++ GSM_MANAGER_ERROR_NOT_IN_RUNNING,
++ "SaveSession interface is only available during the Running phase");
++ return FALSE;
++ }
++
++ data.manager = manager;
++ data.flags = 0;
++ gsm_store_foreach (manager->priv->clients,
++ (GsmStoreFunc)_client_request_save_helper,
++ &data);
++
++ if (manager->priv->query_clients) {
++ manager->priv->query_timeout_id = g_timeout_add_seconds (GSM_MANAGER_SAVE_SESSION_TIMEOUT,
++ (GSourceFunc)_on_query_save_session_timeout,
++ manager);
++ return TRUE;
++ } else {
++ g_debug ("GsmManager: Nothing to save");
++ return FALSE;
++ }
++}
++
++gboolean
+ gsm_manager_can_shutdown (GsmManager *manager,
+ gboolean *shutdown_available,
+ GError **error)
+diff -burN a/mate-session/gsm-manager.h b/mate-session/gsm-manager.h
+--- a/mate-session/gsm-manager.h 2012-02-29 22:03:09.000000000 +0100
++++ b/mate-session/gsm-manager.h 2012-08-08 12:49:14.262391979 +0200
+@@ -154,6 +154,9 @@
+ gboolean gsm_manager_shutdown (GsmManager *manager,
+ GError **error);
+
++gboolean gsm_manager_save_session (GsmManager *manager,
++ GError **error);
++
+ gboolean gsm_manager_can_shutdown (GsmManager *manager,
+ gboolean *shutdown_available,
+ GError **error);
+diff -burN a/mate-session/gsm-xsmp-client.c b/mate-session/gsm-xsmp-client.c
+--- a/mate-session/gsm-xsmp-client.c 2012-02-29 22:03:08.000000000 +0100
++++ b/mate-session/gsm-xsmp-client.c 2012-08-08 12:52:27.719397905 +0200
+@@ -69,6 +69,7 @@
+ enum {
+ REGISTER_REQUEST,
+ LOGOUT_REQUEST,
++ SAVE_REQUEST,
+ LAST_SIGNAL
+ };
+
+@@ -502,6 +503,31 @@
+ return TRUE;
+ }
+
++static gboolean
++xsmp_request_save (GsmClient *client,
++ guint flags,
++ GError **error)
++{
++ GsmXSMPClient *xsmp = (GsmXSMPClient *) client;
++
++ g_debug ("GsmXSMPClient: xsmp_request_save ('%s')", xsmp->priv->description);
++
++ if (xsmp->priv->conn == NULL) {
++ g_set_error (error,
++ GSM_CLIENT_ERROR,
++ GSM_CLIENT_ERROR_NOT_REGISTERED,
++ "Client is not registered");
++ return FALSE;
++ }
++
++ if (flags & GSM_CLIENT_END_SESSION_FLAG_LAST)
++ xsmp_save_yourself_phase2 (client);
++ else
++ do_save_yourself (xsmp, SmSaveLocal, FALSE);
++
++ return TRUE;
++}
++
+ static char *
+ get_desktop_file_path (GsmXSMPClient *client)
+ {
+@@ -976,6 +1002,8 @@
+ object_class->get_property = gsm_xsmp_client_get_property;
+ object_class->set_property = gsm_xsmp_client_set_property;
+
++
++ client_class->impl_request_save = xsmp_request_save;
+ client_class->impl_save = xsmp_save;
+ client_class->impl_stop = xsmp_stop;
+ client_class->impl_query_end_session = xsmp_query_end_session;
+@@ -1003,6 +1031,16 @@
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__BOOLEAN,
++ G_TYPE_NONE,
++ 1, G_TYPE_BOOLEAN);
++ signals[SAVE_REQUEST] =
++ g_signal_new ("save-request",
++ G_OBJECT_CLASS_TYPE (object_class),
++ G_SIGNAL_RUN_LAST,
++ G_STRUCT_OFFSET (GsmXSMPClientClass, save_request),
++ NULL,
++ NULL,
++ g_cclosure_marshal_VOID__BOOLEAN,
+ G_TYPE_NONE,
+ 1, G_TYPE_BOOLEAN);
+
+diff -burN a/mate-session/gsm-xsmp-client.h b/mate-session/gsm-xsmp-client.h
+--- a/mate-session/gsm-xsmp-client.h 2012-02-29 22:03:09.000000000 +0100
++++ b/mate-session/gsm-xsmp-client.h 2012-08-08 12:53:39.629400108 +0200
+@@ -57,6 +57,8 @@
+ gboolean (*logout_request) (GsmXSMPClient *client,
+ gboolean prompt);
+
++ gboolean (*save_request) (GsmXSMPClient *client,
++ gboolean prompt);
+
+ void (*saved_state) (GsmXSMPClient *client);
+
+diff -burN a/mate-session/org.mate.SessionManager.xml b/mate-session/org.mate.SessionManager.xml
+--- a/mate-session/org.mate.SessionManager.xml 2012-02-29 22:03:09.000000000 +0100
++++ b/mate-session/org.mate.SessionManager.xml 2012-08-08 12:57:41.216407509 +0200
+@@ -256,6 +256,14 @@
+ </doc:doc>
+ </method>
+
++ <method name="SaveSession">
++ <doc:doc>
++ <doc:description>
++ <doc:para>Request to save session</doc:para>
++ </doc:description>
++ </doc:doc>
++ </method>
++
+ <method name="CanShutdown">
+ <arg name="is_available" direction="out" type="b">
+ <doc:doc>
diff --git a/mate-base/mate-session-manager/files/mate-session-manager-1.6-gnome-keyring.patch b/mate-base/mate-session-manager/files/mate-session-manager-1.6-gnome-keyring.patch
new file mode 100644
index 000000000000..28bb80e0347d
--- /dev/null
+++ b/mate-base/mate-session-manager/files/mate-session-manager-1.6-gnome-keyring.patch
@@ -0,0 +1,328 @@
+diff --git a/mate-session/Makefile.am b/mate-session/Makefile.am
+index f37a0e2..2c73d63 100644
+--- a/mate-session/Makefile.am
++++ b/mate-session/Makefile.am
+@@ -42,6 +42,8 @@ mate_session_SOURCES = \
+ mdm-signal-handler.c \
+ mdm-log.h \
+ mdm-log.c \
++ msm-gnome.c \
++ msm-gnome.h \
+ main.c \
+ gsm-store.h \
+ gsm-store.c \
+diff --git a/mate-session/main.c b/mate-session/main.c
+index 6cfbbe6..f6bee9a 100644
+--- a/mate-session/main.c
++++ b/mate-session/main.c
+@@ -51,6 +51,8 @@
+ #include "gsm-xsmp-server.h"
+ #include "gsm-store.h"
+
++#include "msm-gnome.h"
++
+ #define GSM_SCHEMA "org.mate.session"
+ #define GSM_DEFAULT_SESSION_KEY "default-session"
+ #define GSM_REQUIRED_COMPONENTS_SCHEMA GSM_SCHEMA ".required-components"
+@@ -542,6 +544,9 @@ int main(int argc, char** argv)
+ */
+ acquire_name();
+
++ /* Starts gnome compat mode */
++ msm_compat_gnome_startup ();
++
+ manager = gsm_manager_new(client_store, failsafe);
+
+ signal_handler = mdm_signal_handler_new();
+@@ -583,6 +588,7 @@ int main(int argc, char** argv)
+ g_object_unref(client_store);
+ }
+
++ msm_compat_gnome_shutdown();
+ mdm_log_shutdown();
+
+ return 0;
+diff --git a/mate-session/msm-gnome.c b/mate-session/msm-gnome.c
+new file mode 100644
+index 0000000..5c7d8dc
+--- /dev/null
++++ b/mate-session/msm-gnome.c
+@@ -0,0 +1,242 @@
++/*
++ * Copyright (c) 2004-2005 Benedikt Meurer <benny@xfce.org>
++ * 2013 Stefano Karapetsas <stefano@karapetsas.com>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2, or (at your option)
++ * any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
++ * MA 02110-1301 USA.
++ *
++ * Most parts of this file where taken from xfce4-session and
++ * gnome-session.
++ */
++
++#include "config.h"
++
++#include <sys/types.h>
++#include <sys/wait.h>
++#include <signal.h>
++#include <stdlib.h>
++#include <string.h>
++#include <unistd.h>
++#include <fcntl.h>
++#include <errno.h>
++
++#include <X11/Xatom.h>
++#include <X11/Xlib.h>
++
++#include <gdk/gdkx.h>
++
++#include "msm-gnome.h"
++
++#define GNOME_KEYRING_DAEMON "gnome-keyring-daemon"
++
++
++static gboolean gnome_compat_started = FALSE;
++static int keyring_lifetime_pipe[2];
++static pid_t gnome_keyring_daemon_pid = 0;
++static Window gnome_smproxy_window = None;
++
++static void
++child_setup (gpointer user_data)
++{
++ gint open_max;
++ gint fd;
++ char *fd_str;
++
++ open_max = sysconf (_SC_OPEN_MAX);
++ for (fd = 3; fd < open_max; fd++)
++ {
++ if (fd != keyring_lifetime_pipe[0])
++ fcntl (fd, F_SETFD, FD_CLOEXEC);
++ }
++
++ fd_str = g_strdup_printf ("%d", keyring_lifetime_pipe[0]);
++ g_setenv ("GNOME_KEYRING_LIFETIME_FD", fd_str, TRUE);
++ g_free (fd_str);
++}
++
++
++static void
++gnome_keyring_daemon_startup (void)
++{
++ GError *error = NULL;
++ gchar *sout;
++ gchar **lines;
++ gsize lineno;
++ gint status;
++ glong pid;
++ gchar *end;
++ gchar *argv[3];
++ gchar *p;
++ gchar *name;
++ const gchar *value;
++
++ /* Pipe to slave keyring lifetime to */
++ if (pipe (keyring_lifetime_pipe))
++ {
++ g_warning ("Failed to set up pipe for gnome-keyring: %s", strerror (errno));
++ return;
++ }
++
++ error = NULL;
++ argv[0] = GNOME_KEYRING_DAEMON;
++ argv[1] = "--start";
++ argv[2] = NULL;
++ g_spawn_sync (NULL, argv, NULL,
++ G_SPAWN_SEARCH_PATH | G_SPAWN_LEAVE_DESCRIPTORS_OPEN,
++ child_setup, NULL,
++ &sout, NULL, &status, &error);
++
++ close (keyring_lifetime_pipe[0]);
++ /* We leave keyring_lifetime_pipe[1] open for the lifetime of the session,
++ in order to slave the keyring daemon lifecycle to the session. */
++
++ if (error != NULL)
++ {
++ g_printerr ("Failed to run gnome-keyring-daemon: %s\n",
++ error->message);
++ g_error_free (error);
++ }
++ else
++ {
++ if (WIFEXITED (status) && WEXITSTATUS (status) == 0 && sout != NULL)
++ {
++ lines = g_strsplit (sout, "\n", 0);
++
++ for (lineno = 0; lines[lineno] != NULL; lineno++)
++ {
++ p = strchr (lines[lineno], '=');
++ if (p == NULL)
++ continue;
++
++ name = g_strndup (lines[lineno], p - lines[lineno]);
++ value = p + 1;
++
++ g_setenv (name, value, TRUE);
++
++ if (g_strcmp0 (name, "GNOME_KEYRING_PID") == 0)
++ {
++ pid = strtol (value, &end, 10);
++ if (end != value)
++ gnome_keyring_daemon_pid = pid;
++ }
++
++ g_free (name);
++ }
++
++ g_strfreev (lines);
++ }
++ else
++ {
++ /* daemon failed for some reason */
++ g_printerr ("gnome-keyring-daemon failed to start correctly, "
++ "exit code: %d\n", WEXITSTATUS (status));
++ }
++
++ g_free (sout);
++ }
++}
++
++static void
++gnome_keyring_daemon_shutdown (void)
++{
++ if (gnome_keyring_daemon_pid != 0)
++ {
++ kill (gnome_keyring_daemon_pid, SIGTERM);
++ gnome_keyring_daemon_pid = 0;
++ }
++}
++
++
++
++static void
++msm_compat_gnome_smproxy_startup (void)
++{
++ Atom gnome_sm_proxy;
++ Display *dpy;
++ Window root;
++
++ gdk_error_trap_push ();
++
++ /* Set GNOME_SM_PROXY property, since some apps (like OOo) seem to require
++ * it to behave properly. Thanks to Jasper/Francois for reporting this.
++ * This has another advantage, since it prevents people from running
++ * gnome-smproxy in xfce4, which would cause trouble otherwise.
++ */
++ dpy = gdk_display;
++ root = RootWindow (dpy, 0);
++
++ if (gnome_smproxy_window != None)
++ XDestroyWindow (dpy, gnome_smproxy_window);
++
++ gnome_sm_proxy = XInternAtom (dpy, "GNOME_SM_PROXY", False);
++ gnome_smproxy_window = XCreateSimpleWindow (dpy, root, 1, 1, 1, 1, 0, 0, 0);
++
++ XChangeProperty (dpy, gnome_smproxy_window, gnome_sm_proxy,
++ XA_CARDINAL, 32, PropModeReplace,
++ (unsigned char *) (void *) &gnome_smproxy_window, 1);
++ XChangeProperty (dpy, root, gnome_sm_proxy,
++ XA_CARDINAL, 32, PropModeReplace,
++ (unsigned char *) (void *) &gnome_smproxy_window, 1);
++
++ XSync (dpy, False);
++
++ gdk_error_trap_pop ();
++}
++
++
++static void
++msm_compat_gnome_smproxy_shutdown (void)
++{
++ gdk_error_trap_push ();
++
++ if (gnome_smproxy_window != None)
++ {
++ XDestroyWindow (gdk_display, gnome_smproxy_window);
++ XSync (gdk_display, False);
++ gnome_smproxy_window = None;
++ }
++
++ gdk_error_trap_pop ();
++}
++
++
++void
++msm_compat_gnome_startup (void)
++{
++ if (G_UNLIKELY (gnome_compat_started))
++ return;
++
++ msm_compat_gnome_smproxy_startup ();
++
++ gnome_keyring_daemon_startup ();
++
++ gnome_compat_started = TRUE;
++}
++
++
++void
++msm_compat_gnome_shutdown (void)
++{
++ if (G_UNLIKELY (!gnome_compat_started))
++ return;
++
++ /* shutdown the keyring daemon */
++ gnome_keyring_daemon_shutdown ();
++
++ msm_compat_gnome_smproxy_shutdown ();
++
++ gnome_compat_started = FALSE;
++}
++
+diff --git a/mate-session/msm-gnome.h b/mate-session/msm-gnome.h
+new file mode 100644
+index 0000000..2f15909
+--- /dev/null
++++ b/mate-session/msm-gnome.h
+@@ -0,0 +1,30 @@
++/*
++ * Copyright (c) 2004 Benedikt Meurer <benny@xfce.org>
++ * 2013 Stefano Karapetsas <stefano@karapetsas.com>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2, or (at your option)
++ * any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
++ * MA 02110-1301 USA.
++ *
++ * Most parts of this file where taken from xfce4-session and
++ * gnome-session.
++ */
++
++#ifndef __MSM_GNOME_H__
++#define __MSM_GNOME_H__
++
++void msm_compat_gnome_startup (void);
++void msm_compat_gnome_shutdown (void);
++
++#endif /* !__MSM_GNOME_H__ */
diff --git a/mate-base/mate-session-manager/files/mate-session-manager-1.6.1-login1.patch b/mate-base/mate-session-manager/files/mate-session-manager-1.6.1-login1.patch
new file mode 100644
index 000000000000..009677b1cc44
--- /dev/null
+++ b/mate-base/mate-session-manager/files/mate-session-manager-1.6.1-login1.patch
@@ -0,0 +1,267 @@
+diff -up mate-session-manager-1.6.1/mate-session/gsm-logout-dialog.c.login1 mate-session-manager-1.6.1/mate-session/gsm-logout-dialog.c
+--- mate-session-manager-1.6.1/mate-session/gsm-logout-dialog.c.login1 2013-07-25 10:35:06.000000000 -0500
++++ mate-session-manager-1.6.1/mate-session/gsm-logout-dialog.c 2013-09-10 08:25:55.450880450 -0500
+@@ -200,13 +200,29 @@ gsm_logout_dialog_destroy (GsmLogoutDial
+ static gboolean
+ gsm_logout_supports_system_suspend (GsmLogoutDialog *logout_dialog)
+ {
+- return up_client_get_can_suspend (logout_dialog->priv->up_client);
++ gboolean ret;
++#ifdef HAVE_SYSTEMD
++ if (LOGIND_RUNNING())
++ ret = gsm_systemd_can_suspend (logout_dialog->priv->systemd);
++ else
++#endif
++ ret = up_client_get_can_suspend (logout_dialog->priv->up_client);
++
++ return ret;
+ }
+
+ static gboolean
+ gsm_logout_supports_system_hibernate (GsmLogoutDialog *logout_dialog)
+ {
+- return up_client_get_can_hibernate (logout_dialog->priv->up_client);
++ gboolean ret;
++#ifdef HAVE_SYSTEMD
++ if (LOGIND_RUNNING())
++ ret = gsm_systemd_can_hibernate (logout_dialog->priv->systemd);
++ else
++#endif
++ ret = up_client_get_can_hibernate (logout_dialog->priv->up_client);
++
++ return ret;
+ }
+
+ static gboolean
+diff -up mate-session-manager-1.6.1/mate-session/gsm-manager.c.login1 mate-session-manager-1.6.1/mate-session/gsm-manager.c
+--- mate-session-manager-1.6.1/mate-session/gsm-manager.c.login1 2013-07-25 10:35:06.000000000 -0500
++++ mate-session-manager-1.6.1/mate-session/gsm-manager.c 2013-09-10 08:39:41.199847380 -0500
+@@ -1101,6 +1101,20 @@ manager_attempt_hibernate (GsmManager *m
+ GError *error;
+ gboolean ret;
+
++#ifdef HAVE_SYSTEMD
++ if (LOGIND_RUNNING()) {
++
++ GsmSystemd *systemd;
++
++ systemd = gsm_get_systemd ();
++
++ /* lock the screen before we suspend */
++ manager_perhaps_lock (manager);
++
++ gsm_systemd_attempt_hibernate (systemd);
++ }
++ else {
++#endif
+ can_hibernate = up_client_get_can_hibernate (manager->priv->up_client);
+ if (can_hibernate) {
+
+@@ -1115,6 +1129,9 @@ manager_attempt_hibernate (GsmManager *m
+ g_error_free (error);
+ }
+ }
++#ifdef HAVE_SYSTEMD
++ }
++#endif
+ }
+
+ static void
+@@ -1124,6 +1141,20 @@ manager_attempt_suspend (GsmManager *man
+ GError *error;
+ gboolean ret;
+
++#ifdef HAVE_SYSTEMD
++ if (LOGIND_RUNNING()) {
++
++ GsmSystemd *systemd;
++
++ systemd = gsm_get_systemd ();
++
++ /* lock the screen before we suspend */
++ manager_perhaps_lock (manager);
++
++ gsm_systemd_attempt_suspend (systemd);
++ }
++ else {
++#endif
+ can_suspend = up_client_get_can_suspend (manager->priv->up_client);
+ if (can_suspend) {
+
+@@ -1138,6 +1169,9 @@ manager_attempt_suspend (GsmManager *man
+ g_error_free (error);
+ }
+ }
++#ifdef HAVE_SYSTEMD
++ }
++#endif
+ }
+
+ static void
+diff -up mate-session-manager-1.6.1/mate-session/gsm-systemd.c.login1 mate-session-manager-1.6.1/mate-session/gsm-systemd.c
+--- mate-session-manager-1.6.1/mate-session/gsm-systemd.c.login1 2013-07-25 10:35:06.000000000 -0500
++++ mate-session-manager-1.6.1/mate-session/gsm-systemd.c 2013-09-10 08:51:06.174857597 -0500
+@@ -725,6 +725,141 @@ gsm_systemd_can_stop (GsmSystemd *manage
+ return can_stop;
+ }
+
++gboolean
++gsm_systemd_can_hibernate (GsmSystemd *manager)
++{
++ gboolean res;
++ gchar *value;
++ gboolean can_hibernate;
++ GError *error;
++
++ error = NULL;
++
++ if (!gsm_systemd_ensure_sd_connection (manager, &error)) {
++ g_warning ("Could not connect to Systemd: %s",
++ error->message);
++ g_error_free (error);
++ return FALSE;
++ }
++
++ res = dbus_g_proxy_call_with_timeout (manager->priv->sd_proxy,
++ "CanHibernate",
++ INT_MAX,
++ &error,
++ G_TYPE_INVALID,
++ G_TYPE_STRING, &value,
++ G_TYPE_INVALID);
++ if (res == FALSE) {
++ g_warning ("Could not make DBUS call: %s",
++ error->message);
++ g_error_free (error);
++ return FALSE;
++ }
++
++ can_hibernate = g_strcmp0 (value, "yes") == 0 ||
++ g_strcmp0 (value, "challenge") == 0;
++ g_free (value);
++ return can_hibernate;
++}
++
++gboolean
++gsm_systemd_can_suspend (GsmSystemd *manager)
++{
++ gboolean res;
++ gchar *value;
++ gboolean can_suspend;
++ GError *error;
++
++ error = NULL;
++
++ if (!gsm_systemd_ensure_sd_connection (manager, &error)) {
++ g_warning ("Could not connect to Systemd: %s",
++ error->message);
++ g_error_free (error);
++ return FALSE;
++ }
++
++ res = dbus_g_proxy_call_with_timeout (manager->priv->sd_proxy,
++ "CanSuspend",
++ INT_MAX,
++ &error,
++ G_TYPE_INVALID,
++ G_TYPE_STRING, &value,
++ G_TYPE_INVALID);
++ if (res == FALSE) {
++ g_warning ("Could not make DBUS call: %s",
++ error->message);
++ g_error_free (error);
++ return FALSE;
++ }
++
++ can_suspend = g_strcmp0 (value, "yes") == 0 ||
++ g_strcmp0 (value, "challenge") == 0;
++ g_free (value);
++ return can_suspend;
++}
++
++void
++gsm_systemd_attempt_hibernate (GsmSystemd *manager)
++{
++ gboolean res;
++ GError *error;
++
++ error = NULL;
++
++ if (!gsm_systemd_ensure_sd_connection (manager, &error)) {
++ g_warning ("Could not connect to Systemd: %s",
++ error->message);
++ g_error_free (error);
++ return FALSE;
++ }
++
++ res = dbus_g_proxy_call_with_timeout (manager->priv->sd_proxy,
++ "Hibernate",
++ INT_MAX,
++ &error,
++ G_TYPE_BOOLEAN, TRUE, /* interactive */
++ G_TYPE_INVALID,
++ G_TYPE_INVALID);
++ if (res == FALSE) {
++ g_warning ("Could not make DBUS call: %s",
++ error->message);
++ g_error_free (error);
++ return FALSE;
++ }
++
++}
++
++void
++gsm_systemd_attempt_suspend (GsmSystemd *manager)
++{
++ gboolean res;
++ GError *error;
++
++ error = NULL;
++
++ if (!gsm_systemd_ensure_sd_connection (manager, &error)) {
++ g_warning ("Could not connect to Systemd: %s",
++ error->message);
++ g_error_free (error);
++ return FALSE;
++ }
++
++ res = dbus_g_proxy_call_with_timeout (manager->priv->sd_proxy,
++ "Suspend",
++ INT_MAX,
++ &error,
++ G_TYPE_BOOLEAN, TRUE, /* interactive */
++ G_TYPE_INVALID,
++ G_TYPE_INVALID);
++ if (res == FALSE) {
++ g_warning ("Could not make DBUS call: %s",
++ error->message);
++ g_error_free (error);
++ return FALSE;
++ }
++}
++
+ gchar *
+ gsm_systemd_get_current_session_type (GsmSystemd *manager)
+ {
+diff -up mate-session-manager-1.6.1/mate-session/gsm-systemd.h.login1 mate-session-manager-1.6.1/mate-session/gsm-systemd.h
+--- mate-session-manager-1.6.1/mate-session/gsm-systemd.h.login1 2013-07-25 10:35:06.000000000 -0500
++++ mate-session-manager-1.6.1/mate-session/gsm-systemd.h 2013-09-10 08:39:15.689107516 -0500
+@@ -89,10 +89,18 @@ gboolean gsm_systemd_can_stop
+
+ gboolean gsm_systemd_can_restart (GsmSystemd *manager);
+
++gboolean gsm_systemd_can_hibernate (GsmSystemd *manager);
++
++gboolean gsm_systemd_can_suspend (GsmSystemd *manager);
++
+ void gsm_systemd_attempt_stop (GsmSystemd *manager);
+
+ void gsm_systemd_attempt_restart (GsmSystemd *manager);
+
++void gsm_systemd_attempt_hibernate (GsmSystemd *manager);
++
++void gsm_systemd_attempt_suspend (GsmSystemd *manager);
++
+ void gsm_systemd_set_session_idle (GsmSystemd *manager,
+ gboolean is_idle);
+
diff --git a/mate-base/mate-session-manager/mate-session-manager-1.8.1-r1.ebuild b/mate-base/mate-session-manager/mate-session-manager-1.8.1-r1.ebuild
new file mode 100644
index 000000000000..cafb5f18303b
--- /dev/null
+++ b/mate-base/mate-session-manager/mate-session-manager-1.8.1-r1.ebuild
@@ -0,0 +1,101 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+GCONF_DEBUG="yes"
+
+inherit autotools gnome2 versionator
+
+MATE_BRANCH="$(get_version_component_range 1-2)"
+
+SRC_URI="http://pub.mate-desktop.org/releases/${MATE_BRANCH}/${P}.tar.xz"
+DESCRIPTION="MATE session manager"
+HOMEPAGE="http://mate-desktop.org/"
+
+LICENSE="GPL-2 LGPL-2 FDL-1.1"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+IUSE="ipv6 elibc_FreeBSD gnome-keyring systemd upower"
+
+# x11-misc/xdg-user-dirs{,-gtk} are needed to create the various XDG_*_DIRs, and
+# create .config/user-dirs.dirs which is read by glib to get G_USER_DIRECTORY_*
+# xdg-user-dirs-update is run during login (see 10-user-dirs-update-gnome below).
+
+RDEPEND=">=dev-libs/dbus-glib-0.76
+ >=dev-libs/glib-2.25:2
+ dev-libs/libxslt
+ sys-apps/dbus
+ x11-apps/xdpyinfo
+ x11-libs/gdk-pixbuf:2
+ >=x11-libs/gtk+-2.14:2
+ x11-libs/libICE
+ x11-libs/libSM
+ x11-libs/libX11
+ x11-libs/libXau
+ x11-libs/libXext
+ x11-libs/libXrender
+ x11-libs/libXtst
+ x11-libs/pango
+ x11-libs/xtrans
+ x11-misc/xdg-user-dirs
+ x11-misc/xdg-user-dirs-gtk
+ virtual/libintl
+ elibc_FreeBSD? ( dev-libs/libexecinfo )
+ gnome-keyring? ( gnome-base/gnome-keyring )
+ systemd? ( sys-apps/systemd )
+ upower? ( >=sys-power/upower-pm-utils-0.9.23 )"
+
+DEPEND="${RDEPEND}
+ >=dev-util/intltool-0.40:*
+ >=dev-lang/perl-5
+ >=mate-base/mate-common-1.8
+ >=sys-devel/gettext-0.10.40:*
+ virtual/pkgconfig:*
+ !<gnome-base/gdm-2.20.4"
+
+src_prepare() {
+ # Add "session saving" button back,
+ # see https://bugzilla.gnome.org/show_bug.cgi?id=575544
+ epatch "${FILESDIR}"/${PN}-1.5.2-save-session-ui.patch
+
+ # Fix race condition in idle monitor, GNOME bug applies to MATE too,
+ # see https://bugzilla.gnome.org/show_bug.cgi?id=627903
+ epatch "${FILESDIR}"/${PN}-1.2.0-idle-transition.patch
+
+ eautoreconf
+ gnome2_src_prepare
+}
+
+src_configure() {
+ gnome2_src_configure \
+ --docdir="${EPREFIX}/usr/share/doc/${PF}" \
+ --with-default-wm=mate-wm \
+ --with-gtk=2.0 \
+ $(use_enable ipv6) \
+ $(use_with systemd) \
+ $(use_enable upower)
+}
+
+DOCS="AUTHORS ChangeLog NEWS README"
+
+src_install() {
+ gnome2_src_install
+
+ dodir /etc/X11/Sessions/
+ exeinto /etc/X11/Sessions/
+ doexe "${FILESDIR}"/MATE
+
+ dodir /usr/share/mate/applications/
+ insinto /usr/share/mate/applications/
+ doins "${FILESDIR}"/defaults.list
+
+ dodir /etc/X11/xinit/xinitrc.d/
+ exeinto /etc/X11/xinit/xinitrc.d/
+ doexe "${FILESDIR}"/15-xdg-data-mate
+
+ # This should be done in MATE too, see Gentoo bug #270852
+ doexe "${FILESDIR}"/10-user-dirs-update-mate
+}
diff --git a/mate-base/mate-session-manager/metadata.xml b/mate-base/mate-session-manager/metadata.xml
new file mode 100644
index 000000000000..8cebc02426d9
--- /dev/null
+++ b/mate-base/mate-session-manager/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>mate</herd>
+ <upstream>
+ <remote-id type="github">mate-desktop/mate-session-manager</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/mate-base/mate-settings-daemon/Manifest b/mate-base/mate-settings-daemon/Manifest
new file mode 100644
index 000000000000..ca23907af5e8
--- /dev/null
+++ b/mate-base/mate-settings-daemon/Manifest
@@ -0,0 +1,3 @@
+DIST mate-settings-daemon-1.8.0.tar.xz 781648 SHA256 dfe3b86835a099223a6a93e1c367f48fcbbcc4fbc56da193218c71049e7d39b7 SHA512 405fc70b99ab65f70df4ae8a1390f2585d888c8668c620b977577498d3acce4462506be8e57ae2f6a3f61aad041d709429d5f6cd041a69944920ef0300c00f5a WHIRLPOOL 3234d9b523d90397400c7d0e0c21d4e6c96fc11132ddfe144518f0fd13f50e2a222e377f8bdbc53c352bcbb013234296cea152078059a5a0c7a33a8a5f24fa75
+DIST mate-settings-daemon-1.8.1.tar.xz 782508 SHA256 231bc408ea1a3305aeca621a278930ddba032201a1001da2ae239f6324da1106 SHA512 a7b2612719b21f77338e912f3eff52d86daf4f0cedc5854d8e161f74062d4218c5609c3f5885e4428b3fa3247e48830b74422bd991a994d5a7fa088d04f0e745 WHIRLPOOL 90807e0e1932db76bacfef45266d00f37b3881e46515147def9d83c805e8f87b99d6b2fb254c683fd75ce4056b18b1c2fc2678c18eb0bea46bbccc3ecef7d94a
+DIST mate-settings-daemon-1.8.2.tar.xz 782780 SHA256 2d38c9eff00a7ad239613b5f59e95a08705601a64f3a660b34919a4818da9d87 SHA512 46fd2009463c5f4f46ad6941444b42e0146caea0daec8d6ccd253adb08fc8b905419c5763756c05c4ab1404b2eb9b775f7730babe790194e145e5c0a6829f1d1 WHIRLPOOL 09d908b098a7e469c2eb9eecafc5551fd5986d4c0967da62ad2924d5cc309e856ebe4c523a22ef2d844bfeab829049c6f36f6275cb4d82ad48ed4fdd5ce972b5
diff --git a/mate-base/mate-settings-daemon/files/mate-settings-daemon-1.2.0-syndaemon-mode.patch b/mate-base/mate-settings-daemon/files/mate-settings-daemon-1.2.0-syndaemon-mode.patch
new file mode 100644
index 000000000000..a03571a03d0b
--- /dev/null
+++ b/mate-base/mate-settings-daemon/files/mate-settings-daemon-1.2.0-syndaemon-mode.patch
@@ -0,0 +1,22 @@
+diff -burN a/plugins/mouse/msd-mouse-manager.c b/plugins/mouse/msd-mouse-manager.c
+--- a/plugins/mouse/msd-mouse-manager.c 2012-02-28 23:45:55.000000000 +0100
++++ b/plugins/mouse/msd-mouse-manager.c 2012-08-03 20:22:19.204115652 +0200
+@@ -548,7 +548,7 @@
+
+ if (state) {
+ GError *error = NULL;
+- char *args[5];
++ char *args[6];
+
+ if (manager->priv->syndaemon_spawned)
+ return 0;
+@@ -557,7 +557,8 @@
+ args[1] = "-i";
+ args[2] = "0.5";
+ args[3] = "-k";
+- args[4] = NULL;
++ args[4] = "-R";
++ args[5] = NULL;
+
+ if (!g_find_program_in_path (args[0]))
+ return 0;
diff --git a/mate-base/mate-settings-daemon/files/mate-settings-daemon-1.4.0-netfs-monitor.patch b/mate-base/mate-settings-daemon/files/mate-settings-daemon-1.4.0-netfs-monitor.patch
new file mode 100644
index 000000000000..1890c915459a
--- /dev/null
+++ b/mate-base/mate-settings-daemon/files/mate-settings-daemon-1.4.0-netfs-monitor.patch
@@ -0,0 +1,42 @@
+diff -burN a/plugins/housekeeping/msd-disk-space.c b/plugins/housekeeping/msd-disk-space.c
+--- a/plugins/housekeeping/msd-disk-space.c 2012-07-11 03:54:10.000000000 +0200
++++ b/plugins/housekeeping/msd-disk-space.c 2012-08-07 22:54:59.872216471 +0200
+@@ -309,19 +309,38 @@
+ * purpose
+ */
+
++ /* We also ignore network filesystems */
++
+ const gchar *ignore_fs[] = {
++ "adfs",
++ "afs",
+ "auto",
+ "autofs",
++ "autofs4",
++ "cifs",
++ "cxfs",
+ "devfs",
+ "devpts",
+ "ecryptfs",
++ "gfs",
++ "gfs2",
+ "kernfs",
+ "linprocfs",
++ "linsysfs",
++ "lustre",
++ "lustre_lite",
++ "ncpfs",
++ "nfs",
++ "nfs4",
++ "nfsd",
++ "ocfs2",
+ "proc",
+ "procfs",
+ "ptyfs",
++ "rpc_pipefs",
+ "selinuxfs",
+ "linsysfs",
++ "smbfs",
+ "sysfs",
+ "tmpfs",
+ "usbfs",
diff --git a/mate-base/mate-settings-daemon/mate-settings-daemon-1.8.0.ebuild b/mate-base/mate-settings-daemon/mate-settings-daemon-1.8.0.ebuild
new file mode 100644
index 000000000000..14032e87f6ea
--- /dev/null
+++ b/mate-base/mate-settings-daemon/mate-settings-daemon-1.8.0.ebuild
@@ -0,0 +1,89 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+GCONF_DEBUG="yes"
+GNOME2_LA_PUNT="yes"
+
+inherit eutils gnome2 versionator
+
+MATE_BRANCH="$(get_version_component_range 1-2)"
+
+SRC_URI="http://pub.mate-desktop.org/releases/${MATE_BRANCH}/${P}.tar.xz"
+DESCRIPTION="MATE Settings Daemon"
+HOMEPAGE="http://mate-desktop.org"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64"
+
+IUSE="X debug libnotify policykit pulseaudio smartcard"
+
+RDEPEND=">=dev-libs/dbus-glib-0.74:0
+ >=dev-libs/glib-2.17.3:2
+ >=mate-base/libmatekbd-1.8:0
+ >=mate-base/mate-desktop-1.8:0
+ media-libs/fontconfig:1.0
+ >=gnome-base/dconf-0.13.4:0
+ x11-libs/cairo:0
+ x11-libs/gdk-pixbuf:2
+ >=x11-libs/gtk+-2.24:2
+ x11-libs/libX11:0
+ x11-libs/libXi:0
+ x11-libs/libXext:0
+ x11-libs/libXxf86misc:0
+ >=x11-libs/libxklavier-5:0
+ virtual/libintl:0
+ libnotify? ( >=x11-libs/libnotify-0.7:0 )
+ policykit? (
+ >=dev-libs/dbus-glib-0.71:0
+ >=sys-apps/dbus-1.1.2:0
+ >=sys-auth/polkit-0.97:0
+ )
+ pulseaudio? (
+ media-libs/libcanberra:0[gtk]
+ >=media-sound/pulseaudio-0.9.15:0
+ )
+ !pulseaudio? (
+ >=media-libs/gstreamer-0.10.1.2:0.10
+ >=media-libs/gst-plugins-base-0.10.1.2:0.10
+ )
+ smartcard? ( >=dev-libs/nss-3.11.2:0 )"
+
+DEPEND="${RDEPEND}
+ >=dev-util/intltool-0.37.1:0
+ sys-devel/gettext:0
+ virtual/pkgconfig:0
+ x11-proto/inputproto:0
+ x11-proto/xproto:0"
+
+src_prepare() {
+ # More network filesystems not to monitor, upstream bug #606421
+ epatch "${FILESDIR}/${PN}-1.4.0-netfs-monitor.patch"
+
+ # mouse: Use event driven mode for syndaemon
+ epatch "${FILESDIR}/${PN}-1.2.0-syndaemon-mode.patch"
+
+ gnome2_src_prepare
+}
+
+src_configure() {
+ gnome2_src_configure \
+ $(use_with libnotify) \
+ $(use_enable debug) \
+ $(use_enable policykit polkit) \
+ $(use_enable pulseaudio pulse) \
+ $(use_enable !pulseaudio gstreamer) \
+ $(use_enable smartcard smartcard-support) \
+ $(use_with X x)
+
+ if use pulseaudio; then
+ elog "Building volume media keys using Pulseaudio"
+ else
+ elog "Building volume media keys using GStreamer"
+ fi
+}
+
+DOCS="AUTHORS NEWS ChangeLog"
diff --git a/mate-base/mate-settings-daemon/mate-settings-daemon-1.8.1.ebuild b/mate-base/mate-settings-daemon/mate-settings-daemon-1.8.1.ebuild
new file mode 100644
index 000000000000..1929e117d33e
--- /dev/null
+++ b/mate-base/mate-settings-daemon/mate-settings-daemon-1.8.1.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+GCONF_DEBUG="yes"
+GNOME2_LA_PUNT="yes"
+
+inherit eutils gnome2 versionator
+
+MATE_BRANCH="$(get_version_component_range 1-2)"
+
+SRC_URI="http://pub.mate-desktop.org/releases/${MATE_BRANCH}/${P}.tar.xz"
+DESCRIPTION="MATE Settings Daemon"
+HOMEPAGE="http://mate-desktop.org"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+IUSE="X debug libnotify policykit pulseaudio smartcard"
+
+RDEPEND=">=dev-libs/dbus-glib-0.74:0
+ >=dev-libs/glib-2.17.3:2
+ >=mate-base/libmatekbd-1.8:0
+ >=mate-base/mate-desktop-1.8.1:0
+ media-libs/fontconfig:1.0
+ >=gnome-base/dconf-0.13.4:0
+ x11-libs/cairo:0
+ x11-libs/gdk-pixbuf:2
+ >=x11-libs/gtk+-2.24:2
+ x11-libs/libX11:0
+ x11-libs/libXi:0
+ x11-libs/libXext:0
+ x11-libs/libXxf86misc:0
+ >=x11-libs/libxklavier-5:0
+ virtual/libintl:0
+ libnotify? ( >=x11-libs/libnotify-0.7:0 )
+ policykit? (
+ >=dev-libs/dbus-glib-0.71:0
+ >=sys-apps/dbus-1.1.2:0
+ >=sys-auth/polkit-0.97:0
+ )
+ pulseaudio? (
+ media-libs/libcanberra:0[gtk]
+ >=media-sound/pulseaudio-0.9.15:0
+ )
+ !pulseaudio? (
+ >=media-libs/gstreamer-0.10.1.2:0.10
+ >=media-libs/gst-plugins-base-0.10.1.2:0.10
+ )
+ smartcard? ( >=dev-libs/nss-3.11.2:0 )"
+
+DEPEND="${RDEPEND}
+ >=dev-util/intltool-0.37.1:0
+ sys-devel/gettext:0
+ virtual/pkgconfig:0
+ x11-proto/inputproto:0
+ x11-proto/xproto:0"
+
+src_prepare() {
+ # More network filesystems not to monitor, upstream bug #606421
+ epatch "${FILESDIR}/${PN}-1.4.0-netfs-monitor.patch"
+
+ # mouse: Use event driven mode for syndaemon
+ epatch "${FILESDIR}/${PN}-1.2.0-syndaemon-mode.patch"
+
+ gnome2_src_prepare
+}
+
+src_configure() {
+ gnome2_src_configure \
+ $(use_with libnotify) \
+ $(use_enable debug) \
+ $(use_enable policykit polkit) \
+ $(use_enable pulseaudio pulse) \
+ $(use_enable !pulseaudio gstreamer) \
+ $(use_enable smartcard smartcard-support) \
+ $(use_with X x)
+}
+
+DOCS="AUTHORS NEWS ChangeLog"
diff --git a/mate-base/mate-settings-daemon/mate-settings-daemon-1.8.2.ebuild b/mate-base/mate-settings-daemon/mate-settings-daemon-1.8.2.ebuild
new file mode 100644
index 000000000000..7b8a35c43181
--- /dev/null
+++ b/mate-base/mate-settings-daemon/mate-settings-daemon-1.8.2.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+GCONF_DEBUG="yes"
+GNOME2_LA_PUNT="yes"
+
+inherit eutils gnome2 versionator
+
+MATE_BRANCH="$(get_version_component_range 1-2)"
+
+SRC_URI="http://pub.mate-desktop.org/releases/${MATE_BRANCH}/${P}.tar.xz"
+DESCRIPTION="MATE Settings Daemon"
+HOMEPAGE="http://mate-desktop.org"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+IUSE="X debug libnotify policykit pulseaudio smartcard"
+
+RDEPEND=">=dev-libs/dbus-glib-0.74:0
+ >=dev-libs/glib-2.17.3:2
+ >=mate-base/libmatekbd-1.8:0
+ >=mate-base/mate-desktop-1.8.1:0
+ media-libs/fontconfig:1.0
+ >=gnome-base/dconf-0.13.4:0
+ x11-libs/cairo:0
+ x11-libs/gdk-pixbuf:2
+ >=x11-libs/gtk+-2.24:2
+ x11-libs/libX11:0
+ x11-libs/libXi:0
+ x11-libs/libXext:0
+ x11-libs/libXxf86misc:0
+ >=x11-libs/libxklavier-5:0
+ virtual/libintl:0
+ libnotify? ( >=x11-libs/libnotify-0.7:0 )
+ policykit? (
+ >=dev-libs/dbus-glib-0.71:0
+ >=sys-apps/dbus-1.1.2:0
+ >=sys-auth/polkit-0.97:0
+ )
+ pulseaudio? (
+ media-libs/libcanberra:0[gtk]
+ >=media-sound/pulseaudio-0.9.15:0
+ )
+ !pulseaudio? (
+ >=media-libs/gstreamer-0.10.1.2:0.10
+ >=media-libs/gst-plugins-base-0.10.1.2:0.10
+ )
+ smartcard? ( >=dev-libs/nss-3.11.2:0 )"
+
+DEPEND="${RDEPEND}
+ >=dev-util/intltool-0.37.1:0
+ sys-devel/gettext:0
+ virtual/pkgconfig:0
+ x11-proto/inputproto:0
+ x11-proto/xproto:0"
+
+src_prepare() {
+ # More network filesystems not to monitor, upstream bug #606421
+ epatch "${FILESDIR}/${PN}-1.4.0-netfs-monitor.patch"
+
+ # mouse: Use event driven mode for syndaemon
+ epatch "${FILESDIR}/${PN}-1.2.0-syndaemon-mode.patch"
+
+ gnome2_src_prepare
+}
+
+src_configure() {
+ gnome2_src_configure \
+ $(use_with libnotify) \
+ $(use_enable debug) \
+ $(use_enable policykit polkit) \
+ $(use_enable pulseaudio pulse) \
+ $(use_enable !pulseaudio gstreamer) \
+ $(use_enable smartcard smartcard-support) \
+ $(use_with X x)
+}
+
+DOCS="AUTHORS NEWS ChangeLog"
diff --git a/mate-base/mate-settings-daemon/metadata.xml b/mate-base/mate-settings-daemon/metadata.xml
new file mode 100644
index 000000000000..d86e8143c78a
--- /dev/null
+++ b/mate-base/mate-settings-daemon/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>mate</herd>
+ <upstream>
+ <remote-id type="github">mate-desktop/mate-settings-daemon</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/mate-base/mate/mate-1.8.0.ebuild b/mate-base/mate/mate-1.8.0.ebuild
new file mode 100644
index 000000000000..41491a52c2f4
--- /dev/null
+++ b/mate-base/mate/mate-1.8.0.ebuild
@@ -0,0 +1,74 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+inherit versionator
+
+MATE_MV="$(get_version_component_range 1-2)"
+
+SRC_URI=""
+DESCRIPTION="Meta ebuild for MATE, a traditional desktop environment"
+HOMEPAGE="http://mate-desktop.org"
+
+LICENSE="metapackage"
+
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="+base -bluetooth +themes +extras"
+
+S="${WORKDIR}"
+
+RDEPEND="
+ =mate-base/mate-desktop-${MATE_MV}*
+ =mate-base/mate-menus-${MATE_MV}*
+ =mate-base/mate-panel-${MATE_MV}*
+ =mate-base/mate-session-manager-${MATE_MV}*
+ =mate-base/mate-settings-daemon-${MATE_MV}*
+ =x11-wm/marco-${MATE_MV}*
+ base? (
+ =mate-base/caja-${MATE_MV}*
+ =mate-base/mate-applets-${MATE_MV}*
+ =mate-base/mate-control-center-${MATE_MV}*
+ =mate-extra/mate-media-${MATE_MV}*
+ =x11-misc/mozo-${MATE_MV}*
+ =x11-terms/mate-terminal-${MATE_MV}*
+ )
+ bluetooth? ( net-wireless/blueman:0 )
+ themes? (
+ =x11-themes/mate-backgrounds-${MATE_MV}*
+ =x11-themes/mate-icon-theme-${MATE_MV}*
+ =x11-themes/mate-themes-${MATE_MV}*
+ )
+ extras? (
+ =app-arch/engrampa-${MATE_MV}*
+ =app-editors/pluma-${MATE_MV}*
+ =app-text/atril-${MATE_MV}*
+ =mate-extra/mate-calc-${MATE_MV}*
+ =mate-extra/mate-power-manager-${MATE_MV}*
+ =mate-extra/mate-screensaver-${MATE_MV}*
+ =mate-extra/mate-system-monitor-${MATE_MV}*
+ =mate-extra/mate-utils-${MATE_MV}*
+ =media-gfx/eom-${MATE_MV}*
+ )
+"
+
+PDEPEND="virtual/notification-daemon:0"
+
+pkg_postinst() {
+ elog "For installation, usage and troubleshooting details regarding MATE;"
+ elog "read more about it at Gentoo Wiki: https://wiki.gentoo.org/wiki/MATE"
+ elog ""
+ elog "MATE 1.8 had some packages renamed, replaced and/or dropped; for more"
+ elog "details, see http://mate-desktop.org/blog/2014-03-04-mate-1-8-released"
+ elog ""
+ elog "MATE 1.6 has moved from mateconf to gsettings. This means that the"
+ elog "desktop settings and panel applets will return to their default."
+ elog "You will have to reconfigure your desktop appearance."
+ elog ""
+ elog "There is mate-conf-import that converts from mateconf to gsettings."
+ elog ""
+ elog "For support with mate-conf-import see the following MATE forum topic:"
+ elog "http://forums.mate-desktop.org/viewtopic.php?f=16&t=1650"
+}
diff --git a/mate-base/mate/metadata.xml b/mate-base/mate/metadata.xml
new file mode 100644
index 000000000000..a2016fc9c027
--- /dev/null
+++ b/mate-base/mate/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>mate</herd>
+ <use>
+ <flag name="base">Install base MATE Desktop applications that are
+ recommended for the most common usage; for example, this installs
+ the file manager. Disable this and other USE flags if you want a
+ more minimal MATE Desktop.</flag>
+ <flag name="themes">Install MATE Desktop's themes; if you use other
+ themes, you can disable this to spare some space and time.</flag>
+ <flag name="extras">Install additional MATE Desktop applications that
+ are recommended for extended usage of the MATE Desktop as upstream
+ sees it; for example, this installs MATE Desktop's office related
+ applications. Disable this if you plan to use your own non-MATE
+ Desktop alternatives or a custom mixture of MATE and non-MATE
+ packages.</flag>
+ </use>
+</pkgmetadata>
diff --git a/mate-base/metadata.xml b/mate-base/metadata.xml
new file mode 100644
index 000000000000..faf505708ede
--- /dev/null
+++ b/mate-base/metadata.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE catmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<catmetadata>
+ <longdescription lang="en">
+ The mate-base category contains core MATE packages.
+ </longdescription>
+ <longdescription lang="de">
+ Die Kategorie mate-base enthält die MATE Basispakete.
+ </longdescription>
+ <longdescription lang="es">
+ La catagoría mate-base contiene los paquetes principales de MATE.
+ </longdescription>
+ <longdescription lang="ja">
+ mate-baseカテゴリーにはMATEのコア・パッケージが含まれています。
+ </longdescription>
+ <longdescription lang="nl">
+ De mate-base categorie bevat de basisonderdelen van de MATE desktopomgeving.
+ </longdescription>
+ <longdescription lang="vi">
+ Nhóm mate-base chứa các gói MATE cốt lõi.
+ </longdescription>
+ <longdescription lang="it">
+ La categoria mate-base contiene i pacchetti base di MATE.
+ </longdescription>
+ <longdescription lang="pt">
+ A categoria mate-base contém os pacotes principais de MATE.
+ </longdescription>
+ <longdescription lang="pl">
+ Kategoria mate-base zawiera podstawowe pakiety środowiska MATE.
+ </longdescription>
+</catmetadata> \ No newline at end of file