diff mbox series

[v2] wayland: consider pkgconfig sysroot for pkgdatadir

Message ID 20231011191959.3666657-1-cordlandwehr@kde.org
State Accepted, archived
Commit 428ffec520ff25b2a29d506d7af9e6ba8a150d8f
Headers show
Series [v2] wayland: consider pkgconfig sysroot for pkgdatadir | expand

Commit Message

Andreas Cord-Landwehr Oct. 11, 2023, 7:19 p.m. UTC
Fix pkgconfig find calls to find wayland protocol XML files, which are
installed into /usr/share/wayland/. This patch fixes specifically the
call `pkg-config --variable=pkgdatadir wayland-client` to locate the
folder containing wayland.xml. Without the patch, only the host system's
data dir /usr/share/wayland is reported (and that only when
wayland-protocols dev package is available) thus leaking a path from the
host system into the recipe build.

Access to wayland.xml is required by projects that generate wayland API
via waylandscanner like KDE's kwin or layer-shell-qt.

See further details of upstream discussion in:
https://gitlab.freedesktop.org/wayland/wayland/-/merge_requests/102

Signed-off-by: Andreas Cord-Landwehr <cordlandwehr@kde.org>
---
 ...der-pkgconfig-sysroot-for-pkgdatadir.patch | 46 +++++++++++++++++++
 .../wayland/wayland_1.22.0.bb                 |  1 +
 2 files changed, 47 insertions(+)
 create mode 100644 meta/recipes-graphics/wayland/wayland/0002-Consider-pkgconfig-sysroot-for-pkgdatadir.patch

Comments

Trevor Gamblin Oct. 11, 2023, 8:17 p.m. UTC | #1
On 2023-10-11 15:19, Andreas Cord-Landwehr wrote:
> Fix pkgconfig find calls to find wayland protocol XML files, which are
> installed into /usr/share/wayland/. This patch fixes specifically the
> call `pkg-config --variable=pkgdatadir wayland-client` to locate the
> folder containing wayland.xml. Without the patch, only the host system's
> data dir /usr/share/wayland is reported (and that only when
> wayland-protocols dev package is available) thus leaking a path from the
> host system into the recipe build.
>
> Access to wayland.xml is required by projects that generate wayland API
> via waylandscanner like KDE's kwin or layer-shell-qt.
>
> See further details of upstream discussion in:
> https://gitlab.freedesktop.org/wayland/wayland/-/merge_requests/102
>
> Signed-off-by: Andreas Cord-Landwehr <cordlandwehr@kde.org>
> ---
>   ...der-pkgconfig-sysroot-for-pkgdatadir.patch | 46 +++++++++++++++++++
>   .../wayland/wayland_1.22.0.bb                 |  1 +
>   2 files changed, 47 insertions(+)
>   create mode 100644 meta/recipes-graphics/wayland/wayland/0002-Consider-pkgconfig-sysroot-for-pkgdatadir.patch
>
> diff --git a/meta/recipes-graphics/wayland/wayland/0002-Consider-pkgconfig-sysroot-for-pkgdatadir.patch b/meta/recipes-graphics/wayland/wayland/0002-Consider-pkgconfig-sysroot-for-pkgdatadir.patch
> new file mode 100644
> index 0000000000..4573bb635a
> --- /dev/null
> +++ b/meta/recipes-graphics/wayland/wayland/0002-Consider-pkgconfig-sysroot-for-pkgdatadir.patch
> @@ -0,0 +1,46 @@
> +From ff8ecbe8891d592e645927659318720f9e190054 Mon Sep 17 00:00:00 2001
> +From: Andreas Cord-Landwehr <cordlandwehr@kde.org>
> +Date: Sun, 6 Feb 2022 17:23:46 +0100
> +Subject: [PATCH] Consider pkgconfig sysroot for pkgdatadir
> +
> +For libs/cflags this is done automatically, but not for manually accessed
> +variables. This matches what wayland-protocols does.
> +
> +Upstream-Status: Submitted [https://gitlab.freedesktop.org/wayland/wayland/-/merge_requests/272]
There should be a Signed-off-by tag here as well. Can you add one and 
resubmit?
> +---
> + src/meson.build | 6 +++---
> + 1 file changed, 3 insertions(+), 3 deletions(-)
> +
> +diff --git a/src/meson.build b/src/meson.build
> +index a8a1d2b..721e151 100644
> +--- a/src/meson.build
> ++++ b/src/meson.build
> +@@ -65,7 +65,7 @@ if get_option('scanner')
> + 		version: meson.project_version(),
> + 		variables: [
> + 			'datarootdir=' + join_paths('${prefix}', get_option('datadir')),
> +-			'pkgdatadir=' + join_paths('${datarootdir}', meson.project_name()),
> ++			'pkgdatadir=' + join_paths('${pc_sysrootdir}${datarootdir}', meson.project_name()),
> + 			'bindir=' + join_paths('${prefix}', get_option('bindir')),
> + 			'wayland_scanner=${bindir}/wayland-scanner'
> + 		],
> +@@ -211,7 +211,7 @@ if get_option('libraries')
> + 		filebase: 'wayland-server',
> + 		variables: [
> + 			'datarootdir=' + join_paths('${prefix}', get_option('datadir')),
> +-			'pkgdatadir=' + join_paths('${datarootdir}', meson.project_name())
> ++			'pkgdatadir=' + join_paths('${pc_sysrootdir}${datarootdir}', meson.project_name())
> + 		]
> + 	)
> +
> +@@ -250,7 +250,7 @@ if get_option('libraries')
> + 		filebase: 'wayland-client',
> + 		variables: [
> + 			'datarootdir=' + join_paths('${prefix}', get_option('datadir')),
> +-			'pkgdatadir=' + join_paths('${datarootdir}', meson.project_name())
> ++			'pkgdatadir=' + join_paths('${pc_sysrootdir}${datarootdir}', meson.project_name())
> + 		]
> + 	)
> +
> +--
> +2.37.2
> diff --git a/meta/recipes-graphics/wayland/wayland_1.22.0.bb b/meta/recipes-graphics/wayland/wayland_1.22.0.bb
> index 26bad580eb..17e4a0cd98 100644
> --- a/meta/recipes-graphics/wayland/wayland_1.22.0.bb
> +++ b/meta/recipes-graphics/wayland/wayland_1.22.0.bb
> @@ -15,6 +15,7 @@ DEPENDS = "expat libffi wayland-native"
>   SRC_URI = "https://gitlab.freedesktop.org/wayland/wayland/-/releases/${PV}/downloads/${BPN}-${PV}.tar.xz \
>              file://run-ptest \
>              file://0001-build-Fix-strndup-detection-on-MinGW.patch \
> +           file://0002-Consider-pkgconfig-sysroot-for-pkgdatadir.patch \
>              "
>   SRC_URI[sha256sum] = "1540af1ea698a471c2d8e9d288332c7e0fd360c8f1d12936ebb7e7cbc2425842"
>   
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#188970): https://lists.openembedded.org/g/openembedded-core/message/188970
> Mute This Topic: https://lists.openembedded.org/mt/101904034/7611679
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [tgamblin@baylibre.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
diff mbox series

Patch

diff --git a/meta/recipes-graphics/wayland/wayland/0002-Consider-pkgconfig-sysroot-for-pkgdatadir.patch b/meta/recipes-graphics/wayland/wayland/0002-Consider-pkgconfig-sysroot-for-pkgdatadir.patch
new file mode 100644
index 0000000000..4573bb635a
--- /dev/null
+++ b/meta/recipes-graphics/wayland/wayland/0002-Consider-pkgconfig-sysroot-for-pkgdatadir.patch
@@ -0,0 +1,46 @@ 
+From ff8ecbe8891d592e645927659318720f9e190054 Mon Sep 17 00:00:00 2001
+From: Andreas Cord-Landwehr <cordlandwehr@kde.org>
+Date: Sun, 6 Feb 2022 17:23:46 +0100
+Subject: [PATCH] Consider pkgconfig sysroot for pkgdatadir
+
+For libs/cflags this is done automatically, but not for manually accessed
+variables. This matches what wayland-protocols does.
+
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/wayland/wayland/-/merge_requests/272]
+---
+ src/meson.build | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/meson.build b/src/meson.build
+index a8a1d2b..721e151 100644
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -65,7 +65,7 @@ if get_option('scanner')
+ 		version: meson.project_version(),
+ 		variables: [
+ 			'datarootdir=' + join_paths('${prefix}', get_option('datadir')),
+-			'pkgdatadir=' + join_paths('${datarootdir}', meson.project_name()),
++			'pkgdatadir=' + join_paths('${pc_sysrootdir}${datarootdir}', meson.project_name()),
+ 			'bindir=' + join_paths('${prefix}', get_option('bindir')),
+ 			'wayland_scanner=${bindir}/wayland-scanner'
+ 		],
+@@ -211,7 +211,7 @@ if get_option('libraries')
+ 		filebase: 'wayland-server',
+ 		variables: [
+ 			'datarootdir=' + join_paths('${prefix}', get_option('datadir')),
+-			'pkgdatadir=' + join_paths('${datarootdir}', meson.project_name())
++			'pkgdatadir=' + join_paths('${pc_sysrootdir}${datarootdir}', meson.project_name())
+ 		]
+ 	)
+
+@@ -250,7 +250,7 @@ if get_option('libraries')
+ 		filebase: 'wayland-client',
+ 		variables: [
+ 			'datarootdir=' + join_paths('${prefix}', get_option('datadir')),
+-			'pkgdatadir=' + join_paths('${datarootdir}', meson.project_name())
++			'pkgdatadir=' + join_paths('${pc_sysrootdir}${datarootdir}', meson.project_name())
+ 		]
+ 	)
+
+--
+2.37.2
diff --git a/meta/recipes-graphics/wayland/wayland_1.22.0.bb b/meta/recipes-graphics/wayland/wayland_1.22.0.bb
index 26bad580eb..17e4a0cd98 100644
--- a/meta/recipes-graphics/wayland/wayland_1.22.0.bb
+++ b/meta/recipes-graphics/wayland/wayland_1.22.0.bb
@@ -15,6 +15,7 @@  DEPENDS = "expat libffi wayland-native"
 SRC_URI = "https://gitlab.freedesktop.org/wayland/wayland/-/releases/${PV}/downloads/${BPN}-${PV}.tar.xz \
            file://run-ptest \
            file://0001-build-Fix-strndup-detection-on-MinGW.patch \
+           file://0002-Consider-pkgconfig-sysroot-for-pkgdatadir.patch \
            "
 SRC_URI[sha256sum] = "1540af1ea698a471c2d8e9d288332c7e0fd360c8f1d12936ebb7e7cbc2425842"