summaryrefslogtreecommitdiff
path: root/meta/recipes-gnome/gnome
diff options
context:
space:
mode:
authorRichard Purdie <rpurdie@linux.intel.com>2010-08-27 15:14:24 +0100
committerRichard Purdie <rpurdie@linux.intel.com>2010-08-27 15:29:45 +0100
commit29d6678fd546377459ef75cf54abeef5b969b5cf (patch)
tree8edd65790e37a00d01c3f203f773fe4b5012db18 /meta/recipes-gnome/gnome
parentda49de6885ee1bc424e70bc02f21f6ab920efb55 (diff)
downloadopenembedded-core-29d6678fd546377459ef75cf54abeef5b969b5cf.tar.gz
openembedded-core-29d6678fd546377459ef75cf54abeef5b969b5cf.tar.bz2
openembedded-core-29d6678fd546377459ef75cf54abeef5b969b5cf.tar.xz
openembedded-core-29d6678fd546377459ef75cf54abeef5b969b5cf.zip
Major layout change to the packages directory
Having one monolithic packages directory makes it hard to find things and is generally overwhelming. This commit splits it into several logical sections roughly based on function, recipes.txt gives more information about the classifications used. The opportunity is also used to switch from "packages" to "recipes" as used in OpenEmbedded as the term "packages" can be confusing to people and has many different meanings. Not all recipes have been classified yet, this is just a first pass at separating things out. Some packages are moved to meta-extras as they're no longer actively used or maintained. Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
Diffstat (limited to 'meta/recipes-gnome/gnome')
-rw-r--r--meta/recipes-gnome/gnome/gail_1.20.0.bb14
-rw-r--r--meta/recipes-gnome/gnome/gconf-dbus_svn.bb32
-rw-r--r--meta/recipes-gnome/gnome/gnome-common-2.28.0/omf.patch13
-rw-r--r--meta/recipes-gnome/gnome/gnome-common_2.28.0.bb24
-rw-r--r--meta/recipes-gnome/gnome/gnome-desktop.inc14
-rw-r--r--meta/recipes-gnome/gnome/gnome-desktop/no-desktop-docs.patch10
-rw-r--r--meta/recipes-gnome/gnome/gnome-desktop_2.26.2.bb3
-rw-r--r--meta/recipes-gnome/gnome/gnome-doc-utils.inc15
-rw-r--r--meta/recipes-gnome/gnome/gnome-doc-utils_0.12.0.bb3
-rw-r--r--meta/recipes-gnome/gnome/gnome-icon-theme_2.22.0.bb14
-rw-r--r--meta/recipes-gnome/gnome/gnome-keyring/org.gnome.keyring.service3
-rw-r--r--meta/recipes-gnome/gnome/gnome-keyring_2.31.4.bb32
-rw-r--r--meta/recipes-gnome/gnome/gnome-mime-data/pkgconfig.patch12
-rw-r--r--meta/recipes-gnome/gnome/gnome-mime-data_2.18.0.bb16
-rw-r--r--meta/recipes-gnome/gnome/gnome-settings-daemon/configurefix.patch30
-rw-r--r--meta/recipes-gnome/gnome/gnome-settings-daemon/desktop-moblin.patch11
-rw-r--r--meta/recipes-gnome/gnome/gnome-settings-daemon/gnome-settings-daemon-2.24.0-catch-deviceadded.patch19
-rw-r--r--meta/recipes-gnome/gnome/gnome-settings-daemon/gnome-settings-daemon-fix-gthread.patch13
-rw-r--r--meta/recipes-gnome/gnome/gnome-settings-daemon/mojito-cleanup.patch74
-rw-r--r--meta/recipes-gnome/gnome/gnome-settings-daemon/mount-plugin.patch618
-rw-r--r--meta/recipes-gnome/gnome/gnome-settings-daemon_2.26.1.bb25
-rw-r--r--meta/recipes-gnome/gnome/gnome-terminal/30f29e7d8e1b67c40cd18a7155ba30c4382692d5.patch20
-rw-r--r--meta/recipes-gnome/gnome/gnome-terminal_2.26.3.bb16
-rw-r--r--meta/recipes-gnome/gnome/gnome-vfs-2.24.3/gconftool-lossage.patch11
-rw-r--r--meta/recipes-gnome/gnome/gnome-vfs-2.24.3/gnome-vfs-no-kerberos.patch51
-rw-r--r--meta/recipes-gnome/gnome/gnome-vfs_2.24.3.bb44
-rw-r--r--meta/recipes-gnome/gnome/gobject-introspection/configure.patch25
-rw-r--r--meta/recipes-gnome/gnome/gobject-introspection/pathfix.patch38
-rw-r--r--meta/recipes-gnome/gnome/gobject-introspection_git.bb24
-rw-r--r--meta/recipes-gnome/gnome/libart-lgpl/Makefile.am.patch7
-rw-r--r--meta/recipes-gnome/gnome/libart-lgpl/arm/art_config.h10
-rw-r--r--meta/recipes-gnome/gnome/libart-lgpl/i386/art_config.h10
-rw-r--r--meta/recipes-gnome/gnome/libart-lgpl/i586/art_config.h10
-rw-r--r--meta/recipes-gnome/gnome/libart-lgpl/i686/art_config.h10
-rw-r--r--meta/recipes-gnome/gnome/libart-lgpl_2.3.19.bb27
-rw-r--r--meta/recipes-gnome/gnome/libgnome-keyring_2.30.1.bb18
-rw-r--r--meta/recipes-gnome/gnome/libgnomecanvas_2.20.0.bb14
-rw-r--r--meta/recipes-gnome/gnome/libgnomekbd_2.26.0.bb14
-rw-r--r--meta/recipes-gnome/gnome/metacity_2.22.0.bb17
39 files changed, 1361 insertions, 0 deletions
diff --git a/meta/recipes-gnome/gnome/gail_1.20.0.bb b/meta/recipes-gnome/gnome/gail_1.20.0.bb
new file mode 100644
index 000000000..2e9f857a8
--- /dev/null
+++ b/meta/recipes-gnome/gnome/gail_1.20.0.bb
@@ -0,0 +1,14 @@
+LICENSE = "LGPL"
+SECTION = "x11/libs"
+PR = "r1"
+DESCRIPTION = "GNOME Accessibility Implementation Library"
+DEPENDS = "gtk+"
+PROVIDES = "virtual/gail"
+
+inherit gnome
+
+EXTRA_OECONF = "--disable-gtk-doc"
+
+FILES_${PN} += "${libdir}/gtk-2.0/modules/*.so"
+FILES_${PN}-dbg += "${libdir}/gtk-2.0/modules/.debug"
+
diff --git a/meta/recipes-gnome/gnome/gconf-dbus_svn.bb b/meta/recipes-gnome/gnome/gconf-dbus_svn.bb
new file mode 100644
index 000000000..879a0bb55
--- /dev/null
+++ b/meta/recipes-gnome/gnome/gconf-dbus_svn.bb
@@ -0,0 +1,32 @@
+DESCRIPTION = "Settings daemon using DBUS for communication."
+SECTION = "x11/utils"
+LICENSE = "LGPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605"
+
+DEPENDS = "intltool-native virtual/libintl glib-2.0 dbus dbus-glib libxml2 popt gtk-doc-native"
+PROVIDES = "gconf"
+RPROVIDES_${PN} = "gconf"
+RPROVIDES_${PN}-dev = "gconf-dev"
+
+PV = "2.16.0+svnr${SRCREV}"
+
+SRC_URI = "svn://developer.imendio.com/svn/gconf-dbus;module=trunk;proto=http"
+S = "${WORKDIR}/trunk"
+
+inherit pkgconfig autotools
+
+PARALLEL_MAKE = ""
+
+
+EXTRA_OECONF = "--disable-gtk-doc --disable-gtk --enable-shared --disable-static --enable-debug=yes"
+
+
+do_configure_prepend() {
+ touch gtk-doc.make
+}
+
+FILES_${PN} = "${libdir}/GConf-dbus/2/*.so ${libdir}/dbus-1.0 ${sysconfdir} ${datadir}/dbus* ${libdir}/*.so.* ${bindir}/* ${libexecdir}/*"
+FILES_${PN}-dbg += " ${libdir}/GConf-dbus/2/.debug"
+
+BBCLASSEXTEND = "native"
+
diff --git a/meta/recipes-gnome/gnome/gnome-common-2.28.0/omf.patch b/meta/recipes-gnome/gnome/gnome-common-2.28.0/omf.patch
new file mode 100644
index 000000000..0d85b001e
--- /dev/null
+++ b/meta/recipes-gnome/gnome/gnome-common-2.28.0/omf.patch
@@ -0,0 +1,13 @@
+--- gnome-common-2.4.0/doc-build/omf.make 2003-05-24 08:16:25.000000000 -0700
++++ gnome-common-2.4.0.new/doc-build/omf.make 2004-11-15 14:01:12.185155192 -0700
+@@ -43,7 +43,9 @@
+ install-data-hook-omf:
+ $(mkinstalldirs) $(DESTDIR)$(omf_dest_dir)
+ for file in $(omffile); do \
+- $(INSTALL_DATA) $$file.out $(DESTDIR)$(omf_dest_dir)/$$file; \
++ if [ -f $$file.out ]; then \
++ $(INSTALL_DATA) $$file.out $(DESTDIR)$(omf_dest_dir)/$$file; \
++ fi; \
+ done
+ -scrollkeeper-update -p $(DESTDIR)$(scrollkeeper_localstate_dir) -o $(DESTDIR)$(omf_dest_dir)
+
diff --git a/meta/recipes-gnome/gnome/gnome-common_2.28.0.bb b/meta/recipes-gnome/gnome/gnome-common_2.28.0.bb
new file mode 100644
index 000000000..5106f58e6
--- /dev/null
+++ b/meta/recipes-gnome/gnome/gnome-common_2.28.0.bb
@@ -0,0 +1,24 @@
+DESCRIPTION = "Common macros for building GNOME applications"
+HOMEPAGE = "http://www.gnome.org/"
+BUGTRACKER = "https://bugzilla.gnome.org/"
+
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+SECTION = "x11/gnome"
+PR = "r0"
+inherit gnome
+
+# all isn't appropriate since STAGING_DATADIR is target specific
+# PACKAGE_ARCH="all"
+
+# The omf.make file failed if scrollkeeper doesn't happen to be
+# installed
+
+SRC_URI += "file://omf.patch;patch=1"
+
+EXTRA_AUTORECONF = ""
+DEPENDS = ""
+
+FILES_${PN} += "${datadir}/aclocal"
+FILES_${PN}-dev = ""
diff --git a/meta/recipes-gnome/gnome/gnome-desktop.inc b/meta/recipes-gnome/gnome/gnome-desktop.inc
new file mode 100644
index 000000000..de3f751ef
--- /dev/null
+++ b/meta/recipes-gnome/gnome/gnome-desktop.inc
@@ -0,0 +1,14 @@
+DESCRIPTION = "GNOME library for reading .desktop files"
+SECTION = "x11/gnome"
+LICENSE = "GPL"
+DEPENDS = "gconf-dbus libxrandr virtual/libx11 gtk+ glib-2.0 gnome-doc-utils"
+
+EXTRA_OECONF = "--disable-scrollkeeper"
+
+do_configure_prepend () {
+ cp ${STAGING_DATADIR}/gnome-common/data/omf.make ${S}
+}
+
+FILES_${PN} += "${datadir}/gnome-about"
+
+inherit gnome pkgconfig \ No newline at end of file
diff --git a/meta/recipes-gnome/gnome/gnome-desktop/no-desktop-docs.patch b/meta/recipes-gnome/gnome/gnome-desktop/no-desktop-docs.patch
new file mode 100644
index 000000000..c13234172
--- /dev/null
+++ b/meta/recipes-gnome/gnome/gnome-desktop/no-desktop-docs.patch
@@ -0,0 +1,10 @@
+--- Makefile.am~ 2007-05-22 16:50:35.000000000 +0200
++++ Makefile.am 2007-05-22 16:50:35.000000000 +0200
+@@ -3,7 +3,6 @@
+ libgnome-desktop \
+ gnome-about \
+ pixmaps \
+- desktop-docs \
+ docs \
+ man
+
diff --git a/meta/recipes-gnome/gnome/gnome-desktop_2.26.2.bb b/meta/recipes-gnome/gnome/gnome-desktop_2.26.2.bb
new file mode 100644
index 000000000..f4184a4d6
--- /dev/null
+++ b/meta/recipes-gnome/gnome/gnome-desktop_2.26.2.bb
@@ -0,0 +1,3 @@
+require gnome-desktop.inc
+
+SRC_URI += "file://no-desktop-docs.patch;patch=1;pnum=0"
diff --git a/meta/recipes-gnome/gnome/gnome-doc-utils.inc b/meta/recipes-gnome/gnome/gnome-doc-utils.inc
new file mode 100644
index 000000000..00a64e258
--- /dev/null
+++ b/meta/recipes-gnome/gnome/gnome-doc-utils.inc
@@ -0,0 +1,15 @@
+LICENSE = "GPL LGPL"
+DEPENDS = "libxml2 libxslt libxslt-native"
+
+PR = "r1"
+
+inherit gnome
+
+EXTRA_OECONF = "--disable-scrollkeeper"
+
+do_install_append() {
+ mkdir -p ${D}${datadir}/xml/gnome/xslt/
+ cp -pPr ${S}/xslt/* ${D}${datadir}/xml/gnome/xslt/
+}
+
+FILES_${PN} += "${datadir}/xml*"
diff --git a/meta/recipes-gnome/gnome/gnome-doc-utils_0.12.0.bb b/meta/recipes-gnome/gnome/gnome-doc-utils_0.12.0.bb
new file mode 100644
index 000000000..2499ac36e
--- /dev/null
+++ b/meta/recipes-gnome/gnome/gnome-doc-utils_0.12.0.bb
@@ -0,0 +1,3 @@
+require gnome-doc-utils.inc
+
+PR = "r1"
diff --git a/meta/recipes-gnome/gnome/gnome-icon-theme_2.22.0.bb b/meta/recipes-gnome/gnome/gnome-icon-theme_2.22.0.bb
new file mode 100644
index 000000000..f78e6a6e5
--- /dev/null
+++ b/meta/recipes-gnome/gnome/gnome-icon-theme_2.22.0.bb
@@ -0,0 +1,14 @@
+LICENSE = "GPL"
+SECTION = "x11/gnome"
+DEPENDS = "icon-naming-utils-native glib-2.0 intltool-native"
+RDEPENDS = "hicolor-icon-theme"
+RRECOMMENDS = "librsvg-gtk"
+PR = "r1"
+
+FILES_${PN} += "${datadir}/*"
+
+EXTRA_OECONF = "--disable-hicolor-check"
+
+inherit gnome
+
+PACKAGE_ARCH = "all"
diff --git a/meta/recipes-gnome/gnome/gnome-keyring/org.gnome.keyring.service b/meta/recipes-gnome/gnome/gnome-keyring/org.gnome.keyring.service
new file mode 100644
index 000000000..96ea061cf
--- /dev/null
+++ b/meta/recipes-gnome/gnome/gnome-keyring/org.gnome.keyring.service
@@ -0,0 +1,3 @@
+[D-BUS Service]
+Name=org.gnome.keyring
+Exec=/usr/bin/gnome-keyring-daemon
diff --git a/meta/recipes-gnome/gnome/gnome-keyring_2.31.4.bb b/meta/recipes-gnome/gnome/gnome-keyring_2.31.4.bb
new file mode 100644
index 000000000..1826a7ac3
--- /dev/null
+++ b/meta/recipes-gnome/gnome/gnome-keyring_2.31.4.bb
@@ -0,0 +1,32 @@
+DESCRIPTION = "Password and keyring managing daemon"
+HOMEPAGE = "http://www.gnome.org/"
+BUGTRACKER = "https://bugzilla.gnome.org/"
+
+LICENSE = "GPLv2+ & LGPLv2+ & LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
+ file://gcr/gcr.h;endline=22;md5=a272df1e633e27ecf35e74fb5576250e \
+ file://egg/egg-dbus.h;endline=25;md5=eb6f531af37165dc53420c073d774e61 \
+ file://gp11/gp11.h;endline=24;md5=bd8c7a8a21d6c28d40536d96a35e3469 \
+ file://pkcs11/pkcs11i.h;endline=24;md5=e72cfbb718389b76a4dae838d1c1f439"
+
+SECTION = "x11/gnome"
+
+PR = "r0"
+
+inherit autotools gnome pkgconfig
+
+DEPENDS = "gtk+ libgcrypt libtasn1 libtasn1-native gconf"
+RDEPENDS = "libgnome-keyring"
+
+EXTRA_OECONF = "--disable-gtk-doc"
+
+SRC_URI += "file://org.gnome.keyring.service"
+
+do_install_append () {
+ install -d ${D}${datadir}/dbus-1/services
+ install -m 0644 ${WORKDIR}/org.gnome.keyring.service ${D}${datadir}/dbus-1/services
+}
+
+FILES_${PN} += "${datadir}/dbus-1/services"
+FILES_${PN}-dbg += "${libdir}/gnome-keyring/standalone/.debug/"
+FILES_${PN}-dbg += "${libdir}/gnome-keyring/devel/.debug/"
diff --git a/meta/recipes-gnome/gnome/gnome-mime-data/pkgconfig.patch b/meta/recipes-gnome/gnome/gnome-mime-data/pkgconfig.patch
new file mode 100644
index 000000000..de287e55a
--- /dev/null
+++ b/meta/recipes-gnome/gnome/gnome-mime-data/pkgconfig.patch
@@ -0,0 +1,12 @@
+Index: gnome-mime-data-2.18.0/Makefile.am
+===================================================================
+--- gnome-mime-data-2.18.0.orig/Makefile.am 2009-06-11 17:27:48.000000000 +0100
++++ gnome-mime-data-2.18.0/Makefile.am 2009-06-11 17:27:59.000000000 +0100
+@@ -1,6 +1,6 @@
+ SUBDIRS = man po
+
+-pkgconfigdir = $(datadir)/pkgconfig
++pkgconfigdir = $(libdir)/pkgconfig
+ pkgconfig_DATA = gnome-mime-data-2.0.pc
+
+ NULL=
diff --git a/meta/recipes-gnome/gnome/gnome-mime-data_2.18.0.bb b/meta/recipes-gnome/gnome/gnome-mime-data_2.18.0.bb
new file mode 100644
index 000000000..edaabe15d
--- /dev/null
+++ b/meta/recipes-gnome/gnome/gnome-mime-data_2.18.0.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "Base MIME and Application database for GNOME"
+HOMEPAGE = "http://www.gnome.org/"
+BUGTRACKER = "https://bugzilla.gnome.org/"
+
+LICENSE = "GPLv2 & GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
+ file://check-mime.pl;endline=26;md5=a95b63c92c33d4ca1af61a315888f450"
+
+inherit gnome
+inherit autotools
+PR = "r3"
+
+SRC_URI += "file://pkgconfig.patch;patch=1"
+
+DEPENDS += "shared-mime-info intltool-native"
+RDEPENDS = "shared-mime-info"
diff --git a/meta/recipes-gnome/gnome/gnome-settings-daemon/configurefix.patch b/meta/recipes-gnome/gnome/gnome-settings-daemon/configurefix.patch
new file mode 100644
index 000000000..01b4f6419
--- /dev/null
+++ b/meta/recipes-gnome/gnome/gnome-settings-daemon/configurefix.patch
@@ -0,0 +1,30 @@
+Index: gnome-settings-daemon-2.26.1/configure.ac
+===================================================================
+--- gnome-settings-daemon-2.26.1.orig/configure.ac 2009-09-16 22:57:31.000000000 +0100
++++ gnome-settings-daemon-2.26.1/configure.ac 2009-09-16 22:58:45.000000000 +0100
+@@ -133,9 +133,6 @@
+ #
+ AC_DEFUN([AC_CHECK_X_HEADERS], [
+ ac_save_CPPFLAGS="$CPPFLAGS"
+- if test \! -z "$includedir" ; then
+- CPPFLAGS="$CPPFLAGS -I$includedir"
+- fi
+ CPPFLAGS="$CPPFLAGS $X_CFLAGS"
+ AC_CHECK_HEADERS([$1],[$2],[$3],[$4])
+ CPPFLAGS="$ac_save_CPPFLAGS"])
+@@ -148,15 +145,9 @@
+ ac_save_LDFLAGS="$LDFLAGS"
+ # ac_save_LIBS="$LIBS"
+
+- if test \! -z "$includedir" ; then
+- CPPFLAGS="$CPPFLAGS -I$includedir"
+- fi
+ # note: $X_CFLAGS includes $x_includes
+ CPPFLAGS="$CPPFLAGS $X_CFLAGS"
+
+- if test \! -z "$libdir" ; then
+- LDFLAGS="$LDFLAGS -L$libdir"
+- fi
+ # note: $X_LIBS includes $x_libraries
+ LDFLAGS="$LDFLAGS $ALL_X_LIBS"
+
diff --git a/meta/recipes-gnome/gnome/gnome-settings-daemon/desktop-moblin.patch b/meta/recipes-gnome/gnome/gnome-settings-daemon/desktop-moblin.patch
new file mode 100644
index 000000000..d3fd76c62
--- /dev/null
+++ b/meta/recipes-gnome/gnome/gnome-settings-daemon/desktop-moblin.patch
@@ -0,0 +1,11 @@
+--- gnome-settings-daemon-2.26.1/data/gnome-settings-daemon.desktop.in.in~ 2009-04-24 20:59:51.000000000 -0700
++++ gnome-settings-daemon-2.26.1/data/gnome-settings-daemon.desktop.in.in 2009-04-24 20:59:51.000000000 -0700
+@@ -2,7 +2,7 @@
+ Type=Application
+ _Name=GNOME Settings Daemon
+ Exec=@LIBEXECDIR@/gnome-settings-daemon
+-OnlyShowIn=GNOME;
++OnlyShowIn=GNOME;MOBLIN;
+ X-GNOME-Autostart-Phase=Initialization
+ X-GNOME-Autostart-Notify=true
+ X-GNOME-AutoRestart=true
diff --git a/meta/recipes-gnome/gnome/gnome-settings-daemon/gnome-settings-daemon-2.24.0-catch-deviceadded.patch b/meta/recipes-gnome/gnome/gnome-settings-daemon/gnome-settings-daemon-2.24.0-catch-deviceadded.patch
new file mode 100644
index 000000000..8e1d0ce9c
--- /dev/null
+++ b/meta/recipes-gnome/gnome/gnome-settings-daemon/gnome-settings-daemon-2.24.0-catch-deviceadded.patch
@@ -0,0 +1,19 @@
+============================================================
+ Listen for DeviceAdded in addition to DeviceEnabled
+
+ This should help address problems like left-handed
+mouse, and acceleration settings getting lost after
+resume, or when new devices gets plugged in.
+
+diff --git a/plugins/mouse/gsd-mouse-manager.c b/plugins/mouse/gsd-mouse-manager.c
+--- a/plugins/mouse/gsd-mouse-manager.c
++++ b/plugins/mouse/gsd-mouse-manager.c
+@@ -320,7 +320,7 @@ devicepresence_filter (GdkXEvent *xevent,
+ if (xev->type == xi_presence)
+ {
+ XDevicePresenceNotifyEvent *dpn = (XDevicePresenceNotifyEvent *) xev;
+- if (dpn->devchange == DeviceEnabled)
++ if (dpn->devchange == DeviceEnabled || dpn->devchange == DeviceAdded)
+ set_mouse_settings ((GsdMouseManager *) data);
+ }
+ return GDK_FILTER_CONTINUE;
diff --git a/meta/recipes-gnome/gnome/gnome-settings-daemon/gnome-settings-daemon-fix-gthread.patch b/meta/recipes-gnome/gnome/gnome-settings-daemon/gnome-settings-daemon-fix-gthread.patch
new file mode 100644
index 000000000..d77063eba
--- /dev/null
+++ b/meta/recipes-gnome/gnome/gnome-settings-daemon/gnome-settings-daemon-fix-gthread.patch
@@ -0,0 +1,13 @@
+Index: gnome-settings-daemon-2.25.90/configure.ac
+===================================================================
+--- gnome-settings-daemon-2.25.90.orig/configure.ac
++++ gnome-settings-daemon-2.25.90/configure.ac
+@@ -85,6 +85,8 @@ AC_PATH_PROG(GCONFTOOL, gconftool-2)
+
+ AM_GCONF_SOURCE_2
+
++AC_CHECK_LIB(gthread-2.0, g_thread_init)
++
+ dnl ---------------------------------------------------------------------------
+ dnl - Check for libnotify
+ dnl ---------------------------------------------------------------------------
diff --git a/meta/recipes-gnome/gnome/gnome-settings-daemon/mojito-cleanup.patch b/meta/recipes-gnome/gnome/gnome-settings-daemon/mojito-cleanup.patch
new file mode 100644
index 000000000..1aff2d6d6
--- /dev/null
+++ b/meta/recipes-gnome/gnome/gnome-settings-daemon/mojito-cleanup.patch
@@ -0,0 +1,74 @@
+diff --git a/plugins/housekeeping/gsd-housekeeping-manager.c b/plugins/housekeeping/gsd-housekeeping-manager.c
+index f84cfad..e8f474a 100644
+--- a/plugins/housekeeping/gsd-housekeeping-manager.c
++++ b/plugins/housekeeping/gsd-housekeeping-manager.c
+@@ -85,9 +85,13 @@ thumb_data_free (gpointer data)
+ }
+ }
+
++typedef enum {
++ HASH,
++ HASH_PNG
++} FileType;
+
+ static GList *
+-read_dir_for_purge (const char *path, GList *files)
++read_dir_for_purge (const char *path, GList *files, FileType type)
+ {
+ GFile *read_path;
+ GFileEnumerator *enum_dir;
+@@ -105,9 +109,20 @@ read_dir_for_purge (const char *path, GList *files)
+ GFileInfo *info;
+ while ((info = g_file_enumerator_next_file (enum_dir, NULL, NULL)) != NULL) {
+ const char *name;
++ gboolean prune = FALSE;
++
+ name = g_file_info_get_name (info);
+
+- if (strlen (name) == 36 && strcmp (name + 32, ".png") == 0) {
++ switch (type) {
++ case HASH:
++ prune = (strlen (name) == 36);
++ break;
++ case HASH_PNG:
++ prune = (strlen (name) == 36 && strcmp (name + 32, ".png") == 0);
++ break;
++ }
++
++ if (prune) {
+ ThumbData *td;
+ GFile *entry;
+ char *entry_path;
+@@ -197,14 +212,14 @@ purge_thumbnail_cache (void)
+ ".thumbnails",
+ "normal",
+ NULL);
+- files = read_dir_for_purge (path, NULL);
++ files = read_dir_for_purge (path, NULL, HASH_PNG);
+ g_free (path);
+
+ path = g_build_filename (g_get_home_dir (),
+ ".thumbnails",
+ "large",
+ NULL);
+- files = read_dir_for_purge (path, files);
++ files = read_dir_for_purge (path, files, HASH_PNG);
+ g_free (path);
+
+ path = g_build_filename (g_get_home_dir (),
+@@ -212,7 +227,14 @@ purge_thumbnail_cache (void)
+ "fail",
+ "gnome-thumbnail-factory",
+ NULL);
+- files = read_dir_for_purge (path, files);
++ files = read_dir_for_purge (path, files, HASH_PNG);
++ g_free (path);
++
++ path = g_build_filename (g_get_user_cache_dir (),
++ "mojito",
++ "thumbnails",
++ NULL);
++ files = read_dir_for_purge (path, files, HASH);
+ g_free (path);
+
+ g_get_current_time (&current_time);
diff --git a/meta/recipes-gnome/gnome/gnome-settings-daemon/mount-plugin.patch b/meta/recipes-gnome/gnome/gnome-settings-daemon/mount-plugin.patch
new file mode 100644
index 000000000..67f056b50
--- /dev/null
+++ b/meta/recipes-gnome/gnome/gnome-settings-daemon/mount-plugin.patch
@@ -0,0 +1,618 @@
+diff --git a/configure.ac b/configure.ac
+index 135f2ce..ba737a5 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -356,6 +356,7 @@ plugins/keybindings/Makefile
+ plugins/keyboard/Makefile
+ plugins/media-keys/Makefile
+ plugins/media-keys/cut-n-paste/Makefile
++plugins/mount/Makefile
+ plugins/mouse/Makefile
+ plugins/screensaver/Makefile
+ plugins/sound/Makefile
+diff --git a/data/gnome-settings-daemon.schemas.in b/data/gnome-settings-daemon.schemas.in
+index 4920ae3..502e9e6 100644
+--- a/data/gnome-settings-daemon.schemas.in
++++ b/data/gnome-settings-daemon.schemas.in
+@@ -557,5 +557,29 @@
+ </locale>
+ </schema>
+
++ <schema>
++ <key>/schemas/apps/gnome_settings_daemon/plugins/mount/active</key>
++ <applyto>/apps/gnome_settings_daemon/plugins/mount/active</applyto>
++ <owner>gnome-settings-daemon</owner>
++ <type>bool</type>
++ <default>TRUE</default>
++ <locale name="C">
++ <short>Enable mount plugin</short>
++ <long>Set to True to enable the plugin to automount media.</long>
++ </locale>
++ </schema>
++ <schema>
++ <key>/schemas/apps/gnome_settings_daemon/plugins/mount/priority</key>
++ <applyto>/apps/gnome_settings_daemon/plugins/mount/priority</applyto>
++ <owner>gnome-settings-daemon</owner>
++ <type>int</type>
++ <default>99</default>
++ <locale name="C">
++ <short></short>
++ <long></long>
++ </locale>
++ </schema>
++
++
+ </schemalist>
+ </gconfschemafile>
+diff --git a/plugins/Makefile.am b/plugins/Makefile.am
+index 2d33061..46615c1 100644
+--- a/plugins/Makefile.am
++++ b/plugins/Makefile.am
+@@ -11,6 +11,7 @@ SUBDIRS = \
+ keybindings \
+ keyboard \
+ media-keys \
++ mount \
+ mouse \
+ screensaver \
+ sound \
+diff --git a/plugins/mount/Makefile.am b/plugins/mount/Makefile.am
+new file mode 100644
+index 0000000..188c83d
+--- /dev/null
++++ b/plugins/mount/Makefile.am
+@@ -0,0 +1,39 @@
++plugin_LTLIBRARIES = \
++ libmount.la
++
++libmount_la_SOURCES = \
++ gsd-mount-manager.c \
++ gsd-mount-manager.h \
++ gsd-mount-plugin.c \
++ gsd-mount-plugin.h
++
++libmount_la_CPPFLAGS = \
++ -I$(top_srcdir)/gnome-settings-daemon \
++ -DGNOME_SETTINGS_LOCALEDIR=\""$(datadir)/locale"\" \
++ $(AM_CPPFLAGS)
++
++libmount_la_CFLAGS = \
++ $(SETTINGS_PLUGIN_CFLAGS) \
++ $(AM_CFLAGS)
++
++libmount_la_LDFLAGS = \
++ $(GSD_PLUGIN_LDFLAGS)
++
++libmount_la_LIBADD = \
++ $(SETTINGS_PLUGIN_LIBS)
++
++plugin_in_files = \
++ mount.gnome-settings-plugin.in
++
++plugin_DATA = $(plugin_in_files:.gnome-settings-plugin.in=.gnome-settings-plugin)
++
++EXTRA_DIST = \
++ $(plugin_in_files)
++
++CLEANFILES = \
++ $(plugin_DATA)
++
++DISTCLEANFILES = \
++ $(plugin_DATA)
++
++@GSD_INTLTOOL_PLUGIN_RULE@
+diff --git a/plugins/mount/gsd-mount-manager.c b/plugins/mount/gsd-mount-manager.c
+new file mode 100644
+index 0000000..a768f03
+--- /dev/null
++++ b/plugins/mount/gsd-mount-manager.c
+@@ -0,0 +1,261 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
++ *
++ * Copyright (C) 2009 Intel Corporation
++ *
++ * 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 of the License, 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., 59 Temple
++ * Place - Suite 330, Boston, MA 02111-1307, USA.
++ *
++ */
++
++#include <config.h>
++
++#include <glib.h>
++#include <glib/gi18n.h>
++#include <gio/gio.h>
++#include <gtk/gtk.h>
++
++#include "gsd-mount-manager.h"
++
++#define GSD_MOUNT_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSD_TYPE_MOUNT_MANAGER, GsdMountManagerPrivate))
++
++struct GsdMountManagerPrivate
++{
++ GVolumeMonitor *monitor;
++};
++
++G_DEFINE_TYPE (GsdMountManager, gsd_mount_manager, G_TYPE_OBJECT)
++
++static gpointer manager_object = NULL;
++
++#if 0
++static void
++drive_connected_cb (GVolumeMonitor *monitor,
++ GDrive *drive,
++ GsdMountManager *manager)
++{
++ /* TODO: listen for the eject button */
++}
++#endif
++
++static void
++volume_mounted_cb (GObject *source_object, GAsyncResult *result, gpointer user_data)
++{
++ GError *error = NULL;
++ char *name;
++
++ name = g_volume_get_name (G_VOLUME (source_object));
++
++ if (!g_volume_mount_finish (G_VOLUME (source_object), result, &error)) {
++ g_debug ("Failed to mount '%s': %s", name, error->message);
++
++ if (error->code != G_IO_ERROR_FAILED_HANDLED) {
++ char *primary;
++ GtkWidget *dialog;
++
++ primary = g_strdup_printf (_("Unable to mount %s"), name);
++
++ dialog = gtk_message_dialog_new (NULL, 0,
++ GTK_MESSAGE_ERROR,
++ GTK_BUTTONS_CLOSE,
++ primary);
++
++ g_free (primary);
++ gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), error->message);
++
++ gtk_dialog_run (GTK_DIALOG (dialog));
++ gtk_widget_destroy (dialog);
++ }
++ g_error_free (error);
++ } else {
++ g_debug ("Mounted '%s'", name);
++ }
++
++ g_free (name);
++}
++
++static void
++volume_added_cb (GVolumeMonitor *monitor,
++ GVolume *volume,
++ GsdMountManager *manager)
++{
++ char *name;
++
++ name = g_volume_get_name (volume);
++ g_debug ("Volme '%s' added", name);
++
++ if (g_volume_can_mount (volume)) {
++ GMountOperation *mount_op;
++
++ g_debug ("Mounting '%s'", name);
++
++ mount_op = gtk_mount_operation_new (NULL);
++ g_volume_mount (volume, G_MOUNT_MOUNT_NONE,
++ mount_op, NULL,
++ volume_mounted_cb, manager);
++ }
++
++ g_free (name);
++}
++
++static void
++mount_added_cb (GVolumeMonitor *monitor,
++ GMount *mount,
++ GsdMountManager *manager)
++{
++ GFile *file;
++ char *uri;
++
++ file = g_mount_get_root (mount);
++ uri = g_file_get_uri (file);
++
++ g_debug ("%s mounted, starting file manager", uri);
++
++ /* TODO: error */
++ gtk_show_uri (NULL, uri, GDK_CURRENT_TIME, NULL);
++
++ g_free (uri);
++ g_object_unref (file);
++}
++
++static void
++mount_existing_volumes (GsdMountManager *manager)
++{
++ /* TODO: iterate over drives to hook up eject */
++ GList *l;
++
++ g_debug ("Mounting existing volumes");
++
++ l = g_volume_monitor_get_volumes (manager->priv->monitor);
++ while (l) {
++ GVolume *volume = l->data;
++ GMount *mount;
++
++ mount = g_volume_get_mount (volume);
++ if (mount == NULL &&
++ g_volume_can_mount (volume) &&
++ g_volume_should_automount (volume)) {
++ GMountOperation *mount_op;
++ char *name;
++
++ name = g_volume_get_name (volume);
++ g_debug ("Mounting '%s'", name);
++ g_free (name);
++
++ mount_op = gtk_mount_operation_new (NULL);
++ g_volume_mount (volume, G_MOUNT_MOUNT_NONE,
++ mount_op, NULL,
++ volume_mounted_cb, manager);
++ }
++
++ if (mount)
++ g_object_unref (mount);
++ g_object_unref (volume);
++ l = g_list_delete_link (l, l);
++ }
++}
++
++gboolean
++gsd_mount_manager_start (GsdMountManager *manager,
++ GError **error)
++{
++ g_debug ("Starting mount manager");
++
++ manager->priv->monitor = g_volume_monitor_get ();
++
++#if 0
++ g_signal_connect_object (manager->priv->monitor, "drive-connected",
++ G_CALLBACK (drive_connected_cb), manager, 0);
++#endif
++ g_signal_connect_object (manager->priv->monitor, "volume-added",
++ G_CALLBACK (volume_added_cb), manager, 0);
++ g_signal_connect_object (manager->priv->monitor, "mount-added",
++ G_CALLBACK (mount_added_cb), manager, 0);
++
++ /* TODO: handle eject buttons */
++
++#if 0
++ mount_existing_volumes (manager);
++#endif
++
++ return TRUE;
++}
++
++void
++gsd_mount_manager_stop (GsdMountManager *manager)
++{
++ g_debug ("Stopping mount manager");
++}
++
++static void
++gsd_mount_manager_dispose (GObject *object)
++{
++ GsdMountManager *manager = GSD_MOUNT_MANAGER (object);
++
++ if (manager->priv->monitor) {
++ g_signal_handlers_disconnect_by_func
++ (manager->priv->monitor, volume_added_cb, manager);
++ g_signal_handlers_disconnect_by_func
++ (manager->priv->monitor, mount_added_cb, manager);
++ g_object_unref (manager->priv->monitor);
++ manager->priv->monitor = NULL;
++ }
++
++ G_OBJECT_CLASS (gsd_mount_manager_parent_class)->dispose (object);
++}
++
++static void
++gsd_mount_manager_init (GsdMountManager *manager)
++{
++ manager->priv = GSD_MOUNT_MANAGER_GET_PRIVATE (manager);
++}
++
++static void
++gsd_mount_manager_finalize (GObject *object)
++{
++ GsdMountManager *mount_manager;
++
++ g_return_if_fail (object != NULL);
++ g_return_if_fail (GSD_IS_MOUNT_MANAGER (object));
++
++ mount_manager = GSD_MOUNT_MANAGER (object);
++
++ g_return_if_fail (mount_manager->priv != NULL);
++
++ G_OBJECT_CLASS (gsd_mount_manager_parent_class)->finalize (object);
++}
++
++static void
++gsd_mount_manager_class_init (GsdMountManagerClass *klass)
++{
++ GObjectClass *object_class = G_OBJECT_CLASS (klass);
++
++ object_class->dispose = gsd_mount_manager_dispose;
++ object_class->finalize = gsd_mount_manager_finalize;
++
++ g_type_class_add_private (klass, sizeof (GsdMountManagerPrivate));
++}
++
++GsdMountManager *
++gsd_mount_manager_new (void)
++{
++ if (manager_object != NULL) {
++ g_object_ref (manager_object);
++ } else {
++ manager_object = g_object_new (GSD_TYPE_MOUNT_MANAGER, NULL);
++ g_object_add_weak_pointer (manager_object,
++ (gpointer *) &manager_object);
++ }
++
++ return GSD_MOUNT_MANAGER (manager_object);
++}
+diff --git a/plugins/mount/gsd-mount-manager.h b/plugins/mount/gsd-mount-manager.h
+new file mode 100644
+index 0000000..9093fff
+--- /dev/null
++++ b/plugins/mount/gsd-mount-manager.h
+@@ -0,0 +1,58 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
++ *
++ * Copyright (C) 2009 Intel Corporation
++ *
++ * 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 of the License, 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., 59 Temple
++ * Place - Suite 330, Boston, MA 02111-1307, USA.
++ *
++ */
++
++#ifndef __GSD_MOUNT_MANAGER_H
++#define __GSD_MOUNT_MANAGER_H
++
++#include <glib-object.h>
++
++G_BEGIN_DECLS
++
++#define GSD_TYPE_MOUNT_MANAGER (gsd_mount_manager_get_type ())
++#define GSD_MOUNT_MANAGER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSD_TYPE_MOUNT_MANAGER, GsdMountManager))
++#define GSD_MOUNT_MANAGER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GSD_TYPE_MOUNT_MANAGER, GsdMountManagerClass))
++#define GSD_IS_MOUNT_MANAGER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSD_TYPE_MOUNT_MANAGER))
++#define GSD_IS_MOUNT_MANAGER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GSD_TYPE_MOUNT_MANAGER))
++#define GSD_MOUNT_MANAGER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GSD_TYPE_MOUNT_MANAGER, GsdMountManagerClass))
++
++typedef struct GsdMountManagerPrivate GsdMountManagerPrivate;
++
++typedef struct
++{
++ GObject parent;
++ GsdMountManagerPrivate *priv;
++} GsdMountManager;
++
++typedef struct
++{
++ GObjectClass parent_class;
++} GsdMountManagerClass;
++
++GType gsd_mount_manager_get_type (void);
++
++GsdMountManager * gsd_mount_manager_new (void);
++
++gboolean gsd_mount_manager_start (GsdMountManager *manager,
++ GError **error);
++void gsd_mount_manager_stop (GsdMountManager *manager);
++
++G_END_DECLS
++
++#endif /* __GSD_MOUNT_MANAGER_H */
+diff --git a/plugins/mount/gsd-mount-plugin.c b/plugins/mount/gsd-mount-plugin.c
+new file mode 100644
+index 0000000..af295a5
+--- /dev/null
++++ b/plugins/mount/gsd-mount-plugin.c
+@@ -0,0 +1,103 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
++ *
++ * Copyright (C) 2009 Intel Corporation
++ *
++ * 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., 59 Temple
++ * Place - Suite 330, Boston, MA 02111-1307, USA.
++ *
++ */
++
++#include <config.h>
++
++#include <glib/gi18n.h>
++#include <gmodule.h>
++#include <gnome-settings-daemon/gnome-settings-plugin.h>
++
++#include "gsd-mount-plugin.h"
++#include "gsd-mount-manager.h"
++
++struct GsdMountPluginPrivate {
++ GsdMountManager *manager;
++};
++
++#define GSD_MOUNT_PLUGIN_GET_PRIVATE(object) (G_TYPE_INSTANCE_GET_PRIVATE ((object), GSD_TYPE_MOUNT_PLUGIN, GsdMountPluginPrivate))
++
++GNOME_SETTINGS_PLUGIN_REGISTER (GsdMountPlugin, gsd_mount_plugin)
++
++static void
++gsd_mount_plugin_init (GsdMountPlugin *plugin)
++{
++ plugin->priv = GSD_MOUNT_PLUGIN_GET_PRIVATE (plugin);
++
++ g_debug ("GsdMountPlugin initializing");
++
++ plugin->priv->manager = gsd_mount_manager_new ();
++}
++
++static void
++gsd_mount_plugin_finalize (GObject *object)
++{
++ GsdMountPlugin *plugin;
++
++ g_return_if_fail (object != NULL);
++ g_return_if_fail (GSD_IS_MOUNT_PLUGIN (object));
++
++ g_debug ("GsdMountPlugin finalizing");
++
++ plugin = GSD_MOUNT_PLUGIN (object);
++
++ g_return_if_fail (plugin->priv != NULL);
++
++ if (plugin->priv->manager != NULL) {
++ g_object_unref (plugin->priv->manager);
++ }
++
++ G_OBJECT_CLASS (gsd_mount_plugin_parent_class)->finalize (object);
++}
++
++static void
++impl_activate (GnomeSettingsPlugin *plugin)
++{
++ gboolean res;
++ GError *error;
++
++ g_debug ("Activating mount plugin");
++
++ error = NULL;
++ res = gsd_mount_manager_start (GSD_MOUNT_PLUGIN (plugin)->priv->manager, &error);
++ if (! res) {
++ g_warning ("Unable to start mount manager: %s", error->message);
++ g_error_free (error);
++ }
++}
++
++static void
++impl_deactivate (GnomeSettingsPlugin *plugin)
++{
++ g_debug ("Deactivating mount plugin");
++ gsd_mount_manager_stop (GSD_MOUNT_PLUGIN (plugin)->priv->manager);
++}
++
++static void
++gsd_mount_plugin_class_init (GsdMountPluginClass *klass)
++{
++ GObjectClass *object_class = G_OBJECT_CLASS (klass);
++ GnomeSettingsPluginClass *plugin_class = GNOME_SETTINGS_PLUGIN_CLASS (klass);
++
++ object_class->finalize = gsd_mount_plugin_finalize;
++
++ plugin_class->activate = impl_activate;
++ plugin_class->deactivate = impl_deactivate;
++
++ g_type_class_add_private (klass, sizeof (GsdMountPluginPrivate));
++}
+diff --git a/plugins/mount/gsd-mount-plugin.h b/plugins/mount/gsd-mount-plugin.h
+new file mode 100644
+index 0000000..526a41f
+--- /dev/null
++++ b/plugins/mount/gsd-mount-plugin.h
+@@ -0,0 +1,55 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
++ *
++ * Copyright (C) 2009 Intel Corporation
++ *
++ * 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., 59 Temple
++ * Place - Suite 330, Boston, MA 02111-1307, USA.
++ *
++ */
++
++#ifndef __GSD_MOUNT_PLUGIN_H__
++#define __GSD_MOUNT_PLUGIN_H__
++
++#include <glib-object.h>
++#include <gmodule.h>
++#include <gnome-settings-daemon/gnome-settings-plugin.h>
++
++G_BEGIN_DECLS
++
++#define GSD_TYPE_MOUNT_PLUGIN (gsd_mount_plugin_get_type ())
++#define GSD_MOUNT_PLUGIN(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSD_TYPE_MOUNT_PLUGIN, GsdMountPlugin))
++#define GSD_MOUNT_PLUGIN_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GSD_TYPE_MOUNT_PLUGIN, GsdMountPluginClass))
++#define GSD_IS_MOUNT_PLUGIN(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSD_TYPE_MOUNT_PLUGIN))
++#define GSD_IS_MOUNT_PLUGIN_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GSD_TYPE_MOUNT_PLUGIN))
++#define GSD_MOUNT_PLUGIN_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GSD_TYPE_MOUNT_PLUGIN, GsdMountPluginClass))
++
++typedef struct GsdMountPluginPrivate GsdMountPluginPrivate;
++
++typedef struct
++{
++ GnomeSettingsPlugin parent;
++ GsdMountPluginPrivate *priv;
++} GsdMountPlugin;
++
++typedef struct
++{
++ GnomeSettingsPluginClass parent_class;
++} GsdMountPluginClass;
++
++GType gsd_mount_plugin_get_type (void) G_GNUC_CONST;
++
++G_MODULE_EXPORT GType register_gnome_settings_plugin (GTypeModule *module);
++
++G_END_DECLS
++
++#endif /* __GSD_MOUNT_PLUGIN_H__ */
+diff --git a/plugins/mount/mount.gnome-settings-plugin.in b/plugins/mount/mount.gnome-settings-plugin.in
+new file mode 100644
+index 0000000..ca29ad1
+--- /dev/null
++++ b/plugins/mount/mount.gnome-settings-plugin.in
+@@ -0,0 +1,8 @@
++[GNOME Settings Plugin]
++Module=mount
++IAge=0
++_Name=Mount
++_Description=Mount removable media
++Authors=Ross Burton
++Copyright=Copyright © 2009 Intel Corporation
++Website=
diff --git a/meta/recipes-gnome/gnome/gnome-settings-daemon_2.26.1.bb b/meta/recipes-gnome/gnome/gnome-settings-daemon_2.26.1.bb
new file mode 100644
index 000000000..cb216b275
--- /dev/null
+++ b/meta/recipes-gnome/gnome/gnome-settings-daemon_2.26.1.bb
@@ -0,0 +1,25 @@
+DESCRIPTION = "GNOME settings daemon"
+LICENSE = "GPL"
+DEPENDS = "libxklavier gnome-doc-utils gtk+ libglade libgnomekbd gnome-desktop librsvg libxml2 libart-lgpl"
+
+PR = "r3"
+
+inherit gnome
+
+SRC_URI += "file://desktop-moblin.patch;patch=1 \
+ file://gnome-settings-daemon-fix-gthread.patch;patch=1 \
+ file://mount-plugin.patch;patch=1 \
+ file://gnome-settings-daemon-2.24.0-catch-deviceadded.patch;patch=1 \
+ file://configurefix.patch;patch=1 \
+ file://mojito-cleanup.patch;patch=1"
+
+EXTRA_OECONF = "--disable-esd --x-includes=${STAGING_INCDIR} --x-libraries=${STAGING_LIBDIR}"
+ASNEEDED = ""
+
+FILES_${PN} += "${libdir}/gnome-settings-daemon-2.0/*.so ${libdir}/gnome-settings-daemon-2.0/*plugin \
+ ${datadir}/dbus-1/ \
+ ${datadir}/icon* \
+ ${datadir}/xsession*"
+
+FILES_${PN}-dbg += "${libdir}/gnome-settings-daemon-2.0/.debug"
+FILES_${PN}-dev += "${libdir}/gnome-settings-daemon-2.0/*.a ${libdir}/gnome-settings-daemon-2.0/*.la"
diff --git a/meta/recipes-gnome/gnome/gnome-terminal/30f29e7d8e1b67c40cd18a7155ba30c4382692d5.patch b/meta/recipes-gnome/gnome/gnome-terminal/30f29e7d8e1b67c40cd18a7155ba30c4382692d5.patch
new file mode 100644
index 000000000..0358ed8a6
--- /dev/null
+++ b/meta/recipes-gnome/gnome/gnome-terminal/30f29e7d8e1b67c40cd18a7155ba30c4382692d5.patch
@@ -0,0 +1,20 @@
+From 30f29e7d8e1b67c40cd18a7155ba30c4382692d5 Mon Sep 17 00:00:00 2001
+From: Seán de Búrca <leftmostcat@gmail.com>
+Date: Fri, 07 Aug 2009 00:38:52 +0000
+Subject: Remove useless Plural-Forms line which breaks build with gnome-doc-utils master
+
+---
+diff --git a/help/el/el.po b/help/el/el.po
+index ab77264..635b68f 100644
+--- a/help/el/el.po
++++ b/help/el/el.po
+@@ -10,7 +10,6 @@ msgstr ""
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+-"Plural-Forms: 2\n"
+ "X-Poedit-Language: Greek\n"
+ "X-Poedit-Country: GREECE\n"
+ "X-Generator: Lokalize 0.2\n"
+--
+cgit v0.8.3.1
diff --git a/meta/recipes-gnome/gnome/gnome-terminal_2.26.3.bb b/meta/recipes-gnome/gnome/gnome-terminal_2.26.3.bb
new file mode 100644
index 000000000..73f0b99ea
--- /dev/null
+++ b/meta/recipes-gnome/gnome/gnome-terminal_2.26.3.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "GNOME Terminal"
+LICENSE = "GPL"
+DEPENDS = "gtk+ glib-2.0 startup-notification dbus-glib vte"
+PR = "r2"
+
+inherit gnome
+
+SRC_URI += "file://30f29e7d8e1b67c40cd18a7155ba30c4382692d5.patch;patch=1"
+
+EXTRA_OECONF += "--disable-scrollkeeper"
+
+# Remove an autogenerated file that needs to be rebuilt
+do_configure_prepend () {
+ rm -f ${S}/src/terminal-type-builtins.c
+}
+
diff --git a/meta/recipes-gnome/gnome/gnome-vfs-2.24.3/gconftool-lossage.patch b/meta/recipes-gnome/gnome/gnome-vfs-2.24.3/gconftool-lossage.patch
new file mode 100644
index 000000000..3dbc130dd
--- /dev/null
+++ b/meta/recipes-gnome/gnome/gnome-vfs-2.24.3/gconftool-lossage.patch
@@ -0,0 +1,11 @@
+--- gnome-vfs-2.6.0/configure.in~ 2004-03-22 12:36:23.000000000 +0000
++++ gnome-vfs-2.6.0/configure.in 2004-06-07 16:04:34.000000000 +0100
+@@ -154,7 +154,7 @@
+ AC_PATH_PROG(GCONFTOOL, gconftool-2, no)
+
+ if test x"$GCONFTOOL" = xno; then
+- AC_MSG_ERROR([gconftool-2 executable not found in your path - should be installed with GConf])
++ AC_MSG_WARN([gconftool-2 executable not found in your path - should be installed with GConf])
+ fi
+
+ AM_GCONF_SOURCE_2
diff --git a/meta/recipes-gnome/gnome/gnome-vfs-2.24.3/gnome-vfs-no-kerberos.patch b/meta/recipes-gnome/gnome/gnome-vfs-2.24.3/gnome-vfs-no-kerberos.patch
new file mode 100644
index 000000000..e25ecdd66
--- /dev/null
+++ b/meta/recipes-gnome/gnome/gnome-vfs-2.24.3/gnome-vfs-no-kerberos.patch
@@ -0,0 +1,51 @@
+removes kerberos completely to avoid conflicts with installed kerberos
+--- configure.in.orig 2007-01-05 19:42:26.418541610 +0200
++++ configure.in 2007-01-05 19:42:56.604261797 +0200
+@@ -436,47 +436,6 @@
+ ])
+ AM_CONDITIONAL(HAVE_CDDA, test $have_cdda = yes)
+ AC_SUBST(CDDA_LIBS)
+-
+-dnl GSSAPI
+-dnl Check for Kerberos installation
+-have_gssapi=no
+-AC_PATH_PROG([KRB5_CONFIG], krb5-config, none, $PATH:/usr/kerberos/bin)
+-
+-if test "x$KRB5_CONFIG" != "xnone"; then
+- GSSAPI_LIBS="`${KRB5_CONFIG} --libs gssapi`"
+- GSSAPI_CFLAGS="`${KRB5_CONFIG} --cflags gssapi`"
+-
+- saved_CPPFLAGS="$CPPFLAGS"
+- saved_LIBS="$LIBS"
+- LIBS="$LIBS $GSSAPI_LIBS"
+- CPPFLAGS="$CPPFLAGS $GSSAPI_CFLAGS"
+- # MIT and Heimdal put gssapi.h in different places
+- AC_CHECK_HEADERS(gssapi/gssapi.h gssapi.h, [
+- AC_CHECK_FUNCS(gss_init_sec_context, [
+- AC_MSG_NOTICE([GSSAPI authentication support enabled])
+- AC_DEFINE(HAVE_GSSAPI, 1, [Define if GSSAPI support is enabled])
+- AC_CHECK_HEADERS(gssapi/gssapi_generic.h)
+- have_gssapi=yes
+-
+- # MIT Kerberos lacks GSS_C_NT_HOSTBASED_SERVICE
+- AC_CHECK_DECL([GSS_C_NT_HOSTBASED_SERVICE],,
+- [AC_DEFINE([GSS_C_NT_HOSTBASED_SERVICE], gss_nt_service_name,
+- [Define if GSS_C_NT_HOSTBASED_SERVICE is not defined otherwise])
+- ], [
+- #ifdef HAVE_GSSAPI_GSSAPI_H
+- #include <gssapi/gssapi.h>
+- #else
+- #include <gssapi.h>
+- #endif
+- ])
+- ])
+- break
+- ])
+- LIBS="$saved_LIBS"
+- CPPFLAGS="$saved_CPPFLAGS"
+-fi
+-AC_SUBST(GSSAPI_LIBS)
+-AC_SUBST(GSSAPI_CFLAGS)
+
+ dnl ******************************
+ dnl http-method (neon checks)
diff --git a/meta/recipes-gnome/gnome/gnome-vfs_2.24.3.bb b/meta/recipes-gnome/gnome/gnome-vfs_2.24.3.bb
new file mode 100644
index 000000000..928549cca
--- /dev/null
+++ b/meta/recipes-gnome/gnome/gnome-vfs_2.24.3.bb
@@ -0,0 +1,44 @@
+DESCRIPTION = "a userspace virtual filesystem"
+HOMEPAGE = "http://www.gnome.org/"
+BUGTRACKER = "https://bugzilla.gnome.org/"
+
+LICENSE = "GPLv2+ & LGPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
+ file://libgnomevfs/gnome-vfs.h;endline=25;md5=17071e69707a8f42887d88413f2623cb \
+ file://programs/gnomevfs-ls.c;endline=23;md5=678a2e8bedaef5818ccabe633840196b \
+ file://daemon/vfs-daemon.c;endline=21;md5=5f2c61553fb16abb07fc9498ca03fe1f \
+ file://modules/cdda-cddb.h;endline=22;md5=20ed324ca64907c366ecd7f22b8e0c54"
+
+DEPENDS = "libxml2 gconf dbus bzip2 gnome-mime-data zlib"
+RRECOMMENDS_${PN} = "gnome-vfs-plugin-file shared-mime-info"
+# Some legacy packages will require gnome-mime-data to be installed, but use of
+# it is deprecated.
+PR = "r0"
+
+inherit gnome
+
+# This is to provide compatibility with the gnome-vfs DBus fork
+RPROVIDES = "gnome-vfs-plugin-dbus"
+
+SRC_URI += "file://gconftool-lossage.patch;patch=1;pnum=1 \
+ file://gnome-vfs-no-kerberos.patch;patch=1;pnum=0"
+
+EXTRA_OECONF = " \
+ --disable-hal \
+ --disable-openssl \
+ --disable-samba \
+ "
+
+FILES_${PN} += " ${libdir}/vfs ${datadir}/dbus-1/services"
+FILES_${PN}-dbg += " ${libdir}/gnome-vfs-2.0/modules/.debug"
+FILES_${PN}-dev += " ${libdir}/gnome-vfs-2.0/include"
+FILES_${PN}-doc += " ${datadir}/gtk-doc"
+
+PACKAGES_DYNAMIC = "gnome-vfs-plugin-*"
+
+python populate_packages_prepend () {
+ print bb.data.getVar('FILES_gnome-vfs', d, 1)
+
+ plugindir = bb.data.expand('${libdir}/gnome-vfs-2.0/modules/', d)
+ do_split_packages(d, plugindir, '^lib(.*)\.so$', 'gnome-vfs-plugin-%s', 'GNOME VFS plugin for %s')
+}
diff --git a/meta/recipes-gnome/gnome/gobject-introspection/configure.patch b/meta/recipes-gnome/gnome/gobject-introspection/configure.patch
new file mode 100644
index 000000000..c441799b2
--- /dev/null
+++ b/meta/recipes-gnome/gnome/gobject-introspection/configure.patch
@@ -0,0 +1,25 @@
+Index: git/common.mk
+===================================================================
+--- git.orig/common.mk 2009-08-19 11:11:26.000000000 +0100
++++ git/common.mk 2009-08-19 11:12:05.000000000 +0100
+@@ -4,7 +4,7 @@
+ UNINSTALLED_INTROSPECTION_SRCDIR=$(top_srcdir) \
+ UNINSTALLED_INTROSPECTION_BUILDDIR=$(top_builddir)
+ SCANNER_ARGS = -v --add-include-path=$(top_builddir)/gir --add-include-path=.
+-SCANNER = $(AM_V_GEN) env LPATH=.libs $(CHECK_DEBUG) $(SCANNER_ENV) $(SCANNER_BIN) $(SCANNER_ARGS)
++SCANNER = $(AM_V_GEN) env LPATH=.libs $(CHECK_DEBUG) $(SCANNER_ENV) g-ir-scanner $(SCANNER_ARGS)
+ SCANNER_LIBS = \
+ $(top_srcdir)/giscanner/*.py \
+ $(top_builddir)/giscanner/libgiscanner.la \
+Index: git/configure.ac
+===================================================================
+--- git.orig/configure.ac 2009-08-19 11:11:26.000000000 +0100
++++ git/configure.ac 2009-08-19 11:11:28.000000000 +0100
+@@ -201,7 +201,6 @@
+ pyexecdir=`echo $pyexecdir | tr '\\\\' '/'`
+ ;;
+ esac
+-AM_CHECK_PYTHON_HEADERS(,AC_MSG_ERROR([Python headers not found]))
+
+ AC_CONFIG_FILES([
+ Makefile
diff --git a/meta/recipes-gnome/gnome/gobject-introspection/pathfix.patch b/meta/recipes-gnome/gnome/gobject-introspection/pathfix.patch
new file mode 100644
index 000000000..b4582e2ea
--- /dev/null
+++ b/meta/recipes-gnome/gnome/gobject-introspection/pathfix.patch
@@ -0,0 +1,38 @@
+Index: git/gir/Makefile.am
+===================================================================
+--- git.orig/gir/Makefile.am 2009-08-19 11:11:26.000000000 +0100
++++ git/gir/Makefile.am 2009-08-19 11:12:45.000000000 +0100
+@@ -41,7 +41,7 @@
+ -I$(GLIB_LIBDIR)/glib-2.0/include \
+ -DGETTEXT_PACKAGE=Dummy \
+ -D__G_I18N_LIB_H__ \
+- $(GLIB_LIBDIR)/glib-2.0/include/glibconfig.h \
++ $(GLIB_INCLUDEDIR)/glibconfig.h \
+ $(srcdir)/glib-2.0.c \
+ -DGLIB_COMPILATION \
+ $(GLIB_INCLUDEDIR)/glib/*.h
+Index: git/giscanner/dumper.py
+===================================================================
+--- git.orig/giscanner/dumper.py 2009-08-19 11:11:26.000000000 +0100
++++ git/giscanner/dumper.py 2009-08-19 11:12:45.000000000 +0100
+@@ -82,7 +82,7 @@
+ self._tmpdir = tempfile.mkdtemp('', 'tmp-introspect', dir=os.getcwd())
+
+ self._compiler_cmd = os.environ.get('CC', 'gcc')
+- self._linker_cmd = os.environ.get('LD', self._compiler_cmd)
++ self._linker_cmd = os.environ.get('CCLD', self._compiler_cmd)
+ self._pkgconfig_cmd = os.environ.get('PKG_CONFIG', 'pkg-config')
+
+ self._uninst_srcdir = os.environ.get(
+Index: git/giscanner/scannermain.py
+===================================================================
+--- git.orig/giscanner/scannermain.py 2009-08-19 11:11:26.000000000 +0100
++++ git/giscanner/scannermain.py 2009-08-19 11:12:45.000000000 +0100
+@@ -283,6 +283,7 @@
+ shown_include_warning = False
+ for include in options.includes:
+ if os.sep in include:
++ continue
+ raise ValueError("Invalid include path %r" % (include, ))
+ include_obj = Include.from_string(include)
+ transformer.register_include(include_obj)
diff --git a/meta/recipes-gnome/gnome/gobject-introspection_git.bb b/meta/recipes-gnome/gnome/gobject-introspection_git.bb
new file mode 100644
index 000000000..fe6eea285
--- /dev/null
+++ b/meta/recipes-gnome/gnome/gobject-introspection_git.bb
@@ -0,0 +1,24 @@
+SRC_URI = "git://git.gnome.org/gobject-introspection;protocol=git \
+ file://configure.patch;patch=1 \
+ file://pathfix.patch;patch=1"
+
+SRC_URI_virtclass-native = "git://git.gnome.org/gobject-introspection;protocol=git \
+ file://pathfix.patch;patch=1"
+
+PV = "0.0+git${SRCREV}"
+PR = "r3"
+
+S = "${WORKDIR}/git"
+
+DEPENDS = "libffi python-native gobject-introspection-native"
+DEPENDS_virtclass-native = "libffi-native python-native"
+
+inherit autotools
+
+TARGET_CFLAGS += "-I${STAGING_INCDIR_NATIVE}/python2.5"
+
+do_configure_prepend () {
+ echo "EXTRA_DIST = " > ${S}/gtk-doc.make
+}
+
+BBCLASSEXTEND = "native" \ No newline at end of file
diff --git a/meta/recipes-gnome/gnome/libart-lgpl/Makefile.am.patch b/meta/recipes-gnome/gnome/libart-lgpl/Makefile.am.patch
new file mode 100644
index 000000000..edeed0a6e
--- /dev/null
+++ b/meta/recipes-gnome/gnome/libart-lgpl/Makefile.am.patch
@@ -0,0 +1,7 @@
+--- libart_lgpl-2.3.16/Makefile.am.old 2004-06-26 18:57:07.000000000 +0100
++++ libart_lgpl-2.3.16/Makefile.am 2004-06-26 18:57:12.000000000 +0100
+@@ -5,2 +5,2 @@
+-art_config.h: gen_art_config$(EXEEXT)
+- ./gen_art_config > art_config.h
++#art_config.h: gen_art_config$(EXEEXT)
++# ./gen_art_config > art_config.h
diff --git a/meta/recipes-gnome/gnome/libart-lgpl/arm/art_config.h b/meta/recipes-gnome/gnome/libart-lgpl/arm/art_config.h
new file mode 100644
index 000000000..b0e74ad6a
--- /dev/null
+++ b/meta/recipes-gnome/gnome/libart-lgpl/arm/art_config.h
@@ -0,0 +1,10 @@
+/* Automatically generated by gen_art_config.c */
+
+#define ART_SIZEOF_CHAR 1
+#define ART_SIZEOF_SHORT 2
+#define ART_SIZEOF_INT 4
+#define ART_SIZEOF_LONG 4
+
+typedef unsigned char art_u8;
+typedef unsigned short art_u16;
+typedef unsigned int art_u32;
diff --git a/meta/recipes-gnome/gnome/libart-lgpl/i386/art_config.h b/meta/recipes-gnome/gnome/libart-lgpl/i386/art_config.h
new file mode 100644
index 000000000..b0e74ad6a
--- /dev/null
+++ b/meta/recipes-gnome/gnome/libart-lgpl/i386/art_config.h
@@ -0,0 +1,10 @@
+/* Automatically generated by gen_art_config.c */
+
+#define ART_SIZEOF_CHAR 1
+#define ART_SIZEOF_SHORT 2
+#define ART_SIZEOF_INT 4
+#define ART_SIZEOF_LONG 4
+
+typedef unsigned char art_u8;
+typedef unsigned short art_u16;
+typedef unsigned int art_u32;
diff --git a/meta/recipes-gnome/gnome/libart-lgpl/i586/art_config.h b/meta/recipes-gnome/gnome/libart-lgpl/i586/art_config.h
new file mode 100644
index 000000000..b0e74ad6a
--- /dev/null
+++ b/meta/recipes-gnome/gnome/libart-lgpl/i586/art_config.h
@@ -0,0 +1,10 @@
+/* Automatically generated by gen_art_config.c */
+
+#define ART_SIZEOF_CHAR 1
+#define ART_SIZEOF_SHORT 2
+#define ART_SIZEOF_INT 4
+#define ART_SIZEOF_LONG 4
+
+typedef unsigned char art_u8;
+typedef unsigned short art_u16;
+typedef unsigned int art_u32;
diff --git a/meta/recipes-gnome/gnome/libart-lgpl/i686/art_config.h b/meta/recipes-gnome/gnome/libart-lgpl/i686/art_config.h
new file mode 100644
index 000000000..b0e74ad6a
--- /dev/null
+++ b/meta/recipes-gnome/gnome/libart-lgpl/i686/art_config.h
@@ -0,0 +1,10 @@
+/* Automatically generated by gen_art_config.c */
+
+#define ART_SIZEOF_CHAR 1
+#define ART_SIZEOF_SHORT 2
+#define ART_SIZEOF_INT 4
+#define ART_SIZEOF_LONG 4
+
+typedef unsigned char art_u8;
+typedef unsigned short art_u16;
+typedef unsigned int art_u32;
diff --git a/meta/recipes-gnome/gnome/libart-lgpl_2.3.19.bb b/meta/recipes-gnome/gnome/libart-lgpl_2.3.19.bb
new file mode 100644
index 000000000..fa565f3d1
--- /dev/null
+++ b/meta/recipes-gnome/gnome/libart-lgpl_2.3.19.bb
@@ -0,0 +1,27 @@
+DESCRIPTION = "Library of functions for 2D graphics"
+SECTION = "x11/gnome"
+LICENSE = "LGPL"
+PR = "r1"
+
+ART_CONFIG = "${HOST_ARCH}/art_config.h"
+
+# can't use gnome.oeclass due to _ in filename
+SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/libart_lgpl/2.3/libart_lgpl-${PV}.tar.bz2 \
+ file://${ART_CONFIG} \
+ file://Makefile.am.patch;patch=1"
+
+inherit autotools pkgconfig
+
+DEPENDS = ""
+
+FILES_${PN} = "${libdir}/*.so.*"
+FILES_${PN}-dev += "${bindir}/libart2-config"
+
+S = "${WORKDIR}/libart_lgpl-${PV}"
+
+do_configure_prepend() {
+ cp ${WORKDIR}/${ART_CONFIG} ${S}/art_config.h
+}
+
+EXTRA_OECONF = "--disable-gtk-doc"
+
diff --git a/meta/recipes-gnome/gnome/libgnome-keyring_2.30.1.bb b/meta/recipes-gnome/gnome/libgnome-keyring_2.30.1.bb
new file mode 100644
index 000000000..900400688
--- /dev/null
+++ b/meta/recipes-gnome/gnome/libgnome-keyring_2.30.1.bb
@@ -0,0 +1,18 @@
+DESCRIPTION = "Compatibility library for accessing secrets"
+HOMEPAGE = "http://www.gnome.org/"
+BUGTRACKER = "https://bugzilla.gnome.org/"
+
+LICENSE = "LGPLv2 & LGPLv2+ & LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0914b9d3ebaba41ef2e3e0ae16f296cf \
+ file://library/gnome-keyring.h;endline=25;md5=68ea64f81c160d670c37da5f137be4fb \
+ file://library/gnome-keyring.c;endline=26;md5=8d7a4fb674aaa012ea5a98e7c368b4a5 \
+ file://egg/egg-dh.h;endline=22;md5=1626c16af2a8da1f88324cf3ced33f08"
+
+SECTION = "x11/gnome/libs"
+PR = "r0"
+
+inherit gnome
+
+DEPENDS = "dbus eggdbus"
+
+EXTRA_OECONF = "--disable-gtk-doc"
diff --git a/meta/recipes-gnome/gnome/libgnomecanvas_2.20.0.bb b/meta/recipes-gnome/gnome/libgnomecanvas_2.20.0.bb
new file mode 100644
index 000000000..266d44b05
--- /dev/null
+++ b/meta/recipes-gnome/gnome/libgnomecanvas_2.20.0.bb
@@ -0,0 +1,14 @@
+LICENSE = "GPL"
+SECTION = "x11/gnome/libs"
+DESCRIPTION = "A powerful object-oriented display"
+PR = "r2"
+
+inherit gnome
+
+DEPENDS = "libglade libart-lgpl virtual/gail"
+
+EXTRA_OECONF = "--disable-gtk-doc"
+
+FILES_${PN} += "${libdir}/libglade/*/libcanvas.so"
+FILES_${PN}-dbg += "${libdir}/libglade/*/.debug/"
+FILES_${PN}-dev += "${libdir}/libglade/*/libcanvas.*a"
diff --git a/meta/recipes-gnome/gnome/libgnomekbd_2.26.0.bb b/meta/recipes-gnome/gnome/libgnomekbd_2.26.0.bb
new file mode 100644
index 000000000..f2e4ec533
--- /dev/null
+++ b/meta/recipes-gnome/gnome/libgnomekbd_2.26.0.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "GNOME keyboard library"
+LICENSE = "LGPL"
+
+DEPENDS = "gconf-dbus dbus libxklavier gtk+"
+
+inherit gnome
+
+do_configure_append() {
+ find ${S} -name Makefile | xargs sed -i s:'-I$(includedir)':'-I.':g
+ find ${S} -name Makefile | xargs sed -i s:'-I/usr/include':'-I${STAGING_INCDIR}':g
+}
+
+
+
diff --git a/meta/recipes-gnome/gnome/metacity_2.22.0.bb b/meta/recipes-gnome/gnome/metacity_2.22.0.bb
new file mode 100644
index 000000000..44a5f86eb
--- /dev/null
+++ b/meta/recipes-gnome/gnome/metacity_2.22.0.bb
@@ -0,0 +1,17 @@
+SECTION = "x11/wm"
+DESCRIPTION = "Metacity is the boring window manager for the adult in you."
+LICENSE = "GPL"
+DEPENDS = "startup-notification gtk+ gconf gdk-pixbuf-csource-native"
+PR = "r3"
+
+inherit gnome update-alternatives
+
+ALTERNATIVE_NAME = "x-window-manager"
+ALTERNATIVE_LINK = "${bindir}/x-window-manager"
+ALTERNATIVE_PATH = "${bindir}/metacity"
+ALTERNATIVE_PRIORITY = "10"
+
+EXTRA_OECONF += "--disable-verbose \
+ --disable-xinerama"
+
+FILES_${PN} += "${datadir}/themes"