aboutsummaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-sato
diff options
context:
space:
mode:
authorMartin Jansa <Martin.Jansa@gmail.com>2012-07-30 23:46:49 +0200
committerMartin Jansa <Martin.Jansa@gmail.com>2012-07-31 00:14:55 +0200
commit5ebec60fc3ccdf082f516612c296fbd90f7b2e43 (patch)
tree74a2d92676bc6171359285f3a42f75e351cddfc2 /meta-oe/recipes-sato
parent5c13fc859ed4e05777a1ce5d8952c0dfbfe62278 (diff)
downloadmeta-openembedded-5ebec60fc3ccdf082f516612c296fbd90f7b2e43.tar.gz
claws-mail, sylpheed: import from meta-smartphone
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Diffstat (limited to 'meta-oe/recipes-sato')
-rw-r--r--meta-oe/recipes-sato/claws-mail/claws-mail-3.6.1/claws-mail-g_strcmp0.patch575
-rw-r--r--meta-oe/recipes-sato/claws-mail/claws-mail-3.6.1/desktop.patch19
-rw-r--r--meta-oe/recipes-sato/claws-mail/claws-mail-3.6.1/duplicate-header.patch10
-rw-r--r--meta-oe/recipes-sato/claws-mail/claws-mail-3.6.1/glib-2.32.patch11
-rw-r--r--meta-oe/recipes-sato/claws-mail/claws-mail_3.6.1.bb62
-rw-r--r--meta-oe/recipes-sato/claws-mail/claws-plugin-gtkhtml2-viewer_0.31.bb19
-rw-r--r--meta-oe/recipes-sato/claws-mail/claws-plugin-mailmbox-1.14/claws-plugin-mailmbox-fixup.patch218
-rw-r--r--meta-oe/recipes-sato/claws-mail/claws-plugin-mailmbox_1.14.bb19
-rw-r--r--meta-oe/recipes-sato/claws-mail/claws-plugin-rssyl_0.18.bb18
-rw-r--r--meta-oe/recipes-sato/claws-mail/sylpheed/glib-2.32.patch11
-rw-r--r--meta-oe/recipes-sato/claws-mail/sylpheed_2.7.1.bb37
11 files changed, 999 insertions, 0 deletions
diff --git a/meta-oe/recipes-sato/claws-mail/claws-mail-3.6.1/claws-mail-g_strcmp0.patch b/meta-oe/recipes-sato/claws-mail/claws-mail-3.6.1/claws-mail-g_strcmp0.patch
new file mode 100644
index 0000000000..17c213d732
--- /dev/null
+++ b/meta-oe/recipes-sato/claws-mail/claws-mail-3.6.1/claws-mail-g_strcmp0.patch
@@ -0,0 +1,575 @@
+http://www.thewildbeast.co.uk/claws-mail/bugzilla/show_bug.cgi?id=1773
+
+However using if (g_utf8_collate(foo1, foo2)) works and gives good results (at
+least if glibc or locale data are not broken), this usage is bad.
+
+If you need to just compare strings to get equal/non-equal return value, than
+using of four-pass locale wise lexicographic collating is purely superfluous.
+
+Using simpler functions like strcmp() or g_strcmp0() will give the same result
+5-50 times faster.
+
+In attached patch, I replaces all occurrences of upper mentioned use case.
+
+Stanislav Brabec
+
+diff -ur claws-mail-3.6.1.orig/src/addrcustomattr.c claws-mail-3.6.1/src/addrcustomattr.c
+--- claws-mail-3.6.1.orig/src/addrcustomattr.c 2008-07-25 23:01:29.000000000 +0200
++++ claws-mail-3.6.1/src/addrcustomattr.c 2008-11-14 14:27:12.000000000 +0100
+@@ -353,7 +353,7 @@
+ gchar *attr;
+ gtk_tree_model_get(model, iter, CUSTOM_ATTR_NAME, &attr, -1);
+
+- if (g_utf8_collate(data->attr, attr)==0) {
++ if (g_strcmp0(data->attr, attr)==0) {
+ data->path = path; /* signal we found it */
+ data->iter = *iter;
+ return TRUE;
+diff -ur claws-mail-3.6.1.orig/src/addressbook_foldersel.c claws-mail-3.6.1/src/addressbook_foldersel.c
+--- claws-mail-3.6.1.orig/src/addressbook_foldersel.c 2008-09-09 19:10:50.000000000 +0200
++++ claws-mail-3.6.1/src/addressbook_foldersel.c 2008-11-14 14:27:12.000000000 +0100
+@@ -392,12 +392,19 @@
+ corresponds to what we received */
+
+ if ( path != NULL ) {
+- if ( g_utf8_collate(path, _("Any")) == 0 || strcasecmp(path, "Any") ==0 || *path == '\0' )
++ /* FIXME: Do we really need to recognize "anY" (and translated form)? */
++ /* It's a bit more complicated than g_utf8_collate, but still much faster */
++ char *tmp1, *tmp2;
++ tmp1 = g_utf8_casefold(path, -1);
++ tmp2 = g_utf8_casefold(_("Any"), -1); /* FIXME: This should be done only once. */
++ if ( g_strcmp0(tmp1, tmp2) == 0 || g_ascii_strcasecmp(path, "Any") ==0 || *path == '\0' )
+ /* consider "Any" (both translated or untranslated forms) and ""
+ as valid addressbook roots */
+ folder_path_match.matched = TRUE;
+ else
+ folder_path_match.folder_path = g_strsplit( path, "/", 256 );
++ g_free(tmp1);
++ g_free(tmp2);
+ }
+
+ addressbook_foldersel_load_data( addrIndex, &folder_path_match );
+diff -ur claws-mail-3.6.1.orig/src/addrgather.c claws-mail-3.6.1/src/addrgather.c
+--- claws-mail-3.6.1.orig/src/addrgather.c 2008-09-09 19:10:50.000000000 +0200
++++ claws-mail-3.6.1/src/addrgather.c 2008-11-14 14:27:12.000000000 +0100
+@@ -507,7 +507,7 @@
+ for (i = 0; i < NUM_FIELDS; i++) {
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(addrgather_dlg.checkHeader[i]),
+ FALSE);
+- if (g_utf8_collate(_harv_headerNames_[i], HEADER_FROM) == 0)
++ if (g_strcmp0(_harv_headerNames_[i], HEADER_FROM) == 0)
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(addrgather_dlg.checkHeader[i]),
+ TRUE);
+ }
+diff -ur claws-mail-3.6.1.orig/src/common/mgutils.c claws-mail-3.6.1/src/common/mgutils.c
+--- claws-mail-3.6.1.orig/src/common/mgutils.c 2007-10-15 19:19:53.000000000 +0200
++++ claws-mail-3.6.1/src/common/mgutils.c 2008-11-14 14:27:12.000000000 +0100
+@@ -356,7 +356,7 @@
+ if( strlen( str ) > 0 ) {
+ node = list;
+ while( node ) {
+- if( g_utf8_collate( str, node->data ) == 0 )
++ if( g_strcmp0( str, node->data ) == 0 )
+ return FALSE;
+ node = g_slist_next( node );
+ }
+@@ -380,7 +380,7 @@
+ if( strlen( str ) > 0 ) {
+ node = list;
+ while( node ) {
+- if( g_utf8_collate( str, node->data ) == 0 )
++ if( g_strcmp0( str, node->data ) == 0 )
+ return FALSE;
+ node = g_list_next( node );
+ }
+diff -ur claws-mail-3.6.1.orig/src/compose.c claws-mail-3.6.1/src/compose.c
+--- claws-mail-3.6.1.orig/src/compose.c 2008-10-04 12:58:45.000000000 +0200
++++ claws-mail-3.6.1/src/compose.c 2008-11-14 14:27:12.000000000 +0100
+@@ -2399,7 +2399,7 @@
+ for (h_list = compose->header_list; h_list != NULL; h_list = h_list->next) {
+ entry = GTK_ENTRY(((ComposeHeaderEntry *)h_list->data)->entry);
+ if (gtk_entry_get_text(entry) &&
+- !g_utf8_collate(gtk_entry_get_text(entry), mailto)) {
++ !g_strcmp0(gtk_entry_get_text(entry), mailto)) {
+ if (yellow_initialised) {
+ gtk_widget_modify_base(
+ GTK_WIDGET(((ComposeHeaderEntry *)h_list->data)->entry),
+@@ -4858,7 +4858,7 @@
+ headerentry = ((ComposeHeaderEntry *)list->data);
+ headerentryname = gtk_entry_get_text(GTK_ENTRY(gtk_bin_get_child(GTK_BIN((headerentry->combo)))));
+
+- if (g_utf8_collate(headerentryname, to_hdr) == 0) {
++ if (g_strcmp0(headerentryname, to_hdr) == 0) {
+ const gchar *entstr = gtk_entry_get_text(GTK_ENTRY(headerentry->entry));
+ Xstrdup_a(str, entstr, return -1);
+ g_strstrip(str);
+@@ -4886,7 +4886,7 @@
+ headerentry = ((ComposeHeaderEntry *)list->data);
+ headerentryname = gtk_entry_get_text(GTK_ENTRY(gtk_bin_get_child(GTK_BIN((headerentry->combo)))));
+
+- if (g_utf8_collate(headerentryname, cc_hdr) == 0) {
++ if (g_strcmp0(headerentryname, cc_hdr) == 0) {
+ const gchar *strg = gtk_entry_get_text(GTK_ENTRY(headerentry->entry));
+ Xstrdup_a(str, strg, return -1);
+ g_strstrip(str);
+@@ -5760,7 +5760,7 @@
+ headerentry = ((ComposeHeaderEntry *)list->data);
+ headerentryname = gtk_entry_get_text(GTK_ENTRY(gtk_bin_get_child(GTK_BIN((headerentry->combo)))));
+
+- if (!g_utf8_collate(trans_fieldname, headerentryname)) {
++ if (!g_strcmp0(trans_fieldname, headerentryname)) {
+ str = gtk_editable_get_chars(GTK_EDITABLE(headerentry->entry), 0, -1);
+ g_strstrip(str);
+ if (str[0] != '\0') {
+diff -ur claws-mail-3.6.1.orig/src/customheader.c claws-mail-3.6.1/src/customheader.c
+--- claws-mail-3.6.1.orig/src/customheader.c 2007-07-11 18:33:01.000000000 +0200
++++ claws-mail-3.6.1/src/customheader.c 2008-11-14 14:27:12.000000000 +0100
+@@ -83,7 +83,7 @@
+
+ for (cur = header_list; cur != NULL; cur = cur->next) {
+ chdr = (CustomHeader *)cur->data;
+- if (!g_utf8_collate(chdr->name, header))
++ if (!g_strcmp0(chdr->name, header))
+ return chdr;
+ }
+
+diff -ur claws-mail-3.6.1.orig/src/exportldif.c claws-mail-3.6.1/src/exportldif.c
+--- claws-mail-3.6.1.orig/src/exportldif.c 2007-10-04 19:36:26.000000000 +0200
++++ claws-mail-3.6.1/src/exportldif.c 2008-11-14 14:27:12.000000000 +0100
+@@ -275,7 +275,7 @@
+ UserAttribute *attrib = node->data;
+
+ node = g_list_next( node );
+- if( g_utf8_collate( attrib->name, LDIF_TAG_DN ) == 0 ) {
++ if( g_strcmp0( attrib->name, LDIF_TAG_DN ) == 0 ) {
+ retVal = g_strdup( attrib->value );
+ break;
+ }
+diff -ur claws-mail-3.6.1.orig/src/gtk/combobox.c claws-mail-3.6.1/src/gtk/combobox.c
+--- claws-mail-3.6.1.orig/src/gtk/combobox.c 2008-08-29 10:37:19.000000000 +0200
++++ claws-mail-3.6.1/src/gtk/combobox.c 2008-11-14 14:27:12.000000000 +0100
+@@ -101,7 +101,7 @@
+ const gchar *curdata;
+
+ gtk_tree_model_get (GTK_TREE_MODEL(model), iter, 0, &curdata, -1);
+- if (!g_utf8_collate(data, curdata)) {
++ if (!g_strcmp0(data, curdata)) {
+ gtk_combo_box_set_active_iter(combobox, iter);
+ return TRUE;
+ }
+diff -ur claws-mail-3.6.1.orig/src/jpilot.c claws-mail-3.6.1/src/jpilot.c
+--- claws-mail-3.6.1.orig/src/jpilot.c 2008-10-01 09:10:29.000000000 +0200
++++ claws-mail-3.6.1/src/jpilot.c 2008-11-14 14:27:12.000000000 +0100
+@@ -1322,7 +1322,7 @@
+ }
+ }
+
+- if( g_utf8_collate( labelName, lbl ) == 0 ) {
++ if( g_strcmp0( labelName, lbl ) == 0 ) {
+ ind = i;
+ break;
+ }
+@@ -1640,7 +1640,7 @@
+ if( labelName ) {
+ node = pilotFile->customLabels;
+ while( node ) {
+- if( g_utf8_collate( labelName, ( gchar * ) node->data ) == 0 ) {
++ if( g_strcmp0( labelName, ( gchar * ) node->data ) == 0 ) {
+ retVal = TRUE;
+ break;
+ }
+diff -ur claws-mail-3.6.1.orig/src/ldapserver.c claws-mail-3.6.1/src/ldapserver.c
+--- claws-mail-3.6.1.orig/src/ldapserver.c 2007-08-22 18:08:33.000000000 +0200
++++ claws-mail-3.6.1/src/ldapserver.c 2008-11-14 14:27:12.000000000 +0100
+@@ -437,7 +437,7 @@
+ /* Search backwards for query */
+ while( node ) {
+ LdapQuery *qry = node->data;
+- if( g_utf8_collate( ADDRQUERY_SEARCHVALUE(qry), searchTerm ) == 0 ) {
++ if( g_strcmp0( ADDRQUERY_SEARCHVALUE(qry), searchTerm ) == 0 ) {
+ if( qry->agedFlag ) continue;
+ if( qry->completed ) {
+ /* Found */
+diff -ur claws-mail-3.6.1.orig/src/ldif.c claws-mail-3.6.1/src/ldif.c
+--- claws-mail-3.6.1.orig/src/ldif.c 2008-08-06 21:38:36.000000000 +0200
++++ claws-mail-3.6.1/src/ldif.c 2008-11-14 14:27:12.000000000 +0100
+@@ -536,19 +536,19 @@
+ }
+ g_strstrip( val );
+
+- if( g_utf8_collate( nm, LDIF_TAG_COMMONNAME ) == 0 ) {
++ if( g_strcmp0( nm, LDIF_TAG_COMMONNAME ) == 0 ) {
+ rec->listCName = g_slist_append( rec->listCName, val );
+ }
+- else if( g_utf8_collate( nm, LDIF_TAG_FIRSTNAME ) == 0 ) {
++ else if( g_strcmp0( nm, LDIF_TAG_FIRSTNAME ) == 0 ) {
+ rec->listFName = g_slist_append( rec->listFName, val );
+ }
+- else if( g_utf8_collate( nm, LDIF_TAG_LASTNAME ) == 0 ) {
++ else if( g_strcmp0( nm, LDIF_TAG_LASTNAME ) == 0 ) {
+ rec->listLName = g_slist_append( rec->listLName, val );
+ }
+- else if( g_utf8_collate( nm, LDIF_TAG_NICKNAME ) == 0 ) {
++ else if( g_strcmp0( nm, LDIF_TAG_NICKNAME ) == 0 ) {
+ rec->listNName = g_slist_append( rec->listNName, val );
+ }
+- else if( g_utf8_collate( nm, LDIF_TAG_EMAIL ) == 0 ) {
++ else if( g_strcmp0( nm, LDIF_TAG_EMAIL ) == 0 ) {
+ rec->listAddress = g_slist_append( rec->listAddress, val );
+ }
+ else {
+@@ -759,27 +759,27 @@
+ gchar *key = g_strdup( tag );
+
+ rec = ldif_create_fieldrec( tag );
+- if( g_utf8_collate( tag, LDIF_TAG_DN ) == 0 ) {
++ if( g_strcmp0( tag, LDIF_TAG_DN ) == 0 ) {
+ rec->reserved = rec->selected = TRUE;
+ rec->userName = g_strdup( "dn" );
+ }
+- else if( g_utf8_collate( tag, LDIF_TAG_COMMONNAME ) == 0 ) {
++ else if( g_strcmp0( tag, LDIF_TAG_COMMONNAME ) == 0 ) {
+ rec->reserved = rec->selected = TRUE;
+ rec->userName = g_strdup( _( "Display Name" ) );
+ }
+- else if( g_utf8_collate( tag, LDIF_TAG_FIRSTNAME ) == 0 ) {
++ else if( g_strcmp0( tag, LDIF_TAG_FIRSTNAME ) == 0 ) {
+ rec->reserved = rec->selected = TRUE;
+ rec->userName = g_strdup( _( "First Name" ) );
+ }
+- else if( g_utf8_collate( tag, LDIF_TAG_LASTNAME ) == 0 ) {
++ else if( g_strcmp0( tag, LDIF_TAG_LASTNAME ) == 0 ) {
+ rec->reserved = rec->selected = TRUE;
+ rec->userName = g_strdup( _( "Last Name" ) );
+ }
+- else if( g_utf8_collate( tag, LDIF_TAG_NICKNAME ) == 0 ) {
++ else if( g_strcmp0( tag, LDIF_TAG_NICKNAME ) == 0 ) {
+ rec->reserved = rec->selected = TRUE;
+ rec->userName = g_strdup( _( "Nick Name" ) );
+ }
+- else if( g_utf8_collate( tag, LDIF_TAG_EMAIL ) == 0 ) {
++ else if( g_strcmp0( tag, LDIF_TAG_EMAIL ) == 0 ) {
+ rec->reserved = rec->selected = TRUE;
+ rec->userName = g_strdup( _( "Email Address" ) );
+ }
+@@ -894,7 +894,7 @@
+ /* Add tag to list */
+ listTags = g_slist_append( listTags, tagName );
+
+- if( g_utf8_collate(
++ if( g_strcmp0(
+ tagName, LDIF_TAG_EMAIL ) == 0 )
+ {
+ flagMail = TRUE;
+diff -ur claws-mail-3.6.1.orig/src/plugins/bogofilter/bogofilter_gtk.c claws-mail-3.6.1/src/plugins/bogofilter/bogofilter_gtk.c
+--- claws-mail-3.6.1.orig/src/plugins/bogofilter/bogofilter_gtk.c 2008-09-09 19:10:52.000000000 +0200
++++ claws-mail-3.6.1/src/plugins/bogofilter/bogofilter_gtk.c 2008-11-14 14:27:12.000000000 +0100
+@@ -296,7 +296,7 @@
+ config->whitelist_ab_folder);
+ else
+ /* backward compatibility (when translated "Any" was stored) */
+- if (g_utf8_collate(config->whitelist_ab_folder, _("Any")) == 0)
++ if (g_strcmp0(config->whitelist_ab_folder, _("Any")) == 0)
+ gtk_entry_set_text(GTK_ENTRY(gtk_bin_get_child(GTK_BIN((whitelist_ab_folder_combo)))),
+ config->whitelist_ab_folder);
+ else
+@@ -373,7 +373,7 @@
+ config->whitelist_ab_folder = gtk_editable_get_chars(
+ GTK_EDITABLE(gtk_bin_get_child(GTK_BIN((page->whitelist_ab_folder_combo)))), 0, -1);
+ /* store UNtranslated "Any" */
+- if (g_utf8_collate(config->whitelist_ab_folder, _("Any")) == 0) {
++ if (g_strcmp0(config->whitelist_ab_folder, _("Any")) == 0) {
+ g_free(config->whitelist_ab_folder);
+ config->whitelist_ab_folder = g_strdup("Any");
+ }
+diff -ur claws-mail-3.6.1.orig/src/plugins/dillo_viewer/dillo_prefs.c claws-mail-3.6.1/src/plugins/dillo_viewer/dillo_prefs.c
+--- claws-mail-3.6.1.orig/src/plugins/dillo_viewer/dillo_prefs.c 2008-08-07 18:38:59.000000000 +0200
++++ claws-mail-3.6.1/src/plugins/dillo_viewer/dillo_prefs.c 2008-11-14 14:27:12.000000000 +0100
+@@ -209,7 +209,7 @@
+ _("Any"));
+ else
+ /* backward compatibility (when translated "Any" was stored) */
+- if (g_utf8_collate(dillo_prefs.whitelist_ab_folder, _("Any")) == 0)
++ if (g_strcmp0(dillo_prefs.whitelist_ab_folder, _("Any")) == 0)
+ gtk_entry_set_text(GTK_ENTRY(gtk_bin_get_child(GTK_BIN((whitelist_ab_folder_combo)))),
+ dillo_prefs.whitelist_ab_folder);
+ else
+@@ -272,7 +272,7 @@
+ dillo_prefs.whitelist_ab_folder = gtk_editable_get_chars(
+ GTK_EDITABLE(gtk_bin_get_child(GTK_BIN((prefs_page->whitelist_ab_folder_combo)))), 0, -1);
+ /* store UNtranslated "Any" */
+- if (g_utf8_collate(dillo_prefs.whitelist_ab_folder, _("Any")) == 0) {
++ if (g_strcmp0(dillo_prefs.whitelist_ab_folder, _("Any")) == 0) {
+ g_free(dillo_prefs.whitelist_ab_folder);
+ dillo_prefs.whitelist_ab_folder = g_strdup("Any");
+ }
+diff -ur claws-mail-3.6.1.orig/src/plugins/spamassassin/spamassassin_gtk.c claws-mail-3.6.1/src/plugins/spamassassin/spamassassin_gtk.c
+--- claws-mail-3.6.1.orig/src/plugins/spamassassin/spamassassin_gtk.c 2008-09-09 19:10:52.000000000 +0200
++++ claws-mail-3.6.1/src/plugins/spamassassin/spamassassin_gtk.c 2008-11-14 14:27:12.000000000 +0100
+@@ -480,7 +480,7 @@
+ config->whitelist_ab_folder);
+ else
+ /* backward compatibility (when translated "Any" was stored) */
+- if (g_utf8_collate(config->whitelist_ab_folder, _("Any")) == 0)
++ if (g_strcmp0(config->whitelist_ab_folder, _("Any")) == 0)
+ gtk_entry_set_text(GTK_ENTRY(gtk_bin_get_child(GTK_BIN((whitelist_ab_folder_combo)))),
+ config->whitelist_ab_folder);
+ else
+@@ -603,7 +603,7 @@
+ config->whitelist_ab_folder = gtk_editable_get_chars(
+ GTK_EDITABLE(gtk_bin_get_child(GTK_BIN((page->whitelist_ab_folder_combo)))), 0, -1);
+ /* store UNtranslated "Any" */
+- if (g_utf8_collate(config->whitelist_ab_folder, _("Any")) == 0) {
++ if (g_strcmp0(config->whitelist_ab_folder, _("Any")) == 0) {
+ g_free(config->whitelist_ab_folder);
+ config->whitelist_ab_folder = g_strdup("Any");
+ }
+diff -ur claws-mail-3.6.1.orig/src/prefs_matcher.c claws-mail-3.6.1/src/prefs_matcher.c
+--- claws-mail-3.6.1.orig/src/prefs_matcher.c 2008-10-08 20:23:51.000000000 +0200
++++ claws-mail-3.6.1/src/prefs_matcher.c 2008-11-14 14:27:12.000000000 +0100
+@@ -1484,10 +1484,10 @@
+ if (*expr == '\0') {
+ gchar *tmp;
+
+- if (g_utf8_collate(header, Q_("Filtering Matcher Menu|All")) == 0)
++ if (g_strcmp0(header, Q_("Filtering Matcher Menu|All")) == 0)
+ tmp = g_strdup(_("all addresses in all headers"));
+ else
+- if (g_utf8_collate(header, _("Any")) == 0)
++ if (g_strcmp0(header, _("Any")) == 0)
+ tmp = g_strdup(_("any address in any header"));
+ else
+ tmp = g_strdup_printf(_("the address(es) in header '%s'"), header);
+@@ -1499,12 +1499,12 @@
+ return NULL;
+ }
+ /* store UNtranslated "Any"/"All" in matcher expressions */
+- if (g_utf8_collate(header, Q_("Filtering Matcher Menu|All")) == 0)
++ if (g_strcmp0(header, Q_("Filtering Matcher Menu|All")) == 0)
+ header = "All";
+ else
+- if (g_utf8_collate(header, _("Any")) == 0)
++ if (g_strcmp0(header, _("Any")) == 0)
+ header = "Any";
+- if (g_utf8_collate(expr, _("Any")) == 0)
++ if (g_strcmp0(expr, _("Any")) == 0)
+ expr = "Any";
+ break;
+ }
+diff -ur claws-mail-3.6.1.orig/src/prefs_toolbar.c claws-mail-3.6.1/src/prefs_toolbar.c
+--- claws-mail-3.6.1.orig/src/prefs_toolbar.c 2008-09-09 19:10:50.000000000 +0200
++++ claws-mail-3.6.1/src/prefs_toolbar.c 2008-11-14 14:27:12.000000000 +0100
+@@ -391,7 +391,7 @@
+ gtk_tree_model_get(model_set, &iter,
+ SET_EVENT, &entry,
+ -1);
+- if (g_utf8_collate(chosen_action, entry) == 0)
++ if (g_strcmp0(chosen_action, entry) == 0)
+ result = TRUE;
+ g_free(entry);
+ } while (!result && gtk_tree_model_iter_next(model_set, &iter));
+@@ -551,7 +551,7 @@
+ prefs_toolbar->item_func_combo));
+
+ if (is_duplicate(prefs_toolbar, icon_event)
+- && g_utf8_collate(icon_event, set_event) != 0){
++ && g_strcmp0(icon_event, set_event) != 0){
+ alertpanel_error(ERROR_MSG);
+ g_free(icon_event);
+ g_free(set_event);
+@@ -1179,7 +1179,7 @@
+ gtk_button_set_image(GTK_BUTTON(prefs_toolbar->icon_button),
+ gtk_image_new_from_pixbuf(pix));
+
+- if (g_utf8_collate(toolbar_ret_descr_from_val(A_SEPARATOR), descr) == 0) {
++ if (g_strcmp0(toolbar_ret_descr_from_val(A_SEPARATOR), descr) == 0) {
+ gtk_button_set_label(GTK_BUTTON(prefs_toolbar->icon_button),
+ _("None"));
+ g_free(prefs_toolbar->item_icon_file);
+@@ -1196,7 +1196,7 @@
+ gtk_entry_set_text(GTK_ENTRY(prefs_toolbar->item_text_entry),
+ icon_text);
+
+- if (g_utf8_collate(toolbar_ret_descr_from_val(A_CLAWS_ACTIONS), descr) == 0) {
++ if (g_strcmp0(toolbar_ret_descr_from_val(A_CLAWS_ACTIONS), descr) == 0) {
+ gtk_combo_box_set_active(GTK_COMBO_BOX(
+ prefs_toolbar->item_type_combo), ITEM_USER_ACTION);
+
+@@ -1205,7 +1205,7 @@
+ gchar *item_string;
+ get_action_name((gchar *)cur2->data, &item_string);
+
+- if(g_utf8_collate(item_string, icon_text) == 0) {
++ if(g_strcmp0(item_string, icon_text) == 0) {
+ gtk_combo_box_set_active(
+ GTK_COMBO_BOX(prefs_toolbar->item_action_combo),
+ item_num);
+@@ -1231,7 +1231,7 @@
+ for (cur = prefs_toolbar->combo_action_list, item_num = 0; cur != NULL;
+ cur = cur->next) {
+ gchar *item_str = (gchar*)cur->data;
+- if (g_utf8_collate(item_str, descr) == 0) {
++ if (g_strcmp0(item_str, descr) == 0) {
+ gtk_combo_box_set_active(
+ GTK_COMBO_BOX(prefs_toolbar->item_func_combo),
+ item_num);
+diff -ur claws-mail-3.6.1.orig/src/procmime.c claws-mail-3.6.1/src/procmime.c
+--- claws-mail-3.6.1.orig/src/procmime.c 2008-10-01 09:10:29.000000000 +0200
++++ claws-mail-3.6.1/src/procmime.c 2008-11-14 14:27:12.000000000 +0100
+@@ -1020,14 +1020,6 @@
+ return hash_result;
+ }
+
+-static gint procmime_str_equal(gconstpointer gptr1, gconstpointer gptr2)
+-{
+- const char *str1 = gptr1;
+- const char *str2 = gptr2;
+-
+- return !g_utf8_collate(str1, str2);
+-}
+-
+ static GHashTable *procmime_get_mime_type_table(void)
+ {
+ GHashTable *table = NULL;
+@@ -1040,7 +1032,7 @@
+ if (!mime_type_list) return NULL;
+ }
+
+- table = g_hash_table_new(procmime_str_hash, procmime_str_equal);
++ table = g_hash_table_new(procmime_str_hash, g_str_equal);
+
+ for (cur = mime_type_list; cur != NULL; cur = cur->next) {
+ gint i;
+diff -ur claws-mail-3.6.1.orig/src/summaryview.c claws-mail-3.6.1/src/summaryview.c
+--- claws-mail-3.6.1.orig/src/summaryview.c 2008-10-09 20:17:53.000000000 +0200
++++ claws-mail-3.6.1/src/summaryview.c 2008-11-14 14:27:12.000000000 +0100
+@@ -4240,7 +4240,7 @@
+ g_strdup_printf("%s",
+ account->address);
+
+- if (g_utf8_collate(from_name, msginfo->from) == 0) {
++ if (g_strcmp0(from_name, msginfo->from) == 0) {
+ g_free(from_name);
+ found = TRUE;
+ break;
+diff -ur claws-mail-3.6.1.orig/src/toolbar.c claws-mail-3.6.1/src/toolbar.c
+--- claws-mail-3.6.1.orig/src/toolbar.c 2008-09-13 12:07:43.000000000 +0200
++++ claws-mail-3.6.1/src/toolbar.c 2008-11-14 14:39:07.000000000 +0100
+@@ -236,7 +236,7 @@
+ gint i;
+
+ for (i = 0; i < N_ACTION_VAL; i++) {
+- if (g_utf8_collate(gettext(toolbar_text[i].descr), descr) == 0)
++ if (g_strcmp0(gettext(toolbar_text[i].descr), descr) == 0)
+ return i;
+ }
+
+@@ -255,7 +255,7 @@
+ gint i;
+
+ for (i = 0; i < N_ACTION_VAL; i++) {
+- if (g_utf8_collate(toolbar_text[i].index_str, text) == 0)
++ if (g_strcmp0(toolbar_text[i].index_str, text) == 0)
+ return i;
+ }
+
+@@ -346,11 +346,11 @@
+ name = ((XMLAttr *)attr->data)->name;
+ value = ((XMLAttr *)attr->data)->value;
+
+- if (g_utf8_collate(name, TOOLBAR_ICON_FILE) == 0)
++ if (g_strcmp0(name, TOOLBAR_ICON_FILE) == 0)
+ item->file = g_strdup (value);
+- else if (g_utf8_collate(name, TOOLBAR_ICON_TEXT) == 0)
++ else if (g_strcmp0(name, TOOLBAR_ICON_TEXT) == 0)
+ item->text = g_strdup (gettext(value));
+- else if (g_utf8_collate(name, TOOLBAR_ICON_ACTION) == 0)
++ else if (g_strcmp0(name, TOOLBAR_ICON_ACTION) == 0)
+ item->index = toolbar_ret_val_from_text(value);
+ if (item->index == -1 && !strcmp(value, "A_DELETE")) {
+ /* switch button */
+@@ -821,7 +821,7 @@
+
+ action_p = strstr(action, ": ");
+ action_p[0] = 0x00;
+- if (g_utf8_collate(act->name, action) == 0) {
++ if (g_strcmp0(act->name, action) == 0) {
+ found = TRUE;
+ g_free(action);
+ break;
+diff -ur claws-mail-3.6.1.orig/src/vcard.c claws-mail-3.6.1/src/vcard.c
+--- claws-mail-3.6.1.orig/src/vcard.c 2008-08-06 21:38:43.000000000 +0200
++++ claws-mail-3.6.1/src/vcard.c 2008-11-14 14:27:12.000000000 +0100
+@@ -348,7 +348,7 @@
+ str = nodeRemarks->data;
+ if( nodeRemarks ) {
+ if( str ) {
+- if( g_utf8_collate( str, "internet" ) != 0 ) {
++ if( g_strcmp0( str, "internet" ) != 0 ) {
+ if( *str != '\0' )
+ addritem_email_set_remarks( email, str );
+ }
+@@ -442,7 +442,7 @@
+ /* g_print( "\ttype: %s\n", tagtype ); */
+ /* g_print( "\tvalue: %s\n", tagvalue ); */
+
+- if( g_utf8_collate( tagtype, VCARD_TYPE_QP ) == 0 ) {
++ if( g_strcmp0( tagtype, VCARD_TYPE_QP ) == 0 ) {
+ gchar *tmp;
+ /* Quoted-Printable: could span multiple lines */
+ tagvalue = vcard_read_qp( cardFile, tagvalue );
+@@ -452,26 +452,26 @@
+ /* g_print( "QUOTED-PRINTABLE !!! final\n>%s<\n", tagvalue ); */
+ }
+
+- if( g_utf8_collate( tagname, VCARD_TAG_START ) == 0 &&
++ if( g_strcmp0( tagname, VCARD_TAG_START ) == 0 &&
+ g_ascii_strcasecmp( tagvalue, VCARD_NAME ) == 0 ) {
+ /* g_print( "start card\n" ); */
+ vcard_free_lists( listName, listAddress, listRemarks, listID );
+ listName = listAddress = listRemarks = listID = NULL;
+ }
+- if( g_utf8_collate( tagname, VCARD_TAG_FULLNAME ) == 0 ) {
++ if( g_strcmp0( tagname, VCARD_TAG_FULLNAME ) == 0 ) {
+ /* g_print( "- full name: %s\n", tagvalue ); */
+ listName = g_slist_append( listName, g_strdup( tagvalue ) );
+ }
+- if( g_utf8_collate( tagname, VCARD_TAG_EMAIL ) == 0 ) {
++ if( g_strcmp0( tagname, VCARD_TAG_EMAIL ) == 0 ) {
+ /* g_print( "- address: %s\n", tagvalue ); */
+ listAddress = g_slist_append( listAddress, g_strdup( tagvalue ) );
+ listRemarks = g_slist_append( listRemarks, g_strdup( tagtype ) );
+ }
+- if( g_utf8_collate( tagname, VCARD_TAG_UID ) == 0 ) {
++ if( g_strcmp0( tagname, VCARD_TAG_UID ) == 0 ) {
+ /* g_print( "- id: %s\n", tagvalue ); */
+ listID = g_slist_append( listID, g_strdup( tagvalue ) );
+ }
+- if( g_utf8_collate( tagname, VCARD_TAG_END ) == 0 &&
++ if( g_strcmp0( tagname, VCARD_TAG_END ) == 0 &&
+ g_ascii_strcasecmp( tagvalue, VCARD_NAME ) == 0 ) {
+ /* vCard is complete */
+ /* g_print( "end card\n--\n" ); */
+@@ -659,7 +659,7 @@
+ tagtemp = NULL;
+ }
+
+- if( g_utf8_collate( tagtype, VCARD_TYPE_QP ) == 0 ) {
++ if( g_strcmp0( tagtype, VCARD_TYPE_QP ) == 0 ) {
+ gchar *tmp;
+ /* Quoted-Printable: could span multiple lines */
+ tagvalue = vcard_read_qp( cardFile, tagvalue );
+@@ -667,11 +667,11 @@
+ g_free(tagvalue);
+ tagvalue=tmp;
+ }
+- if( g_utf8_collate( tagname, VCARD_TAG_START ) == 0 &&
++ if( g_strcmp0( tagname, VCARD_TAG_START ) == 0 &&
+ g_ascii_strcasecmp( tagvalue, VCARD_NAME ) == 0 ) {
+ haveStart = TRUE;
+ }
+- if( g_utf8_collate( tagname, VCARD_TAG_END ) == 0 &&
++ if( g_strcmp0( tagname, VCARD_TAG_END ) == 0 &&
+ g_ascii_strcasecmp( tagvalue, VCARD_NAME ) == 0 ) {
+ /* vCard is complete */
+ if( haveStart ) cardFile->retVal = MGU_SUCCESS;
diff --git a/meta-oe/recipes-sato/claws-mail/claws-mail-3.6.1/desktop.patch b/meta-oe/recipes-sato/claws-mail/claws-mail-3.6.1/desktop.patch
new file mode 100644
index 0000000000..c5ed7a9c7d
--- /dev/null
+++ b/meta-oe/recipes-sato/claws-mail/claws-mail-3.6.1/desktop.patch
@@ -0,0 +1,19 @@
+Index: claws-mail-2.9.1/claws-mail.desktop
+===================================================================
+--- claws-mail-2.9.1.orig/claws-mail.desktop 2007-04-24 17:40:20.000000000 +0100
++++ claws-mail-2.9.1/claws-mail.desktop 2007-04-25 07:08:36.000000000 +0100
+@@ -1,11 +1,11 @@
+ [Desktop Entry]
+ Encoding=UTF-8
+-Name=Claws Mail
++Name=Mail
+ Exec=claws-mail
+ Icon=claws-mail
+-Info="Claws Mail"
++Info=Email Application
+ Categories=GTK;Network;Email;
+-Comment="Gtk+ based Mail Client"
++Comment=Email Application
+ Terminal=false
+ Type=Application
+ StartupNotify=true
diff --git a/meta-oe/recipes-sato/claws-mail/claws-mail-3.6.1/duplicate-header.patch b/meta-oe/recipes-sato/claws-mail/claws-mail-3.6.1/duplicate-header.patch
new file mode 100644
index 0000000000..3c25ca1da2
--- /dev/null
+++ b/meta-oe/recipes-sato/claws-mail/claws-mail-3.6.1/duplicate-header.patch
@@ -0,0 +1,10 @@
+--- claws-mail-3.6.1/src/gtk/Makefile.am-orig 2008-10-10 00:17:55.000000000 -0700
++++ claws-mail-3.6.1/src/gtk/Makefile.am 2010-03-28 16:08:40.000000000 -0700
+@@ -62,7 +62,6 @@ clawsgtkinclude_HEADERS = \
+ menu.h \
+ pluginwindow.h \
+ prefswindow.h \
+- gtkvscrollbutton.h \
+ progressdialog.h \
+ quicksearch.h \
+ sslcertwindow.h \
diff --git a/meta-oe/recipes-sato/claws-mail/claws-mail-3.6.1/glib-2.32.patch b/meta-oe/recipes-sato/claws-mail/claws-mail-3.6.1/glib-2.32.patch
new file mode 100644
index 0000000000..c0faedb303
--- /dev/null
+++ b/meta-oe/recipes-sato/claws-mail/claws-mail-3.6.1/glib-2.32.patch
@@ -0,0 +1,11 @@
+--- claws-mail-3.6.1.orig/src/common/defs.h 2007-12-18 09:20:54.000000000 +0100
++++ claws-mail-3.6.1/src/common/defs.h 2012-05-06 08:17:56.049692494 +0200
+@@ -24,8 +24,6 @@
+ # include "config.h"
+ #endif
+
+-#include <glibconfig.h>
+-
+ #ifdef G_OS_WIN32
+ # include <glib/gwin32.h>
+ #endif
diff --git a/meta-oe/recipes-sato/claws-mail/claws-mail_3.6.1.bb b/meta-oe/recipes-sato/claws-mail/claws-mail_3.6.1.bb
new file mode 100644
index 0000000000..3c858d083e
--- /dev/null
+++ b/meta-oe/recipes-sato/claws-mail/claws-mail_3.6.1.bb
@@ -0,0 +1,62 @@
+SECTION = "x11/network"
+DESCRIPTION = "Mail user agent"
+DEPENDS = "gtk+ libetpan openssl aspell"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e059bde2972c1790af786f3e86bac22e"
+
+PR = "r1"
+
+inherit autotools pkgconfig gettext
+
+# translation patch: http://www.thewildbeast.co.uk/claws-mail/bugzilla/show_bug.cgi?id=1774
+SRC_URI = "\
+ ${SOURCEFORGE_MIRROR}/sylpheed-claws/claws-mail-${PV}.tar.bz2;name=archive \
+ http://www.penguin.cz/~utx/ftp/claws-mail/claws-mail-${PV}-po-update.patch;name=patch \
+ file://desktop.patch \
+ file://claws-mail-g_strcmp0.patch \
+ file://duplicate-header.patch \
+ file://glib-2.32.patch \
+ "
+SRC_URI[archive.md5sum] = "761b8ae2d574588460a0fb1ea4931ccb"
+SRC_URI[archive.sha256sum] = "67337a4a1a5a5ce09f2a38422b7a6fc481e4747f74d4ddedd130d4fb06fc3907"
+SRC_URI[patch.md5sum] = "e8ff3fabf1ed47f3b11a9cdc36b026bd"
+SRC_URI[patch.sha256sum] = "767258dd7c966e14ed519affe4c0da93e8fff66ee5fe9158413c8d163af72db8"
+
+do_configure_append() {
+ cd po ; for PO in *.po ; do MO=`echo $PO | sed s/\\.po//`.gmo ; if ! test -f $MO ; then msgfmt $PO -o $MO ; fi ; done
+}
+
+# FIXME: maemo builds may want --enable-maemo
+# FIXME: some platforms may want --enable-generic-umpc
+EXTRA_OECONF = " \
+ --disable-aspell-test \
+ --enable-aspell \
+ --disable-manual \
+ --disable-crash-dialog \
+ --disable-jpilot \
+ --disable-trayicon-plugin \
+ --disable-spamassassin-plugin \
+ --disable-bogofilter-plugin \
+ --disable-pgpcore-plugin \
+ --disable-pgpmime-plugin \
+ --disable-pgpinline-plugin \
+ --disable-dillo-viewer-plugin \
+ --disable-clamav-plugin \
+ --disable-gnomeprint \
+ --disable-valgrind \
+ "
+
+# Remove enchant references:
+do_install_prepend() {
+ sed -i -e 's:${STAGING_INCDIR}:${includedir}:g;s:${STAGING_LIBDIR}:${libdir}:g' claws-mail.pc
+}
+
+# Work-around broken GPE icon lookup:
+do_install_append() {
+ rm -r ${D}${datadir}/icons
+ install -d ${D}${datadir}/pixmaps
+ install -m 0644 claws-mail.png ${D}${datadir}/pixmaps/
+ sed -i 's/Icon=[^.]*$/&.png/' ${D}${datadir}/applications/claws-mail.desktop
+}
+
+RSUGGESTS_${PN} = "claws-plugin-gtkhtml2-viewer claws-plugin-mailmbox claws-plugin-rssyl"
diff --git a/meta-oe/recipes-sato/claws-mail/claws-plugin-gtkhtml2-viewer_0.31.bb b/meta-oe/recipes-sato/claws-mail/claws-plugin-gtkhtml2-viewer_0.31.bb
new file mode 100644
index 0000000000..118543bd96
--- /dev/null
+++ b/meta-oe/recipes-sato/claws-mail/claws-plugin-gtkhtml2-viewer_0.31.bb
@@ -0,0 +1,19 @@
+SECTION = "x11/network"
+DESCRIPTION = "Mail user agent plugins"
+DEPENDS = "claws-mail gtkhtml2 curl"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=977f04a8048c04684e521c06e2844a94"
+
+SRC_URI = "http://www.claws-mail.org/downloads/plugins/gtkhtml2_viewer-${PV}.tar.gz"
+SRC_URI[md5sum] = "a6c9dfa6f969ccd844796a5724b52167"
+SRC_URI[sha256sum] = "4d41f6d961efaac0f51705e5052bac732bc0bdafee2ef2082a9cf9d89f183ae5"
+
+inherit autotools pkgconfig gettext
+
+S = "${WORKDIR}/gtkhtml2_viewer-${PV}"
+
+FILES_${PN} = "${libdir}/claws-mail/plugins/*.so"
+FILES_${PN}-dbg += "${libdir}/claws-mail/plugins/.debug"
+FILES_${PN}-dev += "${libdir}/claws-mail/plugins/*.la"
+FILES_${PN}-staticdev = "${libdir}/claws-mail/plugins/*.a"
+
diff --git a/meta-oe/recipes-sato/claws-mail/claws-plugin-mailmbox-1.14/claws-plugin-mailmbox-fixup.patch b/meta-oe/recipes-sato/claws-mail/claws-plugin-mailmbox-1.14/claws-plugin-mailmbox-fixup.patch
new file mode 100644
index 0000000000..f8cce25225
--- /dev/null
+++ b/meta-oe/recipes-sato/claws-mail/claws-plugin-mailmbox-1.14/claws-plugin-mailmbox-fixup.patch
@@ -0,0 +1,218 @@
+Index: mailmbox-1.14/src/plugin_gtk.c
+===================================================================
+--- mailmbox-1.14.orig/src/plugin_gtk.c 2008-12-04 06:18:50.000000000 +0300
++++ mailmbox-1.14/src/plugin_gtk.c 2008-12-04 06:49:40.000000000 +0300
+@@ -35,39 +35,41 @@
+
+ #include "pluginconfig.h"
+
+-static void new_folder_cb(FolderView *folderview, guint action, GtkWidget *widget);
+-static void delete_folder_cb(FolderView *folderview, guint action, GtkWidget *widget);
+-static void rename_folder_cb(FolderView *folderview, guint action, GtkWidget *widget);
+-static void move_folder_cb(FolderView *folderview, guint action, GtkWidget *widget);
+-static void update_tree_cb(FolderView *folderview, guint action, GtkWidget *widget);
+-static void remove_mailbox_cb(FolderView *folderview, guint action, GtkWidget *widget);
+-static void add_mailbox(gpointer callback_data, guint callback_action, GtkWidget *widget);
+-
+-static GtkItemFactoryEntry claws_mailmbox_popup_entries[] =
+-{
+- {N_("/Create _new folder..."), NULL, new_folder_cb, 0, NULL},
+- {N_("/---"), NULL, NULL, 0, "<Separator>"},
+- {N_("/_Rename folder..."), NULL, rename_folder_cb, 0, NULL},
+- {N_("/M_ove folder..."), NULL, move_folder_cb, 0, NULL},
+- {N_("/Cop_y folder..."), NULL, move_folder_cb, 1, NULL},
+- {N_("/---"), NULL, NULL, 0, "<Separator>"},
+- {N_("/_Delete folder"), NULL, delete_folder_cb, 0, NULL},
+- {N_("/---"), NULL, NULL, 0, "<Separator>"},
+- {N_("/_Check for new messages"), NULL, update_tree_cb, 0, NULL},
+- {N_("/C_heck for new folders"), NULL, update_tree_cb, 1, NULL},
+- {N_("/R_ebuild folder tree"), NULL, update_tree_cb, 2, NULL},
+- {N_("/---"), NULL, NULL, 0, "<Separator>"},
+- {N_("/Remove _mailbox"), NULL, remove_mailbox_cb, 0, NULL},
+- {N_("/---"), NULL, NULL, 0, "<Separator>"},
++static void new_folder_cb(GtkAction *action, gpointer data);
++static void delete_folder_cb(GtkAction *action, gpointer data);
++static void rename_folder_cb(GtkAction *action, gpointer data);
++static void move_folder_cb(GtkAction *action, gpointer data);
++static void update_tree_cb(GtkAction *action, gpointer data);
++static void remove_mailbox_cb(GtkAction *action, gpointer data);
++static void add_mailbox(gpointer callback_data, guint callback_action, gpointer data);
++
++static GtkActionEntry claws_mailmbox_popup_entries[] =
++{
++ {"FolderViewPopup/CreateNewFolder", NULL, N_("/Create _new folder..."), NULL, NULL, G_CALLBACK(new_folder_cb) },
++ {"FolderViewPopup/---", NULL, N_("/---") },
++ {"FolderViewPopup/RenameFolder", NULL, N_("/_Rename folder..."), NULL, NULL, G_CALLBACK(rename_folder_cb) },
++ {"FolderViewPopup/MoveFolder", NULL, N_("/M_ove folder..."), NULL, NULL, G_CALLBACK(move_folder_cb) },
++ {"FolderViewPopup/CopyFolder", NULL, N_("/Cop_y folder..."), NULL, NULL, G_CALLBACK(move_folder_cb) },
++ {"FolderViewPopup/---", NULL, N_("/---") },
++ {"FolderViewPopup/DeleteFolder", NULL, N_("/_Delete folder"), NULL, NULL, G_CALLBACK(delete_folder_cb) },
++ {"FolderViewPopup/---", NULL, N_("/---") },
++ {"FolderViewPopup/CheckNewMessages", NULL, N_("/_Check for new messages"), NULL, NULL, G_CALLBACK(update_tree_cb) },
++ {"FolderViewPopup/CheckNewFolders", NULL, N_("/C_heck for new folders"), NULL, NULL, G_CALLBACK(update_tree_cb) },
++ {"FolderViewPopup/RebuildfTree", NULL, N_("/R_ebuild folder tree"), NULL, NULL, G_CALLBACK(update_tree_cb) },
++ {"FolderViewPopup/---", NULL, N_("/---") },
++ {"FolderViewPopup/RemoveMailbox", NULL, N_("/Remove _mailbox"), NULL, NULL, G_CALLBACK(remove_mailbox_cb) },
+ };
+
+-static void set_sensitivity(GtkItemFactory *factory, FolderItem *item);
++static void set_sensitivity(GtkUIManager *factory, FolderItem *item);
+
+ static FolderViewPopup claws_mailmbox_popup =
+ {
+ "mailmbox",
+ "<MailmboxFolder>",
+- NULL,
++ claws_mailmbox_popup_entries,
++ G_N_ELEMENTS(claws_mailmbox_popup_entries),
++ NULL, 0,
++ NULL, 0, 0, NULL, NULL,
+ set_sensitivity
+ };
+
+@@ -85,11 +87,6 @@
+ GtkItemFactory *ifactory;
+ MainWindow *mainwin = mainwindow_get_mainwindow();
+
+- n_entries = sizeof(claws_mailmbox_popup_entries) /
+- sizeof(claws_mailmbox_popup_entries[0]);
+- for (i = 0; i < n_entries; i++)
+- claws_mailmbox_popup.entries = g_slist_append(claws_mailmbox_popup.entries, &claws_mailmbox_popup_entries[i]);
+-
+ folderview_register_popup(&claws_mailmbox_popup);
+
+ ifactory = gtk_item_factory_from_widget(mainwin->menubar);
+@@ -115,7 +112,7 @@
+ gtk_item_factory_delete_item(ifactory, mainwindow_add_mailbox.path);
+ }
+
+-static void set_sensitivity(GtkItemFactory *factory, FolderItem *item)
++static void set_sensitivity(GtkUIManager *factory, FolderItem *item)
+ {
+ #define SET_SENS(name, sens) \
+ menu_set_sensitive(factory, name, sens)
+@@ -132,10 +129,13 @@
+ #undef SET_SENS
+ }
+
+-static void update_tree_cb(FolderView *folderview, guint action,
+- GtkWidget *widget)
++#define DO_ACTION(name, act) { if (!strcmp(a_name, name)) act; }
++
++static void update_tree_cb(GtkAction *action, gpointer data)
+ {
++ FolderView *folderview = (FolderView *)data;
+ FolderItem *item;
++ const gchar *a_name = gtk_action_get_name(action);
+
+ item = folderview_get_selected_item(folderview);
+ g_return_if_fail(item != NULL);
+@@ -144,16 +144,12 @@
+
+ g_return_if_fail(item->folder != NULL);
+
+- if (action == 0)
+- folderview_check_new(item->folder);
+- else if (action == 1)
+- folderview_rescan_tree(item->folder, FALSE);
+- else if (action == 2)
+- folderview_rescan_tree(item->folder, TRUE);
++ DO_ACTION("FolderViewPopup/CheckNewMessages", folderview_check_new(item->folder));
++ DO_ACTION("FolderViewPopup/CheckNewFolders", folderview_rescan_tree(item->folder, FALSE));
++ DO_ACTION("FolderViewPopup/RebuildTree", folderview_rescan_tree(item->folder, FALSE));
+ }
+
+-static void add_mailbox(gpointer callback_data, guint callback_action,
+- GtkWidget *widget)
++static void add_mailbox(gpointer callback_data, guint callback_action, gpointer data)
+ {
+ MainWindow *mainwin = (MainWindow *) callback_data;
+ gchar *path, *basename;
+@@ -193,10 +189,10 @@
+ return;
+ }
+
+-static void new_folder_cb(FolderView *folderview, guint action,
+- GtkWidget *widget)
++static void new_folder_cb(GtkAction *action, gpointer data)
+ {
+- GtkCTree *ctree = GTK_CTREE(folderview->ctree);
++ FolderView *folderview = (FolderView *)data;
++ GtkCMCTree *ctree = GTK_CMCTREE(folderview->ctree);
+ FolderItem *item;
+ FolderItem *new_item;
+ gchar *new_folder;
+@@ -245,9 +241,10 @@
+ folder_write_list();
+ }
+
+-static void remove_mailbox_cb(FolderView *folderview, guint action, GtkWidget *widget)
++static void remove_mailbox_cb(GtkAction *action, gpointer data)
+ {
+- GtkCTree *ctree = GTK_CTREE(folderview->ctree);
++ FolderView *folderview = (FolderView *)data;
++ GtkCMCTree *ctree = GTK_CMCTREE(folderview->ctree);
+ GtkCTreeNode *node;
+ FolderItem *item;
+ gchar *name;
+@@ -276,10 +273,10 @@
+ folder_destroy(item->folder);
+ }
+
+-static void delete_folder_cb(FolderView *folderview, guint action,
+- GtkWidget *widget)
++static void delete_folder_cb(GtkAction *action, gpointer data)
+ {
+- GtkCTree *ctree = GTK_CTREE(folderview->ctree);
++ FolderView *folderview = (FolderView *)data;
++ GtkCMCTree *ctree = GTK_CMCTREE(folderview->ctree);
+ FolderItem *item;
+ gchar *message, *name;
+ AlertValue avalue;
+@@ -329,24 +326,41 @@
+
+ }
+
+-static void move_folder_cb(FolderView *folderview, guint action, GtkWidget *widget)
++static void move_folder_cb(GtkAction *action, gpointer data)
++{
++ FolderView *folderview = (FolderView *)data;
++ FolderItem *from_folder = NULL, *to_folder = NULL;
++
++ from_folder = folderview_get_selected_item(folderview);
++ if (!from_folder || from_folder->folder->klass != claws_mailmbox_get_class())
++ return;
++
++ to_folder = foldersel_folder_sel(from_folder->folder, FOLDER_SEL_MOVE, NULL, TRUE);
++ if (!to_folder)
++ return;
++
++ folderview_move_folder(folderview, from_folder, to_folder, 0);
++}
++
++static void copy_folder_cb(GtkAction *action, gpointer data)
+ {
++ FolderView *folderview = (FolderView *)data;
+ FolderItem *from_folder = NULL, *to_folder = NULL;
+
+ from_folder = folderview_get_selected_item(folderview);
+ if (!from_folder || from_folder->folder->klass != claws_mailmbox_get_class())
+ return;
+
+- to_folder = foldersel_folder_sel(from_folder->folder, FOLDER_SEL_MOVE, NULL);
++ to_folder = foldersel_folder_sel(from_folder->folder, FOLDER_SEL_MOVE, NULL, TRUE);
+ if (!to_folder)
+ return;
+
+- folderview_move_folder(folderview, from_folder, to_folder, action);
++ folderview_move_folder(folderview, from_folder, to_folder, 1);
+ }
+
+-static void rename_folder_cb(FolderView *folderview, guint action,
+- GtkWidget *widget)
++static void rename_folder_cb(GtkAction *action, gpointer data)
+ {
++ FolderView *folderview = (FolderView *)data;
+ FolderItem *item, *parent;
+ gchar *new_folder;
+ gchar *name;
diff --git a/meta-oe/recipes-sato/claws-mail/claws-plugin-mailmbox_1.14.bb b/meta-oe/recipes-sato/claws-mail/claws-plugin-mailmbox_1.14.bb
new file mode 100644
index 0000000000..8cb7fd0abf
--- /dev/null
+++ b/meta-oe/recipes-sato/claws-mail/claws-plugin-mailmbox_1.14.bb
@@ -0,0 +1,19 @@
+SECTION = "x11/network"
+DESCRIPTION = "Mail user agent plugins"
+DEPENDS = "claws-mail"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+SRC_URI = "http://www.claws-mail.org/downloads/plugins/mailmbox-${PV}.tar.gz\
+ file://claws-plugin-mailmbox-fixup.patch"
+SRC_URI[md5sum] = "0a5907628c1112cf8e5fe251ed1db551"
+SRC_URI[sha256sum] = "d8d948807b4a09eb6da392161564c4bcee01070c9c86483889f93f1b14fd0870"
+
+inherit autotools pkgconfig
+
+S = "${WORKDIR}/mailmbox-${PV}"
+
+FILES_${PN} = "${libdir}/claws-mail/plugins/*.so"
+FILES_${PN}-dbg += "${libdir}/claws-mail/plugins/.debug"
+FILES_${PN}-dev += "${libdir}/claws-mail/plugins/*.la"
+FILES_${PN}-staticdev = "${libdir}/claws-mail/plugins/*.a"
diff --git a/meta-oe/recipes-sato/claws-mail/claws-plugin-rssyl_0.18.bb b/meta-oe/recipes-sato/claws-mail/claws-plugin-rssyl_0.18.bb
new file mode 100644
index 0000000000..767c6722c3
--- /dev/null
+++ b/meta-oe/recipes-sato/claws-mail/claws-plugin-rssyl_0.18.bb
@@ -0,0 +1,18 @@
+SECTION = "x11/network"
+DESCRIPTION = "Mail user agent plugins"
+DEPENDS = "claws-mail libxml2 curl glib-2.0 gtk+"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0c2348e0a084e573f0220f5e45d8097e"
+
+SRC_URI = "http://www.claws-mail.org/downloads/plugins/rssyl-${PV}.tar.gz"
+SRC_URI[md5sum] = "7dfd8ae53cf1ed88d5e4150f77b9df63"
+SRC_URI[sha256sum] = "b02eff373fd66daec2ffd75afd3ad97c32c45679883ee65b21aa50fec92fc752"
+
+inherit autotools pkgconfig gettext
+
+S = "${WORKDIR}/rssyl-${PV}"
+
+FILES_${PN} = "${libdir}/claws-mail/plugins/*.so"
+FILES_${PN}-dbg += "${libdir}/claws-mail/plugins/.debug"
+FILES_${PN}-dev += "${libdir}/claws-mail/plugins/*.la"
+FILES_${PN}-staticdev = "${libdir}/claws-mail/plugins/*.a"
diff --git a/meta-oe/recipes-sato/claws-mail/sylpheed/glib-2.32.patch b/meta-oe/recipes-sato/claws-mail/sylpheed/glib-2.32.patch
new file mode 100644
index 0000000000..1520e578ac
--- /dev/null
+++ b/meta-oe/recipes-sato/claws-mail/sylpheed/glib-2.32.patch
@@ -0,0 +1,11 @@
+--- sylpheed-2.7.1.orig/libsylph/defs.h 2009-06-10 09:55:46.000000000 +0200
++++ sylpheed-2.7.1/libsylph/defs.h 2012-05-06 08:28:27.514746256 +0200
+@@ -24,8 +24,6 @@
+ # include "config.h"
+ #endif
+
+-#include <glibconfig.h>
+-
+ #ifdef G_OS_WIN32
+ # include <glib/gwin32.h>
+ #endif
diff --git a/meta-oe/recipes-sato/claws-mail/sylpheed_2.7.1.bb b/meta-oe/recipes-sato/claws-mail/sylpheed_2.7.1.bb
new file mode 100644
index 0000000000..d0da53251a
--- /dev/null
+++ b/meta-oe/recipes-sato/claws-mail/sylpheed_2.7.1.bb
@@ -0,0 +1,37 @@
+SECTION = "x11/network"
+DESCRIPTION = "Mail user agent"
+DEPENDS = "gtk+ gpgme gnutls"
+LICENSE = "GPLv2 & LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4325afd396febcb659c36b49533135d4 \
+ file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1"
+
+PR = "r1"
+
+SRC_URI = "http://sylpheed.sraoss.jp/sylpheed/v2.7/sylpheed-${PV}.tar.bz2 \
+ file://glib-2.32.patch \
+"
+SRC_URI[md5sum] = "1f470525c1fbe53253813a0978c18228"
+SRC_URI[sha256sum] = "8bb6457db4e2eea1877b487d9ac8513546372db9a6a2e4271d11229f4af84e23"
+
+FILES_${PN} += "${datadir}/pixmaps ${datadir}/applications"
+FILES_${PN}-doc += "${datadir}"
+
+EXTRA_OECONF = "--disable-ssl --enable-gnutls"
+
+CFLAGS += "-D_GNU_SOURCE"
+
+do_configure_prepend() {
+ mkdir -p m4
+ for i in $(find ${S} -name "Makefile.am") ; do
+ sed -i s:'-I$(includedir)'::g $i
+ done
+}
+
+inherit autotools
+
+do_install_append() {
+ install -d ${D}${datadir}/applications
+ install -m 0644 sylpheed.desktop ${D}${datadir}/applications/
+ install -d ${D}${datadir}/pixmaps
+ install -m 0644 sylpheed.png ${D}${datadir}/pixmaps/
+}