<pre style='margin:0'>
Rainer Müller (raimue) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/ddbf3189b924dc671a8c7dc8a99fc19848eee39d">https://github.com/macports/macports-ports/commit/ddbf3189b924dc671a8c7dc8a99fc19848eee39d</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit ddbf3189b924dc671a8c7dc8a99fc19848eee39d
</span>Author: Rainer Müller <raimue@macports.org>
AuthorDate: Sun Apr 1 04:04:40 2018 +0200

<span style='display:block; white-space:pre;color:#404040;'>    hexchat: Fix plugins
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Fix plugin loading due to switch from *.so to *.dylib.
</span>---
 irc/hexchat/Portfile                              |   4 +-
 irc/hexchat/files/patch-Fix-plugins-on-macOS.diff | 115 ++++++++++++++++++++++
 2 files changed, 118 insertions(+), 1 deletion(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/irc/hexchat/Portfile b/irc/hexchat/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index ffd26ca..7682091 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/irc/hexchat/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/irc/hexchat/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5,6 +5,7 @@ PortGroup           meson 1.0
</span> 
 name                hexchat
 version             2.14.1
<span style='display:block; white-space:pre;background:#e0ffe0;'>+revision            1
</span> set branch          [join [lrange [split ${version} .] 0 1] .]
 categories          irc
 maintainers         {raimue @raimue} \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -28,7 +29,8 @@ checksums           rmd160  87f0aadaaeb4fd16650b3622a45510bd470c32d1 \
</span> patchfiles          patch-meson-post-install.diff \
                     patch-build-scripts-python3.diff \
                     patch-build-Add-option-to-specify-path-to-perl-binary.diff \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    patch-build-perl-as-a-dependency.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    patch-build-perl-as-a-dependency.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    patch-Fix-plugins-on-macOS.diff
</span> patch.post_args     -p1
 
 post-patch {
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/irc/hexchat/files/patch-Fix-plugins-on-macOS.diff b/irc/hexchat/files/patch-Fix-plugins-on-macOS.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..6cae749
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/irc/hexchat/files/patch-Fix-plugins-on-macOS.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,115 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Upstream-Status: Accepted [https://github.com/hexchat/hexchat/commit/5ca767f7f881f480de90882233ed833846bd8a3d]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 5ca767f7f881f480de90882233ed833846bd8a3d Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: =?UTF-8?q?Rainer=20M=C3=BCller?= <raimue@codingfarm.de>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Sat, 31 Mar 2018 00:53:56 +0200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Fix plugins on macOS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The switch to the meson build system broke plugins on macOS. GNU libtool
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+builds shared libraries with ".dylib" and shared modules (plugins) with
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+the extension ".so", but meson is using ".dylib" for both.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Although overriding the name_suffix for shared_module() in meson is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+possible, this would be messy for other platforms as there is no way to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+query the default. Therefore it seems like we have to go with ".dylib"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+for now on macOS.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+However, G_MODULE_SUFFIX is defined to ".so", because glib follows what
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+GNU libtool does. Therefore define a separate preprocessor macro that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+has the correct extension.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+See: https://github.com/mesonbuild/meson/issues/1160
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/common/outbound.c  | 6 +++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/common/plugin.c    | 4 ++--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/common/plugin.h    | 8 ++++++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/fe-gtk/plugingui.c | 4 ++--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 4 files changed, 15 insertions(+), 7 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/common/outbound.c b/src/common/outbound.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index fe6da8c86..96fb7fe44 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/common/outbound.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/common/outbound.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2610,7 +2610,7 @@ cmd_load (struct session *sess, char *tbuf, char *word[], char *word_eol[])
</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;'>+ #ifdef USE_PLUGIN
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if (g_str_has_suffix (word[2], "."G_MODULE_SUFFIX))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (g_str_has_suffix (word[2], "."PLUGIN_SUFFIX))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           arg = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (word_eol[3][0])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3616,7 +3616,7 @@ cmd_unload (struct session *sess, char *tbuf, char *word[], char *word_eol[])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef USE_PLUGIN
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   gboolean by_file = FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if (g_str_has_suffix (word[2], "."G_MODULE_SUFFIX))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (g_str_has_suffix (word[2], "."PLUGIN_SUFFIX))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           by_file = TRUE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   switch (plugin_kill (word[2], by_file))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3641,7 +3641,7 @@ cmd_reload (struct session *sess, char *tbuf, char *word[], char *word_eol[])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef USE_PLUGIN
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   gboolean by_file = FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if (g_str_has_suffix (word[2], "."G_MODULE_SUFFIX))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (g_str_has_suffix (word[2], "."PLUGIN_SUFFIX))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           by_file = TRUE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   switch (plugin_reload (sess, word[2], by_file))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/common/plugin.c b/src/common/plugin.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 3ad3c558e..1db11f355 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/common/plugin.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/common/plugin.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -464,10 +464,10 @@ plugin_auto_load (session *sess)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   for_files (lib_dir, "hcwinamp.dll", plugin_auto_load_cb);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   for_files (lib_dir, "hcsysinfo.dll", plugin_auto_load_cb);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  for_files (lib_dir, "*."G_MODULE_SUFFIX, plugin_auto_load_cb);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  for_files (lib_dir, "*."PLUGIN_SUFFIX, plugin_auto_load_cb);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  for_files (sub_dir, "*."G_MODULE_SUFFIX, plugin_auto_load_cb);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  for_files (sub_dir, "*."PLUGIN_SUFFIX, plugin_auto_load_cb);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   g_free (sub_dir);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/common/plugin.h b/src/common/plugin.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 76ce97a3a..fb7da831a 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/common/plugin.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/common/plugin.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -181,4 +181,12 @@ int plugin_show_help (session *sess, char *cmd);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void plugin_command_foreach (session *sess, void *userdata, void (*cb) (session *sess, void *userdata, char *name, char *usage));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ session *plugin_find_context (const char *servname, const char *channel, server *current_server);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* On macOS, G_MODULE_SUFFIX says "so" but meson uses "dylib"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * https://github.com/mesonbuild/meson/issues/1160 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(__APPLE__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#  define PLUGIN_SUFFIX "dylib"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#  define PLUGIN_SUFFIX G_MODULE_SUFFIX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/fe-gtk/plugingui.c b/src/fe-gtk/plugingui.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 4399cd717..83bb745fa 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/fe-gtk/plugingui.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/fe-gtk/plugingui.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -162,7 +162,7 @@ plugingui_load (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   char *sub_dir = g_build_filename (get_xdir(), "addons", NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   gtkutil_file_req (_("Select a Plugin or Script to load"), plugingui_load_cb, current_sess,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                                                  sub_dir, "*."G_MODULE_SUFFIX";*.lua;*.pl;*.py;*.tcl;*.js", FRF_FILTERISINITIAL|FRF_EXTENSIONS);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                                  sub_dir, "*."PLUGIN_SUFFIX";*.lua;*.pl;*.py;*.tcl;*.js", FRF_FILTERISINITIAL|FRF_EXTENSIONS);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   g_free (sub_dir);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -185,7 +185,7 @@ plugingui_unload (GtkWidget * wid, gpointer unused)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                       FILEPATH_COLUMN, &file, -1))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if (g_str_has_suffix (file, "."G_MODULE_SUFFIX))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (g_str_has_suffix (file, "."PLUGIN_SUFFIX))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (plugin_kill (modname, FALSE) == 2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   fe_message (_("That plugin is refusing to unload.\n"), FE_MSG_ERROR);
</span></pre><pre style='margin:0'>

</pre>