<pre style='margin:0'>
Ryan Schmidt (ryandesign) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/acd6f2b3aaa888b31e183ab6ea178a7c53977de9">https://github.com/macports/macports-ports/commit/acd6f2b3aaa888b31e183ab6ea178a7c53977de9</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new acd6f2b glib2: Fix crash and build failure with +quartz
</span>acd6f2b is described below
<span style='display:block; white-space:pre;color:#808000;'>commit acd6f2b3aaa888b31e183ab6ea178a7c53977de9
</span>Author: Ryan Schmidt <ryandesign@macports.org>
AuthorDate: Thu Nov 30 00:12:58 2017 -0600
<span style='display:block; white-space:pre;color:#404040;'> glib2: Fix crash and build failure with +quartz
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Closes: https://trac.macports.org/ticket/55433
</span>---
devel/glib2/Portfile | 3 ++
devel/glib2/files/gosxapp.patch | 101 ++++++++++++++++++++++++++++++++++++++++
2 files changed, 104 insertions(+)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/glib2/Portfile b/devel/glib2/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 201f7f4..bfbeac9 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/glib2/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/glib2/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -9,6 +9,7 @@ name glib2
</span> conflicts glib2-devel
set my_name glib
version 2.54.2
<span style='display:block; white-space:pre;background:#e0ffe0;'>+revision 1
</span> set branch [join [lrange [split ${version} .] 0 1] .]
categories devel
maintainers {ryandesign @ryandesign} openmaintainer
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -48,6 +49,8 @@ patchfiles patch-configure.diff \
</span> patch-gmodule-gmodule-dl.c.diff \
patch-configure-switch-for-gappinfo-impl-mp.diff
<span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append gosxapp.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> depends_build bin:xmllint:libxml2
depends_lib port:gettext \
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/glib2/files/gosxapp.patch b/devel/glib2/files/gosxapp.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..15da679
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/glib2/files/gosxapp.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,101 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Fix runtime crash (and build failure in C89 mode) when +quartz variant is used.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://bugzilla.gnome.org/show_bug.cgi?id=789784
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/GNOME/glib/commit/d74a69826ffc5591a7eeea61ca25f66f48fcf939
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gio/gosxappinfo.c.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gio/gosxappinfo.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -175,44 +175,14 @@ static gchar *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ create_cstr_from_cfstring (CFStringRef str)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const gchar *cstr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- CFIndex length = CFStringGetLength (str);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- char *buffer = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (str == NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cstr = CFStringGetCStringPtr (str, kCFStringEncodingUTF8);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- /* CFStringGetCStringPtr returns "NULL if the internal storage of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- * theString does not allow [a pointer] to be returned efficiently".
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- * (Apple's docs don't say what that means). In that case we must
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- * use CFStringGetCString as a fallback.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (cstr != NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- CFRelease (str);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return g_strdup (cstr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- buffer = g_malloc0 (length + 1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- /* Start off with a buffer size sufficient for the most likely case
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- * that the CFString is ASCII so the UTF8 representation will be 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- * byte per code point. Keep trying up to 4 bytes per code point,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- * the max allowed by RFC3629.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- for (int i = 1; i <= 4; ++i)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (CFStringGetCString (str, buffer, length, kCFStringEncodingUTF8))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- CFRelease (str);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return buffer;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- length += length;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- buffer = g_realloc (buffer, length + 1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- g_free (buffer);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CFRelease (str);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return g_strdup (cstr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static char *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gio/gosxcontenttype.c.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gio/gosxcontenttype.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -53,44 +53,14 @@ static gchar *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ create_cstr_from_cfstring (CFStringRef str)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const gchar *cstr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- CFIndex length = CFStringGetLength (str);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- char *buffer = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (str == NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cstr = CFStringGetCStringPtr (str, kCFStringEncodingUTF8);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- /* CFStringGetCStringPtr returns "NULL if the internal storage of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- * theString does not allow [a pointer] to be returned efficiently".
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- * (Apple's docs don't say what that means). In that case we must
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- * use CFStringGetCString as a fallback.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (cstr != NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- CFRelease (str);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return g_strdup (cstr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- buffer = g_malloc0 (length + 1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- /* Start off with a buffer size sufficient for the most likely case
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- * that the CFString is ASCII so the UTF8 representation will be 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- * byte per code point. Keep trying up to 4 bytes per code point,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- * the max allowed by RFC3629.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- for (int i = 1; i <= 4; ++i)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (CFStringGetCString (str, buffer, length, kCFStringEncodingUTF8))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- CFRelease (str);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return buffer;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- length += length;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- buffer = g_realloc (buffer, length + 1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- g_free (buffer);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CFRelease (str);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return g_strdup (cstr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /*< internal >
</span></pre><pre style='margin:0'>
</pre>