diff options
Diffstat (limited to 'x11-wm/mutter/files')
13 files changed, 361 insertions, 186 deletions
diff --git a/x11-wm/mutter/files/patch-clutter_clutter_clutter-frame-clock.c b/x11-wm/mutter/files/patch-clutter_clutter_clutter-frame-clock.c new file mode 100644 index 000000000000..d17c08df52ba --- /dev/null +++ b/x11-wm/mutter/files/patch-clutter_clutter_clutter-frame-clock.c @@ -0,0 +1,23 @@ +--- clutter/clutter/clutter-frame-clock.c.orig 2023-10-31 18:35:00 UTC ++++ clutter/clutter/clutter-frame-clock.c +@@ -845,7 +845,7 @@ clutter_frame_clock_get_max_render_time_debug_info (Cl + GString *string; + + string = g_string_new (NULL); +- g_string_append_printf (string, "Max render time: %ld µs", ++ g_string_append_printf (string, "Max render time: %lld µs", + clutter_frame_clock_compute_max_render_time_us (frame_clock)); + + if (frame_clock->got_measurements_last_frame) +@@ -857,9 +857,9 @@ clutter_frame_clock_get_max_render_time_debug_info (Cl + MAX (frame_clock->longterm_max_update_duration_us, + frame_clock->shortterm_max_update_duration_us); + +- g_string_append_printf (string, "\nVblank duration: %ld µs +", ++ g_string_append_printf (string, "\nVblank duration: %lld µs +", + frame_clock->vblank_duration_us); +- g_string_append_printf (string, "\nUpdate duration: %ld µs +", ++ g_string_append_printf (string, "\nUpdate duration: %lld µs +", + max_update_duration_us); + g_string_append_printf (string, "\nConstant: %d µs", + clutter_max_render_time_constant_us); diff --git a/x11-wm/mutter/files/patch-clutter_clutter_clutter-stage-view.c b/x11-wm/mutter/files/patch-clutter_clutter_clutter-stage-view.c deleted file mode 100644 index e12a21f4fefb..000000000000 --- a/x11-wm/mutter/files/patch-clutter_clutter_clutter-stage-view.c +++ /dev/null @@ -1,58 +0,0 @@ -$OpenBSD: patch-clutter_clutter_clutter-stage-view_c,v 1.1 2021/06/04 10:56:17 ajacoutot Exp $ - -Index: clutter/clutter/clutter-stage-view.c ---- clutter/clutter/clutter-stage-view.c.orig -+++ clutter/clutter/clutter-stage-view.c -@@ -543,13 +543,13 @@ find_damaged_tiles (ClutterStageView *view, - bpp = cogl_dma_buf_handle_get_bpp (current_dma_buf_handle); - - cogl_framebuffer_finish (COGL_FRAMEBUFFER (priv->shadow.framebuffer)); -- -+#ifdef __linux__ - if (!cogl_dma_buf_handle_sync_read_start (prev_dma_buf_handle, error)) - return NULL; - - if (!cogl_dma_buf_handle_sync_read_start (current_dma_buf_handle, error)) - goto err_sync_read_current; -- -+#endif - prev_data = cogl_dma_buf_handle_mmap (prev_dma_buf_handle, error); - if (!prev_data) - goto err_mmap_prev; -@@ -594,7 +594,7 @@ find_damaged_tiles (ClutterStageView *view, - cairo_region_union_rectangle (tile_damage_region, &tile); - } - } -- -+#ifdef __linux__ - if (!cogl_dma_buf_handle_sync_read_end (prev_dma_buf_handle, error)) - { - g_warning ("Failed to end DMA buffer read synchronization: %s", -@@ -608,7 +608,7 @@ find_damaged_tiles (ClutterStageView *view, - (*error)->message); - g_clear_error (error); - } -- -+#endif - cogl_dma_buf_handle_munmap (prev_dma_buf_handle, prev_data, NULL); - cogl_dma_buf_handle_munmap (current_dma_buf_handle, current_data, NULL); - -@@ -618,13 +618,16 @@ find_damaged_tiles (ClutterStageView *view, - - err_mmap_current: - cogl_dma_buf_handle_munmap (prev_dma_buf_handle, prev_data, NULL); -- -+#ifdef __linux__ - err_mmap_prev: - cogl_dma_buf_handle_sync_read_end (current_dma_buf_handle, NULL); - - err_sync_read_current: - cogl_dma_buf_handle_sync_read_end (prev_dma_buf_handle, NULL); -- -+#else -+err_mmap_prev: -+err_sync_read_current: -+#endif - return NULL; - } - diff --git a/x11-wm/mutter/files/patch-cogl_cogl_cogl-dma-buf-handle.c b/x11-wm/mutter/files/patch-cogl_cogl_cogl-dma-buf-handle.c index a0739e3d4895..86768c36f809 100644 --- a/x11-wm/mutter/files/patch-cogl_cogl_cogl-dma-buf-handle.c +++ b/x11-wm/mutter/files/patch-cogl_cogl_cogl-dma-buf-handle.c @@ -1,32 +1,31 @@ -$OpenBSD: patch-cogl_cogl_cogl-dma-buf-handle_c,v 1.2 2021/06/04 10:56:17 ajacoutot Exp $ - Index: cogl/cogl/cogl-dma-buf-handle.c ---- cogl/cogl/cogl-dma-buf-handle.c.orig +--- cogl/cogl/cogl-dma-buf-handle.c.orig 2023-07-06 10:42:04 UTC +++ cogl/cogl/cogl-dma-buf-handle.c -@@ -36,8 +36,10 @@ - +@@ -37,7 +37,27 @@ #include <errno.h> #include <gio/gio.h> + #include <glib/gstdio.h> +#ifdef __linux__ #include <linux/dma-buf.h> - #include <sys/ioctl.h> ++#else ++typedef uint64_t __u64; ++ ++// From https://github.com/evadot/drm-subtree or https://reviews.freebsd.org/D23085 ++struct dma_buf_sync ++{ ++ __u64 flags; ++}; ++ ++#define DMA_BUF_SYNC_READ (1 << 0) ++#define DMA_BUF_SYNC_WRITE (2 << 0) ++#define DMA_BUF_SYNC_RW (DMA_BUF_SYNC_READ | DMA_BUF_SYNC_WRITE) ++#define DMA_BUF_SYNC_START (0 << 2) ++#define DMA_BUF_SYNC_END (1 << 2) ++#define DMA_BUF_SYNC_VALID_FLAGS_MASK \ ++ (DMA_BUF_SYNC_RW | DMA_BUF_SYNC_END) ++#define DMA_BUF_BASE 'b' ++#define DMA_BUF_IOCTL_SYNC _IOW(DMA_BUF_BASE, 0, struct dma_buf_sync) +#endif + #include <sys/ioctl.h> #include <sys/mman.h> #include <unistd.h> - -@@ -101,6 +103,7 @@ cogl_dma_buf_handle_free (CoglDmaBufHandle *dmabuf_han - g_free (dmabuf_handle); - } - -+#ifdef __linux__ - static gboolean - sync_read (CoglDmaBufHandle *dmabuf_handle, - uint64_t start_or_end, -@@ -147,6 +150,7 @@ cogl_dma_buf_handle_sync_read_end (CoglDmaBufHandle * - { - return sync_read (dmabuf_handle, DMA_BUF_SYNC_END, error); - } -+#endif - - gpointer - cogl_dma_buf_handle_mmap (CoglDmaBufHandle *dmabuf_handle, diff --git a/x11-wm/mutter/files/patch-cogl_cogl_cogl-dma-buf-handle.h b/x11-wm/mutter/files/patch-cogl_cogl_cogl-dma-buf-handle.h deleted file mode 100644 index a7b5dcad6553..000000000000 --- a/x11-wm/mutter/files/patch-cogl_cogl_cogl-dma-buf-handle.h +++ /dev/null @@ -1,22 +0,0 @@ -$OpenBSD: patch-cogl_cogl_cogl-dma-buf-handle_h,v 1.2 2021/06/04 10:56:17 ajacoutot Exp $ - -Index: cogl/cogl/cogl-dma-buf-handle.h ---- cogl/cogl/cogl-dma-buf-handle.h.orig -+++ cogl/cogl/cogl-dma-buf-handle.h -@@ -63,6 +63,7 @@ cogl_dma_buf_handle_new (CoglFramebuffer *framebuffer, - COGL_EXPORT void - cogl_dma_buf_handle_free (CoglDmaBufHandle *dmabuf_handle); - -+# ifdef __linux__ - COGL_EXPORT gboolean - cogl_dma_buf_handle_sync_read_start (CoglDmaBufHandle *dmabuf_handle, - GError **error); -@@ -70,7 +71,7 @@ cogl_dma_buf_handle_sync_read_start (CoglDmaBufHandle - COGL_EXPORT gboolean - cogl_dma_buf_handle_sync_read_end (CoglDmaBufHandle *dmabuf_handle, - GError **error); -- -+# endif - COGL_EXPORT gpointer - cogl_dma_buf_handle_mmap (CoglDmaBufHandle *dmabuf_handle, - GError **error); diff --git a/x11-wm/mutter/files/patch-da3ae7f0.patch b/x11-wm/mutter/files/patch-da3ae7f0.patch new file mode 100644 index 000000000000..3f26bf205ebe --- /dev/null +++ b/x11-wm/mutter/files/patch-da3ae7f0.patch @@ -0,0 +1,29 @@ +Revert: +From da3ae7f0e68d8fab424a260e8f8300a217ccf0ee Mon Sep 17 00:00:00 2001 +From: Kamil Szczęk <kamil@szczek.dev> +Date: Mon, 30 Sep 2024 11:24:32 +0200 +Subject: [PATCH] udev: Use current tags when looking for preferred primary + devices + +--- meson.build.orig 2024-11-25 14:05:12 UTC ++++ meson.build +@@ -42,7 +42,7 @@ udev_req = '>= 228' + + # optional version requirements + udev_req = '>= 228' +-gudev_req = '>= 238' ++gudev_req = '>= 232' + + # wayland version requirements + wayland_server_req = '>= 1.22' +--- src/backends/native/meta-udev.c.orig 2024-11-25 14:05:12 UTC ++++ src/backends/native/meta-udev.c +@@ -125,7 +125,7 @@ meta_is_udev_device_preferred_primary (GUdevDevice *de + { + const char * const *tags; + +- tags = g_udev_device_get_current_tags (device); ++ tags = g_udev_device_get_tags (device); + if (!tags) + return FALSE; + diff --git a/x11-wm/mutter/files/patch-meson.build b/x11-wm/mutter/files/patch-meson.build new file mode 100644 index 000000000000..29f3431e24d1 --- /dev/null +++ b/x11-wm/mutter/files/patch-meson.build @@ -0,0 +1,20 @@ +--- meson.build.orig 2023-07-06 10:42:04 UTC ++++ meson.build +@@ -226,11 +226,15 @@ have_libgudev = get_option('udev') + if have_libgudev + libudev_dep = dependency('libudev', version: udev_req) + gudev_dep = dependency('gudev-1.0', version: gudev_req) +- udev_dep = dependency('udev') ++ udev_dep = dependency('udev', required: false) + + udev_dir = get_option('udev_dir') + if udev_dir == '' +- udev_dir = udev_dep.get_variable('udevdir') ++ if udev_dep.found() ++ udev_dir = udev_dep.get_variable('udevdir') ++ else ++ udev_dir = libdir / 'udev' ++ endif + endif + endif + diff --git a/x11-wm/mutter/files/patch-src_backends_meta-stage-impl.c b/x11-wm/mutter/files/patch-src_backends_meta-stage-impl.c new file mode 100644 index 000000000000..14b366632ca8 --- /dev/null +++ b/x11-wm/mutter/files/patch-src_backends_meta-stage-impl.c @@ -0,0 +1,18 @@ +https://gitlab.gnome.org/GNOME/mutter/-/issues/2103 + +--- src/backends/meta-stage-impl.c.orig 2024-11-25 14:05:12 UTC ++++ src/backends/meta-stage-impl.c +@@ -612,9 +612,13 @@ meta_stage_impl_redraw_view_primary (MetaStageImpl + * artefacts. + */ + /* swap_region does not need damage history, set it up before that */ ++#if 0 + if (!use_clipped_redraw) + swap_region = mtk_region_create (); + else if (clutter_stage_view_has_shadowfb (stage_view)) ++#else ++ if (clutter_stage_view_has_shadowfb (stage_view)) ++#endif + swap_region = mtk_region_ref (fb_clip_region); + else + swap_region = mtk_region_copy (fb_clip_region); diff --git a/x11-wm/mutter/files/patch-src_backends_x11_meta-input-settings-x11.c b/x11-wm/mutter/files/patch-src_backends_x11_meta-input-settings-x11.c deleted file mode 100644 index 56be8ec7b216..000000000000 --- a/x11-wm/mutter/files/patch-src_backends_x11_meta-input-settings-x11.c +++ /dev/null @@ -1,39 +0,0 @@ -$OpenBSD: patch-src_backends_x11_meta-input-settings-x11_c,v 1.5 2021/06/04 10:56:17 ajacoutot Exp $ - -Index: src/backends/x11/meta-input-settings-x11.c ---- src/backends/x11/meta-input-settings-x11.c.orig -+++ src/backends/x11/meta-input-settings-x11.c -@@ -45,6 +45,7 @@ typedef struct _MetaInputSettingsX11Private - #ifdef HAVE_LIBGUDEV - GUdevClient *udev_client; - #endif -+ bool dummy_field; // struct needs at least one element to compile - } MetaInputSettingsX11Private; - - G_DEFINE_TYPE_WITH_PRIVATE (MetaInputSettingsX11, meta_input_settings_x11, -@@ -765,11 +766,10 @@ meta_input_settings_x11_set_tablet_aspect_ratio (MetaI - static void - meta_input_settings_x11_dispose (GObject *object) - { --#ifdef HAVE_LIBGUDEV - MetaInputSettingsX11 *settings_x11 = META_INPUT_SETTINGS_X11 (object); - MetaInputSettingsX11Private *priv = - meta_input_settings_x11_get_instance_private (settings_x11); -- -+#ifdef HAVE_LIBGUDEV - g_clear_object (&priv->udev_client); - #endif - -@@ -938,11 +938,10 @@ meta_input_settings_x11_class_init (MetaInputSettingsX - static void - meta_input_settings_x11_init (MetaInputSettingsX11 *settings) - { --#ifdef HAVE_LIBGUDEV - MetaInputSettingsX11Private *priv = - meta_input_settings_x11_get_instance_private (settings); - const char *subsystems[] = { NULL }; -- -+#ifdef HAVE_LIBGUDEV - priv->udev_client = g_udev_client_new (subsystems); - #endif - } diff --git a/x11-wm/mutter/files/patch-src_backends_x11_meta-seat-x11.c b/x11-wm/mutter/files/patch-src_backends_x11_meta-seat-x11.c deleted file mode 100644 index 5845d2d285b2..000000000000 --- a/x11-wm/mutter/files/patch-src_backends_x11_meta-seat-x11.c +++ /dev/null @@ -1,44 +0,0 @@ -$OpenBSD: patch-src_backends_x11_meta-seat-x11_c,v 1.3 2021/06/04 10:56:17 ajacoutot Exp $ - -Index: src/backends/x11/meta-seat-x11.c ---- src/backends/x11/meta-seat-x11.c.orig -+++ src/backends/x11/meta-seat-x11.c -@@ -17,8 +17,9 @@ - * Author: Carlos Garnacho <carlosg@gnome.org> - */ - #include "config.h" -- -+#ifdef __linux__ - #include <linux/input-event-codes.h> -+#endif - #include <X11/extensions/XInput2.h> - #include <X11/extensions/XKB.h> - -@@ -1733,7 +1734,7 @@ get_source_device_checked (MetaSeatX11 *seat, - - return source_device; - } -- -+#ifdef __linux__ - static uint32_t - evdev_button_code (uint32_t x_button) - { -@@ -1762,7 +1763,7 @@ evdev_button_code (uint32_t x_button) - - return button; - } -- -+#endif - gboolean - meta_seat_x11_translate_event (MetaSeatX11 *seat, - XEvent *xevent, -@@ -2050,7 +2051,9 @@ meta_seat_x11_translate_event (MetaSeatX11 *seat, - event->button.time = xev->time; - translate_coords (stage_x11, xev->event_x, xev->event_y, &event->button.x, &event->button.y); - event->button.button = xev->detail; -+#ifdef __linux__ - event->button.evdev_code = evdev_button_code (xev->detail); -+#endif - meta_input_device_x11_translate_state (event, - &xev->mods, - &xev->buttons, diff --git a/x11-wm/mutter/files/patch-src_core_meta-context-main.c b/x11-wm/mutter/files/patch-src_core_meta-context-main.c new file mode 100644 index 000000000000..ed1fc10ad094 --- /dev/null +++ b/x11-wm/mutter/files/patch-src_core_meta-context-main.c @@ -0,0 +1,24 @@ +Based on https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=258042 + +--- src/core/meta-context-main.c.orig 2025-03-04 18:56:53 UTC ++++ src/core/meta-context-main.c +@@ -25,7 +25,7 @@ + #include <glib.h> + #include <gio/gio.h> + +-#ifdef HAVE_WAYLAND ++#if defined(HAVE_LIBSYSTEMD) && defined(HAVE_WAYLAND) + #include <systemd/sd-login.h> + #endif + +@@ -348,8 +348,10 @@ meta_context_main_get_x11_display_policy (MetaContext + #ifdef HAVE_WAYLAND + if (context_main->options.no_x11) + return META_X11_DISPLAY_POLICY_DISABLED; ++#ifdef HAVE_LIBSYSTEMD + else if (sd_pid_get_user_unit (0, &unit) < 0) + return META_X11_DISPLAY_POLICY_MANDATORY; ++#endif + else + return META_X11_DISPLAY_POLICY_ON_DEMAND; + #else /* HAVE_WAYLAND */ diff --git a/x11-wm/mutter/files/patch-src_wayland_meta-wayland-buffer.c b/x11-wm/mutter/files/patch-src_wayland_meta-wayland-buffer.c new file mode 100644 index 000000000000..4f2e3087ee4c --- /dev/null +++ b/x11-wm/mutter/files/patch-src_wayland_meta-wayland-buffer.c @@ -0,0 +1,46 @@ +Based on https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=258042 + +--- src/wayland/meta-wayland-buffer.c.orig 2024-11-25 14:05:12 UTC ++++ src/wayland/meta-wayland-buffer.c +@@ -228,6 +228,7 @@ shm_to_drm_format (enum wl_shm_format format) + return format; + } + ++#ifdef HAVE_NATIVE_BACKEND + static const char * + shm_format_to_string (MetaDrmFormatBuf *format_buf, + enum wl_shm_format shm_format) +@@ -237,6 +238,7 @@ shm_format_to_string (MetaDrmFormatBuf *format_buf, + drm_format = shm_to_drm_format (shm_format); + return meta_drm_format_to_string (format_buf, drm_format); + } ++#endif + + static const MetaFormatInfo * + get_supported_shm_format_info (uint32_t shm_format) +@@ -409,7 +411,9 @@ shm_buffer_attach (MetaWaylandBuffer *buffer, + int stride, width, height; + MetaMultiTextureFormat multi_format; + CoglPixelFormat cogl_format; ++#ifdef HAVE_NATIVE_BACKEND + MetaDrmFormatBuf format_buf; ++#endif + uint32_t shm_format; + const MetaFormatInfo *format_info; + +@@ -430,6 +434,7 @@ shm_buffer_attach (MetaWaylandBuffer *buffer, + cogl_format = format_info->cogl_format; + multi_format = format_info->multi_texture_format; + ++#ifdef HAVE_NATIVE_BACKEND + meta_topic (META_DEBUG_WAYLAND, + "[wl-shm] wl_buffer@%u wl_shm_format %s " + "-> MetaMultiTextureFormat %s / CoglPixelFormat %s", +@@ -437,6 +442,7 @@ shm_buffer_attach (MetaWaylandBuffer *buffer, + shm_format_to_string (&format_buf, shm_format), + meta_multi_texture_format_to_string (multi_format), + cogl_pixel_format_to_string (cogl_format)); ++#endif + + if (*texture && + meta_multi_texture_get_width (*texture) == width && diff --git a/x11-wm/mutter/files/patch-src_wayland_meta-wayland-dma-buf.c b/x11-wm/mutter/files/patch-src_wayland_meta-wayland-dma-buf.c new file mode 100644 index 000000000000..723d17b181ba --- /dev/null +++ b/x11-wm/mutter/files/patch-src_wayland_meta-wayland-dma-buf.c @@ -0,0 +1,152 @@ +Adapt changes https://gitlab.gnome.org/GNOME/mutter/-/commit/c4773089 + +--- src/wayland/meta-wayland-dma-buf.c.orig 2024-11-25 14:05:12 UTC ++++ src/wayland/meta-wayland-dma-buf.c +@@ -39,7 +39,9 @@ + + #include <drm_fourcc.h> + #include <glib/gstdio.h> ++#ifdef __linux__ + #include <linux/dma-buf.h> ++#endif + #include <sys/ioctl.h> + #include <sys/stat.h> + #include <sys/types.h> +@@ -72,6 +74,26 @@ + + #define META_WAYLAND_DMA_BUF_MAX_FDS 4 + ++#ifndef __linux__ ++/* From https://reviews.freebsd.org/D23085 */ ++typedef uint64_t __u64; ++ ++struct dma_buf_sync ++{ ++ __u64 flags; ++}; ++ ++#define DMA_BUF_SYNC_READ (1 << 0) ++#define DMA_BUF_SYNC_WRITE (2 << 0) ++#define DMA_BUF_SYNC_RW (DMA_BUF_SYNC_READ | DMA_BUF_SYNC_WRITE) ++#define DMA_BUF_SYNC_START (0 << 2) ++#define DMA_BUF_SYNC_END (1 << 2) ++#define DMA_BUF_SYNC_VALID_FLAGS_MASK \ ++ (DMA_BUF_SYNC_RW | DMA_BUF_SYNC_END) ++#define DMA_BUF_BASE 'b' ++#define DMA_BUF_IOCTL_SYNC _IOW(DMA_BUF_BASE, 0, struct dma_buf_sync) ++#endif ++ + /* Compatible with zwp_linux_dmabuf_feedback_v1.tranche_flags */ + typedef enum _MetaWaylandDmaBufTrancheFlags + { +@@ -863,7 +885,9 @@ typedef struct _MetaWaylandDmaBufSource + gpointer user_data; + + gpointer fd_tags[META_WAYLAND_DMA_BUF_MAX_FDS]; ++#ifdef __linux__ + int owned_sync_fd[META_WAYLAND_DMA_BUF_MAX_FDS]; ++#endif + } MetaWaylandDmaBufSource; + + static gboolean +@@ -898,11 +922,13 @@ meta_wayland_dma_buf_source_dispatch (GSource *bas + for (i = 0; i < META_WAYLAND_DMA_BUF_MAX_FDS; i++) + { + gpointer fd_tag = source->fd_tags[i]; +- int fd; + + if (!fd_tag) + continue; + ++#ifdef __linux__ ++ int fd; ++ + fd = source->owned_sync_fd[i]; + if (fd < 0) + fd = dma_buf->fds[i]; +@@ -912,10 +938,19 @@ meta_wayland_dma_buf_source_dispatch (GSource *bas + ready = FALSE; + continue; + } ++#else ++ if (!is_fd_readable (dma_buf->fds[i])) ++ { ++ ready = FALSE; ++ continue; ++ } ++#endif + + g_source_remove_unix_fd (&source->base, fd_tag); + source->fd_tags[i] = NULL; ++#ifdef __linux__ + g_clear_fd (&source->owned_sync_fd[i], NULL); ++#endif + } + + if (!ready) +@@ -942,7 +977,9 @@ meta_wayland_dma_buf_source_finalize (GSource *base) + { + g_source_remove_unix_fd (&source->base, fd_tag); + source->fd_tags[i] = NULL; ++#ifdef __linux__ + g_clear_fd (&source->owned_sync_fd[i], NULL); ++#endif + } + } + +@@ -960,7 +997,6 @@ create_source (MetaWaylandBuffer *buffer + gpointer user_data) + { + MetaWaylandDmaBufSource *source; +- int i; + + source = + (MetaWaylandDmaBufSource *) g_source_new (&meta_wayland_dma_buf_source_funcs, +@@ -971,12 +1007,17 @@ create_source (MetaWaylandBuffer *buffer + source->dispatch = dispatch; + source->user_data = user_data; + ++#ifdef __linux__ ++ int i; ++ + for (i = 0; i < META_WAYLAND_DMA_BUF_MAX_FDS; i++) + source->owned_sync_fd[i] = -1; ++#endif + + return source; + } + ++#ifdef __linux__ + static int + get_sync_file (int dma_buf_fd) + { +@@ -994,6 +1035,7 @@ get_sync_file (int dma_buf_fd) + + return -1; + } ++#endif + + /** + * meta_wayland_dma_buf_create_source: +@@ -1034,9 +1076,11 @@ meta_wayland_dma_buf_create_source (MetaWaylandBuffer + if (!source) + source = create_source (buffer, dispatch, user_data); + ++#ifdef __linux__ + source->owned_sync_fd[i] = get_sync_file (fd); + if (source->owned_sync_fd[i] >= 0) + fd = source->owned_sync_fd[i]; ++#endif + + source->fd_tags[i] = g_source_add_unix_fd (&source->base, fd, G_IO_IN); + } +@@ -1075,7 +1119,9 @@ meta_wayland_drm_syncobj_create_source (MetaWaylandBuf + return NULL; + + source->fd_tags[0] = g_source_add_unix_fd (&source->base, sync_fd, G_IO_IN); ++#ifdef __linux__ + source->owned_sync_fd[0] = g_steal_fd (&sync_fd); ++#endif + + return &source->base; + } diff --git a/x11-wm/mutter/files/patch-src_wayland_meta-xwayland.c b/x11-wm/mutter/files/patch-src_wayland_meta-xwayland.c new file mode 100644 index 000000000000..113a0dd6e2bd --- /dev/null +++ b/x11-wm/mutter/files/patch-src_wayland_meta-xwayland.c @@ -0,0 +1,27 @@ +Based on https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=258042 + +--- src/wayland/meta-xwayland.c.orig 2024-11-25 14:05:12 UTC ++++ src/wayland/meta-xwayland.c +@@ -598,9 +598,11 @@ open_display_sockets (MetaXWaylandManager *manager, + { + int abstract_fd, unix_fd; + ++#ifdef __linux__ + abstract_fd = bind_to_abstract_socket (display_index, error); + if (abstract_fd < 0) + return FALSE; ++#endif + + unix_fd = bind_to_unix_socket (display_index, error); + if (unix_fd < 0) +@@ -608,6 +610,10 @@ open_display_sockets (MetaXWaylandManager *manager, + close (abstract_fd); + return FALSE; + } ++ ++#ifndef __linux__ ++ abstract_fd = unix_fd; ++#endif + + *abstract_fd_out = abstract_fd; + *unix_fd_out = unix_fd; |