aboutsummaryrefslogtreecommitdiffstats
path: root/testing/mu
diff options
context:
space:
mode:
authorKrzysztof Walo <krzysztof.walo@gmail.com>2019-06-05 14:01:50 +0200
committerLeo <thinkabit.ukim@gmail.com>2019-06-09 13:20:47 -0300
commitd59c7208624ade4df50fbeb1dd1908eae64e6d36 (patch)
tree3ea43e9d54c8027b93acae97b6e9bb83eae56993 /testing/mu
parent6fabd66170bea9bc70ef0b389920306548a57890 (diff)
downloadaports-d59c7208624ade4df50fbeb1dd1908eae64e6d36.tar.bz2
aports-d59c7208624ade4df50fbeb1dd1908eae64e6d36.tar.xz
testing/mu: Upgrade to version 1.2
Diffstat (limited to 'testing/mu')
-rw-r--r--testing/mu/0001-Support-gmime-3.0.patch702
-rw-r--r--testing/mu/APKBUILD8
2 files changed, 3 insertions, 707 deletions
diff --git a/testing/mu/0001-Support-gmime-3.0.patch b/testing/mu/0001-Support-gmime-3.0.patch
deleted file mode 100644
index 25a59c39ab..0000000000
--- a/testing/mu/0001-Support-gmime-3.0.patch
+++ /dev/null
@@ -1,702 +0,0 @@
-From b110a5990eb9f02b0118401d8960dc1e00a49253 Mon Sep 17 00:00:00 2001
-From: Yuri D'Elia <wavexx@thregr.org>
-Date: Sun, 30 Jul 2017 16:47:38 +0200
-Subject: [PATCH] Support gmime 3.0
-
----
- configure.ac | 6 +-
- contrib/gmime-test.c | 63 +++++++++--------
- lib/mu-msg-crypto.c | 163 +++++++------------------------------------
- lib/mu-msg-file.c | 46 ++++++------
- lib/mu-msg-part.c | 26 ++++---
- lib/mu-msg.c | 61 +++++++---------
- 6 files changed, 126 insertions(+), 239 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 55c0718b..58531ae4 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -139,11 +139,11 @@ AC_SUBST(GLIB_CFLAGS)
- AC_SUBST(GLIB_LIBS)
- glib_version="`$PKG_CONFIG --modversion glib-2.0`"
-
--# gmime, some late-2012 version
--PKG_CHECK_MODULES(GMIME,gmime-2.6 >= 2.6.7)
-+# gmime, version 3.0 or higher
-+PKG_CHECK_MODULES(GMIME,gmime-3.0)
- AC_SUBST(GMIME_CFLAGS)
- AC_SUBST(GMIME_LIBS)
--gmime_version="`$PKG_CONFIG --modversion gmime-2.6`"
-+gmime_version="`$PKG_CONFIG --modversion gmime-3.0`"
-
-
- # xapian checking - we need 1.2.x at least
-diff --git a/contrib/gmime-test.c b/contrib/gmime-test.c
-index ce8c6d06..5c59ed2b 100644
---- a/contrib/gmime-test.c
-+++ b/contrib/gmime-test.c
-@@ -31,13 +31,13 @@
- #include <locale.h>
-
- static gchar*
--get_recip (GMimeMessage *msg, GMimeRecipientType rtype)
-+get_recip (GMimeMessage *msg, GMimeAddressType atype)
- {
- char *recep;
- InternetAddressList *receps;
-
-- receps = g_mime_message_get_recipients (msg, rtype);
-- recep = (char*)internet_address_list_to_string (receps, FALSE);
-+ receps = g_mime_message_get_addresses (msg, atype);
-+ recep = (char*)internet_address_list_to_string (receps, NULL, FALSE);
-
- if (!recep || !*recep) {
- g_free (recep);
-@@ -51,20 +51,19 @@ static gchar*
- get_refs_str (GMimeMessage *msg)
- {
- const gchar *str;
-- const GMimeReferences *cur;
- GMimeReferences *mime_refs;
-+ int i, refs_len;
- gchar *rv;
-
- str = g_mime_object_get_header (GMIME_OBJECT(msg), "References");
- if (!str)
- return NULL;
-
-- mime_refs = g_mime_references_decode (str);
-- for (rv = NULL, cur = mime_refs; cur;
-- cur = g_mime_references_get_next(cur)) {
--
-+ mime_refs = g_mime_references_parse (NULL, str);
-+ refs_len = g_mime_references_length (mime_refs);
-+ for (rv = NULL, i = 0; i < refs_len; ++i) {
- const char* msgid;
-- msgid = g_mime_references_get_message_id (cur);
-+ msgid = g_mime_references_get_message_id (mime_refs, i);
- rv = g_strdup_printf ("%s%s%s",
- rv ? rv : "",
- rv ? "," : "",
-@@ -78,21 +77,21 @@ get_refs_str (GMimeMessage *msg)
- static void
- print_date (GMimeMessage *msg)
- {
-- time_t t;
-- int tz;
-- char buf[64];
-- size_t len;
-- struct tm *t_m;
--
-+ GDateTime *dt;
-+ gchar *buf;
-
-- g_mime_message_get_date (msg, &t, &tz);
-- t_m = localtime (&t);
-+ dt = g_mime_message_get_date (msg);
-+ if (!dt)
-+ return;
-
-- len = strftime (buf, sizeof(buf) - 1, "%c", t_m);
-+ dt = g_date_time_to_local (dt);
-+ buf = g_date_time_format (dt, "%c");
-+ g_date_time_unref (dt);
-
-- if (len > 0)
-- g_print ("Date : %s (%s%04d)\n",
-- buf,tz < 0 ? "-" : "+", tz);
-+ if (buf) {
-+ g_print ("Date : %s\n", buf);
-+ g_free (buf);
-+ }
- }
-
-
-@@ -111,7 +110,7 @@ print_body (GMimeMessage *msg)
- if (!GMIME_IS_PART(body))
- return;
-
-- wrapper = g_mime_part_get_content_object (GMIME_PART(body));
-+ wrapper = g_mime_part_get_content (GMIME_PART(body));
- if (!GMIME_IS_DATA_WRAPPER(wrapper))
- return;
-
-@@ -142,17 +141,19 @@ test_message (GMimeMessage *msg)
- gchar *val;
- const gchar *str;
-
-- g_print ("From : %s\n", g_mime_message_get_sender (msg));
-+ val = get_recip (msg, GMIME_ADDRESS_TYPE_FROM);
-+ g_print ("From : %s\n", val ? val : "<none>" );
-+ g_free (val);
-
-- val = get_recip (msg, GMIME_RECIPIENT_TYPE_TO);
-+ val = get_recip (msg, GMIME_ADDRESS_TYPE_TO);
- g_print ("To : %s\n", val ? val : "<none>" );
- g_free (val);
-
-- val = get_recip (msg, GMIME_RECIPIENT_TYPE_CC);
-+ val = get_recip (msg, GMIME_ADDRESS_TYPE_CC);
- g_print ("Cc : %s\n", val ? val : "<none>" );
- g_free (val);
-
-- val = get_recip (msg, GMIME_RECIPIENT_TYPE_BCC);
-+ val = get_recip (msg, GMIME_ADDRESS_TYPE_BCC);
- g_print ("Bcc : %s\n", val ? val : "<none>" );
- g_free (val);
-
-@@ -195,7 +196,7 @@ test_stream (GMimeStream *stream)
- goto leave;
- }
-
-- msg = g_mime_parser_construct_message (parser);
-+ msg = g_mime_parser_construct_message (parser, NULL);
- if (!msg) {
- g_warning ("failed to construct message");
- rv = FALSE;
-@@ -207,8 +208,6 @@ test_stream (GMimeStream *stream)
- leave:
- if (parser)
- g_object_unref (parser);
-- else
-- g_object_unref (stream);
-
- if (msg)
- g_object_unref (msg);
-@@ -242,7 +241,9 @@ test_file (const char *path)
- goto leave;
- }
-
-- rv = test_stream (stream); /* test-stream will unref it */
-+ rv = test_stream (stream);
-+ g_object_unref (stream);
-+ return rv;
-
- leave:
- if (file)
-@@ -264,7 +265,7 @@ main (int argc, char *argv[])
-
- setlocale (LC_ALL, "");
-
-- g_mime_init(GMIME_ENABLE_RFC2047_WORKAROUNDS);
-+ g_mime_init();
-
- rv = test_file (argv[1]);
-
-diff --git a/lib/mu-msg-crypto.c b/lib/mu-msg-crypto.c
-index 4c9b132c..ba0d5e7c 100644
---- a/lib/mu-msg-crypto.c
-+++ b/lib/mu-msg-crypto.c
-@@ -99,83 +99,6 @@ dummy_password_func (const char *user_id, const char *prompt_ctx,
- }
-
-
--static char*
--get_gpg (GError **err)
--{
-- char *path;
-- const char *envpath;
--
-- if ((envpath = g_getenv ("MU_GPG_PATH"))) {
-- if (access (envpath, X_OK) != 0) {
-- mu_util_g_set_error (
-- err, MU_ERROR,
-- "'%s': not a valid gpg path: %s",
-- envpath, strerror (errno));
-- return NULL;
-- }
-- return g_strdup (envpath);
-- }
--
-- if (!(path = g_find_program_in_path ("gpg2")) &&
-- !(path = g_find_program_in_path ("gpg"))) {
-- mu_util_g_set_error (err, MU_ERROR, "gpg/gpg2 not found");
-- return NULL;
-- } else
-- return path;
--}
--
--
--static GMimeCryptoContext*
--get_gpg_crypto_context (MuMsgOptions opts, GError **err)
--{
-- GMimeCryptoContext *cctx;
-- char *gpg;
--
-- cctx = NULL;
-- if (!(gpg = get_gpg (err)))
-- return NULL;
--
-- cctx = g_mime_gpg_context_new (
-- (GMimePasswordRequestFunc)password_requester, gpg);
-- g_free (gpg);
--
-- if (!cctx) {
-- mu_util_g_set_error (err, MU_ERROR,
-- "failed to get GPG crypto context");
-- return NULL;
-- }
--
-- /* always try to use the agent */
-- g_mime_gpg_context_set_use_agent (GMIME_GPG_CONTEXT(cctx), TRUE);
-- g_mime_gpg_context_set_auto_key_retrieve
-- (GMIME_GPG_CONTEXT(cctx),
-- opts & MU_MSG_OPTION_AUTO_RETRIEVE ? TRUE:FALSE);
--
-- return cctx;
--}
--
--
--static GMimeCryptoContext*
--get_crypto_context (MuMsgOptions opts, MuMsgPartPasswordFunc password_func,
-- gpointer user_data, GError **err)
--{
-- CallbackData *cbdata;
-- GMimeCryptoContext *cctx;
--
-- cctx = get_gpg_crypto_context (opts, err);
-- if (!cctx)
-- return NULL;
--
-- /* use gobject to pass data to the callback func */
-- cbdata = g_new0 (CallbackData, 1);
-- cbdata->pw_func = password_func ? password_func : dummy_password_func;
-- cbdata->user_data = user_data;
--
-- g_object_set_data_full (G_OBJECT(cctx), CALLBACK_DATA,
-- cbdata, (GDestroyNotify)g_free);
-- return cctx;
--}
--
- static const char*
- get_pubkey_algo_name (GMimePubKeyAlgo algo)
- {
-@@ -250,12 +173,12 @@ get_cert_details (GMimeCertificate *cert)
- (g_mime_certificate_get_pubkey_algo (cert));
-
- switch (g_mime_certificate_get_trust (cert)) {
-- case GMIME_CERTIFICATE_TRUST_NONE: trust = "none"; break;
-- case GMIME_CERTIFICATE_TRUST_NEVER: trust = "never"; break;
-- case GMIME_CERTIFICATE_TRUST_UNDEFINED: trust = "undefined"; break;
-- case GMIME_CERTIFICATE_TRUST_MARGINAL: trust = "marginal"; break;
-- case GMIME_CERTIFICATE_TRUST_FULLY: trust = "full"; break;
-- case GMIME_CERTIFICATE_TRUST_ULTIMATE: trust = "ultimate"; break;
-+ case GMIME_TRUST_UNKNOWN: trust = "unknown"; break;
-+ case GMIME_TRUST_UNDEFINED: trust = "undefined"; break;
-+ case GMIME_TRUST_NEVER: trust = "never"; break;
-+ case GMIME_TRUST_MARGINAL: trust = "marginal"; break;
-+ case GMIME_TRUST_FULL: trust = "full"; break;
-+ case GMIME_TRUST_ULTIMATE: trust = "ultimate"; break;
- default:
- g_return_val_if_reached (NULL);
- }
-@@ -277,21 +200,17 @@ get_verdict_report (GMimeSignature *msig)
- time_t t;
- const char *created, *expires, *verdict;
- char *certdata, *report;
--
-- switch (g_mime_signature_get_status (msig)) {
-- case GMIME_SIGNATURE_STATUS_GOOD:
-- verdict = "good";
-- break;
-- case GMIME_SIGNATURE_STATUS_ERROR:
-- verdict = "error";
-- break;
-- case GMIME_SIGNATURE_STATUS_BAD:
-- verdict = "bad";
-- break;
-- default:
-- g_return_val_if_reached (NULL);
-- return NULL;
-- }
-+ GMimeSignatureStatus sigstat;
-+
-+ sigstat = g_mime_signature_get_status (msig);
-+ if (sigstat & GMIME_SIGNATURE_STATUS_ERROR_MASK)
-+ verdict = "error";
-+ else if (sigstat & GMIME_SIGNATURE_STATUS_RED)
-+ verdict = "bad";
-+ else if (sigstat & GMIME_SIGNATURE_STATUS_GREEN)
-+ verdict = "good";
-+ else
-+ g_return_val_if_reached (NULL);
-
- t = g_mime_signature_get_created (msig);
- created = (t == 0 || t == (time_t)-1) ? "?" : mu_date_str_s ("%x", t);
-@@ -353,17 +272,13 @@ get_status_report (GMimeSignatureList *sigs)
- msig = g_mime_signature_list_get_signature (sigs, i);
- sigstat = g_mime_signature_get_status (msig);
-
-- switch (sigstat) {
-- case GMIME_SIGNATURE_STATUS_GOOD:
-- break;
-- case GMIME_SIGNATURE_STATUS_ERROR:
-- status = MU_MSG_PART_SIG_STATUS_ERROR;
-- break;
-- case GMIME_SIGNATURE_STATUS_BAD:
-- status = MU_MSG_PART_SIG_STATUS_BAD;
-- break;
-- default: g_return_val_if_reached (NULL);
-- }
-+ /* downgrade our expectations */
-+ if ((sigstat & GMIME_SIGNATURE_STATUS_ERROR_MASK) &&
-+ status != MU_MSG_PART_SIG_STATUS_ERROR)
-+ status = MU_MSG_PART_SIG_STATUS_ERROR;
-+ else if ((sigstat & GMIME_SIGNATURE_STATUS_RED) &&
-+ status == MU_MSG_PART_SIG_STATUS_GOOD)
-+ status = MU_MSG_PART_SIG_STATUS_BAD;
-
- rep = get_verdict_report (msig);
- report = g_strdup_printf ("%s%s%d: %s",
-@@ -419,20 +334,11 @@ mu_msg_crypto_verify_part (GMimeMultipartSigned *sig, MuMsgOptions opts,
- {
- /* the signature status */
- MuMsgPartSigStatusReport *report;
-- GMimeCryptoContext *ctx;
- GMimeSignatureList *sigs;
-
- g_return_if_fail (GMIME_IS_MULTIPART_SIGNED(sig));
-
-- ctx = get_crypto_context (opts, NULL, NULL, err);
-- if (!ctx) {
-- mu_util_g_set_error (err, MU_ERROR_CRYPTO,
-- "failed to get crypto context");
-- return;
-- }
--
-- sigs = g_mime_multipart_signed_verify (sig, ctx, err);
-- g_object_unref (ctx);
-+ sigs = g_mime_multipart_signed_verify (sig, GMIME_VERIFY_NONE, err);
- if (!sigs) {
- if (err && !*err)
- mu_util_g_set_error (err, MU_ERROR_CRYPTO,
-@@ -482,29 +388,12 @@ mu_msg_crypto_decrypt_part (GMimeMultipartEncrypted *enc, MuMsgOptions opts,
- GError **err)
- {
- GMimeObject *dec;
-- GMimeCryptoContext *ctx;
- GMimeDecryptResult *res;
-
- g_return_val_if_fail (GMIME_IS_MULTIPART_ENCRYPTED(enc), NULL);
-
-- ctx = get_crypto_context (opts, func, user_data, err);
-- if (!ctx) {
-- mu_util_g_set_error (err, MU_ERROR_CRYPTO,
-- "failed to get crypto context");
-- return NULL;
-- }
--
-- /* at the time of writing, there is a small leak in
-- * g_mime_multipart_encrypted_decrypt; I've notified its
-- * author and it has been fixed 2012-09-12:
-- * http://git.gnome.org/browse/gmime/commit/
-- * ?id=1bacd43b50d91bd03a4ae1dc9f46f5783dee61b1
-- * (or GMime > 2.6.10)
-- * */
- res = NULL;
-- dec = g_mime_multipart_encrypted_decrypt (enc, ctx, &res, err);
-- g_object_unref (ctx);
--
-+ dec = g_mime_multipart_encrypted_decrypt (enc, GMIME_DECRYPT_NONE, NULL, &res, err);
- check_decrypt_result(enc, res, err);
-
- if (!dec) {
-diff --git a/lib/mu-msg-file.c b/lib/mu-msg-file.c
-index e727ab12..b143b8e7 100644
---- a/lib/mu-msg-file.c
-+++ b/lib/mu-msg-file.c
-@@ -159,7 +159,7 @@ init_mime_msg (MuMsgFile *self, const char* path, GError **err)
- return FALSE;
- }
-
-- self->_mime_msg = g_mime_parser_construct_message (parser);
-+ self->_mime_msg = g_mime_parser_construct_message (parser, NULL);
- g_object_unref (parser);
- if (!self->_mime_msg) {
- g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_GMIME,
-@@ -171,15 +171,15 @@ init_mime_msg (MuMsgFile *self, const char* path, GError **err)
- }
-
- static char*
--get_recipient (MuMsgFile *self, GMimeRecipientType rtype)
-+get_recipient (MuMsgFile *self, GMimeAddressType atype)
- {
- char *recip;
- InternetAddressList *recips;
-
-- recips = g_mime_message_get_recipients (self->_mime_msg, rtype);
-+ recips = g_mime_message_get_addresses (self->_mime_msg, atype);
-
- /* FALSE --> don't encode */
-- recip = (char*)internet_address_list_to_string (recips, FALSE);
-+ recip = (char*)internet_address_list_to_string (recips, NULL, FALSE);
-
- if (recip && !g_utf8_validate (recip, -1, NULL)) {
- g_debug ("invalid recipient in %s\n", self->_path);
-@@ -488,7 +488,7 @@ mu_msg_mime_part_to_string (GMimePart *part, gboolean *err)
- *err = TRUE; /* guilty until proven innocent */
- g_return_val_if_fail (GMIME_IS_PART(part), NULL);
-
-- wrapper = g_mime_part_get_content_object (part);
-+ wrapper = g_mime_part_get_content (part);
- if (!wrapper) {
- /* this happens with invalid mails */
- g_debug ("failed to create data wrapper");
-@@ -545,20 +545,21 @@ get_references (MuMsgFile *self)
- for (msgids = NULL, u = 0; headers[u]; ++u) {
-
- char *str;
-- const GMimeReferences *cur;
- GMimeReferences *mime_refs;
-+ int i, refs_len;
-
- str = mu_msg_file_get_header (self, headers[u]);
- if (!str)
- continue;
-
-- mime_refs = g_mime_references_decode (str);
-+ mime_refs = g_mime_references_parse (NULL, str);
- g_free (str);
-
-- for (cur = mime_refs; cur;
-- cur = g_mime_references_get_next(cur)) {
-+ refs_len = g_mime_references_length (mime_refs);
-+ for (i = 0; i < refs_len; ++i) {
- const char* msgid;
-- msgid = g_mime_references_get_message_id (cur);
-+ msgid = g_mime_references_get_message_id (mime_refs, i);
-+
- /* don't include duplicates */
- if (msgid && !contains (msgids, msgid))
- /* explicitly ensure it's utf8-safe,
-@@ -638,13 +639,14 @@ cleanup_maybe (const char *str, gboolean *do_free)
-
-
-
--G_GNUC_CONST static GMimeRecipientType
--recipient_type (MuMsgFieldId mfid)
-+G_GNUC_CONST static GMimeAddressType
-+address_type (MuMsgFieldId mfid)
- {
- switch (mfid) {
-- case MU_MSG_FIELD_ID_BCC: return GMIME_RECIPIENT_TYPE_BCC;
-- case MU_MSG_FIELD_ID_CC : return GMIME_RECIPIENT_TYPE_CC;
-- case MU_MSG_FIELD_ID_TO : return GMIME_RECIPIENT_TYPE_TO;
-+ case MU_MSG_FIELD_ID_BCC : return GMIME_ADDRESS_TYPE_BCC;
-+ case MU_MSG_FIELD_ID_CC : return GMIME_ADDRESS_TYPE_CC;
-+ case MU_MSG_FIELD_ID_TO : return GMIME_ADDRESS_TYPE_TO;
-+ case MU_MSG_FIELD_ID_FROM: return GMIME_ADDRESS_TYPE_FROM;
- default: g_return_val_if_reached (-1);
- }
- }
-@@ -679,12 +681,10 @@ mu_msg_file_get_str_field (MuMsgFile *self, MuMsgFieldId mfid,
-
- case MU_MSG_FIELD_ID_BCC:
- case MU_MSG_FIELD_ID_CC:
-- case MU_MSG_FIELD_ID_TO: *do_free = TRUE;
-- return get_recipient (self, recipient_type(mfid));
--
- case MU_MSG_FIELD_ID_FROM:
-- return (char*)cleanup_maybe
-- (g_mime_message_get_sender (self->_mime_msg), do_free);
-+ case MU_MSG_FIELD_ID_TO:
-+ *do_free = TRUE;
-+ return get_recipient (self, address_type(mfid));
-
- case MU_MSG_FIELD_ID_PATH: return self->_path;
-
-@@ -736,9 +736,9 @@ mu_msg_file_get_num_field (MuMsgFile *self, const MuMsgFieldId mfid)
- switch (mfid) {
-
- case MU_MSG_FIELD_ID_DATE: {
-- time_t t;
-- g_mime_message_get_date (self->_mime_msg, &t, NULL);
-- return (time_t)t;
-+ GDateTime *dt;
-+ dt = g_mime_message_get_date (self->_mime_msg);
-+ return dt ? g_date_time_to_unix (dt) : 0;
- }
-
- case MU_MSG_FIELD_ID_FLAGS:
-diff --git a/lib/mu-msg-part.c b/lib/mu-msg-part.c
-index a1037fe7..67045016 100644
---- a/lib/mu-msg-part.c
-+++ b/lib/mu-msg-part.c
-@@ -113,18 +113,22 @@ accumulate_text_message (MuMsg *msg, MuMsgPart *part, GString **gstrp)
- /* put sender, recipients and subject in the string, so they
- * can be indexed as well */
- mimemsg = GMIME_MESSAGE (part->data);
-- str = g_mime_message_get_sender (mimemsg);
-+ addresses = g_mime_message_get_addresses (mimemsg, GMIME_ADDRESS_TYPE_FROM);
-+ adrs = internet_address_list_to_string (addresses, NULL, FALSE);
- g_string_append_printf
-- (*gstrp, "%s%s", str ? str : "", str ? "\n" : "");
-+ (*gstrp, "%s%s", adrs ? adrs : "", adrs ? "\n" : "");
-+ g_free (adrs);
-+
- str = g_mime_message_get_subject (mimemsg);
- g_string_append_printf
- (*gstrp, "%s%s", str ? str : "", str ? "\n" : "");
-- addresses = g_mime_message_get_all_recipients (mimemsg);
-- adrs = internet_address_list_to_string (addresses, FALSE);
-- g_object_unref (addresses);
-- g_string_append_printf
-- (*gstrp, "%s%s", adrs ? adrs : "", adrs ? "\n" : "");
-- g_free (adrs);
-+
-+ addresses = g_mime_message_get_all_recipients (mimemsg);
-+ adrs = internet_address_list_to_string (addresses, NULL, FALSE);
-+ g_object_unref (addresses);
-+ g_string_append_printf
-+ (*gstrp, "%s%s", adrs ? adrs : "", adrs ? "\n" : "");
-+ g_free (adrs);
- }
-
- static void
-@@ -225,7 +229,7 @@ get_part_size (GMimePart *part)
- GMimeDataWrapper *wrapper;
- GMimeStream *stream;
-
-- wrapper = g_mime_part_get_content_object (part);
-+ wrapper = g_mime_part_get_content (part);
- if (!GMIME_IS_DATA_WRAPPER(wrapper))
- return -1;
-
-@@ -665,7 +669,7 @@ write_part_to_fd (GMimePart *part, int fd, GError **err)
- }
- g_mime_stream_fs_set_owner (GMIME_STREAM_FS(stream), FALSE);
-
-- wrapper = g_mime_part_get_content_object (part);
-+ wrapper = g_mime_part_get_content (part);
- if (!GMIME_IS_DATA_WRAPPER(wrapper)) {
- g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_GMIME,
- "failed to create wrapper");
-@@ -694,7 +698,7 @@ static gboolean
- write_object_to_fd (GMimeObject *obj, int fd, GError **err)
- {
- gchar *str;
-- str = g_mime_object_to_string (obj);
-+ str = g_mime_object_to_string (obj, NULL);
-
- if (!str) {
- g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_GMIME,
-diff --git a/lib/mu-msg.c b/lib/mu-msg.c
-index 8a9d03f3..93d4d241 100644
---- a/lib/mu-msg.c
-+++ b/lib/mu-msg.c
-@@ -48,12 +48,7 @@ gmime_init (void)
- {
- g_return_if_fail (!_gmime_initialized);
-
--#ifdef GMIME_ENABLE_RFC2047_WORKAROUNDS
-- g_mime_init(GMIME_ENABLE_RFC2047_WORKAROUNDS);
--#else
-- g_mime_init(0);
--#endif /* GMIME_ENABLE_RFC2047_WORKAROUNDS */
--
-+ g_mime_init();
- _gmime_initialized = TRUE;
- }
-
-@@ -385,7 +380,7 @@ mu_msg_get_mailing_list (MuMsg *self)
- if (!ml)
- return NULL;
-
-- decml = g_mime_utils_header_decode_text (ml);
-+ decml = g_mime_utils_header_decode_text (NULL, ml);
- if (!decml)
- return NULL;
-
-@@ -566,21 +561,22 @@ get_content_type_parameters (MuMsg *self, MuMsgOptions opts, gboolean want_html)
-
- if (cdata.ctype) {
-
-- GSList *paramlist;
-+ GSList *gslist;
-+ GMimeParamList *paramlist;
- const GMimeParam *param;
-+ int i, len;
-
-- paramlist = NULL;
-- param = g_mime_content_type_get_params (cdata.ctype);
--
-- for (; param; param = param->next) {
-- paramlist = g_slist_prepend (paramlist,
-- g_strdup (param->name));
-+ gslist = NULL;
-+ paramlist = g_mime_content_type_get_parameters (cdata.ctype);
-+ len = g_mime_param_list_length (paramlist);
-
-- paramlist = g_slist_prepend (paramlist,
-- g_strdup (param->value));
-+ for (i = 0; i < len; ++i) {
-+ param = g_mime_param_list_get_parameter_at (paramlist, i);
-+ gslist = g_slist_prepend (gslist, g_strdup (param->name));
-+ gslist = g_slist_prepend (gslist, g_strdup (param->value));
- }
-
-- return free_later_lst(self, g_slist_reverse (paramlist));
-+ return free_later_lst (self, g_slist_reverse (gslist));
- }
- return NULL;
- }
-@@ -660,6 +656,10 @@ fill_contact (MuMsgContact *self, InternetAddress *addr,
- return FALSE;
-
- self->name = internet_address_get_name (addr);
-+ if (mu_str_is_empty (self->name)) {
-+ self->name = NULL;
-+ }
-+
- self->type = ctype;
-
- /* we only support internet mailbox addresses; if we don't
-@@ -716,7 +716,7 @@ addresses_foreach (const char* addrs, MuMsgContactType ctype,
- if (!addrs)
- return;
-
-- addrlist = internet_address_list_parse_string (addrs);
-+ addrlist = internet_address_list_parse (NULL, addrs);
- if (addrlist) {
- address_list_foreach (addrlist, ctype, func, user_data);
- g_object_unref (addrlist);
-@@ -730,27 +730,20 @@ msg_contact_foreach_file (MuMsg *msg, MuMsgContactForeachFunc func,
- {
- int i;
- struct {
-- GMimeRecipientType _gmime_type;
-- MuMsgContactType _type;
-+ GMimeAddressType _gmime_type;
-+ MuMsgContactType _type;
- } ctypes[] = {
-- {GMIME_RECIPIENT_TYPE_TO, MU_MSG_CONTACT_TYPE_TO},
-- {GMIME_RECIPIENT_TYPE_CC, MU_MSG_CONTACT_TYPE_CC},
-- {GMIME_RECIPIENT_TYPE_BCC, MU_MSG_CONTACT_TYPE_BCC},
-+ {GMIME_ADDRESS_TYPE_FROM, MU_MSG_CONTACT_TYPE_FROM},
-+ {GMIME_ADDRESS_TYPE_REPLY_TO, MU_MSG_CONTACT_TYPE_REPLY_TO},
-+ {GMIME_ADDRESS_TYPE_TO, MU_MSG_CONTACT_TYPE_TO},
-+ {GMIME_ADDRESS_TYPE_CC, MU_MSG_CONTACT_TYPE_CC},
-+ {GMIME_ADDRESS_TYPE_BCC, MU_MSG_CONTACT_TYPE_BCC},
- };
-
-- /* sender */
-- addresses_foreach (g_mime_message_get_sender (msg->_file->_mime_msg),
-- MU_MSG_CONTACT_TYPE_FROM, func, user_data);
--
-- /* reply_to */
-- addresses_foreach (g_mime_message_get_reply_to (msg->_file->_mime_msg),
-- MU_MSG_CONTACT_TYPE_REPLY_TO, func, user_data);
--
-- /* get to, cc, bcc */
- for (i = 0; i != G_N_ELEMENTS(ctypes); ++i) {
- InternetAddressList *addrlist;
-- addrlist = g_mime_message_get_recipients (msg->_file->_mime_msg,
-- ctypes[i]._gmime_type);
-+ addrlist = g_mime_message_get_addresses (msg->_file->_mime_msg,
-+ ctypes[i]._gmime_type);
- address_list_foreach (addrlist, ctypes[i]._type, func, user_data);
- }
- }
---
-2.17.0
-
diff --git a/testing/mu/APKBUILD b/testing/mu/APKBUILD
index e5ab1d18fd..60569b9af3 100644
--- a/testing/mu/APKBUILD
+++ b/testing/mu/APKBUILD
@@ -2,7 +2,7 @@
# Contributor: stef <l0ls0fo2i@ctrlc.hu>
# Maintainer:
pkgname=mu
-pkgver=1.0
+pkgver=1.2
pkgrel=0
pkgdesc="A collection of utilities for indexing and searching Maildirs"
arch="x86 x86_64 ppc64le"
@@ -12,8 +12,7 @@ depends="sqlite"
makedepends="xapian-core-dev gmime-dev sqlite-dev autoconf automake libtool"
install=""
subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/djcb/mu/archive/v$pkgver.tar.gz
- 0001-Support-gmime-3.0.patch
+source="$pkgname-$pkgver.tar.gz::https://github.com/djcb/mu/archive/$pkgver.tar.gz
"
builddir="$srcdir/$pkgname-$pkgver"
@@ -47,5 +46,4 @@ package() {
rm $pkgdir/usr/share/man/man1/mug.1
fi
}
-sha512sums="49b0b86f22e9a6ace1fc3fd6e7a8a523aa9edf092b953d59f59a1ef7311c8c546a261a1a186e3285cea788be20c816c70ac08d1514f700ff97258a2012ad394d mu-1.0.tar.gz
-d28ec47ebc21858205883690cd52e5ce92ced8f7001990b32d87aa2bd1975a51526c1c711c87dd55e3489ff7c82d5cfc5421f363c33116ab09129c473c28c7c0 0001-Support-gmime-3.0.patch"
+sha512sums="eadebbaf2d6b6c604c9cebc72621fe64bd4fa7b793d02b0a029a3e970c076430e2067a05ab215652f9fc52e77e4e80401476ca5b39b294eb0b14d9082118d99a mu-1.2.tar.gz"