* [PATCH] ui: Link dbus-display with pixman again
@ 2023-06-30 23:48 Philippe Mathieu-Daudé
2023-07-03 9:21 ` Marc-André Lureau
0 siblings, 1 reply; 3+ messages in thread
From: Philippe Mathieu-Daudé @ 2023-06-30 23:48 UTC (permalink / raw)
To: qemu-devel
Cc: Marc-André Lureau, BALATON Zoltan, Gerd Hoffmann,
Richard Henderson, Philippe Mathieu-Daudé, Frederic Bezies
Since its introduction in commit 142ca628a7 ("ui: add a D-Bus
display backend"), dbus_display1 depends on pixman.
Unfortunatly the refactor commit 1222070e77 ("meson: ensure
dbus-display generated code is built before other units")
dropped that dependency. Recently commit 6cc5a6159a ("ui/dbus:
win32 support") expose this problem:
In file included from include/ui/console.h:4,
from ui/dbus.h:31,
from ../audio/dbusaudio.c:36:
include/ui/qemu-pixman.h:12:10: fatal error: pixman.h: No such file or directory
12 | #include <pixman.h>
| ^~~~~~~~~~
Restore the missing dependency on pixman.
Reported-by: Frederic Bezies <fredbezies@gmail.com>
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1739
Fixes: 1222070e77 ("meson: ensure dbus-display generated code is built before other units")
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
ui/meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/ui/meson.build b/ui/meson.build
index d81609fb0e..cb178dd095 100644
--- a/ui/meson.build
+++ b/ui/meson.build
@@ -90,7 +90,7 @@ if dbus_display
'--interface-prefix', 'org.qemu.',
'--c-namespace', 'QemuDBus',
'--generate-c-code', '@BASENAME@'])
- dbus_display1_lib = static_library('dbus-display1', dbus_display1, dependencies: gio)
+ dbus_display1_lib = static_library('dbus-display1', dbus_display1, dependencies: [gio, pixman])
dbus_display1_dep = declare_dependency(link_with: dbus_display1_lib, include_directories: include_directories('.'))
dbus_ss.add(when: [gio, pixman, dbus_display1_dep],
if_true: [files(
--
2.38.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] ui: Link dbus-display with pixman again
2023-06-30 23:48 [PATCH] ui: Link dbus-display with pixman again Philippe Mathieu-Daudé
@ 2023-07-03 9:21 ` Marc-André Lureau
2023-07-03 9:29 ` Richard Henderson
0 siblings, 1 reply; 3+ messages in thread
From: Marc-André Lureau @ 2023-07-03 9:21 UTC (permalink / raw)
To: Philippe Mathieu-Daudé
Cc: qemu-devel, BALATON Zoltan, Gerd Hoffmann, Richard Henderson,
Frederic Bezies
[-- Attachment #1: Type: text/plain, Size: 2561 bytes --]
Hi
On Sat, Jul 1, 2023 at 1:49 AM Philippe Mathieu-Daudé <philmd@linaro.org>
wrote:
> Since its introduction in commit 142ca628a7 ("ui: add a D-Bus
> display backend"), dbus_display1 depends on pixman.
> Unfortunatly the refactor commit 1222070e77 ("meson: ensure
> dbus-display generated code is built before other units")
> dropped that dependency. Recently commit 6cc5a6159a ("ui/dbus:
> win32 support") expose this problem:
>
> In file included from include/ui/console.h:4,
> from ui/dbus.h:31,
> from ../audio/dbusaudio.c:36:
> include/ui/qemu-pixman.h:12:10: fatal error: pixman.h: No such file or
> directory
> 12 | #include <pixman.h>
> | ^~~~~~~~~~
>
> Restore the missing dependency on pixman.
>
I fail to understand how this would help. dbus-display1 unit is pure
GIO/GDBus code, no pixman involved. The derived library dependency is then
used to build and link the dbus ui/ module.
audio/dbus currently requires pixman because it compiles against units from
ui/dbus, which introduces some indirect pixman dependency from ui/console.
It would be worth working on making pixman optional altogether (
https://gitlab.com/qemu-project/qemu/-/issues/1172), I will try to look at
it.
thanks
> Reported-by: Frederic Bezies <fredbezies@gmail.com>
> Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1739
> Fixes: 1222070e77 ("meson: ensure dbus-display generated code is built
> before other units")
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
> ui/meson.build | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/ui/meson.build b/ui/meson.build
> index d81609fb0e..cb178dd095 100644
> --- a/ui/meson.build
> +++ b/ui/meson.build
> @@ -90,7 +90,7 @@ if dbus_display
> '--interface-prefix',
> 'org.qemu.',
> '--c-namespace', 'QemuDBus',
> '--generate-c-code', '@BASENAME@
> '])
> - dbus_display1_lib = static_library('dbus-display1', dbus_display1,
> dependencies: gio)
> + dbus_display1_lib = static_library('dbus-display1', dbus_display1,
> dependencies: [gio, pixman])
> dbus_display1_dep = declare_dependency(link_with: dbus_display1_lib,
> include_directories: include_directories('.'))
> dbus_ss.add(when: [gio, pixman, dbus_display1_dep],
> if_true: [files(
> --
> 2.38.1
>
>
>
--
Marc-André Lureau
[-- Attachment #2: Type: text/html, Size: 3787 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] ui: Link dbus-display with pixman again
2023-07-03 9:21 ` Marc-André Lureau
@ 2023-07-03 9:29 ` Richard Henderson
0 siblings, 0 replies; 3+ messages in thread
From: Richard Henderson @ 2023-07-03 9:29 UTC (permalink / raw)
To: Marc-André Lureau, Philippe Mathieu-Daudé
Cc: qemu-devel, BALATON Zoltan, Gerd Hoffmann, Frederic Bezies
On 7/3/23 11:21, Marc-André Lureau wrote:
> Hi
>
> On Sat, Jul 1, 2023 at 1:49 AM Philippe Mathieu-Daudé <philmd@linaro.org
> <mailto:philmd@linaro.org>> wrote:
>
> Since its introduction in commit 142ca628a7 ("ui: add a D-Bus
> display backend"), dbus_display1 depends on pixman.
> Unfortunatly the refactor commit 1222070e77 ("meson: ensure
> dbus-display generated code is built before other units")
> dropped that dependency. Recently commit 6cc5a6159a ("ui/dbus:
> win32 support") expose this problem:
>
> In file included from include/ui/console.h:4,
> from ui/dbus.h:31,
> from ../audio/dbusaudio.c:36:
> include/ui/qemu-pixman.h:12:10: fatal error: pixman.h: No such file or directory
> 12 | #include <pixman.h>
> | ^~~~~~~~~~
>
> Restore the missing dependency on pixman.
>
>
> I fail to understand how this would help. dbus-display1 unit is pure GIO/GDBus code, no
> pixman involved. The derived library dependency is then used to build and link the dbus
> ui/ module.
meson dependencies
> - dbus_display1_lib = static_library('dbus-display1', dbus_display1, dependencies: gio)
> + dbus_display1_lib = static_library('dbus-display1', dbus_display1, dependencies:
> [gio, pixman])
like so, also include the set of -Iinclude-path-options to use when building the items
that use it. Therefore, for the moment, Phil is correct.
While dbus-display1 might not use pixman itself, ui/dbus.h certainly does.
Perhaps the usage in ui/dbus.h is the greater mistake.
r~
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2023-07-03 9:29 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-06-30 23:48 [PATCH] ui: Link dbus-display with pixman again Philippe Mathieu-Daudé
2023-07-03 9:21 ` Marc-André Lureau
2023-07-03 9:29 ` Richard Henderson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).