src/remote/meson.build does not create a dependency on
the generated lxc_protocol.h for remote_daemon.c.  Restructure
how this file is generated to allow the dependency.

Signed-off-by: Joe Slater <[email protected]>
---
 .../libvirt/libvirt/lxc_protocol.patch        | 104 ++++++++++++++++++
 recipes-extended/libvirt/libvirt_7.2.0.bb     |   1 +
 2 files changed, 105 insertions(+)
 create mode 100644 recipes-extended/libvirt/libvirt/lxc_protocol.patch

diff --git a/recipes-extended/libvirt/libvirt/lxc_protocol.patch 
b/recipes-extended/libvirt/libvirt/lxc_protocol.patch
new file mode 100644
index 00000000..595c3fe4
--- /dev/null
+++ b/recipes-extended/libvirt/libvirt/lxc_protocol.patch
@@ -0,0 +1,104 @@
+From 38af66c1a9c4cdeb256eeaf563c6807757c370ce Mon Sep 17 00:00:00 2001
+From: Joe Slater <[email protected]>
+Date: Wed, 9 Mar 2022 23:17:33 +0000
+Subject: [PATCH] working commit
+
+remote_daemon.c and others need the generated header lxc_protocol.h,
+but do not have it as a dependency in meson.build.  This means that
+builds will randomly (ok, very occasionally) fail.  Restructure how the
+header is built so that remote_daemon can have it as a dependency.
+
+Upstream-Status: Pending
+
+Signed-off-by: Joe Slater <[email protected]>
+
+---
+ src/remote/meson.build | 48 ++++++++++++++++++++++++------------------
+ 1 file changed, 28 insertions(+), 20 deletions(-)
+
+diff --git a/src/remote/meson.build b/src/remote/meson.build
+index 0a18826..31a30ee 100644
+--- a/src/remote/meson.build
++++ b/src/remote/meson.build
+@@ -1,27 +1,11 @@
+-remote_driver_sources = [
+-  'remote_driver.c',
+-  'remote_sockets.c',
+-]
+-
+-remote_driver_generated = []
++remote_xxx_generated = []
+ 
+ foreach name : [ 'remote', 'qemu', 'lxc' ]
+-  client_bodies_h = '@0@_client_bodies.h'.format(name)
+   protocol_c = '@0@_protocol.c'.format(name)
+   protocol_h = '@0@_protocol.h'.format(name)
+   protocol_x = '@0@_protocol.x'.format(name)
+ 
+-  remote_driver_generated += custom_target(
+-    client_bodies_h,
+-    input: protocol_x,
+-    output: client_bodies_h,
+-    command: [
+-      gendispatch_prog, '--mode=client', name, name.to_upper(), '@INPUT@',
+-    ],
+-    capture: true,
+-  )
+-
+-  remote_driver_generated += custom_target(
++  remote_xxx_generated += custom_target(
+     protocol_h,
+     input: protocol_x,
+     output: protocol_h,
+@@ -30,7 +14,7 @@ foreach name : [ 'remote', 'qemu', 'lxc' ]
+     ],
+   )
+ 
+-  remote_driver_generated += custom_target(
++  remote_xxx_generated += custom_target(
+     protocol_c,
+     input: protocol_x,
+     output: protocol_c,
+@@ -42,6 +26,30 @@ foreach name : [ 'remote', 'qemu', 'lxc' ]
+   rpc_probe_files += files(protocol_x)
+ endforeach
+ 
++
++remote_driver_sources = [
++  'remote_driver.c',
++  'remote_sockets.c',
++]
++
++remote_driver_generated =remote_xxx_generated
++
++foreach name : [ 'remote', 'qemu', 'lxc' ]
++  client_bodies_h = '@0@_client_bodies.h'.format(name)
++  protocol_x = '@0@_protocol.x'.format(name)
++
++  remote_driver_generated += custom_target(
++    client_bodies_h,
++    input: protocol_x,
++    output: client_bodies_h,
++    command: [
++      gendispatch_prog, '--mode=client', name, name.to_upper(), '@INPUT@',
++    ],
++    capture: true,
++  )
++
++endforeach
++
+ remote_daemon_sources = files(
+   'remote_daemon.c',
+   'remote_daemon_config.c',
+@@ -49,7 +57,7 @@ remote_daemon_sources = files(
+   'remote_daemon_stream.c',
+ )
+ 
+-remote_daemon_generated = []
++remote_daemon_generated = remote_xxx_generated
+ 
+ virt_ssh_helper_sources = files(
+   'remote_sockets.c',
+-- 
+2.32.0
+
diff --git a/recipes-extended/libvirt/libvirt_7.2.0.bb 
b/recipes-extended/libvirt/libvirt_7.2.0.bb
index 5ad7d59e..04c66eb5 100644
--- a/recipes-extended/libvirt/libvirt_7.2.0.bb
+++ b/recipes-extended/libvirt/libvirt_7.2.0.bb
@@ -31,6 +31,7 @@ SRC_URI = 
"http://libvirt.org/sources/libvirt-${PV}.tar.xz;name=libvirt \
            file://0002-meson-Fix-compatibility-with-Meson-0.58.patch \
            file://0001-security-fix-SELinux-label-generation-logic.patch \
            
file://0001-storage_driver-Unlock-object-on-ACL-fail-in-storageP.patch \
+           file://lxc_protocol.patch \
           "
 
 SRC_URI[libvirt.md5sum] = "92044b629216e44adce63224970a54a3"
-- 
2.35.1

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#162996): 
https://lists.openembedded.org/g/openembedded-core/message/162996
Mute This Topic: https://lists.openembedded.org/mt/89676990/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to