State of gmime (mail/gmime24)

John Prather john.c.prather at gmail.com
Wed Apr 14 06:47:04 UTC 2010


Hello,

I've been maintaining a port which provides a plugin for Pidgin
(net-im/pidgin-sipe), which has recently introduced the option to
build a telepathy plugin in addition to or instead of the purple
plugin.

Building the telepathy plugin causes gnu configure to require gmime
2.4 >= 2.4.16 (mail/gmime24 is 2.4.10 currently) or gmime 2.6 >= 2.5.2
(seems to be no 2.6 port yet).

I've found that I can easily patch one of the bug fixes I found
(https://bugzilla.gnome.org/show_bug.cgi?id=613653#c8) that the sipe
developers deemed necessary into the 2.4.10 port, however I'm wary of
going crazy with freebsd patches for 2.4.10 if we are going to have
2.4.16 out in the near future, or 2.6 >= 2.5.2 made available.  Also,
there may be other important bug fixes, though the others which i
found that the sipe developers were concerned with were all related to
building on Windows.

Do we feel that patching 2.4.10 with relatively simple patches would
be a decent approach, or should we wait for either 2.4.16 release and
the corresponding port update or 2.6 to be added into ports?  I partly
feel we should wait for the correct versions to be made available, but
it seems silly to wait weeks or months or more and deal with someone
having to port a whole new release over such a simple fix.

Here is what the patches look like which seem to apply nicely to
2.4.10 in mail/gmime24:

(i'm sure the email turned tabs to spaces, but you can see the gist of
it.  I can post the unmangled patch files somewhere if they are
desired)

[root at bsdlaptop /usr/ports/mail/gmime24]# cat
files/patch-gmime_gmime.c
*** gmime/gmime.c.orig  Tue Apr 13 22:45:25 2010
--- gmime/gmime.c       Tue Apr 13 22:46:09 2010
***************
*** 141,147 ****
 {
       if (--initialized)
               return;
!
       g_mime_charset_map_shutdown ();
       g_mime_iconv_shutdown ();
 }
--- 141,148 ----
 {
       if (--initialized)
               return;
!
!       g_mime_object_shutdown();
       g_mime_charset_map_shutdown ();
       g_mime_iconv_shutdown ();
 }
[root at bsdlaptop /usr/ports/mail/gmime24]# cat
files/patch-gmime_gmime-object.c
*** gmime/gmime-object.c.orig   Tue Apr 13 22:46:38 2010
--- gmime/gmime-object.c        Tue Apr 13 22:48:48 2010
***************
*** 1061,1068 ****
       g_free (bucket);
 }

! static void
! type_registry_shutdown (void)
 {
       g_hash_table_foreach (type_hash, type_bucket_foreach, NULL);
       g_hash_table_destroy (type_hash);
--- 1061,1068 ----
       g_free (bucket);
 }

! void
! g_mime_object_shutdown (void)
 {
       g_hash_table_foreach (type_hash, type_bucket_foreach, NULL);
       g_hash_table_destroy (type_hash);
***************
*** 1075,1080 ****
               return;

       type_hash = g_hash_table_new (g_mime_strcase_hash, g_mime_strcase_equal);
-
-       g_atexit (type_registry_shutdown);
 }
--- 1075,1078 ----
[root at bsdlaptop /usr/ports/mail/gmime24]# cat files/patch-gmime_gmime-object.h
*** gmime/gmime-object.h.orig   Tue Apr 13 22:49:01 2010
--- gmime/gmime-object.h        Tue Apr 13 22:49:51 2010
***************
*** 94,99 ****
--- 94,100 ----
 GType g_mime_object_get_type (void);

 void g_mime_object_register_type (const char *type, const char
*subtype, GType object_type);
+ void g_mime_object_shutdown (void);

 GMimeObject *g_mime_object_new (GMimeContentType *content_type);
 GMimeObject *g_mime_object_new_type (const char *type, const char *subtype);



--
John Prather


More information about the freebsd-ports mailing list