diff --git a/tracker-gmime-2.4.patch b/tracker-gmime-2.4.patch index 4c855ee..8981223 100644 --- a/tracker-gmime-2.4.patch +++ b/tracker-gmime-2.4.patch @@ -1,18 +1,135 @@ -Index: src/tracker-indexer/modules/evolution-pop.c -=================================================================== ---- src/tracker-indexer/modules/evolution-pop.c (revision 2704) -+++ src/tracker-indexer/modules/evolution-pop.c (working copy) -@@ -171,7 +171,7 @@ - gchar *number; - gint id; +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); -- header = g_mime_message_get_header (message, "X-Evolution"); -+ header = g_mime_object_get_header (GMIME_OBJECT (message), "X-Evolution"); +- field = g_mime_message_get_header (g_m_message, "X-Evolution"); ++ field = g_mime_object_get_header (GMIME_OBJECT (g_m_message), "X-Evolution"); - if (!header) { - return -1; -@@ -245,10 +245,134 @@ - return message_uri; + 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); + } + +- internet_address_list_destroy (addrs_list); ++ g_object_unref (addrs_list); + + 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) + { +- 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 = 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); + } + +- 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); + + + +@@ -491,6 +491,124 @@ email_free_mail_message (MailMessage *ma + g_slice_free (MailMessage, mail_msg); } +static GMimeObject * @@ -20,7 +137,6 @@ Index: src/tracker-indexer/modules/evolution-pop.c +{ + GMimeObject *mime_part, *text_part = NULL; + GMimeContentType *type; -+ GList *subpart; + int count, i; + + count = g_mime_multipart_get_count (multipart); @@ -92,9 +208,7 @@ Index: src/tracker-indexer/modules/evolution-pop.c + GMimeObject *mime_part = NULL; + GMimeContentType *type; + GMimeMultipart *multipart; -+ const char *content; + char *body = NULL; -+ gint64 len = 0; + + g_return_val_if_fail (GMIME_IS_MESSAGE (message), NULL); + g_return_val_if_fail (is_html != NULL, NULL); @@ -130,219 +244,149 @@ Index: src/tracker-indexer/modules/evolution-pop.c + g_mime_stream_read (mime_stream, body, len); + g_object_unref (mime_stream); + g_object_unref (data_wrapper); -+ -+// content = g_mime_part_get_content (GMIME_PART (mime_part), &len); -+// body = g_strndup (content, len); + } + + return body; +} + - static gchar * - tracker_evolution_pop_file_get_text (TrackerModuleFile *file) - { - TrackerEvolutionPopFile *self; -+ GMimeObject *part; - gchar *text, *encoding, *utf8_text; - gboolean is_html; ++ -@@ -259,7 +383,7 @@ - return NULL; + 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 + + mail_msg->subject = g_strdup (g_mime_message_get_subject (g_m_message)); + +- 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 (read_mail_helper) { +@@ -549,7 +667,7 @@ email_mail_file_parse_next (MailFile *mf + mail_msg->attachments = NULL; + + /* 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); + + g_object_unref (g_m_message); + +@@ -786,23 +904,23 @@ email_decode_mail_attachment_to_file (co + return FALSE; } -- text = g_mime_message_get_body (self->message, TRUE, &is_html); -+ text = tracker_mime_message_get_body (self->message, TRUE, &is_html); +- filtered_stream = g_mime_stream_filter_new_with_stream (stream_src); ++ filtered_stream = g_mime_stream_filter_new (stream_src); - if (!text) { - return NULL; -@@ -287,7 +411,7 @@ + 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 *header, *pos; +- const gchar *tmp = g_mime_message_get_header (message, header); ++ const gchar *tmp = g_mime_object_get_header (GMIME_OBJECT (message), header); -- header = g_mime_message_get_header (message, "X-Evolution"); -+ header = g_mime_object_get_header (GMIME_OBJECT (message), "X-Evolution"); - pos = strchr (header, '-'); + if (tmp) { + GMimeReferences *refs; +@@ -937,15 +1055,21 @@ add_gmime_references (GSList *list, GMim - return (guint) strtoul (pos + 1, NULL, 16); -@@ -295,34 +419,25 @@ - static GList * - get_message_recipients (GMimeMessage *message, -- const gchar *type) -+ GMimeRecipientType type) + static GSList * +-add_recipients (GSList *list, GMimeMessage *message, const gchar *type) ++add_recipients (GSList *list, GMimeMessage *message, GMimeRecipientType type) { - GList *list = NULL; -- const InternetAddressList *addresses; +- const InternetAddressList *addrs_list; ++ InternetAddressList *addrs_list; + int i, count; -+ InternetAddressList *addresses; - addresses = g_mime_message_get_recipients (message, type); -+ count = internet_address_list_length (addresses); - -- while (addresses) { +- 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 *address; - gchar *str; ++ InternetAddress *addr; + MailPerson *mp = email_allocate_mail_person (); -- address = addresses->address; -+ address = internet_address_list_get_address (addresses, i); -+ str = internet_address_to_string (address, FALSE); +- 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); ++ ++ mp->name = g_strdup (internet_address_get_name (addr)); ++ mp->addr = g_strdup (internet_address_to_string (addr, FALSE)); -- 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; -- } -- - if (str) { - list = g_list_prepend (list, str); - } -- -- addresses = addresses->next; + list = g_slist_prepend (list, mp); } +@@ -955,7 +1079,7 @@ add_recipients (GSList *list, GMimeMessa - return g_list_reverse (list); -@@ -410,7 +525,8 @@ - } static void --extract_mime_parts (GMimeObject *object, -+extract_mime_parts (GMimeObject *parent, -+ GMimeObject *object, - gpointer user_data) +-find_attachment (GMimeObject *obj, gpointer data) ++find_attachment (GMimeObject *parent, GMimeObject *obj, gpointer data) { - GList **list = (GList **) user_data; -@@ -433,8 +549,7 @@ + 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); + } return; - } -- part = GMIME_PART (object); -- disposition = g_mime_part_get_content_disposition (part); -+ disposition = g_mime_object_get_disposition (object); +@@ -987,20 +1111,20 @@ find_attachment (GMimeObject *obj, gpoin - if (!disposition || - (strcmp (disposition, GMIME_DISPOSITION_ATTACHMENT) != 0 && -Index: src/tracker-indexer/modules/evolution-imap.c -=================================================================== ---- src/tracker-indexer/modules/evolution-imap.c (revision 2704) -+++ src/tracker-indexer/modules/evolution-imap.c (working copy) -@@ -548,7 +548,7 @@ - static gboolean - get_attachment_info (const gchar *mime_file, - gchar **name, -- GMimePartEncodingType *encoding) -+ GMimeContentEncoding *encoding) - { - GMimeContentType *mime; - gchar *tmp, *mime_content; -@@ -559,7 +559,7 @@ - } + mail_msg = data; - if (encoding) { -- *encoding = GMIME_PART_ENCODING_DEFAULT; -+ *encoding = GMIME_CONTENT_ENCODING_DEFAULT; - } +- content_disposition = g_mime_part_get_content_disposition (part); ++ content_disposition = g_mime_object_get_disposition (obj); - if (!g_file_get_contents (mime_file, &tmp, NULL, NULL)) { -@@ -606,7 +606,7 @@ - *name = g_strdup (g_mime_content_type_get_parameter (mime, "name")); - } + /* test whether it is a mail attachment */ + if (content_disposition && + (strcmp (content_disposition, GMIME_DISPOSITION_ATTACHMENT) == 0 || + strcmp (content_disposition, GMIME_DISPOSITION_INLINE) == 0)) { -- g_mime_content_type_destroy (mime); -+ g_object_unref (mime); - } +- const GMimeContentType *content_type; ++ GMimeContentType *content_type; + MailAttachment *ma; + const gchar *filename; + gchar *attachment_uri; + gint fd; - if (name && !*name) { -@@ -628,17 +628,17 @@ - gchar *encoding_str = g_strndup (pos_encoding, pos_end_encoding - pos_encoding); +- if (! (content_type = g_mime_part_get_content_type (part))) ++ if (! (content_type = g_mime_object_get_content_type (obj))) + return; - 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); -@@ -729,7 +729,7 @@ - gpointer user_data) - { - GString *body = (GString *) user_data; -- GMimePartEncodingType part_encoding; -+ GMimeContentEncoding part_encoding; - GMimePart *part; - const gchar *content, *disposition, *filename; - gchar *encoding, *part_body; -@@ -753,12 +753,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 (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; - } - -@@ -1022,7 +1022,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 2704) -+++ src/tracker-indexer/modules/evolution-common.c (working copy) -@@ -94,9 +94,9 @@ - const gchar *content_type = NULL; - - if (GMIME_IS_MESSAGE (object)) { -- content_type = g_mime_message_get_header (GMIME_MESSAGE (object), "Content-Type"); -+ content_type = g_mime_object_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"); -+ content_type = g_mime_object_get_header (GMIME_PART (object), "Content-Type"); - } - - if (!content_type) { -Index: configure.ac -=================================================================== ---- configure.ac (revision 2704) -+++ configure.ac (working copy) -@@ -149,7 +149,7 @@ + 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) # Check for GMime --PKG_CHECK_MODULES(GMIME, [gmime-2.0 >= $GMIME_REQUIRED]) -+PKG_CHECK_MODULES(GMIME, [gmime-2.4 >= $GMIME_REQUIRED]) +-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) diff --git a/tracker.spec b/tracker.spec index d0fb97c..da555a2 100644 --- a/tracker.spec +++ b/tracker.spec @@ -1,7 +1,7 @@ Summary: An object database, tag/metadata database, search tool and indexer Name: tracker Version: 0.6.6 -Release: 7%{?dist} +Release: 8%{?dist} License: GPLv2+ Group: Applications/System URL: http://www.gnome.org/~jamiemcc/tracker/ @@ -54,7 +54,7 @@ GNOME libraries %prep %setup -q -%patch0 -p0 +%patch0 -p1 autoreconf %define deskbar_applet_ver %(pkg-config --modversion deskbar-applet) @@ -142,6 +142,9 @@ fi %{_sysconfdir}/xdg/autostart/tracker-applet.desktop %changelog +* Mon Dec 15 2008 - Bastien Nocera - 0.6.6-8 +- Update patch to actually apply, way to do releases often + * Mon Dec 15 2008 - Bastien Nocera - 0.6.6-7 - Add patch to port to GMime 2.4