rpms/tracker/devel .cvsignore, 1.12, 1.13 sources, 1.12, 1.13 tracker-gmime-2.4.patch, 1.2, 1.3 tracker.spec, 1.43, 1.44

Deji Akingunola deji at fedoraproject.org
Tue Feb 10 03:18:40 UTC 2009


Author: deji

Update of /cvs/pkgs/rpms/tracker/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv13975

Modified Files:
	.cvsignore sources tracker-gmime-2.4.patch tracker.spec 
Log Message:
* Mon Feb 09 2009 Deji Akingunola <dakingun at gmail.com> - 0.6.90-1
- New release, with tons of changes



Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/tracker/devel/.cvsignore,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- .cvsignore	3 Mar 2008 05:06:39 -0000	1.12
+++ .cvsignore	10 Feb 2009 03:18:10 -0000	1.13
@@ -1 +1 @@
-tracker-0.6.6.tar.bz2
+tracker-0.6.90.tar.bz2


Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/tracker/devel/sources,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- sources	3 Mar 2008 05:06:39 -0000	1.12
+++ sources	10 Feb 2009 03:18:10 -0000	1.13
@@ -1 +1 @@
-0845998f8f0d715b3f1b306d59fdae4d  tracker-0.6.6.tar.bz2
+5b4a85a67e3305e00a1e71f8d340e179  tracker-0.6.90.tar.bz2

tracker-gmime-2.4.patch:

Index: tracker-gmime-2.4.patch
===================================================================
RCS file: /cvs/pkgs/rpms/tracker/devel/tracker-gmime-2.4.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- tracker-gmime-2.4.patch	15 Dec 2008 21:43:09 -0000	1.2
+++ tracker-gmime-2.4.patch	10 Feb 2009 03:18:10 -0000	1.3
@@ -1,392 +1,618 @@
-diff -upr tracker-0.6.6.old/src/trackerd/tracker-email-evolution.c tracker-0.6.6/src/trackerd/tracker-email-evolution.c
---- tracker-0.6.6.old/src/trackerd/tracker-email-evolution.c	2008-02-28 23:49:53.000000000 +0000
-+++ tracker-0.6.6/src/trackerd/tracker-email-evolution.c	2008-12-15 21:31:43.000000000 +0000
-@@ -1450,7 +1450,7 @@ load_uri_and_status_of_mbox_mail_message
- 	g_return_if_fail (g_m_message);
- 	g_return_if_fail (msg);
- 
--	field = g_mime_message_get_header (g_m_message, "X-Evolution");
-+	field = g_mime_object_get_header (GMIME_OBJECT (g_m_message), "X-Evolution");
- 
- 	g_return_if_fail (field);
- 
-@@ -2478,27 +2478,28 @@ break_multipart_loop:
- static GSList *
- add_persons_from_internet_address_list_string_parsing (GSList *list, const gchar *s)
- {
--	InternetAddressList *addrs_list, *tmp;
-+	InternetAddressList *addrs_list;
-+	int i, count;
- 
- 	g_return_val_if_fail (s, NULL);
- 
--	addrs_list = internet_address_parse_string (s);
-+	addrs_list = internet_address_list_parse_string (s);
-+	count = internet_address_list_length (addrs_list);
- 
--	for (tmp = addrs_list; tmp; tmp = tmp->next) {
-+	for (i = 0; i < count; i++) {
- 		MailPerson *mp;
-+		InternetAddress *addr;
- 
- 		mp = email_allocate_mail_person ();
-+		addr = internet_address_list_get_address (addrs_list, i);
- 
--		mp->addr = g_strdup (tmp->address->value.addr);
--		if(tmp->address->name)
--                	mp->name = g_strdup (tmp->address->name);
--		else
--			mp->name = g_strdup (tmp->address->value.addr);
-+		mp->name = g_strdup (internet_address_get_name (addr));
-+		mp->addr = internet_address_to_string (addr, FALSE);
- 
- 		list = g_slist_prepend (list, mp);
- 	}
+--- configure.ac	2009-02-09 12:15:00.000000000 -0500
++++ configure.ac.new	2009-02-09 21:35:08.000000000 -0500
+@@ -108,7 +108,7 @@
+ GLIB_REQUIRED=2.16.0
+ PANGO_REQUIRED=1.0.0
+ QDBM_REQUIRED=1.8
+-GMIME_REQUIRED=2.1.0
++GMIME_REQUIRED=2.4.0
+ LIBXML2_REQUIRED=0.6
+ HAL_REQUIRED=0.5
+ GDKPIXBUF_REQUIRED=2.12.0
+@@ -153,7 +153,7 @@
+ AC_SUBST(PANGO_LIBS)
  
--	internet_address_list_destroy (addrs_list);
-+	g_object_unref (addrs_list);
+ # Check for GMime
+-PKG_CHECK_MODULES(GMIME, [gmime-2.0 >= $GMIME_REQUIRED])
++PKG_CHECK_MODULES(GMIME, [gmime-2.4 >= $GMIME_REQUIRED])
+ AC_SUBST(GMIME_CFLAGS)
+ AC_SUBST(GMIME_LIBS)
  
- 	return list;
- }
-diff -upr tracker-0.6.6.old/src/trackerd/tracker-email-kmail.c tracker-0.6.6/src/trackerd/tracker-email-kmail.c
---- tracker-0.6.6.old/src/trackerd/tracker-email-kmail.c	2008-01-15 04:05:03.000000000 +0000
-+++ tracker-0.6.6/src/trackerd/tracker-email-kmail.c	2008-12-15 21:11:22.000000000 +0000
-@@ -787,7 +787,7 @@ load_uri_of_mbox_mail_message (GMimeMess
-            This line is at the beginning of each header but GMIME does not give access to it so we reproduce it.
-         */
- 
--        field = g_mime_message_get_header (g_m_message, "From");
-+        field = g_mime_object_get_header (g_m_message, "From");
- 
-         tmp_from = g_strdup (field);
- 
-@@ -862,10 +862,10 @@ fill_uri_with_uid_for_imap (GMimeMessage
- 
-         mail_msg->uri = NULL;
- 
--        /* Currently, "g_mime_message_get_header(g_m_message, "X-UID")" does not work because GMIME
-+        /* Currently, "g_mime_object_get_header(g_m_message, "X-UID")" does not work because GMIME
-            only handles RFC822 headers... So we have to search X-UID header ourself. */
- 
--        headers = g_mime_message_get_headers (g_m_message);
-+        headers = g_mime_object_get_headers (g_m_message);
-         g_return_if_fail (headers);
- 
-         pos_uid = strstr (headers, "X-UID");
-diff -upr tracker-0.6.6.old/src/trackerd/tracker-email-thunderbird.c tracker-0.6.6/src/trackerd/tracker-email-thunderbird.c
---- tracker-0.6.6.old/src/trackerd/tracker-email-thunderbird.c	2008-01-15 04:05:03.000000000 +0000
-+++ tracker-0.6.6/src/trackerd/tracker-email-thunderbird.c	2008-12-15 21:34:18.000000000 +0000
-@@ -418,26 +418,27 @@ free_parser_data (gpointer user_data)
- static GSList *
- add_persons_from_internet_address_list_string_parsing (GSList *list, const gchar *s)
+Index: src/tracker-indexer/modules/evolution-common.h
+===================================================================
+--- src/tracker-indexer/modules/evolution-common.h	(revision 2802)
++++ src/tracker-indexer/modules/evolution-common.h	(working copy)
+@@ -55,7 +55,6 @@
+ 							       gint              flags,
+ 							       off_t             start);
+ TrackerModuleMetadata * evolution_common_get_wrapper_metadata (GMimeDataWrapper *wrapper);
+-gchar *                 evolution_common_get_object_encoding  (GMimeObject      *object);
+ 
+ G_END_DECLS
+ 
+Index: src/tracker-indexer/modules/evolution-pop.c
+===================================================================
+--- src/tracker-indexer/modules/evolution-pop.c	(revision 2802)
++++ src/tracker-indexer/modules/evolution-pop.c	(working copy)
+@@ -175,7 +175,7 @@
+ 	gchar *number;
+ 	gint id;
+ 
+-	header = g_mime_message_get_header (message, "X-Evolution");
++	header = g_mime_object_get_header (GMIME_OBJECT (message), "X-Evolution");
+ 
+         if (!header) {
+                 return -1;
+@@ -253,8 +253,12 @@
+ tracker_evolution_pop_file_get_text (TrackerModuleFile *file)
  {
--	InternetAddressList *addrs_list, *tmp;
-+	InternetAddressList *addrs_list;
-+	int i, count;
- 
- 	g_return_val_if_fail (s, NULL);
+         TrackerEvolutionPopFile *self;
+-        gchar *text, *encoding, *utf8_text;
+-        gboolean is_html;
++	const gchar *encoding;
++	gchar buffer[1024];
++	guint len;
++	GString *body;
++	GMimeStream *stream;
++	GMimeDataWrapper *data;
  
--	addrs_list = internet_address_parse_string (s);
-+	addrs_list = internet_address_list_parse_string (s);
-+	count = internet_address_list_length (addrs_list);
+         self = TRACKER_EVOLUTION_POP_FILE (file);
  
--	for (tmp = addrs_list; tmp; tmp = tmp->next) {
-+
-+	for (i = 0; i < count; i++) {
- 		MailPerson *mp = email_allocate_mail_person ();
-+		InternetAddress *addr;
- 
--		mp->addr = g_strdup (tmp->address->value.addr);
--                if(tmp->address->name) {
--                        mp->name = g_strdup (tmp->address->name);
--                } else {
--                        mp->name = g_strdup (tmp->address->value.addr);
--                }
-+		addr = internet_address_list_get_address (addrs_list, i);
-+		mp->name = g_strdup (internet_address_get_name (addr));
-+		mp->addr = internet_address_to_string (addr, FALSE);
- 
- 		list = g_slist_prepend (list, mp);
+@@ -263,27 +267,38 @@
+ 		return NULL;
  	}
  
--	internet_address_list_destroy (addrs_list);
-+	g_object_unref (addrs_list);
- 
- 	return list;
- }
-diff -upr tracker-0.6.6.old/src/trackerd/tracker-email-utils.c tracker-0.6.6/src/trackerd/tracker-email-utils.c
---- tracker-0.6.6.old/src/trackerd/tracker-email-utils.c	2008-02-29 00:32:16.000000000 +0000
-+++ tracker-0.6.6/src/trackerd/tracker-email-utils.c	2008-12-15 21:28:50.000000000 +0000
-@@ -46,8 +46,8 @@ extern Tracker *tracker;
- static GMimeStream *new_gmime_stream_from_file	(const gchar *path, gint flags, off_t start, off_t end);
- 
- static GSList *	add_gmime_references		(GSList *list, GMimeMessage *message, const gchar *header);
--static GSList *	add_recipients			(GSList *list, GMimeMessage *message, const gchar *type);
--static void	find_attachment			(GMimeObject *obj, gpointer data);
-+static GSList *	add_recipients			(GSList *list, GMimeMessage *message, GMimeRecipientType type);
-+static void	find_attachment			(GMimeObject *parent, GMimeObject *obj, gpointer data);
- 
+-        text = g_mime_message_get_body (self->message, TRUE, &is_html);
++	data = g_mime_part_get_content_object (GMIME_PART (self->message));
  
+-        if (!text) {
+-                return NULL;
+-        }
++	if (!data)
++		return NULL;
+ 
+-        encoding = evolution_common_get_object_encoding (GMIME_OBJECT (self->message));
++	stream = g_mime_data_wrapper_get_stream (data);
+ 
+-        if (!encoding) {
+-                /* FIXME: could still puke on non-utf8
+-                 * messages without proper content type
+-                 */
+-                return text;
+-        }
++	if (!stream) {
++		g_object_unref (data);
++		return NULL;
++	}
  
-@@ -491,6 +491,124 @@ email_free_mail_message (MailMessage *ma
- 	g_slice_free (MailMessage, mail_msg);
- }
+-        utf8_text = g_convert (text, -1, "utf8", encoding, NULL, NULL, NULL);
++	body = g_string_new ("");
  
-+static GMimeObject *
-+handle_multipart_alternative (GMimeMultipart *multipart, gboolean want_plain, gboolean *is_html)
-+{
-+	GMimeObject *mime_part, *text_part = NULL;
-+	GMimeContentType *type;
-+	int count, i;
-+
-+	count = g_mime_multipart_get_count (multipart);
-+	for (i = 0; i < count ; i++) {
-+		mime_part = g_mime_multipart_get_part (multipart, i);
-+
-+		type = g_mime_object_get_content_type (GMIME_OBJECT (mime_part));
-+		if (g_mime_content_type_is_type (type, "text", "*")) {
-+			if (!text_part || !g_ascii_strcasecmp (type->subtype, want_plain ? "plain" : "html")) {
-+				*is_html = !g_ascii_strcasecmp (type->subtype, "html");
-+				text_part = mime_part;
+-        g_free (encoding);
+-        g_free (text);
++	encoding = g_mime_object_get_content_disposition_parameter (GMIME_OBJECT (self->message), "charset");
+ 
+-        return utf8_text;
++	while (!g_mime_stream_eos (stream)) {
++		len = g_mime_stream_read (stream, buffer, 1024);
++		if (len > 0 && g_utf8_validate (buffer, len, NULL)) {
++			if (!encoding)
++				g_string_append_len (body, buffer, (gssize) len);
++			else {
++ 				gchar *part_body = g_convert (buffer, (gssize) len, "utf8", encoding, NULL, NULL, NULL);
++				g_string_append (body, part_body);
++				g_free (part_body);
 +			}
 +		}
 +	}
 +
-+	return text_part;
-+}
-+
-+static GMimeObject *
-+handle_multipart_mixed (GMimeMultipart *multipart, gboolean want_plain, gboolean *is_html)
-+{
-+	GMimeObject *mime_part, *text_part = NULL;
-+	GMimeContentType *type, *first_type = NULL;
-+	GList *subpart;
-+	int count, i;
-+
-+	count = g_mime_multipart_get_count (multipart);
-+	for (i = 0; i < count ; i++) {
-+		mime_part = g_mime_multipart_get_part (multipart, i);
-+
-+		type = g_mime_object_get_content_type (mime_part);
-+		if (GMIME_IS_MULTIPART (mime_part)) {
-+			multipart = GMIME_MULTIPART (mime_part);
-+			if (g_mime_content_type_is_type (type, "multipart", "alternative")) {
-+				mime_part = handle_multipart_alternative (multipart, want_plain, is_html);
-+				if (mime_part)
-+					return mime_part;
-+			} else {
-+				mime_part = handle_multipart_mixed (multipart, want_plain, is_html);
-+				if (mime_part && !text_part)
-+					text_part = mime_part;
-+			}
-+		} else if (g_mime_content_type_is_type (type, "text", "*")) {
-+			if (!g_ascii_strcasecmp (type->subtype, want_plain ? "plain" : "html")) {
-+				/* we got what we came for */
-+				*is_html = !g_ascii_strcasecmp (type->subtype, "html");
-+				return mime_part;
-+			}
-+
-+			/* if we haven't yet found a text part or if it is a type we can
-+			   1514 	* understand and it is the first of that type, save it */
-+			if (!text_part || (!g_ascii_strcasecmp (type->subtype, "plain") && (first_type &&
-+											    g_ascii_strcasecmp (type->subtype, first_type->subtype) != 0))) {
-+				*is_html = !g_ascii_strcasecmp (type->subtype, "html");
-+				text_part = mime_part;
-+				first_type = type;
-+			}
-+		}
-+
-+		subpart = subpart->next;
-+	}
-+
-+	return text_part;
-+}
-+
-+static char *
-+tracker_mime_message_get_body (const GMimeMessage *message, gboolean want_plain, gboolean *is_html)
-+{
-+	GMimeObject *mime_part = NULL;
-+	GMimeContentType *type;
-+	GMimeMultipart *multipart;
-+	char *body = NULL;
-+
-+	g_return_val_if_fail (GMIME_IS_MESSAGE (message), NULL);
-+	g_return_val_if_fail (is_html != NULL, NULL);
-+
-+	type = g_mime_object_get_content_type (message->mime_part);
-+	if (GMIME_IS_MULTIPART (message->mime_part)) {
-+		/* let's see if we can find a body in the multipart */
-+		multipart = GMIME_MULTIPART (message->mime_part);
-+		if (g_mime_content_type_is_type (type, "multipart", "alternative"))
-+			mime_part = handle_multipart_alternative (multipart, want_plain, is_html);
-+		else
-+			mime_part = handle_multipart_mixed (multipart, want_plain, is_html);
-+	} else if (g_mime_content_type_is_type (type, "text", "*")) {
-+		/* this *has* to be the message body */
-+		if (g_mime_content_type_is_type (type, "text", "html"))
-+			*is_html = TRUE;
-+		else
-+			*is_html = FALSE;
-+
-+		mime_part = message->mime_part;
-+	}
-+
-+	if (mime_part != NULL) {
-+		GMimeDataWrapper *data_wrapper;
-+		GMimeStream *mime_stream;
-+		gint64 len;
-+
-+		data_wrapper = g_mime_part_get_content_object (GMIME_PART (mime_part));
-+		
-+		mime_stream = g_mime_data_wrapper_get_stream (data_wrapper);
-+		len = g_mime_stream_length (mime_stream);
-+		body = g_malloc0 (len + 1);
-+		g_mime_stream_read (mime_stream, body, len);
-+		g_object_unref (mime_stream);
-+		g_object_unref (data_wrapper);
-+	}
-+
-+	return body;
-+}
-+
++	g_object_unref (stream);
 +
++	return g_string_free (body, FALSE);
+ }
  
- MailMessage *
- email_mail_file_parse_next (MailFile *mf, ReadMailHelperFct read_mail_helper, gpointer read_mail_user_data)
-@@ -539,7 +657,7 @@ email_mail_file_parse_next (MailFile *mf
+ static guint
+@@ -291,7 +306,7 @@
+ {
+ 	const gchar *header, *pos;
  
- 	mail_msg->subject = g_strdup (g_mime_message_get_subject (g_m_message));
+-	header = g_mime_message_get_header (message, "X-Evolution");
++	header = g_mime_object_get_header (GMIME_OBJECT (message), "X-Evolution");
  
--	mail_msg->body = g_mime_message_get_body (g_m_message, TRUE, &is_html);
-+	mail_msg->body = tracker_mime_message_get_body (g_m_message, TRUE, &is_html);
- 	mail_msg->content_type = g_strdup (is_html ? "text/html" : "text/plain");
+ 	if (!header) {
+ 		return 0;
+@@ -304,34 +319,24 @@
+ 
+ static GList *
+ get_message_recipients (GMimeMessage *message,
+-                        const gchar  *type)
++                        GMimeRecipientType type)
+ {
+ 	GList *list = NULL;
+-	const InternetAddressList *addresses;
++	InternetAddressList *addresses;
++	guint len, i;
+ 
+ 	addresses = g_mime_message_get_recipients (message, type);
+ 
+-	while (addresses) {
++	len = internet_address_list_length (addresses);
++	
++	while (i < len) {
+ 		InternetAddress *address;
+-		gchar *str;
+ 
+-		address = addresses->address;
++		address = internet_address_list_get_address (addresses, i);
+ 
+-		if (address->name && address->value.addr) {
+-			str = g_strdup_printf ("%s %s", address->name, address->value.addr);
+-		} else if (address->value.addr) {
+-			str = g_strdup (address->value.addr);
+-		} else if (address->name) {
+-			str = g_strdup (address->name);
+-		} else {
+-			str = NULL;
+-		}
++		list = g_list_prepend (list, internet_address_to_string (address, TRUE));
+ 
+-		if (str) {
+-			list = g_list_prepend (list, str);
+-		}
+-
+-		addresses = addresses->next;
++		i++;
+ 	}
  
- 	if (read_mail_helper) {
-@@ -549,7 +667,7 @@ email_mail_file_parse_next (MailFile *mf
- 	mail_msg->attachments = NULL;
+ 	return g_list_reverse (list);
+@@ -427,7 +432,8 @@
+ }
  
- 	/* find then save attachments in sys tmp directory of Tracker and save entries in MailMessage struct */
--	g_mime_message_foreach_part (g_m_message, find_attachment, mail_msg);
-+	g_mime_message_foreach (g_m_message, find_attachment, mail_msg);
+ static void
+-extract_mime_parts (GMimeObject *object,
++extract_mime_parts (GMimeObject *parent, 
++                    GMimeObject *object,
+                     gpointer     user_data)
+ {
+ 	GList **list = (GList **) user_data;
+@@ -440,7 +446,7 @@
+ 		message = g_mime_message_part_get_message (GMIME_MESSAGE_PART (object));
+ 
+ 		if (message) {
+-			g_mime_message_foreach_part (message, extract_mime_parts, user_data);
++			g_mime_message_foreach (message, extract_mime_parts, user_data);
+ 			g_object_unref (message);
+ 		}
  
- 	g_object_unref (g_m_message);
+@@ -451,7 +457,7 @@
+ 	}
  
-@@ -786,23 +904,23 @@ email_decode_mail_attachment_to_file (co
- 		return FALSE;
+ 	part = GMIME_PART (object);
+-	disposition = g_mime_part_get_content_disposition (part);
++	disposition = g_mime_object_get_disposition (GMIME_OBJECT (part));
+ 
+ 	if (!disposition ||
+ 	    (strcmp (disposition, GMIME_DISPOSITION_ATTACHMENT) != 0 &&
+@@ -484,9 +490,9 @@
+         if (self->message) {
+                 /* Iterate through mime parts, if any */
+                 if (!self->mime_parts) {
+-                        g_mime_message_foreach_part (self->message,
+-                                                     extract_mime_parts,
+-                                                     &self->mime_parts);
++                        g_mime_message_foreach (self->message,
++                                                extract_mime_parts,
++                                                &self->mime_parts);
+                         self->current_mime_part = self->mime_parts;
+                 } else {
+                         self->current_mime_part = self->current_mime_part->next;
+Index: src/tracker-indexer/modules/evolution-imap.c
+===================================================================
+--- src/tracker-indexer/modules/evolution-imap.c	(revision 2802)
++++ src/tracker-indexer/modules/evolution-imap.c	(working copy)
+@@ -551,7 +551,7 @@
+ static gboolean
+ get_attachment_info (const gchar            *mime_file,
+                      gchar                 **name,
+-                     GMimePartEncodingType  *encoding)
++                     GMimeContentEncoding   *encoding)
+ {
+ 	GMimeContentType *mime;
+ 	gchar *tmp, *mime_content;
+@@ -562,7 +562,7 @@
  	}
  
--	filtered_stream = g_mime_stream_filter_new_with_stream (stream_src);
-+	filtered_stream = g_mime_stream_filter_new (stream_src);
+ 	if (encoding) {
+-		*encoding = GMIME_PART_ENCODING_DEFAULT;
++		*encoding = GMIME_CONTENT_ENCODING_DEFAULT;
+ 	}
  
- 	switch (encoding) {
- 		case MIME_ENCODING_BASE64:
--			filter = g_mime_filter_basic_new_type (GMIME_FILTER_BASIC_BASE64_DEC);
-+			filter = g_mime_filter_basic_new (GMIME_CONTENT_ENCODING_BASE64, FALSE);
- 			g_mime_stream_filter_add (GMIME_STREAM_FILTER (filtered_stream), filter);
- 			g_object_unref (filter);
- 			break;
- 
- 		case MIME_ENCODING_QUOTEDPRINTABLE:
--			filter = g_mime_filter_basic_new_type (GMIME_FILTER_BASIC_QP_DEC);
-+			filter = g_mime_filter_basic_new (GMIME_CONTENT_ENCODING_QUOTEDPRINTABLE, FALSE);
- 			g_mime_stream_filter_add (GMIME_STREAM_FILTER (filtered_stream), filter);
- 			g_object_unref (filter);
- 			break;
- 
- 		case MIME_ENCODING_UUENCODE:
--			filter = g_mime_filter_basic_new_type (GMIME_FILTER_BASIC_UU_ENC);
-+			filter = g_mime_filter_basic_new (GMIME_CONTENT_ENCODING_UUENCODE, TRUE);
- 			g_mime_stream_filter_add (GMIME_STREAM_FILTER (filtered_stream), filter);
- 			g_object_unref (filter);
- 			break;
-@@ -913,7 +1031,7 @@ new_gmime_stream_from_file (const gchar 
- static GSList *
- add_gmime_references (GSList *list, GMimeMessage *message, const gchar *header)
- {
--	const gchar *tmp = g_mime_message_get_header (message, header);
-+	const gchar *tmp = g_mime_object_get_header (GMIME_OBJECT (message), header);
+ 	if (!g_file_get_contents (mime_file, &tmp, NULL, NULL)) {
+@@ -609,7 +609,7 @@
+ 			*name = g_strdup (g_mime_content_type_get_parameter (mime, "name"));
+ 		}
  
- 	if (tmp) {
- 		GMimeReferences       *refs;
-@@ -937,15 +1055,21 @@ add_gmime_references (GSList *list, GMim
+-		g_mime_content_type_destroy (mime);
++		g_object_unref (mime);
+ 	}
  
+ 	if (name && !*name) {
+@@ -631,17 +631,17 @@
+ 		gchar *encoding_str = g_strndup (pos_encoding, pos_end_encoding - pos_encoding);
+ 
+ 		if (strcmp (encoding_str, "7bit") == 0) {
+-			*encoding = GMIME_PART_ENCODING_7BIT;
++			*encoding = GMIME_CONTENT_ENCODING_7BIT;
+ 		} else if (strcmp (encoding_str, "8bit") == 0) {
+-			*encoding = GMIME_PART_ENCODING_7BIT;
++			*encoding = GMIME_CONTENT_ENCODING_8BIT;
+ 		} else if (strcmp (encoding_str, "binary") == 0) {
+-			*encoding = GMIME_PART_ENCODING_BINARY;
++			*encoding = GMIME_CONTENT_ENCODING_BINARY;
+ 		} else if (strcmp (encoding_str, "base64") == 0) {
+-			*encoding = GMIME_PART_ENCODING_BASE64;
++			*encoding = GMIME_CONTENT_ENCODING_BASE64;
+ 		} else if (strcmp (encoding_str, "quoted-printable") == 0) {
+-			*encoding = GMIME_PART_ENCODING_QUOTEDPRINTABLE;
++			*encoding = GMIME_CONTENT_ENCODING_QUOTEDPRINTABLE;
+ 		} else if (strcmp (encoding_str, "x-uuencode") == 0) {
+-			*encoding = GMIME_PART_ENCODING_UUENCODE;
++			*encoding = GMIME_CONTENT_ENCODING_UUENCODE;
+ 		}
+ 
+ 		g_free (encoding_str);
+@@ -728,14 +728,17 @@
+ }
  
- static GSList *
--add_recipients (GSList *list, GMimeMessage *message, const gchar *type)
-+add_recipients (GSList *list, GMimeMessage *message, GMimeRecipientType type)
+ static void
+-extract_message_text (GMimeObject *object,
++extract_message_text (GMimeObject *parent, 
++                      GMimeObject *object,
+                       gpointer     user_data)
  {
--	const InternetAddressList *addrs_list;
-+	InternetAddressList *addrs_list;
-+	int i, count;
- 
--	for (addrs_list = g_mime_message_get_recipients (message, type); addrs_list; addrs_list = addrs_list->next) {
-+	addrs_list = g_mime_message_get_recipients (message, type);
-+	count = internet_address_list_length (addrs_list);
-+	for (i = 0; i < count; i++) {
-+		InternetAddress *addr;
- 		MailPerson *mp = email_allocate_mail_person ();
- 
--		mp->name = g_strdup (addrs_list->address->name);
--		mp->addr = g_strdup (addrs_list->address->value.addr);
-+		addr = internet_address_list_get_address (addrs_list, i);
+         GString *body = (GString *) user_data;
+-        GMimePartEncodingType part_encoding;
++        GMimeContentEncoding part_encoding;
+         GMimePart *part;
+-        const gchar *content, *disposition, *filename;
+-        gchar *encoding, *part_body;
++	GMimeStream *stream;
++	GMimeDataWrapper *data;
++        const gchar *disposition, *filename, *encoding;
++        gchar *part_body, buffer[1024];
+         gsize len;
+ 
+         if (GMIME_IS_MESSAGE_PART (object)) {
+@@ -744,7 +747,7 @@
+ 		message = g_mime_message_part_get_message (GMIME_MESSAGE_PART (object));
+ 
+ 		if (message) {
+-			g_mime_message_foreach_part (message, extract_message_text, user_data);
++			g_mime_message_foreach (message, extract_message_text, user_data);
+ 			g_object_unref (message);
+ 		}
+ 
+@@ -756,12 +759,12 @@
+ 
+ 	part = GMIME_PART (object);
+         filename = g_mime_part_get_filename (part);
+-	disposition = g_mime_part_get_content_disposition (part);
+-        part_encoding = g_mime_part_get_encoding (part);
++	disposition = g_mime_object_get_disposition (GMIME_OBJECT (part));
++        part_encoding = g_mime_part_get_content_encoding (part);
+ 
+-        if (part_encoding == GMIME_PART_ENCODING_BINARY ||
+-            part_encoding == GMIME_PART_ENCODING_BASE64 ||
+-            part_encoding == GMIME_PART_ENCODING_UUENCODE) {
++        if (part_encoding == GMIME_CONTENT_ENCODING_BINARY ||
++            part_encoding == GMIME_CONTENT_ENCODING_BASE64 ||
++            part_encoding == GMIME_CONTENT_ENCODING_UUENCODE) {
+                 return;
+         }
+ 
+@@ -776,31 +779,34 @@
+                 return;
+         }
+ 
+-        content = g_mime_part_get_content (GMIME_PART (object), &len);
++	data = g_mime_part_get_content_object (GMIME_PART (object));
+ 
+-        if (!content) {
+-                return;
+-        }
++	if (!data)
++		return;
+ 
+-        if (g_utf8_validate (content, len, NULL)) {
+-                g_string_append_len (body, content, (gssize) len);
+-                return;
+-        }
++	stream = g_mime_data_wrapper_get_stream (data);
+ 
+-        encoding = evolution_common_get_object_encoding (object);
++	if (!stream) {
++		g_object_unref (data);
++		return;
++	}
+ 
+-        if (!encoding) {
+-                /* FIXME: This will break for non-utf8 text without
+-                 * the proper content type set
+-                 */
+-                g_string_append_len (body, content, (gssize) len);
+-        } else {
+-                part_body = g_convert (content, (gssize) len, "utf8", encoding, NULL, NULL, NULL);
+-                g_string_append (body, part_body);
++	encoding = g_mime_object_get_content_disposition_parameter (GMIME_OBJECT (part), "charset");
+ 
+-                g_free (part_body);
+-                g_free (encoding);
+-        }
++	while (!g_mime_stream_eos (stream)) {
++		len = g_mime_stream_read (stream, buffer, 1024);
++		if (len > 0 && g_utf8_validate (buffer, len, NULL)) {
++			if (!encoding)
++				g_string_append_len (body, buffer, (gssize) len);
++			else {
++ 				part_body = g_convert (buffer, (gssize) len, "utf8", encoding, NULL, NULL, NULL);
++				g_string_append (body, part_body);
++				g_free (part_body);
++			}
++		}
++	}
 +
-+		mp->name = g_strdup (internet_address_get_name (addr));
-+		mp->addr = g_strdup (internet_address_to_string (addr, FALSE));
++	g_object_unref (stream);
+ }
+ 
+ static gchar *
+@@ -840,7 +846,7 @@
  
- 		list = g_slist_prepend (list, mp);
+         if (message) {
+                 body = g_string_new (NULL);
+-                g_mime_message_foreach_part (message, extract_message_text, body);
++                g_mime_message_foreach (message, extract_message_text, body);
+                 g_object_unref (message);
+         }
+ 
+@@ -1024,7 +1030,7 @@
+ 	TrackerModuleMetadata *metadata;
+ 	GMimeStream *stream;
+ 	GMimeDataWrapper *wrapper;
+-	GMimePartEncodingType encoding;
++	GMimeContentEncoding encoding;
+ 	gchar *path, *name;
+ 
+ 	if (!get_attachment_info (mime_file, &name, &encoding)) {
+Index: src/tracker-indexer/modules/evolution-common.c
+===================================================================
+--- src/tracker-indexer/modules/evolution-common.c	(revision 2802)
++++ src/tracker-indexer/modules/evolution-common.c	(working copy)
+@@ -89,41 +89,3 @@
+ 	return metadata;
+ }
+ 
+-gchar *
+-evolution_common_get_object_encoding (GMimeObject *object)
+-{
+-        const gchar *start_encoding, *end_encoding;
+-        const gchar *content_type = NULL;
+-
+-        if (GMIME_IS_MESSAGE (object)) {
+-                content_type = g_mime_message_get_header (GMIME_MESSAGE (object), "Content-Type");
+-        } else if (GMIME_IS_PART (object)) {
+-                content_type = g_mime_part_get_content_header (GMIME_PART (object), "Content-Type");
+-        }
+-
+-        if (!content_type) {
+-                return NULL;
+-        }
+-
+-        start_encoding = strstr (content_type, "charset=");
+-
+-        if (!start_encoding) {
+-                return NULL;
+-        }
+-
+-        start_encoding += strlen ("charset=");
+-
+-        if (start_encoding[0] == '"') {
+-                /* encoding is quoted */
+-                start_encoding++;
+-                end_encoding = strstr (start_encoding, "\"");
+-        } else {
+-                end_encoding = strstr (start_encoding, ";");
+-        }
+-
+-        if (end_encoding) {
+-                return g_strndup (start_encoding, end_encoding - start_encoding);
+-        } else {
+-                return g_strdup (start_encoding);
+-        }
+-}
+Index: src/tracker-indexer/modules/evolution-imap-db.c
+===================================================================
+--- src/tracker-indexer/modules/evolution-imap-db.c	(revision 2802)
++++ src/tracker-indexer/modules/evolution-imap-db.c	(working copy)
+@@ -360,7 +360,7 @@
+ 		if (result == SQLITE_ROW) {
+ 			const gchar *folder;
+ 
+-			folder = sqlite3_column_text (stmt, 0);
++			folder = (gchar *) sqlite3_column_text (stmt, 0);
+ 
+ 			if (folder[0] != '.') {
+ 				self->folders = g_list_prepend (self->folders, g_strdup (folder));
+@@ -420,7 +420,7 @@
+ static gboolean
+ get_attachment_info (const gchar            *mime_file,
+                      gchar                 **name,
+-                     GMimePartEncodingType  *encoding)
++                     GMimeContentEncoding  *encoding)
+ {
+ 	GMimeContentType *mime;
+ 	gchar *tmp, *mime_content;
+@@ -431,7 +431,7 @@
  	}
-@@ -955,7 +1079,7 @@ add_recipients (GSList *list, GMimeMessa
  
+ 	if (encoding) {
+-		*encoding = GMIME_PART_ENCODING_DEFAULT;
++		*encoding = GMIME_CONTENT_ENCODING_DEFAULT;
+ 	}
+ 
+ 	if (!g_file_get_contents (mime_file, &tmp, NULL, NULL)) {
+@@ -478,7 +478,7 @@
+ 			*name = g_strdup (g_mime_content_type_get_parameter (mime, "name"));
+ 		}
+ 
+-		g_mime_content_type_destroy (mime);
++		g_object_unref (mime);
+ 	}
+ 
+ 	if (name && !*name) {
+@@ -500,17 +500,17 @@
+ 		gchar *encoding_str = g_strndup (pos_encoding, pos_end_encoding - pos_encoding);
+ 
+ 		if (strcmp (encoding_str, "7bit") == 0) {
+-			*encoding = GMIME_PART_ENCODING_7BIT;
++			*encoding = GMIME_CONTENT_ENCODING_7BIT;
+ 		} else if (strcmp (encoding_str, "8bit") == 0) {
+-			*encoding = GMIME_PART_ENCODING_7BIT;
++			*encoding = GMIME_CONTENT_ENCODING_7BIT;
+ 		} else if (strcmp (encoding_str, "binary") == 0) {
+-			*encoding = GMIME_PART_ENCODING_BINARY;
++			*encoding = GMIME_CONTENT_ENCODING_BINARY;
+ 		} else if (strcmp (encoding_str, "base64") == 0) {
+-			*encoding = GMIME_PART_ENCODING_BASE64;
++			*encoding = GMIME_CONTENT_ENCODING_BASE64;
+ 		} else if (strcmp (encoding_str, "quoted-printable") == 0) {
+-			*encoding = GMIME_PART_ENCODING_QUOTEDPRINTABLE;
++			*encoding = GMIME_CONTENT_ENCODING_QUOTEDPRINTABLE;
+ 		} else if (strcmp (encoding_str, "x-uuencode") == 0) {
+-			*encoding = GMIME_PART_ENCODING_UUENCODE;
++			*encoding = GMIME_CONTENT_ENCODING_UUENCODE;
+ 		}
+ 
+ 		g_free (encoding_str);
+@@ -586,14 +586,17 @@
+ }
  
  static void
--find_attachment (GMimeObject *obj, gpointer data)
-+find_attachment (GMimeObject *parent, GMimeObject *obj, gpointer data)
+-extract_message_text (GMimeObject *object,
++extract_message_text (GMimeObject *parent, 
++                      GMimeObject *object,
+                       gpointer     user_data)
  {
- 	GMimePart   *part;
- 	MailMessage *mail_msg;
-@@ -969,8 +1093,8 @@ find_attachment (GMimeObject *obj, gpoin
- 		GMimeMessage *g_msg = g_mime_message_part_get_message (GMIME_MESSAGE_PART (obj));
- 
- 		if (g_msg) {
--			g_mime_message_foreach_part (g_msg, find_attachment, data);
--			g_object_unref (g_msg);
-+			g_mime_message_foreach (g_msg, find_attachment, data);
-+			g_object_unref (obj);
+         GString *body = (GString *) user_data;
+-        GMimePartEncodingType part_encoding;
++        GMimeContentEncoding part_encoding;
+         GMimePart *part;
+-        const gchar *content, *disposition, *filename;
+-        gchar *encoding, *part_body;
++	GMimeStream *stream;
++	GMimeDataWrapper *data;
++        const gchar *disposition, *filename, *encoding;
++        gchar *part_body, buffer[1024];
+         gsize len;
+ 
+         if (GMIME_IS_MESSAGE_PART (object)) {
+@@ -602,7 +605,7 @@
+ 		message = g_mime_message_part_get_message (GMIME_MESSAGE_PART (object));
+ 
+ 		if (message) {
+-			g_mime_message_foreach_part (message, extract_message_text, user_data);
++			g_mime_message_foreach (message, extract_message_text, user_data);
+ 			g_object_unref (message);
  		}
- 		return;
  
-@@ -987,20 +1111,20 @@ find_attachment (GMimeObject *obj, gpoin
+@@ -614,12 +617,12 @@
  
- 	mail_msg = data;
+ 	part = GMIME_PART (object);
+         filename = g_mime_part_get_filename (part);
+-	disposition = g_mime_part_get_content_disposition (part);
+-        part_encoding = g_mime_part_get_encoding (part);
++	disposition = g_mime_object_get_disposition (GMIME_OBJECT (part));
++        part_encoding = g_mime_part_get_content_encoding (part);
+ 
+-        if (part_encoding == GMIME_PART_ENCODING_BINARY ||
+-            part_encoding == GMIME_PART_ENCODING_BASE64 ||
+-            part_encoding == GMIME_PART_ENCODING_UUENCODE) {
++        if (part_encoding == GMIME_CONTENT_ENCODING_BINARY ||
++            part_encoding == GMIME_CONTENT_ENCODING_BASE64 ||
++            part_encoding == GMIME_CONTENT_ENCODING_UUENCODE) {
+                 return;
+         }
+ 
+@@ -634,34 +637,34 @@
+                 return;
+         }
+ 
+-        content = g_mime_part_get_content (GMIME_PART (object), &len);
++	data = g_mime_part_get_content_object (GMIME_PART (object));
+ 
+-        if (!content) {
+-                return;
+-        }
++	if (!data)
++		return;
+ 
+-        if (g_utf8_validate (content, len, NULL)) {
+-                g_string_append_len (body, content, (gssize) len);
+-                return;
+-        }
++	stream = g_mime_data_wrapper_get_stream (data);
+ 
+-        encoding = evolution_common_get_object_encoding (object);
++	if (!stream) {
++		g_object_unref (data);
++		return;
++	}
  
--	content_disposition = g_mime_part_get_content_disposition (part);
-+	content_disposition = g_mime_object_get_disposition (obj);
+-        if (!encoding) {
+-                /* FIXME: This will break for non-utf8 text without
+-                 * the proper content type set
+-                 */
+-                g_string_append_len (body, content, (gssize) len);
+-        } else {
+-                part_body = g_convert (content, (gssize) len, "utf8", encoding, NULL, NULL, NULL);
++	encoding = g_mime_object_get_content_disposition_parameter (GMIME_OBJECT (part), "charset");
+ 
+-		if (part_body) {
+-			g_string_append (body, part_body);
+-			g_free (part_body);
++	while (!g_mime_stream_eos (stream)) {
++		len = g_mime_stream_read (stream, buffer, 1024);
++		if (len > 0 && g_utf8_validate (buffer, len, NULL)) {
++			if (!encoding)
++				g_string_append_len (body, buffer, (gssize) len);
++			else {
++ 				part_body = g_convert (buffer, (gssize) len, "utf8", encoding, NULL, NULL, NULL);
++				g_string_append (body, part_body);
++				g_free (part_body);
++			}
+ 		}
++	}
  
- 	/* test whether it is a mail attachment */
- 	if (content_disposition &&
- 	    (strcmp (content_disposition, GMIME_DISPOSITION_ATTACHMENT) == 0 ||
- 	     strcmp (content_disposition, GMIME_DISPOSITION_INLINE) == 0)) {
- 
--		const GMimeContentType *content_type;
-+		GMimeContentType       *content_type;
- 		MailAttachment         *ma;
- 		const gchar            *filename;
- 		gchar                  *attachment_uri;
- 		gint                   fd;
- 
--		if (! (content_type = g_mime_part_get_content_type (part)))
-+		if (! (content_type = g_mime_object_get_content_type (obj)))
- 			return;
- 
- 		filename = g_mime_part_get_filename (part);
---- tracker-0.6.6.old/configure.ac	2008-03-03 04:13:34.000000000 +0000
-+++ tracker-0.6.6/configure.ac	2008-12-15 21:10:17.000000000 +0000
-@@ -65,7 +65,7 @@ AC_SUBST(PANGO_CFLAGS)
- AC_SUBST(PANGO_LIBS)
+-                g_free (encoding);
+-        }
++	g_object_unref (stream);
+ }
  
- # Check for GMime
--PKG_CHECK_MODULES(GMIME, [ gmime-2.0 >= $GMIME_REQUIRED ])
-+PKG_CHECK_MODULES(GMIME, [ gmime-2.4 >= $GMIME_REQUIRED ])
- AC_SUBST(GMIME_CFLAGS)
- AC_SUBST(GMIME_LIBS)
+ static gchar *
+@@ -706,7 +709,7 @@
+ 
+         if (message) {
+                 body = g_string_new (NULL);
+-                g_mime_message_foreach_part (message, extract_message_text, body);
++                g_mime_message_foreach (message, extract_message_text, body);
+                 g_object_unref (message);
+         }
+ 
+@@ -799,7 +802,7 @@
+ 	TrackerModuleMetadata *metadata;
+ 	GMimeStream *stream;
+ 	GMimeDataWrapper *wrapper;
+-	GMimePartEncodingType encoding;
++	GMimeContentEncoding encoding;
+ 	gchar *path, *name;
  
+ 	if (!get_attachment_info (mime_file, &name, &encoding)) {


Index: tracker.spec
===================================================================
RCS file: /cvs/pkgs/rpms/tracker/devel/tracker.spec,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -r1.43 -r1.44
--- tracker.spec	23 Dec 2008 15:37:24 -0000	1.43
+++ tracker.spec	10 Feb 2009 03:18:10 -0000	1.44
@@ -1,21 +1,22 @@
 Summary:	An object database, tag/metadata database, search tool and indexer
 Name:		tracker
-Version:	0.6.6
-Release:	10%{?dist}
+Version:	0.6.90
+Release:	1%{?dist}
 License:	GPLv2+
 Group:		Applications/System
-URL:		http://www.gnome.org/~jamiemcc/tracker/
-Source0:	http://www.gnome.org/~jamiemcc/tracker/%{name}-%{version}.tar.bz2
+URL:		http://projects.gnome.org/tracker/
+Source0:	http://ftp.gnome.org/pub/GNOME/sources/tracker/0.6/%{name}-%{version}.tar.bz2
 # http://bugzilla.gnome.org/show_bug.cgi?id=564640
 Patch0:		tracker-gmime-2.4.patch
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
-BuildRequires:	gmime-devel, poppler-glib-devel, gettext
+BuildRequires:	gmime-devel, poppler-glib-devel, evolution-devel
 BuildRequires:	gnome-desktop-devel, gamin-devel, libnotify-devel
-BuildRequires:	libexif-devel, libgsf-devel, gstreamer-devel, exempi-devel
-BuildRequires:	desktop-file-utils, intltool, deskbar-applet
-BuildRequires:	sqlite-devel, qdbm-devel, pygtk2-devel
+BuildRequires:	totem-pl-parser-devel, libgsf-devel, gstreamer-devel
+BuildRequires:  gstreamer-plugins-base-devel
+BuildRequires:	libjpeg-devel, libexif-devel, exempi-devel, raptor-devel
+BuildRequires:	desktop-file-utils, intltool, gettext, deskbar-applet
+BuildRequires:	sqlite-devel, qdbm-devel, pygtk2-devel, libtiff-devel
 BuildRequires:	autoconf, automake, libtool
-Requires:	o3read
 
 %description
 Tracker is a powerful desktop-neutral first class object database,
@@ -54,7 +55,7 @@
 
 %prep
 %setup -q
-%patch0 -p1
+%patch0 -p0
 autoreconf -f -i
 
 %define deskbar_applet_ver %(pkg-config --modversion deskbar-applet)
@@ -114,14 +115,15 @@
 %exclude %{_bindir}/tracker-applet
 %exclude %{_bindir}/tracker-preferences
 %exclude %{_bindir}/tracker-search-tool
-%exclude %{_bindir}/tracker-thumbnailer
-%exclude %{_bindir}/o3totxt
+%{_libexecdir}/tracker*
 %{_datadir}/tracker/
-%{_datadir}/dbus-1/services/tracker.service
+%{_datadir}/dbus-1/services/org.freedesktop.Tracker.*
 %{_libdir}/*.so.*
 %{_libdir}/tracker/
 %{_mandir}/*/tracker*.gz
 %{_sysconfdir}/xdg/autostart/trackerd.desktop
+%doc %{_datadir}/gtk-doc/html/libtracker-common/
+%doc %{_datadir}/gtk-doc/html/libtracker-module/
 
 %files devel
 %defattr(-, root, root, -)
@@ -135,13 +137,15 @@
 %{_bindir}/tracker-applet
 %{_bindir}/tracker-preferences
 %{_bindir}/tracker-search-tool
-%{_bindir}/tracker-thumbnailer
 %{deskbar_applet_dir}/tracker*.py*
 %{_datadir}/icons/*/*/apps/tracker.*
 %{_datadir}/applications/*.desktop
 %{_sysconfdir}/xdg/autostart/tracker-applet.desktop
 
 %changelog
+* Mon Feb 09 2009 Deji Akingunola <dakingun at gmail.com> - 0.6.90-1
+- New release, with tons of changes
+
 * Tue Dec 23 2008 - Caolán McNamara <caolanm at redhat.com> - 0.6.6-10
 - make build
 




More information about the fedora-extras-commits mailing list