<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>