summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* vcontainer-tarball: set S to UNPACKDIR for do_qa_unpack checkHEADmasterBruce Ashfield22 hours1-0/+3
| | | | | | | | | The recipe only has file:// SRC_URI entries which unpack directly into UNPACKDIR, not a ${BP} subdirectory. The new do_qa_unpack QA check in insane.bbclass warns when S doesn't exist after unpack. Set S explicitly to satisfy the check. Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* container-dummy-provides: Update to match changes in oe-coreRichard Purdie3 days2-0/+4
| | | | | | | | | OE-Core made changes to the way dummy providers work, update the container-dummy-provides to match them. It now needs a hint in layer.conf to make the core components aware of the presence of the dummy recipe. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* lxc: update to v6.0.6Bruce Ashfield3 days2-59/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes the build with recent glibc and picks up the following fixes: 2597434ae Release LXC 6.0.6 d128f134d cmd/lxc-user-nic: prevent OOB read in name_is_in_groupnames c43aeaaed lxc/network: define netlink uAPI constants for link properties 42b43b31c lxc/network: save/restore physical network interfaces altnames 810f44ba0 lxc/network: optimize netdev_get_mtu 5e68a7a63 meson.build: fix open_how include with glibc-2.43+ 540f9e2bc meson.build: fix openat2 include typo, fix with glibc-2.43 +FORTIFY 01b9e35a7 lxc: added support OpenRC init system 885496ccc src/confile: fix values of lxc.cap.keep and lxc.cap.drop 99c3206c7 tests/lxc-attach: ensure no data corruption happens during heavy IO on pts b964611b3 lxc/{terminal, file_utils}: ensure complete data writes in ptx/peer io handlers d6ccb9abe github: test io_uring-based event loop 0448c9dd2 build: update Makefile and meson.build aa4212023 Improve the dbus scope creation error handling f9e73517e cgfsng: fix reboots when using dbus 2072ea4c7 copy_rdepends: Don't fail on missing source file c7eac1180 start: Respect lxc.init.groups also in new user namespace 8ed8145d6 start: Remove outdated comment about group dropping e9921c3d7 build(deps): bump actions/upload-artifact from 5 to 6 97a2e4af5 Added documentation on unprivileged LXC containers 59a30025e added doc for --rbduser 54d323a2d added "--rbduser" option in "lxc-create -B rbd" a262afb5d Fallback to XDG_RUNTIME_DIR when /run not found d7068a338 checkonfig: Fixed compatible with toybox/gunzip 4cc343edf Initial changes without testing bdce7a634 Enumerated all values in array edc57196f meson: add meson option for running doxygen in build 058be42aa build: Check if P_PIDFD is defined 099089971 Ensure do_lxcapi_unfreeze returns false when getstate errors f9ff9ea2a build(deps): bump actions/checkout from 5 to 6 Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* xen: update to RELEASE-4.21.0 -tipBruce Ashfield4 days1-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes the build against the lastest glibc, and we get a few other bug fixes as well: 1c72306b1f domain: move vmtrace_alloc_buffer() invocation in vcpu_create() 999c6fadf7 vpci/msix: check for BARs enabled in vpci_make_msix_hole 8f3b637591 x86/ucode: Support discrete modules being CPIO archives 805e2b8ada x86/pv: Don't assume that INT $imm8 instructions are two bytes long 93614ffa48 x86/MCE: restore CPU vendor reporting to the outside world e10f3ad869 tools/ocaml: fix 32-bit truncation bug in stub_xc_domain_setmaxmem() 1879637505 tools/sd-notify.h: Include string.h too 76dc2d6071 systemd: fall back to default system-sleep dir without systemd-devel 52356ca655 xenstored: Add newline to error message 4a7d2f18e5 libxl: constify some local variables for building with glibc 2.43 8061625411 tools/xenstored: fix live update 6adc1004f7 libxl: Fix device_add QMP calls with QEMU 9.2 and newer 55bb6db081 xen/cpufreq: fix usages of align_timer() in the on-demand governor ae0708e940 xen/cpufreq: fix adjusting of sampling window on early exit 4778574053 common/domctl: xsm update for get_domain_state access 615199f05b VT-d: fix off-by-one when handling extra RMRR ranges a7380f1437 xen: add non-executable stack note uniformly 14db25be36 xen/x86: fix usage of [[:blank:]] with BSD grep 99bd17462d EFI: Fix relocating ESRT for dom0 afaf4e7b50 SUPPORT.md: extend "lifetime" Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* xen-tools: update to RELEASE-4.21.0 -tipBruce Ashfield4 days1-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Bumping xen to version RELEASE-4.21.0-61-g1c72306b1f, which comprises the following commits: 1c72306b1f domain: move vmtrace_alloc_buffer() invocation in vcpu_create() 999c6fadf7 vpci/msix: check for BARs enabled in vpci_make_msix_hole 8f3b637591 x86/ucode: Support discrete modules being CPIO archives 805e2b8ada x86/pv: Don't assume that INT $imm8 instructions are two bytes long 93614ffa48 x86/MCE: restore CPU vendor reporting to the outside world e10f3ad869 tools/ocaml: fix 32-bit truncation bug in stub_xc_domain_setmaxmem() 1879637505 tools/sd-notify.h: Include string.h too 76dc2d6071 systemd: fall back to default system-sleep dir without systemd-devel 52356ca655 xenstored: Add newline to error message 4a7d2f18e5 libxl: constify some local variables for building with glibc 2.43 8061625411 tools/xenstored: fix live update 6adc1004f7 libxl: Fix device_add QMP calls with QEMU 9.2 and newer 55bb6db081 xen/cpufreq: fix usages of align_timer() in the on-demand governor ae0708e940 xen/cpufreq: fix adjusting of sampling window on early exit 4778574053 common/domctl: xsm update for get_domain_state access 615199f05b VT-d: fix off-by-one when handling extra RMRR ranges a7380f1437 xen: add non-executable stack note uniformly 14db25be36 xen/x86: fix usage of [[:blank:]] with BSD grep 99bd17462d EFI: Fix relocating ESRT for dom0 afaf4e7b50 SUPPORT.md: extend "lifetime" Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* crun: set CLEANBROKEN to fix configure on rebuildBruce Ashfield5 days1-0/+4
| | | | | | | | | | | crun ships a GNUmakefile that aborts with "You must run ./autogen.sh && ./configure" when make clean is invoked before configure has run. The autotools_preconfigure prefunc triggers this when rebuilding (e.g. via multiconfig where sstate hash changes cause reconfiguration). Set CLEANBROKEN = "1" to skip the make clean in autotools_preconfigure. Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* container-bundle: add explicit do_fetch dependency on skopeo-nativeBruce Ashfield5 days1-0/+3
| | | | | | | | | | | | do_fetch_containers runs as a postfunc of do_fetch and needs skopeo from the native sysroot. However, DEPENDS only gates do_prepare_recipe_sysroot which runs after do_fetch, so with a clean tmp/ directory skopeo-native may not be built when do_fetch runs. Add an explicit do_fetch[depends] on skopeo-native:do_populate_sysroot when remote containers are configured so the ordering is correct. Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* container-registry: use FEATURE_PACKAGES for IMAGE_FEATURES validationBruce Ashfield5 days2-2/+11
| | | | | | | | | | | | | | | Move FEATURE_PACKAGES_container-registry from container-image-host.bb to meta-virt-container.inc so it is available to all image recipes. image.bbclass check_image_features() auto-discovers FEATURE_PACKAGES_* variables as valid image features (line 72), so defining the variable globally is sufficient — no IMAGE_FEATURES[validitems] needed. This avoids the signature pollution that IMAGE_FEATURES[validitems] causes when set globally, while allowing container-registry to be used as an IMAGE_FEATURES value in any image recipe. Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* kernel: skip kcfg search path injection for kernels with kernel-cacheBruce Ashfield5 days1-21/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The kcfg sysroot search path (type=kmeta) was being injected unconditionally, which caused fragment conflicts for linux-yocto kernels that already have their own kernel-cache meta branch. The injected search path would roll back fragments to an older set. Make the injection conditional and fix the root cause: - kernel_cache_feature() now checks SRC_URI for type=kmeta entries. Kernels with kernel-cache get short paths (e.g. cfg/container.scc) that resolve directly via the kernel-cache's search path. Kernels without kernel-cache get the sysroot-relative ../../ paths as before. - distro_cond_feature() now passes d.getVar('SRC_URI') instead of an empty string, so kernel_cache_feature() can actually see whether the kernel has a kernel-cache. - SRC_URI append and inject_kcfg_search_path prefunc skip when type=kmeta is already present. - Remove unused kernel_cache_cond_feature() which was the original conditional implementation but was never wired up. This restores the original design intent from commit 5c212911 ("allow conditional use of yocto-cfg-fragments"): kernel-cache is the first choice for fragment resolution, sysroot is the fallback. Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* yocto-cfg-fragments: bump to -tipBruce Ashfield5 days1-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | bc293057 bcm-2xxx-rpi: Fix configuration audit warnings (LEDS, BACKLIGHT) 8ef043d5 kver: bumping to v6.18.16 104a5c9d bcm-2xxx-rpi: Add raspberry pi5 config and add input feature by default 9b173d3a genericarm64: drop CONFIG_PINCTRL_SM8350_LPASS_LPI 0b1ea0e5 genericarm64.cfg: enable CONFIG_INTERCONNECT_QCOM_QCS8300 2fa1b419 genericarm64-pinctrl.cfg: enable CONFIG_PINCTRL_QCS8300 53f6a3a8 kver: bumping to v6.18.13 98a36302 cfgs/nfc: create an intel-nfc-vendor specific feature 6350b56a netfilter.cfg: enable NF_CONNTRACK_SNMP a425fdd0 pmem.cfg: enable DEV_DAX and DEV_DAX_HMEM 70eeaeff genericarm64.scc: enable TRANSPARENT_HUGEPAGE support d62a1267 security-arm64.cfg: rename CFI_CLANG to CFI b925ef94 security-arm64.cfg: correctly enable KASAN 1fdb98a4 security-arm64.cfg: add comment for ARM64_BTI_KERNEL 6d8bf6f0 security.cfg: move RANDOMIZE_MEMORY to x86_64 18fcb6dc arm.scc: move ARM_CPUIDLE to arm only 7e1d9b2b numa_x86_64.scc: move x86_64 config from numa.cfg to numa_x86_64.cfg e93e999e sound.cfg: split SND_SOC_WM8731 to I2C and SPI variants 5a567776 sound_x86.scc: take over x86 configs from sound.scc 1ae7ce94 genericarm64.cfg: enable MTD NAND ECC support 15d48f71 genericarm64.cfg: enable TI MTD NAND support 40a67254 genericarm64-serial.cfg: set SERIAL_8250_CONSOLE to y 5ee6148e qemu-kvm.cfg: remove extra space 9f780417 firmware.cfg: whitespace fixes bc221187 genericarm64.cfg: fix CONFIG_PM_DEVFREQ_EVENT aef69bf3 Revert "genericarm64.scc: enable OP-TEE support" 6f597e1a genericarm64.cfg: enable SCSI support for HiSilicon etc f1f313cf genericarm64.scc: enable RPMB support a4565911 genericarm64.scc: enable GNSS support 391566e2 gnss.scc: add feature d40a455d genericarm64.cfg: enable more bus drivers 20e41104 genericarm64.cfg: enable PCI_PASID support 0b2967f5 genericarm64.scc: enable NFC support 2643b37e nfc-vendor.scc: move Intel configs to nfc-vendor-intel.cfg b1d00b01 genericarm64.scc: enable RFKILL LED, INPUT and GPIO 92610953 rfkill-extra.scc: add fragment for RFKILL LEDs, input and GPIO support fc7d5f45 bluetooth.cfg: enable BT_LEDS support f18ec272 genericarm64.scc: enable HSR 79fa2c17 hsr.scc: add feature for High-availability Seamless Redundancy (HSR & PRP) 1313923a genericarm64.scc: enable Time Sensitive Networking e190eeff intel-x86.scc: enable hibernation with feature c941f4ee genericarm64.scc: enable hibernation support ce5c6d9d hibernation.scc: add feature 83620a7d bluetooth-usb.cfg: enable MediaTek and RealTek support cf6e1261 bluetooth-hw.cfg: enable BT_MTK ffdd0769 genericarm64.cfg: enable Microchip PHY support 9e9536d1 features/iommu: remove CONFIG_INTEL_IOMMU_FLOPPY_WA=y 61265288 genericarm64.cfg: enable CONFIG_QCA808X_PHY 8e6a09c7 kver: bumping to v6.18.11 Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* container-registry: make IMAGE_FEATURES local to image recipesBruce Ashfield5 days1-3/+0
| | | | | | | | | | | | | | | Remove the global IMAGE_FEATURES[validitems] registration entirely. Setting it in layer.conf or a globally-inherited bbclass changes the varflag value, which gets pulled into the signature of every recipe that depends on IMAGE_FEATURES — causing yocto-check-layer signature change failures. Image recipes that use the container-registry feature already set IMAGE_FEATURES[validitems] locally (e.g. container-image-host.bb). Users who want the feature in their own images add the one-liner: IMAGE_FEATURES[validitems] += "container-registry" Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* qemu-system-native: Tweak whitespace handlingRichard Purdie5 days1-1/+1
| | | | | | | | | | | | | | | | Avoid a yocto-check-layer issue: qemu-system-native:do_recipe_qa: 05c723e48cb4253cb80f1e5dcb63767b266c72cf8a83d3d7ff36a6622e43eb50 -> 7f42888db4f5572303288c58ad79c5267fa81da05a3a71288f91f309b50ed614 bitbake-diffsigs --task qemu-system-native do_recipe_qa --signature 05c723e48cb4253cb80f1e5dcb63767b266c72cf8a83d3d7ff36a6622e43eb50 7f42888db4f5572303288c58ad79c5267fa81da05a3a71288f91f309b50ed614 NOTE: Reconnecting to bitbake server... basehash changed from 1b770ad4a9b79d38c928331d17651d3d66a6ebc45822c336d7ab98bfa8ebfd94 to 6bc5e5507534603aa6f6ab862ab27ef9c0b9ffcfaa9922d7ef25cb563fab6ab9 Variable PACKAGECONFIG value changed: "fdt alsa kvm pie slirp png pixman sdl virglrenderer epoxy {++}" (whitespace changed) but moving the whitespace into the added option. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* container-registry: make IMAGE_FEATURES conditional on distro featuresBruce Ashfield6 days2-6/+3
| | | | | | | | | | | | | Move the container-registry IMAGE_FEATURES[validitems] registration from layer.conf into meta-virt-container-cfg.bbclass where it can be gated on DISTRO_FEATURES. The validitems varflag is now only registered when vcontainer or virtualization is in DISTRO_FEATURES. layer.conf is parsed before distro features are known, so inline Python cannot be used there. The bbclass is loaded via USER_CLASSES (deferred parsing) and already handles container profile configuration. Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* xen-guest-bundle: drop QA skip for installed-vs-shippedBruce Ashfield6 days1-1/+1
| | | | | | | | | | While we need the buildpaths QA skip due to the 3rd party nature of some bundles, we don't need the installed-vs-shipped. There's no reason why a bundled guest isn't packaging all its files (or deleting them). Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* container-registry: drop container-registry-populateBruce Ashfield6 days2-110/+0
| | | | | | | | | | | | | | | | Somehow we have two similar registry recipes that were developed from a different pont of view. We don't need both. container-registry-index is the mature, QA-compliant version that also generates the standalone container-registry.sh helper script. container-registry-populate is an older, simpler version that does only the push, so we drop it here Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* cockpit-machines: fix source specification and conditionally skipBruce Ashfield6 days1-1/+4
| | | | | | | | | | | | | | | This recipe can't be built without the main recipe, which is in meta-oe meta-webserver. Fix a S assigment, so it'll parse And then skip if meta-webserver isn't in bblayers (not in collections). This will ensure that world builds don't try and pick it up when processing meta-virt. Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* example-xen-guest-bundle: require xen and x11 in DISTRO_FEATURESMartin Jansa7 days1-1/+4
| | | | | | | | | | | | to match the image recipe from XEN_GUEST_BUNDLES Fixes: ERROR: Nothing PROVIDES 'xen-guest-image-minimal' xen-guest-image-minimal was skipped: using DISTRO 'distro', which is missing required DISTRO_FEATURES: 'xen' in bitbake world builds Signed-off-by: Martin Jansa <martin.jansa@gmail.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* sanity: default virtualization distro check to falseBruce Ashfield7 days2-13/+2
| | | | | | | | | | | | | | | | | We've terrorized the users of meta-virt for long enough with the warning about the virtualization distro feature not being set. Modern OE has the features_check capability so recipes and functionality that need the distro feature to be set can just check it themselves. No need to warn over and over again. For now, it just default to off, but the check can be completely removed in the future (since it does cause some parse time overhead). Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* xen/4.21: fix arm64 build with the most recent binutilsBruce Ashfield2026-03-033-0/+110
| | | | | | | | | The upgrade of binutils in OE core broke the xen build on arm64 due to unsupported instructions. We cherry-pick a patch from xen master to fix the issue. Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* conf/vruntime: exclude backfill distro featuresBruce Ashfield2026-03-031-0/+7
| | | | | | | | | | | | | | Block backfill features not needed by container runtime environments. OE-core's DISTRO_FEATURES_BACKFILL auto-appends these to DISTRO_FEATURES unless explicitly listed here. Without this, gobject-introspection-data enables python3-pygobject (which DEPENDS on cairo), and wayland enables pygobject's cairo PACKAGECONFIG — both are masked in vruntime builds. We are using: ISTRO_FEATURES_BACKFILL_CONSIDERED = "pulseaudio gobject-introspection-data opengl ptest multiarch wayland vulkan" Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* xen-tools: update to RELEASE-4.21.0 -tipBruce Ashfield2026-03-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bumping xen to version RELEASE-4.21.0-42-gafaf4e7b50, which comprises the following commits: afaf4e7b50 SUPPORT.md: extend "lifetime" 056103e7ad xen: Use MFLAGS for silent-mode detection 867b7d3f97 xen/kexec: return error code for unknown hypercalls d2a6413550 x86/domain: adjust limitation on shared_info allocation below 4G 6228ea8acd xen/mm: allow deferred scrub of physmap populate allocated pages 15cd2b8f1b xen/mm: remove aliasing of PGC_need_scrub over PGC_allocated 39c90c8dee PCI: handle PCI->PCIe bridges as well in free_pdev() 74b26c53d3 x86/EFI: correct symbol table generation with older GNU ld 3f4bf1e876 x86/amd: Fold another DE_CFG edit into amd_init_de_cfg() 8d7a0f8661 build/non-x86: fix symbol lookup in presence of build-id 25db82b062 symbols: don't omit "end" symbols upon mixed code / data aliases fc024ebf24 symbols: ensure sorting by value yields reproducible outcome b75f39c692 flask: fix gcov build with gcc14+ 8cb60ba236 PCI: handle PCI->PCIe bridges as well in alloc_pdev() 4e3c9c2eca x86/CPU: extend is_forced_cpu_cap()'s "reach" b3f59203a5 x86/time: deal with negative deltas in get_s_time_fixed() bc63b09ecc xen/domain: Disallow XENMEM_claim_pages on dying domains 97593f78ea symbols: don't use symbols-dummy ee66c42166 symbols: re-number intermediate files 3146587dbc x86/spec-ctrl: Fix incomplete IBPB flushing during context switch 41b9ae5d7e x86/shadow: don't overrun trace_emul_write_val 2872cd3121 cirrus-ci: introduce FreeBSD 15.0-RELEASE as "current" version c692a6786b x86: fix incorrect return value for has_if_pschange_mc fe0d896902 x86/PVH: mark pvh_setup_mmcfg() __init 82fe260552 xen/mm: move adjustment of claimed pages counters on allocation b579e832de x86/hvm: be more strict with XENMAPSPACE_gmfn source types e39831f590 xen/mm: reject XENMEM_claim_pages when using LLC coloring f805b61268 x86/AMD: avoid REP MOVSB for Zen3/4 11f9427100 vPCI: avoid bogus "overlap in extended cap list" warnings 7ab1f4939a xen/x86: Pass TPM ACPI table to PVH dom0 1cacccbace x86/mm: update log-dirty bitmap when manipulating P2M 7990330478 x86/pod: fix decrease_reservation() clearing of M2P entries 16e22efbde x86/amd: Fix race editing DE_CFG 81e71ef34f x86/amd: Stop updating the Zenbleed mitigation dynamically ba9142efd7 x86/vhpet: Fix sanitization of legacy IRQ route 747d10b76f x86/msix: fix incorrect refcount decrease in msixtlb c7e69564e5 x86/ucode: Fix error handling during parallel ucode load 5d002b7470 x86emul/test: correct compiler checking and avoid it when merely cleaning 6adf28094f xen: Fix EFI buildid alignment 653a3dd92a x86emul/test: extend cleaning of generated files 3d966b5f13 kconfig: remove references to docs/misc/kconfig{,-language}.txt files 14ad692e3b update Xen version to 4.21.1-pre 06af9ef229 Update to Xen 4.21 Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* xen: update to RELEASE-4.21.0 -tipBruce Ashfield2026-03-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bumping xen to version RELEASE-4.21.0-42-gafaf4e7b50, which comprises the following commits: afaf4e7b50 SUPPORT.md: extend "lifetime" 056103e7ad xen: Use MFLAGS for silent-mode detection 867b7d3f97 xen/kexec: return error code for unknown hypercalls d2a6413550 x86/domain: adjust limitation on shared_info allocation below 4G 6228ea8acd xen/mm: allow deferred scrub of physmap populate allocated pages 15cd2b8f1b xen/mm: remove aliasing of PGC_need_scrub over PGC_allocated 39c90c8dee PCI: handle PCI->PCIe bridges as well in free_pdev() 74b26c53d3 x86/EFI: correct symbol table generation with older GNU ld 3f4bf1e876 x86/amd: Fold another DE_CFG edit into amd_init_de_cfg() 8d7a0f8661 build/non-x86: fix symbol lookup in presence of build-id 25db82b062 symbols: don't omit "end" symbols upon mixed code / data aliases fc024ebf24 symbols: ensure sorting by value yields reproducible outcome b75f39c692 flask: fix gcov build with gcc14+ 8cb60ba236 PCI: handle PCI->PCIe bridges as well in alloc_pdev() 4e3c9c2eca x86/CPU: extend is_forced_cpu_cap()'s "reach" b3f59203a5 x86/time: deal with negative deltas in get_s_time_fixed() bc63b09ecc xen/domain: Disallow XENMEM_claim_pages on dying domains 97593f78ea symbols: don't use symbols-dummy ee66c42166 symbols: re-number intermediate files 3146587dbc x86/spec-ctrl: Fix incomplete IBPB flushing during context switch 41b9ae5d7e x86/shadow: don't overrun trace_emul_write_val 2872cd3121 cirrus-ci: introduce FreeBSD 15.0-RELEASE as "current" version c692a6786b x86: fix incorrect return value for has_if_pschange_mc fe0d896902 x86/PVH: mark pvh_setup_mmcfg() __init 82fe260552 xen/mm: move adjustment of claimed pages counters on allocation b579e832de x86/hvm: be more strict with XENMAPSPACE_gmfn source types e39831f590 xen/mm: reject XENMEM_claim_pages when using LLC coloring f805b61268 x86/AMD: avoid REP MOVSB for Zen3/4 11f9427100 vPCI: avoid bogus "overlap in extended cap list" warnings 7ab1f4939a xen/x86: Pass TPM ACPI table to PVH dom0 1cacccbace x86/mm: update log-dirty bitmap when manipulating P2M 7990330478 x86/pod: fix decrease_reservation() clearing of M2P entries 16e22efbde x86/amd: Fix race editing DE_CFG 81e71ef34f x86/amd: Stop updating the Zenbleed mitigation dynamically ba9142efd7 x86/vhpet: Fix sanitization of legacy IRQ route 747d10b76f x86/msix: fix incorrect refcount decrease in msixtlb c7e69564e5 x86/ucode: Fix error handling during parallel ucode load 5d002b7470 x86emul/test: correct compiler checking and avoid it when merely cleaning 6adf28094f xen: Fix EFI buildid alignment 653a3dd92a x86emul/test: extend cleaning of generated files 3d966b5f13 kconfig: remove references to docs/misc/kconfig{,-language}.txt files 14ad692e3b update Xen version to 4.21.1-pre 06af9ef229 Update to Xen 4.21 Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* image-oci: update oci-iamge-tools + runc instructionsBruce Ashfield2026-03-031-13/+34
| | | | | | | | | | | | | | Our runc is now sufficiently far ahead of the oci-image-tools such that they aren't compatible. But They can still be made to work with a runc generated spec. Update the comments to show a flow that works if using runc directly is desired. Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* buildah: update to v1.43.0Bruce Ashfield2026-03-021-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bumping buildah to version v1.43.0-1-gbbc4bd12f, which comprises the following commits: 0158b5b31 [release-1.43] Bump Buildah to v1.43.0 f40d38a2f [release-1.43] fix source test 07b8495c8 [release-1.43] Bump common 0.67.0, image 5.39.1, storage 1.62.0 7178b10ac [release-1.43] Bump dest branch in cirrus to 1.43 acca15722 fix(build): make --tag oci-archive:xxx.tar work with simple images 40b5e371e test: do not untar archive into fs when checking file names 45b48af90 tests: use cached images instead of fedoraproject.org 662aa1598 chroot.bats(chroot with overlay root): ensure we can overlay 3877dc97d Run: don't try to encode SystemContext with json c0cc97255 [release-1.42] Bump Buildah to v1.42.2 307d1a3a4 [release-1.42] Bump runc to v1.3.4 de21106b6 [release-1.42] Bump Buildah to v1.42.1 f0700c546 [release-1.42] bump runc to v1.3.3 - CVE-2025-52881 22cd531e9 RPM: build with sequoia on F43+ 1ba41f035 Bump to Buildah v1.42.0 c23bf6bf1 Bump to storage v1.61.0, image v5.38.0, common v0.66.0 858a514ff fix(deps): update module github.com/openshift/imagebuilder to v1.2.19 a0bc52535 fix(deps): update module github.com/openshift/imagebuilder to v1.2.18 4caee77d1 copier: ignore user.overlay.* xattrs 5a849d176 commit: always return the config digest as the image ID 92b342392 fix(deps): update module golang.org/x/crypto to v0.43.0 114aa3d8c fix(deps): update module golang.org/x/sys to v0.37.0 58f0f862b fix(deps): update module github.com/docker/docker to v28.5.1+incompatible 65929b93a fix(deps): update module github.com/moby/buildkit to v0.25.1 31cb2af46 fix(deps): update module github.com/opencontainers/runc to v1.3.2 8efc91385 fix(deps): update module github.com/docker/docker to v28.5.0+incompatible ceff05295 fix(deps): update module github.com/moby/buildkit to v0.25.0 b7961ac34 fix(deps): update github.com/containers/luksy digest to 2cf5bc9 a654d3534 Make some test files different from each other 82702b493 Revert "fix(deps): update module github.com/cyphar/filepath-securejoin to v0.5.0" 3748cda03 Also run integration tests with the Sequoia backend c9c1d764c Allow users to build against podman-sequoia in non-default locations e3468665b fix(deps): update module github.com/cyphar/filepath-securejoin to v0.5.0 5bb6d9e48 .cirrus.yml: Test Vendoring bump golang e3f55fec6 vendor: bump go.podman.io/{common,image,storage} to main 6d0c9ed7e fix(deps): update module golang.org/x/crypto to v0.42.0 fbe61f730 fix(deps): update module github.com/docker/docker to v28.4.0+incompatible 881f14f01 fix(deps): update module github.com/moby/buildkit to v0.24.0 bea03a01d fix(deps): update module github.com/spf13/pflag to v1.0.10 dcb6da097 fix(deps): update module github.com/fsouza/go-dockerclient to v1.12.2 477dd3563 fix(deps): update module github.com/opencontainers/runc to v1.3.1 296a8f3eb fix(deps): update module github.com/opencontainers/cgroups to v0.0.5 1c384c959 fix(deps): update module golang.org/x/sync to v0.17.0 9cd4768bd tests/run.bats: "run masks" test: accept "unreadable" masked directories a18468f70 Run: create parent directories of mount targets with mode 0755 6e4d1ca83 tests/run.bats: "run masks" test: accept "unreadable" masked directories af18a2ea6 New VM images 42d6b68db Suppress a linter warning 7aedebdcc modernize: JSON doesn't do "omitempty" structs, so stop asking 802b06979 modernize: use maps.Copy() instead of iterating over a map to copy it 16680a4df modernize: use strings.CutPrefix/SplitSeq/FieldsSeq ebc9b4049 Update expected/minimum version of Go to 1.24 76c18c897 chroot: use $PATH when finding commands 02e42929f [skip-ci] Update actions/stale action to v10 95591dbc8 Update module github.com/ulikunitz/xz to v0.5.15 [SECURITY] dd4f9fcd6 Update go.sum 7c0c647d6 New VM images ac8573525 Update module github.com/openshift/imagebuilder to v1 3acceccf6 Update module github.com/spf13/cobra to v1.10.1 a0a9ac638 Switch common, storage and image to monorepo. c448438ef Update module github.com/stretchr/testify to v1.11.1 57c9d52c6 Update module go.etcd.io/bbolt to v1.4.3 c4cfbcda8 Handle tagged+digested references when processing --all-platforms fc8d43482 Update module github.com/stretchr/testify to v1.11.0 b436176d4 Add --transient-store global option fc748f85a Support "--imagestore" global flags a20e25136 Commit: don't depend on MountImage(), because .imagestore 13db28cdb Adding mohanboddu as community manager to MAINTAINERS.md 69a50588c Rework how we decide what to filter out of layer diffs bf2cbe164 Note that we have to build `true` first for the sake of its tests 473656b9d copier.Stat(): return owner UID and GID if available 738fa0d3c copier.Get(): ensure that directory entries end in "/" 9461dd61d copier.Get(): strip user and group names from entries fd498cbf5 imagebuildah.Executor/StageExecutor: check numeric --from= values fceb8d9ed Losen the dependency on go-connections/tlsconfig e78c0ad5a fix(deps): update module golang.org/x/crypto to v0.41.0 b49f0e2a5 fix(deps): update module golang.org/x/term to v0.34.0 494fd9dfa fix(deps): update module github.com/docker/go-connections to v0.6.0 4912cf45d fix(deps): update module golang.org/x/sys to v0.35.0 2ae2ec75b copy: assume a destination with basename "." is a directory e31b04729 generatePathChecksum: ignore ModTime, AccessTime and ChangeTime 3e92772f6 fix(deps): update module github.com/seccomp/libseccomp-golang to v0.11.1 11e32da8d fix(deps): update module github.com/containers/common to v0.64.1 70d0451b8 History should note unset-label, timestamp, and rewrite-timestamp 7cecaa79e pkg/cli.GenBuildOptions(): don't hardwire optional bools 7cf2b7fb7 fix(deps): update module github.com/containers/image/v5 to v5.36.1 fb6ce9d07 imagebuildah.StageExecutor.Execute: commit more "no instructions" cases 0d1d1a4df fix(deps): update module github.com/containers/storage to v1.59.1 87f60f60c Only suppress "noted" items when not squashing 27c40b3db Reap stray processes b271aecf4 fix(deps): update github.com/containers/luksy digest to 8fccf78 06207266f fix(deps): update module github.com/docker/docker to v28.3.3+incompatible f949a49ab Restore the default meaning of `--pull` (should be `always`). ff07ebc3e Test that pulled up parent directories are excluded at commit 7d302c38d Exclude pulled up parent directories at commit-time 95013b363 copier.Ensure(): also return parent directories 8807a0097 copier.MkdirOptions: add ModTimeNew e729f60d5 fix(deps): update module github.com/containers/common to v0.64.0 cce5f9c32 Bump to Buildah v1.42.0-dev 8b5354ee8 fix(deps): update module github.com/spf13/pflag to v1.0.7 7a986ebcf CI: make runc tests non-blocking 2df30a83c build,add: add support for corporate proxies Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* xen: update documentation with vxn/containerd integration and runtime testsBruce Ashfield2026-02-262-1/+118
| | | | | | | | | | | | | | | | README-xen.md: - Add vxn and containerd integration section describing all execution paths (containerd, vxn standalone, vdkr/vpdmn, native Docker/Podman) - Add memory requirements section explaining QB_MEM_VALUE=1024 is insufficient for vxn/vctr and documenting qemuparams="-m 4096" - Add runtime tests section with build prerequisites, test commands, and skip behavior - Fix x86-64 runqemu command to include qemuparams="-m 4096" vxn/README.md: - Add testing section referencing the pytest runtime test suite Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* xen: add runtime boot tests for hypervisor, guest bundling, vxn and containerdBruce Ashfield2026-02-263-1/+502
| | | | | | | | | | | | | | | | | | New test_xen_runtime.py boots xen-image-minimal via runqemu and verifies: - Xen hypervisor running (xl list, dmesg, Dom0 memory cap) - Bundled guest autostart (alpine visible in xl list) - vxn standalone (vxn run --rm alpine echo hello) - containerd/vctr integration (ctr pull + vctr run) Uses pexpect-based XenRunner with module-scoped fixture (boot once, run all tests). TERM=dumb set after login to suppress terminal UI from ctr/vxn progress bars. Free memory check skips vxn/vctr tests gracefully when insufficient Xen memory available. Also registers 'boot' marker in conftest.py and documents build prerequisites, test options and skip behavior in README.md. Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* vcontainer: fix daemon mode missing shared directory for 9pBruce Ashfield2026-02-261-1/+6
| | | | | | | | | | | DAEMON_SHARE_DIR was referenced in the CA certificate copy and idle watchdog paths but never assigned, causing 'cp: cannot create regular file /ca.crt: Permission denied' when starting the daemon. Create the share directory under DAEMON_SOCKET_DIR and register it as a 9p mount, matching the path expected by daemon_run(). Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* xen: add configuration tests and update documentationBruce Ashfield2026-02-262-8/+156
| | | | | | | | | | | | | Add TestXenImageMinimalX86Config test class verifying: - QB_CPU_KVM host passthrough for Xen CPUID filtering - QB_MEM_VALUE override (not QB_MEM which can't override bbclass) - dom0_mem in both QB_XEN_CMDLINE_EXTRA and WKS syslinux config - vgabios SAVANNAH_GNU_MIRROR usage Update Alpine recipe tests for per-arch checksums (name=${ALPINE_ARCH}) and S variable. Add qemux86-64 build and boot section to README-xen.md. Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* xen: fix x86-64 boot and guest bundling issuesBruce Ashfield2026-02-264-6/+15
| | | | | | | | | | | | | | | | | | Fix several issues found during x86-64 Xen testing: - xen-image-minimal: use -cpu host for KVM to avoid Xen CPUID filtering stripping AVX/AVX2 from x86-64-v3 builds, causing illegal instruction crashes in Dom0 - xen-image-minimal: use QB_MEM_VALUE (not QB_MEM) to properly override the hard assignment in qemuboot-xen-defaults.bbclass - xen-image-minimal: set dom0_mem=512M via QB_XEN_CMDLINE_EXTRA - qemuboot-xen-x86-64.cfg: add dom0_mem=512M to static syslinux config so guest autostart has memory available - vgabios: use ${SAVANNAH_GNU_MIRROR} for reliable downloads - alpine-xen-guest-bundle: add per-architecture checksums for aarch64 and x86_64 tarballs, fix S variable warning Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* vxn: add host-side OCI image cache and fix Docker iptables conflictBruce Ashfield2026-02-262-11/+275
| | | | | | | | | | | | | | | | | | | Add a host-side OCI image cache at ~/.vxn/images/ for the vdkr/vpdmn standalone Xen path. Images pulled via skopeo are stored in a content-addressed layout (refs/ symlinks + store/ OCI dirs) so subsequent runs hit the cache without network access. New commands on Xen: pull, images, rmi, tag, inspect, image <subcmd>. The run path is unchanged — cache integration into hv_prepare_container is deferred to a follow-up. Also fix Docker iptables conflict: when docker-moby and vxn-docker-config coexist on Dom0, Docker's default FORWARD DROP policy blocks DHCP for Xen DomU vifs on xenbr0. Adding "iptables": false to daemon.json prevents Docker from modifying iptables since VM-based containers manage their own network stack. Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* vxn: add Docker/Podman integration and CLI frontendsBruce Ashfield2026-02-268-101/+470
| | | | | | | | | Add vdkr/vpdmn as Dom0 target packages with Xen auto-detection, native Docker/Podman config sub-packages, and OCI runtime fixes for Docker compatibility (JSON logging, root.path, kill --all, monitor PID lifecycle). Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* vxn: add controlling terminal and clean up interactive outputBruce Ashfield2026-02-261-9/+8
| | | | | | | | | | | | | Use setsid -c to establish a controlling terminal for the container shell, fixing "can't access tty; job control turned off" and enabling Ctrl-C signal delivery. Run in a subshell so setsid() succeeds without forking (PID 1 is already a session leader). Remove [vxn] diagnostic markers from interactive output now that terminal mode is working. Suppress mount warning on read-only input disk. Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* vxn: fix terminal mode hang and enable interactive container supportBruce Ashfield2026-02-264-17/+67
| | | | | | | | | | | | | | | | | | | | | | | | The containerd shim's Create RPC hung indefinitely because go-runc captures the OCI runtime's stdout via a pipe, and cmd.Wait() blocks until all holders of the pipe's write end close it. The background monitor subshell inherited this pipe fd and held it open, preventing the shim from ever proceeding to ReceiveMaster() or calling Start. Fix by closing inherited stdout/stderr in the terminal-mode monitor with exec >/dev/null before entering the domain poll loop. Non-terminal mode is unaffected because the shim configures IO via FIFO dup2, where cmd.Wait() only waits for process exit. Additional changes for terminal mode support: - vxn-sendtty: set PTY to raw mode (cfmakeraw) before sending fd - vxn-oci-runtime: wait up to 5s for xenconsoled PTY, capture sendtty return code, write persistent debug file to /root/vxn-tty-debug, log every runtime invocation, remove stale debug logging - vxn-init.sh: add [vxn] diagnostic markers for terminal visibility, suppress kernel console messages early in interactive mode - vcontainer-preinit.sh: suppress kernel messages in quiet mode Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* runx, go-build: mark as deprecated in favor of vxnBruce Ashfield2026-02-262-4/+11
| | | | | | | | | Update SUMMARY and DESCRIPTION to note that runx is unmaintained (upstream dormant since 2022) and that vxn provides the same Xen DomU container functionality with pluggable hypervisor backends. go-build is the serial FD handler companion to runx and is similarly superseded. Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* linux-yocto: add vxn distro feature and Xen PV kernel configBruce Ashfield2026-02-263-3/+6
| | | | | | | | | | Add 'vxn' to DISTRO_FEATURES in vruntime.conf to enable Xen PV guest kernel configuration. When set, linux-yocto_virtualization.inc includes vxn.cfg which enables Xen PVH frontend drivers and the 9p Xen transport (NET_9P_XEN). The base 9p stack comes from the existing vcontainer feature via cfg/container.scc. Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* xen: add guest bundling infrastructure with cross-install classBruce Ashfield2026-02-263-25/+492
| | | | | | | | | | | | | Add xen-guest-cross-install.bbclass for bundling Xen guest images into Dom0 host images at build time. Supports per-guest configuration via varflags (memory, vcpus, vif, kernel extra), custom config files, external/pre-built guests, and autostart via /etc/xen/auto/ symlinks. Also add example-xen-guest-bundle recipe as a template, and simplify xen-guest-image-minimal by removing the old XEN_GUEST_AUTO_BUNDLE do_deploy mechanism in favor of the new class-based approach. Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* vcontainer: inject vxn-init.sh into vdkr and vpdmn rootfs imagesBruce Ashfield2026-02-262-0/+8
| | | | | | | | | Install vxn-init.sh alongside the existing init scripts in both vdkr and vpdmn rootfs images. The Xen backend selects it at boot via the vcontainer.init=/vxn-init.sh kernel command line parameter. Add file-checksums tracking so rootfs rebuilds when the script changes. Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* vcontainer: add bundle command for OCI runtime bundle creationBruce Ashfield2026-02-261-0/+118
| | | | | | | | | | Add 'bundle' command to the vcontainer CLI for creating OCI runtime bundles from container images. Pulls the image via skopeo, extracts layers into rootfs/, resolves entrypoint/cmd/env from OCI config, and generates config.json. Supports command override via -- separator. Only available on the Xen (vxn) backend. Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* vcontainer: generalize init scripts for pluggable hypervisor backendsBruce Ashfield2026-02-263-15/+22
| | | | | | | | | | | Make preinit and guest init scripts hypervisor-agnostic: - vcontainer-preinit.sh: add vcontainer.init= cmdline parameter for init script selection and vcontainer.blk= for block device prefix (QEMU uses /dev/vda, Xen uses /dev/xvda) - vdkr-init.sh, vpdmn-init.sh: use NINE_P_TRANSPORT variable for 9p mount transport (virtio for QEMU, xen for Xen) Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* vcontainer: add QEMU hypervisor backend and register in recipesBruce Ashfield2026-02-263-1/+267
| | | | | | | | | | Add vrunner-backend-qemu.sh implementing the hypervisor interface for QEMU (arch setup, KVM detection, disk/network/9p options, VM lifecycle, QMP control). Register backend scripts in vcontainer-native and vcontainer-tarball recipes so they are available in both build-time and standalone tarball contexts. Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* vxn: add containerd OCI runtime integrationBruce Ashfield2026-02-267-210/+935
| | | | | | | | | | | | | | | | | | | | | | | | | | Add shell-based OCI runtime (vxn-oci-runtime) that enables containerd to manage Xen DomU containers through the standard runc shim. Non-terminal container output flows back to ctr via the shim's pipe mechanism. New files: - vxn-oci-runtime: OCI runtime (create/start/state/kill/delete/features/logs) - vxn-sendtty.c: SCM_RIGHTS helper for terminal mode PTY passing - containerd-shim-vxn-v2: PATH trick wrapper for runc shim coexistence - containerd-config-vxn.toml: CRI config (vxn default, runc fallback) - vctr: convenience wrapper injecting --runtime io.containerd.vxn.v2 Key design: - Monitor subprocess uses wait on xl console (not sleep-polling) for instant reaction when domain dies, then extracts output markers and writes to stdout (shim pipe -> containerd FIFO -> ctr client) - cmd_state checks monitor PID liveness (not domain status) to prevent premature cleanup race that killed monitor before output - cmd_delete always destroys remnant domains (no --force needed) - Coexists with runc: /usr/libexec/vxn/shim/runc symlink + PATH trick Verified: vctr run --rm, vctr run -d, vxn standalone, vxn daemon mode. Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* vxn: add per-container DomU lifecycle and memres persistent DomUBruce Ashfield2026-02-264-154/+922
| | | | | | | | | | | | | | | | | | | | | | | | Per-container DomU lifecycle: - run -d: per-container DomU with daemon loop and PTY-based IPC - ps: show Running vs Exited(code) via ===STATUS=== PTY query - exec/stop/rm: send commands to per-container DomU - logs: retrieve entrypoint output from running DomU - Entrypoint death detection with configurable grace period - Graceful error messages for ~25 unsupported commands - Command quoting fix: word-count+cut preserves internal spaces Memres (persistent DomU for fast container dispatch): - vxn memres start/stop/status/list for persistent DomU management - vxn run auto-dispatches to memres via xl block-attach + RUN_CONTAINER - Guest daemon loop handles ===RUN_CONTAINER===: mount hot-plugged xvdb, extract OCI rootfs, chroot exec entrypoint, unmount, report - Falls back to ephemeral mode when memres is occupied (PING timeout) - Xen-specific memres list shows xl domains and orphan detection Tested: vxn memres start + vxn run --rm alpine echo hello + vxn run --rm hello-world both produce correct output. Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* yocto-builder: require systemdBruce Ashfield2026-02-261-0/+3
| | | | | | | | To avoid check layer issues, and distros without systemd trying to build this package group, add a check and requirement for systemd to be defined. Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* vxn: fix non-interactive mode for clean container outputBruce Ashfield2026-02-262-10/+41
| | | | | | | | | | | | | | | | | | | | Fix several issues preventing non-interactive mode (vxn --no-daemon run) from showing clean container output: - Fix console capture: check DAEMON_MODE instead of DAEMON_SOCKET in Xen backend so ephemeral runs use xl console capture instead of the daemon socat bridge (DAEMON_SOCKET is always set, DAEMON_MODE is only "start" for actual daemon launches) - Fix race condition: add post-loop marker detection after VM exits, with 2s delay for xl console to flush its buffer - Add stdbuf -oL to xl console for line-buffered output - Suppress mke2fs stdout (was only redirecting stderr) - Suppress kernel console messages during VM lifecycle in non-verbose mode - Fix grep -P (Perl regex) for BusyBox compatibility in exit code parsing - Preserve temp directory on failure for debugging - Fix hardcoded "QEMU" in error messages to "VM" Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* vxn: add Xen DomU container runtime with OCI image supportBruce Ashfield2026-02-269-311/+1860
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | vxn runs OCI containers as Xen DomU guests — the VM IS the container. No Docker/containerd runs inside the guest; the init script directly mounts the container rootfs and execs the entrypoint via chroot. Host-side (Dom0): - vxn.sh: Docker-like CLI wrapper (sets HYPERVISOR=xen) - vrunner-backend-xen.sh: Xen xl backend for vrunner - hv_prepare_container(): pulls OCI images via skopeo, resolves entrypoint from OCI config using jq on host - xl create for VM lifecycle (PVH on aarch64, PV on x86_64) - Bridge networking with iptables DNAT for port forwards - Console capture via xl console for ephemeral mode Guest-side (DomU): - vxn-init.sh: mounts container rootfs from input disk, extracts OCI layers, execs entrypoint via chroot - Supports containers with or without /bin/sh - grep/sed fallback for OCI config parsing (no jq needed) - Daemon mode with command loop on hvc1 - vcontainer-init-common.sh: hypervisor detection, head -n fix - vcontainer-preinit.sh: init selection via vcontainer.init= Build system: - vxn-initramfs-create.inc: assembles boot blobs from vruntime multiconfig, injects vxn-init.sh into rootfs squashfs - vxn_1.0.bb: Dom0 package with scripts + blobs - nostamp on install/package chain (blobs from DEPLOY_DIR are untracked by sstate) - vxn.cfg: Xen PV kernel config fragment Tested: vxn -it --no-daemon run --rm hello-world Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* xen: document guest import system and add testsBruce Ashfield2026-02-262-95/+490
| | | | | | | | | | | | Add 3rd-party guest import section to README-xen.md covering import types, kernel modes, Alpine example, and how to add custom import handlers. Add test_xen_guest_bundle.py with 46 pytest tests covering bbclass structure, import handlers, kernel modes, license warning, Alpine recipe, and README content. Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* alpine-xen-guest-bundle: new recipe for Alpine Linux Xen guestBruce Ashfield2026-02-261-0/+43
| | | | | | | | | | | | Fetches Alpine Linux 3.23 minirootfs tarball and uses the xen-guest-bundle import system (rootfs_dir type) to create a 128MB ext4 disk image. Packages as an autostarting PV guest using the shared host kernel. Install into a Dom0 image with: IMAGE_INSTALL:append:pn-xen-image-minimal = " alpine-xen-guest-bundle" Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* xen-guest-bundle: add guest import system for 3rd-party imagesBruce Ashfield2026-02-261-18/+254
| | | | | | | | | | | | | | | | | | | | | | | | | | Add extensible import system to convert fetched source formats (tarballs, qcow2, etc.) into Xen-ready disk images at build time. Built-in import types: - rootfs_dir: extracted directory → ext4 via mkfs.ext4 -d - qcow2: QCOW2 → raw via qemu-img convert - ext4/raw: copy passthrough Per-guest varflags control the import: XEN_GUEST_SOURCE_TYPE[guest] = "rootfs_dir" XEN_GUEST_SOURCE_FILE[guest] = "alpine-rootfs" XEN_GUEST_IMAGE_SIZE[guest] = "128" Also adds three kernel modes for resolve_bundle_kernel(): - (not set): shared host kernel from DEPLOY_DIR_IMAGE - "path": custom kernel, checks UNPACKDIR then DEPLOY_DIR_IMAGE - "none": HVM guest, omits kernel= from config Native tool dependencies and fakeroot are resolved automatically at parse time. External guests emit a single license warning at do_compile time (prefunc, not parse-time). Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* xen-guest-bundle: add bbclass for packaging Xen guest bundlesBruce Ashfield2026-02-261-0/+405
| | | | | | | | | | | | | | | | New bbclass that creates installable packages bundling Xen guest images (rootfs + kernel + config). When installed via IMAGE_INSTALL into a Dom0 image that inherits xen-guest-cross-install, guests are automatically deployed by merge_installed_xen_bundles(). Features: - Parse-time dependency generation from XEN_GUEST_BUNDLES - Per-guest varflags for memory, vcpus, vif, extra, disk, name - Custom config file support via XEN_GUEST_CONFIG_FILE varflag - Explicit rootfs/kernel path overrides for external guests - Manifest-based packaging for cross-install integration Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* crun: inherit features_check for REQUIRED_DISTRO_FEATURESBruce Ashfield2026-02-251-1/+1
| | | | | | | | | The recipe sets REQUIRED_DISTRO_FEATURES:class-native but never inherits features_check, so the requirement was silently ignored. OE-core now has an unhandled-features-check QA test that catches this and fails the build. Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>