summaryrefslogtreecommitdiff
path: root/user/gmime
diff options
context:
space:
mode:
Diffstat (limited to 'user/gmime')
-rw-r--r--user/gmime/APKBUILD16
-rw-r--r--user/gmime/decode-route.patch32
-rw-r--r--user/gmime/ub-fix.patch107
3 files changed, 149 insertions, 6 deletions
diff --git a/user/gmime/APKBUILD b/user/gmime/APKBUILD
index a6380966c..6bd0f26ad 100644
--- a/user/gmime/APKBUILD
+++ b/user/gmime/APKBUILD
@@ -1,10 +1,10 @@
# Contributor: Mira Ressel <aranea@aixah.de>
# Maintainer: A. Wilcox <awilfox@adelielinux.org>
pkgname=gmime
-pkgver=3.2.7
+pkgver=3.2.15
pkgrel=0
pkgdesc="MIME utility library"
-url="https://developer.gnome.org/gmime/"
+url="https://spruce.sourceforge.net/gmime/"
arch="all"
license="LGPL-2.1+"
depends=""
@@ -12,8 +12,10 @@ depends_dev="gpgme-dev libidn2-dev zlib-dev"
checkdepends="gnupg"
makedepends="$depends_dev autoconf automake libtool gtk-doc"
subpackages="$pkgname-dev $pkgname-doc"
-source="https://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz
+source="https://github.com/jstedfast/$pkgname/releases/download/$pkgver/$pkgname-$pkgver.tar.xz
3.2.3-broken-tests.patch
+ decode-route.patch
+ ub-fix.patch
"
prepare() {
@@ -35,12 +37,14 @@ build() {
}
check() {
- make check
+ make check -j1 # https://github.com/jstedfast/gmime/issues/177
}
package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="2c8fecd6eb74c9e956c419ce111bef6280916ea3756a534b6b800a273f0fff260717cda7fefd4bd4c6ddb27973112ec6e73fa971fa74bb9aa04cfe587d45f10b gmime-3.2.7.tar.xz
-19395defdb4287cb0f605676b1431db4d218258e9c6183cc0bec49ceaf75e7966fb2a7e41529e80595d71306870d20424454ef4e9fb836a364f9d44df78fa96a 3.2.3-broken-tests.patch"
+sha512sums="cafb89854b2441508bf940fd6f991739d30fb137b8928ad33e8e4d2a0293a6460e4d1318e73c3ee9e5a964b692f36e7a4eb5f2930c6998698bd9edf866629655 gmime-3.2.15.tar.xz
+19395defdb4287cb0f605676b1431db4d218258e9c6183cc0bec49ceaf75e7966fb2a7e41529e80595d71306870d20424454ef4e9fb836a364f9d44df78fa96a 3.2.3-broken-tests.patch
+97c18b6012022790295736e31d0c4e4a2b4adf3487736d170d061aa60f47b78a1dfac60694b7e75648c9729580e1ea9519ddc58c4f682f2ee0026eaa694f3d10 decode-route.patch
+d301c402b0e9dd5430445547216f66503b9832894bc49807e925ac1c4e3a56ae9e31069bef0f2c59bf5a8ba8e6f10f586a40fdabd6a0a170ca3d2791b558c79c ub-fix.patch"
diff --git a/user/gmime/decode-route.patch b/user/gmime/decode-route.patch
new file mode 100644
index 000000000..692550abf
--- /dev/null
+++ b/user/gmime/decode-route.patch
@@ -0,0 +1,32 @@
+From 3f7005f4c7576de581bb5164c7990aaa4031c2c1 Mon Sep 17 00:00:00 2001
+From: Jeffrey Stedfast <jestedfa@microsoft.com>
+Date: Fri, 4 Oct 2024 16:03:24 -0400
+Subject: [PATCH] Fixed issue in decode_route() when ENABLE_WARNINGS is enabled
+
+Fixes issue #169
+---
+ gmime/internet-address.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/gmime/internet-address.c b/gmime/internet-address.c
+index cd6baa90..a89eab0e 100644
+--- a/gmime/internet-address.c
++++ b/gmime/internet-address.c
+@@ -45,7 +45,7 @@
+
+
+ #ifdef ENABLE_WARNINGS
+-#define w(x) x
++#define w(x) (x)
+ #else
+ #define w(x)
+ #endif /* ENABLE_WARNINGS */
+@@ -1437,7 +1437,7 @@ decode_route (const char **in)
+ skip_cfws (&inptr);
+
+ if (*inptr != ':') {
+- w(g_warning ("Invalid route domain-list, missing ':': %.*s", inptr - start, start));
++ w(g_warning ("Invalid route domain-list, missing ':': %.*s", inptr - *in, *in));
+ goto error;
+ }
+
diff --git a/user/gmime/ub-fix.patch b/user/gmime/ub-fix.patch
new file mode 100644
index 000000000..8184902e9
--- /dev/null
+++ b/user/gmime/ub-fix.patch
@@ -0,0 +1,107 @@
+From df1151b32fbf45b10d27801c49f2db883be7d5b7 Mon Sep 17 00:00:00 2001
+From: Jeffrey Stedfast <jestedfa@microsoft.com>
+Date: Fri, 4 Apr 2025 09:37:48 -0400
+Subject: [PATCH] Revert g_mime_parser_options_set_warning_callback() and added
+ _full() version
+
+Fixes issue #172
+---
+ examples/msgcheck.c | 2 +-
+ gmime/gmime-parser-options.c | 33 +++++++++++++++++++++++----------
+ gmime/gmime-parser-options.h | 4 ++--
+ 3 files changed, 26 insertions(+), 13 deletions(-)
+
+diff --git a/examples/msgcheck.c b/examples/msgcheck.c
+index 46e018c4..8b91e662 100644
+--- a/examples/msgcheck.c
++++ b/examples/msgcheck.c
+@@ -110,7 +110,7 @@ check_msg_file (const gchar *filename)
+ parser = g_mime_parser_new ();
+ g_mime_parser_init_with_stream (parser, stream);
+ options = g_mime_parser_options_new ();
+- g_mime_parser_options_set_warning_callback (options, parser_issue, NULL, NULL);
++ g_mime_parser_options_set_warning_callback (options, parser_issue, NULL);
+ message = g_mime_parser_construct_message (parser, options);
+ g_mime_parser_options_free (options);
+ g_object_unref (parser);
+diff --git a/gmime/gmime-parser-options.c b/gmime/gmime-parser-options.c
+index ae84d671..820c3299 100644
+--- a/gmime/gmime-parser-options.c
++++ b/gmime/gmime-parser-options.c
+@@ -70,9 +70,9 @@ g_mime_parser_options_shutdown (void)
+ if (default_options == NULL)
+ return;
+
+- if (default_options->notify) {
+- default_options->notify(default_options->warning_user_data);
+- }
++ if (default_options->notify)
++ default_options->notify (default_options->warning_user_data);
++
+ g_strfreev (default_options->charsets);
+ g_slice_free (GMimeParserOptions, default_options);
+ default_options = NULL;
+@@ -193,9 +193,9 @@ g_mime_parser_options_free (GMimeParserOptions *options)
+ g_return_if_fail (options != NULL);
+
+ if (options != default_options) {
+- if (options->notify) {
+- options->notify(options->warning_user_data);
+- }
++ if (options->notify)
++ options->notify (options->warning_user_data);
++
+ g_strfreev (options->charsets);
+ g_slice_free (GMimeParserOptions, options);
+ }
+@@ -450,18 +450,31 @@ g_mime_parser_options_get_warning_callback (GMimeParserOptions *options)
+ * @options: a #GMimeParserOptions
+ * @warning_cb: a #GMimeParserWarningFunc or %NULL to clear the callback
+ * @user_data: data passed to the warning callback function
++ *
++ * Registers the callback function being called if the parser detects any issues.
++ **/
++void
++g_mime_parser_options_set_warning_callback (GMimeParserOptions *options, GMimeParserWarningFunc warning_cb, gpointer user_data)
++{
++ g_mime_parser_options_set_warning_callback_full (options, warning_cb, user_data, NULL);
++}
++
++/**
++ * g_mime_parser_options_set_warning_callback_full:
++ * @options: a #GMimeParserOptions
++ * @warning_cb: a #GMimeParserWarningFunc or %NULL to clear the callback
++ * @user_data: data passed to the warning callback function
+ * @notify: callback function ran on destruction
+ *
+ * Registers the callback function being called if the parser detects any issues.
+ **/
+ void
+-g_mime_parser_options_set_warning_callback (GMimeParserOptions *options, GMimeParserWarningFunc warning_cb, gpointer user_data, GDestroyNotify notify)
++g_mime_parser_options_set_warning_callback_full (GMimeParserOptions *options, GMimeParserWarningFunc warning_cb, gpointer user_data, GDestroyNotify notify)
+ {
+ g_return_if_fail (options != NULL);
+
+- if (options->notify) {
+- options->notify(options->warning_user_data);
+- }
++ if (options->notify)
++ options->notify (options->warning_user_data);
+
+ options->warning_cb = warning_cb;
+ options->warning_user_data = user_data;
+diff --git a/gmime/gmime-parser-options.h b/gmime/gmime-parser-options.h
+index c37d9999..b26160cf 100644
+--- a/gmime/gmime-parser-options.h
++++ b/gmime/gmime-parser-options.h
+@@ -128,8 +128,8 @@ const char **g_mime_parser_options_get_fallback_charsets (GMimeParserOptions *op
+ void g_mime_parser_options_set_fallback_charsets (GMimeParserOptions *options, const char **charsets);
+
+ GMimeParserWarningFunc g_mime_parser_options_get_warning_callback (GMimeParserOptions *options);
+-void g_mime_parser_options_set_warning_callback (GMimeParserOptions *options,
+- GMimeParserWarningFunc warning_cb, gpointer user_data, GDestroyNotify notify);
++void g_mime_parser_options_set_warning_callback (GMimeParserOptions *options, GMimeParserWarningFunc warning_cb, gpointer user_data);
++void g_mime_parser_options_set_warning_callback_full (GMimeParserOptions *options, GMimeParserWarningFunc warning_cb, gpointer user_data, GDestroyNotify notify);
+
+ G_END_DECLS
+