[evolution-rspam] Adapt to recent evolution release
Milan Crha
mcrha at fedoraproject.org
Fri Jun 24 10:15:32 UTC 2011
commit 554e0bf624d7455b037cb120f43ae82853824583
Author: Milan Crha <mcrha at redhat.com>
Date: Fri Jun 24 12:15:09 2011 +0200
Adapt to recent evolution release
evolution-rspam-0.3.0-evo-git-master.patch | 307 ++++++++++++++++++++++++++++
evolution-rspam.spec | 9 +-
2 files changed, 315 insertions(+), 1 deletions(-)
---
diff --git a/evolution-rspam-0.3.0-evo-git-master.patch b/evolution-rspam-0.3.0-evo-git-master.patch
new file mode 100644
index 0000000..adccb09
--- /dev/null
+++ b/evolution-rspam-0.3.0-evo-git-master.patch
@@ -0,0 +1,307 @@
+diff -up evolution-rspam-0.3.0/src/rspam.c.eds-git-master evolution-rspam-0.3.0/src/rspam.c
+--- evolution-rspam-0.3.0/src/rspam.c.eds-git-master 2011-06-24 11:16:38.752150838 +0200
++++ evolution-rspam-0.3.0/src/rspam.c 2011-06-24 12:08:41.657418241 +0200
+@@ -26,6 +26,7 @@
+ #include <string.h>
+ #include <stdio.h>
+ #include <fcntl.h>
++#include <sys/time.h>
+
+ #include <gtk/gtk.h>
+
+@@ -44,13 +45,23 @@
+ #include <mail/mail-component.h>
+ #include <mail/em-popup.h>
+ #include <misc/e-activity-handler.h>
+-#else
++#elif EVOLUTION_VERSION < 30102
+ #include <mail/e-mail-local.h>
+ #include <mail/message-list.h>
+ #include <misc/e-popup-action.h>
+ #include <shell/e-shell-view.h>
+ #include <shell/es-event.h>
+ #include <mail/em-folder-selector.h>
++#else
++#include <e-util/e-account-utils.h>
++#include <e-util/e-alert-dialog.h>
++#include <mail/em-folder-selector.h>
++#include <mail/e-mail-folder-utils.h>
++#include <mail/e-mail-local.h>
++#include <mail/message-list.h>
++#include <misc/e-popup-action.h>
++#include <shell/e-shell-view.h>
++#include <shell/es-event.h>
+ #endif
+
+ #include <e-util/e-mktemp.h>
+@@ -62,6 +73,7 @@
+
+ #include <mail/em-utils.h>
+ #include <mail/mail-ops.h>
++#include <mail/mail-tools.h>
+
+ #include "rspam.h"
+
+@@ -135,6 +147,31 @@ gboolean rspam_online;
+ GList *tlist = NULL;
+ GPtrArray *spamuids = NULL;
+
++static gchar *
++get_folder_name_from_uri (const gchar *uri)
++{
++ CamelURL *url;
++ gchar *folder_name = NULL;
++
++ if (uri == NULL || (url = camel_url_new (uri, NULL)) == NULL)
++ return NULL;
++
++ if (url->fragment)
++ folder_name = url->fragment;
++ else if (url->path)
++ folder_name = url->path + 1;
++
++ if (folder_name == NULL) {
++ camel_url_free (url);
++ return NULL;
++ }
++
++ folder_name = g_strdup (folder_name);
++ camel_url_free (url);
++
++ return folder_name;
++}
++
+ static void
+ readrazorconfig(gpointer data);
+
+@@ -150,7 +187,6 @@ intern_call(void (*p)(), CamelMimeMessag
+ gchar*
+ save_message(CamelMimeMessage *msg)
+ {
+- CamelDataWrapper *containee;
+ CamelStream *out;
+ char *tmpdir = NULL, *name = NULL;
+ tmpdir = e_mkdtemp("rspam-XXXXXX");
+@@ -238,8 +274,6 @@ rspam_command(CamelMimeMessage *msg, gch
+ {
+ gint i;
+ gchar *cmd, *cmdp;
+- int fds[2];
+- pid_t pid;
+
+ //later we have to check if we have a home and we're registered
+ //remember to put -s when testing, in order no to clog cloudmark
+@@ -296,7 +330,7 @@ rspam_command(CamelMimeMessage *msg, gch
+ } else
+ g_print("%s is disabled. Skip test.\n", cnets[i][0]);
+ }
+-end: //let's just make sure we don't leave any junk on our way out,
++ //let's just make sure we don't leave any junk on our way out,
+ //even if we're in trash pile
+ tlist = g_list_append(tlist, g_strdup(name));
+ return 1;
+@@ -307,16 +341,13 @@ void
+ spamcop_report(CamelMimeMessage *msg, gchar *msgfile)
+ {
+ CamelStream *mem;
+- GByteArray *byte_array;
+ int tzone;
+ time_t date, now;
+ EAccount *account = NULL;
+- gchar *from, *descr;
++ gchar *descr;
+ CamelFolder *mail_folder;
+ CamelMessageInfo *info;
+- struct _send_data *send;
+ struct _camel_header_raw *xev;
+- GtkWidget *composer;
+ CamelMimePart *part;
+ CamelMimeMessage *new = camel_mime_message_new();
+ gchar *text, *tmsg;
+@@ -381,6 +412,7 @@ spamcop_report(CamelMimeMessage *msg, gc
+ text = em_utils_message_to_html (msg, NULL, 0, &len, NULL, NULL, NULL);
+ #else
+ text = em_utils_message_to_html (msg, NULL, 0, NULL, NULL, NULL);
++ len = text ? strlen (text) : -1;
+ #endif
+ #endif
+ #endif
+@@ -608,15 +640,34 @@ read_ham(void)
+ return atoi(buf);
+ }
+
++#if EVOLUTION_VERSION < 30102
+ void rspam_action_do (CamelFolder *folder, const char *uid, CamelMimeMessage *msg, void *data)
++#else
++void rspam_action_do (GObject *source_object, GAsyncResult *result, gpointer user_data)
++#endif
+ {
+ gchar *name;
++ #if EVOLUTION_VERSION >= 30102
++ CamelMimeMessage *msg;
++ GError *error = NULL;
++
++ msg = camel_folder_get_message_finish (CAMEL_FOLDER (source_object), result, &error);
++ if (error) {
++ g_debug ("%s: Failed to get message: %s", G_STRFUNC, error->message);
++ g_clear_error (&error);
++ }
++ #endif
+
+ name = save_message(msg);
+ if (name) {
+ rspam_command(msg, name, 1);
+ g_free(name);
+ }
++
++ #if EVOLUTION_VERSION >= 30102
++ if (msg)
++ g_object_unref (msg);
++ #endif
+ }
+
+ void
+@@ -669,10 +720,14 @@ org_gnome_sa_rspam(GtkAction *action, ES
+
+ for (i = 0; i < (uids ? uids->len : 0); i++) {
+ d(g_print("i:%d, uids:%s\n", i, uids->pdata[i]));
++ #if EVOLUTION_VERSION < 30102
+ mail_get_message (
+ folder,
+ uids->pdata[i],
+ rspam_action_do, NULL, mail_msg_unordered_push);
++ #else
++ camel_folder_get_message (folder, uids->pdata[i], G_PRIORITY_DEFAULT, NULL, rspam_action_do, NULL);
++ #endif
+ g_ptr_array_add(spamuids, uids->pdata[i]);
+ }
+
+@@ -779,10 +834,8 @@ gchar*
+ pyzor_discover_cb (GtkWidget *widget, gpointer data)
+ {
+ GByteArray *output_buffer = g_byte_array_new ();
+- int result, status, errnosav, fds[2], out_fds[2];
++ int out_fds[2];
+ CamelStream *stream;
+- CamelStream *stream2;
+- char *program;
+ pid_t pid;
+ int i=0;
+ char *argv[30];
+@@ -847,13 +900,13 @@ pyzor_discover_cb (GtkWidget *widget, gp
+ #else
+ camel_object_unref (stream);
+ #endif
+- g_byte_array_append (output_buffer, "", 1);
++ g_byte_array_append (output_buffer, (const guint8 *) "", 1);
+
+ printf (
+ "child process output: %s len: %d\n",
+ output_buffer->data, output_buffer->len);
+ }
+- gchar *tmp = g_strdup(output_buffer->data);
++ gchar *tmp = g_strdup ((const gchar *) output_buffer->data);
+
+ return tmp;
+ }
+@@ -1115,20 +1168,11 @@ rspam_page_factory (EPlugin *ep, EConfig
+ EMConfigTargetPrefs *target = (EMConfigTargetPrefs *) hook_data->config->target;
+ GtkWidget *page;
+ GtkWidget *tab_label;
+- GtkWidget *frame;
+- GtkWidget *frame_label;
+- GtkWidget *padding_label;
+- GtkWidget *hbox;
+- GtkWidget *inner_vbox;
+ GtkWidget *check;
+- GtkWidget *option;
+- GtkWidget *check_gaim;
+ GtkWidget *button;
+- GtkWidget *entry;
+ GtkWidget *entry1,*entry2,*entry3;
+- GtkWidget *label1, *label2, *label3;
+- GtkWidget *table1;
+- gchar *str, *fld;
++ GtkWidget *label1;
++ gchar *fld;
+
+ gchar *uifile;
+ GError* error = NULL;
+@@ -1250,7 +1294,7 @@ rspam_page_factory (EPlugin *ep, EConfig
+ GCONF_KEY_MOVE_FOLDER,
+ NULL);
+ if (fld && g_ascii_strcasecmp(fld, _("Select..."))) {
+- gchar *folder = em_utils_folder_name_from_uri(fld);
++ gchar *folder = get_folder_name_from_uri(fld);
+ g_free(fld);
+ gtk_label_set_text(GTK_LABEL(label1), folder);
+ g_free(folder);
+@@ -1345,7 +1389,6 @@ rspam_lookup_uri_by_folder_name(gchar *n
+ void
+ rspam_folder_cb (GtkWidget *widget, gpointer data)
+ {
+- CamelFolder *folder;
+ EMailBackend *backend;
+ EMailSession *session;
+ #if EVOLUTION_VERSION >= 30101
+@@ -1371,9 +1414,9 @@ rspam_folder_cb (GtkWidget *widget, gpoi
+
+ session = e_mail_backend_get_session (backend);
+
+- folder = e_mail_reader_get_folder (reader);
+ window = e_mail_reader_get_window (reader);
+
++#if EVOLUTION_VERSION < 30102
+ folder_tree = em_folder_tree_new (session);
+ emu_restore_folder_tree_state (EM_FOLDER_TREE (folder_tree));
+
+@@ -1381,16 +1424,38 @@ rspam_folder_cb (GtkWidget *widget, gpoi
+ EM_FOLDER_TREE (folder_tree),
+ EMFT_EXCLUDE_NOSELECT | EMFT_EXCLUDE_VIRTUAL |
+ EMFT_EXCLUDE_VTRASH);
++#endif
+
+ dialog = em_folder_selector_new (
+- window, EM_FOLDER_TREE (folder_tree),
++ window,
++ #if EVOLUTION_VERSION >= 30102
++ E_MAIL_BACKEND (backend),
++ #else
++ EM_FOLDER_TREE (folder_tree),
++ #endif
+ EM_FOLDER_SELECTOR_CAN_CREATE,
+ _("Select Folder"), NULL, _("_Select"));
+
+- if ((uri = rspam_lookup_uri_by_folder_name(text)))
++ #if EVOLUTION_VERSION >= 30102
++ folder_tree = GTK_WIDGET (em_folder_selector_get_folder_tree (EM_FOLDER_SELECTOR (dialog)));
++
++ emu_restore_folder_tree_state (EM_FOLDER_TREE (folder_tree));
++
++ em_folder_tree_set_excluded (
++ EM_FOLDER_TREE (folder_tree),
++ EMFT_EXCLUDE_NOSELECT | EMFT_EXCLUDE_VIRTUAL |
++ EMFT_EXCLUDE_VTRASH);
++ #endif
++
++ if ((uri = rspam_lookup_uri_by_folder_name(text))) {
++ #if EVOLUTION_VERSION >= 30102
++ em_folder_tree_set_selected (EM_FOLDER_TREE (folder_tree), uri, FALSE);
++ #else
+ em_folder_selector_set_selected (
+ EM_FOLDER_SELECTOR (dialog),
+ uri);
++ #endif
++ }
+
+ #if EVOLUTION_VERSION >= 30101
+ folderinfo = em_folder_tree_get_selected_uri ((EMFolderTree *)folder_tree);
+@@ -1420,7 +1485,7 @@ rspam_folder_cb (GtkWidget *widget, gpoi
+ if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_OK) {
+ uri = em_folder_selector_get_selected_uri (
+ EM_FOLDER_SELECTOR (dialog));
+- gchar *folder = em_utils_folder_name_from_uri(uri);
++ gchar *folder = get_folder_name_from_uri(uri);
+ gtk_label_set_text(GTK_LABEL(data), folder);
+ g_free(folder);
+ gconf_client_set_string (
diff --git a/evolution-rspam.spec b/evolution-rspam.spec
index 8f94668..6394298 100644
--- a/evolution-rspam.spec
+++ b/evolution-rspam.spec
@@ -1,13 +1,16 @@
Name: evolution-rspam
Summary: Evolution Plugin for reporting spam
Version: 0.3.0
-Release: 1%{?dist}
+Release: 2%{?dist}
Group: Applications/Internet
License: GPLv2+
Source: http://gnome.eu.org/%{name}-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
URL: http://gnome.eu.org/evo/index.php/Report_as_Spam
+### Patches ###
+Patch1: evolution-rspam-0.3.0-evo-git-master.patch
+
Requires: perl-Razor-Agent
Requires: pyzor
Requires: evolution
@@ -28,6 +31,7 @@ See README for more information about required programs.
%prep
%setup -q -n %{name}-%{version}
+%patch1 -p1 -b .evo-git-master
%build
%configure
@@ -76,6 +80,9 @@ fi
%doc TODO
%changelog
+* Fri Jun 24 2011 Milan Crha <mcrha at redhat.com> - 0.3.0-2
+- Adapt to recent evolution release
+
* Fri May 13 2011 Lucian Langa <cooly at gnome.eu.org> - 0.3.0-1
- new upstream release
More information about the scm-commits
mailing list