summaryrefslogtreecommitdiffstats
path: root/meta-demoapps/recipes-gnome
diff options
context:
space:
mode:
authorSaul Wold <Saul.Wold@intel.com>2010-11-22 13:57:13 +0000
committerRichard Purdie <rpurdie@linux.intel.com>2010-11-22 13:57:13 +0000
commitcfe12efb5ec9586dab6961f141d52b103bd8b1d1 (patch)
tree7108e22aa7ddf6cfc2f1b6c6b73a811187706ecb /meta-demoapps/recipes-gnome
parent762fd6b7b3b22d7a8cb80ef9e9ba62e7ef21af3e (diff)
downloadpoky-cfe12efb5ec9586dab6961f141d52b103bd8b1d1.tar.gz
Meta: Recipe Reogranization
This is the next stage of recipe reorganization, in this stage many recipes where moved to a new meta-demoapps layer since this is more appropriate for demo usage then the core. Additional some recipes were moved to meta-extras to indicate they may be depercated at a future time. A number of recipes were modified since dependencies need to be corrected. Signed-off-by: Saul Wold <Saul.Wold@intel.com>
Diffstat (limited to 'meta-demoapps/recipes-gnome')
-rw-r--r--meta-demoapps/recipes-gnome/abiword/abiword-2.5.inc63
-rw-r--r--meta-demoapps/recipes-gnome/abiword/abiword-embedded_2.5.2.bb10
-rw-r--r--meta-demoapps/recipes-gnome/abiword/abiword.inc63
-rw-r--r--meta-demoapps/recipes-gnome/abiword/abiword_2.5.2.bb5
-rw-r--r--meta-demoapps/recipes-gnome/abiword/abiword_cvs.bb9
-rw-r--r--meta-demoapps/recipes-gnome/gcalctool/gcalctool/fix-includedir.patch31
-rw-r--r--meta-demoapps/recipes-gnome/gcalctool/gcalctool_5.7.32.bb13
-rw-r--r--meta-demoapps/recipes-gnome/gcalctool/gcalctool_5.8.17.bb12
-rw-r--r--meta-demoapps/recipes-gnome/gnome/gnome-settings-daemon/configurefix.patch30
-rw-r--r--meta-demoapps/recipes-gnome/gnome/gnome-settings-daemon/desktop-moblin.patch11
-rw-r--r--meta-demoapps/recipes-gnome/gnome/gnome-settings-daemon/gnome-settings-daemon-2.24.0-catch-deviceadded.patch19
-rw-r--r--meta-demoapps/recipes-gnome/gnome/gnome-settings-daemon/gnome-settings-daemon-fix-gthread.patch13
-rw-r--r--meta-demoapps/recipes-gnome/gnome/gnome-settings-daemon/mojito-cleanup.patch74
-rw-r--r--meta-demoapps/recipes-gnome/gnome/gnome-settings-daemon/mount-plugin.patch618
-rw-r--r--meta-demoapps/recipes-gnome/gnome/gnome-settings-daemon_2.26.1.bb25
-rw-r--r--meta-demoapps/recipes-gnome/gnome/gnome-terminal/30f29e7d8e1b67c40cd18a7155ba30c4382692d5.patch20
-rw-r--r--meta-demoapps/recipes-gnome/gnome/gnome-terminal_2.26.3.bb16
-rw-r--r--meta-demoapps/recipes-gnome/gnome/libgnomecanvas_2.20.0.bb14
-rw-r--r--meta-demoapps/recipes-gnome/gnome/libgnomekbd_2.26.0.bb14
-rw-r--r--meta-demoapps/recipes-gnome/libgsf/libgsf_1.14.5.bb20
-rw-r--r--meta-demoapps/recipes-gnome/libgtkstylus/files/gtkstylus.sh5
-rw-r--r--meta-demoapps/recipes-gnome/libgtkstylus/libgtkstylus_0.5.bb24
-rw-r--r--meta-demoapps/recipes-gnome/wv/wv-1.2.0/pkgconfig.patch13
-rw-r--r--meta-demoapps/recipes-gnome/wv/wv_1.2.0.bb14
24 files changed, 1136 insertions, 0 deletions
diff --git a/meta-demoapps/recipes-gnome/abiword/abiword-2.5.inc b/meta-demoapps/recipes-gnome/abiword/abiword-2.5.inc
new file mode 100644
index 0000000000..dcd3b85534
--- /dev/null
+++ b/meta-demoapps/recipes-gnome/abiword/abiword-2.5.inc
@@ -0,0 +1,63 @@
1DESCRIPTION = "AbiWord is free word processing program similar to Microsoft(r) Word"
2HOMEPAGE = "http://www.abiword.org"
3SECTION = "x11/office"
4LICENSE = "GPLv2"
5DEPENDS = "perl-native wv libgsf libglade libfribidi jpeg libpng libxml2"
6RDEPENDS = "glibc-gconv-ibm850 glibc-gconv-cp1252 \
7 glibc-gconv-iso8859-15 glibc-gconv-iso8859-1"
8
9SRC_URI = "http://www.abiword.org/downloads/abiword/${PV}/source/abiword-${PV}.tar.gz"
10
11#want 2.x from 2.x.y for the installation directory
12SHRT_VER = "${@bb.data.getVar('PV',d,1).split('.')[0]}.${@bb.data.getVar('PV',d,1).split('.')[1]}"
13
14FILES_${PN} += " \
15 ${datadir}/icons/* \
16 ${datadir}/abiword-${SHRT_VER}/glade \
17 ${datadir}/abiword-${SHRT_VER}/scripts \
18 ${datadir}/abiword-${SHRT_VER}/system.profile-en \
19 ${datadir}/abiword-${SHRT_VER}/system.profile-en_GB \
20# ${datadir}/abiword-${SHRT_VER}/templates/A4.awt \
21# ${datadir}/abiword-${SHRT_VER}/templates/US-Letter.awt \
22 ${datadir}/abiword-${SHRT_VER}/templates/normal.awt \
23 ${datadir}/abiword-${SHRT_VER}/templates/normal.awt-en_GB \
24 ${datadir}/abiword-${SHRT_VER}/templates/Employee-Directory.awt \
25 ${datadir}/abiword-${SHRT_VER}/templates/Business-Report.awt \
26 ${datadir}/abiword-${SHRT_VER}/templates/Fax-Coversheet.awt \
27 ${datadir}/abiword-${SHRT_VER}/templates/Resume.awt \
28 ${datadir}/abiword-${SHRT_VER}/templates/Two-Columns.awt \
29 ${datadir}/abiword-${SHRT_VER}/templates/Memo.awt \
30 ${datadir}/abiword-${SHRT_VER}/templates/Press-Release.awt "
31
32inherit autotools pkgconfig
33
34PARALLEL_MAKE = ""
35
36EXTRA_OECONF = " --disable-pspell \
37 --disable-spellcheck \
38 --disable-printing \
39 --disable-exports \
40 --with-sys-wv"
41
42# AbiWord configure.ac does not play nicely with autoreconf
43# so use the autogen.sh script that comes with AbiWord
44#
45do_configure() {
46 cd ${S}
47 export NOCONFIGURE="no"; ./autogen.sh
48 oe_runconf
49}
50
51
52do_install_append() {
53 install -d ${D}${datadir}/pixmaps/
54 mv ${D}${datadir}/icons/* ${D}${datadir}/pixmaps/
55}
56
57PACKAGES += " abiword-clipart abiword-icons abiword-strings abiword-systemprofiles abiword-templates "
58
59FILES_abiword-clipart += "${datadir}/abiword-${SHRT_VER}/clipart"
60FILES_abiword-icons += "${datadir}/abiword-${SHRT_VER}/icons"
61FILES_abiword-strings += "${datadir}/abiword-${SHRT_VER}/AbiWord/strings"
62FILES_abiword-systemprofiles += "${datadir}/abiword-${SHRT_VER}/AbiWord/system.profile*"
63FILES_abiword-templates += "${datadir}/abiword-${SHRT_VER}/templates"
diff --git a/meta-demoapps/recipes-gnome/abiword/abiword-embedded_2.5.2.bb b/meta-demoapps/recipes-gnome/abiword/abiword-embedded_2.5.2.bb
new file mode 100644
index 0000000000..47cf9e03c0
--- /dev/null
+++ b/meta-demoapps/recipes-gnome/abiword/abiword-embedded_2.5.2.bb
@@ -0,0 +1,10 @@
1require abiword-2.5.inc
2
3EXTRA_OECONF += "--enable-embedded"
4
5S = "${WORKDIR}/abiword-${PV}"
6
7RCONFLICTS = "abiword"
8RPROVIDES += "abiword"
9
10
diff --git a/meta-demoapps/recipes-gnome/abiword/abiword.inc b/meta-demoapps/recipes-gnome/abiword/abiword.inc
new file mode 100644
index 0000000000..d2fabf931c
--- /dev/null
+++ b/meta-demoapps/recipes-gnome/abiword/abiword.inc
@@ -0,0 +1,63 @@
1DESCRIPTION = "AbiWord is free word processing program similar to Microsoft(r) Word"
2SECTION = "gnome/office"
3HOMEPAGE = "http://www.abiword.org""
4LICENSE = "GPLv2"
5
6DEPENDS = "libgsf libglade libfribidi libxml2 wv"
7RRECOMMENDS = "glibc-gconv-ibm850 glibc-gconv-cp1252 \
8 glibc-gconv-iso8859-15 glibc-gconv-iso8859-1"
9
10# Share this file between recipes that use cvs and that pull tarballs
11# (one day change this to differentiate automatically based on PV and set the
12# SRC_URI and S var directly)
13RELURI = "http://www.abiword.org/downloads/abiword/${PV}/source/abiword-${PV}.tar.gz"
14RELSRC = "${WORKDIR}/abiword-${PV}/abi"
15
16CVSURI = "cvs://anoncvs:anoncvs@anoncvs.abisource.com/cvsroot;module=abi"
17CVSSRC = "${WORKDIR}/abi"
18
19#want 2.x from 2.x.y for the installation directory
20SHRT_VER = "${@bb.data.getVar('PV',d,1).split('.')[0]}.${@bb.data.getVar('PV',d,1).split('.')[1]}"
21
22FILES_${PN} += " \
23 ${datadir}/icons/* \
24 ${datadir}/mime-info \
25 ${datadir}/abiword-${SHRT_VER}/glade \
26 ${datadir}/abiword-${SHRT_VER}/system.profile-en \
27 ${datadir}/abiword-${SHRT_VER}/system.profile-en-GB \
28# ${datadir}/abiword-${SHRT_VER}/templates/normal.awt \
29# ${datadir}/abiword-${SHRT_VER}/templates/normal.awt-en_GB \
30 "
31
32inherit autotools pkgconfig
33
34PARALLEL_MAKE = ""
35
36# This is a minimalistic AbiWord build
37#
38# if you are planning to build plugins, make sure to comment out the
39# --disable-exports options
40
41EXTRA_OECONF = " --enable-embedded=poky \
42 --disable-printing \
43 --with-sys-wv \
44 --disable-exports \
45 --disable-spellcheck"
46
47# TODO -- refactor this, so that instead of two strings and profiles
48# packages we have lots of locale packages, each with a set of strings and
49# a profile
50#
51PACKAGES += " abiword-strings abiword-systemprofiles"
52
53FILES_abiword-strings += "${datadir}/abiword-${SHRT_VER}/strings"
54FILES_abiword-systemprofiles += "${datadir}/abiword-${SHRT_VER}/system.profile*"
55
56# AbiWord configure.ac does not play nicely with autoreconf
57# so use the autogen.sh script that comes with AbiWord
58#
59do_configure() {
60 cd ${S}
61 export NOCONFIGURE="no"; ./autogen.sh
62 oe_runconf
63}
diff --git a/meta-demoapps/recipes-gnome/abiword/abiword_2.5.2.bb b/meta-demoapps/recipes-gnome/abiword/abiword_2.5.2.bb
new file mode 100644
index 0000000000..566d0fa203
--- /dev/null
+++ b/meta-demoapps/recipes-gnome/abiword/abiword_2.5.2.bb
@@ -0,0 +1,5 @@
1require abiword-2.5.inc
2
3PR = "r1"
4
5RCONFLICTS = "abiword-embedded"
diff --git a/meta-demoapps/recipes-gnome/abiword/abiword_cvs.bb b/meta-demoapps/recipes-gnome/abiword/abiword_cvs.bb
new file mode 100644
index 0000000000..e0e3bd7d60
--- /dev/null
+++ b/meta-demoapps/recipes-gnome/abiword/abiword_cvs.bb
@@ -0,0 +1,9 @@
1require abiword.inc
2
3PV="2.5.0+cvs${SRCDATE}"
4PR = "r3"
5
6SRC_URI = "${CVSURI}"
7
8S = "${CVSSRC}"
9
diff --git a/meta-demoapps/recipes-gnome/gcalctool/gcalctool/fix-includedir.patch b/meta-demoapps/recipes-gnome/gcalctool/gcalctool/fix-includedir.patch
new file mode 100644
index 0000000000..aeb02ab2c1
--- /dev/null
+++ b/meta-demoapps/recipes-gnome/gcalctool/gcalctool/fix-includedir.patch
@@ -0,0 +1,31 @@
1---
2 Makefile.am | 2 +-
3 gcalctool/Makefile.am | 2 --
4 2 files changed, 1 insertion(+), 3 deletions(-)
5
6Index: gcalctool-5.8.17/gcalctool/Makefile.am
7===================================================================
8--- gcalctool-5.8.17.orig/gcalctool/Makefile.am 2005-12-19 15:46:57.000000000 +0000
9+++ gcalctool-5.8.17/gcalctool/Makefile.am 2007-05-16 16:03:26.000000000 +0100
10@@ -1,8 +1,6 @@
11 ## Process this file with automake to produce Makefile.in
12
13 INCLUDES = \
14- -I$(includedir) \
15- -DG_DISABLE_DEPRECATED \
16 -DGDK_PIXBUF_DISABLE_DEPRECATED \
17 -DGDK_DISABLE_DEPRECATED \
18 -DGNOME_DISABLE_DEPRECATED \
19Index: gcalctool-5.8.17/Makefile.am
20===================================================================
21--- gcalctool-5.8.17.orig/Makefile.am 2007-05-16 15:35:44.000000000 +0100
22+++ gcalctool-5.8.17/Makefile.am 2007-05-16 16:06:46.000000000 +0100
23@@ -29,7 +29,7 @@ DISTCLEANFILES = \
24 gnome-doc-utils.make \
25 gcalctool.desktop
26
27-SUBDIRS = po gcalctool help
28+SUBDIRS = po gcalctool
29
30 SCHEMAS_FILE = gcalctool.schemas
31
diff --git a/meta-demoapps/recipes-gnome/gcalctool/gcalctool_5.7.32.bb b/meta-demoapps/recipes-gnome/gcalctool/gcalctool_5.7.32.bb
new file mode 100644
index 0000000000..f12e6c402a
--- /dev/null
+++ b/meta-demoapps/recipes-gnome/gcalctool/gcalctool_5.7.32.bb
@@ -0,0 +1,13 @@
1LICENSE = "GPL"
2SECTION = "x11"
3DEPENDS = "gtk+"
4DESCRIPTION = "gcalctool is a powerful calculator"
5PR = "r2"
6
7SRC_URI = "http://download.gnome.org/sources/${PN}/5.7/${PN}-${PV}.tar.gz \
8 file://makefile-fix.diff;patch=1\
9 file://fix-includedir.patch;patch=1"
10
11inherit autotools pkgconfig
12
13EXTRA_OECONF = "--disable-gnome"
diff --git a/meta-demoapps/recipes-gnome/gcalctool/gcalctool_5.8.17.bb b/meta-demoapps/recipes-gnome/gcalctool/gcalctool_5.8.17.bb
new file mode 100644
index 0000000000..c72860c8f5
--- /dev/null
+++ b/meta-demoapps/recipes-gnome/gcalctool/gcalctool_5.8.17.bb
@@ -0,0 +1,12 @@
1LICENSE = "GPL"
2SECTION = "x11"
3DEPENDS = "gtk+ gnome-doc-utils"
4DESCRIPTION = "gcalctool is a powerful calculator"
5PR = "r0"
6
7SRC_URI = "http://download.gnome.org/sources/${PN}/5.8/${PN}-${PV}.tar.gz \
8 file://fix-includedir.patch;patch=1"
9
10inherit autotools pkgconfig
11
12EXTRA_OECONF = "--disable-gnome"
diff --git a/meta-demoapps/recipes-gnome/gnome/gnome-settings-daemon/configurefix.patch b/meta-demoapps/recipes-gnome/gnome/gnome-settings-daemon/configurefix.patch
new file mode 100644
index 0000000000..01b4f64191
--- /dev/null
+++ b/meta-demoapps/recipes-gnome/gnome/gnome-settings-daemon/configurefix.patch
@@ -0,0 +1,30 @@
1Index: gnome-settings-daemon-2.26.1/configure.ac
2===================================================================
3--- gnome-settings-daemon-2.26.1.orig/configure.ac 2009-09-16 22:57:31.000000000 +0100
4+++ gnome-settings-daemon-2.26.1/configure.ac 2009-09-16 22:58:45.000000000 +0100
5@@ -133,9 +133,6 @@
6 #
7 AC_DEFUN([AC_CHECK_X_HEADERS], [
8 ac_save_CPPFLAGS="$CPPFLAGS"
9- if test \! -z "$includedir" ; then
10- CPPFLAGS="$CPPFLAGS -I$includedir"
11- fi
12 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
13 AC_CHECK_HEADERS([$1],[$2],[$3],[$4])
14 CPPFLAGS="$ac_save_CPPFLAGS"])
15@@ -148,15 +145,9 @@
16 ac_save_LDFLAGS="$LDFLAGS"
17 # ac_save_LIBS="$LIBS"
18
19- if test \! -z "$includedir" ; then
20- CPPFLAGS="$CPPFLAGS -I$includedir"
21- fi
22 # note: $X_CFLAGS includes $x_includes
23 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
24
25- if test \! -z "$libdir" ; then
26- LDFLAGS="$LDFLAGS -L$libdir"
27- fi
28 # note: $X_LIBS includes $x_libraries
29 LDFLAGS="$LDFLAGS $ALL_X_LIBS"
30
diff --git a/meta-demoapps/recipes-gnome/gnome/gnome-settings-daemon/desktop-moblin.patch b/meta-demoapps/recipes-gnome/gnome/gnome-settings-daemon/desktop-moblin.patch
new file mode 100644
index 0000000000..d3fd76c621
--- /dev/null
+++ b/meta-demoapps/recipes-gnome/gnome/gnome-settings-daemon/desktop-moblin.patch
@@ -0,0 +1,11 @@
1--- gnome-settings-daemon-2.26.1/data/gnome-settings-daemon.desktop.in.in~ 2009-04-24 20:59:51.000000000 -0700
2+++ gnome-settings-daemon-2.26.1/data/gnome-settings-daemon.desktop.in.in 2009-04-24 20:59:51.000000000 -0700
3@@ -2,7 +2,7 @@
4 Type=Application
5 _Name=GNOME Settings Daemon
6 Exec=@LIBEXECDIR@/gnome-settings-daemon
7-OnlyShowIn=GNOME;
8+OnlyShowIn=GNOME;MOBLIN;
9 X-GNOME-Autostart-Phase=Initialization
10 X-GNOME-Autostart-Notify=true
11 X-GNOME-AutoRestart=true
diff --git a/meta-demoapps/recipes-gnome/gnome/gnome-settings-daemon/gnome-settings-daemon-2.24.0-catch-deviceadded.patch b/meta-demoapps/recipes-gnome/gnome/gnome-settings-daemon/gnome-settings-daemon-2.24.0-catch-deviceadded.patch
new file mode 100644
index 0000000000..8e1d0ce9ce
--- /dev/null
+++ b/meta-demoapps/recipes-gnome/gnome/gnome-settings-daemon/gnome-settings-daemon-2.24.0-catch-deviceadded.patch
@@ -0,0 +1,19 @@
1============================================================
2 Listen for DeviceAdded in addition to DeviceEnabled
3
4 This should help address problems like left-handed
5mouse, and acceleration settings getting lost after
6resume, or when new devices gets plugged in.
7
8diff --git a/plugins/mouse/gsd-mouse-manager.c b/plugins/mouse/gsd-mouse-manager.c
9--- a/plugins/mouse/gsd-mouse-manager.c
10+++ b/plugins/mouse/gsd-mouse-manager.c
11@@ -320,7 +320,7 @@ devicepresence_filter (GdkXEvent *xevent,
12 if (xev->type == xi_presence)
13 {
14 XDevicePresenceNotifyEvent *dpn = (XDevicePresenceNotifyEvent *) xev;
15- if (dpn->devchange == DeviceEnabled)
16+ if (dpn->devchange == DeviceEnabled || dpn->devchange == DeviceAdded)
17 set_mouse_settings ((GsdMouseManager *) data);
18 }
19 return GDK_FILTER_CONTINUE;
diff --git a/meta-demoapps/recipes-gnome/gnome/gnome-settings-daemon/gnome-settings-daemon-fix-gthread.patch b/meta-demoapps/recipes-gnome/gnome/gnome-settings-daemon/gnome-settings-daemon-fix-gthread.patch
new file mode 100644
index 0000000000..d77063eba7
--- /dev/null
+++ b/meta-demoapps/recipes-gnome/gnome/gnome-settings-daemon/gnome-settings-daemon-fix-gthread.patch
@@ -0,0 +1,13 @@
1Index: gnome-settings-daemon-2.25.90/configure.ac
2===================================================================
3--- gnome-settings-daemon-2.25.90.orig/configure.ac
4+++ gnome-settings-daemon-2.25.90/configure.ac
5@@ -85,6 +85,8 @@ AC_PATH_PROG(GCONFTOOL, gconftool-2)
6
7 AM_GCONF_SOURCE_2
8
9+AC_CHECK_LIB(gthread-2.0, g_thread_init)
10+
11 dnl ---------------------------------------------------------------------------
12 dnl - Check for libnotify
13 dnl ---------------------------------------------------------------------------
diff --git a/meta-demoapps/recipes-gnome/gnome/gnome-settings-daemon/mojito-cleanup.patch b/meta-demoapps/recipes-gnome/gnome/gnome-settings-daemon/mojito-cleanup.patch
new file mode 100644
index 0000000000..1aff2d6d6f
--- /dev/null
+++ b/meta-demoapps/recipes-gnome/gnome/gnome-settings-daemon/mojito-cleanup.patch
@@ -0,0 +1,74 @@
1diff --git a/plugins/housekeeping/gsd-housekeeping-manager.c b/plugins/housekeeping/gsd-housekeeping-manager.c
2index f84cfad..e8f474a 100644
3--- a/plugins/housekeeping/gsd-housekeeping-manager.c
4+++ b/plugins/housekeeping/gsd-housekeeping-manager.c
5@@ -85,9 +85,13 @@ thumb_data_free (gpointer data)
6 }
7 }
8
9+typedef enum {
10+ HASH,
11+ HASH_PNG
12+} FileType;
13
14 static GList *
15-read_dir_for_purge (const char *path, GList *files)
16+read_dir_for_purge (const char *path, GList *files, FileType type)
17 {
18 GFile *read_path;
19 GFileEnumerator *enum_dir;
20@@ -105,9 +109,20 @@ read_dir_for_purge (const char *path, GList *files)
21 GFileInfo *info;
22 while ((info = g_file_enumerator_next_file (enum_dir, NULL, NULL)) != NULL) {
23 const char *name;
24+ gboolean prune = FALSE;
25+
26 name = g_file_info_get_name (info);
27
28- if (strlen (name) == 36 && strcmp (name + 32, ".png") == 0) {
29+ switch (type) {
30+ case HASH:
31+ prune = (strlen (name) == 36);
32+ break;
33+ case HASH_PNG:
34+ prune = (strlen (name) == 36 && strcmp (name + 32, ".png") == 0);
35+ break;
36+ }
37+
38+ if (prune) {
39 ThumbData *td;
40 GFile *entry;
41 char *entry_path;
42@@ -197,14 +212,14 @@ purge_thumbnail_cache (void)
43 ".thumbnails",
44 "normal",
45 NULL);
46- files = read_dir_for_purge (path, NULL);
47+ files = read_dir_for_purge (path, NULL, HASH_PNG);
48 g_free (path);
49
50 path = g_build_filename (g_get_home_dir (),
51 ".thumbnails",
52 "large",
53 NULL);
54- files = read_dir_for_purge (path, files);
55+ files = read_dir_for_purge (path, files, HASH_PNG);
56 g_free (path);
57
58 path = g_build_filename (g_get_home_dir (),
59@@ -212,7 +227,14 @@ purge_thumbnail_cache (void)
60 "fail",
61 "gnome-thumbnail-factory",
62 NULL);
63- files = read_dir_for_purge (path, files);
64+ files = read_dir_for_purge (path, files, HASH_PNG);
65+ g_free (path);
66+
67+ path = g_build_filename (g_get_user_cache_dir (),
68+ "mojito",
69+ "thumbnails",
70+ NULL);
71+ files = read_dir_for_purge (path, files, HASH);
72 g_free (path);
73
74 g_get_current_time (&current_time);
diff --git a/meta-demoapps/recipes-gnome/gnome/gnome-settings-daemon/mount-plugin.patch b/meta-demoapps/recipes-gnome/gnome/gnome-settings-daemon/mount-plugin.patch
new file mode 100644
index 0000000000..67f056b505
--- /dev/null
+++ b/meta-demoapps/recipes-gnome/gnome/gnome-settings-daemon/mount-plugin.patch
@@ -0,0 +1,618 @@
1diff --git a/configure.ac b/configure.ac
2index 135f2ce..ba737a5 100644
3--- a/configure.ac
4+++ b/configure.ac
5@@ -356,6 +356,7 @@ plugins/keybindings/Makefile
6 plugins/keyboard/Makefile
7 plugins/media-keys/Makefile
8 plugins/media-keys/cut-n-paste/Makefile
9+plugins/mount/Makefile
10 plugins/mouse/Makefile
11 plugins/screensaver/Makefile
12 plugins/sound/Makefile
13diff --git a/data/gnome-settings-daemon.schemas.in b/data/gnome-settings-daemon.schemas.in
14index 4920ae3..502e9e6 100644
15--- a/data/gnome-settings-daemon.schemas.in
16+++ b/data/gnome-settings-daemon.schemas.in
17@@ -557,5 +557,29 @@
18 </locale>
19 </schema>
20
21+ <schema>
22+ <key>/schemas/apps/gnome_settings_daemon/plugins/mount/active</key>
23+ <applyto>/apps/gnome_settings_daemon/plugins/mount/active</applyto>
24+ <owner>gnome-settings-daemon</owner>
25+ <type>bool</type>
26+ <default>TRUE</default>
27+ <locale name="C">
28+ <short>Enable mount plugin</short>
29+ <long>Set to True to enable the plugin to automount media.</long>
30+ </locale>
31+ </schema>
32+ <schema>
33+ <key>/schemas/apps/gnome_settings_daemon/plugins/mount/priority</key>
34+ <applyto>/apps/gnome_settings_daemon/plugins/mount/priority</applyto>
35+ <owner>gnome-settings-daemon</owner>
36+ <type>int</type>
37+ <default>99</default>
38+ <locale name="C">
39+ <short></short>
40+ <long></long>
41+ </locale>
42+ </schema>
43+
44+
45 </schemalist>
46 </gconfschemafile>
47diff --git a/plugins/Makefile.am b/plugins/Makefile.am
48index 2d33061..46615c1 100644
49--- a/plugins/Makefile.am
50+++ b/plugins/Makefile.am
51@@ -11,6 +11,7 @@ SUBDIRS = \
52 keybindings \
53 keyboard \
54 media-keys \
55+ mount \
56 mouse \
57 screensaver \
58 sound \
59diff --git a/plugins/mount/Makefile.am b/plugins/mount/Makefile.am
60new file mode 100644
61index 0000000..188c83d
62--- /dev/null
63+++ b/plugins/mount/Makefile.am
64@@ -0,0 +1,39 @@
65+plugin_LTLIBRARIES = \
66+ libmount.la
67+
68+libmount_la_SOURCES = \
69+ gsd-mount-manager.c \
70+ gsd-mount-manager.h \
71+ gsd-mount-plugin.c \
72+ gsd-mount-plugin.h
73+
74+libmount_la_CPPFLAGS = \
75+ -I$(top_srcdir)/gnome-settings-daemon \
76+ -DGNOME_SETTINGS_LOCALEDIR=\""$(datadir)/locale"\" \
77+ $(AM_CPPFLAGS)
78+
79+libmount_la_CFLAGS = \
80+ $(SETTINGS_PLUGIN_CFLAGS) \
81+ $(AM_CFLAGS)
82+
83+libmount_la_LDFLAGS = \
84+ $(GSD_PLUGIN_LDFLAGS)
85+
86+libmount_la_LIBADD = \
87+ $(SETTINGS_PLUGIN_LIBS)
88+
89+plugin_in_files = \
90+ mount.gnome-settings-plugin.in
91+
92+plugin_DATA = $(plugin_in_files:.gnome-settings-plugin.in=.gnome-settings-plugin)
93+
94+EXTRA_DIST = \
95+ $(plugin_in_files)
96+
97+CLEANFILES = \
98+ $(plugin_DATA)
99+
100+DISTCLEANFILES = \
101+ $(plugin_DATA)
102+
103+@GSD_INTLTOOL_PLUGIN_RULE@
104diff --git a/plugins/mount/gsd-mount-manager.c b/plugins/mount/gsd-mount-manager.c
105new file mode 100644
106index 0000000..a768f03
107--- /dev/null
108+++ b/plugins/mount/gsd-mount-manager.c
109@@ -0,0 +1,261 @@
110+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
111+ *
112+ * Copyright (C) 2009 Intel Corporation
113+ *
114+ * This program is free software; you can redistribute it and/or modify it under
115+ * the terms of the GNU General Public License as published by the Free Software
116+ * Foundation; either version 2 of the License, or (at your option) any later
117+ * version.
118+ *
119+ * This program is distributed in the hope that it will be useful, but WITHOUT
120+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
121+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
122+ * details.
123+ *
124+ * You should have received a copy of the GNU General Public License along with
125+ * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
126+ * Place - Suite 330, Boston, MA 02111-1307, USA.
127+ *
128+ */
129+
130+#include <config.h>
131+
132+#include <glib.h>
133+#include <glib/gi18n.h>
134+#include <gio/gio.h>
135+#include <gtk/gtk.h>
136+
137+#include "gsd-mount-manager.h"
138+
139+#define GSD_MOUNT_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSD_TYPE_MOUNT_MANAGER, GsdMountManagerPrivate))
140+
141+struct GsdMountManagerPrivate
142+{
143+ GVolumeMonitor *monitor;
144+};
145+
146+G_DEFINE_TYPE (GsdMountManager, gsd_mount_manager, G_TYPE_OBJECT)
147+
148+static gpointer manager_object = NULL;
149+
150+#if 0
151+static void
152+drive_connected_cb (GVolumeMonitor *monitor,
153+ GDrive *drive,
154+ GsdMountManager *manager)
155+{
156+ /* TODO: listen for the eject button */
157+}
158+#endif
159+
160+static void
161+volume_mounted_cb (GObject *source_object, GAsyncResult *result, gpointer user_data)
162+{
163+ GError *error = NULL;
164+ char *name;
165+
166+ name = g_volume_get_name (G_VOLUME (source_object));
167+
168+ if (!g_volume_mount_finish (G_VOLUME (source_object), result, &error)) {
169+ g_debug ("Failed to mount '%s': %s", name, error->message);
170+
171+ if (error->code != G_IO_ERROR_FAILED_HANDLED) {
172+ char *primary;
173+ GtkWidget *dialog;
174+
175+ primary = g_strdup_printf (_("Unable to mount %s"), name);
176+
177+ dialog = gtk_message_dialog_new (NULL, 0,
178+ GTK_MESSAGE_ERROR,
179+ GTK_BUTTONS_CLOSE,
180+ primary);
181+
182+ g_free (primary);
183+ gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), error->message);
184+
185+ gtk_dialog_run (GTK_DIALOG (dialog));
186+ gtk_widget_destroy (dialog);
187+ }
188+ g_error_free (error);
189+ } else {
190+ g_debug ("Mounted '%s'", name);
191+ }
192+
193+ g_free (name);
194+}
195+
196+static void
197+volume_added_cb (GVolumeMonitor *monitor,
198+ GVolume *volume,
199+ GsdMountManager *manager)
200+{
201+ char *name;
202+
203+ name = g_volume_get_name (volume);
204+ g_debug ("Volme '%s' added", name);
205+
206+ if (g_volume_can_mount (volume)) {
207+ GMountOperation *mount_op;
208+
209+ g_debug ("Mounting '%s'", name);
210+
211+ mount_op = gtk_mount_operation_new (NULL);
212+ g_volume_mount (volume, G_MOUNT_MOUNT_NONE,
213+ mount_op, NULL,
214+ volume_mounted_cb, manager);
215+ }
216+
217+ g_free (name);
218+}
219+
220+static void
221+mount_added_cb (GVolumeMonitor *monitor,
222+ GMount *mount,
223+ GsdMountManager *manager)
224+{
225+ GFile *file;
226+ char *uri;
227+
228+ file = g_mount_get_root (mount);
229+ uri = g_file_get_uri (file);
230+
231+ g_debug ("%s mounted, starting file manager", uri);
232+
233+ /* TODO: error */
234+ gtk_show_uri (NULL, uri, GDK_CURRENT_TIME, NULL);
235+
236+ g_free (uri);
237+ g_object_unref (file);
238+}
239+
240+static void
241+mount_existing_volumes (GsdMountManager *manager)
242+{
243+ /* TODO: iterate over drives to hook up eject */
244+ GList *l;
245+
246+ g_debug ("Mounting existing volumes");
247+
248+ l = g_volume_monitor_get_volumes (manager->priv->monitor);
249+ while (l) {
250+ GVolume *volume = l->data;
251+ GMount *mount;
252+
253+ mount = g_volume_get_mount (volume);
254+ if (mount == NULL &&
255+ g_volume_can_mount (volume) &&
256+ g_volume_should_automount (volume)) {
257+ GMountOperation *mount_op;
258+ char *name;
259+
260+ name = g_volume_get_name (volume);
261+ g_debug ("Mounting '%s'", name);
262+ g_free (name);
263+
264+ mount_op = gtk_mount_operation_new (NULL);
265+ g_volume_mount (volume, G_MOUNT_MOUNT_NONE,
266+ mount_op, NULL,
267+ volume_mounted_cb, manager);
268+ }
269+
270+ if (mount)
271+ g_object_unref (mount);
272+ g_object_unref (volume);
273+ l = g_list_delete_link (l, l);
274+ }
275+}
276+
277+gboolean
278+gsd_mount_manager_start (GsdMountManager *manager,
279+ GError **error)
280+{
281+ g_debug ("Starting mount manager");
282+
283+ manager->priv->monitor = g_volume_monitor_get ();
284+
285+#if 0
286+ g_signal_connect_object (manager->priv->monitor, "drive-connected",
287+ G_CALLBACK (drive_connected_cb), manager, 0);
288+#endif
289+ g_signal_connect_object (manager->priv->monitor, "volume-added",
290+ G_CALLBACK (volume_added_cb), manager, 0);
291+ g_signal_connect_object (manager->priv->monitor, "mount-added",
292+ G_CALLBACK (mount_added_cb), manager, 0);
293+
294+ /* TODO: handle eject buttons */
295+
296+#if 0
297+ mount_existing_volumes (manager);
298+#endif
299+
300+ return TRUE;
301+}
302+
303+void
304+gsd_mount_manager_stop (GsdMountManager *manager)
305+{
306+ g_debug ("Stopping mount manager");
307+}
308+
309+static void
310+gsd_mount_manager_dispose (GObject *object)
311+{
312+ GsdMountManager *manager = GSD_MOUNT_MANAGER (object);
313+
314+ if (manager->priv->monitor) {
315+ g_signal_handlers_disconnect_by_func
316+ (manager->priv->monitor, volume_added_cb, manager);
317+ g_signal_handlers_disconnect_by_func
318+ (manager->priv->monitor, mount_added_cb, manager);
319+ g_object_unref (manager->priv->monitor);
320+ manager->priv->monitor = NULL;
321+ }
322+
323+ G_OBJECT_CLASS (gsd_mount_manager_parent_class)->dispose (object);
324+}
325+
326+static void
327+gsd_mount_manager_init (GsdMountManager *manager)
328+{
329+ manager->priv = GSD_MOUNT_MANAGER_GET_PRIVATE (manager);
330+}
331+
332+static void
333+gsd_mount_manager_finalize (GObject *object)
334+{
335+ GsdMountManager *mount_manager;
336+
337+ g_return_if_fail (object != NULL);
338+ g_return_if_fail (GSD_IS_MOUNT_MANAGER (object));
339+
340+ mount_manager = GSD_MOUNT_MANAGER (object);
341+
342+ g_return_if_fail (mount_manager->priv != NULL);
343+
344+ G_OBJECT_CLASS (gsd_mount_manager_parent_class)->finalize (object);
345+}
346+
347+static void
348+gsd_mount_manager_class_init (GsdMountManagerClass *klass)
349+{
350+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
351+
352+ object_class->dispose = gsd_mount_manager_dispose;
353+ object_class->finalize = gsd_mount_manager_finalize;
354+
355+ g_type_class_add_private (klass, sizeof (GsdMountManagerPrivate));
356+}
357+
358+GsdMountManager *
359+gsd_mount_manager_new (void)
360+{
361+ if (manager_object != NULL) {
362+ g_object_ref (manager_object);
363+ } else {
364+ manager_object = g_object_new (GSD_TYPE_MOUNT_MANAGER, NULL);
365+ g_object_add_weak_pointer (manager_object,
366+ (gpointer *) &manager_object);
367+ }
368+
369+ return GSD_MOUNT_MANAGER (manager_object);
370+}
371diff --git a/plugins/mount/gsd-mount-manager.h b/plugins/mount/gsd-mount-manager.h
372new file mode 100644
373index 0000000..9093fff
374--- /dev/null
375+++ b/plugins/mount/gsd-mount-manager.h
376@@ -0,0 +1,58 @@
377+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
378+ *
379+ * Copyright (C) 2009 Intel Corporation
380+ *
381+ * This program is free software; you can redistribute it and/or modify it under
382+ * the terms of the GNU General Public License as published by the Free Software
383+ * Foundation; either version 2 of the License, or (at your option) any later
384+ * version.
385+ *
386+ * This program is distributed in the hope that it will be useful, but WITHOUT
387+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
388+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
389+ * details.
390+ *
391+ * You should have received a copy of the GNU General Public License along with
392+ * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
393+ * Place - Suite 330, Boston, MA 02111-1307, USA.
394+ *
395+ */
396+
397+#ifndef __GSD_MOUNT_MANAGER_H
398+#define __GSD_MOUNT_MANAGER_H
399+
400+#include <glib-object.h>
401+
402+G_BEGIN_DECLS
403+
404+#define GSD_TYPE_MOUNT_MANAGER (gsd_mount_manager_get_type ())
405+#define GSD_MOUNT_MANAGER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSD_TYPE_MOUNT_MANAGER, GsdMountManager))
406+#define GSD_MOUNT_MANAGER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GSD_TYPE_MOUNT_MANAGER, GsdMountManagerClass))
407+#define GSD_IS_MOUNT_MANAGER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSD_TYPE_MOUNT_MANAGER))
408+#define GSD_IS_MOUNT_MANAGER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GSD_TYPE_MOUNT_MANAGER))
409+#define GSD_MOUNT_MANAGER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GSD_TYPE_MOUNT_MANAGER, GsdMountManagerClass))
410+
411+typedef struct GsdMountManagerPrivate GsdMountManagerPrivate;
412+
413+typedef struct
414+{
415+ GObject parent;
416+ GsdMountManagerPrivate *priv;
417+} GsdMountManager;
418+
419+typedef struct
420+{
421+ GObjectClass parent_class;
422+} GsdMountManagerClass;
423+
424+GType gsd_mount_manager_get_type (void);
425+
426+GsdMountManager * gsd_mount_manager_new (void);
427+
428+gboolean gsd_mount_manager_start (GsdMountManager *manager,
429+ GError **error);
430+void gsd_mount_manager_stop (GsdMountManager *manager);
431+
432+G_END_DECLS
433+
434+#endif /* __GSD_MOUNT_MANAGER_H */
435diff --git a/plugins/mount/gsd-mount-plugin.c b/plugins/mount/gsd-mount-plugin.c
436new file mode 100644
437index 0000000..af295a5
438--- /dev/null
439+++ b/plugins/mount/gsd-mount-plugin.c
440@@ -0,0 +1,103 @@
441+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
442+ *
443+ * Copyright (C) 2009 Intel Corporation
444+ *
445+ * This program is free software; you can redistribute it and/or modify it under
446+ * the terms of the GNU General Public License as published by the Free Software
447+ * Foundation; either version 2, or (at your option) any later version.
448+ *
449+ * This program is distributed in the hope that it will be useful, but WITHOUT
450+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
451+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
452+ * details.
453+ *
454+ * You should have received a copy of the GNU General Public License along with
455+ * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
456+ * Place - Suite 330, Boston, MA 02111-1307, USA.
457+ *
458+ */
459+
460+#include <config.h>
461+
462+#include <glib/gi18n.h>
463+#include <gmodule.h>
464+#include <gnome-settings-daemon/gnome-settings-plugin.h>
465+
466+#include "gsd-mount-plugin.h"
467+#include "gsd-mount-manager.h"
468+
469+struct GsdMountPluginPrivate {
470+ GsdMountManager *manager;
471+};
472+
473+#define GSD_MOUNT_PLUGIN_GET_PRIVATE(object) (G_TYPE_INSTANCE_GET_PRIVATE ((object), GSD_TYPE_MOUNT_PLUGIN, GsdMountPluginPrivate))
474+
475+GNOME_SETTINGS_PLUGIN_REGISTER (GsdMountPlugin, gsd_mount_plugin)
476+
477+static void
478+gsd_mount_plugin_init (GsdMountPlugin *plugin)
479+{
480+ plugin->priv = GSD_MOUNT_PLUGIN_GET_PRIVATE (plugin);
481+
482+ g_debug ("GsdMountPlugin initializing");
483+
484+ plugin->priv->manager = gsd_mount_manager_new ();
485+}
486+
487+static void
488+gsd_mount_plugin_finalize (GObject *object)
489+{
490+ GsdMountPlugin *plugin;
491+
492+ g_return_if_fail (object != NULL);
493+ g_return_if_fail (GSD_IS_MOUNT_PLUGIN (object));
494+
495+ g_debug ("GsdMountPlugin finalizing");
496+
497+ plugin = GSD_MOUNT_PLUGIN (object);
498+
499+ g_return_if_fail (plugin->priv != NULL);
500+
501+ if (plugin->priv->manager != NULL) {
502+ g_object_unref (plugin->priv->manager);
503+ }
504+
505+ G_OBJECT_CLASS (gsd_mount_plugin_parent_class)->finalize (object);
506+}
507+
508+static void
509+impl_activate (GnomeSettingsPlugin *plugin)
510+{
511+ gboolean res;
512+ GError *error;
513+
514+ g_debug ("Activating mount plugin");
515+
516+ error = NULL;
517+ res = gsd_mount_manager_start (GSD_MOUNT_PLUGIN (plugin)->priv->manager, &error);
518+ if (! res) {
519+ g_warning ("Unable to start mount manager: %s", error->message);
520+ g_error_free (error);
521+ }
522+}
523+
524+static void
525+impl_deactivate (GnomeSettingsPlugin *plugin)
526+{
527+ g_debug ("Deactivating mount plugin");
528+ gsd_mount_manager_stop (GSD_MOUNT_PLUGIN (plugin)->priv->manager);
529+}
530+
531+static void
532+gsd_mount_plugin_class_init (GsdMountPluginClass *klass)
533+{
534+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
535+ GnomeSettingsPluginClass *plugin_class = GNOME_SETTINGS_PLUGIN_CLASS (klass);
536+
537+ object_class->finalize = gsd_mount_plugin_finalize;
538+
539+ plugin_class->activate = impl_activate;
540+ plugin_class->deactivate = impl_deactivate;
541+
542+ g_type_class_add_private (klass, sizeof (GsdMountPluginPrivate));
543+}
544diff --git a/plugins/mount/gsd-mount-plugin.h b/plugins/mount/gsd-mount-plugin.h
545new file mode 100644
546index 0000000..526a41f
547--- /dev/null
548+++ b/plugins/mount/gsd-mount-plugin.h
549@@ -0,0 +1,55 @@
550+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
551+ *
552+ * Copyright (C) 2009 Intel Corporation
553+ *
554+ * This program is free software; you can redistribute it and/or modify it under
555+ * the terms of the GNU General Public License as published by the Free Software
556+ * Foundation; either version 2, or (at your option) any later version.
557+ *
558+ * This program is distributed in the hope that it will be useful, but WITHOUT
559+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
560+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
561+ * details.
562+ *
563+ * You should have received a copy of the GNU General Public License along with
564+ * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
565+ * Place - Suite 330, Boston, MA 02111-1307, USA.
566+ *
567+ */
568+
569+#ifndef __GSD_MOUNT_PLUGIN_H__
570+#define __GSD_MOUNT_PLUGIN_H__
571+
572+#include <glib-object.h>
573+#include <gmodule.h>
574+#include <gnome-settings-daemon/gnome-settings-plugin.h>
575+
576+G_BEGIN_DECLS
577+
578+#define GSD_TYPE_MOUNT_PLUGIN (gsd_mount_plugin_get_type ())
579+#define GSD_MOUNT_PLUGIN(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSD_TYPE_MOUNT_PLUGIN, GsdMountPlugin))
580+#define GSD_MOUNT_PLUGIN_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GSD_TYPE_MOUNT_PLUGIN, GsdMountPluginClass))
581+#define GSD_IS_MOUNT_PLUGIN(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSD_TYPE_MOUNT_PLUGIN))
582+#define GSD_IS_MOUNT_PLUGIN_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GSD_TYPE_MOUNT_PLUGIN))
583+#define GSD_MOUNT_PLUGIN_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GSD_TYPE_MOUNT_PLUGIN, GsdMountPluginClass))
584+
585+typedef struct GsdMountPluginPrivate GsdMountPluginPrivate;
586+
587+typedef struct
588+{
589+ GnomeSettingsPlugin parent;
590+ GsdMountPluginPrivate *priv;
591+} GsdMountPlugin;
592+
593+typedef struct
594+{
595+ GnomeSettingsPluginClass parent_class;
596+} GsdMountPluginClass;
597+
598+GType gsd_mount_plugin_get_type (void) G_GNUC_CONST;
599+
600+G_MODULE_EXPORT GType register_gnome_settings_plugin (GTypeModule *module);
601+
602+G_END_DECLS
603+
604+#endif /* __GSD_MOUNT_PLUGIN_H__ */
605diff --git a/plugins/mount/mount.gnome-settings-plugin.in b/plugins/mount/mount.gnome-settings-plugin.in
606new file mode 100644
607index 0000000..ca29ad1
608--- /dev/null
609+++ b/plugins/mount/mount.gnome-settings-plugin.in
610@@ -0,0 +1,8 @@
611+[GNOME Settings Plugin]
612+Module=mount
613+IAge=0
614+_Name=Mount
615+_Description=Mount removable media
616+Authors=Ross Burton
617+Copyright=Copyright © 2009 Intel Corporation
618+Website=
diff --git a/meta-demoapps/recipes-gnome/gnome/gnome-settings-daemon_2.26.1.bb b/meta-demoapps/recipes-gnome/gnome/gnome-settings-daemon_2.26.1.bb
new file mode 100644
index 0000000000..cb216b2753
--- /dev/null
+++ b/meta-demoapps/recipes-gnome/gnome/gnome-settings-daemon_2.26.1.bb
@@ -0,0 +1,25 @@
1DESCRIPTION = "GNOME settings daemon"
2LICENSE = "GPL"
3DEPENDS = "libxklavier gnome-doc-utils gtk+ libglade libgnomekbd gnome-desktop librsvg libxml2 libart-lgpl"
4
5PR = "r3"
6
7inherit gnome
8
9SRC_URI += "file://desktop-moblin.patch;patch=1 \
10 file://gnome-settings-daemon-fix-gthread.patch;patch=1 \
11 file://mount-plugin.patch;patch=1 \
12 file://gnome-settings-daemon-2.24.0-catch-deviceadded.patch;patch=1 \
13 file://configurefix.patch;patch=1 \
14 file://mojito-cleanup.patch;patch=1"
15
16EXTRA_OECONF = "--disable-esd --x-includes=${STAGING_INCDIR} --x-libraries=${STAGING_LIBDIR}"
17ASNEEDED = ""
18
19FILES_${PN} += "${libdir}/gnome-settings-daemon-2.0/*.so ${libdir}/gnome-settings-daemon-2.0/*plugin \
20 ${datadir}/dbus-1/ \
21 ${datadir}/icon* \
22 ${datadir}/xsession*"
23
24FILES_${PN}-dbg += "${libdir}/gnome-settings-daemon-2.0/.debug"
25FILES_${PN}-dev += "${libdir}/gnome-settings-daemon-2.0/*.a ${libdir}/gnome-settings-daemon-2.0/*.la"
diff --git a/meta-demoapps/recipes-gnome/gnome/gnome-terminal/30f29e7d8e1b67c40cd18a7155ba30c4382692d5.patch b/meta-demoapps/recipes-gnome/gnome/gnome-terminal/30f29e7d8e1b67c40cd18a7155ba30c4382692d5.patch
new file mode 100644
index 0000000000..0358ed8a64
--- /dev/null
+++ b/meta-demoapps/recipes-gnome/gnome/gnome-terminal/30f29e7d8e1b67c40cd18a7155ba30c4382692d5.patch
@@ -0,0 +1,20 @@
1From 30f29e7d8e1b67c40cd18a7155ba30c4382692d5 Mon Sep 17 00:00:00 2001
2From: Seán de Búrca <leftmostcat@gmail.com>
3Date: Fri, 07 Aug 2009 00:38:52 +0000
4Subject: Remove useless Plural-Forms line which breaks build with gnome-doc-utils master
5
6---
7diff --git a/help/el/el.po b/help/el/el.po
8index ab77264..635b68f 100644
9--- a/help/el/el.po
10+++ b/help/el/el.po
11@@ -10,7 +10,6 @@ msgstr ""
12 "MIME-Version: 1.0\n"
13 "Content-Type: text/plain; charset=UTF-8\n"
14 "Content-Transfer-Encoding: 8bit\n"
15-"Plural-Forms: 2\n"
16 "X-Poedit-Language: Greek\n"
17 "X-Poedit-Country: GREECE\n"
18 "X-Generator: Lokalize 0.2\n"
19--
20cgit v0.8.3.1
diff --git a/meta-demoapps/recipes-gnome/gnome/gnome-terminal_2.26.3.bb b/meta-demoapps/recipes-gnome/gnome/gnome-terminal_2.26.3.bb
new file mode 100644
index 0000000000..73f0b99eac
--- /dev/null
+++ b/meta-demoapps/recipes-gnome/gnome/gnome-terminal_2.26.3.bb
@@ -0,0 +1,16 @@
1DESCRIPTION = "GNOME Terminal"
2LICENSE = "GPL"
3DEPENDS = "gtk+ glib-2.0 startup-notification dbus-glib vte"
4PR = "r2"
5
6inherit gnome
7
8SRC_URI += "file://30f29e7d8e1b67c40cd18a7155ba30c4382692d5.patch;patch=1"
9
10EXTRA_OECONF += "--disable-scrollkeeper"
11
12# Remove an autogenerated file that needs to be rebuilt
13do_configure_prepend () {
14 rm -f ${S}/src/terminal-type-builtins.c
15}
16
diff --git a/meta-demoapps/recipes-gnome/gnome/libgnomecanvas_2.20.0.bb b/meta-demoapps/recipes-gnome/gnome/libgnomecanvas_2.20.0.bb
new file mode 100644
index 0000000000..266d44b050
--- /dev/null
+++ b/meta-demoapps/recipes-gnome/gnome/libgnomecanvas_2.20.0.bb
@@ -0,0 +1,14 @@
1LICENSE = "GPL"
2SECTION = "x11/gnome/libs"
3DESCRIPTION = "A powerful object-oriented display"
4PR = "r2"
5
6inherit gnome
7
8DEPENDS = "libglade libart-lgpl virtual/gail"
9
10EXTRA_OECONF = "--disable-gtk-doc"
11
12FILES_${PN} += "${libdir}/libglade/*/libcanvas.so"
13FILES_${PN}-dbg += "${libdir}/libglade/*/.debug/"
14FILES_${PN}-dev += "${libdir}/libglade/*/libcanvas.*a"
diff --git a/meta-demoapps/recipes-gnome/gnome/libgnomekbd_2.26.0.bb b/meta-demoapps/recipes-gnome/gnome/libgnomekbd_2.26.0.bb
new file mode 100644
index 0000000000..f2e4ec533e
--- /dev/null
+++ b/meta-demoapps/recipes-gnome/gnome/libgnomekbd_2.26.0.bb
@@ -0,0 +1,14 @@
1DESCRIPTION = "GNOME keyboard library"
2LICENSE = "LGPL"
3
4DEPENDS = "gconf-dbus dbus libxklavier gtk+"
5
6inherit gnome
7
8do_configure_append() {
9 find ${S} -name Makefile | xargs sed -i s:'-I$(includedir)':'-I.':g
10 find ${S} -name Makefile | xargs sed -i s:'-I/usr/include':'-I${STAGING_INCDIR}':g
11}
12
13
14
diff --git a/meta-demoapps/recipes-gnome/libgsf/libgsf_1.14.5.bb b/meta-demoapps/recipes-gnome/libgsf/libgsf_1.14.5.bb
new file mode 100644
index 0000000000..10b6390722
--- /dev/null
+++ b/meta-demoapps/recipes-gnome/libgsf/libgsf_1.14.5.bb
@@ -0,0 +1,20 @@
1LICENSE = "GPL"
2SECTION = "libs"
3PR = "r0"
4
5DEPENDS= "libxml2 bzip2 glib-2.0 zlib"
6RDEPENDS = "gconf gnome-vfs"
7
8
9PACKAGES =+ "${PN}-gnome ${PN}-gnome-dev "
10
11FILES_${PN}-gnome = "${libdir}/libgsf-gnome-1.so.*"
12FILES_${PN}-gnome-dev = "${libdir}/libgsf-gnome-1.* ${includedir}/libgsf-1/gsf-gnome"
13
14inherit autotools pkgconfig gnome gconf
15
16EXTRA_OECONF = "\
17 --without-python \
18 --without-gnome \
19 --disable-gtk-doc \
20 --with-bz2"
diff --git a/meta-demoapps/recipes-gnome/libgtkstylus/files/gtkstylus.sh b/meta-demoapps/recipes-gnome/libgtkstylus/files/gtkstylus.sh
new file mode 100644
index 0000000000..b1302ede0e
--- /dev/null
+++ b/meta-demoapps/recipes-gnome/libgtkstylus/files/gtkstylus.sh
@@ -0,0 +1,5 @@
1#!/bin/sh
2
3GTK_MODULES=libgtkstylus.so
4
5export GTK_MODULES
diff --git a/meta-demoapps/recipes-gnome/libgtkstylus/libgtkstylus_0.5.bb b/meta-demoapps/recipes-gnome/libgtkstylus/libgtkstylus_0.5.bb
new file mode 100644
index 0000000000..f614048a16
--- /dev/null
+++ b/meta-demoapps/recipes-gnome/libgtkstylus/libgtkstylus_0.5.bb
@@ -0,0 +1,24 @@
1DESCRIPTION = "GTK plugin for stylus based systems"
2SECTION = "libs"
3DEPENDS = "gtk+"
4LICENSE = "LGPL"
5PR = "r2"
6
7inherit autotools
8
9SRC_URI = "http://burtonini.com/temp/${PN}-${PV}.tar.gz \
10 file://gtkstylus.sh"
11
12do_install_append() {
13 install -d ${D}/${sysconfdir}/X11/Xsession.d
14 install -m 755 ${WORKDIR}/gtkstylus.sh ${D}/${sysconfdir}/X11/Xsession.d/45gtkstylus
15}
16
17# Horrible but rpm falls over if you use '*'
18GTKVER = "2.10.0"
19
20FILES_${PN} = "${sysconfdir} \
21 ${libdir}/gtk-2.0/${GTKVER}/modules/libgtkstylus.so.*"
22FILES_${PN}-dbg += "${libdir}/gtk-2.0/${GTKVER}/modules/.debug"
23FILES_${PN}-dev += "${libdir}/gtk-2.0/${GTKVER}/modules/libgtkstylus.so \
24 ${libdir}/gtk-2.0/${GTKVER}/modules/libgtkstylus.*a"
diff --git a/meta-demoapps/recipes-gnome/wv/wv-1.2.0/pkgconfig.patch b/meta-demoapps/recipes-gnome/wv/wv-1.2.0/pkgconfig.patch
new file mode 100644
index 0000000000..136d89341f
--- /dev/null
+++ b/meta-demoapps/recipes-gnome/wv/wv-1.2.0/pkgconfig.patch
@@ -0,0 +1,13 @@
1Index: wv-1.2.0/wv-1.0.pc.in
2===================================================================
3--- wv-1.2.0.orig/wv-1.0.pc.in 2008-03-19 22:25:18.000000000 +0000
4+++ wv-1.2.0/wv-1.0.pc.in 2008-03-19 22:26:32.000000000 +0000
5@@ -6,5 +6,6 @@
6 Name: wvWare
7 Description: Word Document Filter library and utilities
8 Version: @VERSION@
9-Libs: -L${libdir} -lwv @WMF_LIBS@ @XML_LIBS@ @GLIB_LIBS@ @GSF_LIBS@ @PNG_LIBS@ @ZLIB_LIBS@ @LIBS@ -lm
10-Cflags: -I${includedir}/wv @GSF_CFLAGS@
11+Requires: libgsf-1
12+Libs: -L${libdir} -lwv @WMF_LIBS@ @XML_LIBS@ @PNG_LIBS@ @ZLIB_LIBS@ @LIBS@ -lm
13+Cflags: -I${includedir}/wv
diff --git a/meta-demoapps/recipes-gnome/wv/wv_1.2.0.bb b/meta-demoapps/recipes-gnome/wv/wv_1.2.0.bb
new file mode 100644
index 0000000000..c4c115b90e
--- /dev/null
+++ b/meta-demoapps/recipes-gnome/wv/wv_1.2.0.bb
@@ -0,0 +1,14 @@
1DESCRIPTION = "Programs for accessing Microsoft Word documents"
2HOMEPAGE = "http://wvware.sourceforge.net/"
3LICENSE = "GPLv2"
4DEPENDS = "libgsf glib-2.0"
5PR = "r3"
6
7SRC_URI = "${SOURCEFORGE_MIRROR}/wvware/wv-${PV}.tar.gz \
8 file://pkgconfig.patch;patch=1"
9
10inherit autotools pkgconfig
11
12S = "${WORKDIR}/${PN}-${PV}"
13
14EXTRA_OECONF = ""