[OE-core] [PATCH] qemu-system-native: disable options not included in extended tarball

Jeremy A. Puhlman jpuhlman at mvista.com
Thu Mar 19 22:44:50 UTC 2020


From: Jeremy Puhlman <jpuhlman at mvista.com>

* Add PACKAGECONFIG option for xkbcommon
qemu-keymap.c:16:10: fatal error: xkbcommon/xkbcommon.h: No such file or directory

* Add PACKAGECONFIG option and patch for libudev
commands-posix.c:53:10: fatal error: libudev.h: No such file or directory

* Add PACKAGECONFIG option for libxml2
util/osdep.c:136: undefined reference to `fcntl64'

- Without specifying libxml2, configure searches the system and pulls in the system
  libxml2 if it is present. In the process it adds -L/usr/lib64 which causes the
  system libc to be linked instead of the one from the extended tarball.

* Specifically remove xkbcommon and libudev from qemu-system-native PACKAGECONFIG

None of the above libraries appear to be included in the depends for any of the qemu
builds, so if they are getting linked in, its probably not intentionally.

Signed-off-by: Jeremy Puhlman <jpuhlman at mvista.com>
---
 .../qemu/qemu-system-native_4.2.0.bb               |  3 +++
 meta/recipes-devtools/qemu/qemu.inc                |  4 +++
 .../qemu/qemu/0001-Add-enable-disable-udev.patch   | 29 ++++++++++++++++++++++
 3 files changed, 36 insertions(+)
 create mode 100644 meta/recipes-devtools/qemu/qemu/0001-Add-enable-disable-udev.patch

diff --git a/meta/recipes-devtools/qemu/qemu-system-native_4.2.0.bb b/meta/recipes-devtools/qemu/qemu-system-native_4.2.0.bb
index d83ee59375..f3ceaa1003 100644
--- a/meta/recipes-devtools/qemu/qemu-system-native_4.2.0.bb
+++ b/meta/recipes-devtools/qemu/qemu-system-native_4.2.0.bb
@@ -10,6 +10,9 @@ DEPENDS = "glib-2.0-native zlib-native pixman-native qemu-native bison-native"
 EXTRA_OECONF_append = " --target-list=${@get_qemu_system_target_list(d)}"
 
 PACKAGECONFIG ??= "fdt alsa kvm"
+# Do not exist in buildtools-extended-tarball"
+PACKAGECONFIG_remove = "xkbcommon"
+PACKAGECONFIG_remove = "libudev"
 
 # Handle distros such as CentOS 5 32-bit that do not have kvm support
 PACKAGECONFIG_remove = "${@'kvm' if not os.path.exists('/usr/include/linux/kvm.h') else ''}"
diff --git a/meta/recipes-devtools/qemu/qemu.inc b/meta/recipes-devtools/qemu/qemu.inc
index 3ce14d9fa0..7cf436783d 100644
--- a/meta/recipes-devtools/qemu/qemu.inc
+++ b/meta/recipes-devtools/qemu/qemu.inc
@@ -33,6 +33,7 @@ SRC_URI = "https://download.qemu.org/${BPN}-${PV}.tar.xz \
            file://CVE-2020-7039-1.patch \
            file://CVE-2020-7039-2.patch \
            file://CVE-2020-7039-3.patch \
+           file://0001-Add-enable-disable-udev.patch \
 	   "
 UPSTREAM_CHECK_REGEX = "qemu-(?P<pver>\d+(\.\d+)+)\.tar"
 
@@ -172,6 +173,9 @@ PACKAGECONFIG[spice] = "--enable-spice,--disable-spice,spice"
 PACKAGECONFIG[usb-redir] = "--enable-usb-redir,--disable-usb-redir,usbredir"
 PACKAGECONFIG[snappy] = "--enable-snappy,--disable-snappy,snappy"
 PACKAGECONFIG[glusterfs] = "--enable-glusterfs,--disable-glusterfs"
+PACKAGECONFIG[xkbcommon] = "--enable-xkbcommon,--disable-xkbcommon,libxkbcommon"
+PACKAGECONFIG[libudev] = "--enable-libudev,--disable-libudev,eudev"
+#PACKAGECONFIG[libxml2] = "--enable-libxml2,--disable-libxml2,libxml2"
 
 INSANE_SKIP_${PN} = "arch"
 
diff --git a/meta/recipes-devtools/qemu/qemu/0001-Add-enable-disable-udev.patch b/meta/recipes-devtools/qemu/qemu/0001-Add-enable-disable-udev.patch
new file mode 100644
index 0000000000..c2c5849d65
--- /dev/null
+++ b/meta/recipes-devtools/qemu/qemu/0001-Add-enable-disable-udev.patch
@@ -0,0 +1,29 @@
+From a471cf4e4c73350e090eb2cd87ec959d138012e5 Mon Sep 17 00:00:00 2001
+From: Jeremy Puhlman <jpuhlman at mvista.com>
+Date: Thu, 19 Mar 2020 11:54:26 -0700
+Subject: [PATCH] Add enable/disable libudev
+
+Upstream-Status: Pending
+Signed-off-by: Jeremy Puhlman <jpuhlman at mvista.com>
+---
+ configure | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/configure b/configure
+index cac271c..bd116eb 100755
+--- a/configure
++++ b/configure
+@@ -1539,6 +1539,10 @@ for opt do
+   ;;
+   --disable-plugins) plugins="no"
+   ;;
++  --enable-libudev) libudev="yes"
++  ;;
++  --disable-libudev) libudev="no"
++  ;;
+   *)
+       echo "ERROR: unknown option $opt"
+       echo "Try '$0 --help' for more information"
+-- 
+1.8.3.1
+
-- 
2.13.3



More information about the Openembedded-core mailing list