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