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