diff mbox series

[meta-gnome,v2] mutter: fix profiler PACKAGECONFIG

Message ID 20250211133155.4081059-1-skandigraun@gmail.com
State New
Headers show
Series [meta-gnome,v2] mutter: fix profiler PACKAGECONFIG | expand

Commit Message

Gyorgy Sarvari Feb. 11, 2025, 1:31 p.m. UTC
In case "profiler" PACKAGECONFIG is enabled, the build fails with
the following error:

| ninja: error: '/usr/share/dbus-1/interfaces/org.gnome.Sysprof3.Profiler.xml', needed by 'src/meta-dbus-sysprof3-profiler.c', missing and no known rule to make it

meson.build script is looking explicitly for a required file using the
sysroot of the build system instead of ${RECIPE_SYSROOT}. To avoid this,
patch meson.build to prefix this path with ${RECIPE_SYSROOT}.

Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
---
 ...-Dont-use-system-sysprof-dbus-folder.patch | 35 +++++++++++++++++++
 .../recipes-gnome/mutter/mutter_47.4.bb       |  2 ++
 2 files changed, 37 insertions(+)
 create mode 100644 meta-gnome/recipes-gnome/mutter/files/0001-Dont-use-system-sysprof-dbus-folder.patch

Comments

Khem Raj Feb. 11, 2025, 4:26 p.m. UTC | #1
I have 47.5 staged in master-next, do we need this patch on 47.5 ? if
we do then please rebase it on master-next and resend please.

On Tue, Feb 11, 2025 at 5:32 AM Gyorgy Sarvari via
lists.openembedded.org <skandigraun=gmail.com@lists.openembedded.org>
wrote:
>
> In case "profiler" PACKAGECONFIG is enabled, the build fails with
> the following error:
>
> | ninja: error: '/usr/share/dbus-1/interfaces/org.gnome.Sysprof3.Profiler.xml', needed by 'src/meta-dbus-sysprof3-profiler.c', missing and no known rule to make it
>
> meson.build script is looking explicitly for a required file using the
> sysroot of the build system instead of ${RECIPE_SYSROOT}. To avoid this,
> patch meson.build to prefix this path with ${RECIPE_SYSROOT}.
>
> Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
> ---
>  ...-Dont-use-system-sysprof-dbus-folder.patch | 35 +++++++++++++++++++
>  .../recipes-gnome/mutter/mutter_47.4.bb       |  2 ++
>  2 files changed, 37 insertions(+)
>  create mode 100644 meta-gnome/recipes-gnome/mutter/files/0001-Dont-use-system-sysprof-dbus-folder.patch
>
> diff --git a/meta-gnome/recipes-gnome/mutter/files/0001-Dont-use-system-sysprof-dbus-folder.patch b/meta-gnome/recipes-gnome/mutter/files/0001-Dont-use-system-sysprof-dbus-folder.patch
> new file mode 100644
> index 000000000..2f09c3299
> --- /dev/null
> +++ b/meta-gnome/recipes-gnome/mutter/files/0001-Dont-use-system-sysprof-dbus-folder.patch
> @@ -0,0 +1,35 @@
> +From 790177e2a89aa0710b570d595223bdb511241c56 Mon Sep 17 00:00:00 2001
> +From: Gyorgy Sarvari <skandigraun@gmail.com>
> +Date: Tue, 11 Feb 2025 13:39:54 +0100
> +Subject: [PATCH] Don't use system sysprof dbus folder
> +
> +In case Mutter is built with profiler support, it requires
> +org.gnome.Sysprof3.Profiler.xml file to be available - however
> +the meson build file is trying to access it on the build machine's
> +system ($datadir/dbus-1/interfaces) instead of searching for it
> +in the $RECIPE_SYSROOT.
> +
> +To ensure that it looks for this file in the correct folder, prefix
> +the search path with the value of the sys_root property, which is set
> +in the meson.cross file (by meson.bbclass).
> +
> +Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
> +
> +Upstream-Status: Inappropriate [oe-specific: only related to cross-compiling]
> +---
> + meson.build | 2 +-
> + 1 file changed, 1 insertion(+), 1 deletion(-)
> +
> +diff --git a/meson.build b/meson.build
> +index 551cb23..5199be6 100644
> +--- a/meson.build
> ++++ b/meson.build
> +@@ -446,7 +446,7 @@ if have_profiler
> +
> +   if libsysprof_capture_dep.type_name() == 'pkgconfig'
> +     sysprof_dep = dependency('sysprof-6', 'sysprof-4')
> +-    sysprof_dbus_interfaces_dir = sysprof_dep.get_variable('datadir') / 'dbus-1' / 'interfaces'
> ++    sysprof_dbus_interfaces_dir = meson.get_external_property('sys_root') + sysprof_dep.get_variable('datadir') / 'dbus-1' / 'interfaces'
> +   else
> +     sysprof_dbus_interfaces_dir = mutter_srcdir / 'subprojects' / 'sysprof' / 'src'
> +   endif
> diff --git a/meta-gnome/recipes-gnome/mutter/mutter_47.4.bb b/meta-gnome/recipes-gnome/mutter/mutter_47.4.bb
> index 30301dac2..fe30aa60c 100644
> --- a/meta-gnome/recipes-gnome/mutter/mutter_47.4.bb
> +++ b/meta-gnome/recipes-gnome/mutter/mutter_47.4.bb
> @@ -24,6 +24,8 @@ DEPENDS = " \
>
>  inherit gnomebase gsettings gobject-introspection gettext features_check
>
> +SRC_URI += "file://0001-Dont-use-system-sysprof-dbus-folder.patch"
> +
>  SRC_URI[archive.sha256sum] = "f531fc00e6ec6dbb570b3bf942b6490f7a93df91c4c267a918b4d2afe9211bda"
>
>  # x11 is still manadatory - see meson.build
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#115428): https://lists.openembedded.org/g/openembedded-devel/message/115428
> Mute This Topic: https://lists.openembedded.org/mt/111121898/1997914
> Group Owner: openembedded-devel+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [raj.khem@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
diff mbox series

Patch

diff --git a/meta-gnome/recipes-gnome/mutter/files/0001-Dont-use-system-sysprof-dbus-folder.patch b/meta-gnome/recipes-gnome/mutter/files/0001-Dont-use-system-sysprof-dbus-folder.patch
new file mode 100644
index 000000000..2f09c3299
--- /dev/null
+++ b/meta-gnome/recipes-gnome/mutter/files/0001-Dont-use-system-sysprof-dbus-folder.patch
@@ -0,0 +1,35 @@ 
+From 790177e2a89aa0710b570d595223bdb511241c56 Mon Sep 17 00:00:00 2001
+From: Gyorgy Sarvari <skandigraun@gmail.com>
+Date: Tue, 11 Feb 2025 13:39:54 +0100
+Subject: [PATCH] Don't use system sysprof dbus folder
+
+In case Mutter is built with profiler support, it requires
+org.gnome.Sysprof3.Profiler.xml file to be available - however
+the meson build file is trying to access it on the build machine's
+system ($datadir/dbus-1/interfaces) instead of searching for it
+in the $RECIPE_SYSROOT.
+
+To ensure that it looks for this file in the correct folder, prefix
+the search path with the value of the sys_root property, which is set 
+in the meson.cross file (by meson.bbclass).
+
+Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
+
+Upstream-Status: Inappropriate [oe-specific: only related to cross-compiling]
+---
+ meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 551cb23..5199be6 100644
+--- a/meson.build
++++ b/meson.build
+@@ -446,7 +446,7 @@ if have_profiler
+ 
+   if libsysprof_capture_dep.type_name() == 'pkgconfig'
+     sysprof_dep = dependency('sysprof-6', 'sysprof-4')
+-    sysprof_dbus_interfaces_dir = sysprof_dep.get_variable('datadir') / 'dbus-1' / 'interfaces'
++    sysprof_dbus_interfaces_dir = meson.get_external_property('sys_root') + sysprof_dep.get_variable('datadir') / 'dbus-1' / 'interfaces'
+   else
+     sysprof_dbus_interfaces_dir = mutter_srcdir / 'subprojects' / 'sysprof' / 'src'
+   endif
diff --git a/meta-gnome/recipes-gnome/mutter/mutter_47.4.bb b/meta-gnome/recipes-gnome/mutter/mutter_47.4.bb
index 30301dac2..fe30aa60c 100644
--- a/meta-gnome/recipes-gnome/mutter/mutter_47.4.bb
+++ b/meta-gnome/recipes-gnome/mutter/mutter_47.4.bb
@@ -24,6 +24,8 @@  DEPENDS = " \
 
 inherit gnomebase gsettings gobject-introspection gettext features_check
 
+SRC_URI += "file://0001-Dont-use-system-sysprof-dbus-folder.patch"
+
 SRC_URI[archive.sha256sum] = "f531fc00e6ec6dbb570b3bf942b6490f7a93df91c4c267a918b4d2afe9211bda"
 
 # x11 is still manadatory - see meson.build