<pre style='margin:0'>
Christopher Nielsen (mascguy) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/a1bf4959c541fe8a00e6ef016c23a9fea810bbe8">https://github.com/macports/macports-ports/commit/a1bf4959c541fe8a00e6ef016c23a9fea810bbe8</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 a1bf4959c54 gtk4: support x11 on macOS
</span>a1bf4959c54 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit a1bf4959c541fe8a00e6ef016c23a9fea810bbe8
</span>Author: Ken <21211439+kencu@users.noreply.github.com>
AuthorDate: Wed Aug 24 16:02:36 2022 -0700

<span style='display:block; white-space:pre;color:#404040;'>    gtk4: support x11 on macOS
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    remove or block the places where egl support is assumed.
</span>---
 gnome/gtk4/Portfile                  |  21 +-----
 gnome/gtk4/files/patch-gtk4-x11.diff | 128 +++++++++++++++++++++++++++++++++++
 2 files changed, 131 insertions(+), 18 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/gnome/gtk4/Portfile b/gnome/gtk4/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index a9d5133bdd5..63791f45cc5 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/gnome/gtk4/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/gnome/gtk4/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -136,7 +136,7 @@ variant quartz conflicts x11 {
</span>         archive_sites
         known_fail yes
         pre-fetch {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            ui_error "${name} is not supported on this os version at present."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ui_error "${name} +quartz is not supported on this os version at present."
</span>             return -code error {unsupported platform}
         }
     }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -147,29 +147,14 @@ variant x11 conflicts quartz {
</span>     require_active_variants path:lib/pkgconfig/cairo.pc:cairo x11
     require_active_variants path:lib/pkgconfig/pango.pc:pango x11
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    patchfiles-append        patch-gtk4-x11.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>     depends_lib-append       port:libxkbcommon-x11 \
                              port:xorg-libXrandr \
                              port:xorg-libXcursor \
                              port:xorg-libXinerama
 
     configure.args-append   -Dx11-backend=true -Dmacos-backend=false
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # the x11 variant needs EGL support added to mesa and libepoxy
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # and even then the performance is well below the quartz variant
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # so keep it disabled until it can be fixed
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {${os.platform} eq "darwin"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        depends_build
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        depends_lib
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        depends_run
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        archive_sites
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        known_fail yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        pre-fetch {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            ui_error "${name} is not supported with the +x11 variant at present."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            ui_error "Please use the +quartz variant instead"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            return -code error {unsupported platform}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span> }
 
 if {![variant_isset quartz]} {
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/gnome/gtk4/files/patch-gtk4-x11.diff b/gnome/gtk4/files/patch-gtk4-x11.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..b68cf52c493
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/gnome/gtk4/files/patch-gtk4-x11.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,128 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gdk/x11/gdkdisplay-x11.c gdk/x11/gdkdisplay-x11.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 84a45dc..685a1f9 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gdk/x11/gdkdisplay-x11.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gdk/x11/gdkdisplay-x11.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -56,7 +56,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <errno.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <unistd.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_EGL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <epoxy/egl.h>
</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;'>+ #include <X11/Xatom.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <X11/Xlibint.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2916,6 +2918,7 @@ visual_is_rgba (XVisualInfo *visinfo)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     visinfo->visual->blue_mask  == 0x0000ff;
</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 HAVE_EGL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static guint
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gdk_x11_display_rate_egl_config (GdkDisplay *display,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                  gpointer    egl_display,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2942,7 +2945,9 @@ gdk_x11_display_rate_egl_config (GdkDisplay *display,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return distance;
</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;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_EGL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static gboolean
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gdk_x11_display_init_gl_backend (GdkX11Display  *self,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                  Visual        **out_visual,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2997,6 +3002,26 @@ gdk_x11_display_init_gl_backend (GdkX11Display  *self,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return TRUE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else /* HAVE_EGL */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static gboolean
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++gdk_x11_display_init_gl_backend (GdkX11Display  *self,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                 Visual        **out_visual,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                 int            *out_depth,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                 GError        **error)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  GdkDisplay *display = GDK_DISPLAY (self);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  Display *dpy = gdk_x11_display_get_xdisplay (GDK_DISPLAY (self));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  XVisualInfo *visinfo;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  int visualid;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (gdk_x11_display_init_glx (self, out_visual, out_depth, error))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return TRUE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif /* HAVE_EGL */
</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 GdkGLContext *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gdk_x11_display_init_gl (GdkDisplay  *display,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3011,8 +3036,12 @@ gdk_x11_display_init_gl (GdkDisplay  *display,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (self->glx_config != NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return g_object_new (GDK_TYPE_X11_GL_CONTEXT_GLX, "surface", self->leader_gdk_surface, NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_EGL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   else if (gdk_display_get_egl_display (display))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return g_object_new (GDK_TYPE_X11_GL_CONTEXT_EGL, "surface", self->leader_gdk_surface, NULL);
</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;'>+   else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     g_return_val_if_reached (NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3048,7 +3077,10 @@ gdk_x11_display_class_init (GdkX11DisplayClass * class)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   display_class->get_keymap = gdk_x11_display_get_keymap;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   display_class->init_gl = gdk_x11_display_init_gl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_EGL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   display_class->rate_egl_config = gdk_x11_display_rate_egl_config;
</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;'>+   display_class->get_default_seat = gdk_x11_display_get_default_seat;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gdk/x11/meson.build gdk/x11/meson.build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 58d12bb..1e5f9c7 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gdk/x11/meson.build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gdk/x11/meson.build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8,7 +8,6 @@ gdk_x11_public_sources = files([
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   'gdkdevicemanager-x11.c',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   'gdkdevicemanager-xi2.c',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   'gdkdisplay-x11.c',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  'gdkglcontext-egl.c',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   'gdkglcontext-glx.c',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   'gdkglcontext-x11.c',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   'gdkkeys-x11.c',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gtk/inspector/general.c gtk/inspector/general.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 951ce98..7f51083 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gtk/inspector/general.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gtk/inspector/general.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -40,8 +40,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef GDK_WINDOWING_X11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "x11/gdkx.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <epoxy/glx.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_EGL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <epoxy/egl.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</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;'>+ #ifdef GDK_WINDOWING_WIN32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "win32/gdkwin32.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -289,7 +291,7 @@ append_wgl_extension_row (GtkInspectorGeneral *gen,
</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;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if defined(GDK_WINDOWING_WAYLAND) || defined (GDK_WINDOWING_X11) || (defined (GDK_WINDOWING_WIN32) && defined(GDK_WIN32_ENABLE_EGL))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(GDK_WINDOWING_WAYLAND) || (defined (GDK_WINDOWING_X11) && defined (HAVE_EGL)) || (defined (GDK_WINDOWING_WIN32) && defined(GDK_WIN32_ENABLE_EGL))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ append_egl_extension_row (GtkInspectorGeneral *gen,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           EGLDisplay          dpy,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -341,7 +343,7 @@ init_gl (GtkInspectorGeneral *gen)
</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;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if defined(GDK_WINDOWING_X11) || defined(GDK_WINDOWING_WAYLAND) || (defined(GDK_WINDOWING_WIN32) && defined(GDK_WIN32_ENABLE_EGL))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(GDK_WINDOWING_WAYLAND) || (defined (GDK_WINDOWING_X11) && defined (HAVE_EGL)) || (defined (GDK_WINDOWING_WIN32) && defined(GDK_WIN32_ENABLE_EGL))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   EGLDisplay egl_display = get_egl_display (gen->display);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (egl_display)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {
</span></pre><pre style='margin:0'>

</pre>