commit:     3b87d7706edd693335b44919b6d03d40dbb0bd7d
Author:     Haelwenn (lanodan) Monnier <contact <AT> hacktivis <DOT> me>
AuthorDate: Tue Jun 29 16:35:01 2021 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Jun 29 16:35:23 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3b87d770

media-libs/gst-plugins-base: 1.18 backported fixes for >=meson-0.58 and wayland

Signed-off-by: Haelwenn (lanodan) Monnier <contact <AT> hacktivis.me>
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../gst-plugins-base-1.18.4_meson-0.58.0.patch     | 48 +++++++++++++++++++
 ...ugins-base-1.18.4_wayland_registry_remove.patch | 55 ++++++++++++++++++++++
 .../gst-plugins-base-1.18.4.ebuild                 |  6 +++
 3 files changed, 109 insertions(+)

diff --git 
a/media-libs/gst-plugins-base/files/gst-plugins-base-1.18.4_meson-0.58.0.patch 
b/media-libs/gst-plugins-base/files/gst-plugins-base-1.18.4_meson-0.58.0.patch
new file mode 100644
index 00000000000..9cb2dafb3d7
--- /dev/null
+++ 
b/media-libs/gst-plugins-base/files/gst-plugins-base-1.18.4_meson-0.58.0.patch
@@ -0,0 +1,48 @@
+From 90903917a8185e0f9add7af8153ae2fc9875fdcb Mon Sep 17 00:00:00 2001
+From: Xavier Claessens <[email protected]>
+Date: Mon, 26 Apr 2021 14:25:03 -0400
+Subject: [PATCH] gstgl: Fix build when Meson >= 0.58.0rc1
+
+"implicit_include_directories: false" now also means that current build
+directory is not added to include paths by default any more. We have to
+add it manually because we have some custom_target() that generate
+headers in current build directory.
+
+See https://github.com/mesonbuild/meson/issues/8700.
+
+Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1127>
+---
+ gst-libs/gst/gl/meson.build | 15 ++++++++++++---
+ 1 file changed, 12 insertions(+), 3 deletions(-)
+
+diff --git a/gst-libs/gst/gl/meson.build b/gst-libs/gst/gl/meson.build
+index db11c5e89..731ee9f5e 100644
+--- a/gst-libs/gst/gl/meson.build
++++ b/gst-libs/gst/gl/meson.build
+@@ -989,11 +989,20 @@ if build_gstgl
+     command : [mkenums, glib_mkenums, '@OUTPUT@', '@INPUT@'])
+   gen_sources = [gl_enumtypes_h]
+ 
++  common_args = gst_plugins_base_args + gl_cpp_args + ['-DBUILDING_GST_GL']
++
++  # We have custom_target() that generate headers in the current build dir,
++  # but with implicit_include_directories: false, meson >= 0.58.0 won't 
include
++  # it by default. We cannot use include_directories('.') here because it 
would
++  # also include current source dir which is what we want to avoid because
++  # case-insensitive FS would include gst-libs/gl/egl/egl.h as EGL/egl.h.
++  common_args += '-I@0@'.format(meson.current_build_dir())
++
+   gstgl = library('gstgl-' + api_version,
+     gl_sources, gl_egl_sources, gl_x11_sources, gl_wayland_sources, 
gl_priv_sources, gl_enumtypes_c, gl_enumtypes_h,
+-    c_args : gst_plugins_base_args + gl_cpp_args + ['-DBUILDING_GST_GL'],
+-    cpp_args : gst_plugins_base_args + gl_cpp_args + ['-DBUILDING_GST_GL'],
+-    objc_args : gst_plugins_base_args + gl_cpp_args + gl_objc_args + 
['-DBUILDING_GST_GL'],
++    c_args : common_args,
++    cpp_args : common_args,
++    objc_args : common_args + gl_objc_args,
+     include_directories : [configinc, libsinc, gl_includes],
+     version : libversion,
+     soversion : soversion,
+-- 
+GitLab
+

diff --git 
a/media-libs/gst-plugins-base/files/gst-plugins-base-1.18.4_wayland_registry_remove.patch
 
b/media-libs/gst-plugins-base/files/gst-plugins-base-1.18.4_wayland_registry_remove.patch
new file mode 100644
index 00000000000..0bf004350f0
--- /dev/null
+++ 
b/media-libs/gst-plugins-base/files/gst-plugins-base-1.18.4_wayland_registry_remove.patch
@@ -0,0 +1,55 @@
+From dc1fe07687747f11be6bb0eb944d53efa82ef86c Mon Sep 17 00:00:00 2001
+From: Matthew Waters <[email protected]>
+Date: Mon, 22 Mar 2021 13:59:39 +1100
+Subject: [PATCH] gl/wayland: provide a dummy global_remove function
+
+Even if we don't care about any global objects being removed, wayland
+will still error if globals are removed without a corresponding listener
+set up for them.  e.g. wl_output hotplugging
+
+Discovered by: Matthias Clasen
+
+Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1085>
+---
+ .../gst/gl/wayland/gstglwindow_wayland_egl.c    | 17 +++++++++++++++--
+ 1 file changed, 15 insertions(+), 2 deletions(-)
+
+diff --git a/gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.c 
b/gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.c
+index 6b06632a7..bb8be2756 100644
+--- a/gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.c
++++ b/gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.c
+@@ -494,7 +494,8 @@ registry_handle_global (void *data, struct wl_registry 
*registry,
+   GstGLWindowWaylandEGL *window_wayland = data;
+ 
+   GST_TRACE_OBJECT (window_wayland, "registry_handle_global with registry %p, 
"
+-      "interface %s, version %u", registry, interface, version);
++      "name %" G_GUINT32_FORMAT ", interface %s, version %u", registry, name,
++      interface, version);
+ 
+   if (g_strcmp0 (interface, "wl_compositor") == 0) {
+     window_wayland->display.compositor =
+@@ -518,8 +519,20 @@ registry_handle_global (void *data, struct wl_registry 
*registry,
+   }
+ }
+ 
++static void
++registry_handle_global_remove (void *data, struct wl_registry *registry,
++    uint32_t name)
++{
++  GstGLWindowWaylandEGL *window_wayland = data;
++
++  /* TODO: deal with any registry objects that may be removed */
++  GST_TRACE_OBJECT (window_wayland, "wl_registry %p global_remove %"
++      G_GUINT32_FORMAT, registry, name);
++}
++
+ static const struct wl_registry_listener registry_listener = {
+-  registry_handle_global
++  registry_handle_global,
++  registry_handle_global_remove,
+ };
+ 
+ static gboolean
+-- 
+GitLab
+

diff --git a/media-libs/gst-plugins-base/gst-plugins-base-1.18.4.ebuild 
b/media-libs/gst-plugins-base/gst-plugins-base-1.18.4.ebuild
index 0f426cd99d0..a158631adf0 100644
--- a/media-libs/gst-plugins-base/gst-plugins-base-1.18.4.ebuild
+++ b/media-libs/gst-plugins-base/gst-plugins-base-1.18.4.ebuild
@@ -92,6 +92,12 @@ DEPEND="${RDEPEND}
 
 DOCS="AUTHORS NEWS README RELEASE"
 
+# Fixes backported to 1.18.x, to be removed in 1.18.5
+PATCHES=(
+       "${FILESDIR}/gst-plugins-base-1.18.4_meson-0.58.0.patch"
+       "${FILESDIR}/gst-plugins-base-1.18.4_wayland_registry_remove.patch"
+)
+
 multilib_src_configure() {
        filter-flags -mno-sse -mno-sse2 -mno-sse4.1 #610340
 

Reply via email to