diff mbox series

[RFC,meta-oe] libdecor: update 1.1.0 -> 1.1.99

Message ID 20230228154806.881483-1-f_l_k@t-online.de
State Under Review
Headers show
Series [RFC,meta-oe] libdecor: update 1.1.0 -> 1.1.99 | expand

Commit Message

Markus Volk Feb. 28, 2023, 3:48 p.m. UTC
libdecor is needed under wayland for compositors that require client-side decoration (gnome/weston).
Its consumers at the moment are at least libsdl2 and blender. Upstream has added a plugin for gtk.
This is quite a useful feature, since programs that use libdecor don't fit well into gtk otherwise.

Signed-off-by: Markus Volk <f_l_k@t-online.de>
---
 ....c-dont-skip-for-conflicting-symbols.patch | 31 +++++++++++++++++++
 .../{libdecor_0.1.1.bb => libdecor_0.1.99.bb} | 23 ++++++++------
 2 files changed, 44 insertions(+), 10 deletions(-)
 create mode 100644 meta-oe/recipes-graphics/libdecor/libdecor/0001-libdecor-gtk.c-dont-skip-for-conflicting-symbols.patch
 rename meta-oe/recipes-graphics/libdecor/{libdecor_0.1.1.bb => libdecor_0.1.99.bb} (52%)

Comments

Markus Volk Feb. 28, 2023, 3:51 p.m. UTC | #1
I flagged this RFC because this feature is not yet in the stable 
release. dlopen would load png_free into the global namespace, which 
can be problematic if incompatible statically linked libpng symbols are 
already loaded.
That's not a problem for me, so I disabled the check for that. But I'm 
not sure if this could be a blocker for meta-openembedded.

Am Di, 28. Feb 2023 um 16:48:06 +0100 schrieb Markus Volk 
<f_l_k@t-online.de>:
> libdecor is needed under wayland for compositors that require 
> client-side decoration (gnome/weston).
> Its consumers at the moment are at least libsdl2 and blender. 
> Upstream has added a plugin for gtk.
> This is quite a useful feature, since programs that use libdecor 
> don't fit well into gtk otherwise.
> 
> Signed-off-by: Markus Volk <f_l_k@t-online.de 
> <mailto:f_l_k@t-online.de>>
> ---
>  ....c-dont-skip-for-conflicting-symbols.patch | 31 
> +++++++++++++++++++
>  .../{libdecor_0.1.1.bb => libdecor_0.1.99.bb} | 23 ++++++++------
>  2 files changed, 44 insertions(+), 10 deletions(-)
>  create mode 100644 
> meta-oe/recipes-graphics/libdecor/libdecor/0001-libdecor-gtk.c-dont-skip-for-conflicting-symbols.patch
>  rename meta-oe/recipes-graphics/libdecor/{libdecor_0.1.1.bb => 
> libdecor_0.1.99.bb} (52%)
> 
> diff --git 
> a/meta-oe/recipes-graphics/libdecor/libdecor/0001-libdecor-gtk.c-dont-skip-for-conflicting-symbols.patch 
> b/meta-oe/recipes-graphics/libdecor/libdecor/0001-libdecor-gtk.c-dont-skip-for-conflicting-symbols.patch
> new file mode 100644
> index 000000000..c9d63c907
> --- /dev/null
> +++ 
> b/meta-oe/recipes-graphics/libdecor/libdecor/0001-libdecor-gtk.c-dont-skip-for-conflicting-symbols.patch
> @@ -0,0 +1,31 @@
> +From fb6eb15b34b5b07a431bb4c3585341411a3e088f Mon Sep 17 00:00:00 
> 2001
> +From: Markus Volk <f_l_k@t-online.de <mailto:f_l_k@t-online.de>>
> +Date: Tue, 28 Feb 2023 13:42:18 +0100
> +Subject: [PATCH] libdecor-gtk.c: dont skip for conflicting_symbols
> +
> +This is a hack that should be removed, once the underlying bug in 
> glibc was fixed and
> +libdecor was updated to use dlmopen() instead of dlopen()
> +
> +<https://gitlab.freedesktop.org/libdecor/libdecor/-/issues/47>
> +<https://gitlab.freedesktop.org/libdecor/libdecor/-/issues/44>
> +
> +---
> + src/plugins/gtk/libdecor-gtk.c | 2 +-
> + 1 file changed, 1 insertion(+), 1 deletion(-)
> +
> +diff --git a/src/plugins/gtk/libdecor-gtk.c 
> b/src/plugins/gtk/libdecor-gtk.c
> +index 228161e..fd91afb 100644
> +--- a/src/plugins/gtk/libdecor-gtk.c
> ++++ b/src/plugins/gtk/libdecor-gtk.c
> +@@ -2606,7 +2606,7 @@ libdecor_plugin_description = {
> + 	.priorities = priorities,
> + 	.constructor = libdecor_plugin_new,
> + 	.conflicting_symbols = {
> +-		"png_free",
> ++		//"png_free",
> + 		NULL,
> + 	},
> + };
> +--
> +2.34.1
> +
> diff --git a/meta-oe/recipes-graphics/libdecor/libdecor_0.1.1.bb 
> b/meta-oe/recipes-graphics/libdecor/libdecor_0.1.99.bb
> similarity index 52%
> rename from meta-oe/recipes-graphics/libdecor/libdecor_0.1.1.bb
> rename to meta-oe/recipes-graphics/libdecor/libdecor_0.1.99.bb
> index 4e396d83e..ed0b05f41 100644
> --- a/meta-oe/recipes-graphics/libdecor/libdecor_0.1.1.bb
> +++ b/meta-oe/recipes-graphics/libdecor/libdecor_0.1.99.bb
> @@ -2,25 +2,28 @@ SUMMARY = "libdecor - A client-side decorations 
> library for Wayland clients"
>  LICENSE = "MIT"
>  LIC_FILES_CHKSUM = 
> "file://LICENSE;md5=7ae2be7fb1637141840314b51970a9f7" 
> <file://license;md5=7ae2be7fb1637141840314b51970a9f7/>
> 
> -SRC_URI = 
> "git://gitlab.gnome.org/jadahl/libdecor.git;protocol=https;branch=master"
> +SRC_URI = " \
> +    
> git://gitlab.freedesktop.org/libdecor/libdecor.git;protocol=https;branch=master 
> \
> +    
> file://0001-libdecor-gtk.c-dont-skip-for-conflicting-symbols.patch 
> <file://0001-libdecor-gtk.c-dont-skip-for-conflicting-symbols.patch/> 
> \
> +"
> 
>  DEPENDS = " \
> -	cairo \
> -	pango \
> -	wayland \
> -	wayland-native \
> -	wayland-protocols \
> +    cairo \
> +    pango \
> +    wayland \
> +    wayland-native \
> +    wayland-protocols \
>  "
> 
>  S = "${WORKDIR}/git"
> -SRCREV = "e87dcfdaf83f332fa83b43c804fcf93c151ff0f5"
> +SRCREV = "a254d0c2ff0cbfcf0bbf14cc67cc403640880c01"
> 
> -PACKAGECONFIG ?= "dbus ${@bb.utils.filter 
> <mailto:${@bb.utils.filter>('DISTRO_FEATURES', 'gtk3 opengl', d)}"
> +PACKAGECONFIG ?= "dbus ${@bb.utils.filter 
> <mailto:${@bb.utils.filter>('DISTRO_FEATURES', 'gtk+3', d)}"
> 
>  PACKAGECONFIG[dbus] = "-Ddbus=enabled,-Ddbus=disabled,dbus"
>  PACKAGECONFIG[demo] = "-Ddemo=true,-Ddemo=false,virtual/libegl 
> libxkbcommon"
> -PACKAGECONFIG[gtk3] = "-Dgtk=enabled,-Dgtk=disabled,gtk+3"
> -PACKAGECONFIG[opengl] = ",,virtual/libgl"
> +PACKAGECONFIG[install_demo] = 
> "-Dinstall_demo=true,-Dinstall_demo=false"
> +PACKAGECONFIG[gtk+3] = "-Dgtk=enabled,-Dgtk=disabled,gtk+3"
> 
>  inherit meson pkgconfig
> 
> --
> 2.34.1
>
diff mbox series

Patch

diff --git a/meta-oe/recipes-graphics/libdecor/libdecor/0001-libdecor-gtk.c-dont-skip-for-conflicting-symbols.patch b/meta-oe/recipes-graphics/libdecor/libdecor/0001-libdecor-gtk.c-dont-skip-for-conflicting-symbols.patch
new file mode 100644
index 000000000..c9d63c907
--- /dev/null
+++ b/meta-oe/recipes-graphics/libdecor/libdecor/0001-libdecor-gtk.c-dont-skip-for-conflicting-symbols.patch
@@ -0,0 +1,31 @@ 
+From fb6eb15b34b5b07a431bb4c3585341411a3e088f Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_l_k@t-online.de>
+Date: Tue, 28 Feb 2023 13:42:18 +0100
+Subject: [PATCH] libdecor-gtk.c: dont skip for conflicting_symbols
+
+This is a hack that should be removed, once the underlying bug in glibc was fixed and
+libdecor was updated to use dlmopen() instead of dlopen()
+
+https://gitlab.freedesktop.org/libdecor/libdecor/-/issues/47
+https://gitlab.freedesktop.org/libdecor/libdecor/-/issues/44
+
+---
+ src/plugins/gtk/libdecor-gtk.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/plugins/gtk/libdecor-gtk.c b/src/plugins/gtk/libdecor-gtk.c
+index 228161e..fd91afb 100644
+--- a/src/plugins/gtk/libdecor-gtk.c
++++ b/src/plugins/gtk/libdecor-gtk.c
+@@ -2606,7 +2606,7 @@ libdecor_plugin_description = {
+ 	.priorities = priorities,
+ 	.constructor = libdecor_plugin_new,
+ 	.conflicting_symbols = {
+-		"png_free",
++		//"png_free",
+ 		NULL,
+ 	},
+ };
+-- 
+2.34.1
+
diff --git a/meta-oe/recipes-graphics/libdecor/libdecor_0.1.1.bb b/meta-oe/recipes-graphics/libdecor/libdecor_0.1.99.bb
similarity index 52%
rename from meta-oe/recipes-graphics/libdecor/libdecor_0.1.1.bb
rename to meta-oe/recipes-graphics/libdecor/libdecor_0.1.99.bb
index 4e396d83e..ed0b05f41 100644
--- a/meta-oe/recipes-graphics/libdecor/libdecor_0.1.1.bb
+++ b/meta-oe/recipes-graphics/libdecor/libdecor_0.1.99.bb
@@ -2,25 +2,28 @@  SUMMARY = "libdecor - A client-side decorations library for Wayland clients"
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=7ae2be7fb1637141840314b51970a9f7"
 
-SRC_URI = "git://gitlab.gnome.org/jadahl/libdecor.git;protocol=https;branch=master"
+SRC_URI = " \
+    git://gitlab.freedesktop.org/libdecor/libdecor.git;protocol=https;branch=master \
+    file://0001-libdecor-gtk.c-dont-skip-for-conflicting-symbols.patch \
+"
 
 DEPENDS = " \
-	cairo \
-	pango \
-	wayland \
-	wayland-native \
-	wayland-protocols \
+    cairo \
+    pango \
+    wayland \
+    wayland-native \
+    wayland-protocols \
 "
 
 S = "${WORKDIR}/git"
-SRCREV = "e87dcfdaf83f332fa83b43c804fcf93c151ff0f5"
+SRCREV = "a254d0c2ff0cbfcf0bbf14cc67cc403640880c01"
 
-PACKAGECONFIG ?= "dbus ${@bb.utils.filter('DISTRO_FEATURES', 'gtk3 opengl', d)}"
+PACKAGECONFIG ?= "dbus ${@bb.utils.filter('DISTRO_FEATURES', 'gtk+3', d)}"
 
 PACKAGECONFIG[dbus] = "-Ddbus=enabled,-Ddbus=disabled,dbus"
 PACKAGECONFIG[demo] = "-Ddemo=true,-Ddemo=false,virtual/libegl libxkbcommon"
-PACKAGECONFIG[gtk3] = "-Dgtk=enabled,-Dgtk=disabled,gtk+3"
-PACKAGECONFIG[opengl] = ",,virtual/libgl"
+PACKAGECONFIG[install_demo] = "-Dinstall_demo=true,-Dinstall_demo=false"
+PACKAGECONFIG[gtk+3] = "-Dgtk=enabled,-Dgtk=disabled,gtk+3"
 
 inherit meson pkgconfig