[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