aboutsummaryrefslogtreecommitdiffstats
path: root/recipes-extended
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-extended')
-rw-r--r--recipes-extended/ceph/ceph/0001-avoid-to_string-error.patch73
-rw-r--r--recipes-extended/ceph/ceph/0001-ceph-fix-build-errors-for-cross-compile.patch184
-rw-r--r--recipes-extended/ceph/ceph/0001-cephadm-build.py-avoid-using-python3-from-sysroot-wh.patch43
-rw-r--r--recipes-extended/ceph/ceph/0001-delete-install-layout-deb.patch37
-rw-r--r--recipes-extended/ceph/ceph/0001-fix-host-library-paths-were-used.patch59
-rw-r--r--recipes-extended/ceph/ceph/0001-mgr-require-all-caps-for-pre-octopus-tell-commands.patch100
-rw-r--r--recipes-extended/ceph/ceph/0001-msg-async-ProtocolV2-avoid-AES-GCM-nonce-reuse-vulne.patch256
-rw-r--r--recipes-extended/ceph/ceph/0001-msg-async-crypto_onwire-fix-endianness-of-nonce_t.patch61
-rw-r--r--recipes-extended/ceph/ceph/0001-rgw-EPERM-to-ERR_INVALID_REQUEST.patch33
-rw-r--r--recipes-extended/ceph/ceph/0001-rgw-reject-control-characters-in-response-header-act.patch64
-rw-r--r--recipes-extended/ceph/ceph/0001-rgw-reject-unauthenticated-response-header-actions.patch36
-rw-r--r--recipes-extended/ceph/ceph/0002-mon-enforce-caps-for-pre-octopus-client-tell-command.patch95
-rw-r--r--recipes-extended/ceph/ceph/0003-PendingReleaseNotes-note-about-security-fix.patch31
-rw-r--r--recipes-extended/ceph/ceph/0006-rocksdb-build-with-rocksdb-7.y.z.patch109
-rw-r--r--recipes-extended/ceph/ceph_18.2.2.bb (renamed from recipes-extended/ceph/ceph_15.2.0.bb)111
-rw-r--r--recipes-extended/cloud-init/cloud-init/0001-setup.py-check-for-install-anywhere-in-args.patch33
-rw-r--r--recipes-extended/cloud-init/cloud-init/cloud-init-source-local-lsb-functions.patch66
-rw-r--r--recipes-extended/cloud-init/cloud-init_git.bb73
-rw-r--r--recipes-extended/dev86/dev86/0001-cpp-Makefile-respect-LDFLAGS-when-building-bcc-cpp.patch25
-rw-r--r--recipes-extended/dev86/dev86/0001-cpp-fix-race-writing-token.h-files.patch45
-rw-r--r--recipes-extended/dev86/dev86/0003-cpp-update-token1.tok-to-make-new-gperf-happy-regen..patch30
-rw-r--r--recipes-extended/dev86/dev86/0004-regen-token2.h-token1.h-with-gperf-3.1.patch59
-rw-r--r--recipes-extended/dev86/dev86/cross.patch29
-rw-r--r--recipes-extended/dev86/dev86_0.16.20.bb38
-rw-r--r--recipes-extended/dev86/dev86_git.bb43
-rw-r--r--recipes-extended/diod/diod_1.0.24.bb23
-rw-r--r--recipes-extended/diod/files/0001-build-Find-lua-with-pkg-config.patch50
-rw-r--r--recipes-extended/diod/files/0001-build-allow-builds-to-work-with-separate-build-dir.patch126
-rw-r--r--recipes-extended/diod/files/0001-diod-ops.c-add-header-file-for-makedev.patch40
-rw-r--r--recipes-extended/diod/files/0001-drod-add-option-to-config-systemddir.patch51
-rw-r--r--recipes-extended/diod/files/0002-auto.diod.in-remove-bashisms.patch47
-rw-r--r--recipes-extended/fuse-overlayfs/fuse-overlayfs/0001-utils-Add-missing-include-on-limits.h.patch36
-rw-r--r--recipes-extended/fuse-overlayfs/fuse-overlayfs_1.9.bb (renamed from recipes-extended/fuse-overlayfs/fuse-overlayfs_0.6.4.bb)9
-rw-r--r--recipes-extended/hyperstart/hyperstart/0001-container.c-Fix-compiler-errors-that-gcc-8.1.0-repor.patch2
-rw-r--r--recipes-extended/hyperstart/hyperstart_git.bb10
-rw-r--r--recipes-extended/images/container-base.bb12
-rw-r--r--recipes-extended/images/kvm-image-minimal.bb3
-rw-r--r--recipes-extended/images/xen-guest-image-minimal.bb10
-rw-r--r--recipes-extended/images/xen-image-minimal.bb63
-rw-r--r--recipes-extended/images/xtf-image.bb34
-rw-r--r--recipes-extended/images/xvisor-image-minimal.bb20
-rw-r--r--recipes-extended/iptables/iptables-meta-virtualization.inc3
-rw-r--r--recipes-extended/ipxe/files/build-be-explicit-about-fcommon-compiler-directive.patch33
-rw-r--r--recipes-extended/ipxe/files/ipxe-fix-hostcc-nopie-cflags.patch2
-rw-r--r--recipes-extended/ipxe/files/ipxe-golan-Add-explicit-type-casts-for-nodnic_queue_pair_.patch2
-rw-r--r--recipes-extended/ipxe/files/ipxe-intel-Avoid-spurious-compiler-warning-on-GCC-10.patch2
-rw-r--r--recipes-extended/ipxe/ipxe_git.bb27
-rw-r--r--recipes-extended/irqbalance/irqbalance.inc7
-rw-r--r--recipes-extended/irqbalance/irqbalance/add-initscript.patch2
-rw-r--r--recipes-extended/irqbalance/irqbalance/irqbalance-Add-status-and-reload-commands.patch2
-rw-r--r--recipes-extended/irqbalance/irqbalance/irqbalanced.service9
-rw-r--r--recipes-extended/irqbalance/irqbalance_git.bb11
-rw-r--r--recipes-extended/kvmtool/files/0001-Avoid-pointers-for-address-of-packed-members.patch39
-rw-r--r--recipes-extended/kvmtool/files/0001-kvmtool-9p-fixed-compilation-error.patch14
-rw-r--r--recipes-extended/kvmtool/files/0002-kvmtool-add-EXTRA_CFLAGS-variable.patch22
-rw-r--r--recipes-extended/kvmtool/files/0003-kvmtool-Werror-disabled.patch25
-rw-r--r--recipes-extended/kvmtool/files/external-crosscompiler.patch38
-rw-r--r--recipes-extended/kvmtool/kvmtool_git.bb (renamed from recipes-extended/kvmtool/kvmtool.bb)9
-rw-r--r--recipes-extended/libibverbs/libibverbs_1.2.1.bb14
-rw-r--r--recipes-extended/libvirt/libvirt-dbus_1.4.1.bb23
-rw-r--r--recipes-extended/libvirt/libvirt-glib/0001-meson.build-allow-crosscompiling-gir-and-doc.patch37
-rw-r--r--recipes-extended/libvirt/libvirt-glib_5.0.0.bb21
-rw-r--r--recipes-extended/libvirt/libvirt-python.inc22
-rw-r--r--recipes-extended/libvirt/libvirt/0001-build-drop-unnecessary-libgnu.la-reference.patch31
-rw-r--r--recipes-extended/libvirt/libvirt/0001-messon.build-remove-build-path-information-to-avoid-.patch55
-rw-r--r--recipes-extended/libvirt/libvirt/0001-prevent-gendispatch.pl-generating-build-path-in-code.patch43
-rw-r--r--recipes-extended/libvirt/libvirt/0001-ptest-Remove-Windows-1252-check-from-esxutilstest.patch2
-rw-r--r--recipes-extended/libvirt/libvirt/0001-to-fix-build-error.patch47
-rw-r--r--recipes-extended/libvirt/libvirt/configure.ac-search-for-rpc-rpc.h-in-the-sysroot.patch34
-rw-r--r--recipes-extended/libvirt/libvirt/install-missing-file.patch50
-rw-r--r--recipes-extended/libvirt/libvirt/libvirt-1.0.3-fix-thread-safety-in-lxc-callback-handling.patch63
-rw-r--r--recipes-extended/libvirt/libvirt/libvirt-use-pkg-config-to-locate-libcap.patch43
-rw-r--r--recipes-extended/libvirt/libvirt/qemu-fix-crash-in-qemuOpen.patch39
-rw-r--r--recipes-extended/libvirt/libvirt/runptest.patch116
-rw-r--r--recipes-extended/libvirt/libvirt/tools-add-libvirt-net-rpc-to-virt-host-validate-when.patch91
-rw-r--r--recipes-extended/libvirt/libvirt_10.0.0.bb334
-rw-r--r--recipes-extended/libvirt/libvirt_6.3.0.bb418
-rw-r--r--recipes-extended/libvmi/files/0001-Build-vbd-only-when-xen-is-enabled.patch76
-rw-r--r--recipes-extended/libvmi/libvmi_git.bb18
-rw-r--r--recipes-extended/nagios/nagios-common.inc10
-rw-r--r--recipes-extended/nagios/nagios-core/eventhandlers_nagioscmd_path.patch2
-rw-r--r--recipes-extended/nagios/nagios-core/nagios-core.service2
-rw-r--r--recipes-extended/nagios/nagios-core_4.4.6.bb (renamed from recipes-extended/nagios/nagios-core_4.4.3.bb)39
-rw-r--r--recipes-extended/nagios/nagios-nrpe/0001-Should-fix-235-nasty_metachars-was-not-being-returne.patch2
-rw-r--r--recipes-extended/nagios/nagios-nrpe/fix-compile-without-openssl.patch2
-rw-r--r--recipes-extended/nagios/nagios-nrpe/fix-configure-uses-host-openssl.patch2
-rw-r--r--recipes-extended/nagios/nagios-nrpe_4.0.2.bb24
-rw-r--r--recipes-extended/nagios/nagios-nsca/nagios-nsca.service2
-rw-r--r--recipes-extended/nagios/nagios-nsca_2.9.2.bb20
-rw-r--r--recipes-extended/nagios/nagios-plugins_2.2.1.bb10
-rw-r--r--recipes-extended/oath/oath/0001-oath-fix-macro-definition-error.patch2
-rw-r--r--recipes-extended/oath/oath_2.6.2.bb4
-rw-r--r--recipes-extended/seabios/seabios/hostcc.patch2
-rw-r--r--recipes-extended/seabios/seabios/python3.patch2
-rw-r--r--recipes-extended/seabios/seabios_1.16.0.bb (renamed from recipes-extended/seabios/seabios_1.13.0.bb)11
-rw-r--r--recipes-extended/upx/libucl/0001-configure.ac-Fix-with-current-autoconf.patch30
-rw-r--r--recipes-extended/upx/libucl/0002-acinclude.m4-Provide-missing-macros.patch383
-rw-r--r--recipes-extended/upx/libucl/Reproducible-build.patch30
-rw-r--r--recipes-extended/upx/libucl/use-static-assert.patch37
-rw-r--r--recipes-extended/upx/libucl_1.03.bb20
-rw-r--r--recipes-extended/upx/upx_git.bb16
-rw-r--r--recipes-extended/uxen/uxen-guest-tools/0001-vm-support-fix-build-for-kernel-s-5.4.patch86
-rw-r--r--recipes-extended/uxen/uxen-guest-tools/0002-vm-support-fix-build-for-kernel-s-5.15.patch48
-rw-r--r--recipes-extended/uxen/uxen-guest-tools/0003-vm-support-fix-build-for-kernel-s-5.14.patch34
-rw-r--r--recipes-extended/uxen/uxen-guest-tools/0004-uxenhc-fix-DMODULE-not-working-on-module-build-comma.patch58
-rw-r--r--recipes-extended/uxen/uxen-guest-tools/fix-Makefile-for-OE-kernel-build.patch2
-rw-r--r--recipes-extended/uxen/uxen-guest-tools_4.1.7.bb22
-rw-r--r--recipes-extended/uxen/uxen-guest-tools_4.1.8.bb26
-rw-r--r--recipes-extended/vgabios/biossums_0.7a.bb37
-rw-r--r--recipes-extended/vgabios/files/build-cc.patch31
-rw-r--r--recipes-extended/vgabios/vgabios_0.7a.bb33
-rw-r--r--recipes-extended/vgabios/vgabios_0.8a.bb25
-rw-r--r--recipes-extended/vhost-device/README.md14
-rw-r--r--recipes-extended/vhost-device/vhost-device-gpio-crates.inc184
-rw-r--r--recipes-extended/vhost-device/vhost-device-gpio_0.1.0.bb22
-rw-r--r--recipes-extended/vhost-device/vhost-device-i2c-crates.inc126
-rw-r--r--recipes-extended/vhost-device/vhost-device-i2c_0.1.0.bb16
-rw-r--r--recipes-extended/vhost-device/vhost-device-rng-crates.inc158
-rw-r--r--recipes-extended/vhost-device/vhost-device-rng_0.1.0.bb17
-rw-r--r--recipes-extended/vhost-device/vhost-device-scsi-crates.inc166
-rw-r--r--recipes-extended/vhost-device/vhost-device-scsi_0.1.0.bb16
-rw-r--r--recipes-extended/vhost-device/vhost-device-vsock-crates.inc258
-rw-r--r--recipes-extended/vhost-device/vhost-device-vsock_0.1.0.bb16
-rw-r--r--recipes-extended/virt-manager/virt-manager/0001-setup.py-move-global-args-to-install-args.patch78
-rw-r--r--recipes-extended/virt-manager/virt-manager_4.1.0.bb54
-rw-r--r--recipes-extended/virt-viewer/virt-viewer_11.0.bb38
-rw-r--r--recipes-extended/virt-what/virt-what_1.21.bb11
-rw-r--r--recipes-extended/virtiofsd/README.md14
-rw-r--r--recipes-extended/virtiofsd/virtiofsd-crates.inc142
-rw-r--r--recipes-extended/virtiofsd/virtiofsd_1.7.0.bb21
-rw-r--r--recipes-extended/xen/README53
-rw-r--r--recipes-extended/xen/files/0001-menuconfig-mconf-cfg-Allow-specification-of-ncurses-location.patch57
-rw-r--r--recipes-extended/xen/files/0001-python-pygrub-pass-DISTUTILS-xen-4.15.patch (renamed from recipes-extended/xen/files/0001-python-pygrub-pass-DISTUTILS-xen-4.14.patch)55
-rw-r--r--recipes-extended/xen/files/0001-python-pygrub-pass-DISTUTILS-xen-4.18.patch43
-rw-r--r--recipes-extended/xen/files/0001-tools-xenstore-xenstored_control.c-correctly-print-t.patch34
-rw-r--r--recipes-extended/xen/files/0001-xen-build-temporarily-inhibit-Werror-4.14.patch26
-rw-r--r--recipes-extended/xen/files/xen-arm64-implement-atomic-fetch-add.patch50
-rw-r--r--recipes-extended/xen/xen-blktap.inc32
-rw-r--r--recipes-extended/xen/xen-hypervisor.inc78
-rw-r--r--recipes-extended/xen/xen-python2.bb71
-rw-r--r--recipes-extended/xen/xen-tools.inc392
-rw-r--r--recipes-extended/xen/xen-tools_4.14.bb19
-rw-r--r--recipes-extended/xen/xen-tools_4.17.bb19
-rw-r--r--recipes-extended/xen/xen-tools_4.18.bb21
-rw-r--r--recipes-extended/xen/xen-tools_git.bb12
-rw-r--r--recipes-extended/xen/xen.inc59
-rw-r--r--recipes-extended/xen/xen_4.14.bb18
-rw-r--r--recipes-extended/xen/xen_4.17.bb22
-rw-r--r--recipes-extended/xen/xen_4.18.bb21
-rw-r--r--recipes-extended/xen/xen_git.bb11
-rw-r--r--recipes-extended/xen/xtf_git.bb56
-rw-r--r--recipes-extended/xvisor/files/0001-build-use-usr-bin-env-for-python-scripts.patch38
-rw-r--r--recipes-extended/xvisor/xvisor-configs.inc24
-rw-r--r--recipes-extended/xvisor/xvisor_git.bb (renamed from recipes-extended/xvisor/xvisor_0.3.0.bb)31
154 files changed, 4731 insertions, 3009 deletions
diff --git a/recipes-extended/ceph/ceph/0001-avoid-to_string-error.patch b/recipes-extended/ceph/ceph/0001-avoid-to_string-error.patch
new file mode 100644
index 00000000..0b4fc984
--- /dev/null
+++ b/recipes-extended/ceph/ceph/0001-avoid-to_string-error.patch
@@ -0,0 +1,73 @@
+From f807220d13adc0656c30d3207d11c70360b88d06 Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Wed, 13 Mar 2024 03:14:55 -0700
+Subject: [PATCH] avoid to_string error
+
+Upstream-Status: Pending
+
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+---
+ src/rgw/rgw_asio_client.cc | 15 ++++++++-------
+ 1 file changed, 8 insertions(+), 7 deletions(-)
+
+diff --git a/src/rgw/rgw_asio_client.cc b/src/rgw/rgw_asio_client.cc
+index a0ec0bf5c..17880eda5 100644
+--- a/src/rgw/rgw_asio_client.cc
++++ b/src/rgw/rgw_asio_client.cc
+@@ -3,6 +3,7 @@
+
+ #include <boost/algorithm/string/predicate.hpp>
+ #include <boost/asio/write.hpp>
++#include <string_view>
+
+ #include "rgw_asio_client.h"
+ #include "rgw_perf_counters.h"
+@@ -39,11 +40,11 @@ int ClientIO::init_env(CephContext *cct)
+ const auto& value = header->value();
+
+ if (field == beast::http::field::content_length) {
+- env.set("CONTENT_LENGTH", value.to_string());
++ env.set("CONTENT_LENGTH", std::string(value));
+ continue;
+ }
+ if (field == beast::http::field::content_type) {
+- env.set("CONTENT_TYPE", value.to_string());
++ env.set("CONTENT_TYPE", std::string(value));
+ continue;
+ }
+
+@@ -62,26 +63,26 @@ int ClientIO::init_env(CephContext *cct)
+ }
+ *dest = '\0';
+
+- env.set(buf, value.to_string());
++ env.set(buf, std::string(value));
+ }
+
+ int major = request.version() / 10;
+ int minor = request.version() % 10;
+ env.set("HTTP_VERSION", std::to_string(major) + '.' + std::to_string(minor));
+
+- env.set("REQUEST_METHOD", request.method_string().to_string());
++ env.set("REQUEST_METHOD", std::string(request.method_string()));
+
+ // split uri from query
+ auto uri = request.target();
+ auto pos = uri.find('?');
+ if (pos != uri.npos) {
+ auto query = uri.substr(pos + 1);
+- env.set("QUERY_STRING", query.to_string());
++ env.set("QUERY_STRING", std::string(query));
+ uri = uri.substr(0, pos);
+ }
+- env.set("SCRIPT_URI", uri.to_string());
++ env.set("SCRIPT_URI", std::string(uri));
+
+- env.set("REQUEST_URI", request.target().to_string());
++ env.set("REQUEST_URI", std::string(request.target()));
+
+ char port_buf[16];
+ snprintf(port_buf, sizeof(port_buf), "%d", local_endpoint.port());
+--
+2.42.0
+
diff --git a/recipes-extended/ceph/ceph/0001-ceph-fix-build-errors-for-cross-compile.patch b/recipes-extended/ceph/ceph/0001-ceph-fix-build-errors-for-cross-compile.patch
deleted file mode 100644
index 4d54549f..00000000
--- a/recipes-extended/ceph/ceph/0001-ceph-fix-build-errors-for-cross-compile.patch
+++ /dev/null
@@ -1,184 +0,0 @@
-From 4712fe18405ffea31405308357a8e7fca358bcce Mon Sep 17 00:00:00 2001
-From: Dengke Du <dengke.du@windriver.com>
-Date: Mon, 11 Mar 2019 09:14:09 +0800
-Subject: [PATCH] ceph: fix build errors for cross compile
-
-1. set the cross compile sysroot to find the rocksdb library
-2. correct the install path for library in Distutils.cmake
-
-Upstream-Status: Inappropriate [oe specific]
-
-Signed-off-by: Dengke Du <dengke.du@windriver.com>
-
-Adjust context for v14.2.3
-
-Signed-off-by: He Zhe <zhe.he@windriver.com>
-Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
----
- cmake/modules/Distutils.cmake | 25 +++++--------------------
- cmake/modules/FindRocksDB.cmake | 4 ++--
- src/compressor/zstd/CMakeLists.txt | 2 +-
- src/pybind/cephfs/setup.py | 8 --------
- src/pybind/rados/setup.py | 8 --------
- src/pybind/rbd/setup.py | 8 --------
- src/pybind/rgw/setup.py | 8 --------
- 7 files changed, 8 insertions(+), 55 deletions(-)
-
-diff --git a/cmake/modules/Distutils.cmake b/cmake/modules/Distutils.cmake
-index 5fe929499d..802eb37e32 100644
---- a/cmake/modules/Distutils.cmake
-+++ b/cmake/modules/Distutils.cmake
-@@ -18,17 +18,8 @@ function(distutils_install_module name)
- cmake_parse_arguments(DU "" "INSTALL_SCRIPT" "" ${ARGN})
- install(CODE "
- set(options --prefix=${CMAKE_INSTALL_PREFIX})
-- if(DEFINED ENV{DESTDIR})
-- if(EXISTS /etc/debian_version)
-- list(APPEND options --install-layout=deb)
-- endif()
-- list(APPEND options
-- --root=\$ENV{DESTDIR}
-- --single-version-externally-managed)
-- if(NOT \"${DU_INSTALL_SCRIPT}\" STREQUAL \"\")
-- list(APPEND options --install-script=${DU_INSTALL_SCRIPT})
-- endif()
-- endif()
-+ list(APPEND options --root=${CMAKE_DESTDIR})
-+ list(APPEND options --install-lib=${PYTHON_SITEPACKAGES_DIR})
- execute_process(
- COMMAND ${Python3_EXECUTABLE}
- setup.py install \${options}
-@@ -50,7 +41,7 @@ function(distutils_add_cython_module target name src)
- # Note: no quotes, otherwise distutils will execute "/usr/bin/ccache gcc"
- # CMake's implicit conversion between strings and lists is wonderful, isn't it?
- string(REPLACE " " ";" cflags ${CMAKE_C_FLAGS})
-- list(APPEND cflags -iquote${CMAKE_SOURCE_DIR}/src/include -w)
-+ list(APPEND cflags -iquote${CMAKE_SOURCE_DIR}/src/include -w --sysroot=${CMAKE_SYSROOT})
- # This little bit of magic wipes out __Pyx_check_single_interpreter()
- # Note: this is reproduced in distutils_install_cython_module
- list(APPEND cflags -D'void0=dead_function\(void\)')
-@@ -108,14 +99,8 @@ function(distutils_install_cython_module name)
- set(ENV{CEPH_LIBDIR} \"${CMAKE_LIBRARY_OUTPUT_DIRECTORY}\")
-
- set(options --prefix=${CMAKE_INSTALL_PREFIX})
-- if(DEFINED ENV{DESTDIR})
-- if(EXISTS /etc/debian_version)
-- list(APPEND options --install-layout=deb)
-- endif()
-- list(APPEND options --root=\$ENV{DESTDIR})
-- else()
-- list(APPEND options --root=/)
-- endif()
-+ list(APPEND options --root=${CMAKE_DESTDIR})
-+ list(APPEND options --install-lib=${PYTHON_SITEPACKAGES_DIR})
- execute_process(
- COMMAND
- ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/setup.py
-diff --git a/cmake/modules/FindRocksDB.cmake b/cmake/modules/FindRocksDB.cmake
-index c5dd3dfaf6..be38597af2 100644
---- a/cmake/modules/FindRocksDB.cmake
-+++ b/cmake/modules/FindRocksDB.cmake
-@@ -9,9 +9,9 @@
- # ROCKSDB_VERSION_MINOR
- # ROCKSDB_VERSION_PATCH
-
--find_path(ROCKSDB_INCLUDE_DIR rocksdb/db.h)
-+find_path(ROCKSDB_INCLUDE_DIR rocksdb/db.h ${CMAKE_SYSROOT})
-
--find_library(ROCKSDB_LIBRARIES rocksdb)
-+find_library(ROCKSDB_LIBRARIES rocksdb ${CMAKE_SYSROOT})
-
- if(ROCKSDB_INCLUDE_DIR AND EXISTS "${ROCKSDB_INCLUDE_DIR}/rocksdb/version.h")
- foreach(ver "MAJOR" "MINOR" "PATCH")
-diff --git a/src/compressor/zstd/CMakeLists.txt b/src/compressor/zstd/CMakeLists.txt
-index a5ebdaf538..a234068150 100644
---- a/src/compressor/zstd/CMakeLists.txt
-+++ b/src/compressor/zstd/CMakeLists.txt
-@@ -9,7 +9,7 @@ ExternalProject_Add(zstd_ext
- CMAKE_ARGS -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
- -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
- -DCMAKE_C_FLAGS=${ZSTD_C_FLAGS}
-- -DCMAKE_AR=${CMAKE_AR}
-+ -DCMAKE_SYSROOT=${CMAKE_SYSROOT}
- -DCMAKE_POSITION_INDEPENDENT_CODE=${ENABLE_SHARED}
- -G${CMAKE_GENERATOR}
- BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/libzstd
-diff --git a/src/pybind/cephfs/setup.py b/src/pybind/cephfs/setup.py
-index 19ae6c329a..c9a25ccfff 100755
---- a/src/pybind/cephfs/setup.py
-+++ b/src/pybind/cephfs/setup.py
-@@ -135,14 +135,6 @@ def check_sanity():
- finally:
- shutil.rmtree(tmp_dir)
-
--
--if 'BUILD_DOC' in os.environ.keys():
-- pass
--elif check_sanity():
-- pass
--else:
-- sys.exit(1)
--
- cmdclass = {}
- try:
- from Cython.Build import cythonize
-diff --git a/src/pybind/rados/setup.py b/src/pybind/rados/setup.py
-index e2c5696404..4e99d26721 100755
---- a/src/pybind/rados/setup.py
-+++ b/src/pybind/rados/setup.py
-@@ -134,14 +134,6 @@ def check_sanity():
- finally:
- shutil.rmtree(tmp_dir)
-
--
--if 'BUILD_DOC' in os.environ.keys():
-- pass
--elif check_sanity():
-- pass
--else:
-- sys.exit(1)
--
- cmdclass = {}
- try:
- from Cython.Build import cythonize
-diff --git a/src/pybind/rbd/setup.py b/src/pybind/rbd/setup.py
-index 634484f140..f5bbbdab4f 100755
---- a/src/pybind/rbd/setup.py
-+++ b/src/pybind/rbd/setup.py
-@@ -133,14 +133,6 @@ def check_sanity():
- finally:
- shutil.rmtree(tmp_dir)
-
--
--if 'BUILD_DOC' in os.environ.keys():
-- pass
--elif check_sanity():
-- pass
--else:
-- sys.exit(1)
--
- cmdclass = {}
- try:
- from Cython.Build import cythonize
-diff --git a/src/pybind/rgw/setup.py b/src/pybind/rgw/setup.py
-index eb1591a460..b9f2428cf9 100755
---- a/src/pybind/rgw/setup.py
-+++ b/src/pybind/rgw/setup.py
-@@ -134,14 +134,6 @@ def check_sanity():
- finally:
- shutil.rmtree(tmp_dir)
-
--
--if 'BUILD_DOC' in os.environ.keys():
-- pass
--elif check_sanity():
-- pass
--else:
-- sys.exit(1)
--
- cmdclass = {}
- try:
- from Cython.Build import cythonize
---
-2.20.1
-
diff --git a/recipes-extended/ceph/ceph/0001-cephadm-build.py-avoid-using-python3-from-sysroot-wh.patch b/recipes-extended/ceph/ceph/0001-cephadm-build.py-avoid-using-python3-from-sysroot-wh.patch
new file mode 100644
index 00000000..a353a2f7
--- /dev/null
+++ b/recipes-extended/ceph/ceph/0001-cephadm-build.py-avoid-using-python3-from-sysroot-wh.patch
@@ -0,0 +1,43 @@
+From b9867e6b744b77d97d22333eca3ab3d23d47e2e2 Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Thu, 14 Mar 2024 00:19:19 -0700
+Subject: [PATCH] cephadm/build.py: avoid using python3 from sysroot when
+ creating zipapp archive
+
+ceph has the assumption that the python used during build
+is the python used at target, but this is not true for
+cross compilation. We'll need to use the target python3 here,
+otherwise, the cephadm zipapp cannot be executed.
+
+Upstream-Status: Pending
+
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+---
+ src/cephadm/build.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/cephadm/build.py b/src/cephadm/build.py
+index 4264b814f1e..a4483d6f79d 100755
+--- a/src/cephadm/build.py
++++ b/src/cephadm/build.py
+@@ -93,7 +93,7 @@ def _compile(dest, tempdir):
+ zipapp.create_archive(
+ source=tempdir,
+ target=dest,
+- interpreter=sys.executable,
++ interpreter='/usr/bin/python3',
+ compressed=True,
+ )
+ log.info("Zipapp created with compression")
+@@ -102,7 +102,7 @@ def _compile(dest, tempdir):
+ zipapp.create_archive(
+ source=tempdir,
+ target=dest,
+- interpreter=sys.executable,
++ interpreter='/usr/bin/python3',
+ )
+ log.info("Zipapp created without compression")
+
+--
+2.42.0
+
diff --git a/recipes-extended/ceph/ceph/0001-delete-install-layout-deb.patch b/recipes-extended/ceph/ceph/0001-delete-install-layout-deb.patch
new file mode 100644
index 00000000..91eacfa9
--- /dev/null
+++ b/recipes-extended/ceph/ceph/0001-delete-install-layout-deb.patch
@@ -0,0 +1,37 @@
+From 903bb882a44eb5567f8b1fc7f7c4857c2f03579d Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Wed, 13 Mar 2024 03:41:47 -0700
+Subject: [PATCH] delete install-layout=deb
+
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+---
+ cmake/modules/Distutils.cmake | 6 ------
+ 1 file changed, 6 deletions(-)
+
+diff --git a/cmake/modules/Distutils.cmake b/cmake/modules/Distutils.cmake
+index daaae4ba6..e606e3890 100644
+--- a/cmake/modules/Distutils.cmake
++++ b/cmake/modules/Distutils.cmake
+@@ -30,9 +30,6 @@ function(distutils_install_module name)
+ install(CODE "
+ set(options --prefix=${CMAKE_INSTALL_PREFIX})
+ if(DEFINED ENV{DESTDIR})
+- if(EXISTS /etc/debian_version)
+- list(APPEND options --install-layout=deb)
+- endif()
+ list(APPEND options
+ --root=\$ENV{DESTDIR}
+ --single-version-externally-managed)
+@@ -136,9 +133,6 @@ function(distutils_install_cython_module name)
+
+ set(options --prefix=${CMAKE_INSTALL_PREFIX})
+ if(DEFINED ENV{DESTDIR})
+- if(EXISTS /etc/debian_version)
+- list(APPEND options --install-layout=deb)
+- endif()
+ list(APPEND options --root=\$ENV{DESTDIR})
+ else()
+ list(APPEND options --root=/)
+--
+2.42.0
+
diff --git a/recipes-extended/ceph/ceph/0001-fix-host-library-paths-were-used.patch b/recipes-extended/ceph/ceph/0001-fix-host-library-paths-were-used.patch
index 310bfa47..24fd0409 100644
--- a/recipes-extended/ceph/ceph/0001-fix-host-library-paths-were-used.patch
+++ b/recipes-extended/ceph/ceph/0001-fix-host-library-paths-were-used.patch
@@ -15,12 +15,12 @@ Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
src/pybind/rgw/setup.py | 6 +++++-
4 files changed, 20 insertions(+), 4 deletions(-)
-diff --git a/src/pybind/cephfs/setup.py b/src/pybind/cephfs/setup.py
-index c9a25ccf..972f936c 100755
---- a/src/pybind/cephfs/setup.py
-+++ b/src/pybind/cephfs/setup.py
-@@ -63,9 +63,13 @@ def get_python_flags(libs):
- distutils.sysconfig.get_config_vars('LIBS', 'SYSLIBS')), [])
+Index: ceph-18.2.0/src/pybind/cephfs/setup.py
+===================================================================
+--- ceph-18.2.0.orig/src/pybind/cephfs/setup.py
++++ ceph-18.2.0/src/pybind/cephfs/setup.py
+@@ -63,9 +63,13 @@
+ filter(lambda lib: lib.startswith('-l'), py_libs)]
compiler = new_compiler()
distutils.sysconfig.customize_compiler(compiler)
+ libpl = distutils.sysconfig.get_config_var('LIBPL')
@@ -31,15 +31,15 @@ index c9a25ccf..972f936c 100755
include_dirs=[distutils.sysconfig.get_python_inc()],
- library_dirs=distutils.sysconfig.get_config_vars('LIBDIR', 'LIBPL'),
+ library_dirs=[distutils.sysconfig.get_config_var('LIBDIR'), libpl],
- libraries=libs + [lib.replace('-l', '') for lib in py_libs],
+ libraries=libs + py_libs,
extra_compile_args=filter_unsupported_flags(
compiler.compiler[0],
-diff --git a/src/pybind/rados/setup.py b/src/pybind/rados/setup.py
-index 4e99d267..de24f766 100755
---- a/src/pybind/rados/setup.py
-+++ b/src/pybind/rados/setup.py
-@@ -66,9 +66,13 @@ def get_python_flags(libs):
- distutils.sysconfig.get_config_vars('LIBS', 'SYSLIBS')), [])
+Index: ceph-18.2.0/src/pybind/rados/setup.py
+===================================================================
+--- ceph-18.2.0.orig/src/pybind/rados/setup.py
++++ ceph-18.2.0/src/pybind/rados/setup.py
+@@ -62,9 +62,13 @@
+ filter(lambda lib: lib.startswith('-l'), py_libs)]
compiler = new_compiler()
distutils.sysconfig.customize_compiler(compiler)
+ libpl = distutils.sysconfig.get_config_var('LIBPL')
@@ -50,15 +50,15 @@ index 4e99d267..de24f766 100755
include_dirs=[distutils.sysconfig.get_python_inc()],
- library_dirs=distutils.sysconfig.get_config_vars('LIBDIR', 'LIBPL'),
+ library_dirs=[distutils.sysconfig.get_config_var('LIBDIR'), libpl],
- libraries=libs + [lib.replace('-l', '') for lib in py_libs],
+ libraries=libs + py_libs,
extra_compile_args=filter_unsupported_flags(
compiler.compiler[0],
-diff --git a/src/pybind/rbd/setup.py b/src/pybind/rbd/setup.py
-index f5bbbdab..a1f70e1d 100755
---- a/src/pybind/rbd/setup.py
-+++ b/src/pybind/rbd/setup.py
-@@ -63,9 +63,13 @@ def get_python_flags(libs):
- distutils.sysconfig.get_config_vars('LIBS', 'SYSLIBS')), [])
+Index: ceph-18.2.0/src/pybind/rbd/setup.py
+===================================================================
+--- ceph-18.2.0.orig/src/pybind/rbd/setup.py
++++ ceph-18.2.0/src/pybind/rbd/setup.py
+@@ -63,9 +63,13 @@
+ filter(lambda lib: lib.startswith('-l'), py_libs)]
compiler = new_compiler()
distutils.sysconfig.customize_compiler(compiler)
+ libpl = distutils.sysconfig.get_config_var('LIBPL')
@@ -69,15 +69,15 @@ index f5bbbdab..a1f70e1d 100755
include_dirs=[distutils.sysconfig.get_python_inc()],
- library_dirs=distutils.sysconfig.get_config_vars('LIBDIR', 'LIBPL'),
+ library_dirs=[distutils.sysconfig.get_config_var('LIBDIR'), libpl],
- libraries=libs + [lib.replace('-l', '') for lib in py_libs],
+ libraries=libs + py_libs,
extra_compile_args=filter_unsupported_flags(
compiler.compiler[0],
-diff --git a/src/pybind/rgw/setup.py b/src/pybind/rgw/setup.py
-index b9f2428c..f5119f73 100755
---- a/src/pybind/rgw/setup.py
-+++ b/src/pybind/rgw/setup.py
-@@ -64,9 +64,13 @@ def get_python_flags(libs):
- distutils.sysconfig.get_config_vars('LIBS', 'SYSLIBS')), [])
+Index: ceph-18.2.0/src/pybind/rgw/setup.py
+===================================================================
+--- ceph-18.2.0.orig/src/pybind/rgw/setup.py
++++ ceph-18.2.0/src/pybind/rgw/setup.py
+@@ -64,9 +64,13 @@
+ filter(lambda lib: lib.startswith('-l'), py_libs)]
compiler = new_compiler()
distutils.sysconfig.customize_compiler(compiler)
+ libpl = distutils.sysconfig.get_config_var('LIBPL')
@@ -88,9 +88,6 @@ index b9f2428c..f5119f73 100755
include_dirs=[distutils.sysconfig.get_python_inc()],
- library_dirs=distutils.sysconfig.get_config_vars('LIBDIR', 'LIBPL'),
+ library_dirs=[distutils.sysconfig.get_config_var('LIBDIR'), libpl],
- libraries=libs + [lib.replace('-l', '') for lib in py_libs],
+ libraries=libs + py_libs,
extra_compile_args=filter_unsupported_flags(
compiler.compiler[0],
---
-2.21.0
-
diff --git a/recipes-extended/ceph/ceph/0001-mgr-require-all-caps-for-pre-octopus-tell-commands.patch b/recipes-extended/ceph/ceph/0001-mgr-require-all-caps-for-pre-octopus-tell-commands.patch
deleted file mode 100644
index de191bf8..00000000
--- a/recipes-extended/ceph/ceph/0001-mgr-require-all-caps-for-pre-octopus-tell-commands.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-From de67c1dab5597c91538970421b25f6ec667af492 Mon Sep 17 00:00:00 2001
-From: Josh Durgin <jdurgin@redhat.com>
-Date: Mon, 4 May 2020 17:03:35 -0400
-Subject: [PATCH 1/3] mgr: require all caps for pre-octopus tell commands
-
-This matches the requirements for admin socket commands
-sent via tell elsewhere.
-
-Signed-off-by: Josh Durgin <jdurgin@redhat.com>
-
-Upstream-status: Backport
-[https://github.com/ceph/ceph/commit/347003e13167c428187a5450517850f4d85e09ad]
-
-Signed-off-by: Liu Haitao <haitao.liu@windriver.com>
----
- src/mgr/DaemonServer.cc | 37 ++++++++++++++++++++++---------------
- 1 file changed, 22 insertions(+), 15 deletions(-)
-
-diff --git a/src/mgr/DaemonServer.cc b/src/mgr/DaemonServer.cc
-index becd428a..527326e3 100644
---- a/src/mgr/DaemonServer.cc
-+++ b/src/mgr/DaemonServer.cc
-@@ -808,20 +808,12 @@ public:
- bool DaemonServer::handle_command(const ref_t<MCommand>& m)
- {
- std::lock_guard l(lock);
-- // a blank fsid in MCommand signals a legacy client sending a "mon-mgr" CLI
-- // command.
-- if (m->fsid != uuid_d()) {
-- cct->get_admin_socket()->queue_tell_command(m);
-+ auto cmdctx = std::make_shared<CommandContext>(m);
-+ try {
-+ return _handle_command(cmdctx);
-+ } catch (const bad_cmd_get& e) {
-+ cmdctx->reply(-EINVAL, e.what());
- return true;
-- } else {
-- // legacy client; send to CLI processing
-- auto cmdctx = std::make_shared<CommandContext>(m);
-- try {
-- return _handle_command(cmdctx);
-- } catch (const bad_cmd_get& e) {
-- cmdctx->reply(-EINVAL, e.what());
-- return true;
-- }
- }
- }
-
-@@ -853,8 +845,12 @@ bool DaemonServer::_handle_command(
- std::shared_ptr<CommandContext>& cmdctx)
- {
- MessageRef m;
-+ bool admin_socket_cmd = false;
- if (cmdctx->m_tell) {
- m = cmdctx->m_tell;
-+ // a blank fsid in MCommand signals a legacy client sending a "mon-mgr" CLI
-+ // command.
-+ admin_socket_cmd = (cmdctx->m_tell->fsid != uuid_d());
- } else {
- m = cmdctx->m_mgr;
- }
-@@ -888,7 +884,10 @@ bool DaemonServer::_handle_command(
-
- dout(10) << "decoded-size=" << cmdctx->cmdmap.size() << " prefix=" << prefix << dendl;
-
-- if (prefix == "get_command_descriptions") {
-+ // this is just for mgr commands - admin socket commands will fall
-+ // through and use the admin socket version of
-+ // get_command_descriptions
-+ if (prefix == "get_command_descriptions" && !admin_socket_cmd) {
- dout(10) << "reading commands from python modules" << dendl;
- const auto py_commands = py_modules.get_commands();
-
-@@ -925,7 +924,10 @@ bool DaemonServer::_handle_command(
-
- bool is_allowed = false;
- ModuleCommand py_command;
-- if (!mgr_cmd) {
-+ if (admin_socket_cmd) {
-+ // admin socket commands require all capabilities
-+ is_allowed = session->caps.is_allow_all();
-+ } else if (!mgr_cmd) {
- // Resolve the command to the name of the module that will
- // handle it (if the command exists)
- auto py_commands = py_modules.get_py_commands();
-@@ -958,6 +960,11 @@ bool DaemonServer::_handle_command(
- << "entity='" << session->entity_name << "' "
- << "cmd=" << cmdctx->cmd << ": dispatch";
-
-+ if (admin_socket_cmd) {
-+ cct->get_admin_socket()->queue_tell_command(cmdctx->m_tell);
-+ return true;
-+ }
-+
- // ----------------
- // service map commands
- if (prefix == "service dump") {
---
-2.25.1
-
diff --git a/recipes-extended/ceph/ceph/0001-msg-async-ProtocolV2-avoid-AES-GCM-nonce-reuse-vulne.patch b/recipes-extended/ceph/ceph/0001-msg-async-ProtocolV2-avoid-AES-GCM-nonce-reuse-vulne.patch
deleted file mode 100644
index 54156698..00000000
--- a/recipes-extended/ceph/ceph/0001-msg-async-ProtocolV2-avoid-AES-GCM-nonce-reuse-vulne.patch
+++ /dev/null
@@ -1,256 +0,0 @@
-From 20b7bb685c5ea74c651ca1ea547ac66b0fee7035 Mon Sep 17 00:00:00 2001
-From: Ilya Dryomov <idryomov@gmail.com>
-Date: Fri, 6 Mar 2020 20:16:45 +0100
-Subject: [PATCH] msg/async/ProtocolV2: avoid AES-GCM nonce reuse
- vulnerabilities
-
-The secure mode uses AES-128-GCM with 96-bit nonces consisting of a
-32-bit counter followed by a 64-bit salt. The counter is incremented
-after processing each frame, the salt is fixed for the duration of
-the session. Both are initialized from the session key generated
-during session negotiation, so the counter starts with essentially
-a random value. It is allowed to wrap, and, after 2**32 frames, it
-repeats, resulting in nonce reuse (the actual sequence numbers that
-the messenger works with are 64-bit, so the session continues on).
-
-Because of how GCM works, this completely breaks both confidentiality
-and integrity aspects of the secure mode. A single nonce reuse reveals
-the XOR of two plaintexts and almost completely reveals the subkey
-used for producing authentication tags. After a few nonces get used
-twice, all confidentiality and integrity goes out the window and the
-attacker can potentially encrypt-authenticate plaintext of their
-choice.
-
-We can't easily change the nonce format to extend the counter to
-64 bits (and possibly XOR it with a longer salt). Instead, just
-remember the initial nonce and cut the session before it repeats,
-forcing renegotiation.
-
-Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
-Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
-Reviewed-by: Sage Weil <sage@redhat.com>
-
-Conflicts:
- src/msg/async/ProtocolV2.h [ context: commit ed3ec4c01d17
- ("msg: Build target 'common' without using namespace in
- headers") not in octopus ]
-
-CVE: CVE-2020-1759
-Upstream Status: Backport [20b7bb685c5ea74c651ca1ea547ac66b0fee7035]
-
-Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
----
- src/msg/async/ProtocolV2.cc | 62 ++++++++++++++++++++++++----------
- src/msg/async/ProtocolV2.h | 5 +--
- src/msg/async/crypto_onwire.cc | 17 ++++++++--
- src/msg/async/crypto_onwire.h | 5 +++
- 4 files changed, 67 insertions(+), 22 deletions(-)
-
-diff --git a/src/msg/async/ProtocolV2.cc b/src/msg/async/ProtocolV2.cc
-index 8fc02db6e5..c69f2ccf79 100644
---- a/src/msg/async/ProtocolV2.cc
-+++ b/src/msg/async/ProtocolV2.cc
-@@ -533,7 +533,10 @@ ssize_t ProtocolV2::write_message(Message *m, bool more) {
- m->get_payload(),
- m->get_middle(),
- m->get_data());
-- connection->outgoing_bl.append(message.get_buffer(session_stream_handlers));
-+ if (!append_frame(message)) {
-+ m->put();
-+ return -EILSEQ;
-+ }
-
- ldout(cct, 5) << __func__ << " sending message m=" << m
- << " seq=" << m->get_seq() << " " << *m << dendl;
-@@ -566,15 +569,17 @@ ssize_t ProtocolV2::write_message(Message *m, bool more) {
- return rc;
- }
-
--void ProtocolV2::append_keepalive() {
-- ldout(cct, 10) << __func__ << dendl;
-- auto keepalive_frame = KeepAliveFrame::Encode();
-- connection->outgoing_bl.append(keepalive_frame.get_buffer(session_stream_handlers));
--}
--
--void ProtocolV2::append_keepalive_ack(utime_t &timestamp) {
-- auto keepalive_ack_frame = KeepAliveFrameAck::Encode(timestamp);
-- connection->outgoing_bl.append(keepalive_ack_frame.get_buffer(session_stream_handlers));
-+template <class F>
-+bool ProtocolV2::append_frame(F& frame) {
-+ ceph::bufferlist bl;
-+ try {
-+ bl = frame.get_buffer(session_stream_handlers);
-+ } catch (ceph::crypto::onwire::TxHandlerError &e) {
-+ ldout(cct, 1) << __func__ << " " << e.what() << dendl;
-+ return false;
-+ }
-+ connection->outgoing_bl.append(bl);
-+ return true;
- }
-
- void ProtocolV2::handle_message_ack(uint64_t seq) {
-@@ -612,7 +617,15 @@ void ProtocolV2::write_event() {
- connection->write_lock.lock();
- if (can_write) {
- if (keepalive) {
-- append_keepalive();
-+ ldout(cct, 10) << __func__ << " appending keepalive" << dendl;
-+ auto keepalive_frame = KeepAliveFrame::Encode();
-+ if (!append_frame(keepalive_frame)) {
-+ connection->write_lock.unlock();
-+ connection->lock.lock();
-+ fault();
-+ connection->lock.unlock();
-+ return;
-+ }
- keepalive = false;
- }
-
-@@ -663,13 +676,16 @@ void ProtocolV2::write_event() {
- if (r == 0) {
- uint64_t left = ack_left;
- if (left) {
-- auto ack = AckFrame::Encode(in_seq);
-- connection->outgoing_bl.append(ack.get_buffer(session_stream_handlers));
- ldout(cct, 10) << __func__ << " try send msg ack, acked " << left
- << " messages" << dendl;
-- ack_left -= left;
-- left = ack_left;
-- r = connection->_try_send(left);
-+ auto ack_frame = AckFrame::Encode(in_seq);
-+ if (append_frame(ack_frame)) {
-+ ack_left -= left;
-+ left = ack_left;
-+ r = connection->_try_send(left);
-+ } else {
-+ r = -EILSEQ;
-+ }
- } else if (is_queued()) {
- r = connection->_try_send();
- }
-@@ -769,7 +785,13 @@ template <class F>
- CtPtr ProtocolV2::write(const std::string &desc,
- CONTINUATION_TYPE<ProtocolV2> &next,
- F &frame) {
-- ceph::bufferlist bl = frame.get_buffer(session_stream_handlers);
-+ ceph::bufferlist bl;
-+ try {
-+ bl = frame.get_buffer(session_stream_handlers);
-+ } catch (ceph::crypto::onwire::TxHandlerError &e) {
-+ ldout(cct, 1) << __func__ << " " << e.what() << dendl;
-+ return _fault();
-+ }
- return write(desc, next, bl);
- }
-
-@@ -1672,7 +1694,11 @@ CtPtr ProtocolV2::handle_keepalive2(ceph::bufferlist &payload)
- ldout(cct, 30) << __func__ << " got KEEPALIVE2 tag ..." << dendl;
-
- connection->write_lock.lock();
-- append_keepalive_ack(keepalive_frame.timestamp());
-+ auto keepalive_ack_frame = KeepAliveFrameAck::Encode(keepalive_frame.timestamp());
-+ if (!append_frame(keepalive_ack_frame)) {
-+ connection->write_lock.unlock();
-+ return _fault();
-+ }
- connection->write_lock.unlock();
-
- ldout(cct, 20) << __func__ << " got KEEPALIVE2 "
-diff --git a/src/msg/async/ProtocolV2.h b/src/msg/async/ProtocolV2.h
-index 2dbe647ae5..9897d18cf2 100644
---- a/src/msg/async/ProtocolV2.h
-+++ b/src/msg/async/ProtocolV2.h
-@@ -129,6 +129,9 @@ private:
- CONTINUATION_TYPE<ProtocolV2> &next,
- bufferlist &buffer);
-
-+ template <class F>
-+ bool append_frame(F& frame);
-+
- void requeue_sent();
- uint64_t discard_requeued_up_to(uint64_t out_seq, uint64_t seq);
- void reset_recv_state();
-@@ -140,8 +143,6 @@ private:
- void prepare_send_message(uint64_t features, Message *m);
- out_queue_entry_t _get_next_outgoing();
- ssize_t write_message(Message *m, bool more);
-- void append_keepalive();
-- void append_keepalive_ack(utime_t &timestamp);
- void handle_message_ack(uint64_t seq);
-
- CONTINUATION_DECL(ProtocolV2, _wait_for_peer_banner);
-diff --git a/src/msg/async/crypto_onwire.cc b/src/msg/async/crypto_onwire.cc
-index acf3f66689..07e7fe6553 100644
---- a/src/msg/async/crypto_onwire.cc
-+++ b/src/msg/async/crypto_onwire.cc
-@@ -22,6 +22,10 @@ static constexpr const std::size_t AESGCM_BLOCK_LEN{16};
- struct nonce_t {
- std::uint32_t random_seq;
- std::uint64_t random_rest;
-+
-+ bool operator==(const nonce_t& rhs) const {
-+ return !memcmp(this, &rhs, sizeof(*this));
-+ }
- } __attribute__((packed));
- static_assert(sizeof(nonce_t) == AESGCM_IV_LEN);
-
-@@ -35,7 +39,8 @@ class AES128GCM_OnWireTxHandler : public ceph::crypto::onwire::TxHandler {
- CephContext* const cct;
- std::unique_ptr<EVP_CIPHER_CTX, decltype(&::EVP_CIPHER_CTX_free)> ectx;
- ceph::bufferlist buffer;
-- nonce_t nonce;
-+ nonce_t nonce, initial_nonce;
-+ bool used_initial_nonce;
- static_assert(sizeof(nonce) == AESGCM_IV_LEN);
-
- public:
-@@ -44,7 +49,7 @@ public:
- const nonce_t& nonce)
- : cct(cct),
- ectx(EVP_CIPHER_CTX_new(), EVP_CIPHER_CTX_free),
-- nonce(nonce) {
-+ nonce(nonce), initial_nonce(nonce), used_initial_nonce(false) {
- ceph_assert_always(ectx);
- ceph_assert_always(key.size() * CHAR_BIT == 128);
-
-@@ -61,6 +66,7 @@ public:
-
- ~AES128GCM_OnWireTxHandler() override {
- ::ceph::crypto::zeroize_for_security(&nonce, sizeof(nonce));
-+ ::ceph::crypto::zeroize_for_security(&initial_nonce, sizeof(initial_nonce));
- }
-
- std::uint32_t calculate_segment_size(std::uint32_t size) override
-@@ -78,6 +84,13 @@ public:
- void AES128GCM_OnWireTxHandler::reset_tx_handler(
- std::initializer_list<std::uint32_t> update_size_sequence)
- {
-+ if (nonce == initial_nonce) {
-+ if (used_initial_nonce) {
-+ throw ceph::crypto::onwire::TxHandlerError("out of nonces");
-+ }
-+ used_initial_nonce = true;
-+ }
-+
- if(1 != EVP_EncryptInit_ex(ectx.get(), nullptr, nullptr, nullptr,
- reinterpret_cast<const unsigned char*>(&nonce))) {
- throw std::runtime_error("EVP_EncryptInit_ex failed");
-diff --git a/src/msg/async/crypto_onwire.h b/src/msg/async/crypto_onwire.h
-index bd682e8c71..0c544f205a 100644
---- a/src/msg/async/crypto_onwire.h
-+++ b/src/msg/async/crypto_onwire.h
-@@ -45,6 +45,11 @@ struct MsgAuthError : public std::runtime_error {
- }
- };
-
-+struct TxHandlerError : public std::runtime_error {
-+ TxHandlerError(const char* what)
-+ : std::runtime_error(std::string("tx handler error: ") + what) {}
-+};
-+
- struct TxHandler {
- virtual ~TxHandler() = default;
-
---
-2.20.1
-
diff --git a/recipes-extended/ceph/ceph/0001-msg-async-crypto_onwire-fix-endianness-of-nonce_t.patch b/recipes-extended/ceph/ceph/0001-msg-async-crypto_onwire-fix-endianness-of-nonce_t.patch
deleted file mode 100644
index ad8a2055..00000000
--- a/recipes-extended/ceph/ceph/0001-msg-async-crypto_onwire-fix-endianness-of-nonce_t.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From dfd1d81cec62e21e21696dc87d4db5f920e51a67 Mon Sep 17 00:00:00 2001
-From: Ilya Dryomov <idryomov@gmail.com>
-Date: Fri, 6 Mar 2020 20:16:45 +0100
-Subject: [PATCH] msg/async/crypto_onwire: fix endianness of nonce_t
-
-As a AES-GCM IV, nonce_t is implicitly shared between server and
-client. Currently, if their endianness doesn't match, they are unable
-to communicate in secure mode because each gets its own idea of what
-the next nonce should be after the counter is incremented.
-
-Several RFCs state that the nonce counter should be BE, but since we
-use LE for everything on-disk and on-wire, make it LE.
-
-Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
-Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
-Reviewed-by: Sage Weil <sage@redhat.com>
-
-CVE: CVE-2020-1759
-Upstream Status: Backport [dfd1d81cec62e21e21696dc87d4db5f920e51a67]
-
-Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
----
- src/msg/async/crypto_onwire.cc | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/src/msg/async/crypto_onwire.cc b/src/msg/async/crypto_onwire.cc
-index 07e7fe6553..c39632cbd6 100644
---- a/src/msg/async/crypto_onwire.cc
-+++ b/src/msg/async/crypto_onwire.cc
-@@ -20,8 +20,8 @@ static constexpr const std::size_t AESGCM_TAG_LEN{16};
- static constexpr const std::size_t AESGCM_BLOCK_LEN{16};
-
- struct nonce_t {
-- std::uint32_t random_seq;
-- std::uint64_t random_rest;
-+ ceph_le32 random_seq;
-+ ceph_le64 random_rest;
-
- bool operator==(const nonce_t& rhs) const {
- return !memcmp(this, &rhs, sizeof(*this));
-@@ -99,7 +99,7 @@ void AES128GCM_OnWireTxHandler::reset_tx_handler(
- buffer.reserve(std::accumulate(std::begin(update_size_sequence),
- std::end(update_size_sequence), AESGCM_TAG_LEN));
-
-- ++nonce.random_seq;
-+ nonce.random_seq = nonce.random_seq + 1;
- }
-
- void AES128GCM_OnWireTxHandler::authenticated_encrypt_update(
-@@ -204,7 +204,7 @@ void AES128GCM_OnWireRxHandler::reset_rx_handler()
- reinterpret_cast<const unsigned char*>(&nonce))) {
- throw std::runtime_error("EVP_DecryptInit_ex failed");
- }
-- ++nonce.random_seq;
-+ nonce.random_seq = nonce.random_seq + 1;
- }
-
- ceph::bufferlist AES128GCM_OnWireRxHandler::authenticated_decrypt_update(
---
-2.20.1
-
diff --git a/recipes-extended/ceph/ceph/0001-rgw-EPERM-to-ERR_INVALID_REQUEST.patch b/recipes-extended/ceph/ceph/0001-rgw-EPERM-to-ERR_INVALID_REQUEST.patch
deleted file mode 100644
index 30906d7c..00000000
--- a/recipes-extended/ceph/ceph/0001-rgw-EPERM-to-ERR_INVALID_REQUEST.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 92da834cababc4dddd5dbbab5837310478d1e6d4 Mon Sep 17 00:00:00 2001
-From: Abhishek Lekshmanan <abhishek@suse.com>
-Date: Fri, 27 Mar 2020 19:29:01 +0100
-Subject: [PATCH] rgw: EPERM to ERR_INVALID_REQUEST
-
-As per Robin's comments and S3 spec
-
-Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
-
-CVE: CVE-2020-1760
-Upstream Status: Backport [92da834cababc4dddd5dbbab5837310478d1e6d4]
-
-Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
----
- src/rgw/rgw_rest_s3.cc | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/rgw/rgw_rest_s3.cc b/src/rgw/rgw_rest_s3.cc
-index 1bfc8312de..f13ae23dd6 100644
---- a/src/rgw/rgw_rest_s3.cc
-+++ b/src/rgw/rgw_rest_s3.cc
-@@ -301,7 +301,7 @@ int RGWGetObj_ObjStore_S3::send_response_data(bufferlist& bl, off_t bl_ofs,
- /* reject unauthenticated response header manipulation, see
- * https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html */
- if (s->auth.identity->is_anonymous()) {
-- return -EPERM;
-+ return -ERR_INVALID_REQUEST;
- }
- if (strcmp(p->param, "response-content-type") != 0) {
- response_attrs[p->http_attr] = val;
---
-2.20.1
-
diff --git a/recipes-extended/ceph/ceph/0001-rgw-reject-control-characters-in-response-header-act.patch b/recipes-extended/ceph/ceph/0001-rgw-reject-control-characters-in-response-header-act.patch
deleted file mode 100644
index af0fc79a..00000000
--- a/recipes-extended/ceph/ceph/0001-rgw-reject-control-characters-in-response-header-act.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From be7679007c3dfab3e19c22c38c36ccac91828e3b Mon Sep 17 00:00:00 2001
-From: "Robin H. Johnson" <rjohnson@digitalocean.com>
-Date: Fri, 27 Mar 2020 20:48:13 +0100
-Subject: [PATCH] rgw: reject control characters in response-header actions
-
-S3 GetObject permits overriding response header values, but those inputs
-need to be validated to insure only characters that are valid in an HTTP
-header value are present.
-
-Credit: Initial vulnerability discovery by William Bowling (@wcbowling)
-Credit: Further vulnerability discovery by Robin H. Johnson <rjohnson@digitalocean.com>
-Signed-off-by: Robin H. Johnson <rjohnson@digitalocean.com>
-
-CVE: CVE-2020-1760
-Upstream Status: Backport [be7679007c3dfab3e19c22c38c36ccac91828e3b]
-
-Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
----
- src/rgw/rgw_rest_s3.cc | 22 ++++++++++++++++++++++
- 1 file changed, 22 insertions(+)
-
-diff --git a/src/rgw/rgw_rest_s3.cc b/src/rgw/rgw_rest_s3.cc
-index f13ae23dd6..0de040968c 100644
---- a/src/rgw/rgw_rest_s3.cc
-+++ b/src/rgw/rgw_rest_s3.cc
-@@ -189,6 +189,15 @@ int decode_attr_bl_single_value(map<string, bufferlist>& attrs, const char *attr
- return 0;
- }
-
-+inline bool str_has_cntrl(const std::string s) {
-+ return std::any_of(s.begin(), s.end(), ::iscntrl);
-+}
-+
-+inline bool str_has_cntrl(const char* s) {
-+ std::string _s(s);
-+ return str_has_cntrl(_s);
-+}
-+
- int RGWGetObj_ObjStore_S3::send_response_data(bufferlist& bl, off_t bl_ofs,
- off_t bl_len)
- {
-@@ -303,6 +312,19 @@ int RGWGetObj_ObjStore_S3::send_response_data(bufferlist& bl, off_t bl_ofs,
- if (s->auth.identity->is_anonymous()) {
- return -ERR_INVALID_REQUEST;
- }
-+ /* HTTP specification says no control characters should be present in
-+ * header values: https://tools.ietf.org/html/rfc7230#section-3.2
-+ * field-vchar = VCHAR / obs-text
-+ *
-+ * Failure to validate this permits a CRLF injection in HTTP headers,
-+ * whereas S3 GetObject only permits specific headers.
-+ */
-+ if(str_has_cntrl(val)) {
-+ /* TODO: return a more distinct error in future;
-+ * stating what the problem is */
-+ return -ERR_INVALID_REQUEST;
-+ }
-+
- if (strcmp(p->param, "response-content-type") != 0) {
- response_attrs[p->http_attr] = val;
- } else {
---
-2.20.1
-
diff --git a/recipes-extended/ceph/ceph/0001-rgw-reject-unauthenticated-response-header-actions.patch b/recipes-extended/ceph/ceph/0001-rgw-reject-unauthenticated-response-header-actions.patch
deleted file mode 100644
index ae241473..00000000
--- a/recipes-extended/ceph/ceph/0001-rgw-reject-unauthenticated-response-header-actions.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 8f90658c731499722d5f4393c8ad70b971d05f77 Mon Sep 17 00:00:00 2001
-From: Matt Benjamin <mbenjamin@redhat.com>
-Date: Fri, 27 Mar 2020 18:13:48 +0100
-Subject: [PATCH] rgw: reject unauthenticated response-header actions
-
-Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
-Reviewed-by: Casey Bodley <cbodley@redhat.com>
-(cherry picked from commit d8dd5e513c0c62bbd7d3044d7e2eddcd897bd400)
-
-CVE: CVE-2020-1760
-Upstream Status: Backport [8f90658c731499722d5f4393c8ad70b971d05f77]
-
-Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
----
- src/rgw/rgw_rest_s3.cc | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/src/rgw/rgw_rest_s3.cc b/src/rgw/rgw_rest_s3.cc
-index 532d738b58..1bfc8312de 100644
---- a/src/rgw/rgw_rest_s3.cc
-+++ b/src/rgw/rgw_rest_s3.cc
-@@ -298,6 +298,11 @@ int RGWGetObj_ObjStore_S3::send_response_data(bufferlist& bl, off_t bl_ofs,
- bool exists;
- string val = s->info.args.get(p->param, &exists);
- if (exists) {
-+ /* reject unauthenticated response header manipulation, see
-+ * https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html */
-+ if (s->auth.identity->is_anonymous()) {
-+ return -EPERM;
-+ }
- if (strcmp(p->param, "response-content-type") != 0) {
- response_attrs[p->http_attr] = val;
- } else {
---
-2.20.1
-
diff --git a/recipes-extended/ceph/ceph/0002-mon-enforce-caps-for-pre-octopus-client-tell-command.patch b/recipes-extended/ceph/ceph/0002-mon-enforce-caps-for-pre-octopus-client-tell-command.patch
deleted file mode 100644
index 79f2174b..00000000
--- a/recipes-extended/ceph/ceph/0002-mon-enforce-caps-for-pre-octopus-client-tell-command.patch
+++ /dev/null
@@ -1,95 +0,0 @@
-From ddbac9b2779172876ebd2d26b68b04b02350a125 Mon Sep 17 00:00:00 2001
-From: Josh Durgin <jdurgin@redhat.com>
-Date: Thu, 23 Apr 2020 00:22:10 -0400
-Subject: [PATCH 2/3] mon: enforce caps for pre-octopus client tell commands
-
-This affects only the commands whitelisted here - in particular
-injectargs requires write access to the monitors.
-
-Signed-off-by: Josh Durgin <jdurgin@redhat.com>
-
-Upstream-status: Backport
-[https://github.com/ceph/ceph/commit/fc5e56b75a97c4652c87e9959aad1c4dec45010d]
-
-Signed-off-by: Liu Haitao <haitao.liu@windriver.com>
----
- src/mon/Monitor.cc | 56 +++++++++++++++++++++++-----------------------
- 1 file changed, 28 insertions(+), 28 deletions(-)
-
-diff --git a/src/mon/Monitor.cc b/src/mon/Monitor.cc
-index b7cb3eae..eecd2f68 100644
---- a/src/mon/Monitor.cc
-+++ b/src/mon/Monitor.cc
-@@ -3226,34 +3226,6 @@ void Monitor::handle_command(MonOpRequestRef op)
- return;
- }
-
-- // compat kludge for legacy clients trying to tell commands that are
-- // new. see bottom of MonCommands.h. we need to handle both (1)
-- // pre-octopus clients and (2) octopus clients with a mix of pre-octopus
-- // and octopus mons.
-- if ((!HAVE_FEATURE(m->get_connection()->get_features(), SERVER_OCTOPUS) ||
-- monmap->min_mon_release < ceph_release_t::octopus) &&
-- (prefix == "injectargs" ||
-- prefix == "smart" ||
-- prefix == "mon_status" ||
-- prefix == "heap")) {
-- if (m->get_connection()->get_messenger() == 0) {
-- // Prior to octopus, monitors might forward these messages
-- // around. that was broken at baseline, and if we try to process
-- // this message now, it will assert out when we try to send a
-- // message in reply from the asok/tell worker (see
-- // AnonConnection). Just reply with an error.
-- dout(5) << __func__ << " failing forwarded command from a (presumably) "
-- << "pre-octopus peer" << dendl;
-- reply_command(
-- op, -EBUSY,
-- "failing forwarded tell command in mixed-version mon cluster", 0);
-- return;
-- }
-- dout(5) << __func__ << " passing command to tell/asok" << dendl;
-- cct->get_admin_socket()->queue_tell_command(m);
-- return;
-- }
--
- string module;
- string err;
-
-@@ -3368,6 +3340,34 @@ void Monitor::handle_command(MonOpRequestRef op)
- << "entity='" << session->entity_name << "' "
- << "cmd=" << m->cmd << ": dispatch";
-
-+ // compat kludge for legacy clients trying to tell commands that are
-+ // new. see bottom of MonCommands.h. we need to handle both (1)
-+ // pre-octopus clients and (2) octopus clients with a mix of pre-octopus
-+ // and octopus mons.
-+ if ((!HAVE_FEATURE(m->get_connection()->get_features(), SERVER_OCTOPUS) ||
-+ monmap->min_mon_release < ceph_release_t::octopus) &&
-+ (prefix == "injectargs" ||
-+ prefix == "smart" ||
-+ prefix == "mon_status" ||
-+ prefix == "heap")) {
-+ if (m->get_connection()->get_messenger() == 0) {
-+ // Prior to octopus, monitors might forward these messages
-+ // around. that was broken at baseline, and if we try to process
-+ // this message now, it will assert out when we try to send a
-+ // message in reply from the asok/tell worker (see
-+ // AnonConnection). Just reply with an error.
-+ dout(5) << __func__ << " failing forwarded command from a (presumably) "
-+ << "pre-octopus peer" << dendl;
-+ reply_command(
-+ op, -EBUSY,
-+ "failing forwarded tell command in mixed-version mon cluster", 0);
-+ return;
-+ }
-+ dout(5) << __func__ << " passing command to tell/asok" << dendl;
-+ cct->get_admin_socket()->queue_tell_command(m);
-+ return;
-+ }
-+
- if (mon_cmd->is_mgr()) {
- const auto& hdr = m->get_header();
- uint64_t size = hdr.front_len + hdr.middle_len + hdr.data_len;
---
-2.25.1
-
diff --git a/recipes-extended/ceph/ceph/0003-PendingReleaseNotes-note-about-security-fix.patch b/recipes-extended/ceph/ceph/0003-PendingReleaseNotes-note-about-security-fix.patch
deleted file mode 100644
index ed2a63e7..00000000
--- a/recipes-extended/ceph/ceph/0003-PendingReleaseNotes-note-about-security-fix.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 56800925651857821034ac9c8ec82d45635cc3b8 Mon Sep 17 00:00:00 2001
-From: Josh Durgin <jdurgin@redhat.com>
-Date: Wed, 13 May 2020 21:34:56 -0700
-Subject: [PATCH 3/3] PendingReleaseNotes: note about security fix
-
-Signed-off-by: Josh Durgin <jdurgin@redhat.com>
-
-Upstream-status: Backport
-[https://github.com/ceph/ceph/commit/06f239fc35f35865d2cf92dda1ac8f4d5fe82bde]
-
-Signed-off-by: Liu Haitao <haitao.liu@windriver.com>
----
- PendingReleaseNotes | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/PendingReleaseNotes b/PendingReleaseNotes
-index c9fd4c79..6e07ce6d 100644
---- a/PendingReleaseNotes
-+++ b/PendingReleaseNotes
-@@ -1,6 +1,8 @@
- >=15.0.0
- --------
-
-+* CVE-2020-10736: Fixes an authorization bypass in monitor and manager daemons
-+
- * The RGW "num_rados_handles" has been removed.
- * If you were using a value of "num_rados_handles" greater than 1
- multiply your current "objecter_inflight_ops" and
---
-2.25.1
-
diff --git a/recipes-extended/ceph/ceph/0006-rocksdb-build-with-rocksdb-7.y.z.patch b/recipes-extended/ceph/ceph/0006-rocksdb-build-with-rocksdb-7.y.z.patch
new file mode 100644
index 00000000..c7ca704f
--- /dev/null
+++ b/recipes-extended/ceph/ceph/0006-rocksdb-build-with-rocksdb-7.y.z.patch
@@ -0,0 +1,109 @@
+From 06f23837c757ff7a8aa8db4e5965e25e9ca69f45 Mon Sep 17 00:00:00 2001
+From: "Kaleb S. KEITHLEY" <kkeithle@redhat.com>
+Date: Mon, 23 May 2022 07:41:26 -0400
+Subject: [PATCH 6/6] rocksdb: build with rocksdb-7.y.z
+
+RocksDB 7, specifically 7.2.2 has landed in Fedora 37/rawhide.
+
+https://tracker.ceph.com/issues/55730
+
+Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
+(cherry picked from commit eea10281e6f4078f261b05b6bd9c9c9aec129201)
+
+Upstream-Status: Backport [be3ca10e60ade9dbe7d3e5cb018f32c7cc97e2ed]
+
+Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
+---
+ src/kv/RocksDBStore.cc | 7 ++-----
+ src/kv/rocksdb_cache/BinnedLRUCache.cc | 2 +-
+ src/kv/rocksdb_cache/BinnedLRUCache.h | 2 +-
+ src/kv/rocksdb_cache/ShardedCache.cc | 2 +-
+ src/kv/rocksdb_cache/ShardedCache.h | 4 ++--
+ 5 files changed, 7 insertions(+), 10 deletions(-)
+
+diff --git a/src/kv/RocksDBStore.cc b/src/kv/RocksDBStore.cc
+index 328277e5..115d28fc 100644
+--- a/src/kv/RocksDBStore.cc
++++ b/src/kv/RocksDBStore.cc
+@@ -728,19 +728,16 @@ int64_t RocksDBStore::estimate_prefix_size(const string& prefix,
+ {
+ auto cf = get_cf_handle(prefix);
+ uint64_t size = 0;
+- uint8_t flags =
+- //rocksdb::DB::INCLUDE_MEMTABLES | // do not include memtables...
+- rocksdb::DB::INCLUDE_FILES;
+ if (cf) {
+ string start = key_prefix + string(1, '\x00');
+ string limit = key_prefix + string("\xff\xff\xff\xff");
+ rocksdb::Range r(start, limit);
+- db->GetApproximateSizes(cf, &r, 1, &size, flags);
++ db->GetApproximateSizes(cf, &r, 1, &size);
+ } else {
+ string start = combine_strings(prefix , key_prefix);
+ string limit = combine_strings(prefix , key_prefix + "\xff\xff\xff\xff");
+ rocksdb::Range r(start, limit);
+- db->GetApproximateSizes(default_cf, &r, 1, &size, flags);
++ db->GetApproximateSizes(default_cf, &r, 1, &size);
+ }
+ return size;
+ }
+diff --git a/src/kv/rocksdb_cache/BinnedLRUCache.cc b/src/kv/rocksdb_cache/BinnedLRUCache.cc
+index 1e6ba7af..c4918355 100644
+--- a/src/kv/rocksdb_cache/BinnedLRUCache.cc
++++ b/src/kv/rocksdb_cache/BinnedLRUCache.cc
+@@ -531,7 +531,7 @@ void BinnedLRUCache::DisownData() {
+ #endif // !__SANITIZE_ADDRESS__
+ }
+
+-#if (ROCKSDB_MAJOR >= 6 && ROCKSDB_MINOR >= 22)
++#if (ROCKSDB_MAJOR >= 7 || (ROCKSDB_MAJOR == 6 && ROCKSDB_MINOR >= 22))
+ DeleterFn BinnedLRUCache::GetDeleter(Handle* handle) const
+ {
+ return reinterpret_cast<const BinnedLRUHandle*>(handle)->deleter;
+diff --git a/src/kv/rocksdb_cache/BinnedLRUCache.h b/src/kv/rocksdb_cache/BinnedLRUCache.h
+index ba0c2720..266667f0 100644
+--- a/src/kv/rocksdb_cache/BinnedLRUCache.h
++++ b/src/kv/rocksdb_cache/BinnedLRUCache.h
+@@ -309,7 +309,7 @@ class BinnedLRUCache : public ShardedCache {
+ virtual size_t GetCharge(Handle* handle) const override;
+ virtual uint32_t GetHash(Handle* handle) const override;
+ virtual void DisownData() override;
+-#if (ROCKSDB_MAJOR >= 6 && ROCKSDB_MINOR >= 22)
++#if (ROCKSDB_MAJOR >= 7 || (ROCKSDB_MAJOR == 6 && ROCKSDB_MINOR >= 22))
+ virtual DeleterFn GetDeleter(Handle* handle) const override;
+ #endif
+ // Retrieves number of elements in LRU, for unit test purpose only
+diff --git a/src/kv/rocksdb_cache/ShardedCache.cc b/src/kv/rocksdb_cache/ShardedCache.cc
+index 6cbd89ad..7d160f9c 100644
+--- a/src/kv/rocksdb_cache/ShardedCache.cc
++++ b/src/kv/rocksdb_cache/ShardedCache.cc
+@@ -109,7 +109,7 @@ size_t ShardedCache::GetPinnedUsage() const {
+ return usage;
+ }
+
+-#if (ROCKSDB_MAJOR >= 6 && ROCKSDB_MINOR >= 22)
++#if (ROCKSDB_MAJOR >= 7 || (ROCKSDB_MAJOR == 6 && ROCKSDB_MINOR >= 22))
+ DeleterFn ShardedCache::GetDeleter(Handle* handle) const
+ {
+ uint32_t hash = GetHash(handle);
+diff --git a/src/kv/rocksdb_cache/ShardedCache.h b/src/kv/rocksdb_cache/ShardedCache.h
+index f98421a0..855912d7 100644
+--- a/src/kv/rocksdb_cache/ShardedCache.h
++++ b/src/kv/rocksdb_cache/ShardedCache.h
+@@ -83,11 +83,11 @@ class ShardedCache : public rocksdb::Cache, public PriorityCache::PriCache {
+ virtual size_t GetUsage(rocksdb::Cache::Handle* handle) const override;
+ virtual size_t GetPinnedUsage() const override;
+ virtual size_t GetCharge(Handle* handle) const = 0;
+-#if (ROCKSDB_MAJOR >= 6 && ROCKSDB_MINOR >= 22)
++#if (ROCKSDB_MAJOR >= 7 || (ROCKSDB_MAJOR == 6 && ROCKSDB_MINOR >= 22))
+ virtual DeleterFn GetDeleter(Handle* handle) const override;
+ #endif
+ virtual void DisownData() override = 0;
+-#if (ROCKSDB_MAJOR >= 6 && ROCKSDB_MINOR >= 22)
++#if (ROCKSDB_MAJOR >= 7 || (ROCKSDB_MAJOR == 6 && ROCKSDB_MINOR >= 22))
+ virtual void ApplyToAllEntries(
+ const std::function<void(const rocksdb::Slice& key, void* value, size_t charge,
+ DeleterFn deleter)>& callback,
+--
+2.33.0
+
diff --git a/recipes-extended/ceph/ceph_15.2.0.bb b/recipes-extended/ceph/ceph_18.2.2.bb
index 9423faa4..e6c44188 100644
--- a/recipes-extended/ceph/ceph_15.2.0.bb
+++ b/recipes-extended/ceph/ceph_18.2.2.bb
@@ -1,41 +1,40 @@
SUMMARY = "User space components of the Ceph file system"
-LICENSE = "LGPLv2.1 & GPLv2 & Apache-2.0 & MIT"
+LICENSE = "LGPL-2.1-only & GPL-2.0-only & Apache-2.0 & MIT"
LIC_FILES_CHKSUM = "file://COPYING-LGPL2.1;md5=fbc093901857fcd118f065f900982c24 \
file://COPYING-GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://COPYING;md5=4eb012c221c5fd4b760029a2981a6754 \
+ file://COPYING;md5=5351120989d78252e65dc1a2a92e3617 \
"
-inherit cmake python3native python3-dir systemd
+inherit cmake pkgconfig python3native python3-dir systemd useradd
# Disable python pybind support for ceph temporary, when corss compiling pybind,
# pybind mix cmake and python setup environment, would case a lot of errors.
SRC_URI = "http://download.ceph.com/tarballs/ceph-${PV}.tar.gz \
- file://0001-ceph-fix-build-errors-for-cross-compile.patch \
file://0001-fix-host-library-paths-were-used.patch \
file://ceph.conf \
- file://0001-msg-async-ProtocolV2-avoid-AES-GCM-nonce-reuse-vulne.patch \
- file://0001-msg-async-crypto_onwire-fix-endianness-of-nonce_t.patch \
- file://0001-rgw-reject-unauthenticated-response-header-actions.patch \
- file://0001-rgw-EPERM-to-ERR_INVALID_REQUEST.patch \
- file://0001-rgw-reject-control-characters-in-response-header-act.patch \
- file://0001-mgr-require-all-caps-for-pre-octopus-tell-commands.patch \
- file://0002-mon-enforce-caps-for-pre-octopus-client-tell-command.patch \
- file://0003-PendingReleaseNotes-note-about-security-fix.patch \
+ file://0001-avoid-to_string-error.patch \
+ file://0001-delete-install-layout-deb.patch \
+ file://0001-cephadm-build.py-avoid-using-python3-from-sysroot-wh.patch \
"
-SRC_URI[md5sum] = "1f9af648b4c6d19975aab2583ab99710"
-SRC_URI[sha256sum] = "4292c473d1714a6602c525d7582e4e03ec608f0a1cbc0dd338207e5c7068e0d3"
-SRC_URI[sha1sum] = "7158806ece1483fcccdf1172c20cc34d9401c543"
-SRC_URI[sha384sum] = "20e996dbf30d1e33a6d6aae36960190125ce263d306415bcec5d2b3032b8b8f730deeba3ca318576573127d08909404a"
-SRC_URI[sha512sum] = "07a3ff2ccf1a3abac652ff8c5f1611e7c628fcedcb280adc6cd49792b46fa50c7c29437dc57c2c4a6af708a6833abf8c1a386ef2142d30bd5e1f214ba7aec4f2"
+SRC_URI[sha256sum] = "e70bb5246b4a5d7aa78eb548677a05cc21d0d47945ba2937fddc7511134ffb57"
-DEPENDS = "boost bzip2 curl expat gperf-native \
- keyutils libaio libibverbs lz4 \
- nspr nss \
+DEPENDS = "boost bzip2 curl cryptsetup expat gperf-native \
+ keyutils libaio libibverbs lua lz4 \
+ nspr nss ninja-native \
oath openldap openssl \
- python3 python3-cython-native rabbitmq-c rocksdb snappy udev \
- valgrind xfsprogs zlib \
+ python3 python3-native python3-cython-native python3-pyyaml-native \
+ rabbitmq-c rocksdb snappy thrift udev \
+ valgrind xfsprogs zlib libgcc zstd re2 \
"
-SYSTEMD_SERVICE_${PN} = " \
+
+
+OECMAKE_C_COMPILER = "${@oecmake_map_compiler('CC', d)[0]} --sysroot=${RECIPE_SYSROOT}"
+OECMAKE_CXX_COMPILER = "${@oecmake_map_compiler('CXX', d)[0]} --sysroot=${RECIPE_SYSROOT}"
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM:${PN} = "--system --user-group --home-dir /var/lib/ceph --shell /sbin/nologin ceph"
+
+SYSTEMD_SERVICE:${PN} = " \
ceph-radosgw@.service \
ceph-radosgw.target \
ceph-mon@.service \
@@ -44,6 +43,8 @@ SYSTEMD_SERVICE_${PN} = " \
ceph-mds.target \
ceph-osd@.service \
ceph-osd.target \
+ cephfs-mirror@.service \
+ cephfs-mirror.target \
ceph.target \
ceph-rbd-mirror@.service \
ceph-rbd-mirror.target \
@@ -55,51 +56,65 @@ SYSTEMD_SERVICE_${PN} = " \
ceph-immutable-object-cache@.service \
ceph-immutable-object-cache.target \
"
-OECMAKE_GENERATOR = "Unix Makefiles"
-EXTRA_OECMAKE = "-DWITH_MANPAGE=OFF \
+EXTRA_OECMAKE += "-DWITH_MANPAGE=OFF \
+ -DWITH_JAEGER=OFF \
+ -DWITH_SYSTEM_ZSTD=ON \
-DWITH_FUSE=OFF \
-DWITH_SPDK=OFF \
-DWITH_LEVELDB=OFF \
-DWITH_LTTNG=OFF \
-DWITH_BABELTRACE=OFF \
-DWITH_TESTS=OFF \
+ -DWITH_RADOSGW_SELECT_PARQUET=OFF \
+ -DWITH_RADOSGW_ARROW_FLIGHT=OFF \
-DWITH_MGR=OFF \
-DWITH_MGR_DASHBOARD_FRONTEND=OFF \
-DWITH_SYSTEM_BOOST=ON \
-DWITH_SYSTEM_ROCKSDB=ON \
-DWITH_RDMA=OFF \
-DWITH_RADOSGW_AMQP_ENDPOINT=OFF \
- -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} -DPYTHON_DESIRED=3 \
- -DPython3_EXECUTABLE=${PYTHON} \
-DWITH_RADOSGW_KAFKA_ENDPOINT=OFF \
-"
-
-export STAGING_DIR_HOST
+ -DWITH_REENTRANT_STRSIGNAL=ON \
+ -DWITH_PYTHON3=3.12 \
+ -DPYTHON_DESIRED=3 \
+ -DCMAKE_TOOLCHAIN_FILE:FILEPATH=${WORKDIR}/toolchain.cmake \
+ "
-do_configure_prepend () {
+do_configure:prepend () {
echo "set( CMAKE_SYSROOT \"${RECIPE_SYSROOT}\" )" >> ${WORKDIR}/toolchain.cmake
echo "set( CMAKE_DESTDIR \"${D}\" )" >> ${WORKDIR}/toolchain.cmake
echo "set( PYTHON_SITEPACKAGES_DIR \"${PYTHON_SITEPACKAGES_DIR}\" )" >> ${WORKDIR}/toolchain.cmake
+ # echo "set( CMAKE_C_COMPILER_WORKS TRUE)" >> ${WORKDIR}/toolchain.cmake
+ # echo "set( CMAKE_CXX_COMPILER_FORCED TRUE)" >> ${WORKDIR}/toolchain.cmake
+ echo "set( CMAKE_C_COMPILER_FORCED TRUE )" >> ${WORKDIR}/toolchain.cmake
}
-do_install_append () {
+do_compile:prepend() {
+ export BUILD_DOC=1
+}
+
+do_install:prepend() {
+ export BUILD_DOC=1
+}
+
+do_install:append () {
sed -i -e 's:^#!/usr/bin/python$:&3:' \
-e 's:${WORKDIR}.*python3:${bindir}/python3:' \
${D}${bindir}/ceph ${D}${bindir}/ceph-crash \
- ${D}${bindir}/ceph-volume ${D}${bindir}/ceph-volume-systemd
+ ${D}${bindir}/cephfs-top \
+ ${D}${sbindir}/ceph-volume ${D}${sbindir}/ceph-volume-systemd
find ${D} -name SOURCES.txt | xargs sed -i -e 's:${WORKDIR}::'
install -d ${D}${sysconfdir}/ceph
install -m 644 ${WORKDIR}/ceph.conf ${D}${sysconfdir}/ceph/
install -d ${D}${systemd_unitdir}
- mv ${D}${libexecdir}/systemd/system ${D}${systemd_unitdir}
mv ${D}${libexecdir}/ceph/ceph-osd-prestart.sh ${D}${libdir}/ceph
mv ${D}${libexecdir}/ceph/ceph_common.sh ${D}${libdir}/ceph
# WITH_FUSE is set to OFF, remove ceph-fuse related units
rm ${D}${systemd_unitdir}/system/ceph-fuse.target ${D}${systemd_unitdir}/system/ceph-fuse@.service
}
-do_install_append_class-target () {
+do_install:append:class-target () {
if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
install -d ${D}${sysconfdir}/tmpfiles.d
echo "d /var/lib/ceph/crash/posted 0755 root root - -" > ${D}${sysconfdir}/tmpfiles.d/ceph-placeholder.conf
@@ -111,40 +126,52 @@ do_install_append_class-target () {
fi
}
-pkg_postinst_${PN}() {
+pkg_postinst:${PN}() {
if [ -z "$D" ] && [ -e ${sysconfdir}/init.d/populate-volatile.sh ] ; then
${sysconfdir}/init.d/populate-volatile.sh update
fi
}
-FILES_${PN} += "\
+FILES:${PN} += "\
${libdir}/rados-classes/*.so.* \
${libdir}/ceph/compressor/*.so \
${libdir}/rados-classes/*.so \
${libdir}/ceph/*.so \
+ ${libdir}/libcephsqlite.so \
"
-FILES_${PN} += " \
+FILES:${PN} += " \
/etc/tmpfiles.d/ceph-placeholder.conf \
/etc/default/volatiles/99_ceph-placeholder \
"
-FILES_${PN}-python = "\
+FILES:${PN}-dev = " \
+ ${includedir} \
+ ${libdir}/libcephfs.so \
+ ${libdir}/librados*.so \
+ ${libdir}/librbd.so \
+ ${libdir}/librgw.so \
+"
+
+FILES:${PN}-python = "\
${PYTHON_SITEPACKAGES_DIR}/* \
"
-RDEPENDS_${PN} += "\
+RDEPENDS:${PN} += "\
python3-core \
python3-misc \
python3-modules \
python3-prettytable \
${PN}-python \
+ gawk \
+ bash \
"
COMPATIBLE_HOST = "(x86_64).*"
PACKAGES += " \
${PN}-python \
"
-INSANE_SKIP_${PN}-python += "ldflags"
-INSANE_SKIP_${PN} += "dev-so"
+INSANE_SKIP:${PN}-python += "ldflags buildpaths"
+INSANE_SKIP:${PN} += "dev-so"
+INSANE_SKIP:${PN}-dbg += "buildpaths"
CCACHE_DISABLE = "1"
CVE_PRODUCT = "ceph ceph_storage ceph_storage_mon ceph_storage_osd"
diff --git a/recipes-extended/cloud-init/cloud-init/0001-setup.py-check-for-install-anywhere-in-args.patch b/recipes-extended/cloud-init/cloud-init/0001-setup.py-check-for-install-anywhere-in-args.patch
new file mode 100644
index 00000000..e5b214fe
--- /dev/null
+++ b/recipes-extended/cloud-init/cloud-init/0001-setup.py-check-for-install-anywhere-in-args.patch
@@ -0,0 +1,33 @@
+From 5c96379a4727c07fb5222208525013ec8b878184 Mon Sep 17 00:00:00 2001
+From: Bruce Ashfield <bruce.ashfield@gmail.com>
+Date: Wed, 4 Nov 2020 21:15:50 -0500
+Subject: [PATCH] setup.py: check for 'install' anywhere in args
+
+The python3distutils bbclass calls setup.py in a different way then
+cloud-init expects .. the 'install' is not argument 1, but is in fact
+after a 'build' and some other options.
+
+So rather than checking for install to be argv[1], we check for it
+anywhere in the arguments are trigger the template replacement to
+happen.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
+---
+ setup.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: git/setup.py
+===================================================================
+--- git.orig/setup.py
++++ git/setup.py
+@@ -60,7 +60,7 @@
+ that files are different outside of the debian directory."""
+
+ # newer versions just use install.
+- if "install" not in sys.argv:
++ if not ('install' in sys.argv or sys.argv[1].startswith('bdist*')):
+ return template
+
+ tmpl_ext = ".tmpl"
diff --git a/recipes-extended/cloud-init/cloud-init/cloud-init-source-local-lsb-functions.patch b/recipes-extended/cloud-init/cloud-init/cloud-init-source-local-lsb-functions.patch
new file mode 100644
index 00000000..0b396781
--- /dev/null
+++ b/recipes-extended/cloud-init/cloud-init/cloud-init-source-local-lsb-functions.patch
@@ -0,0 +1,66 @@
+From 72dd3b4b38705442d821fe97a40061f23e748769 Mon Sep 17 00:00:00 2001
+From: Bruce Ashfield <bruce.ashfield@windriver.com>
+Date: Thu, 6 Mar 2014 01:55:09 -0500
+Subject: [PATCH] cloud-init: source local lsb functions
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
+---
+ sysvinit/debian/cloud-config | 1 +
+ sysvinit/debian/cloud-final | 1 +
+ sysvinit/debian/cloud-init | 1 +
+ sysvinit/debian/cloud-init-local | 1 +
+ 4 files changed, 4 insertions(+)
+
+diff --git a/sysvinit/debian/cloud-config b/sysvinit/debian/cloud-config
+index 53322748ac65..7874dcfab9b0 100644
+--- a/sysvinit/debian/cloud-config
++++ b/sysvinit/debian/cloud-config
+@@ -30,6 +30,7 @@ SCRIPTNAME=/etc/init.d/$NAME
+ # Depend on lsb-base (>= 3.2-14) to ensure that this file is present
+ # and status_of_proc is working.
+ . /lib/lsb/init-functions
++. /etc/init.d/functions
+
+ if init_is_upstart; then
+ case "$1" in
+diff --git a/sysvinit/debian/cloud-final b/sysvinit/debian/cloud-final
+index 55afc8b0678a..661314f0b64c 100644
+--- a/sysvinit/debian/cloud-final
++++ b/sysvinit/debian/cloud-final
+@@ -32,6 +32,7 @@ SCRIPTNAME=/etc/init.d/$NAME
+ # Depend on lsb-base (>= 3.2-14) to ensure that this file is present
+ # and status_of_proc is working.
+ . /lib/lsb/init-functions
++. /etc/init.d/functions
+
+ if init_is_upstart; then
+ case "$1" in
+diff --git a/sysvinit/debian/cloud-init b/sysvinit/debian/cloud-init
+index 48fa04233f00..d3ccec99bacc 100755
+--- a/sysvinit/debian/cloud-init
++++ b/sysvinit/debian/cloud-init
+@@ -30,6 +30,7 @@ SCRIPTNAME=/etc/init.d/$NAME
+ # Depend on lsb-base (>= 3.2-14) to ensure that this file is present
+ # and status_of_proc is working.
+ . /lib/lsb/init-functions
++. /etc/init.d/functions
+
+ if init_is_upstart; then
+ case "$1" in
+diff --git a/sysvinit/debian/cloud-init-local b/sysvinit/debian/cloud-init-local
+index 802ee8e9f386..c309e8347324 100644
+--- a/sysvinit/debian/cloud-init-local
++++ b/sysvinit/debian/cloud-init-local
+@@ -29,6 +29,7 @@ SCRIPTNAME=/etc/init.d/$NAME
+ # Depend on lsb-base (>= 3.2-14) to ensure that this file is present
+ # and status_of_proc is working.
+ . /lib/lsb/init-functions
++. /etc/init.d/functions
+
+ if init_is_upstart; then
+ case "$1" in
+--
+1.7.10.4
+
diff --git a/recipes-extended/cloud-init/cloud-init_git.bb b/recipes-extended/cloud-init/cloud-init_git.bb
new file mode 100644
index 00000000..6cb3d3b5
--- /dev/null
+++ b/recipes-extended/cloud-init/cloud-init_git.bb
@@ -0,0 +1,73 @@
+DESCRIPTION = "Init scripts for use on cloud images"
+HOMEPAGE = "https://github.com/canonical/cloud-init"
+SECTION = "devel/python"
+LICENSE = "GPL-3.0-only | Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c6dd79b6ec2130a3364f6fa9d6380408 \
+ file://LICENSE-GPLv3;md5=d32239bcb673463ab874e80d47fae504 \
+ file://LICENSE-Apache2.0;md5=3b83ef96387f14655fc854ddc3c6bd57 \
+"
+
+SRCREV = "e982c20875db3750c8dfc1915e7a4cee37376924"
+SRC_URI = "git://github.com/canonical/cloud-init;branch=24.1.x;protocol=https \
+ file://cloud-init-source-local-lsb-functions.patch \
+ file://0001-setup.py-check-for-install-anywhere-in-args.patch \
+"
+
+PV = "v23.4.1+git"
+
+S = "${WORKDIR}/git"
+
+DISTUTILS_INSTALL_ARGS:append = " ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', '--init-system=sysvinit_deb', '', d)}"
+DISTUTILS_INSTALL_ARGS:append = " ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--init-system=systemd', '', d)}"
+
+do_install:append() {
+ ln -s ${libdir}/${BPN}/uncloud-init ${D}${sysconfdir}/cloud/uncloud-init
+ ln -s ${libdir}/${BPN}/write-ssh-key-fingerprints ${D}${sysconfdir}/cloud/write-ssh-key-fingerprints
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
+ install -m 755 -d ${D}${sysconfdir}/init.d/
+ install -m 755 ${S}/sysvinit/debian/* ${D}${sysconfdir}/init.d/
+ fi
+
+}
+
+inherit pkgconfig
+inherit setuptools3_legacy
+inherit update-rc.d
+inherit systemd
+
+# setup.py calls "pkg-config systemd --variable=systemdsystemunitdir" and needs to find our dev manager
+DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)}"
+DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'udev', '', d)}"
+
+inherit python3native
+
+PACKAGES += "${PN}-systemd"
+
+FILES:${PN} += "${sysconfdir}/* \
+ ${datadir}/* \
+ ${nonarch_libdir}/${BPN}/*"
+
+FILES:${PN}-systemd += "${systemd_unitdir}/*"
+RDEPENDS:${PN}-systemd += " ${PN}"
+
+INITSCRIPT_PACKAGES = "${PN}"
+INITSCRIPT_NAME:${BPN} = "cloud-init"
+
+DEPENDS += "python3-pyyaml-native \
+ python3-requests-native \
+ python3-jinja2-native \
+ "
+
+RDEPENDS:${PN} = "python3 \
+ python3-jinja2 \
+ python3-configobj \
+ python3-requests \
+ python3-jsonpatch \
+ python3-jsonschema \
+ python3-pyyaml \
+ python3-oauthlib \
+ python3-netifaces \
+ python3-charset-normalizer \
+ bash \
+ "
+
diff --git a/recipes-extended/dev86/dev86/0001-cpp-Makefile-respect-LDFLAGS-when-building-bcc-cpp.patch b/recipes-extended/dev86/dev86/0001-cpp-Makefile-respect-LDFLAGS-when-building-bcc-cpp.patch
new file mode 100644
index 00000000..85f3aef8
--- /dev/null
+++ b/recipes-extended/dev86/dev86/0001-cpp-Makefile-respect-LDFLAGS-when-building-bcc-cpp.patch
@@ -0,0 +1,25 @@
+From 12f3a54801e15f3bdd5222ca1487f2fe36141c5d Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Fri, 14 May 2021 06:30:18 -0700
+Subject: [PATCH] cpp/Makefile: respect LDFLAGS when building bcc-cpp
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ cpp/Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/cpp/Makefile b/cpp/Makefile
+index 0ea43cc..303b43c 100644
+--- a/cpp/Makefile
++++ b/cpp/Makefile
+@@ -3,7 +3,7 @@ CFLAGS=-Wall -Wstrict-prototypes
+ all: bcc-cpp
+
+ bcc-cpp: main.o cpp.o hash.o token1.o token2.o
+- $(CC) $(CFLAGS) -o bcc-cpp main.o cpp.o hash.o token1.o token2.o
++ $(CC) $(CFLAGS) $(LDFLAGS) -o bcc-cpp main.o cpp.o hash.o token1.o token2.o
+
+ clean realclean:
+ rm -f bcc-cpp main.o cpp.o hash.o token1.o token2.o tmp.h
diff --git a/recipes-extended/dev86/dev86/0001-cpp-fix-race-writing-token.h-files.patch b/recipes-extended/dev86/dev86/0001-cpp-fix-race-writing-token.h-files.patch
new file mode 100644
index 00000000..e009e01a
--- /dev/null
+++ b/recipes-extended/dev86/dev86/0001-cpp-fix-race-writing-token.h-files.patch
@@ -0,0 +1,45 @@
+Upstream-Status: Submitted [https://github.com/jbruchon/dev86/pull/23]
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+From f507ee398ae20e4e97f01dfbd9a8709a90bc760f Mon Sep 17 00:00:00 2001
+From: Ross Burton <ross.burton@arm.com>
+Date: Fri, 29 Apr 2022 16:44:08 +0100
+Subject: [PATCH] cpp: fix race writing token.h files
+
+The rules for token1.h and token2.h both write to a temporary file tmp.h
+before renaming to token1.h or token2.h. However, in a parallel build
+these will execute at the same time and race.
+
+ gperf -aptTc -N is_ctok -H hash1 token1.tok > tmp.h
+ gperf -aptTc -k1,3 -N is_ckey -H hash2 token2.tok > tmp.h
+ mv tmp.h token1.h
+ mv tmp.h token2.h
+ mv: cannot stat 'tmp.h': No such file or directory
+
+By using gperf --output-file, the race is avoided entirely.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+---
+ cpp/Makefile | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/cpp/Makefile b/cpp/Makefile
+index 0ea43cc..743694f 100644
+--- a/cpp/Makefile
++++ b/cpp/Makefile
+@@ -20,9 +20,7 @@ token1.o: token1.h
+ token2.o: token2.h
+
+ token1.h: token1.tok
+- gperf -aptTc -N is_ctok -H hash1 token1.tok > tmp.h
+- mv tmp.h token1.h
++ gperf -aptTc -N is_ctok -H hash1 --output-file $@ $<
+
+ token2.h: token2.tok
+- gperf -aptTc -k1,3 -N is_ckey -H hash2 token2.tok > tmp.h
+- mv tmp.h token2.h
++ gperf -aptTc -k1,3 -N is_ckey -H hash2 --output-file $@ $<
+--
+2.25.1
+
diff --git a/recipes-extended/dev86/dev86/0003-cpp-update-token1.tok-to-make-new-gperf-happy-regen..patch b/recipes-extended/dev86/dev86/0003-cpp-update-token1.tok-to-make-new-gperf-happy-regen..patch
new file mode 100644
index 00000000..47c283b2
--- /dev/null
+++ b/recipes-extended/dev86/dev86/0003-cpp-update-token1.tok-to-make-new-gperf-happy-regen..patch
@@ -0,0 +1,30 @@
+From e908a3ad04bb40e425542b85fbb3a1eb5a38e194 Mon Sep 17 00:00:00 2001
+From: Tee-Kiah Chia <tkchia@users.noreply.github.com>
+Date: Thu, 27 Feb 2020 00:52:05 +0800
+Subject: [PATCH] [cpp] update token1.tok to make new gperf happy; regen.
+ token1.h
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+Upstream-Status: Pending [it was submitted in https://github.com/jbruchon/dev86/pull/19
+but then closed by author]
+
+Remove regenerated token1.h as we'll force it to regenerate in do_compile.
+
+---
+ cpp/token1.h | 170 +++++++++++++++++++++++++++++++++----------------
+ cpp/token1.tok | 2 +-
+ 2 files changed, 115 insertions(+), 57 deletions(-)
+
+diff --git a/cpp/token1.tok b/cpp/token1.tok
+index cd668ce..a98926f 100644
+--- a/cpp/token1.tok
++++ b/cpp/token1.tok
+@@ -7,7 +7,7 @@ struct token_trans { char * name; int token; };
+ -=, TK_SUB_ASSIGN
+ *=, TK_MUL_ASSIGN
+ /=, TK_DIV_ASSIGN
+-%=, TK_MOD_ASSIGN
++"%=", TK_MOD_ASSIGN
+ &=, TK_AND_ASSIGN
+ ^=, TK_XOR_ASSIGN
+ |=, TK_OR_ASSIGN
diff --git a/recipes-extended/dev86/dev86/0004-regen-token2.h-token1.h-with-gperf-3.1.patch b/recipes-extended/dev86/dev86/0004-regen-token2.h-token1.h-with-gperf-3.1.patch
new file mode 100644
index 00000000..4a5bb25e
--- /dev/null
+++ b/recipes-extended/dev86/dev86/0004-regen-token2.h-token1.h-with-gperf-3.1.patch
@@ -0,0 +1,59 @@
+From ce2b9747d51df2a4c358a037950f0464f3f53fe8 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Fri, 14 May 2021 14:31:50 +0000
+Subject: [PATCH] regen token2.h, token1.h with gperf-3.1
+
+* update cc.h, token1.c, token2.c to be compatible with
+ gperf-3.1 output
+
+Upstream-Status: Pending
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+
+Remove regenerated token2.h as we'll force it to regenerate in do_compile.
+---
+ cpp/cc.h | 4 +-
+ cpp/token1.c | 2 +-
+ cpp/token1.h | 22 ++----
+ cpp/token2.c | 2 +-
+ cpp/token2.h | 211 +++++++++++++++++++++++++++++++--------------------
+ 5 files changed, 140 insertions(+), 101 deletions(-)
+
+diff --git a/cpp/cc.h b/cpp/cc.h
+index 9c298e7..3724543 100644
+--- a/cpp/cc.h
++++ b/cpp/cc.h
+@@ -25,8 +25,8 @@ extern int dialect;
+ extern int gettok P((void));
+
+ struct token_trans { char * name; int token; };
+-struct token_trans * is_ctok P((const char *str, unsigned int len));
+-struct token_trans * is_ckey P((const char *str, unsigned int len));
++struct token_trans * is_ctok P((register const char *str, register size_t len));
++struct token_trans * is_ckey P((register const char *str, register size_t len));
+
+ #define WORDSIZE 128
+ #define TK_WSPACE 256
+diff --git a/cpp/token1.c b/cpp/token1.c
+index f3aa420..cc47f3e 100644
+--- a/cpp/token1.c
++++ b/cpp/token1.c
+@@ -6,6 +6,6 @@
+ #ifdef __GNUC__
+ __inline
+ #endif
+-static unsigned int hash1 P((register const char *, register unsigned int));
++static unsigned int hash1 P((register const char *, register size_t));
+
+ #include "token1.h"
+diff --git a/cpp/token2.c b/cpp/token2.c
+index b4d22b1..fbc790d 100644
+--- a/cpp/token2.c
++++ b/cpp/token2.c
+@@ -6,6 +6,6 @@
+ #ifdef __GNUC__
+ __inline
+ #endif
+-static unsigned int hash2 P((register const char *, register unsigned int));
++static unsigned int hash2 P((register const char *, register size_t));
+
+ #include "token2.h"
diff --git a/recipes-extended/dev86/dev86/cross.patch b/recipes-extended/dev86/dev86/cross.patch
new file mode 100644
index 00000000..fd62c5dd
--- /dev/null
+++ b/recipes-extended/dev86/dev86/cross.patch
@@ -0,0 +1,29 @@
+Build ifdef using BUILD_CC, not CC.
+
+Upstream-Status: Submitted [https://github.com/jbruchon/dev86/pull/22]
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+diff --git a/Makefile b/Makefile
+index 8a61b65..99f41de 100644
+--- a/Makefile
++++ b/Makefile
+@@ -22,6 +22,10 @@ CFLAGS= -O
+ IFDEFNAME= ifdef
+ WD=$(shell pwd)
+
++BUILD_CC ?= $(CC)
++BUILD_CFLAGS ?= $(CFLAGS)
++BUILD_LDFLAGS ?= $(LDFLAGS)
++
+ # Some makes take the last of a list as the default ...
+ all: make.fil
+ PATH="`pwd`/bin:$$PATH" $(MAKE) -f make.fil VERSION=$(VERSION) TOPDIR=`pwd` $@
+@@ -65,7 +69,7 @@ make.fil: $(IFDEFNAME) makefile.in
+ @rm -f tmp.mak tmp.sed
+
+ $(IFDEFNAME): ifdef.c
+- $(CC) $(IFDEFARCH) $(CFLAGS) $(IFDEFFLAGS) $(LDFLAGS) -o $(IFDEFNAME) ifdef.c
++ $(BUILD_CC) $(IFDEFARCH) $(BUILD_CFLAGS) $(IFDEFFLAGS) $(BUILD_LDFLAGS) -o $(IFDEFNAME) ifdef.c
+
+ uninstall:
+ @echo 'Sorry, no go; it was just wrong.'
diff --git a/recipes-extended/dev86/dev86_0.16.20.bb b/recipes-extended/dev86/dev86_0.16.20.bb
deleted file mode 100644
index d93e4871..00000000
--- a/recipes-extended/dev86/dev86_0.16.20.bb
+++ /dev/null
@@ -1,38 +0,0 @@
-DESCRIPTION = "This is a cross development C compiler, assembler and linker environment for the production of 8086 executables (Optionally MSDOS COM)"
-HOMEPAGE = "http://www.debath.co.uk/dev86/"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
-SECTION = "console/tools"
-PR="r0"
-
-SRC_URI="https://github.com/lkundrak/dev86/archive/v${PV}.tar.gz"
-
-SRC_URI[md5sum] = "288af53f256300777efc91d97c082fda"
-SRC_URI[sha256sum] = "533f2a0d2ed61223040f27e5cd007a11d969aaf34f6b709ece122b1e6fc50580"
-
-S = "${WORKDIR}/dev86-${PV}"
-
-BBCLASSEXTEND = "native"
-EXTRA_OEMAKE = "VERSION=${PV} PREFIX=${prefix} DIST=${D}"
-
-do_compile() {
-
- oe_runmake make.fil
- oe_runmake -f make.fil bcc86 as86 ld86
-
-}
-
-do_install() {
-
- if [ "${prefix}"=="" ] ; then
- export prefix=/usr
- fi
-
- oe_runmake install-bcc
- ln -s ../lib/bcc/bcc-cpp ${D}${prefix}/bin/bcc-cpp
- ln -s ../lib/bcc/bcc-cc1 ${D}${prefix}/bin/bcc-cc1
-
-}
-COMPATIBLE_HOST = "(i.86|x86_64).*-linux"
-FILES_${PN} += "${libdir}/bcc"
-INSANE_SKIP_${PN} = "already-stripped"
diff --git a/recipes-extended/dev86/dev86_git.bb b/recipes-extended/dev86/dev86_git.bb
new file mode 100644
index 00000000..a3d0fded
--- /dev/null
+++ b/recipes-extended/dev86/dev86_git.bb
@@ -0,0 +1,43 @@
+DESCRIPTION = "This is a cross development C compiler, assembler and linker environment for the production of 8086 executables (Optionally MSDOS COM)"
+HOMEPAGE = "http://www.debath.co.uk/dev86/"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
+SECTION = "console/tools"
+
+BASE_PV="0.16.21"
+PV = "${BASE_PV}+git"
+SRCREV = "e254e0b19651d3b8a20225b40281c9974a95dec4"
+SRC_URI = "git://github.com/jbruchon/${BPN}.git;protocol=https;branch=master \
+ file://0001-cpp-Makefile-respect-LDFLAGS-when-building-bcc-cpp.patch \
+ file://0003-cpp-update-token1.tok-to-make-new-gperf-happy-regen..patch \
+ file://0004-regen-token2.h-token1.h-with-gperf-3.1.patch \
+ file://cross.patch \
+ file://0001-cpp-fix-race-writing-token.h-files.patch \
+"
+
+S = "${WORKDIR}/git"
+
+DEPENDS = "gperf-native"
+
+BBCLASSEXTEND = "native nativesdk"
+EXTRA_OEMAKE = "VERSION=${BASE_PV} PREFIX=${prefix} DIST=${D} LDFLAGS='${LDFLAGS}' INEXE=''"
+
+do_compile() {
+ # always regenerate token1.h, token2.h for deterministic behavior
+ rm -f ${S}/cpp/token1.h ${S}/cpp/token2.h
+ oe_runmake make.fil
+ oe_runmake -f make.fil bcc86 as86 ld86
+}
+
+do_install() {
+
+ if [ "${prefix}"=="" ] ; then
+ export prefix=/usr
+ fi
+
+ oe_runmake install-bcc
+ ln -s ../lib/bcc/bcc-cpp ${D}${prefix}/bin/bcc-cpp
+ ln -s ../lib/bcc/bcc-cc1 ${D}${prefix}/bin/bcc-cc1
+}
+
+FILES:${PN} += "${libdir}/bcc"
diff --git a/recipes-extended/diod/diod_1.0.24.bb b/recipes-extended/diod/diod_1.0.24.bb
index a4a85284..5e191dc0 100644
--- a/recipes-extended/diod/diod_1.0.24.bb
+++ b/recipes-extended/diod/diod_1.0.24.bb
@@ -5,32 +5,29 @@ Although the kernel client supports several 9P variants, diod only supports \
9P2000.L, and only in its feature-complete form, as it appeared in 2.6.38."
SECTION = "console/network"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
-PV = "1.0.24+git${SRCPV}"
-SRCREV = "0ea3fe3d829b5085307cd27a512708d99ef48199"
-SRC_URI = "git://github.com/chaos/diod.git;protocol=git \
+PV = "1.0.24+git"
+SRCREV = "b4b5e8e00ed11b21d7fcf05a080dc054a8eac2d6"
+SRC_URI = "git://github.com/chaos/diod.git;protocol=https;branch=master \
file://diod \
file://diod.conf \
- file://0001-build-allow-builds-to-work-with-separate-build-dir.patch \
- file://0002-auto.diod.in-remove-bashisms.patch \
- file://0001-diod-ops.c-add-header-file-for-makedev.patch \
- file://0001-drod-add-option-to-config-systemddir.patch \
- "
+ file://0001-build-Find-lua-with-pkg-config.patch \
+ "
DEPENDS = "libcap ncurses tcp-wrappers lua"
-EXTRA_OECONF = "--with-systemddir=${systemd_unitdir}/system"
+EXTRA_OEMAKE += "systemddir=${systemd_unitdir}/system"
S = "${WORKDIR}/git"
-inherit autotools systemd
+inherit autotools pkgconfig systemd
-do_install_append () {
+do_install:append () {
# install our init based on start-stop-daemon
install -D -m 0755 ${WORKDIR}/diod ${D}${sysconfdir}/init.d/diod
# install a real(not commented) configuration file for diod
install -m 0644 ${WORKDIR}/diod.conf ${D}${sysconfdir}/diod.conf
}
-FILES_${PN} += "${systemd_unitdir}"
+FILES:${PN} += "${systemd_unitdir}"
diff --git a/recipes-extended/diod/files/0001-build-Find-lua-with-pkg-config.patch b/recipes-extended/diod/files/0001-build-Find-lua-with-pkg-config.patch
new file mode 100644
index 00000000..9f61792a
--- /dev/null
+++ b/recipes-extended/diod/files/0001-build-Find-lua-with-pkg-config.patch
@@ -0,0 +1,50 @@
+From 8124eec4e59222f1c3f3dc4d7e6706e13c33755c Mon Sep 17 00:00:00 2001
+From: Ola x Nilsson <olani@axis.com>
+Date: Wed, 6 Mar 2024 18:40:16 +0100
+Subject: [PATCH] build: Find lua with pkg-config
+
+ax_lua.m4 does not support cross compilation.
+
+Upstream-Status: Inappropriate (Embedded specific)
+
+---
+ configure.ac | 26 +++++++++++++++++++++++++-
+ 1 file changed, 25 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index e8fcdb2..f3ebdc5 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -121,7 +121,31 @@ AC_ARG_ENABLE([config],
+ [AS_HELP_STRING([--disable-config], [disable lua config file support])])
+
+ AS_IF([test "x$enable_config" != "xno"], [
+- AX_PROG_LUA([5.1],[5.5])
++ dnl Use pkg_config to check for lua settings. This is not standard
++ dnl as lua typically does not distribute a pc file. The
++ dnl OpenEmbedded recipe adds one that can be used. Reuse/replicate
++ dnl as much of AX_PROG_LUA as possible so AX_LUA_HEADERS and
++ dnl AX_LUA_LIBS are still usable.
++ PKG_CHECK_EXISTS([lua], [
++ AS_IF([
++ $PKG_CONFIG --atleast-version=5.1 lua && $PKG_CONFIG --max-version=5.5 lua
++ ],[
++ AC_ARG_VAR([LUA], [The LUA interpreter, e.g. /usr/bin/lua5.1])
++ dnl should really check that the file exists ...
++ AC_SUBST([LUA], [${bindir}/lua])
++ AC_CACHE_CHECK([for $LUA version], [ax_cv_lua_version], [
++ ax_cv_lua_version=[`$PKG_CONFIG --modversion lua | $SED 's/^\([0-9]\+\.[0-9]\+\).*/\1/'`]
++ ])
++ AS_IF([test "x$ax_cv_lua_version" = 'x'],
++ [AC_MSG_ERROR([invalid Lua version number])])
++ AC_SUBST([LUA_VERSION], [$ax_cv_lua_version])
++ AC_SUBST([LUA_SHORT_VERSION], [`echo "$LUA_VERSION" | $SED 's|\.||'`])
++ ],[
++ AC_MSG_ERROR([Incorrect lua version])
++ ])
++ ],[
++ AX_PROG_LUA([5.1],[5.5])
++ ])
+ AX_LUA_HEADERS([],[
+ AC_MSG_ERROR([Install lua headers or configure with --disable-config])
+ ])
diff --git a/recipes-extended/diod/files/0001-build-allow-builds-to-work-with-separate-build-dir.patch b/recipes-extended/diod/files/0001-build-allow-builds-to-work-with-separate-build-dir.patch
deleted file mode 100644
index f40e0eb5..00000000
--- a/recipes-extended/diod/files/0001-build-allow-builds-to-work-with-separate-build-dir.patch
+++ /dev/null
@@ -1,126 +0,0 @@
-From 43403468298ef4167baa5d84de2ee2eaf7f4007a Mon Sep 17 00:00:00 2001
-From: Mark Asselstine <mark.asselstine@windriver.com>
-Date: Fri, 9 Jan 2015 18:34:04 +0000
-Subject: [PATCH 1/2] build: allow builds to work with separate build dir
-
-Remove assumptions in include paths that assume the build
-is happening in the source directories.
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
----
- diod/Makefile.am | 2 +-
- libdiod/Makefile.am | 2 +-
- liblsd/Makefile.am | 2 +-
- libnpclient/Makefile.am | 2 +-
- scripts/Makefile.am | 6 +++---
- tests/kern/dbench/Makefile.am | 4 ++--
- utils/Makefile.am | 2 +-
- 7 files changed, 10 insertions(+), 10 deletions(-)
-
-diff --git a/diod/Makefile.am b/diod/Makefile.am
-index 7644be7..fdaf130 100644
---- a/diod/Makefile.am
-+++ b/diod/Makefile.am
-@@ -1,7 +1,7 @@
- AM_CFLAGS = @GCCWARN@
-
- AM_CPPFLAGS = \
-- -I../libnpfs -I../liblsd -I../libdiod
-+ -I$(srcdir)/../libnpfs -I$(srcdir)/../liblsd -I$(srcdir)/../libdiod
-
- sbin_PROGRAMS = diod
-
-diff --git a/libdiod/Makefile.am b/libdiod/Makefile.am
-index 4810e14..6905cdd 100644
---- a/libdiod/Makefile.am
-+++ b/libdiod/Makefile.am
-@@ -1,7 +1,7 @@
- AM_CFLAGS = @GCCWARN@
-
- AM_CPPFLAGS = \
-- -I../libnpfs -I../libnpclient -I../liblsd
-+ -I$(srcdir)/../libnpfs -I$(srcdir)/../libnpclient -I$(srcdir)/../liblsd
-
- noinst_LIBRARIES = libdiod.a
-
-diff --git a/liblsd/Makefile.am b/liblsd/Makefile.am
-index c3e5658..7e18bf8 100644
---- a/liblsd/Makefile.am
-+++ b/liblsd/Makefile.am
-@@ -1,6 +1,6 @@
- AM_CFLAGS = @GCCWARN@
-
--AM_CPPFLAGS = -I../libdiod
-+AM_CPPFLAGS = -I$(srcdir)/../libdiod
-
- noinst_LIBRARIES = liblsd.a
-
-diff --git a/libnpclient/Makefile.am b/libnpclient/Makefile.am
-index 5305df9..cbaf266 100644
---- a/libnpclient/Makefile.am
-+++ b/libnpclient/Makefile.am
-@@ -1,7 +1,7 @@
- AM_CFLAGS = @GCCWARN@
-
- AM_CPPFLAGS = \
-- -I../libnpfs
-+ -I$(srcdir)/../libnpfs
-
- noinst_LIBRARIES = libnpclient.a
-
-diff --git a/scripts/Makefile.am b/scripts/Makefile.am
-index 51c24a3..2aba728 100644
---- a/scripts/Makefile.am
-+++ b/scripts/Makefile.am
-@@ -1,9 +1,9 @@
--systemddir=$(sysconfdir)/systemd/system
-+systemddir=/lib/systemd/system
-
- install-data-local:
-- $(top_srcdir)/config/install-sh -m 755 $(srcdir)/auto.diod \
-+ $(top_srcdir)/config/install-sh -m 755 ./auto.diod \
- $(DESTDIR)$(sysconfdir)/auto.diod
-- $(top_srcdir)/config/install-sh -m 755 $(srcdir)/diod.service \
-+ $(top_srcdir)/config/install-sh -m 644 ./diod.service \
- $(DESTDIR)$(systemddir)/diod.service
-
- uninstall-local:
-diff --git a/tests/kern/dbench/Makefile.am b/tests/kern/dbench/Makefile.am
-index e0cdefa..1704f9f 100644
---- a/tests/kern/dbench/Makefile.am
-+++ b/tests/kern/dbench/Makefile.am
-@@ -2,7 +2,7 @@ AM_CFLAGS = -w
-
- # VERSION=4.00
-
--AM_CPPFLAGS = -DDATADIR=\"$(X_DATADIR)\"
-+AM_CPPFLAGS = -I. -DDATADIR=\"$(X_DATADIR)\"
-
- LDADD = $(LIBPOPT)
-
-@@ -25,6 +25,6 @@ BUILT_SOURCES = proto.h
- CLEANFILES = proto.h
-
- proto.h: $(dbench_SOURCES) mkproto.pl
-- perl mkproto.pl $(dbench_SOURCES) > proto.h
-+ $(srcdir)/mkproto.pl $(patsubst %,$(srcdir),$(dbench_SOURCES)) > proto.h
-
- EXTRA_DIST = mkproto.pl
-diff --git a/utils/Makefile.am b/utils/Makefile.am
-index 169b6c4..91d571d 100644
---- a/utils/Makefile.am
-+++ b/utils/Makefile.am
-@@ -1,7 +1,7 @@
- AM_CFLAGS = @GCCWARN@
-
- AM_CPPFLAGS = \
-- -I../libnpfs -I../liblsd -I../libdiod -I../libnpclient
-+ -I$(srcdir)/../libnpfs -I$(srcdir)/../liblsd -I$(srcdir)/../libdiod -I$(srcdir)/../libnpclient
-
- sbin_PROGRAMS = diodmount diodcat dtop diodload diodls diodshowmount dioddate
-
---
-2.11.0
-
diff --git a/recipes-extended/diod/files/0001-diod-ops.c-add-header-file-for-makedev.patch b/recipes-extended/diod/files/0001-diod-ops.c-add-header-file-for-makedev.patch
deleted file mode 100644
index e6f7ece2..00000000
--- a/recipes-extended/diod/files/0001-diod-ops.c-add-header-file-for-makedev.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From f75836731d6051d85e6317eb4c12465bafb4973e Mon Sep 17 00:00:00 2001
-From: "Hongzhi.Song" <hongzhi.song@windriver.com>
-Date: Fri, 31 Aug 2018 05:47:02 -0400
-Subject: [PATCH] diod/ops.c: add header file for makedev
-
-Error:
-diod/ops.c:845: undefined reference to `makedev'
-
-Fixed:
-Glibc removes sys/sysmacros.h which defines makedev from sys/types.h
-since v2.28. [Commit ID: e16deca62e16f]
-
-And then glibc suggestions us to include <sys/sysmacros.h> directly if
-code needs it.
-
-Upstream-Status: Submitted
-[diod:
-mail: v9fs-developer@lists.sourceforge.net
-author: hongzhi.song@windriver.com]
-
-Signed-off-by: Hongzhi.Song <hongzhi.song@windriver.com>
----
- diod/ops.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/diod/ops.c b/diod/ops.c
-index c6c8291..469a502 100644
---- a/diod/ops.c
-+++ b/diod/ops.c
-@@ -74,6 +74,7 @@
- #include <pthread.h>
- #include <errno.h>
- #include <sys/types.h>
-+#include <sys/sysmacros.h>
-
- #ifdef __FreeBSD__
- #if !__BSD_VISIBLE
---
-2.8.1
-
diff --git a/recipes-extended/diod/files/0001-drod-add-option-to-config-systemddir.patch b/recipes-extended/diod/files/0001-drod-add-option-to-config-systemddir.patch
deleted file mode 100644
index 8b70d8fa..00000000
--- a/recipes-extended/diod/files/0001-drod-add-option-to-config-systemddir.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 365159534b1981dfe291ecc05d2455f32652a166 Mon Sep 17 00:00:00 2001
-From: Changqing Li <changqing.li@windriver.com>
-Date: Mon, 26 Aug 2019 18:00:39 +0800
-Subject: [PATCH] drod: add option to config systemddir
-
-Upstream-Status: Pending
-
-Not need to send upstream, since upstream have refactor
-related code, but not released. and this version release
-4 years ago, not proper to just backport one or more
-commits, this patch maybe could be dropped after upgrade.
-
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
----
- configure.ac | 9 +++++++++
- scripts/Makefile.am | 2 +-
- 2 files changed, 10 insertions(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 1cb8579..3e4a5ec 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -25,6 +25,15 @@ AC_DEFINE([_GNU_SOURCE], 1,
- [Define _GNU_SOURCE so that we get all necessary prototypes])
-
- ##
-+#Add option to config systemddir
-+##
-+AC_ARG_WITH([systemddir],
-+ [AS_HELP_STRING([--with-systemddir=DIR], [systemd dir])],
-+ [systemddir=$withval],
-+ [systemddir="/lib/systemd/system"])
-+AC_SUBST([systemddir], [$systemddir])
-+
-+##
- # Checks for programs
- ##
- AC_PROG_CC
-diff --git a/scripts/Makefile.am b/scripts/Makefile.am
-index 2aba728..40822b7 100644
---- a/scripts/Makefile.am
-+++ b/scripts/Makefile.am
-@@ -1,4 +1,4 @@
--systemddir=/lib/systemd/system
-+systemddir=@systemddir@
-
- install-data-local:
- $(top_srcdir)/config/install-sh -m 755 ./auto.diod \
---
-2.7.4
-
diff --git a/recipes-extended/diod/files/0002-auto.diod.in-remove-bashisms.patch b/recipes-extended/diod/files/0002-auto.diod.in-remove-bashisms.patch
deleted file mode 100644
index 65d6ff6b..00000000
--- a/recipes-extended/diod/files/0002-auto.diod.in-remove-bashisms.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 5a9e09dc5de833db11607530351cd87cecbfd17e Mon Sep 17 00:00:00 2001
-From: Roy Li <rongqing.li@windriver.com>
-Date: Thu, 22 Jun 2017 06:32:30 +0000
-Subject: [PATCH 2/2] auto.diod.in: remove bashisms
-
-Upstream-Status: Pending
-
-Signed-off-by: Roy Li <rongqing.li@windriver.com>
----
- scripts/auto.diod.in | 14 +++++++-------
- 1 file changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/scripts/auto.diod.in b/scripts/auto.diod.in
-index f63e004..4d5fc3a 100755
---- a/scripts/auto.diod.in
-+++ b/scripts/auto.diod.in
-@@ -1,4 +1,4 @@
--#!/bin/bash
-+#!/bin/sh
- #
- # auto.diod - executable automounter map for diod file systems
- #
-@@ -41,15 +41,15 @@ dcatopts="${DIOD_TIMEOUT:+-t $DIOD_TIMEOUT}"
- for server in $DIOD_SERVERS; do
- $DIOD_DIODCAT -s $server $dcatopts exports | awk '{print $1}' |\
- while read path; do
-- if [ "$path" == "/" ]; then
-- if [ "$key" == "ROOT" ]; then
-+ if [ "$path" = "/" ]; then
-+ if [ "$key" = "ROOT" ]; then
- echo "$prefix $server:$path"
- exit 0
- fi
-- elif [ "$key" == "$(echo $path|sed -e's/^\///' -e's/\//./g')" ] \
-- || [ "$key" == "$(echo $path|sed -e's/^\///' -e's/\//_/g')" ] \
-- || [ "$key" == "$(echo $path|sed -e's/^\///' -e's/\//-/g')" ] \
-- || [ "$key" == "$(basename $path)" ]; then
-+ elif [ "$key" = "$(echo $path|sed -e's/^\///' -e's/\//./g')" ] \
-+ || [ "$key" = "$(echo $path|sed -e's/^\///' -e's/\//_/g')" ] \
-+ || [ "$key" = "$(echo $path|sed -e's/^\///' -e's/\//-/g')" ] \
-+ || [ "$key" = "$(basename $path)" ]; then
- echo "$prefix $server:$path"
- exit 0
- fi
---
-2.11.0
-
diff --git a/recipes-extended/fuse-overlayfs/fuse-overlayfs/0001-utils-Add-missing-include-on-limits.h.patch b/recipes-extended/fuse-overlayfs/fuse-overlayfs/0001-utils-Add-missing-include-on-limits.h.patch
new file mode 100644
index 00000000..cd504ce5
--- /dev/null
+++ b/recipes-extended/fuse-overlayfs/fuse-overlayfs/0001-utils-Add-missing-include-on-limits.h.patch
@@ -0,0 +1,36 @@
+From b48e958aaecfdfc3bb48db082a548a09d6487181 Mon Sep 17 00:00:00 2001
+From: Andrei Gherzan <andrei.gherzan@huawei.com>
+Date: Wed, 13 Jul 2022 12:05:07 +0200
+Subject: [PATCH] utils: Add missing include on limits.h
+
+This happens to not be an issue with glibc because it gets indirectly
+included via dirent.h:
+
+.. /usr/include/dirent.h
+[...]
+..... /usr/include/linux/limits.h
+
+When using the musl libc implementation, that is not the case anymore
+and the build fails.
+
+Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
+Upstream-Status: Submitted [https://github.com/containers/fuse-overlayfs/pull/362]
+---
+ utils.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/utils.h b/utils.h
+index 13a177e..6fbc328 100644
+--- a/utils.h
++++ b/utils.h
+@@ -32,6 +32,7 @@
+ # include <sys/types.h>
+ # include <fcntl.h>
+ # include "fuse-overlayfs.h"
++# include <limits.h>
+
+ # define XATTR_OVERRIDE_STAT "user.fuseoverlayfs.override_stat"
+ # define XATTR_PRIVILEGED_OVERRIDE_STAT "security.fuseoverlayfs.override_stat"
+--
+2.25.1
+
diff --git a/recipes-extended/fuse-overlayfs/fuse-overlayfs_0.6.4.bb b/recipes-extended/fuse-overlayfs/fuse-overlayfs_1.9.bb
index a8bbf0f5..31199928 100644
--- a/recipes-extended/fuse-overlayfs/fuse-overlayfs_0.6.4.bb
+++ b/recipes-extended/fuse-overlayfs/fuse-overlayfs_1.9.bb
@@ -2,11 +2,14 @@ SUMMARY = "FUSE implementation of overlayfs."
DESCRIPTION = "An implementation of overlay+shiftfs in FUSE for rootless \
containers."
-LICENSE = "GPLv3+"
+LICENSE = "GPL-3.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-SRCREV = "098d9ad79fdbb8538adde08628408aa32a8b4b17"
-SRC_URI = "git://github.com/containers/fuse-overlayfs.git;nobranch=1"
+SRCREV = "51592ea406f48faeccab288f65dcba6c4a67cd90"
+SRC_URI = " \
+ git://github.com/containers/fuse-overlayfs.git;nobranch=1;protocol=https \
+ file://0001-utils-Add-missing-include-on-limits.h.patch \
+"
DEPENDS = "fuse3"
diff --git a/recipes-extended/hyperstart/hyperstart/0001-container.c-Fix-compiler-errors-that-gcc-8.1.0-repor.patch b/recipes-extended/hyperstart/hyperstart/0001-container.c-Fix-compiler-errors-that-gcc-8.1.0-repor.patch
index 091ce3cf..d48e2647 100644
--- a/recipes-extended/hyperstart/hyperstart/0001-container.c-Fix-compiler-errors-that-gcc-8.1.0-repor.patch
+++ b/recipes-extended/hyperstart/hyperstart/0001-container.c-Fix-compiler-errors-that-gcc-8.1.0-repor.patch
@@ -46,6 +46,8 @@ container.c:176:4: note: 'sprintf' output 9 or more bytes (assuming 520) into a
sprintf(volume, "/%s/_data/%s", path, filevolume);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
---
diff --git a/recipes-extended/hyperstart/hyperstart_git.bb b/recipes-extended/hyperstart/hyperstart_git.bb
index 9f984191..e156cdae 100644
--- a/recipes-extended/hyperstart/hyperstart_git.bb
+++ b/recipes-extended/hyperstart/hyperstart_git.bb
@@ -1,16 +1,16 @@
SUMMARY = "The tiny Init service for HyperContainer"
DESCRIPTION = "The init Task for HyperContainer"
-LICENSE = "Apache-2"
+LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=fa818a259cbed7ce8bc2a22d35a464fc"
inherit autotools-brokensep
-SRC_URI = "git://github.com/hyperhq/hyperstart.git"
+SRC_URI = "git://github.com/hyperhq/hyperstart.git;branch=master;protocol=https"
SRC_URI += "file://0001-container.c-Fix-compiler-errors-that-gcc-8.1.0-repor.patch"
-SRCREV = "15bb718ad34045aa1962a8204f602c6afe9a76ab"
-PV = "v0.2+git${SRCPV}"
+SRCREV = "c0c07d218b482dd07f9068b52a6e7468ae4172ac"
+PV = "v0.2+git"
S = "${WORKDIR}/git"
@@ -23,4 +23,4 @@ do_install() {
install -m644 ${S}/build/arch/x86_64/kernel ${D}/var/lib/hyper/
}
-FILES_${PN} += "/var/lib/hyper"
+FILES:${PN} += "/var/lib/hyper"
diff --git a/recipes-extended/images/container-base.bb b/recipes-extended/images/container-base.bb
index 434239a8..c9dd32d1 100644
--- a/recipes-extended/images/container-base.bb
+++ b/recipes-extended/images/container-base.bb
@@ -18,8 +18,20 @@ IMAGE_INSTALL = " \
base-files \
base-passwd \
netbase \
+ ${CONTAINER_SHELL} \
"
+# If the following is configured in local.conf (or the distro):
+# PACKAGE_EXTRA_ARCHS:append = " container-dummy-provides"
+#
+# it has been explicitly # indicated that we don't want or need a shell, so we'll
+# add the dummy provides.
+#
+# This is required, since there are postinstall scripts in base-files and base-passwd
+# that reference /bin/sh and we'll get a rootfs error if there's no shell or no dummy
+# provider.
+CONTAINER_SHELL ?= "${@bb.utils.contains('PACKAGE_EXTRA_ARCHS', 'container-dummy-provides', 'container-dummy-provides', 'busybox', d)}"
+
# Allow build with or without a specific kernel
IMAGE_CONTAINER_NO_DUMMY = "1"
diff --git a/recipes-extended/images/kvm-image-minimal.bb b/recipes-extended/images/kvm-image-minimal.bb
index b28cc309..c6358e17 100644
--- a/recipes-extended/images/kvm-image-minimal.bb
+++ b/recipes-extended/images/kvm-image-minimal.bb
@@ -11,6 +11,9 @@ IMAGE_INSTALL = " \
kernel-module-kvm-amd \
"
+inherit features_check
+REQUIRED_DISTRO_FEATURES ?= "kvm"
+
IMAGE_FEATURES += "ssh-server-openssh"
IMAGE_LINGUAS = " "
diff --git a/recipes-extended/images/xen-guest-image-minimal.bb b/recipes-extended/images/xen-guest-image-minimal.bb
index 63c7510d..fced7639 100644
--- a/recipes-extended/images/xen-guest-image-minimal.bb
+++ b/recipes-extended/images/xen-guest-image-minimal.bb
@@ -4,14 +4,18 @@ inherit core-image features_check
IMAGE_INSTALL += " \
packagegroup-core-boot \
- ${@bb.utils.contains('MACHINE_FEATURES', 'acpi', 'kernel-module-xen-acpi-processor', '', d)} \
+ ${@bb.utils.contains('MACHINE_FEATURES', 'acpi', '${XEN_ACPI_PROCESSOR_MODULE}', '', d)} \
"
+XEN_ACPI_PROCESSOR_MODULE = ""
+XEN_ACPI_PROCESSOR_MODULE:x86 = "kernel-module-xen-acpi-processor"
+XEN_ACPI_PROCESSOR_MODULE:x86-64 = "kernel-module-xen-acpi-processor"
+
IMAGE_INSTALL += "${@bb.utils.contains('IMAGE_FEATURES', 'x11', ' xf86-video-fbdev', '', d)}"
# Install xf86-video-vesa on x86 platforms.
-IMAGE_INSTALL_append_x86-64 = "${@bb.utils.contains('IMAGE_FEATURES', 'x11', ' xf86-video-vesa', '', d)}"
-IMAGE_INSTALL_append_x86 = "${@bb.utils.contains('IMAGE_FEATURES', 'x11', ' xf86-video-vesa', '', d)}"
+IMAGE_INSTALL:append:x86-64 = "${@bb.utils.contains('IMAGE_FEATURES', 'x11', ' xf86-video-vesa', '', d)}"
+IMAGE_INSTALL:append:x86 = "${@bb.utils.contains('IMAGE_FEATURES', 'x11', ' xf86-video-vesa', '', d)}"
REQUIRED_DISTRO_FEATURES += "${@bb.utils.contains('IMAGE_FEATURES', 'x11', ' x11', '', d)} xen"
diff --git a/recipes-extended/images/xen-image-minimal.bb b/recipes-extended/images/xen-image-minimal.bb
index c965f221..fe79a485 100644
--- a/recipes-extended/images/xen-image-minimal.bb
+++ b/recipes-extended/images/xen-image-minimal.bb
@@ -2,18 +2,20 @@ DESCRIPTION = "A minimal xen image"
INITRD_IMAGE = "core-image-minimal-initramfs"
+XEN_KERNEL_MODULES ?= "kernel-module-xen-blkback kernel-module-xen-gntalloc \
+ kernel-module-xen-gntdev kernel-module-xen-netback kernel-module-xen-wdt \
+ ${@bb.utils.contains('MACHINE_FEATURES', 'pci', "${XEN_PCIBACK_MODULE}", '', d)} \
+ ${@bb.utils.contains('MACHINE_FEATURES', 'acpi', '${XEN_ACPI_PROCESSOR_MODULE}', '', d)} \
+ "
+
IMAGE_INSTALL += " \
packagegroup-core-boot \
packagegroup-core-ssh-openssh \
- ${@bb.utils.contains('MACHINE_FEATURES', 'acpi', 'kernel-module-xen-acpi-processor', '', d)} \
- kernel-module-xen-blkback \
- kernel-module-xen-gntalloc \
- kernel-module-xen-gntdev \
- kernel-module-xen-netback \
- ${@bb.utils.contains('MACHINE_FEATURES', 'pci', "${XEN_PCIBACK_MODULE}", '', d)} \
- kernel-module-xen-wdt \
+ ${XEN_KERNEL_MODULES} \
xen-tools \
qemu \
+ kernel-image \
+ kernel-vmlinux \
"
# The hypervisor may not be within the dom0 filesystem image but at least
@@ -21,17 +23,26 @@ IMAGE_INSTALL += " \
do_build[depends] += "xen:do_deploy"
# Networking for HVM-mode guests (x86/64 only) requires the tun kernel module
-IMAGE_INSTALL_append_x86 = "kernel-module-tun"
-IMAGE_INSTALL_append_x86-64 = "kernel-module-tun"
+IMAGE_INSTALL:append:x86 = " kernel-module-tun"
+IMAGE_INSTALL:append:x86-64 = " kernel-module-tun"
# Linux kernel option CONFIG_XEN_PCIDEV_BACKEND depends on X86
XEN_PCIBACK_MODULE = ""
-XEN_PCIBACK_MODULE_x86 = "kernel-module-xen-pciback"
-XEN_PCIBACK_MODULE_x86-64 = "kernel-module-xen-pciback"
+XEN_PCIBACK_MODULE:x86 = "kernel-module-xen-pciback"
+XEN_PCIBACK_MODULE:x86-64 = "kernel-module-xen-pciback"
+XEN_ACPI_PROCESSOR_MODULE = ""
+XEN_ACPI_PROCESSOR_MODULE:x86 = "kernel-module-xen-acpi-processor"
+XEN_ACPI_PROCESSOR_MODULE:x86-64 = "kernel-module-xen-acpi-processor"
LICENSE = "MIT"
+QB_NETWORK_XEN_BRIDGE = "1"
+
inherit core-image
+# Only inherit the qemuboot classes when building for a qemu machine
+QB_QEMU_CLASSES = ""
+QB_QEMU_CLASSES:qemuall = "qemuboot-xen-defaults qemuboot-xen-dtb qemuboot-testimage-network"
+inherit ${QB_QEMU_CLASSES}
do_check_xen_state() {
if [ "${@bb.utils.contains('DISTRO_FEATURES', 'xen', ' yes', 'no', d)}" = "no" ]; then
@@ -41,27 +52,32 @@ do_check_xen_state() {
addtask check_xen_state before do_rootfs
-syslinux_iso_populate_append() {
+# note: this may be unused, see the wic plugin
+syslinux_iso_populate:append() {
install -m 0444 ${STAGING_DATADIR}/syslinux/libcom32.c32 ${ISODIR}${ISOLINUXDIR}
install -m 0444 ${STAGING_DATADIR}/syslinux/mboot.c32 ${ISODIR}${ISOLINUXDIR}
}
-syslinux_hddimg_populate_append() {
+# note: this may be unused, see the wic plugin
+syslinux_hddimg_populate:append() {
install -m 0444 ${STAGING_DATADIR}/syslinux/libcom32.c32 ${HDDDIR}${SYSLINUXDIR}
install -m 0444 ${STAGING_DATADIR}/syslinux/mboot.c32 ${HDDDIR}${SYSLINUXDIR}
}
-grubefi_populate_append() {
+# note: this may be unused, see the wic plugin
+grubefi_populate:append() {
install -m 0644 ${DEPLOY_DIR_IMAGE}/xen-${MACHINE}.gz ${DEST}${EFIDIR}/xen.gz
}
-syslinux_populate_append() {
+# note: this may be unused, see the wic plugin
+syslinux_populate:append() {
install -m 0644 ${DEPLOY_DIR_IMAGE}/xen-${MACHINE}.gz ${DEST}/xen.gz
}
SYSLINUX_XEN_ARGS ?= "loglvl=all guest_loglvl=all console=com1,vga com1=115200,8n1"
SYSLINUX_KERNEL_ARGS ?= "ramdisk_size=32768 root=/dev/ram0 rw console=hvc0 earlyprintk=xen console=tty0 panic=10 LABEL=boot debugshell=5"
+# note: this may be unused, see the wic plugin
build_syslinux_cfg () {
echo "ALLOWOPTIONS 1" > ${SYSLINUX_CFG}
echo "DEFAULT boot" >> ${SYSLINUX_CFG}
@@ -73,14 +89,19 @@ build_syslinux_cfg () {
}
# Enable runqemu. eg: runqemu xen-image-minimal nographic slirp
-WKS_FILE_x86-64 = "directdisk-xen.wks"
-QB_MEM = "-m 400"
-QB_DEFAULT_KERNEL = ""
-QB_DEFAULT_FSTYPE = "wic"
-QB_FSINFO = "wic:kernel-in-fs"
+WKS_FILE:x86-64 = "directdisk-xen.wks"
+WKS_FILE_DEPENDS_DEFAULT:x86-64 = "syslinux-native"
+WKS_FILE:qemux86-64 = "qemuboot-xen-x86-64.wks"
+WKS_FILE_DEPENDS_DEFAULT:qemux86-64 = "syslinux-native"
+QB_MEM ?= "-m 400"
+QB_DEFAULT_KERNEL ?= "none"
+QB_DEFAULT_FSTYPE ?= "wic"
+QB_DEFAULT_FSTYPE:qemux86-64 = "wic"
+QB_FSINFO ?= "wic:kernel-in-fs"
+QB_SERIAL_OPT = "-serial mon:stdio"
# qemux86-64 machine does not include 'wic' in IMAGE_FSTYPES, which is needed
# to boot this image, so add it here:
-IMAGE_FSTYPES_qemux86-64 += "wic"
+IMAGE_FSTYPES:qemux86-64 += "wic"
# Networking: the qemuboot.bbclass default virtio network device works ok
# and so does the emulated e1000 -- choose according to the network device
# drivers that are present in your dom0 Linux kernel. To switch to e1000:
diff --git a/recipes-extended/images/xtf-image.bb b/recipes-extended/images/xtf-image.bb
new file mode 100644
index 00000000..f9ecea91
--- /dev/null
+++ b/recipes-extended/images/xtf-image.bb
@@ -0,0 +1,34 @@
+require recipes-extended/images/xen-image-minimal.bb
+DESCRIPTION = "A minimal Xen Test Framework (XTF) image for testing the Xen hypervisor"
+
+# To run XTF tests with an image built for the qemux86-64 MACHINE:
+#
+# runqemu xtf-image nographic slirp
+# (login as root)
+# # xtf-runner expects to be run from the top of the tests directory:
+# cd /usr/libexec/xtf
+# # list the tests available for PV guest types:
+# ./xtf-runner --list pv
+# # run an example test:
+# ./xtf-runner test-pv64-livepatch-priv-check
+#
+# This image also supports the OE QA framework, so XTF tests can be
+# run from bitbake by adding the following (or similar) to local.conf:
+#
+# INHERIT += "testimage"
+# QEMU_USE_SLIRP = "1"
+# TEST_SERVER_IP = "127.0.0.1"
+#
+# and the tests that are configured (see the xtf-oeqa-conf package)
+# can be run with: bitbake -c testimage xtf-image
+#
+# For testimage, see the qemu boot log: ${WORKDIR}/testimage/qemu_boot_log.*
+# and the test log: ${WORKDIR}/temp/log.do_testimage
+
+IMAGE_NAME="xtf"
+
+IMAGE_INSTALL:append = " xtf"
+
+DEFAULT_TEST_SUITES:append = " xtf_minimal"
+
+QB_DEFAULT_FSTYPE:x86-64 = "wic"
diff --git a/recipes-extended/images/xvisor-image-minimal.bb b/recipes-extended/images/xvisor-image-minimal.bb
new file mode 100644
index 00000000..7c23de5b
--- /dev/null
+++ b/recipes-extended/images/xvisor-image-minimal.bb
@@ -0,0 +1,20 @@
+DESCRIPTION = "A minimal Xvisor image"
+
+INITRD_IMAGE = "core-image-minimal-initramfs"
+
+IMAGE_INSTALL += " \
+ packagegroup-core-boot \
+ packagegroup-core-ssh-openssh \
+ "
+
+# The hypervisor may not be within the dom0 filesystem image but at least
+# ensure that it is deployable:
+do_build[depends] += "xvisor:do_deploy"
+
+LICENSE = "MIT"
+
+inherit core-image
+
+# Enable runqemu. eg: runqemu xvisor-image-minimal nographic slirp
+QB_DEFAULT_KERNEL = "vmm.bin"
+QB_OPT_APPEND:append:riscv64 = " -cpu rv64,x-h=true "
diff --git a/recipes-extended/iptables/iptables-meta-virtualization.inc b/recipes-extended/iptables/iptables-meta-virtualization.inc
index 8fd521c9..ac3c7843 100644
--- a/recipes-extended/iptables/iptables-meta-virtualization.inc
+++ b/recipes-extended/iptables/iptables-meta-virtualization.inc
@@ -1,4 +1,4 @@
-RRECOMMENDS_${PN} += "kernel-module-ip6-tables \
+RRECOMMENDS:${PN} += "kernel-module-ip6-tables \
kernel-module-ip-tables \
kernel-module-ip6table-filter \
kernel-module-iptable-filter \
@@ -16,4 +16,5 @@ RRECOMMENDS_${PN} += "kernel-module-ip6-tables \
kernel-module-xt-conntrack \
kernel-module-xt-state \
kernel-module-xt-tcpudp \
+ kernel-module-xt-nat \
"
diff --git a/recipes-extended/ipxe/files/build-be-explicit-about-fcommon-compiler-directive.patch b/recipes-extended/ipxe/files/build-be-explicit-about-fcommon-compiler-directive.patch
new file mode 100644
index 00000000..d4a2c732
--- /dev/null
+++ b/recipes-extended/ipxe/files/build-be-explicit-about-fcommon-compiler-directive.patch
@@ -0,0 +1,33 @@
+From f982a712979619dbae2c6e0d741757e2ce94be11 Mon Sep 17 00:00:00 2001
+Message-Id: <f982a712979619dbae2c6e0d741757e2ce94be11.1602165412.git.bertrand.marquis@arm.com>
+From: Bruce Rogers <brogers@suse.com>
+Date: Wed, 6 May 2020 15:03:02 -0600
+Subject: [PATCH] [build] Be explicit about -fcommon compiler directive
+
+gcc10 switched default behavior from -fcommon to -fno-common. Since
+"__shared" relies on the legacy behavior, explicitly specify it.
+
+Upstream-Status: Backport
+
+Signed-off-by: Bruce Rogers <brogers@suse.com>
+Modified-by: Michael Brown <mcb30@ipxe.org>
+Signed-off-by: Michael Brown <mcb30@ipxe.org>
+---
+ src/Makefile.housekeeping | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/Makefile.housekeeping b/src/Makefile.housekeeping
+index 66d6dd44..b6c61c11 100644
+--- a/Makefile.housekeeping
++++ b/Makefile.housekeeping
+@@ -418,6 +418,7 @@ CFLAGS += -Os
+ CFLAGS += -g
+ ifeq ($(CCTYPE),gcc)
+ CFLAGS += -ffreestanding
++CFLAGS += -fcommon
+ CFLAGS += -Wall -W -Wformat-nonliteral
+ HOST_CFLAGS += -Wall -W -Wformat-nonliteral
+ endif
+--
+2.17.1
+
diff --git a/recipes-extended/ipxe/files/ipxe-fix-hostcc-nopie-cflags.patch b/recipes-extended/ipxe/files/ipxe-fix-hostcc-nopie-cflags.patch
index 865e9bbb..9db7b6a1 100644
--- a/recipes-extended/ipxe/files/ipxe-fix-hostcc-nopie-cflags.patch
+++ b/recipes-extended/ipxe/files/ipxe-fix-hostcc-nopie-cflags.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Inappropriate [embedded specific]
+
diff --git a/src/Makefile.housekeeping b/src/Makefile.housekeeping
index 1dd1479..13f44dd 100644
--- a/Makefile.housekeeping
diff --git a/recipes-extended/ipxe/files/ipxe-golan-Add-explicit-type-casts-for-nodnic_queue_pair_.patch b/recipes-extended/ipxe/files/ipxe-golan-Add-explicit-type-casts-for-nodnic_queue_pair_.patch
index 62e8e9df..8a78e7af 100644
--- a/recipes-extended/ipxe/files/ipxe-golan-Add-explicit-type-casts-for-nodnic_queue_pair_.patch
+++ b/recipes-extended/ipxe/files/ipxe-golan-Add-explicit-type-casts-for-nodnic_queue_pair_.patch
@@ -9,6 +9,8 @@ The flexboot_nodnic code defines nodnic_queue_pair_type with values
identical to those of ib_queue_pair_type, and implicitly casts between
them. Add an explicit cast to fix the warning.
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Michael Brown <mcb30@ipxe.org>
---
src/drivers/infiniband/flexboot_nodnic.c | 6 ++++--
diff --git a/recipes-extended/ipxe/files/ipxe-intel-Avoid-spurious-compiler-warning-on-GCC-10.patch b/recipes-extended/ipxe/files/ipxe-intel-Avoid-spurious-compiler-warning-on-GCC-10.patch
index e424d220..c76fe1ce 100644
--- a/recipes-extended/ipxe/files/ipxe-intel-Avoid-spurious-compiler-warning-on-GCC-10.patch
+++ b/recipes-extended/ipxe/files/ipxe-intel-Avoid-spurious-compiler-warning-on-GCC-10.patch
@@ -8,6 +8,8 @@ for the unsized raw dword array in union intelvf_msg.
Avoid the warning by embedding the zero-length array within a struct.
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Michael Brown <mcb30@ipxe.org>
---
src/drivers/net/intelvf.c | 18 ++++++++++--------
diff --git a/recipes-extended/ipxe/ipxe_git.bb b/recipes-extended/ipxe/ipxe_git.bb
index fbaad309..08ed519a 100644
--- a/recipes-extended/ipxe/ipxe_git.bb
+++ b/recipes-extended/ipxe/ipxe_git.bb
@@ -1,37 +1,48 @@
DESCRIPTION = "Open source network boot firmware"
HOMEPAGE = "http://ipxe.org"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
DEPENDS = "binutils-native perl-native syslinux mtools-native cdrtools-native xz"
LIC_FILES_CHKSUM = "file://../COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+# syslinux has this restriction
+COMPATIBLE_HOST:class-target = '(x86_64|i.86).*-(linux|freebsd.*)'
+
SRCREV = "18dc73d27edb55ebe9cb13c58d59af3da3bd374b"
-PV = "gitr${SRCPV}"
+PV = "1.20.1+git"
PR = "r0"
-FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
SRC_URI = " \
- git://git.ipxe.org/ipxe.git;protocol=https \
+ git://github.com/ipxe/ipxe.git;protocol=https;branch=master \
file://ipxe-fix-hostcc-nopie-cflags.patch \
file://ipxe-intel-Avoid-spurious-compiler-warning-on-GCC-10.patch \
file://ipxe-golan-Add-explicit-type-casts-for-nodnic_queue_pair_.patch \
+ file://build-be-explicit-about-fcommon-compiler-directive.patch \
"
-FILES_${PN} = "/usr/share/firmware/*.rom"
+FILES:${PN} = "/usr/share/firmware/*.rom"
-EXTRA_OEMAKE = " \
+EXTRA_OEMAKE = ' \
ISOLINUX_BIN="${STAGING_DIR_TARGET}/usr/share/syslinux/isolinux.bin" \
CROSS_COMPILE="${TARGET_PREFIX}" \
EXTRA_HOST_CFLAGS="${BUILD_CFLAGS}" \
- EXTRA_HOST_LDFLAGS="${BUILD_LDFLAGS}""
+ EXTRA_HOST_LDFLAGS="${BUILD_LDFLAGS}" \
+ NO_WERROR="1" \
+'
S = "${WORKDIR}/git/src"
do_compile() {
- oe_runmake
+ # Makefile.housekeeping:111: GNU gold is unsuitable for building iPXE
+ # Makefile.housekeeping:112: Use GNU ld instead
+ sed -i 's#\(^LD.*$(CROSS_COMPILE)ld\)$#\1.bfd#g' -i ${S}/Makefile
+ oe_runmake
}
do_install() {
install -d ${D}/usr/share/firmware
install ${S}/bin/*.rom ${D}/usr/share/firmware/
}
+
+TOOLCHAIN = "gcc"
diff --git a/recipes-extended/irqbalance/irqbalance.inc b/recipes-extended/irqbalance/irqbalance.inc
index 53275d12..038cbae3 100644
--- a/recipes-extended/irqbalance/irqbalance.inc
+++ b/recipes-extended/irqbalance/irqbalance.inc
@@ -8,7 +8,7 @@ which can lead to better performance and IO balance on SMP systems."
HOMEPAGE = "http://code.google.com/p/irqbalance/"
BUGTRACKER = "http://code.google.com/p/irqbalance/issues/list"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
file://irqbalance.c;beginline=6;endline=8;md5=b94e153694672307b503b1bc87dc9e24 \
"
@@ -21,7 +21,7 @@ INITSCRIPT_PARAMS = "defaults"
inherit autotools update-rc.d pkgconfig systemd
SYSTEMD_PACKAGES = "irqbalance"
-SYSTEMD_SERVICE_irqbalance = "irqbalanced.service"
+SYSTEMD_SERVICE:irqbalance = "irqbalanced.service"
EXTRA_OECONF = "--program-transform-name= \
"
@@ -42,6 +42,5 @@ do_install () {
chmod 755 ${D}${sysconfdir}/init.d/irqbalanced
install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/irqbalanced.service ${D}${systemd_unitdir}/system
- sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/irqbalanced.service
+ install -m 0644 ${S}/misc/irqbalance.service ${D}${systemd_unitdir}/system/irqbalanced.service
}
diff --git a/recipes-extended/irqbalance/irqbalance/add-initscript.patch b/recipes-extended/irqbalance/irqbalance/add-initscript.patch
index b0e608e6..91a79d7e 100644
--- a/recipes-extended/irqbalance/irqbalance/add-initscript.patch
+++ b/recipes-extended/irqbalance/irqbalance/add-initscript.patch
@@ -6,6 +6,8 @@ Subject: [PATCH] irqbalance: add basic init script
The upstream irqbalance release package does not contain an
init script so we create a basic one here.
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
---
diff --git a/recipes-extended/irqbalance/irqbalance/irqbalance-Add-status-and-reload-commands.patch b/recipes-extended/irqbalance/irqbalance/irqbalance-Add-status-and-reload-commands.patch
index ec01448f..8591f34c 100644
--- a/recipes-extended/irqbalance/irqbalance/irqbalance-Add-status-and-reload-commands.patch
+++ b/recipes-extended/irqbalance/irqbalance/irqbalance-Add-status-and-reload-commands.patch
@@ -5,6 +5,8 @@ Subject: [PATCH] irqbalance: Add status and reload commands
Add status and reload commands for irqbalanced init script
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Yang Shi <yang.shi@windriver.com>
---
diff --git a/recipes-extended/irqbalance/irqbalance/irqbalanced.service b/recipes-extended/irqbalance/irqbalance/irqbalanced.service
deleted file mode 100644
index 5b284faa..00000000
--- a/recipes-extended/irqbalance/irqbalance/irqbalanced.service
+++ /dev/null
@@ -1,9 +0,0 @@
-[Unit]
-Description=irqbalance daemon
-After=syslog.target
-
-[Service]
-ExecStart=@SBINDIR@/irqbalance --foreground
-
-[Install]
-WantedBy=multi-user.target
diff --git a/recipes-extended/irqbalance/irqbalance_git.bb b/recipes-extended/irqbalance/irqbalance_git.bb
index 7755e8ea..aa7f0de9 100644
--- a/recipes-extended/irqbalance/irqbalance_git.bb
+++ b/recipes-extended/irqbalance/irqbalance_git.bb
@@ -4,15 +4,14 @@
require irqbalance.inc
-# commit tagged as version 1.6.0
-#
-SRCREV = "b47eea84cbb93f533b0cba2f1aaf9ca4da8706b9"
-PV = "1.6.0"
+SRCREV = "b3adb5fd1496833e4e2cebc958d3919178cd5e3d"
+PV = "1.8.0+git"
-SRC_URI = "git://github.com/Irqbalance/irqbalance \
+SRC_URI = "git://github.com/Irqbalance/irqbalance;branch=master;protocol=https \
file://add-initscript.patch \
file://irqbalance-Add-status-and-reload-commands.patch \
- file://irqbalanced.service \
"
S = "${WORKDIR}/git"
+
+CFLAGS += "-Wno-error=format-security"
diff --git a/recipes-extended/kvmtool/files/0001-Avoid-pointers-for-address-of-packed-members.patch b/recipes-extended/kvmtool/files/0001-Avoid-pointers-for-address-of-packed-members.patch
deleted file mode 100644
index 863e86a8..00000000
--- a/recipes-extended/kvmtool/files/0001-Avoid-pointers-for-address-of-packed-members.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 2e22df7c24dadf5e16004cd832cabca76a699d4d Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 21 Mar 2017 23:32:39 -0700
-Subject: [PATCH] Avoid pointers for address of packed members
-
-Fixes Clang warning due to -Waddress-of-packed-member
-
-virtio/blk.c:161:37: error: taking address of packed member 'geometry' of class or structure 'virtio_blk_config' may result in an unaligned pointer value [-Werror,-Waddress-of-packed-member]
- struct virtio_blk_geometry *geo = &conf->geometry;
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- virtio/blk.c | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/virtio/blk.c b/virtio/blk.c
-index c485e4f..1f7365d 100644
---- a/virtio/blk.c
-+++ b/virtio/blk.c
-@@ -158,7 +158,6 @@ static void set_guest_features(struct kvm *kvm, void *dev, u32 features)
- {
- struct blk_dev *bdev = dev;
- struct virtio_blk_config *conf = &bdev->blk_config;
-- struct virtio_blk_geometry *geo = &conf->geometry;
-
- bdev->features = features;
-
-@@ -167,7 +166,7 @@ static void set_guest_features(struct kvm *kvm, void *dev, u32 features)
- conf->seg_max = virtio_host_to_guest_u32(&bdev->vdev, conf->seg_max);
-
- /* Geometry */
-- geo->cylinders = virtio_host_to_guest_u16(&bdev->vdev, geo->cylinders);
-+ conf->geometry.cylinders = virtio_host_to_guest_u16(&bdev->vdev, conf->geometry.cylinders);
-
- conf->blk_size = virtio_host_to_guest_u32(&bdev->vdev, conf->blk_size);
- conf->min_io_size = virtio_host_to_guest_u16(&bdev->vdev, conf->min_io_size);
---
-2.12.0
-
diff --git a/recipes-extended/kvmtool/files/0001-kvmtool-9p-fixed-compilation-error.patch b/recipes-extended/kvmtool/files/0001-kvmtool-9p-fixed-compilation-error.patch
index 63911fc2..36cde0d4 100644
--- a/recipes-extended/kvmtool/files/0001-kvmtool-9p-fixed-compilation-error.patch
+++ b/recipes-extended/kvmtool/files/0001-kvmtool-9p-fixed-compilation-error.patch
@@ -1,20 +1,23 @@
-From bcd954ffdb9383030e02d356b51e09e4e2a7105a Mon Sep 17 00:00:00 2001
+From e04b44c12402494ef5619205bfff03dab3e3d9cb Mon Sep 17 00:00:00 2001
From: Dariusz Pelowski <dariusz.pelowski@gmail.com>
Date: Sun, 5 Nov 2017 12:39:52 +0100
-Subject: [PATCH 1/2] kvmtool: 9p: fixed compilation error
+Subject: [PATCH] kvmtool: 9p: fixed compilation error
makedev is defined in sys/sysmacros.h
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Dariusz Pelowski <dariusz.pelowski@gmail.com>
+
---
virtio/9p.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/virtio/9p.c b/virtio/9p.c
-index 6acbfdd..1dee2c2 100644
+index b78f2b3..838c5c4 100644
--- a/virtio/9p.c
+++ b/virtio/9p.c
-@@ -15,6 +15,7 @@
+@@ -16,6 +16,7 @@
#include <string.h>
#include <errno.h>
#include <sys/vfs.h>
@@ -22,6 +25,3 @@ index 6acbfdd..1dee2c2 100644
#include <linux/virtio_ring.h>
#include <linux/virtio_9p.h>
---
-2.15.0
-
diff --git a/recipes-extended/kvmtool/files/0002-kvmtool-add-EXTRA_CFLAGS-variable.patch b/recipes-extended/kvmtool/files/0002-kvmtool-add-EXTRA_CFLAGS-variable.patch
index 262531ca..248d6cc0 100644
--- a/recipes-extended/kvmtool/files/0002-kvmtool-add-EXTRA_CFLAGS-variable.patch
+++ b/recipes-extended/kvmtool/files/0002-kvmtool-add-EXTRA_CFLAGS-variable.patch
@@ -1,20 +1,23 @@
-From 977a4d41012d1814f5a5330cacc2e4944de387cc Mon Sep 17 00:00:00 2001
+From a1c255983169e094c18d82131939b2b66e581000 Mon Sep 17 00:00:00 2001
From: Dariusz Pelowski <dariusz.pelowski@gmail.com>
Date: Sun, 5 Nov 2017 12:39:21 +0100
-Subject: [PATCH 2/2] kvmtool: add EXTRA_CFLAGS variable
+Subject: [PATCH] kvmtool: add EXTRA_CFLAGS variable
to avoid CFLAGS overriding introduce new EXTRA_CFLAGS variable
for setting via command argument
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Dariusz Pelowski <dariusz.pelowski@gmail.com>
+
---
Makefile | 2 ++
1 file changed, 2 insertions(+)
-diff --git a/Makefile b/Makefile
-index 64a0a16..bca1b26 100644
---- a/Makefile
-+++ b/Makefile
+Index: git/Makefile
+===================================================================
+--- git.orig/Makefile
++++ git/Makefile
@@ -2,6 +2,8 @@
# Define WERROR=0 to disable -Werror.
#
@@ -22,8 +25,5 @@ index 64a0a16..bca1b26 100644
+CFLAGS += $(EXTRA_CFLAGS)
+
ifeq ($(strip $(V)),)
- E = @echo
- Q = @
---
-2.15.0
-
+ ifeq ($(findstring s,$(filter-out --%,$(firstword $(MAKEFLAGS)))),)
+ E = @echo
diff --git a/recipes-extended/kvmtool/files/0003-kvmtool-Werror-disabled.patch b/recipes-extended/kvmtool/files/0003-kvmtool-Werror-disabled.patch
index 4d2f2555..fbde7cd4 100644
--- a/recipes-extended/kvmtool/files/0003-kvmtool-Werror-disabled.patch
+++ b/recipes-extended/kvmtool/files/0003-kvmtool-Werror-disabled.patch
@@ -1,24 +1,25 @@
-From 377a09c16003eaa40f7f337127b10728ee0ade35 Mon Sep 17 00:00:00 2001
+From 459ebaebf368869ae26eb8031ff44a789e238988 Mon Sep 17 00:00:00 2001
From: Cevat Bostancioglu <bostancioglucevat@gmail.com>
Date: Wed, 19 Jun 2019 20:36:56 +0300
Subject: [PATCH] WERROR override disabled.
WERROR override causes gcc sizeof-pointer-memaccess, format-truncation errors.
+
+Upstream-Status: Inappropriate [embedded specific]
+
---
Makefile | 1 +
1 file changed, 1 insertion(+)
-diff --git a/Makefile b/Makefile
-index 030ff4e..fc5e177 100644
---- a/Makefile
-+++ b/Makefile
-@@ -2,6 +2,7 @@
- # Define WERROR=0 to disable -Werror.
- #
+Index: git/Makefile
+===================================================================
+--- git.orig/Makefile
++++ git/Makefile
+@@ -4,6 +4,7 @@
+
+ CFLAGS += $(EXTRA_CFLAGS)
+WERROR = 0
ifeq ($(strip $(V)),)
- E = @echo
- Q = @
---
-2.7.4
+ ifeq ($(findstring s,$(filter-out --%,$(firstword $(MAKEFLAGS)))),)
+ E = @echo
diff --git a/recipes-extended/kvmtool/files/external-crosscompiler.patch b/recipes-extended/kvmtool/files/external-crosscompiler.patch
index 75cef3b1..e27ee34b 100644
--- a/recipes-extended/kvmtool/files/external-crosscompiler.patch
+++ b/recipes-extended/kvmtool/files/external-crosscompiler.patch
@@ -1,31 +1,41 @@
+From 91b7123682c67ec8b0c50147c9ebd59efa563f26 Mon Sep 17 00:00:00 2001
+From: Stefan Agner <stefan@agner.ch>
+Date: Tue, 6 Sep 2016 11:51:40 -0700
+Subject: [PATCH] kvmtool: add lightweight hypervisor native Linux KVM tool
+
Upstream-Status: Inappropriate [embedded specific]
This allows OpenEmbedded to pass in cross compiler configuration using
the default envirnment variables. It is required so that kvmtool can
be linked against the cross-compiled libfdt library.
-diff --git a/Makefile b/Makefile
-index 1f0196f..8bfb068 100644
---- a/Makefile
-+++ b/Makefile
-@@ -14,11 +14,6 @@ export E Q
- include config/utilities.mak
+---
+ Makefile | 8 +-------
+ 1 file changed, 1 insertion(+), 7 deletions(-)
+
+Index: git/Makefile
+===================================================================
+--- git.orig/Makefile
++++ git/Makefile
+@@ -19,12 +19,6 @@
include config/feature-tests.mak
+ -include $(OUTPUT)KVMTOOLS-VERSION-FILE
-CC := $(CROSS_COMPILE)gcc
-CFLAGS :=
-LD := $(CROSS_COMPILE)ld
-LDFLAGS :=
+-OBJCOPY := $(CROSS_COMPILE)objcopy
-
FIND := find
CSCOPE := cscope
TAGS := ctags
-@@ -297,7 +292,7 @@ $(warning No static libc found. Skipping guest init)
- endif
-
- ifeq (y,$(ARCH_WANT_LIBFDT))
-- ifneq ($(call try-build,$(SOURCE_LIBFDT),$(CFLAGS),-lfdt),y)
-+ ifneq ($(call try-build,$(SOURCE_LIBFDT),$(CPPFLAGS) $(CFLAGS),-lfdt),y)
- $(error No libfdt found. Please install libfdt-dev package)
- else
+@@ -367,7 +361,7 @@
+ CFLAGS_DYNOPT += -DCONFIG_HAS_LIBFDT
+ CFLAGS_STATOPT += -DCONFIG_HAS_LIBFDT
+ CFLAGS += -I $(LIBFDT_DIR)
+- else ifeq ($(call try-build,$(SOURCE_LIBFDT),$(CFLAGS),-lfdt),y)
++ else ifeq ($(call try-build,$(SOURCE_LIBFDT),$(CPPFLAGS) $(CFLAGS),-lfdt),y)
+ LIBFDT_STATIC :=
CFLAGS_DYNOPT += -DCONFIG_HAS_LIBFDT
+ CFLAGS_STATOPT += -DCONFIG_HAS_LIBFDT
diff --git a/recipes-extended/kvmtool/kvmtool.bb b/recipes-extended/kvmtool/kvmtool_git.bb
index 90ad8a1f..141fb02d 100644
--- a/recipes-extended/kvmtool/kvmtool.bb
+++ b/recipes-extended/kvmtool/kvmtool_git.bb
@@ -1,7 +1,7 @@
SUMMARY = "Native Linux KVM tool"
DESCRIPTION = "kvmtool is a lightweight tool for hosting KVM guests."
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=fcb02dc552a041dee27e4b85c7396067"
DEPENDS = "dtc libaio zlib"
@@ -9,16 +9,15 @@ do_configure[depends] += "virtual/kernel:do_shared_workdir"
inherit kernel-arch
-SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/will/kvmtool.git \
+SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/will/kvmtool.git;branch=master \
file://external-crosscompiler.patch \
- file://0001-Avoid-pointers-for-address-of-packed-members.patch \
file://0001-kvmtool-9p-fixed-compilation-error.patch \
file://0002-kvmtool-add-EXTRA_CFLAGS-variable.patch \
file://0003-kvmtool-Werror-disabled.patch \
"
-SRCREV = "0e1882a49f81cb15d328ef83a78849c0ea26eecc"
-PV = "4.14.0+git${SRCPV}"
+SRCREV = "4d2c017f41533b0e51e00f689050c26190a15318"
+PV = "5.10.0+git"
S = "${WORKDIR}/git"
diff --git a/recipes-extended/libibverbs/libibverbs_1.2.1.bb b/recipes-extended/libibverbs/libibverbs_1.2.1.bb
index fa7eee62..048b6b65 100644
--- a/recipes-extended/libibverbs/libibverbs_1.2.1.bb
+++ b/recipes-extended/libibverbs/libibverbs_1.2.1.bb
@@ -3,7 +3,7 @@ DESCRIPTION = "Libibverbs is a library that allows userspace processes to use In
HOMEPAGE = "http://www.openfabrics.org/downloads/verbs/"
SECTION = "libs/devel"
-LICENSE = "BSD"
+LICENSE = "GPL-2.0-only | BSD-2-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=7c557f27dd795ba77cc419dddc656b51"
# Official repo is at git://git.kernel.org/pub/scm/libs/infiniband/libibverbs.git
@@ -16,19 +16,19 @@ inherit autotools
DEPENDS = "libnl pkgconfig-native"
PACKAGES += "${PN}-utils"
-FILES_${PN} = "${sysconfdir} ${libdir}/*.so.*"
-FILES_${PN}-utils = "${bindir}"
+FILES:${PN} = "${sysconfdir} ${libdir}/*.so.*"
+FILES:${PN}-utils = "${bindir}"
PACKAGECONFIG ??= ""
PACKAGECONFIG[valgrind] = "--with-valgrind,--without-valgrind,valgrind,"
-do_install_append() {
+do_install:append() {
mkdir -p ${D}${sysconfdir}/libibverbs.d
rm -f ${D}${libdir}/libibverbs.la
}
PROVIDES = "virtual/libibverbs"
-RPROVIDES_${PN} = "virtual/libibverbs"
+RPROVIDES:${PN} = "virtual-libibverbs"
-COMPATIBLE_HOST_mipsarch = "none"
-COMPATIBLE_HOST_arm = "none"
+COMPATIBLE_HOST:mipsarch = "none"
+COMPATIBLE_HOST:arm = "none"
diff --git a/recipes-extended/libvirt/libvirt-dbus_1.4.1.bb b/recipes-extended/libvirt/libvirt-dbus_1.4.1.bb
new file mode 100644
index 00000000..3f6da334
--- /dev/null
+++ b/recipes-extended/libvirt/libvirt-dbus_1.4.1.bb
@@ -0,0 +1,23 @@
+SUMMARY = "dBus wrapper for libvirt"
+DESCRIPTION = "libvirt-dbus wraps libvirt API to provide a high-level object-oriented API better suited for dbus-based applications."
+AUTHOR = "Lars Karlitski <lars@karlitski.net> Pavel Hrdina <phrdina@redhat.com> Katerina Koukiou <kkoukiou@redhat.com>"
+HOMEPAGE = "https://www.libvirt.org/dbus.html"
+BUGTRACKER = "https://gitlab.com/libvirt/libvirt-dbus/-/issues"
+SECTION = "libs"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+CVE_PRODUCT = "libvirt-dbus"
+
+DEPENDS += "glib-2.0 libvirt libvirt-glib python3-docutils-native"
+
+SRC_URI = "git://gitlab.com/libvirt/libvirt-dbus.git;nobranch=1;protocol=https"
+
+SRCREV = "0c355bb8921d7cbccf93f41a8615fcd973e64f70"
+S = "${WORKDIR}/git"
+
+inherit meson pkgconfig
+
+FILES:${PN} += "\
+ ${datadir}/dbus-1/* \
+ ${datadir}/polkit-1/* \
+"
diff --git a/recipes-extended/libvirt/libvirt-glib/0001-meson.build-allow-crosscompiling-gir-and-doc.patch b/recipes-extended/libvirt/libvirt-glib/0001-meson.build-allow-crosscompiling-gir-and-doc.patch
new file mode 100644
index 00000000..cd17bbbf
--- /dev/null
+++ b/recipes-extended/libvirt/libvirt-glib/0001-meson.build-allow-crosscompiling-gir-and-doc.patch
@@ -0,0 +1,37 @@
+From 019d727990d41b5d7911895b75bcb021e4cca3c6 Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_l_k@t-online.de>
+Date: Mon, 21 Aug 2023 10:23:08 +0200
+Subject: [PATCH] meson.build: allow crosscompiling gir and doc
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Markus Volk <f_l_k@t-online.de>
+---
+ meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 134feb6..a089f42 100644
+--- a/meson.build
++++ b/meson.build
+@@ -58,7 +58,7 @@ includedir = join_paths(prefix, get_option('includedir'))
+
+ # gobject introspection
+ gir = find_program('g-ir-scanner', required: get_option('introspection'))
+-enable_introspection = gir.found() and not meson.is_cross_build()
++enable_introspection = gir.found()
+
+ # vala
+ vapi_opt = get_option('vapi')
+@@ -73,7 +73,7 @@ endif
+ # gtk-doc
+ if not get_option('docs').disabled()
+ gtk_doc = find_program('gtkdoc-scan', required: get_option('docs'))
+- enable_doc = gtk_doc.found() and not meson.is_cross_build()
++ enable_doc = gtk_doc.found()
+ else
+ enable_doc = false
+ endif
+--
+2.41.0
+
diff --git a/recipes-extended/libvirt/libvirt-glib_5.0.0.bb b/recipes-extended/libvirt/libvirt-glib_5.0.0.bb
new file mode 100644
index 00000000..4435ca0b
--- /dev/null
+++ b/recipes-extended/libvirt/libvirt-glib_5.0.0.bb
@@ -0,0 +1,21 @@
+DESCRIPTION = "A toolkit to interact with the virtualization capabilities of recent versions of Linux."
+HOMEPAGE = "http://libvirt.org"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+DEPENDS = "glib-2.0 libvirt libxml2 libxslt"
+
+SRC_URI = " \
+ git://gitlab.com/libvirt/libvirt-glib;protocol=https;branch=master \
+ file://0001-meson.build-allow-crosscompiling-gir-and-doc.patch \
+"
+
+SRCREV = "9b26bec8828a38fcb3bc0e5f6f33b03fa99c4b68"
+S = "${WORKDIR}/git"
+
+inherit meson pkgconfig gobject-introspection gettext vala gtk-doc
+
+GIR_MESON_ENABLE_FLAG = 'enabled'
+GIR_MESON_DISABLE_FLAG = 'disabled'
+GTKDOC_MESON_ENABLE_FLAG = 'enabled'
+GTKDOC_MESON_DISABLE_FLAG = 'disabled'
diff --git a/recipes-extended/libvirt/libvirt-python.inc b/recipes-extended/libvirt/libvirt-python.inc
index 7b87d5e1..6fb2b68c 100644
--- a/recipes-extended/libvirt/libvirt-python.inc
+++ b/recipes-extended/libvirt/libvirt-python.inc
@@ -1,24 +1,26 @@
-inherit python3native python3-dir
+inherit python3native python3-dir python3targetconfig
export STAGING_INCDIR
export STAGING_LIBDIR
export BUILD_SYS
export HOST_SYS
-RDEPENDS_${PN}-python += "python3"
+RDEPENDS:${PN}-python += "python3"
PACKAGECONFIG_${PN}-python[xen] = ",,,xen-python"
PACKAGES += "${PN}-python-staticdev ${PN}-python-dev ${PN}-python-dbg ${PN}-python"
-FILES_${PN}-python-staticdev += "${PYTHON_SITEPACKAGES_DIR}/*.a"
-FILES_${PN}-python-dev += "${PYTHON_SITEPACKAGES_DIR}/*.la"
-FILES_${PN}-python-dbg += "${PYTHON_SITEPACKAGES_DIR}/.debug/"
-FILES_${PN}-python = "${bindir}/* ${libdir}/* ${libdir}/${PYTHON_DIR}/*"
+FILES:${PN}-python-staticdev += "${PYTHON_SITEPACKAGES_DIR}/*.a"
+FILES:${PN}-python-dev += "${PYTHON_SITEPACKAGES_DIR}/*.la"
+FILES:${PN}-python-dbg += "${PYTHON_SITEPACKAGES_DIR}/.debug/"
+FILES:${PN}-python = "${bindir}/* ${libdir}/* ${libdir}/${PYTHON_DIR}/*"
+
+# Currently the libvirt-python debug libraries contain buildpaths
+INSANE_SKIP:${PN}-dbg += "buildpaths"
SRC_URI += "http://libvirt.org/sources/python/libvirt-python-${PV}.tar.gz;name=libvirt_python"
-SRC_URI[libvirt_python.md5sum] = "4cf898350ee9a47f94986d402c153bdb"
-SRC_URI[libvirt_python.sha256sum] = "c772421ecc144f098f4ab15db700c62db9b9e6e76b876217edcfd62e9ce02750"
+SRC_URI[libvirt_python.sha256sum] = "a82588f0e7db53eda7b7dbcbc448b0ec43e00a8c77cac69644495299b410c20d"
export LIBVIRT_API_PATH = "${S}/docs/libvirt-api.xml"
export LIBVIRT_CFLAGS = "-I${S}/include"
@@ -38,7 +40,7 @@ python __anonymous () {
d.setVar('LIBVIRT_PYTHON_ENABLE', '0')
}
-do_compile_append() {
+do_compile:append() {
if [ "${LIBVIRT_PYTHON_ENABLE}" = "1" ]; then
# we need the python bindings to look into our source dir, not
# the syroot staged pkgconfig entries. So we clear the sysroot
@@ -49,7 +51,7 @@ do_compile_append() {
fi
}
-do_install_append() {
+do_install:append() {
if [ "${LIBVIRT_PYTHON_ENABLE}" = "1" ]; then
# we need the python bindings to look into our source dir, not
# the syroot staged pkgconfig entries. So we clear the sysroot
diff --git a/recipes-extended/libvirt/libvirt/0001-build-drop-unnecessary-libgnu.la-reference.patch b/recipes-extended/libvirt/libvirt/0001-build-drop-unnecessary-libgnu.la-reference.patch
deleted file mode 100644
index f02a5d64..00000000
--- a/recipes-extended/libvirt/libvirt/0001-build-drop-unnecessary-libgnu.la-reference.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 30a056069cb35804434fb036e51ae97f33c02025 Mon Sep 17 00:00:00 2001
-From: Bruce Ashfield <bruce.ashfield@gmail.com>
-Date: Sat, 7 Mar 2020 21:36:27 -0500
-Subject: [PATCH] build: drop unnecessary libgnu.la reference
-
-Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
-
----
- tools/Makefile.am | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/tools/Makefile.am b/tools/Makefile.am
-index 2a0a989..93fe283 100644
---- a/tools/Makefile.am
-+++ b/tools/Makefile.am
-@@ -168,7 +168,6 @@ virt_host_validate_LDADD = \
-
- if WITH_GNUTLS
- virt_host_validate_LDADD += ../src/libvirt-net-rpc.la \
-- ../gnulib/lib/libgnu.la \
- $(NULL)
- endif
-
-@@ -270,7 +269,6 @@ BUILT_SOURCES =
-
- if WITH_GNUTLS
- virsh_LDADD += ../src/libvirt-net-rpc.la \
-- ../gnulib/lib/libgnu.la \
- $(NULL)
- endif
-
diff --git a/recipes-extended/libvirt/libvirt/0001-messon.build-remove-build-path-information-to-avoid-.patch b/recipes-extended/libvirt/libvirt/0001-messon.build-remove-build-path-information-to-avoid-.patch
new file mode 100644
index 00000000..d9bcef0b
--- /dev/null
+++ b/recipes-extended/libvirt/libvirt/0001-messon.build-remove-build-path-information-to-avoid-.patch
@@ -0,0 +1,55 @@
+From 9660b76325c841a5f5c7d5b2fb439a1fd64105c9 Mon Sep 17 00:00:00 2001
+From: Xiangyu Chen <xiangyu.chen@windriver.com>
+Date: Thu, 19 Jan 2023 17:07:37 +0800
+Subject: [PATCH] messon.build: remove build path information to avoid yocto QA
+ buildpath check warnings
+
+libvirt debug trace contains source path, and some utils was located to
+yocto sysroot folder, those full source path cause yocto QA buildpath check failed and report warnings as below:
+
+WARNING: libvirt-8.1.0-r0 do_package_qa: QA Issue: File /usr/libexec/libvirt_lxc in package libvirt contains reference to TMPDIR
+File /usr/lib64/libvirt.so.0.8001.0 in package libvirt contains reference to TMPDIR
+File /usr/lib64/libvirt/lock-driver/lockd.so in package libvirt contains reference to TMPDIR
+File /usr/lib64/libvirt/connection-driver/libvirt_driver_lxc.so in package libvirt contains reference to TMPDIR
+File /usr/lib64/libvirt/connection-driver/libvirt_driver_storage.so in package libvirt contains reference to TMPDIR
+File /usr/lib64/libvirt/connection-driver/libvirt_driver_network.so in package libvirt contains reference to TMPDIR
+File /usr/lib64/libvirt/storage-backend/libvirt_storage_backend_fs.so in package libvirt contains reference to TMPDIR
+File /usr/lib64/libvirt/storage-backend/libvirt_storage_backend_disk.so in package libvirt contains reference to TMPDIR
+File /usr/bin/virt-ssh-helper in package libvirt contains reference to TMPDIR [buildpaths]
+
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com>
+---
+ meson.build | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+Index: libvirt-9.2.0/meson.build
+===================================================================
+--- libvirt-9.2.0.orig/meson.build
++++ libvirt-9.2.0/meson.build
+@@ -26,8 +26,8 @@
+ conf = configuration_data()
+
+ conf.set('_GNU_SOURCE', 1)
+-conf.set_quoted('abs_top_builddir', meson.project_build_root())
+-conf.set_quoted('abs_top_srcdir', meson.project_source_root())
++conf.set_quoted('abs_top_builddir', ' ')
++conf.set_quoted('abs_top_srcdir', ' ')
+ conf.set_quoted('PACKAGE', meson.project_name())
+ conf.set_quoted('PACKAGE_NAME', meson.project_name())
+ conf.set_quoted('PACKAGE_VERSION', meson.project_version())
+@@ -1770,9 +1770,9 @@
+ use_storage = true
+
+ conf.set('WITH_STORAGE_FS', 1)
+- conf.set_quoted('MOUNT', mount_prog.full_path())
+- conf.set_quoted('UMOUNT', umount_prog.full_path())
+- conf.set_quoted('MKFS', mkfs_prog.full_path())
++ conf.set_quoted('MOUNT', '/usr/bin/mount')
++ conf.set_quoted('UMOUNT', '/usr/bin/umount')
++ conf.set_quoted('MKFS', '/usr/sbin/mkfs')
+
+ showmount_prog = find_program('showmount', required: false, dirs: libvirt_sbin_path)
+ showmount_path = ''
diff --git a/recipes-extended/libvirt/libvirt/0001-prevent-gendispatch.pl-generating-build-path-in-code.patch b/recipes-extended/libvirt/libvirt/0001-prevent-gendispatch.pl-generating-build-path-in-code.patch
new file mode 100644
index 00000000..defbd7ee
--- /dev/null
+++ b/recipes-extended/libvirt/libvirt/0001-prevent-gendispatch.pl-generating-build-path-in-code.patch
@@ -0,0 +1,43 @@
+From ba915b13b92f3a625633ede43789c1ba780371af Mon Sep 17 00:00:00 2001
+From: Xiangyu Chen <xiangyu.chen@windriver.com>
+Date: Wed, 18 Jan 2023 03:19:07 +0000
+Subject: [PATCH] prevent gendispatch.pl generating build path in code comments
+
+gendispatch.pl will add build dir in code comments which was generated
+by itself. those build dir information would cause yocto qa report
+warnings like:
+
+WARNING: libvirt-8.1.0-r0 do_package_qa:
+QA Issue: File /usr/src/debug/libvirt/8.1.0-r0/src/access/viraccessapicheckqemu.h in package libvirt-src contains reference to TMPDIR
+File /usr/src/debug/libvirt/8.1.0-r0/src/access/viraccessapichecklxc.h in package libvirt-src contains reference to TMPDIR
+File /usr/src/debug/libvirt/8.1.0-r0/src/access/viraccessapicheckqemu.c in package libvirt-src contains reference to TMPDIR
+File /usr/src/debug/libvirt/8.1.0-r0/src/access/viraccessapichecklxc.c in package libvirt-src contains reference to TMPDIR
+File /usr/src/debug/libvirt/8.1.0-r0/src/access/viraccessapicheck.h in package libvirt-src contains reference to TMPDIR
+File /usr/src/debug/libvirt/8.1.0-r0/src/access/viraccessapicheck.c in package libvirt-src contains reference to TMPDIR [buildpaths]
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com>
+---
+ src/rpc/gendispatch.pl | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+Index: libvirt-9.2.0/src/rpc/gendispatch.pl
+===================================================================
+--- libvirt-9.2.0.orig/src/rpc/gendispatch.pl
++++ libvirt-9.2.0/src/rpc/gendispatch.pl
+@@ -449,12 +449,12 @@
+
+ if ($mode eq "aclsym") {
+ print <<__EOF__;
+-# Automatically generated from $protocol by gendispatch.pl.
++# Automatically generated by gendispatch.pl.
+ # Do not edit this file. Any changes you make will be lost.
+ __EOF__
+ } else {
+ print <<__EOF__;
+-/* Automatically generated from $protocol by gendispatch.pl.
++/* Automatically generated by gendispatch.pl.
+ * Do not edit this file. Any changes you make will be lost.
+ */
+ __EOF__
diff --git a/recipes-extended/libvirt/libvirt/0001-ptest-Remove-Windows-1252-check-from-esxutilstest.patch b/recipes-extended/libvirt/libvirt/0001-ptest-Remove-Windows-1252-check-from-esxutilstest.patch
index abb0b1af..cabc4cb6 100644
--- a/recipes-extended/libvirt/libvirt/0001-ptest-Remove-Windows-1252-check-from-esxutilstest.patch
+++ b/recipes-extended/libvirt/libvirt/0001-ptest-Remove-Windows-1252-check-from-esxutilstest.patch
@@ -6,6 +6,8 @@ Subject: [PATCH] ptest: Remove Windows-1252 check from esxutilstest
Currently we use iconv from glibc-locale and it does not support
Windows-1252 and we don't need support windows character encoding.
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: He Zhe <zhe.he@windriver.com>
---
diff --git a/recipes-extended/libvirt/libvirt/0001-to-fix-build-error.patch b/recipes-extended/libvirt/libvirt/0001-to-fix-build-error.patch
deleted file mode 100644
index b0148e5c..00000000
--- a/recipes-extended/libvirt/libvirt/0001-to-fix-build-error.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 3566bcacaa6408fb8f655d1749a20b2f30e0c765 Mon Sep 17 00:00:00 2001
-From: Lei Maohui <leimaohui@cn.fujitsu.com>
-Date: Fri, 31 Jul 2015 03:17:07 +0900
-Subject: [PATCH] to fix build error
-
-The error likes as following
-
-| Generating internals/command.html.tmp
-| /bin/sh: line 3: internals/command.html.tmp: No such file or directory
-| rm: Generating internals/locking.html.tmp
-| cannot remove `internals/command.html.tmp': No such file or directory
-| make[3]: *** [internals/command.html.tmp] Error 1
-| make[3]: *** Waiting for unfinished jobs....
-
-Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
-[ywei: rebased to libvirt-1.3.2]
-Signed-off-by: Yunguo Wei <yunguo.wei@windriver.com>
-[MA: rebase to v4.3.0]
-Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
-
----
- docs/Makefile.am | 5 ++---
- 1 file changed, 2 insertions(+), 3 deletions(-)
-
-diff --git a/docs/Makefile.am b/docs/Makefile.am
-index ce3d296..2c8180f 100644
---- a/docs/Makefile.am
-+++ b/docs/Makefile.am
-@@ -366,7 +366,7 @@ EXTRA_DIST= \
- aclperms.htmlinc \
- $(schema_DATA)
-
--acl_generated = aclperms.htmlinc
-+acl.html:: $(srcdir)/aclperms.htmlinc
-
- aclperms.htmlinc: $(top_srcdir)/src/access/viraccessperm.h \
- $(top_srcdir)/scripts/genaclperms.py Makefile.am
-@@ -432,8 +432,7 @@ manpages/%.html.in: manpages/%.rst
- $(AM_V_GEN)$(MKDIR_P) `dirname $@` && \
- $(RST2HTML) --strict $< > $@ || { rm $@ && exit 1; }
-
--%.html.tmp: %.html.in site.xsl subsite.xsl page.xsl \
-- $(acl_generated)
-+%.html.tmp: %.html.in site.xsl subsite.xsl page.xsl
- $(AM_V_GEN)name=`echo $@ | sed -e 's/.tmp//'`; \
- genhtmlin=`echo $@ | sed -e 's/.tmp/.in/'`; \
- rst=`echo $@ | sed -e 's/.html.tmp/.rst/'`; \
diff --git a/recipes-extended/libvirt/libvirt/configure.ac-search-for-rpc-rpc.h-in-the-sysroot.patch b/recipes-extended/libvirt/libvirt/configure.ac-search-for-rpc-rpc.h-in-the-sysroot.patch
deleted file mode 100644
index 395d5610..00000000
--- a/recipes-extended/libvirt/libvirt/configure.ac-search-for-rpc-rpc.h-in-the-sysroot.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 79f5975db01af0599860ccca7ef44b0e27105a04 Mon Sep 17 00:00:00 2001
-From: Mark Asselstine <mark.asselstine@windriver.com>
-Date: Thu, 10 May 2018 12:05:04 -0400
-Subject: [PATCH] configure.ac: search for rpc/rpc.h in the sysroot
-
-We want to avoid host contamination and use the sysroot as the base
-directory for our search so add the '=' the the '-I' when searching
-for libtirpc's rpc.h header.
-
-Upstream-Status: Inappropriate [old release]
-
-Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
-
----
- m4/virt-xdr.m4 | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/m4/virt-xdr.m4 b/m4/virt-xdr.m4
-index 8375415..12b51f7 100644
---- a/m4/virt-xdr.m4
-+++ b/m4/virt-xdr.m4
-@@ -30,10 +30,10 @@ AC_DEFUN([LIBVIRT_CHECK_XDR], [
- ])
- with_xdr="yes"
-
-- dnl Recent glibc requires -I/usr/include/tirpc for <rpc/rpc.h>
-+ dnl Recent glibc requires -I=/usr/include/tirpc for <rpc/rpc.h>
- old_CFLAGS=$CFLAGS
- AC_CACHE_CHECK([where to find <rpc/rpc.h>], [lv_cv_xdr_cflags], [
-- for add_CFLAGS in '' '-I/usr/include/tirpc' 'missing'; do
-+ for add_CFLAGS in '' '-I=/usr/include/tirpc' 'missing'; do
- if test x"$add_CFLAGS" = xmissing; then
- lv_cv_xdr_cflags=missing; break
- fi
diff --git a/recipes-extended/libvirt/libvirt/install-missing-file.patch b/recipes-extended/libvirt/libvirt/install-missing-file.patch
deleted file mode 100644
index 6aa36df8..00000000
--- a/recipes-extended/libvirt/libvirt/install-missing-file.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From aa75f5136066d239d48a21373b3d96ee12378e8d Mon Sep 17 00:00:00 2001
-From: Dengke Du <dengke.du@windriver.com>
-Date: Wed, 8 May 2019 17:24:17 +0800
-Subject: [PATCH] Install missing conf file
-
-openvzutilstest.conf file is needed by openvzutilstest test.
-
-Upstream-Status: Inapproriate
-
-Signed-off-by: Catalin Enache <catalin.enache@windriver.com>
-[KK: Update context for 1.3.5.]
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
-[MA: Update context for v4.3.0]
-Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
-[DDU: Update context for v5.3.0]
-Signed-off-by: Dengke Du <dengke.du@windriver.com>
-
----
- tests/Makefile.am | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/tests/Makefile.am b/tests/Makefile.am
-index 4a808dd..0c3e799 100644
---- a/tests/Makefile.am
-+++ b/tests/Makefile.am
-@@ -173,6 +173,7 @@ EXTRA_DIST = \
- $(NULL)
-
- test_helpers = commandhelper ssh
-+test_misc =
- test_programs = virshtest sockettest \
- virhostcputest virbuftest \
- commandtest seclabeltest \
-@@ -311,6 +312,7 @@ endif WITH_LXC
-
- if WITH_OPENVZ
- test_programs += openvzutilstest
-+test_misc += openvzutilstest.conf
- endif WITH_OPENVZ
-
- if WITH_ESX
-@@ -1551,7 +1553,7 @@ endif ! WITH_LINUX
-
- buildtest-TESTS: $(TESTS) $(test_libraries) $(test_helpers)
-
--PTESTS = $(TESTS) $(test_helpers) test-lib.sh virschematest
-+PTESTS = $(TESTS) $(test_helpers) $(test_misc) test-lib.sh virschematest
-
- install-ptest:
- list='$(TESTS) $(test_helpers) test-lib.sh virschematest'
diff --git a/recipes-extended/libvirt/libvirt/libvirt-1.0.3-fix-thread-safety-in-lxc-callback-handling.patch b/recipes-extended/libvirt/libvirt/libvirt-1.0.3-fix-thread-safety-in-lxc-callback-handling.patch
deleted file mode 100644
index 558d5ef6..00000000
--- a/recipes-extended/libvirt/libvirt/libvirt-1.0.3-fix-thread-safety-in-lxc-callback-handling.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From ad5d9cee87357f9f38f62583119606ef95ba10df Mon Sep 17 00:00:00 2001
-From: Bogdan Purcareata <bogdan.purcareata@freescale.com>
-Date: Fri, 24 May 2013 16:46:00 +0300
-Subject: [PATCH] Fix thread safety in LXC callback handling
-
-Signed-off-by: Bogdan Purcareata <bogdan.purcareata@freescale.com>
----
- src/lxc/lxc_process.c | 18 +++++++++++++++++-
- 1 file changed, 17 insertions(+), 1 deletion(-)
-
-diff --git a/src/lxc/lxc_process.c b/src/lxc/lxc_process.c
-index aaa81a7..0eadc67 100644
---- a/src/lxc/lxc_process.c
-+++ b/src/lxc/lxc_process.c
-@@ -609,8 +609,13 @@ static void virLXCProcessMonitorExitNotify(virLXCMonitorPtr mon ATTRIBUTE_UNUSED
- virLXCProtocolExitStatus status,
- virDomainObjPtr vm)
- {
-+ virLXCDriverPtr driver = lxc_driver;
- virLXCDomainObjPrivatePtr priv = vm->privateData;
-
-+ lxcDriverLock(driver);
-+ virObjectLock(vm);
-+ lxcDriverUnlock(driver);
-+
- switch (status) {
- case VIR_LXC_PROTOCOL_EXIT_STATUS_SHUTDOWN:
- priv->stopReason = VIR_DOMAIN_EVENT_STOPPED_SHUTDOWN;
-@@ -628,6 +633,8 @@ static void virLXCProcessMonitorExitNotify(virLXCMonitorPtr mon ATTRIBUTE_UNUSED
- }
- VIR_DEBUG("Domain shutoff reason %d (from status %d)",
- priv->stopReason, status);
-+
-+ virObjectUnlock(vm);
- }
-
- /* XXX a little evil */
-@@ -636,12 +643,21 @@ static void virLXCProcessMonitorInitNotify(virLXCMonitorPtr mon ATTRIBUTE_UNUSED
- pid_t initpid,
- virDomainObjPtr vm)
- {
-- virLXCDomainObjPrivatePtr priv = vm->privateData;
-+ virLXCDriverPtr driver = lxc_driver;
-+ virLXCDomainObjPrivatePtr priv;
-+
-+ lxcDriverLock(driver);
-+ virObjectLock(vm);
-+ lxcDriverUnlock(driver);
-+
-+ priv = vm->privateData;
- priv->initpid = initpid;
- virDomainAuditInit(vm, initpid);
-
- if (virDomainSaveStatus(lxc_driver->caps, lxc_driver->stateDir, vm) < 0)
- VIR_WARN("Cannot update XML with PID for LXC %s", vm->def->name);
-+
-+ virObjectUnlock(vm);
- }
-
- static virLXCMonitorCallbacks monitorCallbacks = {
---
-1.7.11.7
-
diff --git a/recipes-extended/libvirt/libvirt/libvirt-use-pkg-config-to-locate-libcap.patch b/recipes-extended/libvirt/libvirt/libvirt-use-pkg-config-to-locate-libcap.patch
deleted file mode 100644
index 87b55915..00000000
--- a/recipes-extended/libvirt/libvirt/libvirt-use-pkg-config-to-locate-libcap.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 94bd514e1b6e602a48285db94e65050f8f0c2585 Mon Sep 17 00:00:00 2001
-From: Bruce Ashfield <bruce.ashfield@windriver.com>
-Date: Wed, 8 Apr 2015 13:03:03 -0400
-Subject: [PATCH] libvirt: use pkg-config to locate libcap
-
-libvirt wants to use pcap-config to locate the exisence and location
-of libpcap. oe-core stubs this script and replaces it with pkg-config,
-which can lead to the host pcap-config triggering and either breaking
-the build or introducing host contamination.
-
-To fix this issue, we patch configure to use 'pkg-config libcap' to
-locate the correct libraries.
-
-Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
-[MA: Update to apply agains v4.3.0]
-Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
-
----
- m4/virt-libpcap.m4 | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/m4/virt-libpcap.m4 b/m4/virt-libpcap.m4
-index 605c2fd..e0ab018 100644
---- a/m4/virt-libpcap.m4
-+++ b/m4/virt-libpcap.m4
-@@ -23,14 +23,14 @@ AC_DEFUN([LIBVIRT_ARG_LIBPCAP], [
-
- AC_DEFUN([LIBVIRT_CHECK_LIBPCAP], [
- LIBPCAP_REQUIRED="1.5.0"
-- LIBPCAP_CONFIG="pcap-config"
-+ LIBPCAP_CONFIG="pkg-config libpcap"
- LIBPCAP_CFLAGS=""
- LIBPCAP_LIBS=""
-
- if test "x$with_libpcap" != "xno"; then
- case $with_libpcap in
-- ''|yes|check) LIBPCAP_CONFIG="pcap-config" ;;
-- *) LIBPCAP_CONFIG="$with_libpcap/bin/pcap-config" ;;
-+ ''|yes|check) LIBPCAP_CONFIG="pkg-config libpcap" ;;
-+ *) LIBPCAP_CONFIG="$with_libpcap/bin/pkg-config libpcap" ;;
- esac
- AS_IF([test "x$LIBPCAP_CONFIG" != "x"], [
- AC_MSG_CHECKING(libpcap $LIBPCAP_CONFIG >= $LIBPCAP_REQUIRED )
diff --git a/recipes-extended/libvirt/libvirt/qemu-fix-crash-in-qemuOpen.patch b/recipes-extended/libvirt/libvirt/qemu-fix-crash-in-qemuOpen.patch
deleted file mode 100644
index 3cf9e839..00000000
--- a/recipes-extended/libvirt/libvirt/qemu-fix-crash-in-qemuOpen.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 74bff2509080912ea8abf1de8fd95fa2412b659a Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?J=C3=A1n=20Tomko?= <jtomko@redhat.com>
-Date: Thu, 11 Apr 2013 11:37:25 +0200
-Subject: [PATCH] qemu: fix crash in qemuOpen
-
-commit 74bff2509080912ea8abf1de8fd95fa2412b659a from upsteam
-git://libvirt.org/libvirt.git
-
-If the path part of connection URI is not present, cfg is used
-unitialized.
-
-https://bugzilla.redhat.com/show_bug.cgi?id=950855
----
- src/qemu/qemu_driver.c | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
-index 2c0d7d1..0d41e39 100644
---- a/src/qemu/qemu_driver.c
-+++ b/src/qemu/qemu_driver.c
-@@ -1026,6 +1026,7 @@ static virDrvOpenStatus qemuOpen(virConnectPtr conn,
- goto cleanup;
- }
-
-+ cfg = virQEMUDriverGetConfig(qemu_driver);
- if (conn->uri->path == NULL) {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- _("no QEMU URI path given, try %s"),
-@@ -1033,7 +1034,6 @@ static virDrvOpenStatus qemuOpen(virConnectPtr conn,
- goto cleanup;
- }
-
-- cfg = virQEMUDriverGetConfig(qemu_driver);
- if (cfg->privileged) {
- if (STRNEQ(conn->uri->path, "/system") &&
- STRNEQ(conn->uri->path, "/session")) {
---
-1.7.1
-
diff --git a/recipes-extended/libvirt/libvirt/runptest.patch b/recipes-extended/libvirt/libvirt/runptest.patch
deleted file mode 100644
index f6bc7736..00000000
--- a/recipes-extended/libvirt/libvirt/runptest.patch
+++ /dev/null
@@ -1,116 +0,0 @@
-From d210838a4433dd254c1a11b08b804ebe9ff5f378 Mon Sep 17 00:00:00 2001
-From: Dengke Du <dengke.du@windriver.com>
-Date: Wed, 8 May 2019 10:20:47 +0800
-Subject: [PATCH] Add 'install-ptest' rule
-
-Change TESTS_ENVIRONMENT to allow running outside build dir.
-
-Upstream-status: Pending
-Signed-off-by: Mihaela Sendrea <mihaela.sendrea@enea.com>
-[KK: Update context for 1.3.5.]
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
-[MA: Allow separate source and build dirs]
-Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
-[ZH: add missing test_helper files]
-Signed-off-by: He Zhe <zhe.he@windriver.com>
-[MA: Update context for v4.3.0]
-Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
-[DDU: Update context for v5.3.0]
-Signed-off-by: Dengke Du <dengke.du@windriver.com>
-
----
- tests/Makefile.am | 68 +++++++++++++++++++++++++++++++++++++++++------
- 1 file changed, 60 insertions(+), 8 deletions(-)
-
-diff --git a/tests/Makefile.am b/tests/Makefile.am
-index ada5b8f..4a808dd 100644
---- a/tests/Makefile.am
-+++ b/tests/Makefile.am
-@@ -28,11 +28,13 @@ AM_CPPFLAGS = \
-
- WARN_CFLAGS += $(RELAXED_FRAME_LIMIT_CFLAGS)
-
-+PTEST_DIR ?= $(libdir)/libvirt/ptest
-+
- AM_CFLAGS = \
-- -Dabs_builddir="\"$(abs_builddir)\"" \
-- -Dabs_top_builddir="\"$(abs_top_builddir)\"" \
-- -Dabs_srcdir="\"$(abs_srcdir)\"" \
-- -Dabs_top_srcdir="\"$(abs_top_srcdir)\"" \
-+ -Dabs_builddir="\"$(PTEST_DIR)/tests\"" \
-+ -Dabs_top_builddir="\"$(PTEST_DIR)\"" \
-+ -Dabs_srcdir="\"$(PTEST_DIR)/tests\"" \
-+ -Dabs_top_srcdir="\"$(PTEST_DIR)\"" \
- $(LIBXML_CFLAGS) \
- $(GLIB_CFLAGS) \
- $(LIBNL_CFLAGS) \
-@@ -474,10 +476,10 @@ TESTS = $(test_programs) \
-
- VIR_TEST_EXPENSIVE ?= $(VIR_TEST_EXPENSIVE_DEFAULT)
- TESTS_ENVIRONMENT = \
-- abs_top_builddir="$(abs_top_builddir)" \
-- abs_top_srcdir="$(abs_top_srcdir)" \
-- abs_builddir="$(abs_builddir)" \
-- abs_srcdir="$(abs_srcdir)" \
-+ abs_top_builddir="$(PTEST_DIR)" \
-+ abs_top_srcdir="$(PTEST_DIR)" \
-+ abs_builddir="$(PTEST_DIR)/tests" \
-+ abs_srcdir="$(PTEST_DIR)/tests" \
- LIBVIRT_AUTOSTART=0 \
- LC_ALL=C \
- VIR_TEST_EXPENSIVE=$(VIR_TEST_EXPENSIVE) \
-@@ -1547,4 +1549,54 @@ else ! WITH_LINUX
- EXTRA_DIST += virscsitest.c
- endif ! WITH_LINUX
-
-+buildtest-TESTS: $(TESTS) $(test_libraries) $(test_helpers)
-+
-+PTESTS = $(TESTS) $(test_helpers) test-lib.sh virschematest
-+
-+install-ptest:
-+ list='$(TESTS) $(test_helpers) test-lib.sh virschematest'
-+ install -d $(DEST_DIR)/tools
-+ @(if [ -d ../tools/.libs ] ; then cd ../tools/.libs; fi; \
-+ install * $(DEST_DIR)/tools)
-+ install -d $(DEST_DIR)/src/network
-+ cp $(top_srcdir)/src/network/*.xml $(DEST_DIR)/src/network
-+ install -d $(DEST_DIR)/src/cpu_map
-+ cp $(top_srcdir)/src/cpu_map/*.xml $(DEST_DIR)/src/cpu_map
-+ install ../src/libvirt_iohelper $(DEST_DIR)/src
-+ install -D ../src/libvirtd $(DEST_DIR)/src/libvirtd
-+ install -d $(DEST_DIR)/src/remote
-+ install -D $(top_srcdir)/../build/src/remote/libvirtd.conf $(DEST_DIR)/src/remote/libvirtd.conf
-+ install -d $(DEST_DIR)/src/remote/.libs
-+ @(if [ -d ../src/remote/.libs ] ; then cd ../src/remote/.libs; fi; \
-+ install * $(DEST_DIR)/src/remote/.libs)
-+ install -d $(DEST_DIR)/src/.libs
-+ @(if [ -d ../src/.libs ] ; then cd ../src/.libs; fi; \
-+ install * $(DEST_DIR)/src/.libs)
-+ install -d $(DEST_DIR)/docs/schemas
-+ cp $(top_srcdir)/docs/schemas/*.rng $(DEST_DIR)/docs/schemas
-+ cp -r $(top_srcdir)/build-aux $(DEST_DIR)
-+ install -d $(DEST_DIR)/examples/xml
-+ cp -r $(top_srcdir)/examples/xml/test $(DEST_DIR)/examples/xml
-+ install -d $(DEST_DIR)/tests/.libs
-+ find . -type d -name "*xml2xml*" -exec cp -r {} $(DEST_DIR)/tests \;
-+ find . -type d -name "*data" -exec cp -r {} $(DEST_DIR)/tests \;
-+ @(for file in $(PTESTS); do \
-+ if [ -f .libs/$$file ]; then \
-+ install .libs/$$file $(DEST_DIR)/tests; \
-+ elif [ -f $(srcdir)/$$file ]; then \
-+ install $(srcdir)/$$file $(DEST_DIR)/tests; \
-+ else \
-+ install $(builddir)/$$file $(DEST_DIR)/tests; \
-+ fi; \
-+ done;)
-+ @(if [ -d .libs ]; then install .libs/*.so $(DEST_DIR)/tests/.libs; fi;)
-+ cp ../config.h $(DEST_DIR)
-+ cp Makefile $(DEST_DIR)/tests
-+ sed -i -e 's/^Makefile:/_Makefile:/' $(DEST_DIR)/tests/Makefile
-+ cp ../Makefile $(DEST_DIR)
-+ sed -i -e 's|^Makefile:|_Makefile:|' $(DEST_DIR)/Makefile
-+ sed -i -e 's|$(BUILD_DIR)|$(PTEST_DIR)|g' $(DEST_DIR)/tests/Makefile
-+ sed -i -e 's|$(BUILD_DIR)|$(PTEST_DIR)|g' $(DEST_DIR)/Makefile
-+ sed -i -e 's|^\(.*\.log:\) \(.*EXEEXT.*\)|\1|g' $(DEST_DIR)/tests/Makefile
-+
- CLEANFILES = *.cov *.gcov .libs/*.gcda .libs/*.gcno *.gcno *.gcda
diff --git a/recipes-extended/libvirt/libvirt/tools-add-libvirt-net-rpc-to-virt-host-validate-when.patch b/recipes-extended/libvirt/libvirt/tools-add-libvirt-net-rpc-to-virt-host-validate-when.patch
deleted file mode 100644
index bb500fde..00000000
--- a/recipes-extended/libvirt/libvirt/tools-add-libvirt-net-rpc-to-virt-host-validate-when.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-From 7dc21edd851b260485b432c096f8e90f6fa07778 Mon Sep 17 00:00:00 2001
-From: Dengke Du <dengke.du@windriver.com>
-Date: Tue, 7 May 2019 15:26:32 +0800
-Subject: [PATCH] tools: add libvirt-net-rpc to virt-host-validate when TLS is
- enabled
-
-When gnu-tls is enabled for libvirt references to virNetTLSInit are
-generated in libvirt. Any binaries linking against libvirt, must also
-link against libvirt-net-rpc which provides the implementation.
-
-Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
-[ywei: rebased to libvirt-1.3.2]
-Signed-off-by: Yunguo Wei <yunguo.wei@windriver.com>
-[MA: rebase to v4.3.0]
-Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
-[ddu: rebase to v5.3.0]
-Signed-off-by: Dengke Du <dengke.du@windriver.com>
-
----
- examples/Makefile.am | 20 ++++++++++++++++++++
- tools/Makefile.am | 12 ++++++++++++
- 2 files changed, 32 insertions(+)
-
-diff --git a/examples/Makefile.am b/examples/Makefile.am
-index ad635bd..a94f41d 100644
---- a/examples/Makefile.am
-+++ b/examples/Makefile.am
-@@ -74,6 +74,10 @@ LDADD = \
- $(top_builddir)/src/libvirt-admin.la \
- $(NULL)
-
-+if WITH_GNUTLS
-+LDADD += $(top_builddir)/src/libvirt-net-rpc.la
-+endif
-+
- noinst_PROGRAMS = \
- c/admin/client_close \
- c/admin/client_info \
-@@ -111,6 +115,22 @@ c_misc_openauth_SOURCES = c/misc/openauth.c
- examplesdir = $(docdir)/examples
-
- adminexamplesdir = $(examplesdir)/c/admin
-+
-+if WITH_GNUTLS
-+dominfo_info1_LDADD = $(top_builddir)/src/libvirt-net-rpc.la \
-+ $(LDADD) \
-+ $(NULL)
-+domsuspend_suspend_LDADD = $(top_builddir)/src/libvirt-net-rpc.la \
-+ $(LDADD) \
-+ $(NULL)
-+hellolibvirt_hellolibvirt_LDADD = $(top_builddir)/src/libvirt-net-rpc.la \
-+ $(LDADD) \
-+ $(NULL)
-+openauth_openauth_LDADD = $(top_builddir)/src/libvirt-net-rpc.la \
-+ $(LDADD) \
-+ $(NULL)
-+endif
-+
- adminexamples_DATA = $(ADMIN_EXAMPLES)
-
- domainexamplesdir = $(examplesdir)/c/domain
-diff --git a/tools/Makefile.am b/tools/Makefile.am
-index 53df930..2a0a989 100644
---- a/tools/Makefile.am
-+++ b/tools/Makefile.am
-@@ -166,6 +166,12 @@ virt_host_validate_LDADD = \
- $(GLIB_LIBS) \
- $(NULL)
-
-+if WITH_GNUTLS
-+virt_host_validate_LDADD += ../src/libvirt-net-rpc.la \
-+ ../gnulib/lib/libgnu.la \
-+ $(NULL)
-+endif
-+
- virt_host_validate_CFLAGS = \
- $(AM_CFLAGS) \
- $(NULL)
-@@ -262,6 +268,12 @@ virt_admin_CFLAGS = \
- $(READLINE_CFLAGS)
- BUILT_SOURCES =
-
-+if WITH_GNUTLS
-+virsh_LDADD += ../src/libvirt-net-rpc.la \
-+ ../gnulib/lib/libgnu.la \
-+ $(NULL)
-+endif
-+
- if WITH_WIN_ICON
- virsh_LDADD += virsh_win_icon.$(OBJEXT)
-
diff --git a/recipes-extended/libvirt/libvirt_10.0.0.bb b/recipes-extended/libvirt/libvirt_10.0.0.bb
new file mode 100644
index 00000000..6b19b700
--- /dev/null
+++ b/recipes-extended/libvirt/libvirt_10.0.0.bb
@@ -0,0 +1,334 @@
+DESCRIPTION = "A toolkit to interact with the virtualization capabilities of recent versions of Linux."
+HOMEPAGE = "http://libvirt.org"
+LICENSE = "LGPL-2.1-or-later & GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://COPYING.LESSER;md5=4b54a1fd55a448865a0b32d41598759d"
+SECTION = "console/tools"
+
+DEPENDS = "bridge-utils gnutls libxml2 lvm2 avahi parted curl libpcap util-linux e2fsprogs pm-utils \
+ iptables dnsmasq readline libtasn1 libxslt-native acl libdevmapper libtirpc \
+ python3-docutils-native \
+ ${@bb.utils.contains('PACKAGECONFIG', 'polkit', 'shadow-native', '', d)} \
+ ${@bb.utils.contains('PACKAGECONFIG', 'gnutls', 'gnutls-native', '', d)}"
+
+# libvirt-guests.sh needs gettext.sh
+#
+RDEPENDS:${PN} = "gettext-runtime"
+
+RDEPENDS:libvirt-libvirtd += "bridge-utils iptables pm-utils dnsmasq netcat-openbsd ebtables"
+RDEPENDS:libvirt-libvirtd:append:x86-64 = " dmidecode"
+RDEPENDS:libvirt-libvirtd:append:x86 = " dmidecode"
+RDEPENDS:libvirt-libvirtd:append:arm = " dmidecode"
+RDEPENDS:libvirt-libvirtd:append:aarch64 = " dmidecode"
+
+#connman blocks the 53 port and libvirtd can't start its DNS service
+RCONFLICTS:${PN}_libvirtd = "connman"
+
+SRC_URI = "http://libvirt.org/sources/libvirt-${PV}.tar.xz;name=libvirt \
+ file://libvirtd.sh \
+ file://libvirtd.conf \
+ file://dnsmasq.conf \
+ file://hook_support.py \
+ file://gnutls-helper.py \
+ file://0001-prevent-gendispatch.pl-generating-build-path-in-code.patch \
+ file://0001-messon.build-remove-build-path-information-to-avoid-.patch \
+ "
+
+SRC_URI[libvirt.sha256sum] = "8ba2e72ec8bdd2418554a1474c42c35704c30174b7611eaf9a16544b71bcf00a"
+
+inherit meson gettext update-rc.d pkgconfig systemd useradd perlnative
+USERADD_PACKAGES = "${PN}"
+GROUPADD_PARAM:${PN} = "-r qemu; -r kvm"
+USERADD_PARAM:${PN} = "-r -g qemu -G kvm qemu"
+
+
+EXTRA_OEMESON += "--cross-file ${WORKDIR}/meson-${PN}.cross"
+do_write_config:append() {
+ cat >${WORKDIR}/meson-${PN}.cross <<EOF
+[binaries]
+iptables = '/usr/sbin/iptables'
+ip6tables = '/usr/sbin/ip6tables'
+dmidecode = '/usr/sbin/dmidecode'
+ebtables = '/sbin/ebtables'
+dnsmasq = '/usr/bin/dnsmasq'
+EOF
+}
+
+ALLOW_EMPTY:${PN} = "1"
+INSANE_SKIP:${PN} += "empty-dirs"
+
+PACKAGES =+ "${PN}-libvirtd ${PN}-virsh"
+
+ALLOW_EMPTY:${PN}-libvirtd = "1"
+
+FILES:${PN}-libvirtd = " \
+ ${sysconfdir}/init.d \
+ ${sysconfdir}/sysctl.d \
+ ${sysconfdir}/logrotate.d \
+ ${sysconfdir}/libvirt/libvirtd.conf \
+ /usr/lib/sysctl.d/60-libvirtd.conf \
+ /usr/lib/sysctl.d/60-qemu-postcopy-migration.conf \
+ ${sbindir}/libvirtd \
+ ${systemd_system_unitdir} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', '', '${libexecdir}/libvirt-guests.sh', d)} \
+ ${@bb.utils.contains('PACKAGECONFIG', 'gnutls', '${sysconfdir}/pki/libvirt/* ${sysconfdir}/pki/CA/*', '', d)} \
+ "
+
+FILES:${PN}-virsh = " \
+ ${bindir}/virsh \
+ ${datadir}/bash-completion/completions/virsh \
+"
+
+FILES:${PN} += "${libdir}/libvirt/connection-driver \
+ ${datadir}/augeas \
+ ${@bb.utils.contains('PACKAGECONFIG', 'polkit', '${datadir}/polkit-1', '', d)} \
+ ${datadir}/bash-completion/completions/vsh \
+ ${datadir}/bash-completion/completions/virt-admin \
+ /usr/lib/firewalld/ \
+ "
+
+FILES:${PN}-dbg += "${libdir}/libvirt/connection-driver/.debug ${libdir}/libvirt/lock-driver/.debug"
+FILES:${PN}-staticdev += "${libdir}/*.a ${libdir}/libvirt/connection-driver/*.a ${libdir}/libvirt/lock-driver/*.a"
+
+CONFFILES:${PN} += "${sysconfdir}/libvirt/libvirt.conf \
+ ${sysconfdir}/libvirt/lxc.conf \
+ ${sysconfdir}/libvirt/qemu-lockd.conf \
+ ${sysconfdir}/libvirt/qemu.conf \
+ ${sysconfdir}/libvirt/virt-login-shell.conf \
+ ${sysconfdir}/libvirt/virtlockd.conf"
+
+CONFFILES:${PN}-libvirtd = "${sysconfdir}/logrotate.d/libvirt ${sysconfdir}/logrotate.d/libvirt.lxc \
+ ${sysconfdir}/logrotate.d/libvirt.qemu ${sysconfdir}/logrotate.d/libvirt.uml \
+ ${sysconfdir}/libvirt/libvirtd.conf \
+ /usr/lib/sysctl.d/libvirtd.conf"
+
+INITSCRIPT_PACKAGES = "${PN}-libvirtd"
+INITSCRIPT_NAME:${PN}-libvirtd = "libvirtd"
+INITSCRIPT_PARAMS:${PN}-libvirtd = "defaults 72"
+
+SYSTEMD_PACKAGES = "${PN}-libvirtd"
+SYSTEMD_SERVICE:${PN}-libvirtd = " \
+ libvirtd.service \
+ virtlockd.service \
+ libvirt-guests.service \
+ virtlockd.socket \
+ "
+
+# xen-minimal config
+#PACKAGECONFIG ??= "xen libxl xen-inotify test remote libvirtd"
+
+# full config
+PACKAGECONFIG ??= "gnutls qemu yajl openvz vmware vbox esx lxc test remote \
+ libvirtd netcf udev python fuse firewalld libpcap \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'selinux audit libcap-ng', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'xen', 'libxl', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'polkit', 'polkit', '', d)} \
+ "
+
+# qemu is NOT compatible with mips64, powerpc and riscv32
+PACKAGECONFIG:remove:mipsarchn32 = "qemu"
+PACKAGECONFIG:remove:mipsarchn64 = "qemu"
+PACKAGECONFIG:remove:powerpc = "qemu"
+PACKAGECONFIG:remove:riscv32 = "qemu"
+
+# numactl is NOT compatible with arm
+PACKAGECONFIG:remove:arm = "numactl"
+PACKAGECONFIG:remove:armeb = "numactl"
+
+# enable,disable,depends,rdepends
+#
+PACKAGECONFIG[gnutls] = ",,,gnutls-bin"
+PACKAGECONFIG[qemu] = "-Ddriver_qemu=enabled -Dqemu_user=qemu -Dqemu_group=qemu,-Ddriver_qemu=disabled,qemu,"
+PACKAGECONFIG[yajl] = "-Dyajl=enabled,-Dyajl=disabled,yajl,yajl"
+PACKAGECONFIG[libxl] = "-Ddriver_libxl=enabled,-Ddriver_libxl=disabled,xen,"
+PACKAGECONFIG[openvz] = "-Ddriver_openvz=enabled,-Ddriver_openvz=disabled,,"
+PACKAGECONFIG[vmware] = "-Ddriver_vmware=enabled,-Ddriver_vmware=disabled,,"
+PACKAGECONFIG[vbox] = "-Ddriver_vbox=enabled,-Ddriver_vbox=disabled,,"
+PACKAGECONFIG[esx] = "-Ddriver_esx=enabled,-Ddriver_esx=disabled,,"
+PACKAGECONFIG[hyperv] = "-Ddriver_hyperv=enabled,-Ddriver_hyperv=disabled,,"
+PACKAGECONFIG[polkit] = "-Dpolkit=enabled,-Dpolkit=disabled,polkit,polkit"
+PACKAGECONFIG[lxc] = "-Ddriver_lxc=enabled,-Ddriver_lxc=disabled,lxc,"
+PACKAGECONFIG[test] = "-Ddriver_test=enabled,-Ddriver_test=disabled,,"
+PACKAGECONFIG[remote] = "-Ddriver_remote=enabled,-Ddriver_remote=disabled,,"
+PACKAGECONFIG[libvirtd] = "-Ddriver_libvirtd=enabled,-Ddriver_libvirtd=disabled,,"
+PACKAGECONFIG[netcf] = "-Dnetcf=enabled,-Dnetcf=disabled,netcf,netcf"
+PACKAGECONFIG[dtrace] = "-Ddtrace=enabled,-Ddtrace=disabled,,"
+PACKAGECONFIG[udev] = "-Dudev=enabled -Dpciaccess=enabled,-Dudev=disabled,udev libpciaccess,"
+PACKAGECONFIG[selinux] = "-Dselinux=enabled,-Dselinux=disabled,libselinux,"
+PACKAGECONFIG[python] = ",,python3,"
+PACKAGECONFIG[sasl] = "-Dsasl=enabled,-Dsasl=disabled,cyrus-sasl,cyrus-sasl"
+PACKAGECONFIG[numactl] = "-Dnumactl=enabled,-Dnumactl=disabled,numactl,"
+PACKAGECONFIG[fuse] = "-Dfuse=enabled,-Dfuse=disabled,fuse3,"
+PACKAGECONFIG[audit] = "-Daudit=enabled,-Daudit=disabled,audit,"
+PACKAGECONFIG[libcap-ng] = "-Dcapng=enabled,-Dcapng=disabled,libcap-ng,"
+PACKAGECONFIG[wireshark] = "-Dwireshark_dissector=enabled,-Dwireshark_dissector=disabled,wireshark libwsutil,"
+PACKAGECONFIG[apparmor_profiles] = "-Dapparmor_profiles=enabled, -Dapparmor_profiles=disabled,"
+PACKAGECONFIG[firewalld] = "-Dfirewalld=enabled, -Dfirewalld=disabled,"
+PACKAGECONFIG[libpcap] = "-Dlibpcap=enabled, -Dlibpcap=disabled,libpcap,libpcap"
+PACKAGECONFIG[numad] = "-Dnumad=enabled, -Dnumad=disabled,"
+
+# Enable the Python tool support
+require libvirt-python.inc
+
+do_compile() {
+ cd ${B}/src
+ # There may be race condition, but without creating these directories
+ # in the source tree, generation of files fails.
+ for i in access admin logging esx locking rpc hyperv lxc \
+ remote network storage interface nwfilter node_device \
+ secret vbox qemu; do
+ mkdir -p $i;
+ done
+
+ cd ${B}
+ export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:${B}/src:"
+ ninja all
+}
+
+do_install:prepend() {
+ # so the install routines can find the libvirt.pc in the source dir
+ export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:${B}/src:"
+}
+
+do_install:append() {
+ install -d ${D}/etc/init.d
+ install -d ${D}/etc/libvirt
+ install -d ${D}/etc/dnsmasq.d
+
+ install -m 0755 ${WORKDIR}/libvirtd.sh ${D}/etc/init.d/libvirtd
+ install -m 0644 ${WORKDIR}/libvirtd.conf ${D}/etc/libvirt/libvirtd.conf
+
+ if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)}; then
+ # This will wind up in the libvirtd package, but will NOT be invoked by default.
+ #
+ mv ${D}/${libexecdir}/libvirt-guests.sh ${D}/${sysconfdir}/init.d
+ fi
+
+ if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ if [ "${systemd_system_unitdir}" != "${prefix}/lib/systemd/system" ] ; then
+ # ./src/meson.build: systemd_unit_dir = prefix / 'lib' / 'systemd' / 'system'
+ # ./tools/meson.build: install_dir: prefix / 'lib' / 'systemd' / 'system',
+ mkdir -p ${D}${systemd_system_unitdir}
+ mv ${D}${prefix}/lib/systemd/system/* ${D}${systemd_system_unitdir}
+ rmdir ${D}${prefix}/lib/systemd/system ${D}${prefix}/lib/systemd
+ fi
+
+ # We can't use 'notify' when we don't support 'sd_notify' dbus capabilities.
+ # Change default LIBVIRTD_ARGS to start libvirtd in the right mode.
+ sed -i -e 's/Type=notify/Type=forking/' \
+ -e '/Type=forking/a PIDFile=/run/libvirtd.pid' \
+ -e 's/\(Environment=LIBVIRTD_ARGS="--timeout 120"\)/#\1\nEnvironment=LIBVIRTD_ARGS="--listen --daemon"/' \
+ ${D}/${systemd_system_unitdir}/libvirtd.service
+ fi
+
+ # The /run/libvirt directories created by the Makefile are
+ # wiped out in volatile, we need to create these at boot.
+ rm -rf ${D}/run
+ install -d ${D}${sysconfdir}/default/volatiles
+ echo "d root root 0755 /run/libvirt none" \
+ > ${D}${sysconfdir}/default/volatiles/99_libvirt
+ echo "d root root 0755 /run/libvirt/lockd none" \
+ >> ${D}${sysconfdir}/default/volatiles/99_libvirt
+ echo "d root root 0755 /run/libvirt/lxc none" \
+ >> ${D}${sysconfdir}/default/volatiles/99_libvirt
+ echo "d root root 0755 /run/libvirt/network none" \
+ >> ${D}${sysconfdir}/default/volatiles/99_libvirt
+ echo "d root root 0755 /run/libvirt/qemu none" \
+ >> ${D}${sysconfdir}/default/volatiles/99_libvirt
+
+ # Manually set permissions and ownership to match polkit recipe
+ if ${@bb.utils.contains('PACKAGECONFIG', 'polkit', 'true', 'false', d)}; then
+ install -d -m 0700 ${D}/${datadir}/polkit-1/rules.d
+ chown polkitd ${D}/${datadir}/polkit-1/rules.d
+ chgrp root ${D}/${datadir}/polkit-1/rules.d
+ else
+ rm -rf ${D}/${datadir}/polkit-1
+ fi
+
+ # disable seccomp_sandbox
+ if [ -e ${D}${sysconfdir}/libvirt/qemu.conf ] ; then
+ sed -i '/^#seccomp_sandbox = 1/aseccomp_sandbox = 0' \
+ ${D}${sysconfdir}/libvirt/qemu.conf
+ fi
+
+ # Add hook support for libvirt
+ mkdir -p ${D}/etc/libvirt/hooks
+ for hook in "daemon" "lxc" "network" "qemu"
+ do
+ install -m 0755 ${WORKDIR}/hook_support.py ${D}/etc/libvirt/hooks/${hook}
+ done
+
+ # Force the main dnsmasq instance to bind only to specified interfaces and
+ # to not bind to virbr0. Libvirt will run its own instance on this interface.
+ install -m 644 ${WORKDIR}/dnsmasq.conf ${D}/${sysconfdir}/dnsmasq.d/libvirt-daemon
+
+ # remove .la references to our working diretory
+ for i in `find ${D}${libdir} -type f -name *.la`; do
+ sed -i -e 's#-L${B}/src/.libs##g' $i
+ done
+
+ sed -i -e 's/^\(unix_sock_group\ =\ \).*/\1"kvm"/' ${D}/etc/libvirt/libvirtd.conf
+ sed -i -e 's/^\(unix_sock_rw_perms\ =\ \).*/\1"0776"/' ${D}/etc/libvirt/libvirtd.conf
+
+ case ${MACHINE_ARCH} in
+ *mips*)
+ break
+ ;;
+ *)
+ if ${@bb.utils.contains('PACKAGECONFIG', 'qemu', 'true', 'false', d)}; then
+ chown -R qemu:qemu ${D}/${localstatedir}/lib/libvirt/qemu
+ echo "d qemu qemu 0755 ${localstatedir}/cache/libvirt/qemu none" \
+ >> ${D}${sysconfdir}/default/volatiles/99_libvirt
+ break
+ fi
+ ;;
+ esac
+
+ if ${@bb.utils.contains('PACKAGECONFIG','gnutls','true','false',d)}; then
+ # Generate sample keys and certificates.
+ cd ${WORKDIR}
+ ${WORKDIR}/gnutls-helper.py -y
+
+ # Deploy all sample keys and certificates of CA, server and client
+ # to target so that libvirtd is able to boot successfully and local
+ # connection via 127.0.0.1 is available out of box.
+ install -d ${D}/etc/pki/CA
+ install -d ${D}/etc/pki/libvirt/private
+ install -m 0755 ${WORKDIR}/gnutls-helper.py ${D}/${bindir}
+ install -m 0644 ${WORKDIR}/cakey.pem ${D}/${sysconfdir}/pki/libvirt/private/cakey.pem
+ install -m 0644 ${WORKDIR}/cacert.pem ${D}/${sysconfdir}/pki/CA/cacert.pem
+ install -m 0644 ${WORKDIR}/serverkey.pem ${D}/${sysconfdir}/pki/libvirt/private/serverkey.pem
+ install -m 0644 ${WORKDIR}/servercert.pem ${D}/${sysconfdir}/pki/libvirt/servercert.pem
+ install -m 0644 ${WORKDIR}/clientkey.pem ${D}/${sysconfdir}/pki/libvirt/private/clientkey.pem
+ install -m 0644 ${WORKDIR}/clientcert.pem ${D}/${sysconfdir}/pki/libvirt/clientcert.pem
+
+ # Force the connection to be tls.
+ sed -i -e 's/^\(listen_tls\ =\ .*\)/#\1/' -e 's/^\(listen_tcp\ =\ .*\)/#\1/' ${D}/etc/libvirt/libvirtd.conf
+ fi
+
+ # virt-login-shell needs to run with setuid permission
+ chmod 4755 ${D}${bindir}/virt-login-shell
+}
+
+EXTRA_OEMESON += " \
+ -Dinit_script=${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd','none', d)} \
+ -Drunstatedir=/run \
+ -Dtests=enabled \
+ "
+
+# gcc9 end up mis-compiling qemuxml2argvtest.o with Og which then
+# crashes on target, so remove -Og and use -O2 as workaround
+SELECTED_OPTIMIZATION:remove:virtclass-multilib-lib32:mipsarch = "-Og"
+SELECTED_OPTIMIZATION:append:virtclass-multilib-lib32:mipsarch = " -O2"
+
+pkg_postinst:${PN}() {
+ if [ -z "$D" ] && [ -e /etc/init.d/populate-volatile.sh ] ; then
+ /etc/init.d/populate-volatile.sh update
+ fi
+ mkdir -m 711 -p $D/data/images
+}
+
+python () {
+ if not bb.utils.contains('DISTRO_FEATURES', 'sysvinit', True, False, d):
+ d.setVar("INHIBIT_UPDATERCD_BBCLASS", "1")
+}
diff --git a/recipes-extended/libvirt/libvirt_6.3.0.bb b/recipes-extended/libvirt/libvirt_6.3.0.bb
deleted file mode 100644
index 08e2961c..00000000
--- a/recipes-extended/libvirt/libvirt_6.3.0.bb
+++ /dev/null
@@ -1,418 +0,0 @@
-DESCRIPTION = "A toolkit to interact with the virtualization capabilities of recent versions of Linux."
-HOMEPAGE = "http://libvirt.org"
-LICENSE = "LGPLv2.1+ & GPLv2+"
-LICENSE_${PN}-ptest = "GPLv2+ & LGPLv2.1+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://COPYING.LESSER;md5=4b54a1fd55a448865a0b32d41598759d"
-SECTION = "console/tools"
-
-DEPENDS = "bridge-utils gnutls libxml2 lvm2 avahi parted curl libpcap util-linux e2fsprogs pm-utils \
- iptables dnsmasq readline libtasn1 libxslt-native acl libdevmapper libtirpc \
- python3-docutils-native \
- ${@bb.utils.contains('PACKAGECONFIG', 'polkit', 'shadow-native', '', d)} \
- ${@bb.utils.contains('PACKAGECONFIG', 'gnutls', 'gnutls-native', '', d)}"
-
-# libvirt-guests.sh needs gettext.sh
-#
-RDEPENDS_${PN} = "gettext-runtime"
-
-RDEPENDS_${PN}-ptest += "make gawk perl bash"
-
-RDEPENDS_libvirt-libvirtd += "bridge-utils iptables pm-utils dnsmasq netcat-openbsd"
-RDEPENDS_libvirt-libvirtd_append_x86-64 = " dmidecode"
-RDEPENDS_libvirt-libvirtd_append_x86 = " dmidecode"
-
-#connman blocks the 53 port and libvirtd can't start its DNS service
-RCONFLICTS_${PN}_libvirtd = "connman"
-
-SRC_URI = "http://libvirt.org/sources/libvirt-${PV}.tar.xz;name=libvirt \
- file://tools-add-libvirt-net-rpc-to-virt-host-validate-when.patch \
- file://libvirtd.sh \
- file://libvirtd.conf \
- file://dnsmasq.conf \
- file://runptest.patch \
- file://run-ptest \
- file://libvirt-use-pkg-config-to-locate-libcap.patch \
- file://0001-to-fix-build-error.patch \
- file://install-missing-file.patch \
- file://0001-ptest-Remove-Windows-1252-check-from-esxutilstest.patch \
- file://configure.ac-search-for-rpc-rpc.h-in-the-sysroot.patch \
- file://0001-build-drop-unnecessary-libgnu.la-reference.patch \
- file://hook_support.py \
- file://gnutls-helper.py \
- "
-
-SRC_URI[libvirt.md5sum] = "1bd4435f77924f5ec9928b538daf4a02"
-SRC_URI[libvirt.sha256sum] = "74069438d34082336e99a88146349e21130552b96efc3b7c562f6878127996f5"
-
-inherit autotools gettext update-rc.d pkgconfig ptest systemd useradd perlnative
-USERADD_PACKAGES = "${PN}"
-GROUPADD_PARAM_${PN} = "-r qemu; -r kvm"
-USERADD_PARAM_${PN} = "-r -g qemu -G kvm qemu"
-
-# Override the default set in autotools.bbclass so that we will use relative pathnames
-# to our local m4 files. This prevents an "Argument list too long" error during configuration
-# if our project is in a directory with an absolute pathname of more than about 125 characters.
-#
-acpaths = "-I ./m4"
-
-CACHED_CONFIGUREVARS += "\
-ac_cv_path_XMLCATLOG=/usr/bin/xmlcatalog \
-ac_cv_path_AUGPARSE=/usr/bin/augparse \
-ac_cv_path_DMIDECODE=/usr/sbin/dmidecode \
-ac_cv_path_DNSMASQ=/usr/bin/dnsmasq \
-ac_cv_path_BRCTL=/usr/sbin/brctl \
-ac_cv_path_TC=/sbin/tc \
-ac_cv_path_UDEVADM=/sbin/udevadm \
-ac_cv_path_MODPROBE=/sbin/modprobe \
-ac_cv_path_IP_PATH=/bin/ip \
-ac_cv_path_IPTABLES_PATH=/usr/sbin/iptables \
-ac_cv_path_IP6TABLES_PATH=/usr/sbin/ip6tables \
-ac_cv_path_MOUNT=/bin/mount \
-ac_cv_path_UMOUNT=/bin/umount \
-ac_cv_path_MKFS=/usr/sbin/mkfs \
-ac_cv_path_SHOWMOUNT=/usr/sbin/showmount \
-ac_cv_path_PVCREATE=/usr/sbin/pvcreate \
-ac_cv_path_VGCREATE=/usr/sbin/vgcreate \
-ac_cv_path_LVCREATE=/usr/sbin/lvcreate \
-ac_cv_path_PVREMOVE=/usr/sbin/pvremove \
-ac_cv_path_VGREMOVE=/usr/sbin/vgremove \
-ac_cv_path_LVREMOVE=/usr/sbin/lvremove \
-ac_cv_path_LVCHANGE=/usr/sbin/lvchange \
-ac_cv_path_VGCHANGE=/usr/sbin/vgchange \
-ac_cv_path_VGSCAN=/usr/sbin/vgscan \
-ac_cv_path_PVS=/usr/sbin/pvs \
-ac_cv_path_VGS=/usr/sbin/vgs \
-ac_cv_path_LVS=/usr/sbin/lvs \
-ac_cv_path_PARTED=/usr/sbin/parted \
-ac_cv_path_DMSETUP=/usr/sbin/dmsetup"
-
-# Ensure that libvirt uses polkit rather than policykit, whether the host has
-# pkcheck installed or not, and ensure the path is correct per our config.
-CACHED_CONFIGUREVARS += "ac_cv_path_PKCHECK_PATH=${bindir}/pkcheck"
-
-# Some other possible paths we are not yet setting
-#ac_cv_path_RPCGEN=
-#ac_cv_path_XSLTPROC=
-#ac_cv_path_RADVD=
-#ac_cv_path_UDEVSETTLE=
-#ac_cv_path_EBTABLES_PATH=
-#ac_cv_path_PKG_CONFIG=
-#ac_cv_path_ac_pt_PKG_CONFIG
-#ac_cv_path_POLKIT_AUTH=
-#ac_cv_path_DTRACE=
-#ac_cv_path_ISCSIADM=
-#ac_cv_path_MSGFMT=
-#ac_cv_path_GMSGFMT=
-#ac_cv_path_XGETTEXT=
-#ac_cv_path_MSGMERGE=
-#ac_cv_path_SCRUB=
-#ac_cv_path_PYTHON=
-
-ALLOW_EMPTY_${PN} = "1"
-
-PACKAGES =+ "${PN}-libvirtd ${PN}-virsh"
-
-ALLOW_EMPTY_${PN}-libvirtd = "1"
-
-FILES_${PN}-libvirtd = " \
- ${sysconfdir}/init.d \
- ${sysconfdir}/sysctl.d \
- ${sysconfdir}/logrotate.d \
- ${sysconfdir}/libvirt/libvirtd.conf \
- /usr/lib/sysctl.d/60-libvirtd.conf \
- ${sbindir}/libvirtd \
- ${systemd_unitdir}/system/* \
- ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', '', '${libexecdir}/libvirt-guests.sh', d)} \
- ${@bb.utils.contains('PACKAGECONFIG', 'gnutls', '${sysconfdir}/pki/libvirt/* ${sysconfdir}/pki/CA/*', '', d)} \
- "
-
-FILES_${PN}-virsh = " \
- ${bindir}/virsh \
- ${datadir}/bash-completion/completions/virsh \
-"
-
-FILES_${PN} += "${libdir}/libvirt/connection-driver \
- ${datadir}/augeas \
- ${@bb.utils.contains('PACKAGECONFIG', 'polkit', '${datadir}/polkit-1', '', d)} \
- ${datadir}/bash-completion/completions/vsh \
- ${datadir}/bash-completion/completions/virt-admin \
- /usr/lib/firewalld/zones/libvirt.xml \
- "
-
-FILES_${PN}-dbg += "${libdir}/libvirt/connection-driver/.debug ${libdir}/libvirt/lock-driver/.debug"
-FILES_${PN}-staticdev += "${libdir}/*.a ${libdir}/libvirt/connection-driver/*.a ${libdir}/libvirt/lock-driver/*.a"
-
-CONFFILES_${PN} += "${sysconfdir}/libvirt/libvirt.conf \
- ${sysconfdir}/libvirt/lxc.conf \
- ${sysconfdir}/libvirt/qemu-lockd.conf \
- ${sysconfdir}/libvirt/qemu.conf \
- ${sysconfdir}/libvirt/virt-login-shell.conf \
- ${sysconfdir}/libvirt/virtlockd.conf"
-
-CONFFILES_${PN}-libvirtd = "${sysconfdir}/logrotate.d/libvirt ${sysconfdir}/logrotate.d/libvirt.lxc \
- ${sysconfdir}/logrotate.d/libvirt.qemu ${sysconfdir}/logrotate.d/libvirt.uml \
- ${sysconfdir}/libvirt/libvirtd.conf \
- /usr/lib/sysctl.d/libvirtd.conf"
-
-INITSCRIPT_PACKAGES = "${PN}-libvirtd"
-INITSCRIPT_NAME_${PN}-libvirtd = "libvirtd"
-INITSCRIPT_PARAMS_${PN}-libvirtd = "defaults 72"
-
-SYSTEMD_PACKAGES = "${PN}-libvirtd"
-SYSTEMD_SERVICE_${PN}-libvirtd = " \
- libvirtd.service \
- virtlockd.service \
- libvirt-guests.service \
- virtlockd.socket \
- "
-
-
-PRIVATE_LIBS_${PN}-ptest = " \
- libvirt-lxc.so.0 \
- libvirt.so.0 \
- libvirt-qemu.so.0 \
- lockd.so \
- libvirt_driver_secret.so \
- libvirt_driver_nodedev.so \
- libvirt_driver_vbox.so \
- libvirt_driver_interface.so \
- libvirt_driver_uml.so \
- libvirt_driver_network.so \
- libvirt_driver_nwfilter.so \
- libvirt_driver_qemu.so \
- libvirt_driver_storage.so \
- libvirt_driver_lxc.so \
- "
-
-# xen-minimal config
-#PACKAGECONFIG ??= "xen libxl xen-inotify test remote libvirtd"
-
-# full config
-PACKAGECONFIG ??= "qemu yajl openvz vmware vbox esx iproute2 lxc test \
- remote macvtap libvirtd netcf udev python ebtables \
- fuse iproute2 firewalld libpcap \
- ${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'selinux audit libcap-ng', '', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'xen', 'libxl', '', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'polkit', 'polkit', '', d)} \
- "
-
-# qemu is NOT compatible with mips64
-PACKAGECONFIG_remove_mipsarchn32 = "qemu"
-PACKAGECONFIG_remove_mipsarchn64 = "qemu"
-
-# numactl is NOT compatible with arm
-PACKAGECONFIG_remove_arm = "numactl"
-PACKAGECONFIG_remove_armeb = "numactl"
-
-# enable,disable,depends,rdepends
-#
-PACKAGECONFIG[gnutls] = ",,,gnutls-bin"
-PACKAGECONFIG[qemu] = "--with-qemu --with-qemu-user=qemu --with-qemu-group=qemu,--without-qemu,qemu,"
-PACKAGECONFIG[yajl] = "--with-yajl,--without-yajl,yajl,yajl"
-PACKAGECONFIG[libxl] = "--with-libxl=${STAGING_DIR_TARGET}/lib,--without-libxl,xen,"
-PACKAGECONFIG[openvz] = "--with-openvz,--without-openvz,,"
-PACKAGECONFIG[vmware] = "--with-vmware,--without-vmware,,"
-PACKAGECONFIG[vbox] = "--with-vbox,--without-vbox,,"
-PACKAGECONFIG[esx] = "--with-esx,--without-esx,,"
-PACKAGECONFIG[hyperv] = "--with-hyperv,--without-hyperv,,"
-PACKAGECONFIG[polkit] = "--with-polkit,--without-polkit,polkit,polkit"
-PACKAGECONFIG[lxc] = "--with-lxc,--without-lxc, lxc,"
-PACKAGECONFIG[test] = "--with-test=yes,--with-test=no,,"
-PACKAGECONFIG[remote] = "--with-remote,--without-remote,,"
-PACKAGECONFIG[macvtap] = "--with-macvtap=yes,--with-macvtap=no,libnl,libnl"
-PACKAGECONFIG[libvirtd] = "--with-libvirtd,--without-libvirtd,,"
-PACKAGECONFIG[netcf] = "--with-netcf,--without-netcf,netcf,netcf"
-PACKAGECONFIG[dtrace] = "--with-dtrace,--without-dtrace,,"
-PACKAGECONFIG[udev] = "--with-udev --with-pciaccess,--without-udev,udev libpciaccess,"
-PACKAGECONFIG[selinux] = "--with-selinux,--without-selinux,libselinux,"
-PACKAGECONFIG[ebtables] = "ac_cv_path_EBTABLES_PATH=/sbin/ebtables,ac_cv_path_EBTABLES_PATH=,ebtables,ebtables"
-PACKAGECONFIG[python] = ",,python3,"
-PACKAGECONFIG[sasl] = "--with-sasl,--without-sasl,cyrus-sasl,cyrus-sasl"
-PACKAGECONFIG[iproute2] = "ac_cv_path_IP_PATH=/sbin/ip,ac_cv_path_IP_PATH=,iproute2,iproute2"
-PACKAGECONFIG[numactl] = "--with-numactl,--without-numactl,numactl,"
-PACKAGECONFIG[fuse] = "--with-fuse,--without-fuse,fuse,"
-PACKAGECONFIG[audit] = "--with-audit,--without-audit,audit,"
-PACKAGECONFIG[libcap-ng] = "--with-capng,--without-capng,libcap-ng,"
-PACKAGECONFIG[wireshark] = "--with-wireshark-dissector,--without-wireshark-dissector,wireshark libwsutil,"
-PACKAGECONFIG[apparmor-profiles] = "--with-apparmor-profiles, --without-apparmor-profiles,"
-PACKAGECONFIG[firewalld] = "--with-firewalld, --without-firewalld,"
-PACKAGECONFIG[libpcap] = "--with-libpcap, --without-libpcap,libpcap,libpcap"
-PACKAGECONFIG[numad] = "--with-numad, --without-numad,"
-
-# Enable the Python tool support
-require libvirt-python.inc
-
-do_compile() {
- cd ${B}/src
- # There may be race condition, but without creating these directories
- # in the source tree, generation of files fails.
- for i in access admin logging esx locking rpc hyperv lxc \
- remote network storage interface nwfilter node_device \
- secret vbox qemu; do
- mkdir -p $i;
- done
-
- cd ${B}
- export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:${B}/src:"
- oe_runmake all
-}
-
-do_install_prepend() {
- # so the install routines can find the libvirt.pc in the source dir
- export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:${B}/src:"
-}
-
-do_install_append() {
- install -d ${D}/etc/init.d
- install -d ${D}/etc/libvirt
- install -d ${D}/etc/dnsmasq.d
-
- install -m 0755 ${WORKDIR}/libvirtd.sh ${D}/etc/init.d/libvirtd
- install -m 0644 ${WORKDIR}/libvirtd.conf ${D}/etc/libvirt/libvirtd.conf
-
- if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)}; then
- # This will wind up in the libvirtd package, but will NOT be invoked by default.
- #
- mv ${D}/${libexecdir}/libvirt-guests.sh ${D}/${sysconfdir}/init.d
- fi
-
- if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
- # This variable is used by libvirtd.service to start libvirtd in the right mode
- sed -i '/#LIBVIRTD_ARGS="--listen"/a LIBVIRTD_ARGS="--listen --daemon"' ${D}/${sysconfdir}/sysconfig/libvirtd
-
- # We can't use 'notify' when we don't support 'sd_notify' dbus capabilities.
- sed -i -e 's/Type=notify/Type=forking/' \
- -e '/Type=forking/a PIDFile=${localstatedir}/run/libvirtd.pid' \
- ${D}/${systemd_unitdir}/system/libvirtd.service
- fi
-
- # The /var/run/libvirt directories created by the Makefile
- # are wiped out in volatile, we need to create these at boot.
- rm -rf ${D}${localstatedir}/run
- install -d ${D}${sysconfdir}/default/volatiles
- echo "d root root 0755 ${localstatedir}/run/libvirt none" \
- > ${D}${sysconfdir}/default/volatiles/99_libvirt
- echo "d root root 0755 ${localstatedir}/run/libvirt/lockd none" \
- >> ${D}${sysconfdir}/default/volatiles/99_libvirt
- echo "d root root 0755 ${localstatedir}/run/libvirt/lxc none" \
- >> ${D}${sysconfdir}/default/volatiles/99_libvirt
- echo "d root root 0755 ${localstatedir}/run/libvirt/network none" \
- >> ${D}${sysconfdir}/default/volatiles/99_libvirt
- echo "d root root 0755 ${localstatedir}/run/libvirt/qemu none" \
- >> ${D}${sysconfdir}/default/volatiles/99_libvirt
-
- # Manually set permissions and ownership to match polkit recipe
- if ${@bb.utils.contains('PACKAGECONFIG', 'polkit', 'true', 'false', d)}; then
- install -d -m 0700 ${D}/${datadir}/polkit-1/rules.d
- chown polkitd ${D}/${datadir}/polkit-1/rules.d
- chgrp root ${D}/${datadir}/polkit-1/rules.d
- else
- rm -rf ${D}/${datadir}/polkit-1
- fi
-
- # disable seccomp_sandbox
- if [ -e ${D}${sysconfdir}/libvirt/qemu.conf ] ; then
- sed -i '/^#seccomp_sandbox = 1/aseccomp_sandbox = 0' \
- ${D}${sysconfdir}/libvirt/qemu.conf
- fi
-
- # Add hook support for libvirt
- mkdir -p ${D}/etc/libvirt/hooks
- for hook in "daemon" "lxc" "network" "qemu"
- do
- install -m 0755 ${WORKDIR}/hook_support.py ${D}/etc/libvirt/hooks/${hook}
- done
-
- # Force the main dnsmasq instance to bind only to specified interfaces and
- # to not bind to virbr0. Libvirt will run its own instance on this interface.
- install -m 644 ${WORKDIR}/dnsmasq.conf ${D}/${sysconfdir}/dnsmasq.d/libvirt-daemon
-
- # remove .la references to our working diretory
- for i in `find ${D}${libdir} -type f -name *.la`; do
- sed -i -e 's#-L${B}/src/.libs##g' $i
- done
-
- sed -i -e 's/^\(unix_sock_group\ =\ \).*/\1"kvm"/' ${D}/etc/libvirt/libvirtd.conf
- sed -i -e 's/^\(unix_sock_rw_perms\ =\ \).*/\1"0776"/' ${D}/etc/libvirt/libvirtd.conf
-
- case ${MACHINE_ARCH} in
- *mips*)
- break
- ;;
- *)
- if ${@bb.utils.contains('PACKAGECONFIG', 'qemu', 'true', 'false', d)}; then
- chown -R qemu:qemu ${D}/${localstatedir}/lib/libvirt/qemu
- echo "d qemu qemu 0755 ${localstatedir}/cache/libvirt/qemu none" \
- >> ${D}${sysconfdir}/default/volatiles/99_libvirt
- break
- fi
- ;;
- esac
-
- if ${@bb.utils.contains('PACKAGECONFIG','gnutls','true','false',d)}; then
- # Generate sample keys and certificates.
- cd ${WORKDIR}
- ${WORKDIR}/gnutls-helper.py -y
-
- # Deploy all sample keys and certificates of CA, server and client
- # to target so that libvirtd is able to boot successfully and local
- # connection via 127.0.0.1 is available out of box.
- install -d ${D}/etc/pki/CA
- install -d ${D}/etc/pki/libvirt/private
- install -m 0755 ${WORKDIR}/gnutls-helper.py ${D}/${bindir}
- install -m 0644 ${WORKDIR}/cakey.pem ${D}/${sysconfdir}/pki/libvirt/private/cakey.pem
- install -m 0644 ${WORKDIR}/cacert.pem ${D}/${sysconfdir}/pki/CA/cacert.pem
- install -m 0644 ${WORKDIR}/serverkey.pem ${D}/${sysconfdir}/pki/libvirt/private/serverkey.pem
- install -m 0644 ${WORKDIR}/servercert.pem ${D}/${sysconfdir}/pki/libvirt/servercert.pem
- install -m 0644 ${WORKDIR}/clientkey.pem ${D}/${sysconfdir}/pki/libvirt/private/clientkey.pem
- install -m 0644 ${WORKDIR}/clientcert.pem ${D}/${sysconfdir}/pki/libvirt/clientcert.pem
-
- # Force the connection to be tls.
- sed -i -e 's/^\(listen_tls\ =\ .*\)/#\1/' -e 's/^\(listen_tcp\ =\ .*\)/#\1/' ${D}/etc/libvirt/libvirtd.conf
- fi
-
- # virt-login-shell needs to run with setuid permission
- chmod 4755 ${D}${bindir}/virt-login-shell
-}
-
-EXTRA_OECONF += " \
- --with-init-script=systemd \
- --with-test-suite \
- "
-
-# gcc9 end up mis-compiling qemuxml2argvtest.o with Og which then
-# crashes on target, so remove -Og and use -O2 as workaround
-SELECTED_OPTIMIZATION_remove_virtclass-multilib-lib32_mipsarch = "-Og"
-SELECTED_OPTIMIZATION_append_virtclass-multilib-lib32_mipsarch = " -O2"
-
-EXTRA_OEMAKE = "BUILD_DIR=${B} DEST_DIR=${D}${PTEST_PATH} PTEST_DIR=${PTEST_PATH} SYSTEMD_UNIT_DIR=${systemd_system_unitdir}"
-
-PRIVATE_LIBS_${PN}-ptest_append = "libvirt-admin.so.0"
-
-do_compile_ptest() {
- oe_runmake -C tests buildtest-TESTS
-}
-
-do_install_ptest() {
- oe_runmake -C tests install-ptest
-
- find ${S}/tests -maxdepth 1 -type d -exec cp -r {} ${D}${PTEST_PATH}/tests/ \;
-
- # remove .la files for ptest, they aren't required and can trigger QA errors
- for i in `find ${D}${PTEST_PATH} -type f \( -name *.la -o -name *.o \)`; do
- rm -f $i
- done
-}
-
-pkg_postinst_${PN}() {
- if [ -z "$D" ] && [ -e /etc/init.d/populate-volatile.sh ] ; then
- /etc/init.d/populate-volatile.sh update
- fi
- mkdir -m 711 -p $D/data/images
-}
-
-python () {
- if not bb.utils.contains('DISTRO_FEATURES', 'sysvinit', True, False, d):
- d.setVar("INHIBIT_UPDATERCD_BBCLASS", "1")
-}
diff --git a/recipes-extended/libvmi/files/0001-Build-vbd-only-when-xen-is-enabled.patch b/recipes-extended/libvmi/files/0001-Build-vbd-only-when-xen-is-enabled.patch
new file mode 100644
index 00000000..bf6e9f0e
--- /dev/null
+++ b/recipes-extended/libvmi/files/0001-Build-vbd-only-when-xen-is-enabled.patch
@@ -0,0 +1,76 @@
+From fb7a1493c7d4a30ae930d8cb7dcb84c83c0cacce Mon Sep 17 00:00:00 2001
+From: He Zhe <zhe.he@windriver.com>
+Date: Wed, 13 Apr 2022 09:26:01 +0000
+Subject: [PATCH] Build vbd only when xen is enabled
+
+vbd was added for xen based VMs since
+bdee00fac9b4 ("Disk reading interface for Xen based VMs and example")
+and should be built only when xen is enabled, otherwise there would not be
+necessary xen headers and cause the following failure.
+
+xen_private.h:38:10: fatal error: xenctrl.h: No such file or directory
+
+Upstream-Status: Pending
+
+Signed-off-by: He Zhe <zhe.he@windriver.com>
+---
+ Makefile.am | 8 ++++----
+ libvmi/CMakeLists.txt | 2 +-
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 097c23c..c560a1d 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -17,8 +17,7 @@ h_private = \
+ libvmi/os/os_interface.h \
+ libvmi/driver/driver_interface.h \
+ libvmi/driver/driver_wrapper.h \
+- libvmi/driver/memory_cache.h \
+- libvmi/disk/vbd_private.h
++ libvmi/driver/memory_cache.h
+
+ c_sources = \
+ libvmi/accessors.c \
+@@ -39,8 +38,7 @@ c_sources = \
+ libvmi/arch/ept.c \
+ libvmi/driver/driver_interface.c \
+ libvmi/driver/memory_cache.c \
+- libvmi/os/os_interface.c \
+- libvmi/disk/vbd.c
++ libvmi/os/os_interface.c
+
+ if ENABLE_ADDRESS_CACHE
+ c_sources += libvmi/cache.c
+@@ -104,6 +102,8 @@ if WITH_XEN
+ libvmi/driver/xen/libxc_wrapper.h \
+ libvmi/driver/xen/libxs_wrapper.c \
+ libvmi/driver/xen/libxs_wrapper.h
++ h_private += libvmi/disk/vbd_private.h
++ c_sources += libvmi/disk/vbd.c
+ endif
+
+ if WITH_BAREFLANK
+diff --git a/libvmi/CMakeLists.txt b/libvmi/CMakeLists.txt
+index ac57d79..7e87751 100644
+--- a/libvmi/CMakeLists.txt
++++ b/libvmi/CMakeLists.txt
+@@ -18,7 +18,6 @@ set(libvmi_src
+ driver/driver_interface.c
+ driver/memory_cache.c
+ os/os_interface.c
+- disk/vbd.c
+ )
+
+ add_library(vmi OBJECT ${libvmi_src})
+@@ -169,6 +168,7 @@ add_subdirectory(os)
+
+
+ if (ENABLE_XEN)
++ list(APPEND libvmi_src disk/vbd.c)
+ find_package(Xen REQUIRED)
+ list(APPEND VMI_PUBLIC_HEADERS events.h)
+ # CMAKE_DL_LIBS -> dlopen* lib
+--
+2.32.0
+
diff --git a/recipes-extended/libvmi/libvmi_git.bb b/recipes-extended/libvmi/libvmi_git.bb
index 88fa5d30..c812cf17 100644
--- a/recipes-extended/libvmi/libvmi_git.bb
+++ b/recipes-extended/libvmi/libvmi_git.bb
@@ -1,17 +1,18 @@
DESCRIPTION = "An introspection library, written in C, focused on reading \
and writing memory from virtual machines (VM's)."
HOMEPAGE = "https://github.com/libvmi/libvmi"
-LICENSE = "LGPLv3"
+LICENSE = "LGPL-3.0-only"
LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=e6a600fd5e1d9cbde2d983680233ad02"
SECTION = "console/tools"
-PV = "0.12.0"
+PV = "0.14.0+git"
-DEPENDS = "libvirt libcheck bison fuse byacc-native"
+DEPENDS = "libvirt libcheck bison fuse bison-native flex-native autoconf-archive-native"
-SRC_URI = "git://github.com/libvmi/libvmi.git \
+SRC_URI = "git://github.com/libvmi/libvmi.git;branch=master;protocol=https \
+ file://0001-Build-vbd-only-when-xen-is-enabled.patch \
"
-SRCREV = "6934e8a4758018983ec53ec791dd14a7d6ac31a9"
+SRCREV = "df8547ff075d4352db2eb802775b7fa7a92756db"
S = "${WORKDIR}/git"
@@ -21,18 +22,19 @@ inherit autotools-brokensep pkgconfig
# bitbake should be able to properly populate the -dev package and the main
# packages. Since libvmi uses the form libXX.1.0.0.so it breaks this automatic
# packaging so we need to be more explicit about what goes where.
-FILES_${PN} += "${libdir}/libvmi-0.9.so"
-FILES_${PN}-dev = "${includedir} ${libdir}/${BPN}.so ${libdir}/*.la \
+FILES:${PN} += "${libdir}/libvmi-0.9.so"
+FILES:${PN}-dev = "${includedir} ${libdir}/${BPN}.so ${libdir}/*.la \
${libdir}/*.o ${libdir}/pkgconfig ${datadir}/pkgconfig \
${datadir}/aclocal ${base_libdir}/*.o \
${libdir}/${BPN}/*.la ${base_libdir}/*.la"
PACKAGECONFIG ??= "json-c"
PACKAGECONFIG[xen] = "--enable-xen,--disable-xen,xen,"
+PACKAGECONFIG[kvm] = "--disable-kvm-legacy,--enable-kvm-legacy,kvm,"
PACKAGECONFIG[json-c] = ",,json-c,"
# We include a sample conf file to which we have added
-do_install_append () {
+do_install:append () {
mkdir ${D}${sysconfdir}
cp etc/*.conf ${D}${sysconfdir}
}
diff --git a/recipes-extended/nagios/nagios-common.inc b/recipes-extended/nagios/nagios-common.inc
index c173041c..bfbe188b 100644
--- a/recipes-extended/nagios/nagios-common.inc
+++ b/recipes-extended/nagios/nagios-common.inc
@@ -11,16 +11,16 @@ EXTRA_OECONF += "--sysconfdir=${NAGIOS_CONF_DIR} \
--localstatedir=${NAGIOS_STATE_DIR} \
"
-FILES_${PN}-dbg += "${NAGIOS_PLUGIN_DIR}/.debug"
+FILES:${PN}-dbg += "${NAGIOS_PLUGIN_DIR}/.debug"
DEPENDS = "nagios-core"
-COMPATIBLE_HOST_aarch64 = "null"
+COMPATIBLE_HOST:aarch64 = "null"
inherit useradd
USERADD_PACKAGES = "${PN}"
-GROUPADD_PARAM_${PN} = "-r ${NAGIOS_GROUP}; -r nagcmd"
-USERADD_PARAM_${PN} = "-r -M -g ${NAGIOS_GROUP} ${NAGIOS_USER}"
+GROUPADD_PARAM:${PN} = "-r ${NAGIOS_GROUP}; -r nagcmd"
+USERADD_PARAM:${PN} = "-r -M -g ${NAGIOS_GROUP} ${NAGIOS_USER}"
-FILESYSTEM_PERMS_TABLES_append = " files/fs-perms-nagios.txt"
+FILESYSTEM_PERMS_TABLES:append = " files/fs-perms-nagios.txt"
diff --git a/recipes-extended/nagios/nagios-core/eventhandlers_nagioscmd_path.patch b/recipes-extended/nagios/nagios-core/eventhandlers_nagioscmd_path.patch
index c767162c..5c1f3303 100644
--- a/recipes-extended/nagios/nagios-core/eventhandlers_nagioscmd_path.patch
+++ b/recipes-extended/nagios/nagios-core/eventhandlers_nagioscmd_path.patch
@@ -3,6 +3,8 @@ change eventhandlers nagioscmd path
Modify nagios.cmd path to the right location
at "/var/nagios/rw/nagios.cmd"
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Rickard Engberg <rickard.engberg@windriver.com>
Signed-off-by: Vu Tran <vu.tran@windriver.com>
diff --git a/recipes-extended/nagios/nagios-core/nagios-core.service b/recipes-extended/nagios/nagios-core/nagios-core.service
index 61fda3f7..0fdbfc9c 100644
--- a/recipes-extended/nagios/nagios-core/nagios-core.service
+++ b/recipes-extended/nagios/nagios-core/nagios-core.service
@@ -6,7 +6,7 @@ After=network.target local-fs.target
Type=forking
User=nagios
Group=nagios
-PIDFile=/var/run/nagios/nagios.pid
+PIDFile=/run/nagios/nagios.pid
# Verify Nagios config before start as upstream suggested
ExecStartPre=/usr/bin/nagios -v /etc/nagios/nagios.cfg
ExecStart=/usr/bin/nagios -d /etc/nagios/nagios.cfg
diff --git a/recipes-extended/nagios/nagios-core_4.4.3.bb b/recipes-extended/nagios/nagios-core_4.4.6.bb
index 7a86653b..59b70895 100644
--- a/recipes-extended/nagios/nagios-core_4.4.3.bb
+++ b/recipes-extended/nagios/nagios-core_4.4.6.bb
@@ -4,7 +4,7 @@ DESCRIPTION = "A host/service/network monitoring and management system core file
HOMEPAGE = "http://www.nagios.org"
SECTION = "console/network"
PRIORITY = "optional"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://LICENSE;md5=4c4203caac58013115c9ca4b85f296ae"
@@ -20,8 +20,8 @@ SRC_URI = "http://prdownloads.sourceforge.net/sourceforge/${SRCNAME}/${SRCNAME}-
file://nagios-core-systemd-volatile.conf \
"
-SRC_URI[md5sum] = "8beb253b1236ee1407f698b5d2a2d894"
-SRC_URI[sha256sum] = "bba8f0e8dc8cf72f7a7ae4e8ce9c60f5bd315629421b9ec34818a28b8da49f67"
+SRC_URI[md5sum] = "ba849e9487e13859381eb117127bfee2"
+SRC_URI[sha256sum] = "ab0d5a52caf01e6f4dcd84252c4eb5df5a24f90bb7f951f03875eef54f5ab0f4"
S = "${WORKDIR}/${SRCNAME}-${PV}"
@@ -29,15 +29,17 @@ inherit autotools-brokensep update-rc.d systemd update-alternatives
DEPENDS = "gd unzip-native"
-RDEPENDS_${PN} += "\
+RDEPENDS:${PN} += "\
gd \
libpng \
fontconfig \
apache2 \
- php \
+ php-cli \
nagios-base \
"
+SKIP_RECIPE[nagios-core] ?= "${@bb.utils.contains('BBFILE_COLLECTIONS', 'webserver', '', 'Depends on apache2 from meta-webserver which is not included', d)}"
+
acpaths = "-I ${S}/autoconf-macros"
# Set default password for the hardcoded Nagios admin user "nagiosadmin".
@@ -62,10 +64,13 @@ EXTRA_OECONF += "ac_cv_header_ltdl_h=no"
# Prevent nagios from suffering host contamination if host has /bin/perl
EXTRA_OECONF += "ac_cv_path_PERL=${bindir}/perl"
+# Fix build failure for gcc-10
+CFLAGS:append = " -fcommon"
+
# Set to "1" to allow nagios-core post-init to modify Apache configuration
NAGIOS_MODIFY_APACHE ??= "1"
-do_configure_prepend() {
+do_configure:prepend() {
# rename these macros to have .m4 suffix so that autoreconf could recognize them
for macro in `ls ${S}/autoconf-macros/ax_nagios_get_*`; do
mv $macro $macro.m4
@@ -77,7 +82,7 @@ do_compile() {
}
do_install() {
- oe_runmake 'DESTDIR=${D}' install
+ oe_runmake 'DESTDIR=${D}' install-unstripped
oe_runmake 'DESTDIR=${D}' install-init
oe_runmake 'DESTDIR=${D}' install-config
oe_runmake 'DESTDIR=${D}' install-commandmode
@@ -112,7 +117,7 @@ do_install() {
fi
}
-pkg_postinst_ontarget_${PN}-setup () {
+pkg_postinst_ontarget:${PN}-setup () {
# Set password for nagiosadmin user
if [ -z "${NAGIOS_DEFAULT_ADMINUSER_PASSWORD}" ]; then
htpasswd -c ${NAGIOS_CONF_DIR}/htpasswd.users nagiosadmin
@@ -129,23 +134,23 @@ pkg_postinst_ontarget_${PN}-setup () {
PACKAGES += "${SRCNAME}-base ${PN}-setup"
-FILES_${PN} += "${datadir} \
+FILES:${PN} += "${datadir} \
${NAGIOS_PLUGIN_DIR} \
${NAGIOS_CGIBIN_DIR} \
"
-FILES_${PN}-dbg += "${NAGIOS_CGIBIN_DIR}/.debug"
+FILES:${PN}-dbg += "${NAGIOS_CGIBIN_DIR}/.debug"
-ALLOW_EMPTY_${SRCNAME}-base = "1"
-ALLOW_EMPTY_${PN}-setup = "1"
+ALLOW_EMPTY:${SRCNAME}-base = "1"
+ALLOW_EMPTY:${PN}-setup = "1"
SYSTEMD_PACKAGES = "${PN}"
-SYSTEMD_SERVICE_${PN} = "nagios-core.service"
-SYSTEMD_AUTO_ENABLE_${PN} = "enable"
+SYSTEMD_SERVICE:${PN} = "nagios-core.service"
+SYSTEMD_AUTO_ENABLE:${PN} = "enable"
USERADD_PACKAGES += "${SRCNAME}-base"
-GROUPADD_PARAM_${SRCNAME}-base = "-r ${NAGIOS_GROUP}"
-USERADD_PARAM_${SRCNAME}-base = "-r -M -g ${NAGIOS_GROUP} ${NAGIOS_USER}"
+GROUPADD_PARAM:${SRCNAME}-base = "-r ${NAGIOS_GROUP}"
+USERADD_PARAM:${SRCNAME}-base = "-r -M -g ${NAGIOS_GROUP} ${NAGIOS_USER}"
INITSCRIPT_NAME = "nagios"
INITSCRIPT_PARAMS = "defaults"
@@ -153,5 +158,5 @@ INITSCRIPT_PARAMS = "defaults"
CVE_PRODUCT = "nagios_core"
ALTERNATIVE_PRIORITY_${PN} = '20'
-ALTERNATIVE_${PN} = "nagios"
+ALTERNATIVE:${PN} = "nagios"
ALTERNATIVE_LINK_NAME[nagios] = "${localstatedir}/nagios"
diff --git a/recipes-extended/nagios/nagios-nrpe/0001-Should-fix-235-nasty_metachars-was-not-being-returne.patch b/recipes-extended/nagios/nagios-nrpe/0001-Should-fix-235-nasty_metachars-was-not-being-returne.patch
index 7a12e730..fb34c5c7 100644
--- a/recipes-extended/nagios/nagios-nrpe/0001-Should-fix-235-nasty_metachars-was-not-being-returne.patch
+++ b/recipes-extended/nagios/nagios-nrpe/0001-Should-fix-235-nasty_metachars-was-not-being-returne.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Should fix #235 (nasty_metachars was not being returned when
specified in cfg file
CVE: CVE-2020-6581
-Upstream Status: Backport [4f7dd1199f1f3f72f9197e8565da339a4a2490b7]
+Upstream-Status: Backport [4f7dd1199f1f3f72f9197e8565da339a4a2490b7]
Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
---
diff --git a/recipes-extended/nagios/nagios-nrpe/fix-compile-without-openssl.patch b/recipes-extended/nagios/nagios-nrpe/fix-compile-without-openssl.patch
index ab913a8f..1e57d02a 100644
--- a/recipes-extended/nagios/nagios-nrpe/fix-compile-without-openssl.patch
+++ b/recipes-extended/nagios/nagios-nrpe/fix-compile-without-openssl.patch
@@ -6,6 +6,8 @@ this error:
error: unknown type name 'SSL'
void complete_SSL_shutdown( SSL *);
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Rickard Engberg <rickard.engberg@windriver.com>
Signed-off-by: Vu Tran <vu.tran@windriver.com>
diff --git a/recipes-extended/nagios/nagios-nrpe/fix-configure-uses-host-openssl.patch b/recipes-extended/nagios/nagios-nrpe/fix-configure-uses-host-openssl.patch
index 920aabfc..9342826b 100644
--- a/recipes-extended/nagios/nagios-nrpe/fix-configure-uses-host-openssl.patch
+++ b/recipes-extended/nagios/nagios-nrpe/fix-configure-uses-host-openssl.patch
@@ -6,6 +6,8 @@ openssl dhparam -C 512
just do not use openssl from host.
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Rickard Engberg <rickard.engberg@windriver.com>
Signed-off-by: Vu Tran <vu.tran@windriver.com>
diff --git a/recipes-extended/nagios/nagios-nrpe_4.0.2.bb b/recipes-extended/nagios/nagios-nrpe_4.0.2.bb
index d9c7b159..ac54469b 100644
--- a/recipes-extended/nagios/nagios-nrpe_4.0.2.bb
+++ b/recipes-extended/nagios/nagios-nrpe_4.0.2.bb
@@ -4,7 +4,7 @@ DESCRIPTION = "Nagios Remote Plugin Executor"
HOMEPAGE = "http://www.nagios.com"
SECTION = "console/network"
PRIORITY = "optional"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://src/nrpe.c;beginline=1;endline=35;md5=0dadd78599abbc737af81432702e9161"
@@ -26,6 +26,8 @@ S = "${WORKDIR}/${SRCNAME}-${PV}"
inherit autotools-brokensep update-rc.d systemd update-alternatives
+SKIP_RECIPE[nagios-nrpe] ?= "${@bb.utils.contains('BBFILE_COLLECTIONS', 'webserver', '', 'Depends on nagios-core which depends on apache2 from meta-webserver which is not included', d)}"
+
# IP address of server which proxy should connect to
MONITORING_PROXY_SERVER_IP ??= "192.168.7.2"
@@ -57,7 +59,7 @@ do_compile() {
oe_runmake all
}
-do_install_append() {
+do_install:append() {
oe_runmake 'DESTDIR=${D}' install-daemon
oe_runmake 'DESTDIR=${D}' install-config
@@ -81,26 +83,26 @@ do_install_append() {
PACKAGES = "${PN}-dbg ${PN}-plugin ${PN}-daemon"
-FILES_${PN}-plugin = "${NAGIOS_PLUGIN_DIR} \
+FILES:${PN}-plugin = "${NAGIOS_PLUGIN_DIR} \
${NAGIOS_PLUGIN_CONF_DIR} \
"
-FILES_${PN}-daemon = "${sysconfdir} \
+FILES:${PN}-daemon = "${sysconfdir} \
${bindir} \
${nonarch_libdir}/tmpfiles.d/ \
${localstatedir} \
"
-RDEPENDS_${PN}-daemon = "nagios-base"
-RDEPENDS_${PN}-plugin = "nagios-base"
+RDEPENDS:${PN}-daemon = "nagios-base"
+RDEPENDS:${PN}-plugin = "nagios-base"
SYSTEMD_PACKAGES = "${PN}-daemon"
-SYSTEMD_SERVICE_${PN}-daemon = "nagios-nrpe.service"
-SYSTEMD_AUTO_ENABLE_${PN}-daemon = "enable"
+SYSTEMD_SERVICE:${PN}-daemon = "nagios-nrpe.service"
+SYSTEMD_AUTO_ENABLE:${PN}-daemon = "enable"
INITSCRIPT_PACKAGES = "${PN}-daemon"
-INITSCRIPT_NAME_${PN}-daemon = "nrpe"
-INITSCRIPT_PARAMS_${PN}-daemon = "defaults"
+INITSCRIPT_NAME:${PN}-daemon = "nrpe"
+INITSCRIPT_PARAMS:${PN}-daemon = "defaults"
-ALTERNATIVE_${PN}-daemon = "nagios"
+ALTERNATIVE:${PN}-daemon = "nagios"
ALTERNATIVE_LINK_NAME[nagios] = "${localstatedir}/nagios"
diff --git a/recipes-extended/nagios/nagios-nsca/nagios-nsca.service b/recipes-extended/nagios/nagios-nsca/nagios-nsca.service
index aa38b7f2..f6eb33ef 100644
--- a/recipes-extended/nagios/nagios-nsca/nagios-nsca.service
+++ b/recipes-extended/nagios/nagios-nsca/nagios-nsca.service
@@ -5,7 +5,7 @@ After=syslog.target network.target
[Service]
Type=forking
ExecStart=/usr/bin/nsca -s -c /etc/nagios/nsca.cfg
-PIDFile=/var/run/nsca.pid
+PIDFile=/run/nsca.pid
TimeoutSec=60
[Install]
diff --git a/recipes-extended/nagios/nagios-nsca_2.9.2.bb b/recipes-extended/nagios/nagios-nsca_2.9.2.bb
index d342810c..2db51238 100644
--- a/recipes-extended/nagios/nagios-nsca_2.9.2.bb
+++ b/recipes-extended/nagios/nagios-nsca_2.9.2.bb
@@ -4,7 +4,7 @@ DESCRIPTION = "Nagios Service Check Acceptor"
HOMEPAGE = "http://exchange.nagios.org"
SECTION = "console/network"
PRIORITY = "optional"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://src/nsca.c;beginline=1;endline=16;md5=dd7a195cc7d8a3ebcfabd65360d0cab4"
@@ -22,6 +22,8 @@ S = "${WORKDIR}/${SRCNAME}-${PV}"
inherit update-rc.d autotools-brokensep systemd dos2unix
+SKIP_RECIPE[nagios-nsca] ?= "${@bb.utils.contains('BBFILE_COLLECTIONS', 'webserver', '', 'Rdepends on nagios-base provided by nagios-core which depends on apache2 from meta-webserver which is not included', d)}"
+
DEPENDS = "libmcrypt"
EXTRA_OECONF += "--with-nsca-user=${NAGIOS_USER} \
@@ -59,26 +61,26 @@ do_install() {
PACKAGES = "${PN}-dbg ${PN}-daemon ${PN}-client"
-FILES_${PN}-daemon = "${sysconfdir}/init.d \
+FILES:${PN}-daemon = "${sysconfdir}/init.d \
${NAGIOS_CONF_DIR}/nsca.cfg \
${bindir}/nsca \
"
-FILES_${PN}-client = "${NAGIOS_CONF_DIR}/send_nsca.cfg \
+FILES:${PN}-client = "${NAGIOS_CONF_DIR}/send_nsca.cfg \
${bindir}/send_nsca \
"
-RDEPENDS_${PN}-daemon += "libmcrypt \
+RDEPENDS:${PN}-daemon += "libmcrypt \
nagios-base \
"
-RDEPENDS_${PN}-client += "libmcrypt \
+RDEPENDS:${PN}-client += "libmcrypt \
nagios-base \
"
SYSTEMD_PACKAGES = "${PN}-daemon"
-SYSTEMD_SERVICE_${PN}-daemon = "nagios-nsca.service"
-SYSTEMD_AUTO_ENABLE_${PN}-daemon = "enable"
+SYSTEMD_SERVICE:${PN}-daemon = "nagios-nsca.service"
+SYSTEMD_AUTO_ENABLE:${PN}-daemon = "enable"
INITSCRIPT_PACKAGES = "${PN}-daemon"
-INITSCRIPT_NAME_${PN}-daemon = "nsca"
-INITSCRIPT_PARAMS_${PN}-daemon = "defaults"
+INITSCRIPT_NAME:${PN}-daemon = "nsca"
+INITSCRIPT_PARAMS:${PN}-daemon = "defaults"
diff --git a/recipes-extended/nagios/nagios-plugins_2.2.1.bb b/recipes-extended/nagios/nagios-plugins_2.2.1.bb
index 07933654..471d4b42 100644
--- a/recipes-extended/nagios/nagios-plugins_2.2.1.bb
+++ b/recipes-extended/nagios/nagios-plugins_2.2.1.bb
@@ -4,7 +4,7 @@ DESCRIPTION = "A host/service/network monitoring and management system plugins"
HOMEPAGE = "http://www.nagios-plugins.org"
SECTION = "console/network"
PRIORITY = "optional"
-LICENSE = "GPLv3"
+LICENSE = "GPL-3.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
@@ -18,6 +18,8 @@ S = "${WORKDIR}/${BPN}-${PV}"
inherit autotools gettext
+SKIP_RECIPE[nagios-plugins] ?= "${@bb.utils.contains('BBFILE_COLLECTIONS', 'webserver', '', 'Depends on nagios-core which depends on apache2 from meta-webserver which is not included', d)}"
+
EXTRA_OECONF += "--with-sysroot=${STAGING_DIR_HOST} \
--with-nagios-user=${NAGIOS_USER} \
--with-nagios-group=${NAGIOS_GROUP} \
@@ -57,17 +59,17 @@ do_configure() {
oe_runconf || die "make failed"
}
-do_install_append() {
+do_install:append() {
sed -i '1s,#! /usr/bin/perl -w.*,#! ${bindir}/env perl,' ${D}${libdir}/nagios/plugins/*
}
-RDEPENDS_${PN} += "\
+RDEPENDS:${PN} += "\
iputils \
nagios-base \
perl \
bash \
"
-FILES_${PN} += "${datadir} \
+FILES:${PN} += "${datadir} \
${NAGIOS_PLUGIN_DIR} \
"
diff --git a/recipes-extended/oath/oath/0001-oath-fix-macro-definition-error.patch b/recipes-extended/oath/oath/0001-oath-fix-macro-definition-error.patch
index 37f9d753..0d606ade 100644
--- a/recipes-extended/oath/oath/0001-oath-fix-macro-definition-error.patch
+++ b/recipes-extended/oath/oath/0001-oath-fix-macro-definition-error.patch
@@ -3,6 +3,8 @@ From: Dengke Du <dengke.du@windriver.com>
Date: Thu, 27 Sep 2018 09:37:08 +0800
Subject: [PATCH] oath: fix macro definition error
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Dengke Du <dengke.du@windriver.com>
---
oathtool/gl/intprops.h | 6 +++---
diff --git a/recipes-extended/oath/oath_2.6.2.bb b/recipes-extended/oath/oath_2.6.2.bb
index f4230449..84d42dff 100644
--- a/recipes-extended/oath/oath_2.6.2.bb
+++ b/recipes-extended/oath/oath_2.6.2.bb
@@ -1,4 +1,4 @@
-LICENSE = "GPLv3 & LGPLv2.1"
+LICENSE = "GPL-3.0-only & LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=62e1e33aebac5b1bc9fc48a866e2f61b \
file://oathtool/COPYING;md5=d32239bcb673463ab874e80d47fae504 \
file://liboath/COPYING;md5=4fbd65380cdd255951079008b364516c \
@@ -12,7 +12,7 @@ S = "${WORKDIR}/${BPN}-toolkit-${PV}"
SRC_URI[md5sum] = "4a05cd4768764843bd5493609a6bdb17"
SRC_URI[sha256sum] = "b03446fa4b549af5ebe4d35d7aba51163442d255660558cd861ebce536824aa0"
-inherit autotools
+inherit autotools pkgconfig
# Specify any options you want to pass to the configure script using EXTRA_OECONF:
EXTRA_OECONF = ""
diff --git a/recipes-extended/seabios/seabios/hostcc.patch b/recipes-extended/seabios/seabios/hostcc.patch
index f665e1a3..dcc0c0bb 100644
--- a/recipes-extended/seabios/seabios/hostcc.patch
+++ b/recipes-extended/seabios/seabios/hostcc.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Inappropriate [embedded specific]
+
diff -ur a/Makefile b/Makefile
--- a/Makefile 2015-02-02 22:02:58.651041951 -0500
+++ b/Makefile 2015-02-02 23:08:13.884514003 -0500
diff --git a/recipes-extended/seabios/seabios/python3.patch b/recipes-extended/seabios/seabios/python3.patch
index a2786fd7..f401d7b9 100644
--- a/recipes-extended/seabios/seabios/python3.patch
+++ b/recipes-extended/seabios/seabios/python3.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Inappropriate [embedded specific]
+
diff --git a/Makefile b/Makefile
index 516cb38..7f6acaa 100644
--- a/Makefile
diff --git a/recipes-extended/seabios/seabios_1.13.0.bb b/recipes-extended/seabios/seabios_1.16.0.bb
index 4cf44201..ebab54bf 100644
--- a/recipes-extended/seabios/seabios_1.13.0.bb
+++ b/recipes-extended/seabios/seabios_1.16.0.bb
@@ -1,6 +1,6 @@
DESCRIPTION = "SeaBIOS"
HOMEPAGE = "http://www.coreboot.org/SeaBIOS"
-LICENSE = "LGPLv3"
+LICENSE = "LGPL-3.0-only"
SECTION = "firmware"
inherit python3native
@@ -15,11 +15,9 @@ S = "${WORKDIR}/${PN}-${PV}"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
file://COPYING.LESSER;md5=6a6a8e020838b23406c81b19c1d46df6 \
"
+SRC_URI[sha256sum] = "d44d8e97ad56f3fd23ed3076077a770d37a5e7bae22daa59656ff41c3334fb34"
-SRC_URI[md5sum] = "1dc1725bac1d230bfd6b3204eed4f2f7"
-SRC_URI[sha256sum] = "37673dc2d6308591b15bdb94e5bcc3e99bdb40198d2247733c43f50b55dbe703"
-
-FILES_${PN} = "/usr/share/firmware"
+FILES:${PN} = "/usr/share/firmware"
DEPENDS += "util-linux-native file-native bison-native flex-native gettext-native acpica-native"
@@ -27,6 +25,9 @@ TUNE_CCARGS = ""
EXTRA_OEMAKE += "HOSTCC='${BUILD_CC}'"
EXTRA_OEMAKE += "CROSS_PREFIX=${TARGET_PREFIX}"
+# Can not yet compile with clang e.g.
+TOOLCHAIN = "gcc"
+
COMPATIBLE_HOST = "(i.86|x86_64).*-linux"
do_configure() {
diff --git a/recipes-extended/upx/libucl/0001-configure.ac-Fix-with-current-autoconf.patch b/recipes-extended/upx/libucl/0001-configure.ac-Fix-with-current-autoconf.patch
new file mode 100644
index 00000000..ba84cdd6
--- /dev/null
+++ b/recipes-extended/upx/libucl/0001-configure.ac-Fix-with-current-autoconf.patch
@@ -0,0 +1,30 @@
+From 76e95c0db3f30f0279c54f7c0041c59fa24bf7a6 Mon Sep 17 00:00:00 2001
+From: Andrei Gherzan <andrei@resin.io>
+Date: Fri, 6 May 2016 01:00:14 +0200
+Subject: [PATCH 1/2] configure.ac: Fix with current autoconf
+
+Old versions of autoconf define _AC_SRCPATHS, new (2.60 and later) use _AC_SRCDIRS.
+
+Upstream-Status: Pending
+
+Signed-off-by: Andrei Gherzan <andrei@resin.io>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 16adb1d..0bd1c91 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -48,7 +48,7 @@ AC_CANONICAL_TARGET
+ AM_MAINTAINER_MODE
+
+ if test -z "$ac_abs_top_srcdir"; then
+- _AC_SRCPATHS(.)
++ _AC_SRCDIRS(.)
+ fi
+ if test -r .Conf.settings1; then
+ . ./.Conf.settings1
+--
+2.1.4
+
diff --git a/recipes-extended/upx/libucl/0002-acinclude.m4-Provide-missing-macros.patch b/recipes-extended/upx/libucl/0002-acinclude.m4-Provide-missing-macros.patch
new file mode 100644
index 00000000..16cad534
--- /dev/null
+++ b/recipes-extended/upx/libucl/0002-acinclude.m4-Provide-missing-macros.patch
@@ -0,0 +1,383 @@
+From cab9f6b11793149a3f968552be7d351e59e62a92 Mon Sep 17 00:00:00 2001
+From: Andrei Gherzan <andrei@resin.io>
+Date: Fri, 6 May 2016 01:01:26 +0200
+Subject: [PATCH 2/2] acinclude.m4: Provide missing macros
+
+Upstream-Status: Pending
+
+Signed-off-by: Andrei Gherzan <andrei@resin.io>
+---
+ acinclude.m4 | 361 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 361 insertions(+)
+ create mode 100644 acinclude.m4
+
+diff --git a/acinclude.m4 b/acinclude.m4
+new file mode 100644
+index 0000000..f7d6d16
+--- /dev/null
++++ b/acinclude.m4
+@@ -0,0 +1,361 @@
++# /***********************************************************************
++# // standard ACC macros
++# ************************************************************************/
++
++AC_DEFUN([mfx_ACC_CHECK_ENDIAN], [
++AC_C_BIGENDIAN([AC_DEFINE(ACC_ABI_BIG_ENDIAN,1,[Define to 1 if your machine is big endian.])],[AC_DEFINE(ACC_ABI_LITTLE_ENDIAN,1,[Define to 1 if your machine is little endian.])])
++])#
++
++AC_DEFUN([mfx_ACC_CHECK_HEADERS], [
++AC_HEADER_TIME
++AC_CHECK_HEADERS([assert.h ctype.h dirent.h errno.h fcntl.h float.h limits.h malloc.h memory.h setjmp.h signal.h stdarg.h stddef.h stdint.h stdio.h stdlib.h string.h strings.h time.h unistd.h utime.h sys/mman.h sys/resource.h sys/stat.h sys/time.h sys/types.h sys/wait.h])
++])#
++
++AC_DEFUN([mfx_ACC_CHECK_FUNCS], [
++AC_CHECK_FUNCS(access alloca atexit atoi atol chmod chown clock_getcpuclockid clock_getres clock_gettime ctime difftime fstat getenv getpagesize getrusage gettimeofday gmtime isatty localtime longjmp lstat memcmp memcpy memmove memset mkdir mktime mmap mprotect munmap qsort raise rmdir setjmp signal snprintf strcasecmp strchr strdup strerror strftime stricmp strncasecmp strnicmp strrchr strstr time umask utime vsnprintf)
++])#
++
++
++AC_DEFUN([mfx_ACC_CHECK_SIZEOF], [
++AC_CHECK_SIZEOF(short)
++AC_CHECK_SIZEOF(int)
++AC_CHECK_SIZEOF(long)
++
++AC_CHECK_SIZEOF(long long)
++AC_CHECK_SIZEOF(__int16)
++AC_CHECK_SIZEOF(__int32)
++AC_CHECK_SIZEOF(__int64)
++
++AC_CHECK_SIZEOF(void *)
++AC_CHECK_SIZEOF(char *)
++AC_CHECK_SIZEOF(size_t)
++AC_CHECK_SIZEOF(ptrdiff_t)
++])#
++
++
++# /***********************************************************************
++# // Check for ACC_conformance
++# ************************************************************************/
++
++AC_DEFUN([mfx_ACC_ACCCHK], [
++mfx_tmp=$1
++mfx_save_CPPFLAGS=$CPPFLAGS
++dnl in Makefile.in $(INCLUDES) will be before $(CPPFLAGS), so we mimic this here
++test "X$mfx_tmp" = "X" || CPPFLAGS="$mfx_tmp $CPPFLAGS"
++
++AC_MSG_CHECKING([whether your compiler passes the ACC conformance test])
++
++AC_LANG_CONFTEST([AC_LANG_PROGRAM(
++[[#define ACC_CONFIG_NO_HEADER 1
++#include "acc/acc.h"
++#include "acc/acc_incd.h"
++#undef ACCCHK_ASSERT
++#define ACCCHK_ASSERT(expr) ACC_COMPILE_TIME_ASSERT_HEADER(expr)
++#include "acc/acc_chk.ch"
++#undef ACCCHK_ASSERT
++static void test_acc_compile_time_assert(void) {
++#define ACCCHK_ASSERT(expr) ACC_COMPILE_TIME_ASSERT(expr)
++#include "acc/acc_chk.ch"
++#undef ACCCHK_ASSERT
++}
++#undef NDEBUG
++#include <assert.h>
++static int test_acc_run_time_assert(int r) {
++#define ACCCHK_ASSERT(expr) assert(expr);
++#include "acc/acc_chk.ch"
++#undef ACCCHK_ASSERT
++return r;
++}
++]], [[
++test_acc_compile_time_assert();
++if (test_acc_run_time_assert(1) != 1) return 1;
++]]
++)])
++
++mfx_tmp=FAILED
++_AC_COMPILE_IFELSE([], [mfx_tmp=yes])
++rm -f conftest.$ac_ext conftest.$ac_objext
++
++CPPFLAGS=$mfx_save_CPPFLAGS
++
++AC_MSG_RESULT([$mfx_tmp])
++case x$mfx_tmp in
++ xpassed | xyes) ;;
++ *)
++ AC_MSG_NOTICE([])
++ AC_MSG_NOTICE([Your compiler failed the ACC conformance test - for details see ])
++ AC_MSG_NOTICE([`config.log'. Please check that log file and consider sending])
++ AC_MSG_NOTICE([a patch or bug-report to <${PACKAGE_BUGREPORT}>.])
++ AC_MSG_NOTICE([Thanks for your support.])
++ AC_MSG_NOTICE([])
++ AC_MSG_ERROR([ACC conformance test failed. Stop.])
++dnl AS_EXIT
++ ;;
++esac
++])# mfx_ACC_ACCCHK
++
++
++# /***********************************************************************
++# // Check for ACC_conformance
++# ************************************************************************/
++
++AC_DEFUN([mfx_MINIACC_ACCCHK], [
++mfx_tmp=$1
++mfx_save_CPPFLAGS=$CPPFLAGS
++dnl in Makefile.in $(INCLUDES) will be before $(CPPFLAGS), so we mimic this here
++test "X$mfx_tmp" = "X" || CPPFLAGS="$mfx_tmp $CPPFLAGS"
++
++AC_MSG_CHECKING([whether your compiler passes the ACC conformance test])
++
++AC_LANG_CONFTEST([AC_LANG_PROGRAM(
++[[#define ACC_CONFIG_NO_HEADER 1
++#define ACC_WANT_ACC_INCD_H 1
++#include $2
++
++#define ACC_WANT_ACC_CHK_CH 1
++#undef ACCCHK_ASSERT
++#define ACCCHK_ASSERT(expr) ACC_COMPILE_TIME_ASSERT_HEADER(expr)
++#include $2
++
++#define ACC_WANT_ACC_CHK_CH 1
++#undef ACCCHK_ASSERT
++#define ACCCHK_ASSERT(expr) ACC_COMPILE_TIME_ASSERT(expr)
++static void test_acc_compile_time_assert(void) {
++#include $2
++}
++
++#undef NDEBUG
++#include <assert.h>
++#define ACC_WANT_ACC_CHK_CH 1
++#undef ACCCHK_ASSERT
++#define ACCCHK_ASSERT(expr) assert(expr);
++static int test_acc_run_time_assert(int r) {
++#include $2
++return r;
++}
++]], [[
++test_acc_compile_time_assert();
++if (test_acc_run_time_assert(1) != 1) return 1;
++]]
++)])
++
++mfx_tmp=FAILED
++_AC_COMPILE_IFELSE([], [mfx_tmp=yes])
++rm -f conftest.$ac_ext conftest.$ac_objext
++
++CPPFLAGS=$mfx_save_CPPFLAGS
++
++AC_MSG_RESULT([$mfx_tmp])
++case x$mfx_tmp in
++ xpassed | xyes) ;;
++ *)
++ AC_MSG_NOTICE([])
++ AC_MSG_NOTICE([Your compiler failed the ACC conformance test - for details see ])
++ AC_MSG_NOTICE([`config.log'. Please check that log file and consider sending])
++ AC_MSG_NOTICE([a patch or bug-report to <${PACKAGE_BUGREPORT}>.])
++ AC_MSG_NOTICE([Thanks for your support.])
++ AC_MSG_NOTICE([])
++ AC_MSG_ERROR([ACC conformance test failed. Stop.])
++dnl AS_EXIT
++ ;;
++esac
++])# mfx_MINIACC_ACCCHK
++
++
++
++# serial 1
++
++AC_DEFUN([mfx_PROG_CPPFLAGS], [
++AC_MSG_CHECKING([whether the C preprocessor needs special flags])
++
++AC_LANG_CONFTEST([AC_LANG_PROGRAM(
++[[#include <limits.h>
++#if (32767 >= 4294967295ul) || (65535u >= 4294967295ul)
++# include "your C preprocessor is broken 1"
++#elif (0xffffu == 0xfffffffful)
++# include "your C preprocessor is broken 2"
++#elif (32767 >= ULONG_MAX) || (65535u >= ULONG_MAX)
++# include "your C preprocessor is broken 3"
++#endif
++]], [[ ]]
++)])
++
++mfx_save_CPPFLAGS=$CPPFLAGS
++mfx_tmp=ERROR
++for mfx_arg in "" -no-cpp-precomp
++do
++ CPPFLAGS="$mfx_arg $mfx_save_CPPFLAGS"
++ _AC_COMPILE_IFELSE([],
++[mfx_tmp=$mfx_arg
++break])
++done
++CPPFLAGS=$mfx_save_CPPFLAGS
++rm -f conftest.$ac_ext conftest.$ac_objext
++case x$mfx_tmp in
++ x)
++ AC_MSG_RESULT([none needed]) ;;
++ xERROR)
++ AC_MSG_RESULT([ERROR])
++ AC_MSG_ERROR([your C preprocessor is broken - for details see config.log])
++ ;;
++ *)
++ AC_MSG_RESULT([$mfx_tmp])
++ CPPFLAGS="$mfx_tmp $CPPFLAGS"
++ ;;
++esac
++])# mfx_PROG_CPPFLAGS
++
++# serial 3
++
++AC_DEFUN([mfx_CHECK_HEADER_SANE_LIMITS_H], [
++AC_CACHE_CHECK([whether limits.h is sane],
++mfx_cv_header_sane_limits_h,
++[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <limits.h>
++#if (32767 >= 4294967295ul) || (65535u >= 4294967295ul)
++# if defined(__APPLE__) && defined(__GNUC__)
++# error "your preprocessor is broken - use compiler option -no-cpp-precomp"
++# else
++# include "your preprocessor is broken"
++# endif
++#endif
++#define MFX_0xffff 0xffff
++#define MFX_0xffffffffL 4294967295ul
++#if !defined(CHAR_BIT) || (CHAR_BIT != 8)
++# include "error CHAR_BIT"
++#endif
++#if !defined(UCHAR_MAX)
++# include "error UCHAR_MAX 1"
++#endif
++#if !defined(USHRT_MAX)
++# include "error USHRT_MAX 1"
++#endif
++#if !defined(UINT_MAX)
++# include "error UINT_MAX 1"
++#endif
++#if !defined(ULONG_MAX)
++# include "error ULONG_MAX 1"
++#endif
++#if !defined(SHRT_MAX)
++# include "error SHRT_MAX 1"
++#endif
++#if !defined(INT_MAX)
++# include "error INT_MAX 1"
++#endif
++#if !defined(LONG_MAX)
++# include "error LONG_MAX 1"
++#endif
++#if (UCHAR_MAX < 1)
++# include "error UCHAR_MAX 2"
++#endif
++#if (USHRT_MAX < 1)
++# include "error USHRT_MAX 2"
++#endif
++#if (UINT_MAX < 1)
++# include "error UINT_MAX 2"
++#endif
++#if (ULONG_MAX < 1)
++# include "error ULONG_MAX 2"
++#endif
++#if (UCHAR_MAX < 0xff)
++# include "error UCHAR_MAX 3"
++#endif
++#if (USHRT_MAX < MFX_0xffff)
++# include "error USHRT_MAX 3"
++#endif
++#if (UINT_MAX < MFX_0xffff)
++# include "error UINT_MAX 3"
++#endif
++#if (ULONG_MAX < MFX_0xffffffffL)
++# include "error ULONG_MAX 3"
++#endif
++#if (USHRT_MAX > UINT_MAX)
++# include "error USHRT_MAX vs UINT_MAX"
++#endif
++#if (UINT_MAX > ULONG_MAX)
++# include "error UINT_MAX vs ULONG_MAX"
++#endif
++]], [[
++#if (USHRT_MAX == MFX_0xffff)
++{ typedef char a_short2a[1 - 2 * !(sizeof(short) == 2)]; }
++#elif (USHRT_MAX >= MFX_0xffff)
++{ typedef char a_short2b[1 - 2 * !(sizeof(short) > 2)]; }
++#endif
++#if (UINT_MAX == MFX_0xffff)
++{ typedef char a_int2a[1 - 2 * !(sizeof(int) == 2)]; }
++#elif (UINT_MAX >= MFX_0xffff)
++{ typedef char a_int2b[1 - 2 * !(sizeof(int) > 2)]; }
++#endif
++#if (ULONG_MAX == MFX_0xffff)
++{ typedef char a_long2a[1 - 2 * !(sizeof(long) == 2)]; }
++#elif (ULONG_MAX >= MFX_0xffff)
++{ typedef char a_long2b[1 - 2 * !(sizeof(long) > 2)]; }
++#endif
++#if !defined(_CRAY1) /* CRAY PVP systems */
++#if (USHRT_MAX == MFX_0xffffffffL)
++{ typedef char a_short4a[1 - 2 * !(sizeof(short) == 4)]; }
++#elif (USHRT_MAX >= MFX_0xffffffffL)
++{ typedef char a_short4b[1 - 2 * !(sizeof(short) > 4)]; }
++#endif
++#endif /* _CRAY1 */
++#if (UINT_MAX == MFX_0xffffffffL)
++{ typedef char a_int4a[1 - 2 * !(sizeof(int) == 4)]; }
++#elif (UINT_MAX >= MFX_0xffffffffL)
++{ typedef char a_int4b[1 - 2 * !(sizeof(int) > 4)]; }
++#endif
++#if (ULONG_MAX == MFX_0xffffffffL)
++{ typedef char a_long4a[1 - 2 * !(sizeof(long) == 4)]; }
++#elif (ULONG_MAX >= MFX_0xffffffffL)
++{ typedef char a_long4b[1 - 2 * !(sizeof(long) > 4)]; }
++#endif
++]])],
++[mfx_cv_header_sane_limits_h=yes],
++[mfx_cv_header_sane_limits_h=no])])
++])
++
++# /***********************************************************************
++# // standard
++# ************************************************************************/
++
++AC_DEFUN([mfx_LZO_CHECK_ENDIAN], [
++AC_C_BIGENDIAN([AC_DEFINE(LZO_ABI_BIG_ENDIAN,1,[Define to 1 if your machine is big endian.])],[AC_DEFINE(LZO_ABI_LITTLE_ENDIAN,1,[Define to 1 if your machine is little endian.])])
++])#
++
++
++# /***********************************************************************
++# //
++# ************************************************************************/
++
++dnl more types which are not yet covered by ACC
++
++AC_DEFUN([mfx_CHECK_SIZEOF], [
++AC_CHECK_SIZEOF(__int32)
++AC_CHECK_SIZEOF(intmax_t)
++AC_CHECK_SIZEOF(uintmax_t)
++AC_CHECK_SIZEOF(intptr_t)
++AC_CHECK_SIZEOF(uintptr_t)
++
++AC_CHECK_SIZEOF(float)
++AC_CHECK_SIZEOF(double)
++AC_CHECK_SIZEOF(long double)
++
++AC_CHECK_SIZEOF(dev_t)
++AC_CHECK_SIZEOF(fpos_t)
++AC_CHECK_SIZEOF(mode_t)
++AC_CHECK_SIZEOF(off_t)
++AC_CHECK_SIZEOF(ssize_t)
++AC_CHECK_SIZEOF(time_t)
++])#
++
++
++
++AC_DEFUN([mfx_CHECK_LIB_WINMM], [
++if test "X$GCC" = Xyes; then
++case $host_os in
++cygwin* | mingw* | pw32*)
++ test "X$LIBS" != "X" && LIBS="$LIBS "
++ LIBS="${LIBS}-lwinmm" ;;
++*)
++ ;;
++esac
++fi
++])#
+--
+2.1.4
+
diff --git a/recipes-extended/upx/libucl/Reproducible-build.patch b/recipes-extended/upx/libucl/Reproducible-build.patch
new file mode 100644
index 00000000..23acf565
--- /dev/null
+++ b/recipes-extended/upx/libucl/Reproducible-build.patch
@@ -0,0 +1,30 @@
+From: Robert Luberda <robert@debian.org>
+Date: Sun, 31 May 2015 13:09:15 +0200
+Subject: 03 Reproducible build
+
+Introduced BUILD_DATETIME pre-processor variable to
+be used instead of __DATE__ __TIME__ to make build
+reproducible.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+---
+ src/ucl_util.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/src/ucl_util.c b/src/ucl_util.c
+index 7e49a2a..58aa0ea 100644
+--- a/src/ucl_util.c
++++ b/src/ucl_util.c
+@@ -55,7 +55,11 @@ static const char __ucl_copyright[] =
+ "<markus@oberhumer.com>\n"
+ "http://www.oberhumer.com $\n\n"
+ "$Id: UCL version: v" UCL_VERSION_STRING ", " UCL_VERSION_DATE " $\n"
++#if defined (BUILD_DATETIME)
++ "$Built: " BUILD_DATETIME " $\n"
++#else
+ "$Built: " __DATE__ " " __TIME__ " $\n"
++#endif
+ "$Info: " ACC_INFO_OS
+ #if defined(ACC_INFO_OS_POSIX)
+ "/" ACC_INFO_OS_POSIX
diff --git a/recipes-extended/upx/libucl/use-static-assert.patch b/recipes-extended/upx/libucl/use-static-assert.patch
new file mode 100644
index 00000000..50e9da5f
--- /dev/null
+++ b/recipes-extended/upx/libucl/use-static-assert.patch
@@ -0,0 +1,37 @@
+From: Robert Luberda <robert@debian.org>
+Date: Sat, 2 Jul 2016 22:23:20 +0200
+Subject: Switch to _Static_assert
+
+Use _Static_assert for compile-time assertion to fix
+build failures with gcc-6 (closes: #811707)
+
+Upstream-Status: Inappropriate [embedded specific]
+
+---
+ acc/acc_defs.h | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/acc/acc_defs.h b/acc/acc_defs.h
+index 866b7bd..5ee3761 100644
+--- a/acc/acc_defs.h
++++ b/acc/acc_defs.h
+@@ -87,6 +87,9 @@
+
+ /* This can be put into a header file but may get ignored by some compilers. */
+ #if !defined(ACC_COMPILE_TIME_ASSERT_HEADER)
++# define ACC_COMPILE_TIME_ASSERT_HEADER(e) _Static_assert(e, #e);
++#endif
++#if !defined(ACC_COMPILE_TIME_ASSERT_HEADER)
+ # if (ACC_CC_AZTECC || ACC_CC_ZORTECHC)
+ # define ACC_COMPILE_TIME_ASSERT_HEADER(e) extern int __acc_cta[1-!(e)];
+ # elif (ACC_CC_DMC || ACC_CC_SYMANTECC)
+@@ -100,6 +103,9 @@
+
+ /* This must appear within a function body. */
+ #if !defined(ACC_COMPILE_TIME_ASSERT)
++# define ACC_COMPILE_TIME_ASSERT(e) _Static_assert(e, #e);
++#endif
++#if !defined(ACC_COMPILE_TIME_ASSERT)
+ # if (ACC_CC_AZTECC)
+ # define ACC_COMPILE_TIME_ASSERT(e) {typedef int __acc_cta_t[1-!(e)];}
+ # elif (ACC_CC_DMC || ACC_CC_PACIFICC || ACC_CC_SYMANTECC || ACC_CC_ZORTECHC)
diff --git a/recipes-extended/upx/libucl_1.03.bb b/recipes-extended/upx/libucl_1.03.bb
new file mode 100644
index 00000000..57a5602e
--- /dev/null
+++ b/recipes-extended/upx/libucl_1.03.bb
@@ -0,0 +1,20 @@
+HOMEPAGE = "http://www.oberhumer.com/opensource/ucl/"
+SUMMARY = "Data compression library"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=dfeaf3dc4beef4f5a7bdbc35b197f39e"
+
+SRC_URI = "http://www.oberhumer.com/opensource/ucl/download/ucl-1.03.tar.gz \
+ file://0001-configure.ac-Fix-with-current-autoconf.patch \
+ file://0002-acinclude.m4-Provide-missing-macros.patch \
+ file://use-static-assert.patch \
+ file://Reproducible-build.patch"
+
+SRC_URI[md5sum] = "852bd691d8abc75b52053465846fba34"
+SRC_URI[sha256sum] = "b865299ffd45d73412293369c9754b07637680e5c826915f097577cd27350348"
+
+S = "${WORKDIR}/ucl-${PV}"
+
+inherit autotools lib_package
+
+BBCLASSEXTEND = "native"
+
diff --git a/recipes-extended/upx/upx_git.bb b/recipes-extended/upx/upx_git.bb
new file mode 100644
index 00000000..02e70ffe
--- /dev/null
+++ b/recipes-extended/upx/upx_git.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Ultimate executable compressor."
+HOMEPAGE = "https://upx.github.io/"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=353753597aa110e0ded3508408c6374a"
+SRCREV_upx = "099c3d829e80488af7395a4242b318877e980da4"
+PV = "4.2.2+git${SRCPV}"
+
+# Note: DO NOT use released tarball in favor of the git repository with submodules.
+# it makes maintenance easier for CVEs or other issues.
+SRC_URI = "gitsm://github.com/upx/upx;protocol=https;;name=upx;branch=devel"
+
+S = "${WORKDIR}/git"
+
+inherit pkgconfig cmake
+
+BBCLASSEXTEND = "native"
diff --git a/recipes-extended/uxen/uxen-guest-tools/0001-vm-support-fix-build-for-kernel-s-5.4.patch b/recipes-extended/uxen/uxen-guest-tools/0001-vm-support-fix-build-for-kernel-s-5.4.patch
new file mode 100644
index 00000000..be187e79
--- /dev/null
+++ b/recipes-extended/uxen/uxen-guest-tools/0001-vm-support-fix-build-for-kernel-s-5.4.patch
@@ -0,0 +1,86 @@
+From 21bb6953a64390dd1c5a8b7520eb5e2c18ea3ff1 Mon Sep 17 00:00:00 2001
+From: Bruce Ashfield <bruce.ashfield@gmail.com>
+Date: Mon, 29 Nov 2021 21:01:03 -0500
+Subject: [PATCH] vm-support: fix build for kernel's > 5.4
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
+---
+ a/uxenhc/hypercall.c | 10 +++++++++-
+ a/v4vvsock/v4v_vsock.c | 2 ++
+ a/vmdiagnostics/vm_diagnostics.c | 9 ++++++++-
+ 3 files changed, 19 insertions(+), 2 deletions(-)
+
+diff --git a/uxenhc/hypercall.c b/uxenhc/hypercall.c
+index 0b9ef3f..04957a8 100644
+--- a/uxenhc/hypercall.c
++++ b/uxenhc/hypercall.c
+@@ -10,6 +10,7 @@
+ #include <linux/mm.h>
+ #include <linux/spinlock.h>
+ #include <linux/compiler.h>
++#include <linux/version.h>
+
+ #include <xen/xen.h>
+ #include <xen/version.h>
+@@ -124,7 +125,11 @@ static int __init uxen_hypercall_init(void)
+ printk(KERN_INFO "using uxen hypervisor\n");
+
+ if (!uxen_hcbase) {
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(5,8,0))
+ uxen_hcbase = __vmalloc(PAGE_SIZE, GFP_KERNEL, PAGE_KERNEL_EXEC);
++#else
++ uxen_hcbase = __vmalloc(PAGE_SIZE, GFP_KERNEL);
++#endif
+ if (!uxen_hcbase) {
+ ret = -ENOMEM;
+ goto out;
+diff --git a/v4vvsock/v4v_vsock.c b/v4vvsock/v4v_vsock.c
+index 8d80d7d..cd7e8ce 100644
+--- a/v4vvsock/v4v_vsock.c
++++ b/v4vvsock/v4v_vsock.c
+@@ -578,8 +578,10 @@ static const struct proto_ops vsock_dgram_ops = {
+ .ioctl = sock_no_ioctl,
+ .listen = sock_no_listen,
+ .shutdown = sock_no_shutdown,
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(5,10,0))
+ .setsockopt = sock_no_setsockopt,
+ .getsockopt = sock_no_getsockopt,
++#endif
+ .sendmsg = vsock_sendmsg,
+ .recvmsg = vsock_recvmsg,
+ .mmap = sock_no_mmap,
+diff --git a/vmdiagnostics/vm_diagnostics.c b/vmdiagnostics/vm_diagnostics.c
+index 9ff94fb..db14e57 100644
+--- a/vmdiagnostics/vm_diagnostics.c
++++ b/vmdiagnostics/vm_diagnostics.c
+@@ -22,6 +22,7 @@
+ #include <linux/timekeeping.h>
+ #include <linux/types.h>
+ #include <linux/vmstat.h>
++#include <linux/version.h>
+
+ #include <uxen-v4vlib.h>
+
+@@ -403,10 +404,16 @@ static void vm_handle_request_stat_task(struct vm_diagnostics_context *context,
+
+ task_payload.state = task_state_to_char(task);
+ task_payload.num_threads = get_nr_threads(task);
++
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(5,5,0))
+ task_payload.start_time_nsec = task->real_start_time;
++#else
++ task_payload.start_time_nsec = task->start_boottime;
++#endif
++
+ task_payload.last_run_cpu_id = task_cpu(task);
+
+- thread_group_cputime_adjusted(task, &user_nsec, &system_nsec);
++ //thread_group_cputime_adjusted(task, &user_nsec, &system_nsec);
+ task_payload.user_nsec = user_nsec;
+ task_payload.system_nsec = system_nsec;
+
+--
+2.19.1
+
diff --git a/recipes-extended/uxen/uxen-guest-tools/0002-vm-support-fix-build-for-kernel-s-5.15.patch b/recipes-extended/uxen/uxen-guest-tools/0002-vm-support-fix-build-for-kernel-s-5.15.patch
new file mode 100644
index 00000000..22c5cd57
--- /dev/null
+++ b/recipes-extended/uxen/uxen-guest-tools/0002-vm-support-fix-build-for-kernel-s-5.15.patch
@@ -0,0 +1,48 @@
+From f8a33a209498b32b0fc06d80baa071f0902b9a85 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Tue, 30 Nov 2021 06:45:34 -0800
+Subject: [PATCH] vm-support: fix build for kernel's > 5.15
+
+* remove callback was changed to return void instead of int in:
+ https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=fc7a6209d5710618eb4f72a77cd81b8d694ecf89
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ uxenplatform/platform.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/uxenplatform/platform.c b/uxenplatform/platform.c
+index 99fc76a..5225a00 100644
+--- a/uxenplatform/platform.c
++++ b/uxenplatform/platform.c
+@@ -4,6 +4,7 @@
+ #include <linux/random.h>
+ #include <linux/kthread.h>
+ #include <linux/delay.h>
++#include <linux/version.h>
+
+ #include <uxen-hypercall.h>
+ #include <uxen-platform.h>
+@@ -32,14 +33,20 @@ static int bus_probe(struct device *_dev)
+ return drv && drv->probe ? drv->probe(dev) : -ENODEV;
+ }
+
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(5,15,0))
+ static int bus_remove(struct device *_dev)
++#else
++static void bus_remove(struct device *_dev)
++#endif
+ {
+ struct uxen_device *dev = dev_to_uxen(_dev);
+ struct uxen_driver *drv = drv_to_uxen(_dev->driver);
+
+ if (dev && drv && drv->remove)
+ drv->remove(dev);
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(5,15,0))
+ return 0;
++#endif
+ }
+
+ static int bus_suspend(struct device *_dev, pm_message_t state)
diff --git a/recipes-extended/uxen/uxen-guest-tools/0003-vm-support-fix-build-for-kernel-s-5.14.patch b/recipes-extended/uxen/uxen-guest-tools/0003-vm-support-fix-build-for-kernel-s-5.14.patch
new file mode 100644
index 00000000..f775b2e6
--- /dev/null
+++ b/recipes-extended/uxen/uxen-guest-tools/0003-vm-support-fix-build-for-kernel-s-5.14.patch
@@ -0,0 +1,34 @@
+From 59986e91d807591f05dfbd57b459ba71670874f9 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Tue, 30 Nov 2021 15:04:31 +0000
+Subject: [PATCH] vm-support: fix build for kernel's > 5.14
+
+* remove set_driver_byte call
+* not sure if it's still necessary here, but set_driver_byte as well as DRIVER_SENSE was killed in 5.14 with:
+ https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=464a00c9e0ad45e3f42ff6ea705491a356df818e
+
+ in some cases it was replaced with set_status_byte(sc, SAM_STAT_CHECK_CONDITION), but I didn't
+ read the implementation carefully enough to decide if this is still needed, I was only interested
+ in fixing the build failure (and I don't use this at all to test it in runtime)
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ uxenstor/stor.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/uxenstor/stor.c b/uxenstor/stor.c
+index e07b08e..6bf2184 100644
+--- a/uxenstor/stor.c
++++ b/uxenstor/stor.c
+@@ -109,7 +109,9 @@ static void uxenstor_softirq(unsigned long opaque)
+ sc->sense_buffer,
+ sizeof(hdr) + hdr.sense_size,
+ 0, sizeof(hdr));
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(5,14,0))
+ set_driver_byte(sc, DRIVER_SENSE);
++#endif
+ }
+
+ set_host_byte(sc, DID_ERROR);
diff --git a/recipes-extended/uxen/uxen-guest-tools/0004-uxenhc-fix-DMODULE-not-working-on-module-build-comma.patch b/recipes-extended/uxen/uxen-guest-tools/0004-uxenhc-fix-DMODULE-not-working-on-module-build-comma.patch
new file mode 100644
index 00000000..627a12f0
--- /dev/null
+++ b/recipes-extended/uxen/uxen-guest-tools/0004-uxenhc-fix-DMODULE-not-working-on-module-build-comma.patch
@@ -0,0 +1,58 @@
+From 732791cb353289e37448d84503a7d62ca156f29f Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Tue, 30 Nov 2021 16:33:14 +0000
+Subject: [PATCH] uxenhc: fix -DMODULE not working on module build command line
+
+* ATTOXEN_API_INC isn't defined anywhere in our OE builds, so the command line ends like this:
+
+ x86_64-oe-linux-gcc -fuse-ld=bfd -fmacro-prefix-map=/OE/work/qemux86_64-oe-linux/uxen-guest-tools/4.1.8-r0=/usr/src/debug/uxen-guest-tools/4.1.8-r0 -fdebug-prefix-map=/OE/work/qemux86_64-oe-linux/uxen-guest-tools/4.1.8-r0=/usr/src/debug/uxen-guest-tools/4.1.8-r0 -fdebug-prefix-map=/OE/work/qemux86_64-oe-linux/uxen-guest-tools/4.1.8-r0/recipe-sysroot= -fdebug-prefix-map=/OE/work/qemux86_64-oe-linux/uxen-guest-tools/4.1.8-r0/recipe-sysroot-native= -fdebug-prefix-map=/OE/work-shared/qemux86-64/kernel-source=/usr/src/kernel -Wp,-MMD,/OE/work/qemux86_64-oe-linux/uxen-guest-tools/4.1.8-r0/uxen-4.1.8-72a4af9/vm-support/linux/uxenhc/.hypercall.o.d -I/OE/work/qemux86_64-oe-linux/uxen-guest-tools/4.1.8-r0/uxen-4.1.8-72a4af9/vm-support/linux/include/ -I/OE/work/qemux86_64-oe-linux/uxen-guest-tools/4.1.8-r0/uxen-4.1.8-72a4af9/vm-support/linux/include/uxen -I/OE/work/qemux86_64-oe-linux/uxen-guest-tools/4.1.8-r0/uxen-4.1.8-72a4af9/vm-support/linux/include/uxen/xen -I/OE/work-shared/qemux86-64/kernel-source/arch/x86/include -I./arch/x86/include/generated -I/OE/work-shared/qemux86-64/kernel-source/include -I./include -I/OE/work-shared/qemux86-64/kernel-source/arch/x86/include/uapi -I./arch/x86/include/generated/uapi -I/OE/work-shared/qemux86-64/kernel-source/include/uapi -I./include/generated/uapi -include /OE/work-shared/qemux86-64/kernel-source/include/linux/compiler-version.h -include /OE/work-shared/qemux86-64/kernel-source/include/linux/kconfig.h -include /OE/work-shared/qemux86-64/kernel-source/include/linux/compiler_types.h -D__KERNEL__ -fmacro-prefix-map=/OE/work-shared/qemux86-64/kernel-source/= -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Wno-format-security -std=gnu89 -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -fcf-protection=none -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -march=core2 -mno-red-zone -mcmodel=kernel -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -fno-jump-tables -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-address-of-packed-member -O2 -fno-allow-store-data-races -Wframe-larger-than=2048 -fstack-protector-strong -Wimplicit-fallthrough=5 -Wno-main -Wno-unused-but-set-variable -Wno-unused-const-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-stack-clash-protection -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -Wdeclaration-after-statement -Wvla -Wno-pointer-sign -Wno-stringop-truncation -Wno-zero-length-bounds -Wno-array-bounds -Wno-stringop-overflow -Wno-restrict -Wno-maybe-uninitialized -fno-strict-overflow -fno-stack-check -fconserve-stack -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -Wno-packed-not-aligned -DLX_TARGET_STANDARDVM -g -Wall -I -DMODULE -DKBUILD_BASENAME='"hypercall"' -DKBUILD_MODNAME='"uxenhc"' -D__KBUILD_MODNAME=kmod_uxenhc -c -o /OE/work/qemux86_64-oe-linux/uxen-guest-tools/4.1.8-r0/uxen-4.1.8-72a4af9/vm-support/linux/uxenhc/hypercall.o /OE/work/qemux86_64-oe-linux/uxen-guest-tools/4.1.8-r0/uxen-4.1.8-72a4af9/vm-support/linux/uxenhc/hypercall.c
+
+ the important part is "-I -DMODULE" which breaks include/linux/module.h behavior:
+
+ /*
+ * MODULE_FILE is used for generating modules.builtin
+ * So, make it no-op when this is being built as a module
+ */
+ #ifdef MODULE
+ #define MODULE_FILE
+ #else
+ #define MODULE_FILE MODULE_INFO(file, KBUILD_MODFILE);
+ #endif
+
+ resulting in:
+
+ In file included from /OE/work-shared/qemux86-64/kernel-source/include/linux/module.h:22,
+ from /OE/work/qemux86_64-oe-linux/uxen-guest-tools/4.1.8-r0/uxen-4.1.8-72a4af9/vm-support/linux/uxenhc/hypercall.c:3:
+ /OE/work-shared/qemux86-64/kernel-source/include/linux/module.h:183:43: error: expected ',' or ';' before 'KBUILD_MODFILE'
+ 183 | #define MODULE_FILE MODULE_INFO(file, KBUILD_MODFILE);
+ | ^~~~~~~~~~~~~~
+ /OE/work-shared/qemux86-64/kernel-source/include/linux/moduleparam.h:26:61: note: in definition of macro '__MODULE_INFO'
+ 26 | = __MODULE_INFO_PREFIX __stringify(tag) "=" info
+ | ^~~~
+ /OE/work-shared/qemux86-64/kernel-source/include/linux/module.h:183:25: note: in expansion of macro 'MODULE_INFO'
+ 183 | #define MODULE_FILE MODULE_INFO(file, KBUILD_MODFILE);
+ | ^~~~~~~~~~~
+ /OE/work-shared/qemux86-64/kernel-source/include/linux/module.h:230:34: note: in expansion of macro 'MODULE_FILE'
+ 230 | #define MODULE_LICENSE(_license) MODULE_FILE MODULE_INFO(license, _license)
+ | ^~~~~~~~~~~
+ /OE/work/qemux86_64-oe-linux/uxen-guest-tools/4.1.8-r0/uxen-4.1.8-72a4af9/vm-support/linux/uxenhc/hypercall.c:161:1: note: in expansion of macro 'MODULE_LICENSE'
+ 161 | MODULE_LICENSE("GPL");
+ | ^~~~~~~~~~~~~~
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ uxenhc/Kbuild | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/uxenhc/Kbuild b/uxenhc/Kbuild
+index e418096..ef1b145 100644
+--- a/uxenhc/Kbuild
++++ b/uxenhc/Kbuild
+@@ -1,4 +1,3 @@
+ obj-m += uxenhc.o
+
+ uxenhc-y := hypercall.o
+-CFLAGS_hypercall.o := -I$(ATTOXEN_API_INC)
+\ No newline at end of file
diff --git a/recipes-extended/uxen/uxen-guest-tools/fix-Makefile-for-OE-kernel-build.patch b/recipes-extended/uxen/uxen-guest-tools/fix-Makefile-for-OE-kernel-build.patch
index db4c53f5..09a43754 100644
--- a/recipes-extended/uxen/uxen-guest-tools/fix-Makefile-for-OE-kernel-build.patch
+++ b/recipes-extended/uxen/uxen-guest-tools/fix-Makefile-for-OE-kernel-build.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Inappropriate [embedded specific]
+
# OpenEmbedded uses KERNEL_SRC instead of KDIR
# and enable the modules_install target.
# Signed-off-by: Christopher Clark <christopher.clark6@baesystems.com>
diff --git a/recipes-extended/uxen/uxen-guest-tools_4.1.7.bb b/recipes-extended/uxen/uxen-guest-tools_4.1.7.bb
deleted file mode 100644
index 757f1e3b..00000000
--- a/recipes-extended/uxen/uxen-guest-tools_4.1.7.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "uXen type-2 Open Source hypervisor Linux guest tools"
-DESCRIPTION = "Linux guest virtual machine tools for the uXen hypervisor"
-HOMEPAGE = "https://www.bromium.com/opensource"
-LICENSE = "GPLv2"
-
-COMPATIBLE_HOST = '(x86_64.*).*-linux'
-
-SRC_URI = " \
- https://www.bromium.com/wp-content/uploads/2019/06/uxen-vmsupport-linux-${PV}.zip;name=uxen \
- https://www.bromium.com/wp-content/uploads/2019/11/Bromium-4.1.8-Open-Source-Software.pdf;name=license \
- file://fix-Makefile-for-OE-kernel-build.patch \
- "
-
-SRC_URI[uxen.sha384sum] = "d9d7a1fa5c44ac77eea3d8d4756f9e07fc02acfe12606325ff0bb8a60c07abc3e9ddb80c2039797fb2122d750219722f"
-SRC_URI[license.sha384sum] = "92e48c614df3094cb52321d4c4e01f6df5526d46aee5c6fa36c43ee23d4c33f03baa1fc5f6f29efafff636b6d13bc92c"
-
-# The software license is GPLv2: please see page 199 of the pdf document
-LIC_FILES_CHKSUM = "file://../Bromium-4.1.8-Open-Source-Software.pdf;md5=cf120df6ffa417b36f870a9997650049"
-
-S = "${WORKDIR}/uxen-vmsupport-linux-${PV}"
-
-inherit module
diff --git a/recipes-extended/uxen/uxen-guest-tools_4.1.8.bb b/recipes-extended/uxen/uxen-guest-tools_4.1.8.bb
new file mode 100644
index 00000000..c2f3464c
--- /dev/null
+++ b/recipes-extended/uxen/uxen-guest-tools_4.1.8.bb
@@ -0,0 +1,26 @@
+SUMMARY = "uXen type-2 Open Source hypervisor Linux guest tools"
+DESCRIPTION = "Linux guest virtual machine tools for the uXen hypervisor"
+HOMEPAGE = "https://www.bromium.com/opensource"
+LICENSE = "GPL-2.0-only"
+
+COMPATIBLE_HOST = '(x86_64.*).*-linux'
+
+SRC_URI = " \
+ https://www.bromium.com/wp-content/uploads/2019/11/uxen-${PV}.zip;name=uxen \
+ https://www.bromium.com/wp-content/uploads/2019/11/Bromium-4.1.8-Open-Source-Software.pdf;name=license \
+ file://fix-Makefile-for-OE-kernel-build.patch \
+ file://0001-vm-support-fix-build-for-kernel-s-5.4.patch \
+ file://0002-vm-support-fix-build-for-kernel-s-5.15.patch \
+ file://0003-vm-support-fix-build-for-kernel-s-5.14.patch \
+ file://0004-uxenhc-fix-DMODULE-not-working-on-module-build-comma.patch \
+"
+
+SRC_URI[uxen.sha384sum] = "be2233bc6506a23350d76c03ac28ea7ea381e1dc6ed5ce996e8ac71e6a3316fcaa2ed070c622618bd226f43a4d6db5d4"
+SRC_URI[license.sha384sum] = "92e48c614df3094cb52321d4c4e01f6df5526d46aee5c6fa36c43ee23d4c33f03baa1fc5f6f29efafff636b6d13bc92c"
+
+# The software license is GPLv2: please see page 199 of the pdf document
+LIC_FILES_CHKSUM = "file://${WORKDIR}/Bromium-4.1.8-Open-Source-Software.pdf;md5=cf120df6ffa417b36f870a9997650049"
+
+S = "${WORKDIR}/uxen-${PV}-72a4af9/vm-support/linux"
+
+inherit module dos2unix
diff --git a/recipes-extended/vgabios/biossums_0.7a.bb b/recipes-extended/vgabios/biossums_0.7a.bb
deleted file mode 100644
index e66bade7..00000000
--- a/recipes-extended/vgabios/biossums_0.7a.bb
+++ /dev/null
@@ -1,37 +0,0 @@
-DESCRIPTION = "biossums tool for building Plex86/Bochs LGPL VGABios"
-HOMEPAGE = "http://www.nongnu.org/vgabios/"
-LICENSE = "LGPLv2.1"
-SECTION = "firmware"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=dcf3c825659e82539645da41a7908589"
-
-SRC_URI = "http://savannah.gnu.org/download/vgabios/vgabios-${PV}.tgz"
-
-SRC_URI[md5sum] = "2c0fe5c0ca08082a9293e3a7b23dc900"
-SRC_URI[sha256sum] = "9d24c33d4bfb7831e2069cf3644936a53ef3de21d467872b54ce2ea30881b865"
-
-BBCLASSEXTEND = "native"
-
-FILES_${PN} = "${bindir}/biossums"
-
-S = "${WORKDIR}/vgabios-${PV}"
-
-do_configure() {
- # Don't override the compiler or its flags:
- sed 's,^CC,DISABLED_CC,' -i Makefile
- sed 's,^CFLAGS,DISABLED_CFLAGS,' -i Makefile
- sed 's,^LDFLAGS,DISABLED_LDFLAGS,' -i Makefile
- # Supply the C flags to the compiler:
- sed 's,-o biossums,$(CFLAGS) -o biossums,' -i Makefile
-}
-
-do_compile() {
- # clean removes binaries distributed with source
- oe_runmake clean
- oe_runmake biossums
-}
-
-do_install() {
- mkdir -p "${D}${bindir}"
- install -m 0755 biossums "${D}${bindir}"
-}
diff --git a/recipes-extended/vgabios/files/build-cc.patch b/recipes-extended/vgabios/files/build-cc.patch
new file mode 100644
index 00000000..01fd8b97
--- /dev/null
+++ b/recipes-extended/vgabios/files/build-cc.patch
@@ -0,0 +1,31 @@
+Use the host compiler to build the tools we need at runtime.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+Index: Makefile
+===================================================================
+--- a/Makefile (revision 298)
++++ b/Makefile (working copy)
+@@ -5,6 +5,7 @@
+ SHELL = /bin/sh
+
+ CC = gcc
++HOSTCC = gcc
+ CFLAGS = -g -O2 -Wall -Wstrict-prototypes
+ LDFLAGS =
+
+@@ -79,10 +80,10 @@
+ tar czvf ../$(RELEASE).tgz --exclude .svn -C .. $(RELEASE)/
+
+ biossums: biossums.c
+- $(CC) -o biossums biossums.c
++ $(HOSTCC) -o biossums biossums.c
+
+ vbetables-gen: vbetables-gen.c
+- $(CC) -o vbetables-gen vbetables-gen.c
++ $(HOSTCC) -o vbetables-gen vbetables-gen.c
+
+ vbetables.h: vbetables-gen
+ ./vbetables-gen > $@
diff --git a/recipes-extended/vgabios/vgabios_0.7a.bb b/recipes-extended/vgabios/vgabios_0.7a.bb
deleted file mode 100644
index 3394173c..00000000
--- a/recipes-extended/vgabios/vgabios_0.7a.bb
+++ /dev/null
@@ -1,33 +0,0 @@
-DESCRIPTION = "Plex86/Bochs LGPL VGABios"
-HOMEPAGE = "http://www.nongnu.org/vgabios/"
-LICENSE = "LGPLv2.1"
-SECTION = "firmware"
-
-DEPENDS = "dev86-native biossums-native"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=dcf3c825659e82539645da41a7908589"
-
-SRC_URI = "http://savannah.gnu.org/download/vgabios/${BPN}-${PV}.tgz"
-
-SRC_URI[md5sum] = "2c0fe5c0ca08082a9293e3a7b23dc900"
-SRC_URI[sha256sum] = "9d24c33d4bfb7831e2069cf3644936a53ef3de21d467872b54ce2ea30881b865"
-
-PR = "r0"
-
-FILES_${PN} = "/usr/share/firmware/${PN}-${PV}*.bin"
-FILES_${PN}-dbg = "/usr/share/firmware/${PN}-${PV}*.debug.bin"
-
-S = "${WORKDIR}/${PN}-${PV}"
-
-do_configure() {
- # Override to use the native-built biossums tool:
- sed 's,./biossums,biossums,' -i Makefile
- sed 's,$(CC) -o biossums biossums.c,touch biossums,' -i Makefile
-}
-
-do_install() {
- install -d ${D}/usr/share/firmware
- install -m 0644 VGABIOS-lgpl-latest.bin ${D}/usr/share/firmware/${PN}-${PV}.bin
- install -m 0644 VGABIOS-lgpl-latest.cirrus.bin ${D}/usr/share/firmware/${PN}-${PV}.cirrus.bin
-}
-
diff --git a/recipes-extended/vgabios/vgabios_0.8a.bb b/recipes-extended/vgabios/vgabios_0.8a.bb
new file mode 100644
index 00000000..044bb4ec
--- /dev/null
+++ b/recipes-extended/vgabios/vgabios_0.8a.bb
@@ -0,0 +1,25 @@
+DESCRIPTION = "Plex86/Bochs LGPL VGABios"
+HOMEPAGE = "http://www.nongnu.org/vgabios/"
+LICENSE = "LGPL-2.1-only"
+SECTION = "firmware"
+
+DEPENDS = "dev86-native"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=fae731a3adbc92fd8bb1730d1f2455bc"
+
+SRC_URI = "http://savannah.gnu.org/download/vgabios/${BP}.tgz \
+ file://build-cc.patch"
+SRC_URI[sha256sum] = "481042240ef0f1c918780c92a6bb42ad4d3f5d989b29502fa7ee7faf13a041b9"
+
+EXTRA_OEMAKE = "HOSTCC="${BUILD_CC}""
+
+do_install() {
+ install -d ${D}${datadir}/firmware
+ for file in VGABIOS*.bin; do
+ target=$(echo $file | sed s/VGABIOS-lgpl-latest/${BP}/)
+ install -m0644 $file ${D}${datadir}/firmware/$target
+ done
+}
+
+FILES:${PN} = "${datadir}/firmware/${BP}*.bin"
+FILES:${PN}-dbg = "${datadir}/firmware/${BP}*.debug.bin"
diff --git a/recipes-extended/vhost-device/README.md b/recipes-extended/vhost-device/README.md
new file mode 100644
index 00000000..dd79b484
--- /dev/null
+++ b/recipes-extended/vhost-device/README.md
@@ -0,0 +1,14 @@
+# vhost-device: A collection of vhost-user devices
+
+[vhost-device](https://github.com/rust-vmm/vhost-device) provides a series of
+daemons that implement the
+[vhost-user protocol](https://qemu-project.gitlab.io/qemu/interop/vhost-user.html)
+for various virtio device types.
+
+## Updating the recipes
+
+1. Bump the version number to the newly published version listed on crates.io
+2. Regenerate the .inc file that list the dependencies:
+ `bitbake -c update_crates vhost-device-<type>`
+3. Review, build and test the changes
+
diff --git a/recipes-extended/vhost-device/vhost-device-gpio-crates.inc b/recipes-extended/vhost-device/vhost-device-gpio-crates.inc
new file mode 100644
index 00000000..4d73c1fd
--- /dev/null
+++ b/recipes-extended/vhost-device/vhost-device-gpio-crates.inc
@@ -0,0 +1,184 @@
+# Autogenerated with 'bitbake -c update_crates vhost-device-gpio'
+
+# from Cargo.lock
+SRC_URI += " \
+ crate://crates.io/aho-corasick/1.0.2 \
+ crate://crates.io/anstream/0.3.2 \
+ crate://crates.io/anstyle/1.0.1 \
+ crate://crates.io/anstyle-parse/0.2.1 \
+ crate://crates.io/anstyle-query/1.0.0 \
+ crate://crates.io/anstyle-wincon/1.0.1 \
+ crate://crates.io/arc-swap/1.6.0 \
+ crate://crates.io/assert_matches/1.5.0 \
+ crate://crates.io/bindgen/0.63.0 \
+ crate://crates.io/bitflags/1.3.2 \
+ crate://crates.io/bitflags/2.3.3 \
+ crate://crates.io/cc/1.0.79 \
+ crate://crates.io/cexpr/0.6.0 \
+ crate://crates.io/cfg-if/1.0.0 \
+ crate://crates.io/clang-sys/1.6.1 \
+ crate://crates.io/clap/4.3.19 \
+ crate://crates.io/clap_builder/4.3.19 \
+ crate://crates.io/clap_derive/4.3.12 \
+ crate://crates.io/clap_lex/0.5.0 \
+ crate://crates.io/colorchoice/1.0.0 \
+ crate://crates.io/either/1.8.1 \
+ crate://crates.io/env_logger/0.10.0 \
+ crate://crates.io/errno/0.2.8 \
+ crate://crates.io/errno/0.3.1 \
+ crate://crates.io/errno-dragonfly/0.1.2 \
+ crate://crates.io/glob/0.3.1 \
+ crate://crates.io/heck/0.3.3 \
+ crate://crates.io/heck/0.4.1 \
+ crate://crates.io/hermit-abi/0.3.2 \
+ crate://crates.io/humantime/2.1.0 \
+ crate://crates.io/intmap/2.0.0 \
+ crate://crates.io/is-terminal/0.4.9 \
+ crate://crates.io/lazy_static/1.4.0 \
+ crate://crates.io/lazycell/1.3.0 \
+ crate://crates.io/libc/0.2.147 \
+ crate://crates.io/libgpiod/0.1.0 \
+ crate://crates.io/libgpiod-sys/0.1.0 \
+ crate://crates.io/libloading/0.7.4 \
+ crate://crates.io/linux-raw-sys/0.4.3 \
+ crate://crates.io/log/0.4.19 \
+ crate://crates.io/memchr/2.5.0 \
+ crate://crates.io/minimal-lexical/0.2.1 \
+ crate://crates.io/nom/7.1.3 \
+ crate://crates.io/once_cell/1.18.0 \
+ crate://crates.io/peeking_take_while/0.1.2 \
+ crate://crates.io/pkg-config/0.3.27 \
+ crate://crates.io/proc-macro2/1.0.63 \
+ crate://crates.io/quote/1.0.29 \
+ crate://crates.io/regex/1.9.1 \
+ crate://crates.io/regex-automata/0.3.2 \
+ crate://crates.io/regex-syntax/0.7.4 \
+ crate://crates.io/rustc-hash/1.1.0 \
+ crate://crates.io/rustix/0.38.3 \
+ crate://crates.io/serde/1.0.168 \
+ crate://crates.io/shlex/1.1.0 \
+ crate://crates.io/strsim/0.10.0 \
+ crate://crates.io/strum/0.20.0 \
+ crate://crates.io/strum_macros/0.20.1 \
+ crate://crates.io/syn/1.0.109 \
+ crate://crates.io/syn/2.0.23 \
+ crate://crates.io/system-deps/2.0.3 \
+ crate://crates.io/termcolor/1.2.0 \
+ crate://crates.io/thiserror/1.0.41 \
+ crate://crates.io/thiserror-impl/1.0.41 \
+ crate://crates.io/toml/0.5.11 \
+ crate://crates.io/unicode-ident/1.0.11 \
+ crate://crates.io/unicode-segmentation/1.10.1 \
+ crate://crates.io/utf8parse/0.2.1 \
+ crate://crates.io/version-compare/0.0.11 \
+ crate://crates.io/vhost/0.8.0 \
+ crate://crates.io/vhost-user-backend/0.10.0 \
+ crate://crates.io/virtio-bindings/0.2.1 \
+ crate://crates.io/virtio-queue/0.9.0 \
+ crate://crates.io/vm-memory/0.12.0 \
+ crate://crates.io/vmm-sys-util/0.11.1 \
+ crate://crates.io/which/4.4.0 \
+ crate://crates.io/winapi/0.3.9 \
+ crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
+ crate://crates.io/winapi-util/0.1.5 \
+ crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
+ crate://crates.io/windows-sys/0.48.0 \
+ crate://crates.io/windows-targets/0.48.1 \
+ crate://crates.io/windows_aarch64_gnullvm/0.48.0 \
+ crate://crates.io/windows_aarch64_msvc/0.48.0 \
+ crate://crates.io/windows_i686_gnu/0.48.0 \
+ crate://crates.io/windows_i686_msvc/0.48.0 \
+ crate://crates.io/windows_x86_64_gnu/0.48.0 \
+ crate://crates.io/windows_x86_64_gnullvm/0.48.0 \
+ crate://crates.io/windows_x86_64_msvc/0.48.0 \
+"
+
+SRC_URI[aho-corasick-1.0.2.sha256sum] = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41"
+SRC_URI[anstream-0.3.2.sha256sum] = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163"
+SRC_URI[anstyle-1.0.1.sha256sum] = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd"
+SRC_URI[anstyle-parse-0.2.1.sha256sum] = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333"
+SRC_URI[anstyle-query-1.0.0.sha256sum] = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b"
+SRC_URI[anstyle-wincon-1.0.1.sha256sum] = "180abfa45703aebe0093f79badacc01b8fd4ea2e35118747e5811127f926e188"
+SRC_URI[arc-swap-1.6.0.sha256sum] = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6"
+SRC_URI[assert_matches-1.5.0.sha256sum] = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9"
+SRC_URI[bindgen-0.63.0.sha256sum] = "36d860121800b2a9a94f9b5604b332d5cffb234ce17609ea479d723dbc9d3885"
+SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+SRC_URI[bitflags-2.3.3.sha256sum] = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42"
+SRC_URI[cc-1.0.79.sha256sum] = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
+SRC_URI[cexpr-0.6.0.sha256sum] = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766"
+SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+SRC_URI[clang-sys-1.6.1.sha256sum] = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f"
+SRC_URI[clap-4.3.19.sha256sum] = "5fd304a20bff958a57f04c4e96a2e7594cc4490a0e809cbd48bb6437edaa452d"
+SRC_URI[clap_builder-4.3.19.sha256sum] = "01c6a3f08f1fe5662a35cfe393aec09c4df95f60ee93b7556505260f75eee9e1"
+SRC_URI[clap_derive-4.3.12.sha256sum] = "54a9bb5758fc5dfe728d1019941681eccaf0cf8a4189b692a0ee2f2ecf90a050"
+SRC_URI[clap_lex-0.5.0.sha256sum] = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b"
+SRC_URI[colorchoice-1.0.0.sha256sum] = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
+SRC_URI[either-1.8.1.sha256sum] = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
+SRC_URI[env_logger-0.10.0.sha256sum] = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
+SRC_URI[errno-0.2.8.sha256sum] = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1"
+SRC_URI[errno-0.3.1.sha256sum] = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
+SRC_URI[errno-dragonfly-0.1.2.sha256sum] = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+SRC_URI[glob-0.3.1.sha256sum] = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
+SRC_URI[heck-0.3.3.sha256sum] = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
+SRC_URI[heck-0.4.1.sha256sum] = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+SRC_URI[hermit-abi-0.3.2.sha256sum] = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
+SRC_URI[humantime-2.1.0.sha256sum] = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+SRC_URI[intmap-2.0.0.sha256sum] = "ee87fd093563344074bacf24faa0bb0227fb6969fb223e922db798516de924d6"
+SRC_URI[is-terminal-0.4.9.sha256sum] = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
+SRC_URI[lazy_static-1.4.0.sha256sum] = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+SRC_URI[lazycell-1.3.0.sha256sum] = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
+SRC_URI[libc-0.2.147.sha256sum] = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
+SRC_URI[libgpiod-0.1.0.sha256sum] = "9e9fdf4b437063f5697151f9ead12bafa223958e243f2f736107ec68c2b88231"
+SRC_URI[libgpiod-sys-0.1.0.sha256sum] = "aa282e1da652deaeed776f6ef36d443689aeda19e5c0a3a2335c50b4611ce489"
+SRC_URI[libloading-0.7.4.sha256sum] = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
+SRC_URI[linux-raw-sys-0.4.3.sha256sum] = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0"
+SRC_URI[log-0.4.19.sha256sum] = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4"
+SRC_URI[memchr-2.5.0.sha256sum] = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+SRC_URI[minimal-lexical-0.2.1.sha256sum] = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+SRC_URI[nom-7.1.3.sha256sum] = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
+SRC_URI[once_cell-1.18.0.sha256sum] = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+SRC_URI[peeking_take_while-0.1.2.sha256sum] = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
+SRC_URI[pkg-config-0.3.27.sha256sum] = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
+SRC_URI[proc-macro2-1.0.63.sha256sum] = "7b368fba921b0dce7e60f5e04ec15e565b3303972b42bcfde1d0713b881959eb"
+SRC_URI[quote-1.0.29.sha256sum] = "573015e8ab27661678357f27dc26460738fd2b6c86e46f386fde94cb5d913105"
+SRC_URI[regex-1.9.1.sha256sum] = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575"
+SRC_URI[regex-automata-0.3.2.sha256sum] = "83d3daa6976cffb758ec878f108ba0e062a45b2d6ca3a2cca965338855476caf"
+SRC_URI[regex-syntax-0.7.4.sha256sum] = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2"
+SRC_URI[rustc-hash-1.1.0.sha256sum] = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
+SRC_URI[rustix-0.38.3.sha256sum] = "ac5ffa1efe7548069688cd7028f32591853cd7b5b756d41bcffd2353e4fc75b4"
+SRC_URI[serde-1.0.168.sha256sum] = "d614f89548720367ded108b3c843be93f3a341e22d5674ca0dd5cd57f34926af"
+SRC_URI[shlex-1.1.0.sha256sum] = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3"
+SRC_URI[strsim-0.10.0.sha256sum] = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+SRC_URI[strum-0.20.0.sha256sum] = "7318c509b5ba57f18533982607f24070a55d353e90d4cae30c467cdb2ad5ac5c"
+SRC_URI[strum_macros-0.20.1.sha256sum] = "ee8bc6b87a5112aeeab1f4a9f7ab634fe6cbefc4850006df31267f4cfb9e3149"
+SRC_URI[syn-1.0.109.sha256sum] = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+SRC_URI[syn-2.0.23.sha256sum] = "59fb7d6d8281a51045d62b8eb3a7d1ce347b76f312af50cd3dc0af39c87c1737"
+SRC_URI[system-deps-2.0.3.sha256sum] = "1b59b8aafd652f3c1469f16e6c223121e8a8dbe40c71475209c1401cff3a67ef"
+SRC_URI[termcolor-1.2.0.sha256sum] = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
+SRC_URI[thiserror-1.0.41.sha256sum] = "c16a64ba9387ef3fdae4f9c1a7f07a0997fce91985c0336f1ddc1822b3b37802"
+SRC_URI[thiserror-impl-1.0.41.sha256sum] = "d14928354b01c4d6a4f0e549069adef399a284e7995c7ccca94e8a07a5346c59"
+SRC_URI[toml-0.5.11.sha256sum] = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
+SRC_URI[unicode-ident-1.0.11.sha256sum] = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
+SRC_URI[unicode-segmentation-1.10.1.sha256sum] = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
+SRC_URI[utf8parse-0.2.1.sha256sum] = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
+SRC_URI[version-compare-0.0.11.sha256sum] = "1c18c859eead79d8b95d09e4678566e8d70105c4e7b251f707a03df32442661b"
+SRC_URI[vhost-0.8.0.sha256sum] = "73832f4d8d636d63d9b145e8ef22a2c50b93f4d24eb7a99c9e6781b1b08549cf"
+SRC_URI[vhost-user-backend-0.10.0.sha256sum] = "e3ea9d5e8ec847cde4df1c04e586698a479706fd6beca37323f9d425b24b4c2f"
+SRC_URI[virtio-bindings-0.2.1.sha256sum] = "c18d7b74098a946470ea265b5bacbbf877abc3373021388454de0d47735a5b98"
+SRC_URI[virtio-queue-0.9.0.sha256sum] = "35aca00da06841bd99162c381ec65893cace23ca0fb89254302cfe4bec4c300f"
+SRC_URI[vm-memory-0.12.0.sha256sum] = "a77c7a0891cbac53618f5f6eec650ed1dc4f7e506bbe14877aff49d94b8408b0"
+SRC_URI[vmm-sys-util-0.11.1.sha256sum] = "dd64fe09d8e880e600c324e7d664760a17f56e9672b7495a86381b49e4f72f46"
+SRC_URI[which-4.4.0.sha256sum] = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269"
+SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+SRC_URI[winapi-util-0.1.5.sha256sum] = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+SRC_URI[windows-sys-0.48.0.sha256sum] = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+SRC_URI[windows-targets-0.48.1.sha256sum] = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f"
+SRC_URI[windows_aarch64_gnullvm-0.48.0.sha256sum] = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
+SRC_URI[windows_aarch64_msvc-0.48.0.sha256sum] = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
+SRC_URI[windows_i686_gnu-0.48.0.sha256sum] = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
+SRC_URI[windows_i686_msvc-0.48.0.sha256sum] = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
+SRC_URI[windows_x86_64_gnu-0.48.0.sha256sum] = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
+SRC_URI[windows_x86_64_gnullvm-0.48.0.sha256sum] = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
+SRC_URI[windows_x86_64_msvc-0.48.0.sha256sum] = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
diff --git a/recipes-extended/vhost-device/vhost-device-gpio_0.1.0.bb b/recipes-extended/vhost-device/vhost-device-gpio_0.1.0.bb
new file mode 100644
index 00000000..79931163
--- /dev/null
+++ b/recipes-extended/vhost-device/vhost-device-gpio_0.1.0.bb
@@ -0,0 +1,22 @@
+SUMMARY = "vhost gpio backend device"
+DESCRIPTION = "A vhost-user backend that emulates a VirtIO GPIO device"
+HOMEPAGE = "https://github.com/rust-vmm/vhost-device"
+LICENSE = "Apache-2.0 | BSD-3-Clause"
+LIC_FILES_CHKSUM = "\
+ file://LICENSE-APACHE;md5=3b83ef96387f14655fc854ddc3c6bd57 \
+ file://LICENSE-BSD-3-Clause;md5=2489db1359f496fff34bd393df63947e \
+"
+DEPENDS += "libgpiod"
+# libgpiod-sys generates bindings using bindgen, which depends on clang
+DEPENDS += "clang-native"
+
+SKIP_RECIPE[vhost-device-gpio] ?= "${@bb.utils.contains('BBFILE_COLLECTIONS', 'clang-layer', '', 'Depends on clang-native from meta-clang which is not included', d)}"
+
+SRC_URI += "crate://crates.io/vhost-device-gpio/0.1.0"
+SRC_URI[vhost-device-gpio-0.1.0.sha256sum] = "f4789dd127ce746d4f702d50256ff09e47b19fdb2bfee88a254b7e48efbf1100"
+
+inherit cargo
+inherit cargo-update-recipe-crates
+inherit pkgconfig
+
+include vhost-device-gpio-crates.inc
diff --git a/recipes-extended/vhost-device/vhost-device-i2c-crates.inc b/recipes-extended/vhost-device/vhost-device-i2c-crates.inc
new file mode 100644
index 00000000..ba6a757d
--- /dev/null
+++ b/recipes-extended/vhost-device/vhost-device-i2c-crates.inc
@@ -0,0 +1,126 @@
+# Autogenerated with 'bitbake -c update_crates vhost-device-i2c'
+
+# from Cargo.lock
+SRC_URI += " \
+ crate://crates.io/aho-corasick/1.0.2 \
+ crate://crates.io/anstream/0.3.2 \
+ crate://crates.io/anstyle/1.0.1 \
+ crate://crates.io/anstyle-parse/0.2.1 \
+ crate://crates.io/anstyle-query/1.0.0 \
+ crate://crates.io/anstyle-wincon/1.0.1 \
+ crate://crates.io/arc-swap/1.6.0 \
+ crate://crates.io/assert_matches/1.5.0 \
+ crate://crates.io/bitflags/1.3.2 \
+ crate://crates.io/bitflags/2.3.3 \
+ crate://crates.io/cc/1.0.79 \
+ crate://crates.io/clap/4.3.19 \
+ crate://crates.io/clap_builder/4.3.19 \
+ crate://crates.io/clap_derive/4.3.12 \
+ crate://crates.io/clap_lex/0.5.0 \
+ crate://crates.io/colorchoice/1.0.0 \
+ crate://crates.io/env_logger/0.10.0 \
+ crate://crates.io/errno/0.3.1 \
+ crate://crates.io/errno-dragonfly/0.1.2 \
+ crate://crates.io/heck/0.4.1 \
+ crate://crates.io/hermit-abi/0.3.2 \
+ crate://crates.io/humantime/2.1.0 \
+ crate://crates.io/is-terminal/0.4.9 \
+ crate://crates.io/libc/0.2.147 \
+ crate://crates.io/linux-raw-sys/0.4.3 \
+ crate://crates.io/log/0.4.19 \
+ crate://crates.io/memchr/2.5.0 \
+ crate://crates.io/once_cell/1.18.0 \
+ crate://crates.io/proc-macro2/1.0.63 \
+ crate://crates.io/quote/1.0.29 \
+ crate://crates.io/regex/1.9.1 \
+ crate://crates.io/regex-automata/0.3.2 \
+ crate://crates.io/regex-syntax/0.7.4 \
+ crate://crates.io/rustix/0.38.3 \
+ crate://crates.io/strsim/0.10.0 \
+ crate://crates.io/syn/2.0.23 \
+ crate://crates.io/termcolor/1.2.0 \
+ crate://crates.io/thiserror/1.0.41 \
+ crate://crates.io/thiserror-impl/1.0.41 \
+ crate://crates.io/unicode-ident/1.0.11 \
+ crate://crates.io/utf8parse/0.2.1 \
+ crate://crates.io/vhost/0.8.0 \
+ crate://crates.io/vhost-user-backend/0.10.0 \
+ crate://crates.io/virtio-bindings/0.2.1 \
+ crate://crates.io/virtio-queue/0.9.0 \
+ crate://crates.io/vm-memory/0.12.0 \
+ crate://crates.io/vmm-sys-util/0.11.1 \
+ crate://crates.io/winapi/0.3.9 \
+ crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
+ crate://crates.io/winapi-util/0.1.5 \
+ crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
+ crate://crates.io/windows-sys/0.48.0 \
+ crate://crates.io/windows-targets/0.48.1 \
+ crate://crates.io/windows_aarch64_gnullvm/0.48.0 \
+ crate://crates.io/windows_aarch64_msvc/0.48.0 \
+ crate://crates.io/windows_i686_gnu/0.48.0 \
+ crate://crates.io/windows_i686_msvc/0.48.0 \
+ crate://crates.io/windows_x86_64_gnu/0.48.0 \
+ crate://crates.io/windows_x86_64_gnullvm/0.48.0 \
+ crate://crates.io/windows_x86_64_msvc/0.48.0 \
+"
+
+SRC_URI[aho-corasick-1.0.2.sha256sum] = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41"
+SRC_URI[anstream-0.3.2.sha256sum] = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163"
+SRC_URI[anstyle-1.0.1.sha256sum] = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd"
+SRC_URI[anstyle-parse-0.2.1.sha256sum] = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333"
+SRC_URI[anstyle-query-1.0.0.sha256sum] = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b"
+SRC_URI[anstyle-wincon-1.0.1.sha256sum] = "180abfa45703aebe0093f79badacc01b8fd4ea2e35118747e5811127f926e188"
+SRC_URI[arc-swap-1.6.0.sha256sum] = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6"
+SRC_URI[assert_matches-1.5.0.sha256sum] = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9"
+SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+SRC_URI[bitflags-2.3.3.sha256sum] = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42"
+SRC_URI[cc-1.0.79.sha256sum] = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
+SRC_URI[clap-4.3.19.sha256sum] = "5fd304a20bff958a57f04c4e96a2e7594cc4490a0e809cbd48bb6437edaa452d"
+SRC_URI[clap_builder-4.3.19.sha256sum] = "01c6a3f08f1fe5662a35cfe393aec09c4df95f60ee93b7556505260f75eee9e1"
+SRC_URI[clap_derive-4.3.12.sha256sum] = "54a9bb5758fc5dfe728d1019941681eccaf0cf8a4189b692a0ee2f2ecf90a050"
+SRC_URI[clap_lex-0.5.0.sha256sum] = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b"
+SRC_URI[colorchoice-1.0.0.sha256sum] = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
+SRC_URI[env_logger-0.10.0.sha256sum] = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
+SRC_URI[errno-0.3.1.sha256sum] = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
+SRC_URI[errno-dragonfly-0.1.2.sha256sum] = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+SRC_URI[heck-0.4.1.sha256sum] = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+SRC_URI[hermit-abi-0.3.2.sha256sum] = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
+SRC_URI[humantime-2.1.0.sha256sum] = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+SRC_URI[is-terminal-0.4.9.sha256sum] = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
+SRC_URI[libc-0.2.147.sha256sum] = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
+SRC_URI[linux-raw-sys-0.4.3.sha256sum] = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0"
+SRC_URI[log-0.4.19.sha256sum] = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4"
+SRC_URI[memchr-2.5.0.sha256sum] = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+SRC_URI[once_cell-1.18.0.sha256sum] = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+SRC_URI[proc-macro2-1.0.63.sha256sum] = "7b368fba921b0dce7e60f5e04ec15e565b3303972b42bcfde1d0713b881959eb"
+SRC_URI[quote-1.0.29.sha256sum] = "573015e8ab27661678357f27dc26460738fd2b6c86e46f386fde94cb5d913105"
+SRC_URI[regex-1.9.1.sha256sum] = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575"
+SRC_URI[regex-automata-0.3.2.sha256sum] = "83d3daa6976cffb758ec878f108ba0e062a45b2d6ca3a2cca965338855476caf"
+SRC_URI[regex-syntax-0.7.4.sha256sum] = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2"
+SRC_URI[rustix-0.38.3.sha256sum] = "ac5ffa1efe7548069688cd7028f32591853cd7b5b756d41bcffd2353e4fc75b4"
+SRC_URI[strsim-0.10.0.sha256sum] = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+SRC_URI[syn-2.0.23.sha256sum] = "59fb7d6d8281a51045d62b8eb3a7d1ce347b76f312af50cd3dc0af39c87c1737"
+SRC_URI[termcolor-1.2.0.sha256sum] = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
+SRC_URI[thiserror-1.0.41.sha256sum] = "c16a64ba9387ef3fdae4f9c1a7f07a0997fce91985c0336f1ddc1822b3b37802"
+SRC_URI[thiserror-impl-1.0.41.sha256sum] = "d14928354b01c4d6a4f0e549069adef399a284e7995c7ccca94e8a07a5346c59"
+SRC_URI[unicode-ident-1.0.11.sha256sum] = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
+SRC_URI[utf8parse-0.2.1.sha256sum] = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
+SRC_URI[vhost-0.8.0.sha256sum] = "73832f4d8d636d63d9b145e8ef22a2c50b93f4d24eb7a99c9e6781b1b08549cf"
+SRC_URI[vhost-user-backend-0.10.0.sha256sum] = "e3ea9d5e8ec847cde4df1c04e586698a479706fd6beca37323f9d425b24b4c2f"
+SRC_URI[virtio-bindings-0.2.1.sha256sum] = "c18d7b74098a946470ea265b5bacbbf877abc3373021388454de0d47735a5b98"
+SRC_URI[virtio-queue-0.9.0.sha256sum] = "35aca00da06841bd99162c381ec65893cace23ca0fb89254302cfe4bec4c300f"
+SRC_URI[vm-memory-0.12.0.sha256sum] = "a77c7a0891cbac53618f5f6eec650ed1dc4f7e506bbe14877aff49d94b8408b0"
+SRC_URI[vmm-sys-util-0.11.1.sha256sum] = "dd64fe09d8e880e600c324e7d664760a17f56e9672b7495a86381b49e4f72f46"
+SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+SRC_URI[winapi-util-0.1.5.sha256sum] = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+SRC_URI[windows-sys-0.48.0.sha256sum] = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+SRC_URI[windows-targets-0.48.1.sha256sum] = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f"
+SRC_URI[windows_aarch64_gnullvm-0.48.0.sha256sum] = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
+SRC_URI[windows_aarch64_msvc-0.48.0.sha256sum] = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
+SRC_URI[windows_i686_gnu-0.48.0.sha256sum] = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
+SRC_URI[windows_i686_msvc-0.48.0.sha256sum] = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
+SRC_URI[windows_x86_64_gnu-0.48.0.sha256sum] = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
+SRC_URI[windows_x86_64_gnullvm-0.48.0.sha256sum] = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
+SRC_URI[windows_x86_64_msvc-0.48.0.sha256sum] = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
diff --git a/recipes-extended/vhost-device/vhost-device-i2c_0.1.0.bb b/recipes-extended/vhost-device/vhost-device-i2c_0.1.0.bb
new file mode 100644
index 00000000..c9179da3
--- /dev/null
+++ b/recipes-extended/vhost-device/vhost-device-i2c_0.1.0.bb
@@ -0,0 +1,16 @@
+SUMMARY = "vhost i2c backend device"
+DESCRIPTION = "A vhost-user backend that emulates a VirtIO I2C device"
+HOMEPAGE = "https://github.com/rust-vmm/vhost-device"
+LICENSE = "Apache-2.0 | BSD-3-Clause"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE-APACHE;md5=3b83ef96387f14655fc854ddc3c6bd57 \
+ file://LICENSE-BSD-3-Clause;md5=2489db1359f496fff34bd393df63947e \
+"
+
+SRC_URI += "crate://crates.io/vhost-device-i2c/0.1.0"
+SRC_URI[vhost-device-i2c-0.1.0.sha256sum] = "a77923a4f161887ca2a19ead2d2f2271d62d1268e774265c42c277367f019a3f"
+
+inherit cargo
+inherit cargo-update-recipe-crates
+
+include vhost-device-i2c-crates.inc
diff --git a/recipes-extended/vhost-device/vhost-device-rng-crates.inc b/recipes-extended/vhost-device/vhost-device-rng-crates.inc
new file mode 100644
index 00000000..5a50da3e
--- /dev/null
+++ b/recipes-extended/vhost-device/vhost-device-rng-crates.inc
@@ -0,0 +1,158 @@
+# Autogenerated with 'bitbake -c update_crates vhost-device-rng'
+
+# from Cargo.lock
+SRC_URI += " \
+ crate://crates.io/aho-corasick/1.0.2 \
+ crate://crates.io/anstream/0.3.2 \
+ crate://crates.io/anstyle/1.0.1 \
+ crate://crates.io/anstyle-parse/0.2.1 \
+ crate://crates.io/anstyle-query/1.0.0 \
+ crate://crates.io/anstyle-wincon/1.0.1 \
+ crate://crates.io/arc-swap/1.6.0 \
+ crate://crates.io/assert_matches/1.5.0 \
+ crate://crates.io/autocfg/1.1.0 \
+ crate://crates.io/bitflags/1.3.2 \
+ crate://crates.io/bitflags/2.3.3 \
+ crate://crates.io/cc/1.0.79 \
+ crate://crates.io/cfg-if/1.0.0 \
+ crate://crates.io/clap/4.3.19 \
+ crate://crates.io/clap_builder/4.3.19 \
+ crate://crates.io/clap_derive/4.3.12 \
+ crate://crates.io/clap_lex/0.5.0 \
+ crate://crates.io/colorchoice/1.0.0 \
+ crate://crates.io/env_logger/0.10.0 \
+ crate://crates.io/epoll/4.3.3 \
+ crate://crates.io/errno/0.3.1 \
+ crate://crates.io/errno-dragonfly/0.1.2 \
+ crate://crates.io/fastrand/1.9.0 \
+ crate://crates.io/getrandom/0.2.10 \
+ crate://crates.io/heck/0.4.1 \
+ crate://crates.io/hermit-abi/0.3.2 \
+ crate://crates.io/humantime/2.1.0 \
+ crate://crates.io/instant/0.1.12 \
+ crate://crates.io/io-lifetimes/1.0.11 \
+ crate://crates.io/is-terminal/0.4.9 \
+ crate://crates.io/libc/0.2.147 \
+ crate://crates.io/linux-raw-sys/0.3.8 \
+ crate://crates.io/linux-raw-sys/0.4.3 \
+ crate://crates.io/log/0.4.19 \
+ crate://crates.io/memchr/2.5.0 \
+ crate://crates.io/once_cell/1.18.0 \
+ crate://crates.io/ppv-lite86/0.2.17 \
+ crate://crates.io/proc-macro2/1.0.63 \
+ crate://crates.io/quote/1.0.29 \
+ crate://crates.io/rand/0.8.5 \
+ crate://crates.io/rand_chacha/0.3.1 \
+ crate://crates.io/rand_core/0.6.4 \
+ crate://crates.io/redox_syscall/0.3.5 \
+ crate://crates.io/regex/1.9.1 \
+ crate://crates.io/regex-automata/0.3.2 \
+ crate://crates.io/regex-syntax/0.7.4 \
+ crate://crates.io/rustix/0.37.23 \
+ crate://crates.io/rustix/0.38.3 \
+ crate://crates.io/strsim/0.10.0 \
+ crate://crates.io/syn/2.0.23 \
+ crate://crates.io/tempfile/3.6.0 \
+ crate://crates.io/termcolor/1.2.0 \
+ crate://crates.io/thiserror/1.0.41 \
+ crate://crates.io/thiserror-impl/1.0.41 \
+ crate://crates.io/unicode-ident/1.0.11 \
+ crate://crates.io/utf8parse/0.2.1 \
+ crate://crates.io/vhost/0.8.0 \
+ crate://crates.io/vhost-user-backend/0.10.0 \
+ crate://crates.io/virtio-bindings/0.2.1 \
+ crate://crates.io/virtio-queue/0.9.0 \
+ crate://crates.io/vm-memory/0.12.0 \
+ crate://crates.io/vmm-sys-util/0.11.1 \
+ crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1 \
+ crate://crates.io/winapi/0.3.9 \
+ crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
+ crate://crates.io/winapi-util/0.1.5 \
+ crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
+ crate://crates.io/windows-sys/0.48.0 \
+ crate://crates.io/windows-targets/0.48.1 \
+ crate://crates.io/windows_aarch64_gnullvm/0.48.0 \
+ crate://crates.io/windows_aarch64_msvc/0.48.0 \
+ crate://crates.io/windows_i686_gnu/0.48.0 \
+ crate://crates.io/windows_i686_msvc/0.48.0 \
+ crate://crates.io/windows_x86_64_gnu/0.48.0 \
+ crate://crates.io/windows_x86_64_gnullvm/0.48.0 \
+ crate://crates.io/windows_x86_64_msvc/0.48.0 \
+"
+
+SRC_URI[aho-corasick-1.0.2.sha256sum] = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41"
+SRC_URI[anstream-0.3.2.sha256sum] = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163"
+SRC_URI[anstyle-1.0.1.sha256sum] = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd"
+SRC_URI[anstyle-parse-0.2.1.sha256sum] = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333"
+SRC_URI[anstyle-query-1.0.0.sha256sum] = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b"
+SRC_URI[anstyle-wincon-1.0.1.sha256sum] = "180abfa45703aebe0093f79badacc01b8fd4ea2e35118747e5811127f926e188"
+SRC_URI[arc-swap-1.6.0.sha256sum] = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6"
+SRC_URI[assert_matches-1.5.0.sha256sum] = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9"
+SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+SRC_URI[bitflags-2.3.3.sha256sum] = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42"
+SRC_URI[cc-1.0.79.sha256sum] = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
+SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+SRC_URI[clap-4.3.19.sha256sum] = "5fd304a20bff958a57f04c4e96a2e7594cc4490a0e809cbd48bb6437edaa452d"
+SRC_URI[clap_builder-4.3.19.sha256sum] = "01c6a3f08f1fe5662a35cfe393aec09c4df95f60ee93b7556505260f75eee9e1"
+SRC_URI[clap_derive-4.3.12.sha256sum] = "54a9bb5758fc5dfe728d1019941681eccaf0cf8a4189b692a0ee2f2ecf90a050"
+SRC_URI[clap_lex-0.5.0.sha256sum] = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b"
+SRC_URI[colorchoice-1.0.0.sha256sum] = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
+SRC_URI[env_logger-0.10.0.sha256sum] = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
+SRC_URI[epoll-4.3.3.sha256sum] = "74351c3392ea1ff6cd2628e0042d268ac2371cb613252ff383b6dfa50d22fa79"
+SRC_URI[errno-0.3.1.sha256sum] = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
+SRC_URI[errno-dragonfly-0.1.2.sha256sum] = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+SRC_URI[fastrand-1.9.0.sha256sum] = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
+SRC_URI[getrandom-0.2.10.sha256sum] = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
+SRC_URI[heck-0.4.1.sha256sum] = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+SRC_URI[hermit-abi-0.3.2.sha256sum] = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
+SRC_URI[humantime-2.1.0.sha256sum] = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+SRC_URI[instant-0.1.12.sha256sum] = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+SRC_URI[io-lifetimes-1.0.11.sha256sum] = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
+SRC_URI[is-terminal-0.4.9.sha256sum] = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
+SRC_URI[libc-0.2.147.sha256sum] = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
+SRC_URI[linux-raw-sys-0.3.8.sha256sum] = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
+SRC_URI[linux-raw-sys-0.4.3.sha256sum] = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0"
+SRC_URI[log-0.4.19.sha256sum] = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4"
+SRC_URI[memchr-2.5.0.sha256sum] = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+SRC_URI[once_cell-1.18.0.sha256sum] = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+SRC_URI[ppv-lite86-0.2.17.sha256sum] = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+SRC_URI[proc-macro2-1.0.63.sha256sum] = "7b368fba921b0dce7e60f5e04ec15e565b3303972b42bcfde1d0713b881959eb"
+SRC_URI[quote-1.0.29.sha256sum] = "573015e8ab27661678357f27dc26460738fd2b6c86e46f386fde94cb5d913105"
+SRC_URI[rand-0.8.5.sha256sum] = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+SRC_URI[rand_chacha-0.3.1.sha256sum] = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+SRC_URI[rand_core-0.6.4.sha256sum] = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+SRC_URI[redox_syscall-0.3.5.sha256sum] = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
+SRC_URI[regex-1.9.1.sha256sum] = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575"
+SRC_URI[regex-automata-0.3.2.sha256sum] = "83d3daa6976cffb758ec878f108ba0e062a45b2d6ca3a2cca965338855476caf"
+SRC_URI[regex-syntax-0.7.4.sha256sum] = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2"
+SRC_URI[rustix-0.37.23.sha256sum] = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06"
+SRC_URI[rustix-0.38.3.sha256sum] = "ac5ffa1efe7548069688cd7028f32591853cd7b5b756d41bcffd2353e4fc75b4"
+SRC_URI[strsim-0.10.0.sha256sum] = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+SRC_URI[syn-2.0.23.sha256sum] = "59fb7d6d8281a51045d62b8eb3a7d1ce347b76f312af50cd3dc0af39c87c1737"
+SRC_URI[tempfile-3.6.0.sha256sum] = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6"
+SRC_URI[termcolor-1.2.0.sha256sum] = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
+SRC_URI[thiserror-1.0.41.sha256sum] = "c16a64ba9387ef3fdae4f9c1a7f07a0997fce91985c0336f1ddc1822b3b37802"
+SRC_URI[thiserror-impl-1.0.41.sha256sum] = "d14928354b01c4d6a4f0e549069adef399a284e7995c7ccca94e8a07a5346c59"
+SRC_URI[unicode-ident-1.0.11.sha256sum] = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
+SRC_URI[utf8parse-0.2.1.sha256sum] = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
+SRC_URI[vhost-0.8.0.sha256sum] = "73832f4d8d636d63d9b145e8ef22a2c50b93f4d24eb7a99c9e6781b1b08549cf"
+SRC_URI[vhost-user-backend-0.10.0.sha256sum] = "e3ea9d5e8ec847cde4df1c04e586698a479706fd6beca37323f9d425b24b4c2f"
+SRC_URI[virtio-bindings-0.2.1.sha256sum] = "c18d7b74098a946470ea265b5bacbbf877abc3373021388454de0d47735a5b98"
+SRC_URI[virtio-queue-0.9.0.sha256sum] = "35aca00da06841bd99162c381ec65893cace23ca0fb89254302cfe4bec4c300f"
+SRC_URI[vm-memory-0.12.0.sha256sum] = "a77c7a0891cbac53618f5f6eec650ed1dc4f7e506bbe14877aff49d94b8408b0"
+SRC_URI[vmm-sys-util-0.11.1.sha256sum] = "dd64fe09d8e880e600c324e7d664760a17f56e9672b7495a86381b49e4f72f46"
+SRC_URI[wasi-0.11.0+wasi-snapshot-preview1.sha256sum] = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+SRC_URI[winapi-util-0.1.5.sha256sum] = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+SRC_URI[windows-sys-0.48.0.sha256sum] = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+SRC_URI[windows-targets-0.48.1.sha256sum] = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f"
+SRC_URI[windows_aarch64_gnullvm-0.48.0.sha256sum] = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
+SRC_URI[windows_aarch64_msvc-0.48.0.sha256sum] = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
+SRC_URI[windows_i686_gnu-0.48.0.sha256sum] = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
+SRC_URI[windows_i686_msvc-0.48.0.sha256sum] = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
+SRC_URI[windows_x86_64_gnu-0.48.0.sha256sum] = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
+SRC_URI[windows_x86_64_gnullvm-0.48.0.sha256sum] = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
+SRC_URI[windows_x86_64_msvc-0.48.0.sha256sum] = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
diff --git a/recipes-extended/vhost-device/vhost-device-rng_0.1.0.bb b/recipes-extended/vhost-device/vhost-device-rng_0.1.0.bb
new file mode 100644
index 00000000..6e4cf824
--- /dev/null
+++ b/recipes-extended/vhost-device/vhost-device-rng_0.1.0.bb
@@ -0,0 +1,17 @@
+SUMMARY = "vhost rng backend device"
+DESCRIPTION = "A vhost-user backend that emulates a VirtIO random number \
+ generator device"
+HOMEPAGE = "https://github.com/rust-vmm/vhost-device"
+LICENSE = "Apache-2.0 | BSD-3-Clause"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE-APACHE;md5=3b83ef96387f14655fc854ddc3c6bd57 \
+ file://LICENSE-BSD-3-Clause;md5=2489db1359f496fff34bd393df63947e \
+"
+
+SRC_URI += "crate://crates.io/vhost-device-rng/0.1.0"
+SRC_URI[vhost-device-rng-0.1.0.sha256sum] = "51e0af4acaaefc19a3d6c2e2cb00caf2130d728d857494c857662781da9f1329"
+
+inherit cargo
+inherit cargo-update-recipe-crates
+
+include vhost-device-rng-crates.inc
diff --git a/recipes-extended/vhost-device/vhost-device-scsi-crates.inc b/recipes-extended/vhost-device/vhost-device-scsi-crates.inc
new file mode 100644
index 00000000..3f9a08b4
--- /dev/null
+++ b/recipes-extended/vhost-device/vhost-device-scsi-crates.inc
@@ -0,0 +1,166 @@
+# Autogenerated with 'bitbake -c update_crates vhost-device-scsi'
+
+# from Cargo.lock
+SRC_URI += " \
+ crate://crates.io/aho-corasick/1.0.2 \
+ crate://crates.io/anstream/0.3.2 \
+ crate://crates.io/anstyle/1.0.1 \
+ crate://crates.io/anstyle-parse/0.2.1 \
+ crate://crates.io/anstyle-query/1.0.0 \
+ crate://crates.io/anstyle-wincon/1.0.1 \
+ crate://crates.io/arc-swap/1.6.0 \
+ crate://crates.io/assert_matches/1.5.0 \
+ crate://crates.io/autocfg/1.1.0 \
+ crate://crates.io/bitflags/1.3.2 \
+ crate://crates.io/bitflags/2.3.3 \
+ crate://crates.io/cc/1.0.79 \
+ crate://crates.io/cfg-if/1.0.0 \
+ crate://crates.io/clap/4.3.19 \
+ crate://crates.io/clap_builder/4.3.19 \
+ crate://crates.io/clap_derive/4.3.12 \
+ crate://crates.io/clap_lex/0.5.0 \
+ crate://crates.io/colorchoice/1.0.0 \
+ crate://crates.io/env_logger/0.10.0 \
+ crate://crates.io/epoll/4.3.3 \
+ crate://crates.io/equivalent/1.0.0 \
+ crate://crates.io/errno/0.3.1 \
+ crate://crates.io/errno-dragonfly/0.1.2 \
+ crate://crates.io/fastrand/1.9.0 \
+ crate://crates.io/hashbrown/0.14.0 \
+ crate://crates.io/heck/0.4.1 \
+ crate://crates.io/hermit-abi/0.3.2 \
+ crate://crates.io/humantime/2.1.0 \
+ crate://crates.io/indexmap/2.0.0 \
+ crate://crates.io/instant/0.1.12 \
+ crate://crates.io/io-lifetimes/1.0.11 \
+ crate://crates.io/is-terminal/0.4.9 \
+ crate://crates.io/libc/0.2.147 \
+ crate://crates.io/linux-raw-sys/0.3.8 \
+ crate://crates.io/linux-raw-sys/0.4.3 \
+ crate://crates.io/log/0.4.19 \
+ crate://crates.io/memchr/2.5.0 \
+ crate://crates.io/num_enum/0.5.11 \
+ crate://crates.io/num_enum_derive/0.5.11 \
+ crate://crates.io/once_cell/1.18.0 \
+ crate://crates.io/proc-macro-crate/1.3.1 \
+ crate://crates.io/proc-macro2/1.0.63 \
+ crate://crates.io/quote/1.0.29 \
+ crate://crates.io/redox_syscall/0.3.5 \
+ crate://crates.io/regex/1.9.1 \
+ crate://crates.io/regex-automata/0.3.2 \
+ crate://crates.io/regex-syntax/0.7.4 \
+ crate://crates.io/rustix/0.37.23 \
+ crate://crates.io/rustix/0.38.3 \
+ crate://crates.io/strsim/0.10.0 \
+ crate://crates.io/syn/1.0.109 \
+ crate://crates.io/syn/2.0.23 \
+ crate://crates.io/tempfile/3.6.0 \
+ crate://crates.io/termcolor/1.2.0 \
+ crate://crates.io/thiserror/1.0.41 \
+ crate://crates.io/thiserror-impl/1.0.41 \
+ crate://crates.io/toml_datetime/0.6.3 \
+ crate://crates.io/toml_edit/0.19.12 \
+ crate://crates.io/unicode-ident/1.0.11 \
+ crate://crates.io/utf8parse/0.2.1 \
+ crate://crates.io/vhost/0.8.0 \
+ crate://crates.io/vhost-user-backend/0.10.0 \
+ crate://crates.io/virtio-bindings/0.2.1 \
+ crate://crates.io/virtio-queue/0.9.0 \
+ crate://crates.io/vm-memory/0.12.0 \
+ crate://crates.io/vmm-sys-util/0.11.1 \
+ crate://crates.io/winapi/0.3.9 \
+ crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
+ crate://crates.io/winapi-util/0.1.5 \
+ crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
+ crate://crates.io/windows-sys/0.48.0 \
+ crate://crates.io/windows-targets/0.48.1 \
+ crate://crates.io/windows_aarch64_gnullvm/0.48.0 \
+ crate://crates.io/windows_aarch64_msvc/0.48.0 \
+ crate://crates.io/windows_i686_gnu/0.48.0 \
+ crate://crates.io/windows_i686_msvc/0.48.0 \
+ crate://crates.io/windows_x86_64_gnu/0.48.0 \
+ crate://crates.io/windows_x86_64_gnullvm/0.48.0 \
+ crate://crates.io/windows_x86_64_msvc/0.48.0 \
+ crate://crates.io/winnow/0.4.7 \
+"
+
+SRC_URI[aho-corasick-1.0.2.sha256sum] = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41"
+SRC_URI[anstream-0.3.2.sha256sum] = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163"
+SRC_URI[anstyle-1.0.1.sha256sum] = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd"
+SRC_URI[anstyle-parse-0.2.1.sha256sum] = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333"
+SRC_URI[anstyle-query-1.0.0.sha256sum] = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b"
+SRC_URI[anstyle-wincon-1.0.1.sha256sum] = "180abfa45703aebe0093f79badacc01b8fd4ea2e35118747e5811127f926e188"
+SRC_URI[arc-swap-1.6.0.sha256sum] = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6"
+SRC_URI[assert_matches-1.5.0.sha256sum] = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9"
+SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+SRC_URI[bitflags-2.3.3.sha256sum] = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42"
+SRC_URI[cc-1.0.79.sha256sum] = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
+SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+SRC_URI[clap-4.3.19.sha256sum] = "5fd304a20bff958a57f04c4e96a2e7594cc4490a0e809cbd48bb6437edaa452d"
+SRC_URI[clap_builder-4.3.19.sha256sum] = "01c6a3f08f1fe5662a35cfe393aec09c4df95f60ee93b7556505260f75eee9e1"
+SRC_URI[clap_derive-4.3.12.sha256sum] = "54a9bb5758fc5dfe728d1019941681eccaf0cf8a4189b692a0ee2f2ecf90a050"
+SRC_URI[clap_lex-0.5.0.sha256sum] = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b"
+SRC_URI[colorchoice-1.0.0.sha256sum] = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
+SRC_URI[env_logger-0.10.0.sha256sum] = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
+SRC_URI[epoll-4.3.3.sha256sum] = "74351c3392ea1ff6cd2628e0042d268ac2371cb613252ff383b6dfa50d22fa79"
+SRC_URI[equivalent-1.0.0.sha256sum] = "88bffebc5d80432c9b140ee17875ff173a8ab62faad5b257da912bd2f6c1c0a1"
+SRC_URI[errno-0.3.1.sha256sum] = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
+SRC_URI[errno-dragonfly-0.1.2.sha256sum] = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+SRC_URI[fastrand-1.9.0.sha256sum] = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
+SRC_URI[hashbrown-0.14.0.sha256sum] = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a"
+SRC_URI[heck-0.4.1.sha256sum] = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+SRC_URI[hermit-abi-0.3.2.sha256sum] = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
+SRC_URI[humantime-2.1.0.sha256sum] = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+SRC_URI[indexmap-2.0.0.sha256sum] = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d"
+SRC_URI[instant-0.1.12.sha256sum] = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+SRC_URI[io-lifetimes-1.0.11.sha256sum] = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
+SRC_URI[is-terminal-0.4.9.sha256sum] = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
+SRC_URI[libc-0.2.147.sha256sum] = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
+SRC_URI[linux-raw-sys-0.3.8.sha256sum] = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
+SRC_URI[linux-raw-sys-0.4.3.sha256sum] = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0"
+SRC_URI[log-0.4.19.sha256sum] = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4"
+SRC_URI[memchr-2.5.0.sha256sum] = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+SRC_URI[num_enum-0.5.11.sha256sum] = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9"
+SRC_URI[num_enum_derive-0.5.11.sha256sum] = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799"
+SRC_URI[once_cell-1.18.0.sha256sum] = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+SRC_URI[proc-macro-crate-1.3.1.sha256sum] = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
+SRC_URI[proc-macro2-1.0.63.sha256sum] = "7b368fba921b0dce7e60f5e04ec15e565b3303972b42bcfde1d0713b881959eb"
+SRC_URI[quote-1.0.29.sha256sum] = "573015e8ab27661678357f27dc26460738fd2b6c86e46f386fde94cb5d913105"
+SRC_URI[redox_syscall-0.3.5.sha256sum] = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
+SRC_URI[regex-1.9.1.sha256sum] = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575"
+SRC_URI[regex-automata-0.3.2.sha256sum] = "83d3daa6976cffb758ec878f108ba0e062a45b2d6ca3a2cca965338855476caf"
+SRC_URI[regex-syntax-0.7.4.sha256sum] = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2"
+SRC_URI[rustix-0.37.23.sha256sum] = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06"
+SRC_URI[rustix-0.38.3.sha256sum] = "ac5ffa1efe7548069688cd7028f32591853cd7b5b756d41bcffd2353e4fc75b4"
+SRC_URI[strsim-0.10.0.sha256sum] = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+SRC_URI[syn-1.0.109.sha256sum] = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+SRC_URI[syn-2.0.23.sha256sum] = "59fb7d6d8281a51045d62b8eb3a7d1ce347b76f312af50cd3dc0af39c87c1737"
+SRC_URI[tempfile-3.6.0.sha256sum] = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6"
+SRC_URI[termcolor-1.2.0.sha256sum] = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
+SRC_URI[thiserror-1.0.41.sha256sum] = "c16a64ba9387ef3fdae4f9c1a7f07a0997fce91985c0336f1ddc1822b3b37802"
+SRC_URI[thiserror-impl-1.0.41.sha256sum] = "d14928354b01c4d6a4f0e549069adef399a284e7995c7ccca94e8a07a5346c59"
+SRC_URI[toml_datetime-0.6.3.sha256sum] = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b"
+SRC_URI[toml_edit-0.19.12.sha256sum] = "c500344a19072298cd05a7224b3c0c629348b78692bf48466c5238656e315a78"
+SRC_URI[unicode-ident-1.0.11.sha256sum] = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
+SRC_URI[utf8parse-0.2.1.sha256sum] = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
+SRC_URI[vhost-0.8.0.sha256sum] = "73832f4d8d636d63d9b145e8ef22a2c50b93f4d24eb7a99c9e6781b1b08549cf"
+SRC_URI[vhost-user-backend-0.10.0.sha256sum] = "e3ea9d5e8ec847cde4df1c04e586698a479706fd6beca37323f9d425b24b4c2f"
+SRC_URI[virtio-bindings-0.2.1.sha256sum] = "c18d7b74098a946470ea265b5bacbbf877abc3373021388454de0d47735a5b98"
+SRC_URI[virtio-queue-0.9.0.sha256sum] = "35aca00da06841bd99162c381ec65893cace23ca0fb89254302cfe4bec4c300f"
+SRC_URI[vm-memory-0.12.0.sha256sum] = "a77c7a0891cbac53618f5f6eec650ed1dc4f7e506bbe14877aff49d94b8408b0"
+SRC_URI[vmm-sys-util-0.11.1.sha256sum] = "dd64fe09d8e880e600c324e7d664760a17f56e9672b7495a86381b49e4f72f46"
+SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+SRC_URI[winapi-util-0.1.5.sha256sum] = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+SRC_URI[windows-sys-0.48.0.sha256sum] = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+SRC_URI[windows-targets-0.48.1.sha256sum] = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f"
+SRC_URI[windows_aarch64_gnullvm-0.48.0.sha256sum] = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
+SRC_URI[windows_aarch64_msvc-0.48.0.sha256sum] = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
+SRC_URI[windows_i686_gnu-0.48.0.sha256sum] = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
+SRC_URI[windows_i686_msvc-0.48.0.sha256sum] = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
+SRC_URI[windows_x86_64_gnu-0.48.0.sha256sum] = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
+SRC_URI[windows_x86_64_gnullvm-0.48.0.sha256sum] = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
+SRC_URI[windows_x86_64_msvc-0.48.0.sha256sum] = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
+SRC_URI[winnow-0.4.7.sha256sum] = "ca0ace3845f0d96209f0375e6d367e3eb87eb65d27d445bdc9f1843a26f39448"
diff --git a/recipes-extended/vhost-device/vhost-device-scsi_0.1.0.bb b/recipes-extended/vhost-device/vhost-device-scsi_0.1.0.bb
new file mode 100644
index 00000000..6c9b49fa
--- /dev/null
+++ b/recipes-extended/vhost-device/vhost-device-scsi_0.1.0.bb
@@ -0,0 +1,16 @@
+SUMMARY = "vhost scsi backend device"
+DESCRIPTION = "A vhost-user backend that emulates a VirtIO SCSI block device"
+HOMEPAGE = "https://github.com/rust-vmm/vhost-device"
+LICENSE = "Apache-2.0 | BSD-3-Clause"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE-APACHE;md5=3b83ef96387f14655fc854ddc3c6bd57 \
+ file://LICENSE-BSD-3-Clause;md5=2489db1359f496fff34bd393df63947e \
+"
+
+SRC_URI += "crate://crates.io/vhost-device-scsi/0.1.0"
+SRC_URI[vhost-device-scsi-0.1.0.sha256sum] = "85e4abd5a07cb6abfe07b92e49c5cc81437058d7ec7beea441039e829cf82c22"
+
+inherit cargo
+inherit cargo-update-recipe-crates
+
+include vhost-device-scsi-crates.inc
diff --git a/recipes-extended/vhost-device/vhost-device-vsock-crates.inc b/recipes-extended/vhost-device/vhost-device-vsock-crates.inc
new file mode 100644
index 00000000..4ea2baa0
--- /dev/null
+++ b/recipes-extended/vhost-device/vhost-device-vsock-crates.inc
@@ -0,0 +1,258 @@
+# Autogenerated with 'bitbake -c update_crates vhost-device-vsock'
+
+# from Cargo.lock
+SRC_URI += " \
+ crate://crates.io/ahash/0.7.6 \
+ crate://crates.io/aho-corasick/1.0.2 \
+ crate://crates.io/anstream/0.3.2 \
+ crate://crates.io/anstyle/1.0.1 \
+ crate://crates.io/anstyle-parse/0.2.1 \
+ crate://crates.io/anstyle-query/1.0.0 \
+ crate://crates.io/anstyle-wincon/1.0.1 \
+ crate://crates.io/arc-swap/1.6.0 \
+ crate://crates.io/async-trait/0.1.71 \
+ crate://crates.io/autocfg/1.1.0 \
+ crate://crates.io/base64/0.13.1 \
+ crate://crates.io/bitflags/1.3.2 \
+ crate://crates.io/bitflags/2.3.3 \
+ crate://crates.io/block-buffer/0.10.4 \
+ crate://crates.io/byteorder/1.4.3 \
+ crate://crates.io/cc/1.0.79 \
+ crate://crates.io/cfg-if/1.0.0 \
+ crate://crates.io/clap/4.3.19 \
+ crate://crates.io/clap_builder/4.3.19 \
+ crate://crates.io/clap_derive/4.3.12 \
+ crate://crates.io/clap_lex/0.5.0 \
+ crate://crates.io/colorchoice/1.0.0 \
+ crate://crates.io/config/0.13.3 \
+ crate://crates.io/cpufeatures/0.2.9 \
+ crate://crates.io/crypto-common/0.1.6 \
+ crate://crates.io/digest/0.10.7 \
+ crate://crates.io/dlv-list/0.3.0 \
+ crate://crates.io/env_logger/0.10.0 \
+ crate://crates.io/epoll/4.3.3 \
+ crate://crates.io/equivalent/1.0.0 \
+ crate://crates.io/errno/0.3.1 \
+ crate://crates.io/errno-dragonfly/0.1.2 \
+ crate://crates.io/fastrand/1.9.0 \
+ crate://crates.io/futures/0.3.28 \
+ crate://crates.io/futures-channel/0.3.28 \
+ crate://crates.io/futures-core/0.3.28 \
+ crate://crates.io/futures-executor/0.3.28 \
+ crate://crates.io/futures-io/0.3.28 \
+ crate://crates.io/futures-macro/0.3.28 \
+ crate://crates.io/futures-sink/0.3.28 \
+ crate://crates.io/futures-task/0.3.28 \
+ crate://crates.io/futures-util/0.3.28 \
+ crate://crates.io/generic-array/0.14.7 \
+ crate://crates.io/getrandom/0.2.10 \
+ crate://crates.io/hashbrown/0.12.3 \
+ crate://crates.io/hashbrown/0.14.0 \
+ crate://crates.io/heck/0.4.1 \
+ crate://crates.io/hermit-abi/0.3.2 \
+ crate://crates.io/humantime/2.1.0 \
+ crate://crates.io/indexmap/2.0.0 \
+ crate://crates.io/instant/0.1.12 \
+ crate://crates.io/io-lifetimes/1.0.11 \
+ crate://crates.io/is-terminal/0.4.9 \
+ crate://crates.io/itoa/1.0.8 \
+ crate://crates.io/json5/0.4.1 \
+ crate://crates.io/lazy_static/1.4.0 \
+ crate://crates.io/libc/0.2.147 \
+ crate://crates.io/linked-hash-map/0.5.6 \
+ crate://crates.io/linux-raw-sys/0.3.8 \
+ crate://crates.io/linux-raw-sys/0.4.3 \
+ crate://crates.io/log/0.4.19 \
+ crate://crates.io/memchr/2.5.0 \
+ crate://crates.io/minimal-lexical/0.2.1 \
+ crate://crates.io/nom/7.1.3 \
+ crate://crates.io/num_cpus/1.16.0 \
+ crate://crates.io/once_cell/1.18.0 \
+ crate://crates.io/ordered-multimap/0.4.3 \
+ crate://crates.io/pathdiff/0.2.1 \
+ crate://crates.io/pest/2.7.1 \
+ crate://crates.io/pest_derive/2.7.0 \
+ crate://crates.io/pest_generator/2.7.0 \
+ crate://crates.io/pest_meta/2.7.0 \
+ crate://crates.io/pin-project-lite/0.2.10 \
+ crate://crates.io/pin-utils/0.1.0 \
+ crate://crates.io/proc-macro2/1.0.63 \
+ crate://crates.io/quote/1.0.29 \
+ crate://crates.io/redox_syscall/0.3.5 \
+ crate://crates.io/regex/1.9.1 \
+ crate://crates.io/regex-automata/0.3.2 \
+ crate://crates.io/regex-syntax/0.7.4 \
+ crate://crates.io/ron/0.7.1 \
+ crate://crates.io/rust-ini/0.18.0 \
+ crate://crates.io/rustix/0.37.23 \
+ crate://crates.io/rustix/0.38.3 \
+ crate://crates.io/ryu/1.0.15 \
+ crate://crates.io/serde/1.0.168 \
+ crate://crates.io/serde_derive/1.0.168 \
+ crate://crates.io/serde_json/1.0.100 \
+ crate://crates.io/serde_yaml/0.9.22 \
+ crate://crates.io/sha2/0.10.7 \
+ crate://crates.io/slab/0.4.8 \
+ crate://crates.io/strsim/0.10.0 \
+ crate://crates.io/syn/2.0.23 \
+ crate://crates.io/tempfile/3.6.0 \
+ crate://crates.io/termcolor/1.2.0 \
+ crate://crates.io/thiserror/1.0.41 \
+ crate://crates.io/thiserror-impl/1.0.41 \
+ crate://crates.io/toml/0.5.11 \
+ crate://crates.io/typenum/1.16.0 \
+ crate://crates.io/ucd-trie/0.1.6 \
+ crate://crates.io/unicode-ident/1.0.11 \
+ crate://crates.io/unsafe-libyaml/0.2.8 \
+ crate://crates.io/utf8parse/0.2.1 \
+ crate://crates.io/version_check/0.9.4 \
+ crate://crates.io/vhost/0.8.0 \
+ crate://crates.io/vhost-user-backend/0.10.0 \
+ crate://crates.io/virtio-bindings/0.2.1 \
+ crate://crates.io/virtio-queue/0.9.0 \
+ crate://crates.io/virtio-vsock/0.3.1 \
+ crate://crates.io/vm-memory/0.12.0 \
+ crate://crates.io/vmm-sys-util/0.11.1 \
+ crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1 \
+ crate://crates.io/winapi/0.3.9 \
+ crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
+ crate://crates.io/winapi-util/0.1.5 \
+ crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
+ crate://crates.io/windows-sys/0.48.0 \
+ crate://crates.io/windows-targets/0.48.1 \
+ crate://crates.io/windows_aarch64_gnullvm/0.48.0 \
+ crate://crates.io/windows_aarch64_msvc/0.48.0 \
+ crate://crates.io/windows_i686_gnu/0.48.0 \
+ crate://crates.io/windows_i686_msvc/0.48.0 \
+ crate://crates.io/windows_x86_64_gnu/0.48.0 \
+ crate://crates.io/windows_x86_64_gnullvm/0.48.0 \
+ crate://crates.io/windows_x86_64_msvc/0.48.0 \
+ crate://crates.io/yaml-rust/0.4.5 \
+"
+
+SRC_URI[ahash-0.7.6.sha256sum] = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47"
+SRC_URI[aho-corasick-1.0.2.sha256sum] = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41"
+SRC_URI[anstream-0.3.2.sha256sum] = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163"
+SRC_URI[anstyle-1.0.1.sha256sum] = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd"
+SRC_URI[anstyle-parse-0.2.1.sha256sum] = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333"
+SRC_URI[anstyle-query-1.0.0.sha256sum] = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b"
+SRC_URI[anstyle-wincon-1.0.1.sha256sum] = "180abfa45703aebe0093f79badacc01b8fd4ea2e35118747e5811127f926e188"
+SRC_URI[arc-swap-1.6.0.sha256sum] = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6"
+SRC_URI[async-trait-0.1.71.sha256sum] = "a564d521dd56509c4c47480d00b80ee55f7e385ae48db5744c67ad50c92d2ebf"
+SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+SRC_URI[base64-0.13.1.sha256sum] = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
+SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+SRC_URI[bitflags-2.3.3.sha256sum] = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42"
+SRC_URI[block-buffer-0.10.4.sha256sum] = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
+SRC_URI[byteorder-1.4.3.sha256sum] = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
+SRC_URI[cc-1.0.79.sha256sum] = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
+SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+SRC_URI[clap-4.3.19.sha256sum] = "5fd304a20bff958a57f04c4e96a2e7594cc4490a0e809cbd48bb6437edaa452d"
+SRC_URI[clap_builder-4.3.19.sha256sum] = "01c6a3f08f1fe5662a35cfe393aec09c4df95f60ee93b7556505260f75eee9e1"
+SRC_URI[clap_derive-4.3.12.sha256sum] = "54a9bb5758fc5dfe728d1019941681eccaf0cf8a4189b692a0ee2f2ecf90a050"
+SRC_URI[clap_lex-0.5.0.sha256sum] = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b"
+SRC_URI[colorchoice-1.0.0.sha256sum] = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
+SRC_URI[config-0.13.3.sha256sum] = "d379af7f68bfc21714c6c7dea883544201741d2ce8274bb12fa54f89507f52a7"
+SRC_URI[cpufeatures-0.2.9.sha256sum] = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1"
+SRC_URI[crypto-common-0.1.6.sha256sum] = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
+SRC_URI[digest-0.10.7.sha256sum] = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
+SRC_URI[dlv-list-0.3.0.sha256sum] = "0688c2a7f92e427f44895cd63841bff7b29f8d7a1648b9e7e07a4a365b2e1257"
+SRC_URI[env_logger-0.10.0.sha256sum] = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
+SRC_URI[epoll-4.3.3.sha256sum] = "74351c3392ea1ff6cd2628e0042d268ac2371cb613252ff383b6dfa50d22fa79"
+SRC_URI[equivalent-1.0.0.sha256sum] = "88bffebc5d80432c9b140ee17875ff173a8ab62faad5b257da912bd2f6c1c0a1"
+SRC_URI[errno-0.3.1.sha256sum] = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
+SRC_URI[errno-dragonfly-0.1.2.sha256sum] = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+SRC_URI[fastrand-1.9.0.sha256sum] = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
+SRC_URI[futures-0.3.28.sha256sum] = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40"
+SRC_URI[futures-channel-0.3.28.sha256sum] = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
+SRC_URI[futures-core-0.3.28.sha256sum] = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
+SRC_URI[futures-executor-0.3.28.sha256sum] = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0"
+SRC_URI[futures-io-0.3.28.sha256sum] = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
+SRC_URI[futures-macro-0.3.28.sha256sum] = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
+SRC_URI[futures-sink-0.3.28.sha256sum] = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
+SRC_URI[futures-task-0.3.28.sha256sum] = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
+SRC_URI[futures-util-0.3.28.sha256sum] = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
+SRC_URI[generic-array-0.14.7.sha256sum] = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
+SRC_URI[getrandom-0.2.10.sha256sum] = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
+SRC_URI[hashbrown-0.12.3.sha256sum] = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+SRC_URI[hashbrown-0.14.0.sha256sum] = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a"
+SRC_URI[heck-0.4.1.sha256sum] = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+SRC_URI[hermit-abi-0.3.2.sha256sum] = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
+SRC_URI[humantime-2.1.0.sha256sum] = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+SRC_URI[indexmap-2.0.0.sha256sum] = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d"
+SRC_URI[instant-0.1.12.sha256sum] = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+SRC_URI[io-lifetimes-1.0.11.sha256sum] = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
+SRC_URI[is-terminal-0.4.9.sha256sum] = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
+SRC_URI[itoa-1.0.8.sha256sum] = "62b02a5381cc465bd3041d84623d0fa3b66738b52b8e2fc3bab8ad63ab032f4a"
+SRC_URI[json5-0.4.1.sha256sum] = "96b0db21af676c1ce64250b5f40f3ce2cf27e4e47cb91ed91eb6fe9350b430c1"
+SRC_URI[lazy_static-1.4.0.sha256sum] = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+SRC_URI[libc-0.2.147.sha256sum] = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
+SRC_URI[linked-hash-map-0.5.6.sha256sum] = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
+SRC_URI[linux-raw-sys-0.3.8.sha256sum] = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
+SRC_URI[linux-raw-sys-0.4.3.sha256sum] = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0"
+SRC_URI[log-0.4.19.sha256sum] = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4"
+SRC_URI[memchr-2.5.0.sha256sum] = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+SRC_URI[minimal-lexical-0.2.1.sha256sum] = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+SRC_URI[nom-7.1.3.sha256sum] = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
+SRC_URI[num_cpus-1.16.0.sha256sum] = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
+SRC_URI[once_cell-1.18.0.sha256sum] = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+SRC_URI[ordered-multimap-0.4.3.sha256sum] = "ccd746e37177e1711c20dd619a1620f34f5c8b569c53590a72dedd5344d8924a"
+SRC_URI[pathdiff-0.2.1.sha256sum] = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd"
+SRC_URI[pest-2.7.1.sha256sum] = "0d2d1d55045829d65aad9d389139882ad623b33b904e7c9f1b10c5b8927298e5"
+SRC_URI[pest_derive-2.7.0.sha256sum] = "aef623c9bbfa0eedf5a0efba11a5ee83209c326653ca31ff019bec3a95bfff2b"
+SRC_URI[pest_generator-2.7.0.sha256sum] = "b3e8cba4ec22bada7fc55ffe51e2deb6a0e0db2d0b7ab0b103acc80d2510c190"
+SRC_URI[pest_meta-2.7.0.sha256sum] = "a01f71cb40bd8bb94232df14b946909e14660e33fc05db3e50ae2a82d7ea0ca0"
+SRC_URI[pin-project-lite-0.2.10.sha256sum] = "4c40d25201921e5ff0c862a505c6557ea88568a4e3ace775ab55e93f2f4f9d57"
+SRC_URI[pin-utils-0.1.0.sha256sum] = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+SRC_URI[proc-macro2-1.0.63.sha256sum] = "7b368fba921b0dce7e60f5e04ec15e565b3303972b42bcfde1d0713b881959eb"
+SRC_URI[quote-1.0.29.sha256sum] = "573015e8ab27661678357f27dc26460738fd2b6c86e46f386fde94cb5d913105"
+SRC_URI[redox_syscall-0.3.5.sha256sum] = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
+SRC_URI[regex-1.9.1.sha256sum] = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575"
+SRC_URI[regex-automata-0.3.2.sha256sum] = "83d3daa6976cffb758ec878f108ba0e062a45b2d6ca3a2cca965338855476caf"
+SRC_URI[regex-syntax-0.7.4.sha256sum] = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2"
+SRC_URI[ron-0.7.1.sha256sum] = "88073939a61e5b7680558e6be56b419e208420c2adb92be54921fa6b72283f1a"
+SRC_URI[rust-ini-0.18.0.sha256sum] = "f6d5f2436026b4f6e79dc829837d467cc7e9a55ee40e750d716713540715a2df"
+SRC_URI[rustix-0.37.23.sha256sum] = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06"
+SRC_URI[rustix-0.38.3.sha256sum] = "ac5ffa1efe7548069688cd7028f32591853cd7b5b756d41bcffd2353e4fc75b4"
+SRC_URI[ryu-1.0.15.sha256sum] = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
+SRC_URI[serde-1.0.168.sha256sum] = "d614f89548720367ded108b3c843be93f3a341e22d5674ca0dd5cd57f34926af"
+SRC_URI[serde_derive-1.0.168.sha256sum] = "d4fe589678c688e44177da4f27152ee2d190757271dc7f1d5b6b9f68d869d641"
+SRC_URI[serde_json-1.0.100.sha256sum] = "0f1e14e89be7aa4c4b78bdbdc9eb5bf8517829a600ae8eaa39a6e1d960b5185c"
+SRC_URI[serde_yaml-0.9.22.sha256sum] = "452e67b9c20c37fa79df53201dc03839651086ed9bbe92b3ca585ca9fdaa7d85"
+SRC_URI[sha2-0.10.7.sha256sum] = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8"
+SRC_URI[slab-0.4.8.sha256sum] = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d"
+SRC_URI[strsim-0.10.0.sha256sum] = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+SRC_URI[syn-2.0.23.sha256sum] = "59fb7d6d8281a51045d62b8eb3a7d1ce347b76f312af50cd3dc0af39c87c1737"
+SRC_URI[tempfile-3.6.0.sha256sum] = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6"
+SRC_URI[termcolor-1.2.0.sha256sum] = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
+SRC_URI[thiserror-1.0.41.sha256sum] = "c16a64ba9387ef3fdae4f9c1a7f07a0997fce91985c0336f1ddc1822b3b37802"
+SRC_URI[thiserror-impl-1.0.41.sha256sum] = "d14928354b01c4d6a4f0e549069adef399a284e7995c7ccca94e8a07a5346c59"
+SRC_URI[toml-0.5.11.sha256sum] = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
+SRC_URI[typenum-1.16.0.sha256sum] = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
+SRC_URI[ucd-trie-0.1.6.sha256sum] = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9"
+SRC_URI[unicode-ident-1.0.11.sha256sum] = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
+SRC_URI[unsafe-libyaml-0.2.8.sha256sum] = "1865806a559042e51ab5414598446a5871b561d21b6764f2eabb0dd481d880a6"
+SRC_URI[utf8parse-0.2.1.sha256sum] = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
+SRC_URI[version_check-0.9.4.sha256sum] = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+SRC_URI[vhost-0.8.0.sha256sum] = "73832f4d8d636d63d9b145e8ef22a2c50b93f4d24eb7a99c9e6781b1b08549cf"
+SRC_URI[vhost-user-backend-0.10.0.sha256sum] = "e3ea9d5e8ec847cde4df1c04e586698a479706fd6beca37323f9d425b24b4c2f"
+SRC_URI[virtio-bindings-0.2.1.sha256sum] = "c18d7b74098a946470ea265b5bacbbf877abc3373021388454de0d47735a5b98"
+SRC_URI[virtio-queue-0.9.0.sha256sum] = "35aca00da06841bd99162c381ec65893cace23ca0fb89254302cfe4bec4c300f"
+SRC_URI[virtio-vsock-0.3.1.sha256sum] = "c92d1d0c0db339e03dc275e86e5de2654ed94b351f02d405a3a0260dfc1b839f"
+SRC_URI[vm-memory-0.12.0.sha256sum] = "a77c7a0891cbac53618f5f6eec650ed1dc4f7e506bbe14877aff49d94b8408b0"
+SRC_URI[vmm-sys-util-0.11.1.sha256sum] = "dd64fe09d8e880e600c324e7d664760a17f56e9672b7495a86381b49e4f72f46"
+SRC_URI[wasi-0.11.0+wasi-snapshot-preview1.sha256sum] = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+SRC_URI[winapi-util-0.1.5.sha256sum] = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+SRC_URI[windows-sys-0.48.0.sha256sum] = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+SRC_URI[windows-targets-0.48.1.sha256sum] = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f"
+SRC_URI[windows_aarch64_gnullvm-0.48.0.sha256sum] = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
+SRC_URI[windows_aarch64_msvc-0.48.0.sha256sum] = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
+SRC_URI[windows_i686_gnu-0.48.0.sha256sum] = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
+SRC_URI[windows_i686_msvc-0.48.0.sha256sum] = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
+SRC_URI[windows_x86_64_gnu-0.48.0.sha256sum] = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
+SRC_URI[windows_x86_64_gnullvm-0.48.0.sha256sum] = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
+SRC_URI[windows_x86_64_msvc-0.48.0.sha256sum] = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
+SRC_URI[yaml-rust-0.4.5.sha256sum] = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85"
diff --git a/recipes-extended/vhost-device/vhost-device-vsock_0.1.0.bb b/recipes-extended/vhost-device/vhost-device-vsock_0.1.0.bb
new file mode 100644
index 00000000..12ef88f5
--- /dev/null
+++ b/recipes-extended/vhost-device/vhost-device-vsock_0.1.0.bb
@@ -0,0 +1,16 @@
+SUMMARY = "vhost vsock backend device"
+DESCRIPTION = "A vhost-user backend that emulates a VirtIO socket device"
+HOMEPAGE = "https://github.com/rust-vmm/vhost-device"
+LICENSE = "Apache-2.0 | BSD-3-Clause"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE-APACHE;md5=3b83ef96387f14655fc854ddc3c6bd57 \
+ file://LICENSE-BSD-3-Clause;md5=2489db1359f496fff34bd393df63947e \
+"
+
+SRC_URI += "crate://crates.io/vhost-device-vsock/0.1.0"
+SRC_URI[vhost-device-vsock-0.1.0.sha256sum] = "b1b22596359e46c3986574707a0f616c6e200a6751adeaa353db8cfdbc0472f6"
+
+inherit cargo
+inherit cargo-update-recipe-crates
+
+include vhost-device-vsock-crates.inc
diff --git a/recipes-extended/virt-manager/virt-manager/0001-setup.py-move-global-args-to-install-args.patch b/recipes-extended/virt-manager/virt-manager/0001-setup.py-move-global-args-to-install-args.patch
new file mode 100644
index 00000000..f0bbf73b
--- /dev/null
+++ b/recipes-extended/virt-manager/virt-manager/0001-setup.py-move-global-args-to-install-args.patch
@@ -0,0 +1,78 @@
+From bcdb3555b924573e85039b54d63d6173ad99b846 Mon Sep 17 00:00:00 2001
+From: Paul Le Guen de Kerneizon <paul.leguendekerneizon@savoirfairelinux.com>
+Date: Wed, 28 Feb 2024 10:24:00 +0100
+Subject: [PATCH] setup.py: move global args to install args
+
+Presently, during the installation process, global arguments such as
+`no-update-icon-cache` and `no-compile-schemas` are utilized to
+prevent the installation of specific graphical components. These
+arguments are essential, for instance, when installing virt-manager
+without any GUI dependencies on the target system. However, these
+global arguments must be set before the install command, yet they only
+take effect during the execution of the command.
+
+Since the Yocto `setuptools3_legacy` class parses arguments after the
+command, this commit aims to make these arguments applicable locally to
+the install command.
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Paul Le Guen de Kerneizon <paul.leguendekerneizon@savoirfairelinux.com>
+---
+ setup.py | 20 ++++++++++++--------
+ 1 file changed, 12 insertions(+), 8 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index cd6cd83e..faca546a 100755
+--- a/setup.py
++++ b/setup.py
+@@ -242,6 +242,16 @@ class my_egg_info(setuptools.command.install_egg_info.install_egg_info):
+
+
+ class my_install(setuptools.command.install.install):
++ setuptools.command.install.install.user_options += [
++ ("no-update-icon-cache", None, "Don't run gtk-update-icon-cache"),
++ ("no-compile-schemas", None, "Don't compile gsettings schemas"),
++ ]
++
++ def initialize_options(self):
++ setuptools.command.install.install.initialize_options(self)
++ self.no_update_icon_cache = None
++ self.no_compile_schemas = None
++
+ """
+ Error if we weren't 'configure'd with the correct install prefix
+ """
+@@ -266,12 +276,12 @@ class my_install(setuptools.command.install.install):
+ def run(self):
+ setuptools.command.install.install.run(self)
+
+- if not self.distribution.no_update_icon_cache:
++ if not self.no_update_icon_cache:
+ print("running gtk-update-icon-cache")
+ icon_path = os.path.join(self.install_data, "share/icons/hicolor")
+ self.spawn(["gtk-update-icon-cache", "-q", "-t", icon_path])
+
+- if not self.distribution.no_compile_schemas:
++ if not self.no_compile_schemas:
+ print("compiling gsettings schemas")
+ gschema_install = os.path.join(self.install_data,
+ "share/glib-2.0/schemas")
+@@ -421,14 +431,8 @@ class CheckPylint(setuptools.Command):
+
+
+ class VMMDistribution(setuptools.dist.Distribution):
+- global_options = setuptools.dist.Distribution.global_options + [
+- ("no-update-icon-cache", None, "Don't run gtk-update-icon-cache"),
+- ("no-compile-schemas", None, "Don't compile gsettings schemas"),
+- ]
+
+ def __init__(self, *args, **kwargs):
+- self.no_update_icon_cache = False
+- self.no_compile_schemas = False
+ setuptools.dist.Distribution.__init__(self, *args, **kwargs)
+
+
+--
+2.34.1
+
diff --git a/recipes-extended/virt-manager/virt-manager_4.1.0.bb b/recipes-extended/virt-manager/virt-manager_4.1.0.bb
new file mode 100644
index 00000000..a2395012
--- /dev/null
+++ b/recipes-extended/virt-manager/virt-manager_4.1.0.bb
@@ -0,0 +1,54 @@
+DESCRIPTION = "virt-manager is a graphical tool for managing virtual machines via libvirt"
+HOMEPAGE = "https://virt-manager.org/"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+DEPENDS += "python3-docutils-native"
+SRCREV = "6710ca6969b7d9c4e8344acd0fe3d50b24adc8ec"
+
+SRC_URI = " \
+ git://github.com/virt-manager/virt-manager;branch=main;protocol=https \
+ file://0001-setup.py-move-global-args-to-install-args.patch \
+"
+
+S = "${WORKDIR}/git"
+
+PACKAGECONFIG ??= "gui"
+PACKAGECONFIG[gui] = ",--no-update-icon-cache --no-compile-schemas,python3-pygobject"
+
+inherit ${@bb.utils.contains('PACKAGECONFIG', 'gui', 'gtk-icon-cache', '', d)}
+inherit bash-completion gettext pkgconfig setuptools3_legacy
+
+PACKAGES += " \
+ ${PN}-common \
+ ${PN}-install \
+"
+
+RDEPENDS:${PN}-common += " \
+ libvirt-python \
+ libosinfo \
+"
+
+RDEPENDS:${PN} = "${PN}-common"
+RDEPENDS:${PN}-install = "${PN}-common"
+
+SETUPTOOLS_INSTALL_ARGS += "${PACKAGECONFIG_CONFARGS}"
+
+FILES:${PN} = " \
+ ${bindir}/virt-manager \
+ ${datadir}/icons/* \
+"
+
+FILES:${PN}-common = " \
+ ${libdir}/* \
+ ${libdir}/python3.10/* \
+ ${datadir}/applications \
+ ${datadir}/virt-manager \
+ ${datadir}/glib-2.0/* \
+ ${datadir}/metainfo/* \
+"
+
+FILES:${PN}-install = " \
+ ${bindir}/virt-clone \
+ ${bindir}/virt-install \
+ ${bindir}/virt-xml \
+"
diff --git a/recipes-extended/virt-viewer/virt-viewer_11.0.bb b/recipes-extended/virt-viewer/virt-viewer_11.0.bb
new file mode 100644
index 00000000..273e1fc5
--- /dev/null
+++ b/recipes-extended/virt-viewer/virt-viewer_11.0.bb
@@ -0,0 +1,38 @@
+SUMMARY = "Virtual Machine Viewer"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+
+# for ovirt support librest-0.7 and libgovirt would be needed
+DEPENDS = " \
+ desktop-file-utils-native \
+ glib-2.0 \
+ gtk+3 \
+ libxml2 \
+"
+
+SRC_URI = "git://gitlab.com/virt-viewer/virt-viewer.git;protocol=https;branch=master"
+
+SRCREV = "de864c14146c120b46d435949b1d8d0b11e57b85"
+PV = "11.0+git"
+S = "${WORKDIR}/git"
+
+REQUIRED_DISTRO_FEATURES = "opengl"
+
+PACKAGECONFIG ?= "libvirt spice vte"
+
+PACKAGECONFIG[libvirt] = "-Dlibvirt=enabled,-Dlibvirt=disabled,libvirt libvirt-glib"
+PACKAGECONFIG[spice] = "-Dspice=enabled,-Dspice=disabled,spice-gtk spice-protocol"
+PACKAGECONFIG[vnc] = "-Dvnc=enabled,-Dvnc=disabled,gtk-vnc"
+PACKAGECONFIG[vte] = "-Dvte=enabled,-Dvte=disabled,vte"
+
+inherit meson pkgconfig gtk-icon-cache mime mime-xdg gobject-introspection features_check
+
+FILES:${PN} += "${datadir}"
+GIR_MESON_OPTION = ''
+
+do_compile:append() {
+ # glib-mkenums is embedding full paths into this file. There's no
+ # option to it to use a sysroot style variable. So to avoid QA
+ # errors, we sed WORKDIR out and make its includes relative
+ sed -i "s,${WORKDIR}/build/,," src/virt-viewer-enums.c
+}
diff --git a/recipes-extended/virt-what/virt-what_1.21.bb b/recipes-extended/virt-what/virt-what_1.21.bb
new file mode 100644
index 00000000..aa235b32
--- /dev/null
+++ b/recipes-extended/virt-what/virt-what_1.21.bb
@@ -0,0 +1,11 @@
+SUMMARY = "Detect if we are running in a virtual machine"
+HOMEPAGE = "https://people.redhat.com/~rjones/virt-what/"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "https://people.redhat.com/~rjones/virt-what/files/${BP}.tar.gz"
+SRC_URI[sha256sum] = "12cb455334aa4cfd53ab78f27e2252e94d1f676dd093f48327ed94d8080d1f7b"
+
+DEPENDS = "perl-native"
+
+inherit autotools
diff --git a/recipes-extended/virtiofsd/README.md b/recipes-extended/virtiofsd/README.md
new file mode 100644
index 00000000..4bd96a0a
--- /dev/null
+++ b/recipes-extended/virtiofsd/README.md
@@ -0,0 +1,14 @@
+# virtiofsd: A virtio-fs vhost-user daemon
+
+[virtiofsd](https://gitlab.com/virtio-fs/virtiofsd) implements the
+[vhost-user protocol](https://qemu-project.gitlab.io/qemu/interop/vhost-user.html)
+and provides a virtio-fs virtio device that can share host directories with
+guests.
+
+## Updating the recipe
+
+1. Bump the version number to the newly published version listed on crates.io
+2. Regenerate the .inc file that lists the dependencies:
+ `bitbake -c update_crates virtiofsd`
+3. Review, build and test the changes
+
diff --git a/recipes-extended/virtiofsd/virtiofsd-crates.inc b/recipes-extended/virtiofsd/virtiofsd-crates.inc
new file mode 100644
index 00000000..c33e9a57
--- /dev/null
+++ b/recipes-extended/virtiofsd/virtiofsd-crates.inc
@@ -0,0 +1,142 @@
+# Autogenerated with 'bitbake -c update_crates virtiofsd'
+
+# from Cargo.lock
+SRC_URI += " \
+ crate://crates.io/aho-corasick/0.7.18 \
+ crate://crates.io/ansi_term/0.12.1 \
+ crate://crates.io/arc-swap/1.5.0 \
+ crate://crates.io/atty/0.2.14 \
+ crate://crates.io/autocfg/1.1.0 \
+ crate://crates.io/bitflags/1.3.2 \
+ crate://crates.io/capng/0.2.2 \
+ crate://crates.io/cfg-if/1.0.0 \
+ crate://crates.io/clap/2.34.0 \
+ crate://crates.io/env_logger/0.8.4 \
+ crate://crates.io/error-chain/0.12.4 \
+ crate://crates.io/futures/0.3.21 \
+ crate://crates.io/futures-channel/0.3.21 \
+ crate://crates.io/futures-core/0.3.21 \
+ crate://crates.io/futures-executor/0.3.21 \
+ crate://crates.io/futures-io/0.3.21 \
+ crate://crates.io/futures-macro/0.3.21 \
+ crate://crates.io/futures-sink/0.3.21 \
+ crate://crates.io/futures-task/0.3.21 \
+ crate://crates.io/futures-util/0.3.21 \
+ crate://crates.io/heck/0.3.3 \
+ crate://crates.io/hermit-abi/0.1.19 \
+ crate://crates.io/hostname/0.3.1 \
+ crate://crates.io/humantime/2.1.0 \
+ crate://crates.io/itoa/1.0.2 \
+ crate://crates.io/lazy_static/1.4.0 \
+ crate://crates.io/libc/0.2.139 \
+ crate://crates.io/libseccomp-sys/0.2.1 \
+ crate://crates.io/log/0.4.17 \
+ crate://crates.io/match_cfg/0.1.0 \
+ crate://crates.io/memchr/2.5.0 \
+ crate://crates.io/num_cpus/1.13.1 \
+ crate://crates.io/num_threads/0.1.6 \
+ crate://crates.io/pin-project-lite/0.2.9 \
+ crate://crates.io/pin-utils/0.1.0 \
+ crate://crates.io/proc-macro-error/1.0.4 \
+ crate://crates.io/proc-macro-error-attr/1.0.4 \
+ crate://crates.io/proc-macro2/1.0.63 \
+ crate://crates.io/quote/1.0.29 \
+ crate://crates.io/regex/1.6.0 \
+ crate://crates.io/regex-syntax/0.6.27 \
+ crate://crates.io/slab/0.4.7 \
+ crate://crates.io/strsim/0.8.0 \
+ crate://crates.io/structopt/0.3.26 \
+ crate://crates.io/structopt-derive/0.4.18 \
+ crate://crates.io/syn/1.0.98 \
+ crate://crates.io/syn/2.0.23 \
+ crate://crates.io/syslog/6.0.1 \
+ crate://crates.io/termcolor/1.1.3 \
+ crate://crates.io/textwrap/0.11.0 \
+ crate://crates.io/thiserror/1.0.41 \
+ crate://crates.io/thiserror-impl/1.0.41 \
+ crate://crates.io/time/0.3.11 \
+ crate://crates.io/unicode-ident/1.0.2 \
+ crate://crates.io/unicode-segmentation/1.9.0 \
+ crate://crates.io/unicode-width/0.1.9 \
+ crate://crates.io/vec_map/0.8.2 \
+ crate://crates.io/version_check/0.9.4 \
+ crate://crates.io/vhost/0.8.1 \
+ crate://crates.io/vhost-user-backend/0.10.0 \
+ crate://crates.io/virtio-bindings/0.2.1 \
+ crate://crates.io/virtio-queue/0.9.0 \
+ crate://crates.io/vm-memory/0.12.0 \
+ crate://crates.io/vmm-sys-util/0.11.1 \
+ crate://crates.io/winapi/0.3.9 \
+ crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
+ crate://crates.io/winapi-util/0.1.5 \
+ crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
+"
+
+SRC_URI[aho-corasick-0.7.18.sha256sum] = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
+SRC_URI[ansi_term-0.12.1.sha256sum] = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
+SRC_URI[arc-swap-1.5.0.sha256sum] = "c5d78ce20460b82d3fa150275ed9d55e21064fc7951177baacf86a145c4a4b1f"
+SRC_URI[atty-0.2.14.sha256sum] = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+SRC_URI[capng-0.2.2.sha256sum] = "f6f8e9448233603643e42606121d95f5f8d4e015b3e7619a51593864dd902575"
+SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+SRC_URI[clap-2.34.0.sha256sum] = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
+SRC_URI[env_logger-0.8.4.sha256sum] = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3"
+SRC_URI[error-chain-0.12.4.sha256sum] = "2d2f06b9cac1506ece98fe3231e3cc9c4410ec3d5b1f24ae1c8946f0742cdefc"
+SRC_URI[futures-0.3.21.sha256sum] = "f73fe65f54d1e12b726f517d3e2135ca3125a437b6d998caf1962961f7172d9e"
+SRC_URI[futures-channel-0.3.21.sha256sum] = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010"
+SRC_URI[futures-core-0.3.21.sha256sum] = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3"
+SRC_URI[futures-executor-0.3.21.sha256sum] = "9420b90cfa29e327d0429f19be13e7ddb68fa1cccb09d65e5706b8c7a749b8a6"
+SRC_URI[futures-io-0.3.21.sha256sum] = "fc4045962a5a5e935ee2fdedaa4e08284547402885ab326734432bed5d12966b"
+SRC_URI[futures-macro-0.3.21.sha256sum] = "33c1e13800337f4d4d7a316bf45a567dbcb6ffe087f16424852d97e97a91f512"
+SRC_URI[futures-sink-0.3.21.sha256sum] = "21163e139fa306126e6eedaf49ecdb4588f939600f0b1e770f4205ee4b7fa868"
+SRC_URI[futures-task-0.3.21.sha256sum] = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a"
+SRC_URI[futures-util-0.3.21.sha256sum] = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a"
+SRC_URI[heck-0.3.3.sha256sum] = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
+SRC_URI[hermit-abi-0.1.19.sha256sum] = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+SRC_URI[hostname-0.3.1.sha256sum] = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867"
+SRC_URI[humantime-2.1.0.sha256sum] = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+SRC_URI[itoa-1.0.2.sha256sum] = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d"
+SRC_URI[lazy_static-1.4.0.sha256sum] = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+SRC_URI[libc-0.2.139.sha256sum] = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79"
+SRC_URI[libseccomp-sys-0.2.1.sha256sum] = "9a7cbbd4ad467251987c6e5b47d53b11a5a05add08f2447a9e2d70aef1e0d138"
+SRC_URI[log-0.4.17.sha256sum] = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
+SRC_URI[match_cfg-0.1.0.sha256sum] = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4"
+SRC_URI[memchr-2.5.0.sha256sum] = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+SRC_URI[num_cpus-1.13.1.sha256sum] = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1"
+SRC_URI[num_threads-0.1.6.sha256sum] = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44"
+SRC_URI[pin-project-lite-0.2.9.sha256sum] = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
+SRC_URI[pin-utils-0.1.0.sha256sum] = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+SRC_URI[proc-macro-error-1.0.4.sha256sum] = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
+SRC_URI[proc-macro-error-attr-1.0.4.sha256sum] = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
+SRC_URI[proc-macro2-1.0.63.sha256sum] = "7b368fba921b0dce7e60f5e04ec15e565b3303972b42bcfde1d0713b881959eb"
+SRC_URI[quote-1.0.29.sha256sum] = "573015e8ab27661678357f27dc26460738fd2b6c86e46f386fde94cb5d913105"
+SRC_URI[regex-1.6.0.sha256sum] = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b"
+SRC_URI[regex-syntax-0.6.27.sha256sum] = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244"
+SRC_URI[slab-0.4.7.sha256sum] = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef"
+SRC_URI[strsim-0.8.0.sha256sum] = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
+SRC_URI[structopt-0.3.26.sha256sum] = "0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10"
+SRC_URI[structopt-derive-0.4.18.sha256sum] = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0"
+SRC_URI[syn-1.0.98.sha256sum] = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd"
+SRC_URI[syn-2.0.23.sha256sum] = "59fb7d6d8281a51045d62b8eb3a7d1ce347b76f312af50cd3dc0af39c87c1737"
+SRC_URI[syslog-6.0.1.sha256sum] = "978044cc68150ad5e40083c9f6a725e6fd02d7ba1bcf691ec2ff0d66c0b41acc"
+SRC_URI[termcolor-1.1.3.sha256sum] = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
+SRC_URI[textwrap-0.11.0.sha256sum] = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
+SRC_URI[thiserror-1.0.41.sha256sum] = "c16a64ba9387ef3fdae4f9c1a7f07a0997fce91985c0336f1ddc1822b3b37802"
+SRC_URI[thiserror-impl-1.0.41.sha256sum] = "d14928354b01c4d6a4f0e549069adef399a284e7995c7ccca94e8a07a5346c59"
+SRC_URI[time-0.3.11.sha256sum] = "72c91f41dcb2f096c05f0873d667dceec1087ce5bcf984ec8ffb19acddbb3217"
+SRC_URI[unicode-ident-1.0.2.sha256sum] = "15c61ba63f9235225a22310255a29b806b907c9b8c964bcbd0a2c70f3f2deea7"
+SRC_URI[unicode-segmentation-1.9.0.sha256sum] = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99"
+SRC_URI[unicode-width-0.1.9.sha256sum] = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973"
+SRC_URI[vec_map-0.8.2.sha256sum] = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
+SRC_URI[version_check-0.9.4.sha256sum] = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+SRC_URI[vhost-0.8.1.sha256sum] = "61957aeb36daf0b00b87fff9c10dd28a161bd35ab157553d340d183b3d8756e6"
+SRC_URI[vhost-user-backend-0.10.0.sha256sum] = "e3ea9d5e8ec847cde4df1c04e586698a479706fd6beca37323f9d425b24b4c2f"
+SRC_URI[virtio-bindings-0.2.1.sha256sum] = "c18d7b74098a946470ea265b5bacbbf877abc3373021388454de0d47735a5b98"
+SRC_URI[virtio-queue-0.9.0.sha256sum] = "35aca00da06841bd99162c381ec65893cace23ca0fb89254302cfe4bec4c300f"
+SRC_URI[vm-memory-0.12.0.sha256sum] = "a77c7a0891cbac53618f5f6eec650ed1dc4f7e506bbe14877aff49d94b8408b0"
+SRC_URI[vmm-sys-util-0.11.1.sha256sum] = "dd64fe09d8e880e600c324e7d664760a17f56e9672b7495a86381b49e4f72f46"
+SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+SRC_URI[winapi-util-0.1.5.sha256sum] = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
diff --git a/recipes-extended/virtiofsd/virtiofsd_1.7.0.bb b/recipes-extended/virtiofsd/virtiofsd_1.7.0.bb
new file mode 100644
index 00000000..b8a93820
--- /dev/null
+++ b/recipes-extended/virtiofsd/virtiofsd_1.7.0.bb
@@ -0,0 +1,21 @@
+SUMMARY = "virtio-fs vhost-user daemon"
+DESCRIPTION = "A daemon that allows sharing of folders with a VM via virtio-fs"
+HOMEPAGE = "https://gitlab.com/virtio-fs/virtiofsd"
+LICENSE = "Apache-2.0 | BSD-3-Clause"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE-APACHE;md5=3b83ef96387f14655fc854ddc3c6bd57 \
+ file://LICENSE-BSD-3-Clause;md5=b1ed361f9fc790c1054d81a7ef041a34 \
+"
+
+DEPENDS = "libseccomp libcap-ng"
+
+inherit features_check
+REQUIRED_DISTRO_FEATURES = "seccomp"
+
+SRC_URI += "crate://crates.io/virtiofsd/1.7.0"
+SRC_URI[virtiofsd-1.7.0.sha256sum] = "6f043afa23aedbb18f36084b9df831796a9e4c62e73a16fe557de0cf30d7708d"
+
+inherit cargo
+inherit cargo-update-recipe-crates
+
+include virtiofsd-crates.inc
diff --git a/recipes-extended/xen/README b/recipes-extended/xen/README
index 34e79774..b9117f0c 100644
--- a/recipes-extended/xen/README
+++ b/recipes-extended/xen/README
@@ -25,6 +25,9 @@ Select the config settings that you want and Save the file. If you save it to
the default ".config" file when prompted by menuconfig, you can find it in the
'xen' subdirectory of the build tree.
+Configuration fragments are also supported. To use them you need to list the
+.cfg files in the SRC_URI.
+
security patches
----------------
@@ -33,3 +36,53 @@ as XSAs (http://xenbits.xen.org/xsa/). The easiest way to include those is to
drop patches in 'recipes-extened/xen/files' and create a bbappend adding those
patches to SRC_URI and they will be applied. Alternatively, you can override
the SRC_URI to a git repo you provide that contains the patches.
+
+recipe maintenance
+------------------
+
+# Xen version update
+
+The following rules shall be followed to define which versions of Xen have
+recipes in meta-virtualization:
+
+- Before a Yocto release meta-virtualization shall have recipes for:
+ - the latest stable major version of Xen, and
+
+ - the current version of the Xen master branch (known as the git recipes)
+
+ - In addition, there may also be recipes included for the previous stable
+ major version of Xen, in the case where the latest stable major version
+ is new and the prior stable major version of Xen is to be the preferred
+ version for the Yocto release
+
+- On Yocto LTS and the latest stable Yocto release branch, the preferred Xen
+ major version that is present when the Yocto release is issued must stay
+ supported and the recipes shall be regularly updated to follow updates
+ available in the Xen stable branch for that Xen major release.
+
+- On Yocto LTS and the latest stable Yocto release branch, the recipes for the
+ latest Xen major version shall also be regularly updated to follow updates
+ available in the Xen stable branch for that Xen major release.
+
+- On the master / in-development Yocto branch, new Xen recipes shall be added
+ when there is a new Xen major release.
+
+ - depending on the timing of the next Yocto release, the new recipes may
+ be preferred, or the prior major version recipes may remain preferred
+ until after the Yocto release
+
+ - the recipes for the previous Xen stable major version shall be removed
+ from the branch when it is no longer the preferred Xen version
+
+- On Yocto LTS and the latest stable Yocto release branch, new Xen recipes
+ shall be added when there is a new Xen major release.
+
+ - The preferred version of the Xen recipes shall always stay at the same
+ Xen major version once a Yocto release has been issued, and shall receive
+ regular updates to track the stable Xen branch of that Xen release.
+
+ - When new Xen recipes are added to a Yocto branch for a new Xen major
+ version, then any older Xen recipes present, except for the original
+ preferred version recipes, shall be marked as not updated anymore by
+ adding a comment inside the recipes. The older recipes will not receive
+ any build tests or be updated to follow the Xen branch.
diff --git a/recipes-extended/xen/files/0001-menuconfig-mconf-cfg-Allow-specification-of-ncurses-location.patch b/recipes-extended/xen/files/0001-menuconfig-mconf-cfg-Allow-specification-of-ncurses-location.patch
new file mode 100644
index 00000000..b8711756
--- /dev/null
+++ b/recipes-extended/xen/files/0001-menuconfig-mconf-cfg-Allow-specification-of-ncurses-location.patch
@@ -0,0 +1,57 @@
+From b300c18ab899b3c899e5405c96c20a32e51d77c8 Mon Sep 17 00:00:00 2001
+From: Bruce Ashfield <bruce.ashfield@windriver.com>
+Date: Mon, 2 Jul 2018 23:10:28 -0400
+Subject: [PATCH] xen: Fix menuconfig and add support for config fragments and
+
+Upstream-Status: Inappropriate [oe specific, cross compile issue]
+
+Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
+commit e6972e689a980ab28637e94e48c77eeace6abde5
+
+ xen/kconfig,menuconfig,mconf-cfg: Allow specification of ncurses location
+
+ In some cross build environments such as the Yocto Project build
+ environment it provides an ncurses library that is compiled
+ differently than the host's version. This causes display corruption
+ problems when the host's curses includes are used instead of the
+ includes from the provided compiler are overridden. There is a second
+ case where there is no curses libraries at all on the host system and
+ menuconfig will just fail entirely.
+
+ The solution is simply to allow an override variable in
+ check-lxdialog.sh for environments such as the Yocto Project. Adding
+ a CROSS_CURSES_LIB and CROSS_CURSES_INC solves the issue and allowing
+ compiling and linking against the right headers and libraries.
+
+ Change-Id: Ibe8dfafc90655e3be2671dbbb0cb7f5631fc4d44
+ Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
+ cc: Michal Marek <mmarek@suse.cz>
+ cc: linux-kbuild@vger.kernel.org
+ Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
+
+---
+ xen/tools/kconfig/mconf-cfg.sh | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+ mode change 100755 => 100644 xen/tools/kconfig/mconf-cfg.sh
+
+diff --git a/xen/tools/kconfig/mconf-cfg.sh b/xen/tools/kconfig/mconf-cfg.sh
+old mode 100755
+new mode 100644
+index c812872d7f..56eb4fc79f
+--- a/xen/tools/kconfig/mconf-cfg.sh
++++ b/xen/tools/kconfig/mconf-cfg.sh
+@@ -4,6 +4,14 @@
+ PKG="ncursesw"
+ PKG2="ncurses"
+
++if [ "$CROSS_CURSES_LIB" != "" ]; then
++ echo libs=\'$CROSS_CURSES_LIB\'
++ if [ x"$CROSS_CURSES_INC" != x ]; then
++ echo cflags=\'$CROSS_CURSES_INC\'
++ fi
++ exit 0
++fi
++
+ if [ -n "$(command -v pkg-config)" ]; then
+ if pkg-config --exists $PKG; then
+ echo cflags=\"$(pkg-config --cflags $PKG)\"
diff --git a/recipes-extended/xen/files/0001-python-pygrub-pass-DISTUTILS-xen-4.14.patch b/recipes-extended/xen/files/0001-python-pygrub-pass-DISTUTILS-xen-4.15.patch
index f0688fd9..476f5ddc 100644
--- a/recipes-extended/xen/files/0001-python-pygrub-pass-DISTUTILS-xen-4.14.patch
+++ b/recipes-extended/xen/files/0001-python-pygrub-pass-DISTUTILS-xen-4.15.patch
@@ -1,8 +1,11 @@
-From d79dcc2002008c58683de82f06c168d6eea57991 Mon Sep 17 00:00:00 2001
+From 6db88791d923167f160afbcadeffad84a4cbdbc5 Mon Sep 17 00:00:00 2001
+Message-Id: <6db88791d923167f160afbcadeffad84a4cbdbc5.1612262706.git.bertrand.marquis@arm.com>
From: Maciej Pijanowski <maciej.pijanowski@3mdeb.com>
Date: Fri, 19 Oct 2018 11:01:37 +0200
Subject: [PATCH] python,pygrub: pass DISTUTILS env vars as setup.py args
+Upstream-Status: Inappropriate [oe specific, python install issues]
+
Allow to respect the target install dir (PYTHON_SITEPACKAGES_DIR)
as well as other parameters set by the OpenEmbedded build system.
This is especially useful when the target libdir is not the default one
@@ -18,22 +21,32 @@ Signed-off-by: Christopher Clark <christopher.clark6@baesystems.com>
Forward-ported to Xen 4.14.0
Signed-off-by: Christopher Clark <christopher.clark6@baesystems.com>
+
+Forward-ported to Xen 4.15.0
+Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
+
+---
+ tools/pygrub/Makefile | 7 +++++--
+ tools/python/Makefile | 2 +-
+ 2 files changed, 6 insertions(+), 3 deletions(-)
+
diff --git a/tools/pygrub/Makefile b/tools/pygrub/Makefile
-index 3063c49..513314b 100644
+index 37b2146214..ffb9270065 100644
--- a/tools/pygrub/Makefile
+++ b/tools/pygrub/Makefile
-@@ -10,14 +10,17 @@ INSTALL_LOG = build/installed_files.txt
+@@ -10,7 +10,7 @@ INSTALL_LOG = build/installed_files.txt
all: build
.PHONY: build
build:
-- CC="$(CC)" CFLAGS="$(PY_CFLAGS)" LDFLAGS="$(PY_LDFLAGS)" $(PYTHON) setup.py build
-+ CC="$(CC)" CFLAGS="$(PY_CFLAGS)" LDFLAGS="$(PY_LDFLAGS)" $(PYTHON) setup.py build $(DISTUTILS_BUILD_ARGS)
+- CC="$(CC)" CFLAGS="$(PY_CFLAGS)" LDSHARED="$(CC)" LDFLAGS="$(PY_LDFLAGS)" $(PYTHON) setup.py build
++ CC="$(CC)" CFLAGS="$(PY_CFLAGS)" LDSHARED="$(CC)" LDFLAGS="$(PY_LDFLAGS)" $(PYTHON) setup.py build $(DISTUTILS_BUILD_ARGS)
.PHONY: install
install: all
- $(INSTALL_DIR) $(DESTDIR)/$(bindir)
- CC="$(CC)" CFLAGS="$(PY_CFLAGS)" LDFLAGS="$(PY_LDFLAGS)" $(PYTHON) \
- setup.py install --record $(INSTALL_LOG) $(PYTHON_PREFIX_ARG) \
+@@ -18,7 +18,10 @@ install: all
+ CC="$(CC)" CFLAGS="$(PY_CFLAGS)" LDSHARED="$(CC)" \
+ LDFLAGS="$(PY_LDFLAGS)" $(PYTHON) setup.py install \
+ --record $(INSTALL_LOG) $(PYTHON_PREFIX_ARG) \
- --root="$(DESTDIR)" --install-scripts=$(LIBEXEC_BIN) --force
+ --root="$(DESTDIR)" --install-scripts=$(LIBEXEC_BIN) --force \
+ $(DISTUTILS_INSTALL_ARGS)
@@ -43,24 +56,18 @@ index 3063c49..513314b 100644
"`readlink -f $(DESTDIR)/$(bindir)`" != \
"`readlink -f $(LIBEXEC_BIN)`" ]; then \
diff --git a/tools/python/Makefile b/tools/python/Makefile
-index 541858e..4d4a344 100644
+index cc76423647..5cb11ae453 100644
--- a/tools/python/Makefile
+++ b/tools/python/Makefile
-@@ -10,7 +10,7 @@ INSTALL_LOG = build/installed_files.txt
+@@ -12,7 +12,7 @@ setup.py = CC="$(CC)" CFLAGS="$(PY_CFLAGS)" LDSHARED="$(CC)" LDFLAGS="$(PY_LDFLA
+ SHLIB_libxenctrl="$(SHLIB_libxenctrl)" \
+ SHLIB_libxenguest="$(SHLIB_libxenguest)" \
+ SHLIB_libxenstore="$(SHLIB_libxenstore)" \
+- $(PYTHON) setup.py
++ $(PYTHON) setup.py $(DISTUTILS_BUILD_ARGS)
.PHONY: build
build:
-- CC="$(CC)" CFLAGS="$(PY_CFLAGS)" $(PYTHON) setup.py build
-+ CC="$(CC)" CFLAGS="$(PY_CFLAGS)" $(PYTHON) setup.py build $(DISTUTILS_BUILD_ARGS)
-
- .PHONY: install
- install:
-@@ -18,7 +18,7 @@ install:
-
- CC="$(CC)" CFLAGS="$(PY_CFLAGS)" LDFLAGS="$(PY_LDFLAGS)" $(PYTHON) \
- setup.py install --record $(INSTALL_LOG) $(PYTHON_PREFIX_ARG) \
-- --root="$(DESTDIR)" --force
-+ --root="$(DESTDIR)" --force $(DISTUTILS_INSTALL_ARGS)
-
- $(INSTALL_PYTHON_PROG) scripts/convert-legacy-stream $(DESTDIR)$(LIBEXEC_BIN)
- $(INSTALL_PYTHON_PROG) scripts/verify-stream-v2 $(DESTDIR)$(LIBEXEC_BIN)
+--
+2.17.1
+
diff --git a/recipes-extended/xen/files/0001-python-pygrub-pass-DISTUTILS-xen-4.18.patch b/recipes-extended/xen/files/0001-python-pygrub-pass-DISTUTILS-xen-4.18.patch
new file mode 100644
index 00000000..7ac1a399
--- /dev/null
+++ b/recipes-extended/xen/files/0001-python-pygrub-pass-DISTUTILS-xen-4.18.patch
@@ -0,0 +1,43 @@
+Upstream-Status: Pending
+
+diff --git a/tools/pygrub/Makefile b/tools/pygrub/Makefile
+index 4963bc89c6..c1c05eb421 100644
+--- a/tools/pygrub/Makefile
++++ b/tools/pygrub/Makefile
+@@ -13,14 +13,14 @@ setup.py = CC="$(CC)" CFLAGS="$(PY_CFLAGS)" LDSHARED="$(CC)" LDFLAGS="$(PY_LDFLA
+ all: build
+ .PHONY: build
+ build:
+- $(setup.py) build
++ $(setup.py) build $(DISTUTILS_BUILD_ARGS)
+
+ .PHONY: install
+ install: all
+ $(INSTALL_DIR) $(DESTDIR)/$(bindir)
+ $(INSTALL_DIR) $(DESTDIR)/$(LIBEXEC_BIN)
+ $(setup.py) install --record $(INSTALL_LOG) $(PYTHON_PREFIX_ARG) \
+- --root="$(DESTDIR)" --force
++ --root="$(DESTDIR)" --force $(DISTUTILS_INSTALL_ARGS)
+ $(INSTALL_PYTHON_PROG) src/pygrub $(DESTDIR)/$(LIBEXEC_BIN)/pygrub
+ set -e; if [ $(bindir) != $(LIBEXEC_BIN) -a \
+ "`readlink -f $(DESTDIR)/$(bindir)`" != \
+diff --git a/tools/python/Makefile b/tools/python/Makefile
+index 437431c48e..0a99c2067e 100644
+--- a/tools/python/Makefile
++++ b/tools/python/Makefile
+@@ -16,13 +16,13 @@ setup.py = CC="$(CC)" CFLAGS="$(PY_CFLAGS)" LDSHARED="$(CC)" LDFLAGS="$(PY_LDFLA
+
+ .PHONY: build
+ build:
+- $(setup.py) build
++ $(setup.py) build $(DISTUTILS_BUILD_ARGS)
+
+ .PHONY: install
+ install:
+ $(INSTALL_DIR) $(DESTDIR)$(LIBEXEC_BIN)
+ $(setup.py) install --record $(INSTALL_LOG) $(PYTHON_PREFIX_ARG) \
+- --root="$(DESTDIR)" --force
++ --root="$(DESTDIR)" --force $(DISTUTILS_INSTALL_ARGS)
+ $(INSTALL_PYTHON_PROG) scripts/convert-legacy-stream $(DESTDIR)$(LIBEXEC_BIN)
+ $(INSTALL_PYTHON_PROG) scripts/verify-stream-v2 $(DESTDIR)$(LIBEXEC_BIN)
+
diff --git a/recipes-extended/xen/files/0001-tools-xenstore-xenstored_control.c-correctly-print-t.patch b/recipes-extended/xen/files/0001-tools-xenstore-xenstored_control.c-correctly-print-t.patch
new file mode 100644
index 00000000..bf99f5e8
--- /dev/null
+++ b/recipes-extended/xen/files/0001-tools-xenstore-xenstored_control.c-correctly-print-t.patch
@@ -0,0 +1,34 @@
+From c7c43c4531fe1cd188f62d9905c3f5c7a29a6fb0 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Wed, 12 Apr 2023 10:30:18 +0200
+Subject: [PATCH] tools/xenstore/xenstored_control.c: correctly print time_t
+
+On 32 bit systems with 64 bit time_t (hello, Y2038 problem),
+the following error occurs otherwise:
+
+| xenstored_control.c: In function 'lu_reject_reason':
+| xenstored_control.c:646:70: error: format '%ld' expects argument of type 'long int', but argument 5 has type 'time_t' {aka 'long long int'} [-Werror=format=]
+
+Upstream-Status: Submitted [by email to xen-devel@lists.xenproject.org and maintainers as suggested by add_maintainers.pl script]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ tools/xenstore/xenstored_control.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/tools/xenstore/xenstored_control.c b/tools/xenstore/xenstored_control.c
+index d1aaa00bf4..8d318c0399 100644
+--- a/tools/xenstore/xenstored_control.c
++++ b/tools/xenstore/xenstored_control.c
+@@ -643,10 +643,10 @@ static const char *lu_reject_reason(const void *ctx)
+ list_for_each_entry(conn, &connections, list) {
+ if (conn->ta_start_time &&
+ (now - conn->ta_start_time >= lu_status->timeout)) {
+- ret = talloc_asprintf(ctx, "%s\nDomain %u: %ld s",
++ ret = talloc_asprintf(ctx, "%s\nDomain %u: %jd s",
+ ret ? : "Domains with long running transactions:",
+ conn->id,
+- now - conn->ta_start_time);
++ (intmax_t)now - conn->ta_start_time);
+ }
+ }
+
diff --git a/recipes-extended/xen/files/0001-xen-build-temporarily-inhibit-Werror-4.14.patch b/recipes-extended/xen/files/0001-xen-build-temporarily-inhibit-Werror-4.14.patch
deleted file mode 100644
index 0e0a3dc4..00000000
--- a/recipes-extended/xen/files/0001-xen-build-temporarily-inhibit-Werror-4.14.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 9cff3bf8425ccc593825fcde8ca5eaa32a43d04d Mon Sep 17 00:00:00 2001
-From: Bruce Ashfield <bruce.ashfield@gmail.com>
-Date: Thu, 18 Jun 2020 09:05:22 -0400
-Subject: [PATCH] xen/build: temporarily inhibit Werror
-
-Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
-Rebased on Xen 4.14:
-Signed-off-by: Christopher Clark <christopher.w.clark@gmail.com>
----
- tools/libxl/Makefile | 2 +-
- xen/Rules.mk | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/tools/libxl/Makefile b/tools/libxl/Makefile
-index 6da342ed61..c67560e269 100644
---- a/tools/libxl/Makefile
-+++ b/tools/libxl/Makefile
-@@ -11,7 +11,7 @@ MINOR = 0
- XLUMAJOR = 4.14
- XLUMINOR = 0
-
--CFLAGS += -Werror -Wno-format-zero-length -Wmissing-declarations \
-+CFLAGS += -Wno-format-zero-length -Wmissing-declarations \
- -Wno-declaration-after-statement -Wformat-nonliteral
- CFLAGS += -I. -fPIC
-
diff --git a/recipes-extended/xen/files/xen-arm64-implement-atomic-fetch-add.patch b/recipes-extended/xen/files/xen-arm64-implement-atomic-fetch-add.patch
deleted file mode 100644
index 6e957a50..00000000
--- a/recipes-extended/xen/files/xen-arm64-implement-atomic-fetch-add.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Christopher Clark <christopher.w.clark@gmail.com>
-Date: Fri, 26 June 2020 16:34:00 -0800
-Subject: [PATCH] xen: implement atomic op to fix arm64 compilation
-
-Xen's ARM implementation of arch_fetch_and_add since f9cc3cd9
-uses a builtin, despite the build being performed with -fno-builtin.
-With gcc 10.1.0, this now breaks prelinking spinlock.c, so
-implement the one atomic operation that is required with logic
-derived from Linux's atomic_ll_sc.h: ATOMIC_FETCH_OP and comparison with
-the binary produced with and without the patch with gcc 9.2.0.
-
-Signed-off-by: Christopher Clark <christopher.w.clark@gmail.com>
-diff --git a/xen/include/asm-arm/system.h b/xen/include/asm-arm/system.h
-index e5d062667d..c46dd3ac71 100644
---- a/xen/include/asm-arm/system.h
-+++ b/xen/include/asm-arm/system.h
-@@ -55,7 +55,32 @@ static inline int local_abort_is_enabled(void)
- return !(flags & PSR_ABT_MASK);
- }
-
-+#ifdef CONFIG_ARM_64
-+
-+/* see atomic_ll_sc.h: ATOMIC_FETCH_OP(name, mb, acq, rel, cl, op, asm_op, constraint) */
-+static inline int arch_fetch_and_add(unsigned int *ptr, unsigned long i)
-+{
-+ int register lptr asm("x0");
-+ int register result asm("w1");
-+ int register newval asm("w2");
-+ int register status asm("w3");
-+
-+ asm volatile(
-+ " mov %[lptr], %[ptr]\n"
-+ "1: ldxr %w[result], [%[lptr]]\n"
-+ " add %w[newval], %w[result], %w[i]\n"
-+ " stlxr %w[status], %w[newval], [%[lptr]]\n"
-+ " cbnz %w[status], 1b\n"
-+ " dmb ish\n"
-+ : [result] "=&r" (result), [lptr] "=&r" (lptr), [newval] "=&r" (newval), [status] "=&r" (status), [i] "+r" (i), "+Q" (*ptr)
-+ : [ptr] "r" (ptr), "r" (i)
-+ : "memory");
-+
-+ return result;
-+}
-+#else
- #define arch_fetch_and_add(x, v) __sync_fetch_and_add(x, v)
-+#endif
-
- extern struct vcpu *__context_switch(struct vcpu *prev, struct vcpu *next);
-
diff --git a/recipes-extended/xen/xen-blktap.inc b/recipes-extended/xen/xen-blktap.inc
index 5f385ddc..2c8cb1fd 100644
--- a/recipes-extended/xen/xen-blktap.inc
+++ b/recipes-extended/xen/xen-blktap.inc
@@ -20,45 +20,45 @@ BLKTAP_PROVIDES ?= " \
"
BLKTAP_RRECOMMENDS ?= " \
- virtual/blktap \
- virtual/libblktap \
- virtual/libblktapctl \
- virtual/libvhd \
+ virtual-blktap \
+ virtual-libblktap \
+ virtual-libblktapctl \
+ virtual-libvhd \
"
-RPROVIDES_${PN}-blktap = "virtual/blktap"
-RPROVIDES_${PN}-libblktap = "virtual/libblktap"
-RPROVIDES_${PN}-libblktapctl = "virtual/libblktapctl"
-RPROVIDES_${PN}-libvhd = "virtual/libvhd"
+RPROVIDES:${PN}-blktap = "virtual-blktap"
+RPROVIDES:${PN}-libblktap = "virtual-libblktap"
+RPROVIDES:${PN}-libblktapctl = "virtual-libblktapctl"
+RPROVIDES:${PN}-libvhd = "virtual-libvhd"
-FILES_${PN}-blktap-staticdev += "\
+FILES:${PN}-blktap-staticdev += "\
${libdir}/libblktapctl.a \
${libdir}/libvhd.a \
${libdir}/libblktap.a \
"
-FILES_${PN}-libblktapctl = "${libdir}/libblktapctl.so.*"
-FILES_${PN}-libblktapctl-dev = " \
+FILES:${PN}-libblktapctl = "${libdir}/libblktapctl.so.*"
+FILES:${PN}-libblktapctl-dev = " \
${libdir}/libblktapctl.so \
${libdir}/pkgconfig/xenblktapctl.pc \
${datadir}/pkgconfig/xenblktapctl.pc \
"
-FILES_${PN}-libvhd = "${libdir}/libvhd.so.*"
-FILES_${PN}-libvhd-dev = " \
+FILES:${PN}-libvhd = "${libdir}/libvhd.so.*"
+FILES:${PN}-libvhd-dev = " \
${libdir}/libvhd.so \
${libdir}/pkgconfig/vhd.pc \
${datadir}/pkgconfig/vhd.pc \
"
-FILES_${PN}-libblktap = "${libdir}/libblktap.so.*"
-FILES_${PN}-libblktap-dev = " \
+FILES:${PN}-libblktap = "${libdir}/libblktap.so.*"
+FILES:${PN}-libblktap-dev = " \
${libdir}/libblktap.so \
${libdir}/pkgconfig/blktap.pc \
${datadir}/pkgconfig/blktap.pc \
"
-FILES_${PN}-blktap = "\
+FILES:${PN}-blktap = "\
${sbindir}/blktapctrl \
${sbindir}/img2qcow \
${sbindir}/lock-util \
diff --git a/recipes-extended/xen/xen-hypervisor.inc b/recipes-extended/xen/xen-hypervisor.inc
index c386917d..6f3d24d0 100644
--- a/recipes-extended/xen/xen-hypervisor.inc
+++ b/recipes-extended/xen/xen-hypervisor.inc
@@ -9,7 +9,7 @@ DESCRIPTION = "The Xen hypervisor"
# The Xen hypervisor has a narrower compatible platform range than the Xen tools
COMPATIBLE_HOST = '(x86_64.*).*-linux|aarch64.*-linux|arm-.*-linux-gnueabi'
-inherit deploy python3native
+inherit deploy python3native cml1
PACKAGES = " \
${PN} \
@@ -17,7 +17,7 @@ PACKAGES = " \
${PN}-efi \
"
-FILES_${PN} = " \
+FILES:${PN} = " \
/boot/xen-* \
/boot/xen \
/boot/xen-*.gz \
@@ -25,24 +25,47 @@ FILES_${PN} = " \
/boot/xen-syms-* \
"
-FILES_${PN}-dbg += "${libdir}/debug/*"
+FILES:${PN}-dbg += "${libdir}/debug/*"
-FILES_${PN}-efi = " \
+FILES:${PN}-efi = " \
/boot/xen.efi \
${exec_prefix}/lib64/efi/xen* \
"
do_configure() {
do_configure_common
+
+ # Handle the config fragments
+ cfgs="${@' '.join(find_cfgs(d))}"
+ if [ -n "${cfgs}" ]; then
+ # If .config is not present generate one in order
+ # to use the merge_config.sh
+ if [ ! -f "${S}/xen/.config" ] ; then
+ oe_runmake -C ${S}/xen defconfig
+ fi
+ ${S}/xen/tools/kconfig/merge_config.sh -m -O \
+ ${S}/xen ${S}/xen/.config "${cfgs}"
+ fi
}
+# The hypervisor binary for arm must not be built with the hard floating point
+# ABI. Override CC and CPP when invoking make so that they do not contain
+# TUNE_CCARGS.
+EXTRA_OEMAKE:arm += "CC='${CCACHE}${HOST_PREFIX}gcc ${TOOLCHAIN_OPTIONS} \
+ ${CC_REPRODUCIBLE_OPTIONS}' \
+ CPP='${CCACHE}${HOST_PREFIX}gcc -E ${TOOLCHAIN_OPTIONS} \
+ ${CC_REPRODUCIBLE_OPTIONS}'"
+
do_compile() {
- oe_runmake xen PYTHON="${PYTHON}"
+ oe_runmake xen PYTHON="${PYTHON}" \
+ EXTRA_CFLAGS_XEN_CORE="${EXTRA_CFLAGS_XEN_CORE}"
}
do_install() {
oe_runmake DESTDIR="${D}" install-xen
}
+# The do_install also ships files in /boot and /usr/lib64
+SYSROOT_DIRS += "/boot ${exec_prefix}/lib64"
do_deploy() {
install -d ${DEPLOYDIR}
@@ -64,11 +87,13 @@ do_deploy() {
# at least run afer that task has completed
# - the hypervisor binaries may be included in the image filesystem, so we
# must ensure that the binaries deployed match what is staged in the sysroot:
-# so do deploy must run after do_populate_sysroot -- which is always after
-# do_compile, so that handles 'after do_compile' too
+# so do_deploy must run after do_populate_sysroot and after do_compile is
+# also needed for when having rm_work and bitbake needs to re-run do_deploy,
+# we ensure that the ${B} is re-generated, otherwise the deploy-xen will be
+# empty
# - add the task before do_build to ensure that deployment has completed when
# the recipe build done stamp is written
-addtask deploy after do_populate_sysroot before do_build
+addtask deploy after do_compile do_populate_sysroot before do_build
# To ensure that a deployed hypervisor has matching tools, add a dependency to
# make sure that the tools have built and been staged:
do_deploy[depends] += "xen-tools:do_populate_sysroot"
@@ -77,35 +102,16 @@ do_deploy[depends] += "xen-tools:do_populate_sysroot"
do_deploy[depends] += "xen-tools:do_deploy"
# Enable use of menuconfig directly from bitbake and also within the devshell
-OE_TERMINAL_EXPORTS += "HOST_EXTRACFLAGS HOSTLDFLAGS TERMINFO"
-HOST_EXTRACFLAGS = "${BUILD_CFLAGS} ${BUILD_LDFLAGS}"
-HOSTLDFLAGS = "${BUILD_LDFLAGS}"
-TERMINFO = "${STAGING_DATADIR_NATIVE}/terminfo"
do_devshell[depends] += "ncurses-native:do_populate_sysroot"
-KCONFIG_CONFIG_COMMAND ??= "menuconfig"
-python do_menuconfig() {
- import shutil
+# Pass the native library path for kconfig build when running the do_menuconfig
+# task
+CROSS_CURSES_LIB += "-L${STAGING_LIBDIR_NATIVE}"
- try:
- mtime = os.path.getmtime("xen/.config")
- shutil.copy("xen/.config", "xen/.config.orig")
- except OSError:
- mtime = 0
+# Specify the root dir of the .config file for do_menuconfig and do_diffconfig
+# tasks
+KCONFIG_CONFIG_ROOTDIR = "${S}/xen"
- oe_terminal("${SHELL} -c \"cd xen; XEN_CONFIG_EXPERT=y make %s; if [ \$? -ne 0 ]; then echo 'Command failed.'; printf 'Press any key to continue... '; read r; fi\"" % d.getVar('KCONFIG_CONFIG_COMMAND'),
- d.getVar('PN') + ' Configuration', d)
-
- try:
- newmtime = os.path.getmtime("xen/.config")
- except OSError:
- newmtime = 0
-
- if newmtime > mtime:
- bb.note("Configuration changed, recompile will be forced")
- bb.build.write_taint('do_compile', d)
-}
-do_menuconfig[depends] += "ncurses-native:do_populate_sysroot"
-do_menuconfig[nostamp] = "1"
-do_menuconfig[dirs] = "${B}"
-addtask menuconfig after do_configure
+# Xen is setting all CC flags on its own. Make sure that they are not modified
+# for aarch64, e.g. with architecture-specific optimizations.
+TUNE_CCARGS:aarch64=""
diff --git a/recipes-extended/xen/xen-python2.bb b/recipes-extended/xen/xen-python2.bb
deleted file mode 100644
index ad3c1fd6..00000000
--- a/recipes-extended/xen/xen-python2.bb
+++ /dev/null
@@ -1,71 +0,0 @@
-SUMMARY = "Xen hypervisor tools written in python 2"
-DESCRIPTION = "Unported utility scripts for the Xen hypervisor"
-HOMEPAGE = "http://xen.org"
-LICENSE = "GPLv2"
-SECTION = "console/tools"
-
-SRCREV ?= "a5fcafbfbee55261853fba07149c1c795f2baf58"
-
-# The same restriction as xen-tools.inc, because of the dependency on xen-tools-xentrace from xen-tools-xentrace-format
-COMPATIBLE_HOST = 'i686-.*-linux|(x86_64.*).*-linux|aarch64.*-linux|arm-.*-linux-gnueabi'
-
-XEN_REL ?= "4.12"
-XEN_BRANCH ?= "stable-4.12"
-
-SRC_URI = "git://xenbits.xen.org/xen.git;branch=${XEN_BRANCH}"
-
-LIC_FILES_CHKSUM ?= "file://COPYING;md5=bbb4b1bdc2c3b6743da3c39d03249095"
-
-PV = "${XEN_REL}+git${SRCPV}"
-
-S = "${WORKDIR}/git"
-
-# Packages in this recipe do not use ${PN} to allow for simpler
-# movement of the package back into the xen-tools recipe if/when
-# the scripts are ported to python 3.
-
-RDEPENDS_xen-tools-xencov-split ="python"
-RDEPENDS_xen-tools-xencons = "python"
-RDEPENDS_xen-tools-xenpvnetboot = "python"
-RDEPENDS_xen-tools-xentrace-format = "python"
-
-RRECOMMENDS_xen-tools-xencov-trace = "xen-tools-xencov"
-RRECOMMENDS_xen-tools-xentrace-format = "xen-tools-xentrace"
-
-PACKAGES = " \
- xen-tools-xencons \
- xen-tools-xencov-split \
- xen-tools-xenpvnetboot \
- xen-tools-xentrace-format \
- "
-
-FILES_xen-tools-xencons = " \
- ${bindir}/xencons \
- "
-
-FILES_xen-tools-xencov-split = " \
- ${bindir}/xencov_split \
- "
-
-FILES_xen-tools-xenpvnetboot = " \
- ${libdir}/xen/bin/xenpvnetboot \
- "
-
-FILES_xen-tools-xentrace-format = " \
- ${bindir}/xentrace_format \
- "
-
-do_configure[noexec] = "1"
-do_compile[noexec] = "1"
-
-do_install() {
- install -d ${D}${bindir}
- install -m 0755 ${S}/tools/xentrace/xentrace_format \
- ${D}${bindir}/xentrace_format
- install -m 0755 ${S}/tools/misc/xencons ${D}${bindir}/xencons
- install -m 0755 ${S}/tools/misc/xencov_split ${D}${bindir}/xencov_split
-
- install -d ${D}${libdir}/xen/bin
- install -m 0755 ${S}/tools/misc/xenpvnetboot \
- ${D}${libdir}/xen/bin/xenpvnetboot
-}
diff --git a/recipes-extended/xen/xen-tools.inc b/recipes-extended/xen/xen-tools.inc
index ace1a013..5f010a5d 100644
--- a/recipes-extended/xen/xen-tools.inc
+++ b/recipes-extended/xen/xen-tools.inc
@@ -6,30 +6,7 @@ COMPATIBLE_HOST = 'i686-.*-linux|(x86_64.*).*-linux|aarch64.*-linux|arm-.*-linux
inherit setuptools3 update-rc.d systemd deploy
require xen-blktap.inc
-# To build hvmloader, which is needed on x86-64 targets when 'hvm' is enabled
-# in PACKAGECONFIG, to support running HVM-mode guest VMs, some files from
-# 32-bit glibc are needed.
-# Add the multilib 32-bit glibc to DEPENDS only when necessary.
-#
-# To enable multilib, please add the following to your local.conf -:
-#
-# require conf/multilib.conf
-# MULTILIBS = "multilib:lib32"
-# DEFAULTTUNE_virtclass-multilib-lib32 = "x86"
-
-# Use this multilib prefix for x86 32-bit to match local.conf:
-MLPREFIX32 = "lib32-"
-
-# The DEPENDS on a multilib 32-bit glibc is only added when target is x86-64
-# and 'hvm' is enabled in PACKAGECONFIG.
-# This x86-64 override is never intended for native use, so clear that.
-GLIBC32 = ""
-GLIBC32_x86-64 = \
- "${@bb.utils.contains('PACKAGECONFIG', 'hvm', '${MLPREFIX32}glibc', '', d)}"
-GLIBC32_class-native = ""
-DEPENDS += "${GLIBC32}"
-
-RDEPENDS_${PN} = "\
+RDEPENDS:${PN} = "\
bash perl xz \
${PN}-console \
${PN}-libxenguest \
@@ -47,20 +24,16 @@ RDEPENDS_${PN} = "\
${PN}-xencommons \
${PN}-xendomains \
${PN}-xenstore \
- virtual/xenstored \
+ virtual-xenstored \
${PN}-xl \
"
-RDEPENDS_${PN}-dev = ""
+RDEPENDS:${PN}-dev = ""
-# Qemu is necessary on ARM platforms, and to support HVM guests on x86
-QEMU = "${@bb.utils.contains('PACKAGECONFIG', 'hvm', 'qemu', '', d)}"
-QEMU_arm = "qemu"
-QEMU_aarch64 = "qemu"
-
-RRECOMMENDS_${PN} = " \
- ${QEMU} \
- ${@bb.utils.contains('PACKAGECONFIG', 'hvm', 'seabios', '', d)} \
+RRECOMMENDS:${PN} = " \
+ qemu \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'vmsep', 'qemu-x86_64 qemu-i386', '', d)} \
+ ${@bb.utils.contains('XEN_TARGET_ARCH', 'x86_64', 'seabios ipxe vgabios', '', d)} \
${@bb.utils.contains('PACKAGECONFIG', 'externalblktap', '', '${BLKTAP_RRECOMMENDS}', d)} \
${PN}-flask \
${PN}-hvmloader \
@@ -72,87 +45,88 @@ RRECOMMENDS_${PN} = " \
${PN}-xenhypfs \
"
-RDEPENDS_${PN}-devd = " \
+RDEPENDS:${PN}-devd = " \
${PN}-xl \
"
-RDEPENDS_${PN}-fsimage = " \
+RDEPENDS:${PN}-fsimage = " \
libext2fs \
"
-RDEPENDS_${PN}-misc = " \
+RDEPENDS:${PN}-misc = " \
perl \
python3 \
${PN}-xencov \
"
-RSUGGESTS_${PN}-misc = " \
+RSUGGESTS:${PN}-misc = " \
${PN}-xencons \
${PN}-xenpvnetboot \
"
-RDEPENDS_${PN}-python = " \
+RDEPENDS:${PN}-python = " \
python3 \
"
-RDEPENDS_${PN}-pygrub = " \
+RDEPENDS:${PN}-pygrub = " \
python3 \
${PN}-python \
"
-RDEPENDS_${PN}-remus = "bash"
+RDEPENDS:${PN}-remus = "bash"
-RDEPENDS_${PN}-scripts-block = "\
+RDEPENDS:${PN}-scripts-block = "\
bash \
${PN}-scripts-common \
${PN}-volatiles \
"
-RDEPENDS_${PN}-scripts-common = "bash"
+RDEPENDS:${PN}-scripts-common = "bash"
-RDEPENDS_${PN}-scripts-network = "\
+RDEPENDS:${PN}-scripts-network = "\
bash \
bridge-utils \
${PN}-scripts-common \
${PN}-volatiles \
"
-RSUGGESTS_${PN}-scripts-network = "\
+RRECOMMENDS:${PN}-scripts-network = "\
ifupdown \
"
-RSUGGESTS_${PN}-xencov = "${PN}-xencov-split"
+RSUGGESTS:${PN}-xencov = "${PN}-xencov-split"
-RDEPENDS_${PN}-xencommons = "\
+RDEPENDS:${PN}-xencommons = "\
bash \
+ util-linux-prlimit \
${PN}-console \
${PN}-xenstore \
- virtual/xenstored \
+ virtual-xenstored \
${PN}-xl \
${PN}-scripts-common \
"
-RDEPENDS_${PN}-xendomains = "\
+RDEPENDS:${PN}-xendomains = "\
bash \
${PN}-console \
${PN}-scripts-block \
${PN}-scripts-common \
- virtual/xenstored \
+ virtual-xenstored \
"
-RDEPENDS_${PN}-xenhypfs = " \
+RDEPENDS:${PN}-xenhypfs = " \
${PN}-libxenhypfs \
"
-RDEPENDS_${PN}-xl = "libgcc"
+RDEPENDS:${PN}-xl = "libgcc"
-RDEPENDS_${PN}-xenmon = " \
+RDEPENDS:${PN}-xenmon = " \
python3 \
"
-RSUGGESTS_${PN}-xentrace = "${PN}-xentrace-format"
+RSUGGESTS:${PN}-xentrace = "${PN}-xentrace-format"
-RDEPENDS_${PN}-xen-watchdog = "bash"
+RDEPENDS:${PN}-xen-watchdog = "bash"
PACKAGES = " \
${PN} \
@@ -234,21 +208,26 @@ PACKAGES = " \
${PN}-xl-examples \
${PN}-xm \
${PN}-xm-examples \
+ ${PN}-xen-access \
+ ${PN}-xen-memshare \
+ ${PN}-test \
+ ${PN}-xen-vmtrace \
+ ${PN}-xen-mceinj \
"
PROVIDES =+ " \
- virtual/xenstored \
+ virtual-xenstored \
${@bb.utils.contains('PACKAGECONFIG', 'externalblktap', '', '${BLKTAP_PROVIDES}', d)} \
"
# There are multiple implementations of the XenStore daemon, so we use a
# virtual package to allow for substitution.
-RPROVIDES_${PN}-xenstored = "virtual/xenstored"
+RPROVIDES:${PN}-xenstored = "virtual-xenstored"
-FILES_${PN}-dbg += "\
+FILES:${PN}-dbg += "\
${libdir}/xen/bin/.debug \
- ${libdir}/${PYTHON_DIR}/site-packages/.debug \
- ${libdir}/${PYTHON_DIR}/site-packages/xen/lowlevel/.debug \
+ ${nonarch_libdir}/${PYTHON_DIR}/site-packages/.debug \
+ ${nonarch_libdir}/${PYTHON_DIR}/site-packages/xen/lowlevel/.debug \
${libdir}/fs/xfs/.debug \
${libdir}/fs/ufs/.debug \
${libdir}/fs/ext2fs-lib/.debug \
@@ -261,22 +240,22 @@ FILES_${PN}-dbg += "\
${libdir}exec/.debug \
${libdir}/xen/libexec/.debug \
${bindir}/.debug \
- ${libdir}/${PYTHON_DIR}/dist-packages/.debug \
- ${libdir}/${PYTHON_DIR}/dist-packages/xen/lowlevel/.debug \
+ ${nonarch_libdir}/${PYTHON_DIR}/dist-packages/.debug \
+ ${nonarch_libdir}/${PYTHON_DIR}/dist-packages/xen/lowlevel/.debug \
"
-FILES_${PN}-dev = "\
+FILES:${PN}-dev = "\
${includedir} \
"
-FILES_${PN}-doc = "\
+FILES:${PN}-doc = "\
${sysconfdir}/xen/README \
${sysconfdir}/xen/README.incompatibilities \
${datadir}/doc \
${datadir}/man \
"
-FILES_${PN}-staticdev += "\
+FILES:${PN}-staticdev += "\
${libdir}/libxenguest.a \
${libdir}/libxenlight.a \
${libdir}/libxenvchan.a \
@@ -286,122 +265,122 @@ FILES_${PN}-staticdev += "\
${libdir}/libxenstore.a \
"
-FILES_${PN}-libxencall = "${libdir}/libxencall.so.*"
-FILES_${PN}-libxencall-dev = " \
+FILES:${PN}-libxencall = "${libdir}/libxencall.so.*"
+FILES:${PN}-libxencall-dev = " \
${libdir}/libxencall.so \
${libdir}/pkgconfig/xencall.pc \
${datadir}/pkgconfig/xencall.pc \
"
-FILES_${PN}-libxenctrl = "${libdir}/libxenctrl.so.*"
-FILES_${PN}-libxenctrl-dev = " \
+FILES:${PN}-libxenctrl = "${libdir}/libxenctrl.so.*"
+FILES:${PN}-libxenctrl-dev = " \
${libdir}/libxenctrl.so \
${libdir}/pkgconfig/xencontrol.pc \
${datadir}/pkgconfig/xencontrol.pc \
"
-FILES_${PN}-libxendevicemodel = "${libdir}/libxendevicemodel.so.*"
-FILES_${PN}-libxendevicemodel-dev = " \
+FILES:${PN}-libxendevicemodel = "${libdir}/libxendevicemodel.so.*"
+FILES:${PN}-libxendevicemodel-dev = " \
${libdir}/libxendevicemodel.so \
${libdir}/pkgconfig/xendevicemodel.pc \
${datadir}/pkgconfig/xendevicemodel.pc \
"
-FILES_${PN}-libxenevtchn = "${libdir}/libxenevtchn.so.*"
-FILES_${PN}-libxenevtchn-dev = " \
+FILES:${PN}-libxenevtchn = "${libdir}/libxenevtchn.so.*"
+FILES:${PN}-libxenevtchn-dev = " \
${libdir}/libxenevtchn.so \
${libdir}/pkgconfig/xenevtchn.pc \
${datadir}/pkgconfig/xenevtchn.pc \
"
-FILES_${PN}-libxenforeignmemory = "${libdir}/libxenforeignmemory.so.*"
-FILES_${PN}-libxenforeignmemory-dev = " \
+FILES:${PN}-libxenforeignmemory = "${libdir}/libxenforeignmemory.so.*"
+FILES:${PN}-libxenforeignmemory-dev = " \
${libdir}/libxenforeignmemory.so \
${libdir}/pkgconfig/xenforeignmemory.pc \
${datadir}/pkgconfig/xenforeignmemory.pc \
"
-FILES_${PN}-libxengnttab = "${libdir}/libxengnttab.so.*"
-FILES_${PN}-libxengnttab-dev = " \
+FILES:${PN}-libxengnttab = "${libdir}/libxengnttab.so.*"
+FILES:${PN}-libxengnttab-dev = " \
${libdir}/libxengnttab.so \
${libdir}/pkgconfig/xengnttab.pc \
${datadir}/pkgconfig/xengnttab.pc \
"
-FILES_${PN}-libxenguest = "${libdir}/libxenguest.so.*"
-FILES_${PN}-libxenguest-dev = " \
+FILES:${PN}-libxenguest = "${libdir}/libxenguest.so.*"
+FILES:${PN}-libxenguest-dev = " \
${libdir}/libxenguest.so \
${libdir}/pkgconfig/xenguest.pc \
${datadir}/pkgconfig/xenguest.pc \
"
-FILES_${PN}-libxenhypfs = "${libdir}/libxenhypfs.so.*"
-FILES_${PN}-libxenhypfs-dev = " \
+FILES:${PN}-libxenhypfs = "${libdir}/libxenhypfs.so.*"
+FILES:${PN}-libxenhypfs-dev = " \
${libdir}/libxenhypfs.so \
${libdir}/pkgconfig/xenhypfs.pc \
"
-FILES_${PN}-libxenlight = "${libdir}/libxenlight.so.*"
-FILES_${PN}-libxenlight-dev = " \
+FILES:${PN}-libxenlight = "${libdir}/libxenlight.so.*"
+FILES:${PN}-libxenlight-dev = " \
${libdir}/libxenlight.so \
${libdir}/pkgconfig/xenlight.pc \
${datadir}/pkgconfig/xenlight.pc \
"
-FILES_${PN}-libxenstat = "${libdir}/libxenstat.so.*"
-FILES_${PN}-libxenstat-dev = " \
+FILES:${PN}-libxenstat = "${libdir}/libxenstat.so.*"
+FILES:${PN}-libxenstat-dev = " \
${libdir}/libxenstat.so \
${libdir}/pkgconfig/xenstat.pc \
${datadir}/pkgconfig/xenstat.pc \
"
-FILES_${PN}-libxenstore = "${libdir}/libxenstore.so.*"
-FILES_${PN}-libxenstore-dev = " \
+FILES:${PN}-libxenstore = "${libdir}/libxenstore.so.*"
+FILES:${PN}-libxenstore-dev = " \
${libdir}/libxenstore.so \
${libdir}/pkgconfig/xenstore.pc \
${datadir}/pkgconfig/xenstore.pc \
"
-FILES_${PN}-libxentoolcore = "${libdir}/libxentoolcore.so.*"
-FILES_${PN}-libxentoolcore-dev = " \
+FILES:${PN}-libxentoolcore = "${libdir}/libxentoolcore.so.*"
+FILES:${PN}-libxentoolcore-dev = " \
${libdir}/libxentoolcore.so \
${libdir}/pkgconfig/xentoolcore.pc \
${datadir}/pkgconfig/xentoolcore.pc \
"
-FILES_${PN}-libxentoollog = "${libdir}/libxentoollog.so.*"
-FILES_${PN}-libxentoollog-dev = " \
+FILES:${PN}-libxentoollog = "${libdir}/libxentoollog.so.*"
+FILES:${PN}-libxentoollog-dev = " \
${libdir}/libxentoollog.so \
${libdir}/pkgconfig/xentoollog.pc \
${datadir}/pkgconfig/xentoollog.pc \
"
-FILES_${PN}-libxenvchan = "${libdir}/libxenvchan.so.*"
-FILES_${PN}-libxenvchan-dev = " \
+FILES:${PN}-libxenvchan = "${libdir}/libxenvchan.so.*"
+FILES:${PN}-libxenvchan-dev = " \
${libdir}/libxenvchan.so \
${libdir}/pkgconfig/xenvchan.pc \
${datadir}/pkgconfig/xenvchan.pc \
"
-FILES_${PN}-libxlutil = "${libdir}/libxlutil.so.*"
-FILES_${PN}-libxlutil-dev = " \
+FILES:${PN}-libxlutil = "${libdir}/libxlutil.so.*"
+FILES:${PN}-libxlutil-dev = " \
${libdir}/libxlutil.so \
${libdir}/pkgconfig/xlutil.pc \
${datadir}/pkgconfig/xlutil.pc \
"
-FILES_${PN}-libvhd = "${libdir}/libvhd.so.*"
-FILES_${PN}-libvhd-dev = " \
+FILES:${PN}-libvhd = "${libdir}/libvhd.so.*"
+FILES:${PN}-libvhd-dev = " \
${libdir}/libvhd.so \
${libdir}/pkgconfig/vhd.pc \
${datadir}/pkgconfig/vhd.pc \
"
-FILES_${PN}-libfsimage = " \
+FILES:${PN}-libfsimage = " \
${libdir}/libfsimage.so.* \
${libdir}/libxenfsimage.so.* \
"
-FILES_${PN}-libfsimage-dev = " \
+FILES:${PN}-libfsimage-dev = " \
${libdir}/libfsimage.so \
${libdir}/libxenfsimage.so \
${libdir}/pkgconfig/fsimage.pc \
@@ -410,38 +389,38 @@ FILES_${PN}-libfsimage-dev = " \
${datadir}/pkgconfig/xenfsimage.pc \
"
-FILES_${PN}-fsimage = " \
+FILES:${PN}-fsimage = " \
${libdir}/fs/**/[a-z]*fsimage.so \
${libdir}/xenfsimage/**/fsimage.so \
"
-FILES_${PN}-init-xenstore-dom = "${libdir}/xen/bin/init-xenstore-domain"
+FILES:${PN}-init-xenstore-dom = "${libdir}/xen/bin/init-xenstore-domain"
-FILES_${PN} = "\
+FILES:${PN} = "\
${sysconfdir}/xen/auto \
${sysconfdir}/xen/cpupool \
${localstatedir}/xen/dump \
"
-FILES_${PN}-console = "\
+FILES:${PN}-console = "\
${libdir}/xen/bin/xenconsole \
${sbindir}/xenconsoled \
"
-FILES_${PN}-cpuid = "\
+FILES:${PN}-cpuid = "\
${bindir}/xen-cpuid \
"
-FILES_${PN}-devd = "\
+FILES:${PN}-devd = "\
${sysconfdir}/init.d/xendriverdomain \
${systemd_unitdir}/system/xendriverdomain.service \
"
-FILES_${PN}-flask = "\
+FILES:${PN}-flask = "\
/boot/xenpolicy-* \
"
-FILES_${PN}-flask-tools = "\
+FILES:${PN}-flask-tools = "\
${sbindir}/flask-get-bool \
${sbindir}/flask-getenforce \
${sbindir}/flask-label-pci \
@@ -450,25 +429,25 @@ FILES_${PN}-flask-tools = "\
${sbindir}/flask-setenforce \
"
-FILES_${PN}-gdbsx = "\
+FILES:${PN}-gdbsx = "\
${sbindir}/gdbsx \
"
-INSANE_SKIP_${PN}-hvmloader = "arch"
-FILES_${PN}-hvmloader = "\
+INSANE_SKIP:${PN}-hvmloader = "arch"
+FILES:${PN}-hvmloader = "\
${libdir}/xen/boot/hvmloader \
"
-FILES_${PN}-kdd = "\
+FILES:${PN}-kdd = "\
${sbindir}/kdd \
${sbindir}/xen-kdd \
"
-FILES_${PN}-livepatch += " \
+FILES:${PN}-livepatch += " \
${sbindir}/xen-livepatch \
"
-FILES_${PN}-misc = "\
+FILES:${PN}-misc = "\
${bindir}/xen-detect \
${libdir}/xen/bin/depriv-fd-checker \
${sbindir}/gtracestat \
@@ -491,20 +470,22 @@ FILES_${PN}-misc = "\
${libdir}/xen/bin/convert-legacy-stream \
"
-FILES_${PN}-pygrub = "\
+FILES:${PN}-pygrub = "\
${bindir}/pygrub \
${libdir}/xen/bin/pygrub \
"
-FILES_${PN}-python = "\
+# Depending on the version of Xen libdir or nonarch libdir is used
+FILES:${PN}-python = "\
${libdir}/${PYTHON_DIR} \
+ ${nonarch_libdir}/${PYTHON_DIR} \
"
-FILES_${PN}-remus = "\
+FILES:${PN}-remus = "\
${sysconfdir}/xen/scripts/remus-netbuf-setup \
"
-FILES_${PN}-scripts-network = " \
+FILES:${PN}-scripts-network = " \
${sysconfdir}/xen/scripts/colo-proxy-setup \
${sysconfdir}/xen/scripts/network-bridge \
${sysconfdir}/xen/scripts/network-nat \
@@ -519,7 +500,7 @@ FILES_${PN}-scripts-network = " \
${sysconfdir}/xen/scripts/vif-setup \
"
-FILES_${PN}-scripts-block = " \
+FILES:${PN}-scripts-block = " \
${sysconfdir}/xen/scripts/blktap \
${sysconfdir}/xen/scripts/block \
${sysconfdir}/xen/scripts/block-common.sh \
@@ -532,7 +513,7 @@ FILES_${PN}-scripts-block = " \
${sysconfdir}/xen/scripts/vscsi \
"
-FILES_${PN}-scripts-common = " \
+FILES:${PN}-scripts-common = " \
${sysconfdir}/xen/scripts/external-device-migrate \
${sysconfdir}/xen/scripts/hotplugpath.sh \
${sysconfdir}/xen/scripts/locking.sh \
@@ -543,59 +524,59 @@ FILES_${PN}-scripts-common = " \
${sysconfdir}/xen/scripts/xen-script-common.sh \
"
-INSANE_SKIP_${PN}-shim = "arch"
-FILES_${PN}-shim = " \
+INSANE_SKIP:${PN}-shim = "arch"
+FILES:${PN}-shim = " \
${libdir}/xen/boot/xen-shim \
"
-FILES_${PN}-ucode = "\
+FILES:${PN}-ucode = "\
${sbindir}/xen-ucode \
"
-FILES_${PN}-vchan = "\
+FILES:${PN}-vchan = "\
${bindir}/vchan-socket-proxy \
"
-FILES_${PN}-volatiles = "\
+FILES:${PN}-volatiles = "\
${sysconfdir}/default/volatiles/99_xen \
${sysconfdir}/tmpfiles.d/xen.conf \
"
-FILES_${PN}-xcutils = "\
+FILES:${PN}-xcutils = "\
${libdir}/xen/bin/lsevtchn \
${libdir}/xen/bin/readnotes \
${libdir}/xen/bin/xc_restore \
${libdir}/xen/bin/xc_save \
"
-FILES_${PN}-xencov = "\
+FILES:${PN}-xencov = "\
${sbindir}/xencov \
"
-FILES_${PN}-xend-examples = "\
+FILES:${PN}-xend-examples = "\
${sysconfdir}/xen/xend-config.sxp \
${sysconfdir}/xen/xend-pci-permissive.sxp \
${sysconfdir}/xen/xend-pci-quirks.sxp \
"
-FILES_${PN}-xenhypfs = "\
+FILES:${PN}-xenhypfs = "\
${sbindir}/xenhypfs \
"
-FILES_${PN}-xenpaging = "\
+FILES:${PN}-xenpaging = "\
${libdir}/xen/bin/xenpaging \
${localstatedir}/lib/xen/xenpaging \
"
-FILES_${PN}-xenpmd = "\
+FILES:${PN}-xenpmd = "\
${sbindir}/xenpmd \
"
-FILES_${PN}-xenstat = "\
+FILES:${PN}-xenstat = "\
${sbindir}/xentop \
"
-FILES_${PN}-xenstore = "\
+FILES:${PN}-xenstore = "\
${bindir}/xenstore \
${bindir}/xenstore-chmod \
${bindir}/xenstore-control \
@@ -608,12 +589,12 @@ FILES_${PN}-xenstore = "\
${bindir}/xenstore-write \
"
-FILES_${PN}-xenstored = "\
+FILES:${PN}-xenstored = "\
${sbindir}/xenstored \
${localstatedir}/lib/xenstored \
"
-FILES_${PN}-xentrace = "\
+FILES:${PN}-xentrace = "\
${bindir}/xentrace \
${bindir}/xentrace_setsize \
${libdir}/xen/bin/xenctx \
@@ -623,26 +604,29 @@ FILES_${PN}-xentrace = "\
${sbindir}/xentrace_setmask \
"
-FILES_${PN}-xen-watchdog = "\
+FILES:${PN}-xen-watchdog = "\
${sbindir}/xenwatchdogd \
${sysconfdir}/init.d/xen-watchdog \
${systemd_unitdir}/system/xen-watchdog.service \
"
-FILES_${PN}-xl = "\
+FILES:${PN}-xl = "\
${sysconfdir}/bash_completion.d/xl.sh \
+ ${sysconfdir}/bash_completion.d/xl \
${sysconfdir}/xen/xl.conf \
${libdir}/xen/bin/libxl-save-helper \
${sbindir}/xl \
${libdir}/xen/bin/xen-init-dom0 \
+ ${libdir}/xen/bin/init-dom0less \
"
-FILES_${PN}-xl-examples = "\
+FILES:${PN}-xl-examples = "\
${sysconfdir}/xen/xlexample.hvm \
${sysconfdir}/xen/xlexample.pvlinux \
+ ${sysconfdir}/xen/xlexample.pvhlinux \
"
-FILES_${PN}-xm-examples = "\
+FILES:${PN}-xm-examples = "\
${sysconfdir}/xen/xmexample1 \
${sysconfdir}/xen/xmexample2 \
${sysconfdir}/xen/xmexample3 \
@@ -653,86 +637,112 @@ FILES_${PN}-xm-examples = "\
${sysconfdir}/xen/xmexample.vti \
"
-FILES_${PN}-xenmon = "\
+FILES:${PN}-xenmon = "\
${sbindir}/xenbaked \
${sbindir}/xenmon.py \
${sbindir}/xenmon \
"
-FILES_${PN}-xm = "\
+FILES:${PN}-xm = "\
${sysconfdir}/xen/xm-config.xml \
${datadir}/xen/create.dtd \
${sbindir}/xm \
"
-FILES_${PN}-xencommons += "\
+FILES:${PN}-xencommons += "\
+ ${nonarch_libdir}/modules-load.d/xen.conf \
${sysconfdir}/default/xencommons \
- ${sysconfdir}/init.d/xencommons \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '', '${sysconfdir}/init.d/xencommons', d)} \
${sysconfdir}/xen/scripts/launch-xenstore \
- ${systemd_unitdir}/modules-load.d/xen.conf \
${systemd_unitdir}/system/proc-xen.mount \
- ${systemd_unitdir}/system/xen-qemu-dom0-disk-backend.service \
- ${systemd_unitdir}/system/xenconsoled.service \
- ${systemd_unitdir}/system/xen-init-dom0.service \
- ${systemd_unitdir}/system/xenstored.service \
- ${systemd_unitdir}/system/var-lib-xenstored.mount \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${systemd_unitdir}/system/xen-qemu-dom0-disk-backend.service', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${systemd_unitdir}/system/xenconsoled.service', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${systemd_unitdir}/system/xen-init-dom0.service', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${systemd_unitdir}/system/xenstored.service', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${systemd_unitdir}/system/var-lib-xenstored.mount', '', d)} \
+ ${localstatedir} \
"
-FILES_${PN}-xend += " \
+FILES:${PN}-xend += " \
${sysconfdir}/init.d/xend \
${sbindir}/xend \
"
-FILES_${PN}-xendomains += "\
+FILES:${PN}-xendomains += "\
${libdir}/xen/bin/xendomains \
${sysconfdir}/default/xendomains \
${sysconfdir}/init.d/xendomains \
${sysconfdir}/sysconfig/xendomains \
${systemd_unitdir}/system/xendomains.service \
"
+FILES:${PN}-xen-access += "\
+ ${sbindir}/xen-access \
+ "
+
+FILES:${PN}-xen-memshare += "\
+ ${sbindir}/xen-memshare \
+ "
+
+# memshare is only built for x86, so allow empty package for other archs
+ALLOW_EMPTY:${PN}-xen-memshare = "1"
+
+FILES:${PN}-test += "\
+ ${libdir}/xen/bin/test-xenstore \
+ ${libdir}/xen/bin/test-resource \
+ ${libdir}/xen/bin/test-cpu-policy \
+ ${libdir}/xen/bin/test-tsx \
+ ${libdir}/xen/bin/test-paging-mempool \
+ "
+
+# test-xenstore and test-resource currently only exist in 4.16
+# test-cpu-policy and test-tsx only exist in 4.16 for x86
+ALLOW_EMPTY:${PN}-test = "1"
+
+FILES:${PN}-xen-mceinj +="\
+ ${sbindir}/xen-mceinj \
+ "
-INSANE_SKIP_${PN} = "already-stripped"
+# xen-mceinj is only built for x86 4.16, so allow empty package
+ALLOW_EMPTY:${PN}-xen-mceinj = "1"
+
+FILES:${PN}-xen-vmtrace +="\
+ ${sbindir}/xen-vmtrace \
+ "
+
+# xen-vmtrace is only built for x86 4.16, so allow empty package
+ALLOW_EMPTY:${PN}-xen-vmtrace = "1"
+
+INSANE_SKIP:${PN} = "already-stripped"
# configure init.d scripts
-INITSCRIPT_PACKAGES = "${PN}-xend ${PN}-xencommons ${PN}-xen-watchdog ${PN}-xendomains ${PN}-devd"
-INITSCRIPT_NAME_${PN}-xencommons = "xencommons"
-INITSCRIPT_PARAMS_${PN}-xencommons = "defaults 80"
-INITSCRIPT_NAME_${PN}-xen-watchdog = "xen-watchdog"
-INITSCRIPT_PARAMS_${PN}-xen-watchdog = "defaults 81"
-INITSCRIPT_NAME_${PN}-xend = "xend"
-INITSCRIPT_PARAMS_${PN}-xend = "defaults 82"
-INITSCRIPT_NAME_${PN}-xendomains = "xendomains"
-INITSCRIPT_PARAMS_${PN}-xendomains = "defaults 83"
-INITSCRIPT_NAME_${PN}-devd = "xendriverdomain"
-INITSCRIPT_PARAMS_${PN}-devd = "defaults 82"
+INITSCRIPT_PACKAGES = "${PN}-xend ${PN}-xen-watchdog ${PN}-xendomains ${PN}-devd"
+INITSCRIPT_PACKAGES += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '', '${PN}-xencommons', d)}"
+INITSCRIPT_NAME:${PN}-xencommons = "xencommons"
+INITSCRIPT_PARAMS:${PN}-xencommons = "defaults 80"
+INITSCRIPT_NAME:${PN}-xen-watchdog = "xen-watchdog"
+INITSCRIPT_PARAMS:${PN}-xen-watchdog = "defaults 81"
+INITSCRIPT_NAME:${PN}-xend = "xend"
+INITSCRIPT_PARAMS:${PN}-xend = "defaults 82"
+INITSCRIPT_NAME:${PN}-xendomains = "xendomains"
+INITSCRIPT_PARAMS:${PN}-xendomains = "defaults 83"
+INITSCRIPT_NAME:${PN}-devd = "xendriverdomain"
+INITSCRIPT_PARAMS:${PN}-devd = "defaults 82"
# systemd packages
SYSTEMD_PACKAGES = "${PN}-xen-watchdog ${PN}-xencommons ${PN}-xendomains ${PN}-devd"
-SYSTEMD_SERVICE_${PN}-devd = "xendriverdomain.service"
-SYSTEMD_SERVICE_${PN}-xen-watchdog = "xen-watchdog.service"
-SYSTEMD_SERVICE_${PN}-xencommons = " \
+SYSTEMD_SERVICE:${PN}-devd = "xendriverdomain.service"
+SYSTEMD_SERVICE:${PN}-xen-watchdog = "xen-watchdog.service"
+SYSTEMD_SERVICE:${PN}-xencommons = " \
proc-xen.mount \
- var-lib-xenstored.mount \
xen-qemu-dom0-disk-backend.service \
xenconsoled.service \
xen-init-dom0.service \
xenstored.service \
"
-SYSTEMD_SERVICE_${PN}-xendomains = "xendomains.service"
-
-# To build hvmloader, which is needed on x86-64 targets when 'hvm' is enabled
-# in PACKAGECONFIG, additional CFLAGS are needed to set the 32-bit sysroot.
-RECIPE_SYSROOT32 = "${WORKDIR}/${MLPREFIX32}recipe-sysroot"
-ADD_SYSROOT32_CFLAGS = ""
-ADD_SYSROOT32_CFLAGS_x86-64 = \
- "${@bb.utils.contains('PACKAGECONFIG', 'hvm', \
- 'CFLAGS += "--sysroot=${RECIPE_SYSROOT32}"', '', d)}"
-# This x86-64 override is never intended for native use, so clear that.
-ADD_SYSROOT32_CFLAGS_class-native = ""
+SYSTEMD_SERVICE:${PN}-xendomains = "xendomains.service"
EXTRA_OECONF += " \
--with-systemd=${systemd_unitdir}/system \
- --with-systemd-modules-load=${systemd_unitdir}/modules-load.d \
--with-initddir=${INIT_D_DIR} \
--with-sysconfig-leaf-dir=default \
--with-system-qemu=${bindir}/qemu-system-i386 \
@@ -740,15 +750,12 @@ EXTRA_OECONF += " \
do_configure() {
do_configure_common
-
- if [ -n '${ADD_SYSROOT32_CFLAGS}' ] ; then
- echo '${ADD_SYSROOT32_CFLAGS}' >>"${S}/tools/firmware/Rules.mk"
- fi
}
do_compile() {
cd ${S}
- oe_runmake tools PYTHON="${PYTHON}"
+ oe_runmake tools PYTHON="${PYTHON}" \
+ EXTRA_CFLAGS_XEN_TOOLS="${EXTRA_CFLAGS_XEN_TOOLS}"
}
do_install() {
@@ -799,16 +806,27 @@ do_install() {
done
fi
- # fixup default path to qemu-system-i386
- sed -i 's#\(test -z "$QEMU_XEN" && QEMU_XEN=\).*$#\1"/usr/bin/qemu-system-i386"#' ${D}/etc/init.d/xencommons
-
if [ -e ${D}${systemd_unitdir}/system/xen-qemu-dom0-disk-backend.service ]; then
sed -i 's#ExecStart=.*qemu-system-i386\(.*\)$#ExecStart=/usr/bin/qemu-system-i386\1#' \
${D}${systemd_unitdir}/system/xen-qemu-dom0-disk-backend.service
fi
+
+ if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ rm -f ${D}/${sysconfdir}/init.d/xencommons
+ else
+ # fixup default path to qemu-system-i386
+ sed -i 's#\(test -z "$QEMU_XEN" && QEMU_XEN=\).*$#\1"/usr/bin/qemu-system-i386"#' ${D}/etc/init.d/xencommons
+
+ # remove the uncondiontally installed systemd service files
+ rm -f ${D}/${systemd_unitdir}/system/xen-qemu-dom0-disk-backend.service
+ rm -f ${D}/${systemd_unitdir}/system/xenconsoled.service
+ rm -f ${D}/${systemd_unitdir}/system/xen-init-dom0.service
+ rm -f ${D}/${systemd_unitdir}/system/xenstored.service
+ rm -f ${D}/${systemd_unitdir}/system/var-lib-xenstored.mount
+ fi
}
-pkg_postinst_${PN}-volatiles() {
+pkg_postinst:${PN}-volatiles() {
if [ -z "$D" ]; then
if command -v systemd-tmpfiles >/dev/null; then
systemd-tmpfiles --create ${sysconfdir}/tmpfiles.d/xen.conf
diff --git a/recipes-extended/xen/xen-tools_4.14.bb b/recipes-extended/xen/xen-tools_4.14.bb
deleted file mode 100644
index 4119190d..00000000
--- a/recipes-extended/xen/xen-tools_4.14.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SRCREV ?= "456957aaa1391e0dfa969e2dd97b87c51a79444e"
-
-XEN_REL ?= "4.14"
-XEN_BRANCH ?= "stable-${XEN_REL}"
-
-SRC_URI = " \
- git://xenbits.xen.org/xen.git;branch=${XEN_BRANCH} \
- file://0001-python-pygrub-pass-DISTUTILS-xen-4.14.patch \
- file://0001-xen-build-temporarily-inhibit-Werror-4.14.patch \
- "
-
-LIC_FILES_CHKSUM ?= "file://COPYING;md5=419739e325a50f3d7b4501338e44a4e5"
-
-PV = "${XEN_REL}+stable${SRCPV}"
-
-S = "${WORKDIR}/git"
-
-require xen.inc
-require xen-tools.inc
diff --git a/recipes-extended/xen/xen-tools_4.17.bb b/recipes-extended/xen/xen-tools_4.17.bb
new file mode 100644
index 00000000..72deed01
--- /dev/null
+++ b/recipes-extended/xen/xen-tools_4.17.bb
@@ -0,0 +1,19 @@
+# xen 4.17.2 release sha
+SRCREV ?= "0ebd2e49bcd0f566ba6b9158555942aab8e41332"
+
+XEN_REL ?= "4.17"
+XEN_BRANCH ?= "stable-${XEN_REL}"
+
+SRC_URI = "git://xenbits.xen.org/xen.git;branch=${XEN_BRANCH} \
+ file://0001-python-pygrub-pass-DISTUTILS-xen-4.15.patch \
+ file://0001-tools-xenstore-xenstored_control.c-correctly-print-t.patch \
+ "
+
+LIC_FILES_CHKSUM ?= "file://COPYING;md5=d1a1e216f80b6d8da95fec897d0dbec9"
+
+PV = "${XEN_REL}+stable"
+
+S = "${WORKDIR}/git"
+
+require xen.inc
+require xen-tools.inc
diff --git a/recipes-extended/xen/xen-tools_4.18.bb b/recipes-extended/xen/xen-tools_4.18.bb
new file mode 100644
index 00000000..5dbe180a
--- /dev/null
+++ b/recipes-extended/xen/xen-tools_4.18.bb
@@ -0,0 +1,21 @@
+# tag: RELEASE-4.18.0
+SRCREV ?= "4da8ca9cb9cfdb92c9dd09d5270ae16a3b2dbc89"
+
+XEN_REL ?= "4.18"
+XEN_BRANCH ?= "stable-4.18"
+
+SRC_URI = " \
+ git://xenbits.xen.org/xen.git;branch=${XEN_BRANCH} \
+ file://0001-python-pygrub-pass-DISTUTILS-xen-4.18.patch \
+ "
+
+LIC_FILES_CHKSUM ?= "file://COPYING;md5=d1a1e216f80b6d8da95fec897d0dbec9"
+
+PV = "${XEN_REL}+stable"
+
+S = "${WORKDIR}/git"
+
+DEFAULT_PREFERENCE ??= "-1"
+
+require xen.inc
+require xen-tools.inc
diff --git a/recipes-extended/xen/xen-tools_git.bb b/recipes-extended/xen/xen-tools_git.bb
index 71aeeed8..8397178e 100644
--- a/recipes-extended/xen/xen-tools_git.bb
+++ b/recipes-extended/xen/xen-tools_git.bb
@@ -1,17 +1,17 @@
-SRCREV ?= "8c4532f19d6925538fb0c938f7de9a97da8c5c3b"
+# master status on 2023-05-26
+SRCREV ?= "03cf7ca23e0e876075954c558485b267b7d02406"
-XEN_REL ?= "4.15"
+XEN_REL ?= "4.18"
XEN_BRANCH ?= "master"
SRC_URI = " \
git://xenbits.xen.org/xen.git;branch=${XEN_BRANCH} \
- file://0001-python-pygrub-pass-DISTUTILS-xen-4.14.patch \
- file://0001-xen-build-temporarily-inhibit-Werror-4.14.patch \
+ file://0001-python-pygrub-pass-DISTUTILS-xen-4.18.patch \
"
-LIC_FILES_CHKSUM ?= "file://COPYING;md5=419739e325a50f3d7b4501338e44a4e5"
+LIC_FILES_CHKSUM ?= "file://COPYING;md5=d1a1e216f80b6d8da95fec897d0dbec9"
-PV = "${XEN_REL}+git${SRCPV}"
+PV = "${XEN_REL}+git"
S = "${WORKDIR}/git"
diff --git a/recipes-extended/xen/xen.inc b/recipes-extended/xen/xen.inc
index 9e8fcad2..dcd281b5 100644
--- a/recipes-extended/xen/xen.inc
+++ b/recipes-extended/xen/xen.inc
@@ -1,21 +1,20 @@
HOMEPAGE = "http://xen.org"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
SECTION = "console/tools"
-inherit autotools-brokensep
+TOOLCHAIN = "gcc"
+
+inherit autotools-brokensep pkgconfig
require xen-arch.inc
PACKAGECONFIG ??= " \
- sdl \
${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \
- ${@bb.utils.contains('XEN_TARGET_ARCH', 'x86_64', 'hvm', '', d)} \
"
-PACKAGECONFIG[sdl] = "--enable-sdl,--disable-sdl,virtual/libsdl,"
+PACKAGECONFIG[lzo] = ",,lzo"
PACKAGECONFIG[xsm] = "--enable-xsmpolicy,--disable-xsmpolicy,checkpolicy-native,"
PACKAGECONFIG[systemd] = "--enable-systemd,--disable-systemd,systemd,"
-PACKAGECONFIG[hvm] = "--with-system-seabios="/usr/share/firmware/bios.bin",--disable-seabios,seabios ipxe vgabios,"
PACKAGECONFIG[externalblktap] = ",,,"
DEPENDS = " \
@@ -43,7 +42,6 @@ DEPENDS = " \
procps \
python3 \
libaio \
- lzo \
util-linux \
xz \
yajl \
@@ -90,8 +88,19 @@ export CROSS_COMPILE="${TARGET_PREFIX}"
# overide LDFLAGS to allow xen to build without: "x86_64-oe-linux-ld: unrecognized option '-Wl,-O1'"
export LDFLAGS=""
-# Pass through the Yocto distro compiler flags via the Xen-provided variables.
-# Special handling:
+# No additional C flags for the main hypervisor build
+EXTRA_CFLAGS_XEN_CORE ?= ""
+# Add prefix maps to support buildpaths QA test and reproducibility
+DEBUG_PREFIX_MAP:append = " \
+ -ffile-prefix-map=${S}=${PN}-source \
+ -fdebug-prefix-map=${WORKDIR}=${PN} \
+ "
+
+# - The Xen tools build for x86 systems with HVM-mode enabled includes hvmloader
+# which fails to build when "-m64" is included in flags set via the
+# EXTRA_CFLAGS_XEN_TOOLS: so clear TUNE_CCARGS on x86 to prevent that.
+TUNE_CCARGS:x86-64=""
+
# - Yocto supplies the _FORTIFY_SOURCE flag via CC/CPP/CXX but then passes the
# optimization -O via C*FLAGS which is problematic when the CFLAGS are cleared
# within the build because compilation fails with the compiler stating
@@ -101,18 +110,15 @@ export LDFLAGS=""
# It must not be compiled with SSE compiler options enabled and the Xen build
# explicitly clears CFLAGS to ensure that, so such options must not be passed
# in via the tool variable. hvmloader is required to run HVM-mode guest VMs.
-CC="${CCACHE}${HOST_PREFIX}gcc ${TOOLCHAIN_OPTIONS} ${CC_REPRODUCIBLE_OPTIONS}"
-EXTRA_CFLAGS_XEN_CORE="${HOST_CC_ARCH} ${CFLAGS}"
+CC="${CCACHE}${HOST_PREFIX}gcc ${TOOLCHAIN_OPTIONS} ${DEBUG_PREFIX_MAP} ${CC_REPRODUCIBLE_OPTIONS}"
EXTRA_CFLAGS_XEN_TOOLS="${HOST_CC_ARCH} ${CFLAGS}"
# 32-bit ARM needs the TUNE_CCARGS component of HOST_CC_ARCH to be passed
# in CC to ensure that configure can compile binaries for the right arch.
-CC_arm="${CCACHE}${HOST_PREFIX}gcc ${TUNE_CCARGS} ${TOOLCHAIN_OPTIONS} ${CC_REPRODUCIBLE_OPTIONS}"
-EXTRA_CFLAGS_XEN_CORE_arm="${SECURITY_CFLAGS} ${CFLAGS}"
-EXTRA_CFLAGS_XEN_TOOLS_arm="${SECURITY_CFLAGS} ${CFLAGS}"
+CC:arm="${CCACHE}${HOST_PREFIX}gcc ${TUNE_CCARGS} ${TOOLCHAIN_OPTIONS} ${DEBUG_PREFIX_MAP} ${CC_REPRODUCIBLE_OPTIONS}"
# There are no Xen-provided variables for C++, so append to the tool variables:
-CPP_append = " ${CPPFLAGS}"
-CXX_append = " ${CXXFLAGS}"
+CPP:append = " ${CPPFLAGS}"
+CXX:append = " ${CXXFLAGS}"
EXTRA_OECONF += " \
--exec-prefix=${prefix} \
@@ -125,10 +131,13 @@ EXTRA_OECONF += " \
--disable-rombios \
--disable-ocamltools \
--disable-qemu-traditional \
+ ${@bb.utils.contains('XEN_TARGET_ARCH', 'x86_64', \
+ '--enable-pvshim --with-system-seabios="/usr/share/firmware/bios.bin"', \
+ '--disable-pvshim --disable-seabios', d)} \
"
-EXTRA_OEMAKE += "STDVGA_ROM=${STAGING_DIR_HOST}/usr/share/firmware/vgabios-0.7a.bin"
-EXTRA_OEMAKE += "CIRRUSVGA_ROM=${STAGING_DIR_HOST}/usr/share/firmware/vgabios-0.7a.cirrus.bin"
+EXTRA_OEMAKE += "STDVGA_ROM=${STAGING_DIR_HOST}/usr/share/firmware/vgabios-0.8a.bin"
+EXTRA_OEMAKE += "CIRRUSVGA_ROM=${STAGING_DIR_HOST}/usr/share/firmware/vgabios-0.8a.cirrus.bin"
EXTRA_OEMAKE += "SEABIOS_ROM=${STAGING_DIR_HOST}/usr/share/firmware/bios.bin"
EXTRA_OEMAKE += "ETHERBOOT_ROMS=${STAGING_DIR_HOST}/usr/share/firmware/rtl8139.rom"
@@ -150,9 +159,7 @@ EXTRA_OEMAKE += "${@['', 'XEN_WHOAMI=${PF} XEN_DOMAIN=${DISTRO} XEN_BUILD_HOST=$
[d.getVar('BUILD_REPRODUCIBLE_BINARIES') == '1']}${@get_build_time_vars(d)}"
# Improve build reproducibility: compiler flags to remove filesystem differences.
-CC_REPRODUCIBLE_OPTIONS = "${@['', '-gno-record-gcc-switches ' + \
- '-ffile-prefix-map=${S}=${PN}-source ' + \
- '-fdebug-prefix-map=${WORKDIR}=${PN}'] \
+CC_REPRODUCIBLE_OPTIONS = "${@['', '-gno-record-gcc-switches'] \
[d.getVar('BUILD_REPRODUCIBLE_BINARIES') == '1']}"
# check for XSM in package config to allow XSM_ENABLE to be set
@@ -185,12 +192,6 @@ do_post_patch() {
fi
}
-do_post_patch_append_arm() {
- # The hypervisor binary must not be built with the hard floating point ABI.
- echo "CC := \$(filter-out ${TUNE_CCARGS},\$(CC))" >> ${S}/xen/arch/arm/Rules.mk
- echo "CPP := \$(filter-out ${TUNE_CCARGS},\$(CPP))" >> ${S}/xen/arch/arm/Rules.mk
-}
-
addtask post_patch after do_patch before do_configure
# Allow all hypervisor settings in a defconfig
@@ -221,13 +222,13 @@ do_configure_common() {
PYTHON="${PYTHON}"
}
-do_compile_prepend() {
+do_compile:prepend() {
# workaround for build bug when CFLAGS is exported
# https://www.mail-archive.com/xen-devel@lists.xen.org/msg67822.html
unset CFLAGS
}
-do_install_prepend() {
+do_install:prepend() {
# CFLAGS is used to set PY_CFLAGS which affects the pygrub install
# so also need to unset CFLAGS here:
unset CFLAGS
diff --git a/recipes-extended/xen/xen_4.14.bb b/recipes-extended/xen/xen_4.14.bb
deleted file mode 100644
index 0413bee1..00000000
--- a/recipes-extended/xen/xen_4.14.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SRCREV ?= "456957aaa1391e0dfa969e2dd97b87c51a79444e"
-
-XEN_REL ?= "4.14"
-XEN_BRANCH ?= "stable-${XEN_REL}"
-
-SRC_URI = " \
- git://xenbits.xen.org/xen.git;branch=${XEN_BRANCH} \
- file://xen-arm64-implement-atomic-fetch-add.patch \
- "
-
-LIC_FILES_CHKSUM ?= "file://COPYING;md5=419739e325a50f3d7b4501338e44a4e5"
-
-PV = "${XEN_REL}+stable${SRCPV}"
-
-S = "${WORKDIR}/git"
-
-require xen.inc
-require xen-hypervisor.inc
diff --git a/recipes-extended/xen/xen_4.17.bb b/recipes-extended/xen/xen_4.17.bb
new file mode 100644
index 00000000..d83fa97f
--- /dev/null
+++ b/recipes-extended/xen/xen_4.17.bb
@@ -0,0 +1,22 @@
+# xen 4.17.2 release sha
+SRCREV ?= "0ebd2e49bcd0f566ba6b9158555942aab8e41332"
+
+XEN_REL ?= "4.17"
+XEN_BRANCH ?= "stable-${XEN_REL}"
+
+SRC_URI = " \
+ git://xenbits.xen.org/xen.git;branch=${XEN_BRANCH} \
+ file://0001-menuconfig-mconf-cfg-Allow-specification-of-ncurses-location.patch \
+ "
+
+LIC_FILES_CHKSUM ?= "file://COPYING;md5=d1a1e216f80b6d8da95fec897d0dbec9"
+
+PV = "${XEN_REL}+stable"
+
+S = "${WORKDIR}/git"
+
+require xen.inc
+require xen-hypervisor.inc
+
+TOOLCHAIN = "gcc"
+LDFLAGS:remove = "-fuse-ld=lld"
diff --git a/recipes-extended/xen/xen_4.18.bb b/recipes-extended/xen/xen_4.18.bb
new file mode 100644
index 00000000..2ad7704e
--- /dev/null
+++ b/recipes-extended/xen/xen_4.18.bb
@@ -0,0 +1,21 @@
+# tag: RELEASE-4.18.0
+SRCREV ?= "4da8ca9cb9cfdb92c9dd09d5270ae16a3b2dbc89"
+
+XEN_REL ?= "4.18"
+XEN_BRANCH ?= "stable-4.18"
+
+SRC_URI = " \
+ git://xenbits.xen.org/xen.git;branch=${XEN_BRANCH} \
+ file://0001-menuconfig-mconf-cfg-Allow-specification-of-ncurses-location.patch \
+ "
+
+LIC_FILES_CHKSUM ?= "file://COPYING;md5=d1a1e216f80b6d8da95fec897d0dbec9"
+
+PV = "${XEN_REL}+stable"
+
+S = "${WORKDIR}/git"
+
+DEFAULT_PREFERENCE ??= "-1"
+
+require xen.inc
+require xen-hypervisor.inc
diff --git a/recipes-extended/xen/xen_git.bb b/recipes-extended/xen/xen_git.bb
index 408bc3b3..79078878 100644
--- a/recipes-extended/xen/xen_git.bb
+++ b/recipes-extended/xen/xen_git.bb
@@ -1,16 +1,17 @@
-SRCREV ?= "8c4532f19d6925538fb0c938f7de9a97da8c5c3b"
+# master status on 2023-11-24
+SRCREV ?= "03cf7ca23e0e876075954c558485b267b7d02406"
-XEN_REL ?= "4.15"
+XEN_REL ?= "4.19"
XEN_BRANCH ?= "master"
SRC_URI = " \
git://xenbits.xen.org/xen.git;branch=${XEN_BRANCH} \
- file://xen-arm64-implement-atomic-fetch-add.patch \
+ file://0001-menuconfig-mconf-cfg-Allow-specification-of-ncurses-location.patch \
"
-LIC_FILES_CHKSUM ?= "file://COPYING;md5=419739e325a50f3d7b4501338e44a4e5"
+LIC_FILES_CHKSUM ?= "file://COPYING;md5=d1a1e216f80b6d8da95fec897d0dbec9"
-PV = "${XEN_REL}+git${SRCPV}"
+PV = "${XEN_REL}+git"
S = "${WORKDIR}/git"
diff --git a/recipes-extended/xen/xtf_git.bb b/recipes-extended/xen/xtf_git.bb
new file mode 100644
index 00000000..f1e76f7b
--- /dev/null
+++ b/recipes-extended/xen/xtf_git.bb
@@ -0,0 +1,56 @@
+SUMMARY = "Xen Test Framework"
+HOMEPAGE = "https://xenbits.xenproject.org/docs/xtf/"
+LICENSE = "BSD-2-Clause"
+
+# For additional reference on XTF, please see:
+# https://static.sched.com/hosted_files/xendeveloperanddesignsummit2017/79/xtf.pdf
+
+SRC_URI = "git://xenbits.xen.org/xtf;branch=master"
+SRCREV = "3e800027016ea4eb19887bf626b46f45fc43fa5d"
+
+COMPATIBLE_HOST = '(x86_64.*).*-linux'
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=a5680865974e05cf0510615ee1d745d8"
+
+PV = "0+git"
+
+S = "${WORKDIR}/git"
+
+inherit python3native
+
+PACKAGES = "${PN}"
+
+FILES:${PN} = " \
+ ${libexecdir}/* \
+ "
+
+RDEPENDS:${PN} = " \
+ xen-tools-xl \
+ python3 \
+ "
+
+do_compile() {
+ oe_runmake CC="${TARGET_PREFIX}gcc ${TOOLCHAIN_OPTIONS} ${DEBUG_PREFIX_MAP}" \
+ CPP="${CPP}" \
+ LD="${LD}" \
+ OBJCOPY="${OBJCOPY}" \
+ PYTHON="${PYTHON}"
+ # switch the shebang to python3
+ sed 's,^\(#!/usr/bin/env python\)$,\13,' -i "${B}/xtf-runner"
+}
+
+do_install() {
+ # packaging: rpmbuild can package the XTF test unikernels when they are
+ # installed as non-executable files (they are run within VMs anyway).
+ oe_runmake install DESTDIR="${D}" \
+ xtfdir="${libexecdir}/${BPN}" \
+ PYTHON="${PYTHON}" \
+ INSTALL_PROGRAM="install -m 644 -p"
+ install -m 755 -p "${B}/xtf-runner" "${D}${libexecdir}/${BPN}/xtf-runner"
+}
+
+INSANE_SKIP = "arch"
+# xen-tools-xl is a runtime but not build time dependency
+INSANE_SKIP:${PN} = "build-deps"
+INHIBIT_PACKAGE_STRIP = "1"
+INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
diff --git a/recipes-extended/xvisor/files/0001-build-use-usr-bin-env-for-python-scripts.patch b/recipes-extended/xvisor/files/0001-build-use-usr-bin-env-for-python-scripts.patch
new file mode 100644
index 00000000..1e37c49e
--- /dev/null
+++ b/recipes-extended/xvisor/files/0001-build-use-usr-bin-env-for-python-scripts.patch
@@ -0,0 +1,38 @@
+From eb351ca63a86f53cfb18987284a1445d543dfe56 Mon Sep 17 00:00:00 2001
+From: Bruce Ashfield <bruce.ashfield@gmail.com>
+Date: Mon, 29 Nov 2021 17:20:00 -0500
+Subject: [PATCH] build: use /usr/bin/env for python scripts
+
+Without this, we break on hosts without /usr/bin/python
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
+---
+ tools/scripts/d2c.py | 2 +-
+ tools/scripts/memimg.py | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/tools/scripts/d2c.py b/tools/scripts/d2c.py
+index b46a7bc4..0a6bce08 100755
+--- a/tools/scripts/d2c.py
++++ b/tools/scripts/d2c.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!/usr/bin/env python3
+ #/**
+ # Copyright (c) 2013 Anup Patel.
+ # All rights reserved.
+diff --git a/tools/scripts/memimg.py b/tools/scripts/memimg.py
+index 423c9c33..ba2f06cb 100755
+--- a/tools/scripts/memimg.py
++++ b/tools/scripts/memimg.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!/usr/bin/env python3
+ #/**
+ # Copyright (c) 2011 Anup Patel.
+ # All rights reserved.
+--
+2.19.1
+
diff --git a/recipes-extended/xvisor/xvisor-configs.inc b/recipes-extended/xvisor/xvisor-configs.inc
index 099128dd..cd873cb3 100644
--- a/recipes-extended/xvisor/xvisor-configs.inc
+++ b/recipes-extended/xvisor/xvisor-configs.inc
@@ -1,15 +1,15 @@
-def get_oemake_config(d):
- plat = d.getVar('XVISOR_PLAT')
-
- if plat is None:
- return ""
-
- if 'riscv/virt32' in plat:
- return "generic-32b-defconfig"
- if 'riscv/virt64' in plat:
- return "generic-64b-defconfig"
+def get_oemake_config(a, d):
+ import re
- return ""
+ if re.match('armeb$', a): return 'generic-v7-defconfig'
+ elif re.match('aarch64$', a): return 'generic-v8-defconfig'
+ elif re.match('aarch64_be$', a): return 'generic-v8-defconfig'
+ elif re.match('aarch64_ilp32$', a): return 'generic-v8-defconfig'
+ elif re.match('aarch64_be_ilp32$', a): return 'generic-v8-defconfig'
+ elif re.match('riscv32(eb|)$', a): return 'generic-32b-defconfig'
+ elif re.match('riscv64(eb|)$', a): return 'generic-64b-defconfig'
+ else:
+ bb.note("cannot map '%s' to a Xvisor defconfig" % a)
def map_xvisor_arch(a, d):
import re
@@ -22,4 +22,4 @@ def map_xvisor_arch(a, d):
elif re.match('aarch64_be_ilp32$', a): return 'arm'
elif re.match('riscv(32|64|)(eb|)$', a): return 'riscv'
else:
- bb.error("cannot map '%s' to a Xvisor architecture" % a)
+ bb.note("cannot map '%s' to a Xvisor architecture" % a)
diff --git a/recipes-extended/xvisor/xvisor_0.3.0.bb b/recipes-extended/xvisor/xvisor_git.bb
index 66ad6187..205951e9 100644
--- a/recipes-extended/xvisor/xvisor_0.3.0.bb
+++ b/recipes-extended/xvisor/xvisor_git.bb
@@ -1,6 +1,6 @@
SUMMARY = "Xvisor is an open-source type-1 hypervisor, which aims at providing a monolithic, light-weight, portable, and flexible virtualization solution."
DESCRIPTION = "Xvisor primarily supports Full virtualization hence, supports a wide range of unmodified guest operating systems. Paravirtualization is optional for Xvisor and will be supported in an architecture independent manner (such as VirtIO PCI/MMIO devices) to ensure no-change in guest OS for using paravirtualization."
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
DEPENDS += "dtc-native dosfstools-native mtools-native"
@@ -8,22 +8,26 @@ require xvisor-configs.inc
inherit autotools-brokensep
-SRCREV = "58592ef18c71526a0045935d1e8eed5e8553b7d6"
-SRC_URI = "git://github.com/xvisor/xvisor.git \
- file://0001-TESTS-Don-t-specify-mabi-or-march-for-RISC-V.patch \
- "
+PV = "0.3.0+git"
+
+# This version support the RISC-V v0.5.0 Hypervisor extensions
+SRCREV = "6b23764a1439f9d08b2ed2f363da522460d8a22b"
+SRC_URI = "git://github.com/avpatel/xvisor-next.git;branch=master;protocol=https \
+ file://0001-TESTS-Don-t-specify-mabi-or-march-for-RISC-V.patch \
+ file://0001-build-use-usr-bin-env-for-python-scripts.patch \
+"
S = "${WORKDIR}/git"
EXTRA_OEMAKE += "ARCH=\"${@map_xvisor_arch(d.getVar('TARGET_ARCH'), d)}\" I=${D}"
-CONFIG = "${@get_oemake_config(d)}"
+CONFIG = "${@get_oemake_config(d.getVar('TARGET_ARCH'), d)}"
do_configure() {
oe_runmake ${CONFIG}
}
-do_install_append() {
+do_install:append() {
install -d ${D}
install -m 755 ${B}/build/vmm.* ${D}/
@@ -34,11 +38,20 @@ do_install_append() {
do_deploy () {
install -d ${DEPLOY_DIR_IMAGE}
install -m 755 ${D}/vmm.* ${DEPLOY_DIR_IMAGE}/
+
+ if [[ -f "${D}/*.dtb" ]]; then
+ install -m 755 ${D}/*.dtb ${DEPLOY_DIR_IMAGE}/
+ fi
}
addtask deploy after do_install
-FILES_${PN} += "/vmm.*"
+FILES:${PN} += "/vmm.*"
+FILES:${PN} += "/*.dtb"
-COMPATIBLE_HOST = "(riscv64|riscv32).*"
+COMPATIBLE_HOST = "(aarch64|riscv64|riscv32).*"
INHIBIT_PACKAGE_STRIP = "1"
+
+# ERROR: xvisor-git-r0 do_package_qa: QA Issue: File /vmm.elf in package xvisor doesn't have GNU_HASH (didn't pass LDFLAGS?) [ldflags]
+# ERROR: xvisor-git-r0 do_package_qa: QA Issue: xvisor: ELF binary /vmm.elf has relocations in .text [textrel]
+INSANE_SKIP:${PN} += "ldflags textrel"