diff options
author | Saul Wold <Saul.Wold@intel.com> | 2010-11-22 13:57:13 +0000 |
---|---|---|
committer | Richard Purdie <rpurdie@linux.intel.com> | 2010-11-22 13:57:13 +0000 |
commit | cfe12efb5ec9586dab6961f141d52b103bd8b1d1 (patch) | |
tree | 7108e22aa7ddf6cfc2f1b6c6b73a811187706ecb /meta-demoapps/recipes-gnome | |
parent | 762fd6b7b3b22d7a8cb80ef9e9ba62e7ef21af3e (diff) | |
download | poky-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')
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 @@ | |||
1 | DESCRIPTION = "AbiWord is free word processing program similar to Microsoft(r) Word" | ||
2 | HOMEPAGE = "http://www.abiword.org" | ||
3 | SECTION = "x11/office" | ||
4 | LICENSE = "GPLv2" | ||
5 | DEPENDS = "perl-native wv libgsf libglade libfribidi jpeg libpng libxml2" | ||
6 | RDEPENDS = "glibc-gconv-ibm850 glibc-gconv-cp1252 \ | ||
7 | glibc-gconv-iso8859-15 glibc-gconv-iso8859-1" | ||
8 | |||
9 | SRC_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 | ||
12 | SHRT_VER = "${@bb.data.getVar('PV',d,1).split('.')[0]}.${@bb.data.getVar('PV',d,1).split('.')[1]}" | ||
13 | |||
14 | FILES_${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 | |||
32 | inherit autotools pkgconfig | ||
33 | |||
34 | PARALLEL_MAKE = "" | ||
35 | |||
36 | EXTRA_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 | # | ||
45 | do_configure() { | ||
46 | cd ${S} | ||
47 | export NOCONFIGURE="no"; ./autogen.sh | ||
48 | oe_runconf | ||
49 | } | ||
50 | |||
51 | |||
52 | do_install_append() { | ||
53 | install -d ${D}${datadir}/pixmaps/ | ||
54 | mv ${D}${datadir}/icons/* ${D}${datadir}/pixmaps/ | ||
55 | } | ||
56 | |||
57 | PACKAGES += " abiword-clipart abiword-icons abiword-strings abiword-systemprofiles abiword-templates " | ||
58 | |||
59 | FILES_abiword-clipart += "${datadir}/abiword-${SHRT_VER}/clipart" | ||
60 | FILES_abiword-icons += "${datadir}/abiword-${SHRT_VER}/icons" | ||
61 | FILES_abiword-strings += "${datadir}/abiword-${SHRT_VER}/AbiWord/strings" | ||
62 | FILES_abiword-systemprofiles += "${datadir}/abiword-${SHRT_VER}/AbiWord/system.profile*" | ||
63 | FILES_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 @@ | |||
1 | require abiword-2.5.inc | ||
2 | |||
3 | EXTRA_OECONF += "--enable-embedded" | ||
4 | |||
5 | S = "${WORKDIR}/abiword-${PV}" | ||
6 | |||
7 | RCONFLICTS = "abiword" | ||
8 | RPROVIDES += "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 @@ | |||
1 | DESCRIPTION = "AbiWord is free word processing program similar to Microsoft(r) Word" | ||
2 | SECTION = "gnome/office" | ||
3 | HOMEPAGE = "http://www.abiword.org"" | ||
4 | LICENSE = "GPLv2" | ||
5 | |||
6 | DEPENDS = "libgsf libglade libfribidi libxml2 wv" | ||
7 | RRECOMMENDS = "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) | ||
13 | RELURI = "http://www.abiword.org/downloads/abiword/${PV}/source/abiword-${PV}.tar.gz" | ||
14 | RELSRC = "${WORKDIR}/abiword-${PV}/abi" | ||
15 | |||
16 | CVSURI = "cvs://anoncvs:anoncvs@anoncvs.abisource.com/cvsroot;module=abi" | ||
17 | CVSSRC = "${WORKDIR}/abi" | ||
18 | |||
19 | #want 2.x from 2.x.y for the installation directory | ||
20 | SHRT_VER = "${@bb.data.getVar('PV',d,1).split('.')[0]}.${@bb.data.getVar('PV',d,1).split('.')[1]}" | ||
21 | |||
22 | FILES_${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 | |||
32 | inherit autotools pkgconfig | ||
33 | |||
34 | PARALLEL_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 | |||
41 | EXTRA_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 | # | ||
51 | PACKAGES += " abiword-strings abiword-systemprofiles" | ||
52 | |||
53 | FILES_abiword-strings += "${datadir}/abiword-${SHRT_VER}/strings" | ||
54 | FILES_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 | # | ||
59 | do_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 @@ | |||
1 | require abiword-2.5.inc | ||
2 | |||
3 | PR = "r1" | ||
4 | |||
5 | RCONFLICTS = "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 @@ | |||
1 | require abiword.inc | ||
2 | |||
3 | PV="2.5.0+cvs${SRCDATE}" | ||
4 | PR = "r3" | ||
5 | |||
6 | SRC_URI = "${CVSURI}" | ||
7 | |||
8 | S = "${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 | |||
6 | Index: 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 \ | ||
19 | Index: 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 @@ | |||
1 | LICENSE = "GPL" | ||
2 | SECTION = "x11" | ||
3 | DEPENDS = "gtk+" | ||
4 | DESCRIPTION = "gcalctool is a powerful calculator" | ||
5 | PR = "r2" | ||
6 | |||
7 | SRC_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 | |||
11 | inherit autotools pkgconfig | ||
12 | |||
13 | EXTRA_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 @@ | |||
1 | LICENSE = "GPL" | ||
2 | SECTION = "x11" | ||
3 | DEPENDS = "gtk+ gnome-doc-utils" | ||
4 | DESCRIPTION = "gcalctool is a powerful calculator" | ||
5 | PR = "r0" | ||
6 | |||
7 | SRC_URI = "http://download.gnome.org/sources/${PN}/5.8/${PN}-${PV}.tar.gz \ | ||
8 | file://fix-includedir.patch;patch=1" | ||
9 | |||
10 | inherit autotools pkgconfig | ||
11 | |||
12 | EXTRA_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 @@ | |||
1 | Index: 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 | ||
5 | mouse, and acceleration settings getting lost after | ||
6 | resume, or when new devices gets plugged in. | ||
7 | |||
8 | diff --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 @@ | |||
1 | Index: 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 @@ | |||
1 | diff --git a/plugins/housekeeping/gsd-housekeeping-manager.c b/plugins/housekeeping/gsd-housekeeping-manager.c | ||
2 | index 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 (¤t_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 @@ | |||
1 | diff --git a/configure.ac b/configure.ac | ||
2 | index 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 | ||
13 | diff --git a/data/gnome-settings-daemon.schemas.in b/data/gnome-settings-daemon.schemas.in | ||
14 | index 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> | ||
47 | diff --git a/plugins/Makefile.am b/plugins/Makefile.am | ||
48 | index 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 \ | ||
59 | diff --git a/plugins/mount/Makefile.am b/plugins/mount/Makefile.am | ||
60 | new file mode 100644 | ||
61 | index 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@ | ||
104 | diff --git a/plugins/mount/gsd-mount-manager.c b/plugins/mount/gsd-mount-manager.c | ||
105 | new file mode 100644 | ||
106 | index 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 | +} | ||
371 | diff --git a/plugins/mount/gsd-mount-manager.h b/plugins/mount/gsd-mount-manager.h | ||
372 | new file mode 100644 | ||
373 | index 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 */ | ||
435 | diff --git a/plugins/mount/gsd-mount-plugin.c b/plugins/mount/gsd-mount-plugin.c | ||
436 | new file mode 100644 | ||
437 | index 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 | +} | ||
544 | diff --git a/plugins/mount/gsd-mount-plugin.h b/plugins/mount/gsd-mount-plugin.h | ||
545 | new file mode 100644 | ||
546 | index 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__ */ | ||
605 | diff --git a/plugins/mount/mount.gnome-settings-plugin.in b/plugins/mount/mount.gnome-settings-plugin.in | ||
606 | new file mode 100644 | ||
607 | index 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 @@ | |||
1 | DESCRIPTION = "GNOME settings daemon" | ||
2 | LICENSE = "GPL" | ||
3 | DEPENDS = "libxklavier gnome-doc-utils gtk+ libglade libgnomekbd gnome-desktop librsvg libxml2 libart-lgpl" | ||
4 | |||
5 | PR = "r3" | ||
6 | |||
7 | inherit gnome | ||
8 | |||
9 | SRC_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 | |||
16 | EXTRA_OECONF = "--disable-esd --x-includes=${STAGING_INCDIR} --x-libraries=${STAGING_LIBDIR}" | ||
17 | ASNEEDED = "" | ||
18 | |||
19 | FILES_${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 | |||
24 | FILES_${PN}-dbg += "${libdir}/gnome-settings-daemon-2.0/.debug" | ||
25 | FILES_${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 @@ | |||
1 | From 30f29e7d8e1b67c40cd18a7155ba30c4382692d5 Mon Sep 17 00:00:00 2001 | ||
2 | From: Seán de Búrca <leftmostcat@gmail.com> | ||
3 | Date: Fri, 07 Aug 2009 00:38:52 +0000 | ||
4 | Subject: Remove useless Plural-Forms line which breaks build with gnome-doc-utils master | ||
5 | |||
6 | --- | ||
7 | diff --git a/help/el/el.po b/help/el/el.po | ||
8 | index 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 | -- | ||
20 | cgit 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 @@ | |||
1 | DESCRIPTION = "GNOME Terminal" | ||
2 | LICENSE = "GPL" | ||
3 | DEPENDS = "gtk+ glib-2.0 startup-notification dbus-glib vte" | ||
4 | PR = "r2" | ||
5 | |||
6 | inherit gnome | ||
7 | |||
8 | SRC_URI += "file://30f29e7d8e1b67c40cd18a7155ba30c4382692d5.patch;patch=1" | ||
9 | |||
10 | EXTRA_OECONF += "--disable-scrollkeeper" | ||
11 | |||
12 | # Remove an autogenerated file that needs to be rebuilt | ||
13 | do_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 @@ | |||
1 | LICENSE = "GPL" | ||
2 | SECTION = "x11/gnome/libs" | ||
3 | DESCRIPTION = "A powerful object-oriented display" | ||
4 | PR = "r2" | ||
5 | |||
6 | inherit gnome | ||
7 | |||
8 | DEPENDS = "libglade libart-lgpl virtual/gail" | ||
9 | |||
10 | EXTRA_OECONF = "--disable-gtk-doc" | ||
11 | |||
12 | FILES_${PN} += "${libdir}/libglade/*/libcanvas.so" | ||
13 | FILES_${PN}-dbg += "${libdir}/libglade/*/.debug/" | ||
14 | FILES_${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 @@ | |||
1 | DESCRIPTION = "GNOME keyboard library" | ||
2 | LICENSE = "LGPL" | ||
3 | |||
4 | DEPENDS = "gconf-dbus dbus libxklavier gtk+" | ||
5 | |||
6 | inherit gnome | ||
7 | |||
8 | do_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 @@ | |||
1 | LICENSE = "GPL" | ||
2 | SECTION = "libs" | ||
3 | PR = "r0" | ||
4 | |||
5 | DEPENDS= "libxml2 bzip2 glib-2.0 zlib" | ||
6 | RDEPENDS = "gconf gnome-vfs" | ||
7 | |||
8 | |||
9 | PACKAGES =+ "${PN}-gnome ${PN}-gnome-dev " | ||
10 | |||
11 | FILES_${PN}-gnome = "${libdir}/libgsf-gnome-1.so.*" | ||
12 | FILES_${PN}-gnome-dev = "${libdir}/libgsf-gnome-1.* ${includedir}/libgsf-1/gsf-gnome" | ||
13 | |||
14 | inherit autotools pkgconfig gnome gconf | ||
15 | |||
16 | EXTRA_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 | |||
3 | GTK_MODULES=libgtkstylus.so | ||
4 | |||
5 | export 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 @@ | |||
1 | DESCRIPTION = "GTK plugin for stylus based systems" | ||
2 | SECTION = "libs" | ||
3 | DEPENDS = "gtk+" | ||
4 | LICENSE = "LGPL" | ||
5 | PR = "r2" | ||
6 | |||
7 | inherit autotools | ||
8 | |||
9 | SRC_URI = "http://burtonini.com/temp/${PN}-${PV}.tar.gz \ | ||
10 | file://gtkstylus.sh" | ||
11 | |||
12 | do_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 '*' | ||
18 | GTKVER = "2.10.0" | ||
19 | |||
20 | FILES_${PN} = "${sysconfdir} \ | ||
21 | ${libdir}/gtk-2.0/${GTKVER}/modules/libgtkstylus.so.*" | ||
22 | FILES_${PN}-dbg += "${libdir}/gtk-2.0/${GTKVER}/modules/.debug" | ||
23 | FILES_${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 @@ | |||
1 | Index: 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 @@ | |||
1 | DESCRIPTION = "Programs for accessing Microsoft Word documents" | ||
2 | HOMEPAGE = "http://wvware.sourceforge.net/" | ||
3 | LICENSE = "GPLv2" | ||
4 | DEPENDS = "libgsf glib-2.0" | ||
5 | PR = "r3" | ||
6 | |||
7 | SRC_URI = "${SOURCEFORGE_MIRROR}/wvware/wv-${PV}.tar.gz \ | ||
8 | file://pkgconfig.patch;patch=1" | ||
9 | |||
10 | inherit autotools pkgconfig | ||
11 | |||
12 | S = "${WORKDIR}/${PN}-${PV}" | ||
13 | |||
14 | EXTRA_OECONF = "" | ||