[PATCH 00/16] qemu: Bump minimum qemu to qemu-6.2.0 and clean up capabilities
by Peter Krempa
Summary:
This series was originally just meant to clean up non-release
capabilities but it grew since we dropped debian-11 and Michal asked me
to add dev-version for amdsev variant.
Some of the long patches were truncated, fetch the proper patches at
git fetch https://gitlab.com/pipo.sk/libvirt.git qemu_caps
Note that this series also drops caps dumps which were not updated from
the development version after final version was released. This includes:
- caps_6.2.0_aarch64
- caps_7.0.0_aarch64
- caps_8.0.0_riscv64
If anyone cares enough I'll accept a replacement patch updating the caps
but as outlined in the commit message I don't think we need to do
archaeology for these as we have newer versions.
I also pinged the original author of caps_9.2.0_s390x who promised to
update the caps.
This series also contains current git caps for the 'amdsev' variant per
Michal's request.
Peter Krempa (16):
conf: Drop support for 'sheepdog' disks
qemuxmlconftest: Drop tests pinned to qemu-5.2
qemuxmlconftest: Drop tests pinned to qemu-6.0
qemuxmlconftest: Drop tests pinned to qemu-6.1
qemucapabilitiestest: Drop qemu-5.2 data
qemucapabilitiestest: Drop qemu-6.0 data
qemucapabilitiestest: Drop qemu-6.1 data
qemucapabilitiestest: Add 'qemu_9.2.0.aarch64+hvf' test data
qemucapabilitiestest: Drop unused fake data 'caps_7.0.0_aarch64+hvf'
qemucapabilitiesdata: Drop un-updated 'qemu_6.2.0_aarch64' data
qemucapabilitiesdata: Drop un-updated 'caps_7.0.0_aarch64' data
qemucapabilitiesdata: Drop un-updated 'qemu_8.0.0_riscv64' data
qemu: capabilities: Bump minimum qemu to qemu-6.2
qemu: block: Drop 'sheepdog' protocol support
qemucapabilitiestest: Update 'caps_10.0.0_x86_64' to
'v9.2.0-2369-g98c7362b1e'
qemucapabilitiestest: Add data for the qemu-10.0 dev cycle on x86_64
for the '+amdsev' variant
src/conf/domain_validate.c | 7 +
src/qemu/qemu_block.c | 44 +-
src/qemu/qemu_capabilities.c | 2 +-
....xml => qemu_10.0.0-q35.x86_64+amdsev.xml} | 870 +-
....xml => qemu_10.0.0-tcg.x86_64+amdsev.xml} | 1245 +-
...6_64.xml => qemu_10.0.0.x86_64+amdsev.xml} | 868 +-
.../qemu_5.2.0-tcg-virt.riscv64.xml | 163 -
.../domaincapsdata/qemu_5.2.0-tcg.x86_64.xml | 1643 -
.../qemu_5.2.0-virt.aarch64.xml | 221 -
.../qemu_5.2.0-virt.riscv64.xml | 166 -
tests/domaincapsdata/qemu_5.2.0.aarch64.xml | 221 -
tests/domaincapsdata/qemu_5.2.0.ppc64.xml | 187 -
tests/domaincapsdata/qemu_5.2.0.s390x.xml | 288 -
.../domaincapsdata/qemu_6.0.0-q35.x86_64.xml | 1047 -
.../domaincapsdata/qemu_6.0.0-tcg.x86_64.xml | 1744 -
.../qemu_6.0.0-virt.aarch64.xml | 227 -
tests/domaincapsdata/qemu_6.0.0.aarch64.xml | 227 -
tests/domaincapsdata/qemu_6.0.0.s390x.xml | 293 -
tests/domaincapsdata/qemu_6.0.0.x86_64.xml | 1047 -
.../domaincapsdata/qemu_6.1.0-q35.x86_64.xml | 1139 -
tests/domaincapsdata/qemu_6.1.0.x86_64.xml | 1139 -
.../qemu_6.2.0-virt.aarch64.xml | 234 -
tests/domaincapsdata/qemu_6.2.0.aarch64.xml | 234 -
.../qemu_7.0.0-virt.aarch64.xml | 233 -
tests/domaincapsdata/qemu_7.0.0.aarch64.xml | 233 -
.../qemu_8.0.0-tcg-virt.riscv64.xml | 174 -
.../qemu_8.0.0-virt.riscv64.xml | 177 -
...hvf.xml => qemu_9.2.0-hvf.aarch64+hvf.xml} | 26 +-
...lies => caps_10.0.0_x86_64+amdsev.replies} | 26336 +++++++++----
...6_64.xml => caps_10.0.0_x86_64+amdsev.xml} | 2994 +-
.../caps_10.0.0_x86_64.replies | 388 +-
.../caps_10.0.0_x86_64.xml | 70 +-
.../caps_5.2.0_aarch64.replies | 24859 ------------
.../caps_5.2.0_aarch64.xml | 428 -
.../caps_5.2.0_ppc64.replies | 28246 -------------
.../qemucapabilitiesdata/caps_5.2.0_ppc64.xml | 1081 -
.../caps_5.2.0_riscv64.replies | 20531 ----------
.../caps_5.2.0_riscv64.xml | 131 -
.../caps_5.2.0_s390x.replies | 25181 ------------
.../qemucapabilitiesdata/caps_5.2.0_s390x.xml | 3221 --
.../caps_5.2.0_x86_64.replies | 30637 ---------------
.../caps_5.2.0_x86_64.xml | 3113 --
.../caps_6.0.0_aarch64.replies | 26869 -------------
.../caps_6.0.0_aarch64.xml | 454 -
.../caps_6.0.0_s390x.replies | 26878 -------------
.../qemucapabilitiesdata/caps_6.0.0_s390x.xml | 3235 --
.../caps_6.0.0_x86_64.replies | 32715 ----------------
.../caps_6.0.0_x86_64.xml | 3261 --
.../caps_6.2.0_aarch64.replies | 28023 -------------
.../caps_6.2.0_aarch64.xml | 485 -
.../caps_7.0.0_aarch64.replies | 31776 ---------------
.../caps_7.0.0_aarch64.xml | 501 -
.../caps_8.0.0_riscv64.replies | 27913 -------------
.../caps_8.0.0_riscv64.xml | 157 -
...replies => caps_9.2.0_aarch64+hvf.replies} | 27603 +++++++------
...h64+hvf.xml => caps_9.2.0_aarch64+hvf.xml} | 647 +-
tests/qemusecuritytest.c | 1 -
.../cpu-fallback.x86_64-5.2.0.args | 34 -
.../cpu-fallback.x86_64-5.2.0.xml | 40 -
...-host-model-fallback-kvm.x86_64-5.2.0.args | 34 -
...u-host-model-fallback-kvm.x86_64-5.2.0.xml | 29 -
...-host-model-fallback-kvm.x86_64-6.0.0.args | 34 -
...u-host-model-fallback-kvm.x86_64-6.0.0.xml | 29 -
...-host-model-fallback-kvm.x86_64-6.1.0.args | 34 -
...u-host-model-fallback-kvm.x86_64-6.1.0.xml | 29 -
...-host-model-fallback-tcg.x86_64-5.2.0.args | 34 -
...u-host-model-fallback-tcg.x86_64-5.2.0.xml | 29 -
...-host-model-fallback-tcg.x86_64-6.0.0.args | 34 -
...u-host-model-fallback-tcg.x86_64-6.0.0.xml | 29 -
...-host-model-fallback-tcg.x86_64-6.1.0.args | 34 -
...u-host-model-fallback-tcg.x86_64-6.1.0.xml | 29 -
.../cpu-host-model-kvm.x86_64-5.2.0.args | 39 -
.../cpu-host-model-kvm.x86_64-5.2.0.xml | 48 -
.../cpu-host-model-kvm.x86_64-6.0.0.args | 39 -
.../cpu-host-model-kvm.x86_64-6.0.0.xml | 48 -
.../cpu-host-model-kvm.x86_64-6.1.0.args | 39 -
.../cpu-host-model-kvm.x86_64-6.1.0.xml | 48 -
...ost-model-nofallback-kvm.x86_64-5.2.0.args | 34 -
...host-model-nofallback-kvm.x86_64-5.2.0.xml | 29 -
...ost-model-nofallback-kvm.x86_64-6.0.0.args | 34 -
...host-model-nofallback-kvm.x86_64-6.0.0.xml | 29 -
...ost-model-nofallback-kvm.x86_64-6.1.0.args | 34 -
...host-model-nofallback-kvm.x86_64-6.1.0.xml | 29 -
...ost-model-nofallback-tcg.x86_64-5.2.0.args | 34 -
...host-model-nofallback-tcg.x86_64-5.2.0.xml | 29 -
...ost-model-nofallback-tcg.x86_64-6.0.0.args | 34 -
...host-model-nofallback-tcg.x86_64-6.0.0.xml | 29 -
...ost-model-nofallback-tcg.x86_64-6.1.0.args | 34 -
...host-model-nofallback-tcg.x86_64-6.1.0.xml | 29 -
.../cpu-host-model-tcg.x86_64-5.2.0.args | 39 -
.../cpu-host-model-tcg.x86_64-5.2.0.xml | 48 -
.../cpu-host-model-tcg.x86_64-6.0.0.args | 39 -
.../cpu-host-model-tcg.x86_64-6.0.0.xml | 48 -
.../cpu-host-model-tcg.x86_64-6.1.0.args | 39 -
.../cpu-host-model-tcg.x86_64-6.1.0.xml | 48 -
.../cpu-nofallback.x86_64-5.2.0.err | 1 -
.../cpu-nofallback.x86_64-5.2.0.xml | 40 -
...sk-network-rbd-encryption.x86_64-6.0.0.err | 1 -
.../disk-network-sheepdog.x86_64-6.0.0.args | 39 -
.../disk-network-sheepdog.x86_64-6.0.0.xml | 46 -
.../disk-network-sheepdog.x86_64-latest.err | 1 +
...disk-network-tlsx509-nbd.x86_64-5.2.0.args | 38 -
.../disk-network-tlsx509-nbd.x86_64-5.2.0.xml | 37 -
...virtio-scsi-reservations.x86_64-5.2.0.args | 43 -
...-virtio-scsi-reservations.x86_64-5.2.0.xml | 53 -
.../graphics-vnc-tls-secret.x86_64-5.2.0.args | 37 -
.../graphics-vnc-tls-secret.x86_64-5.2.0.xml | 39 -
...ch64-virt-headless.aarch64-latest+hvf.args | 8 +-
.../hyperv-passthrough.x86_64-6.1.0.args | 32 -
.../hyperv-passthrough.x86_64-6.1.0.xml | 34 -
...othreads-virtio-scsi-pci.x86_64-5.2.0.args | 42 -
...iothreads-virtio-scsi-pci.x86_64-5.2.0.xml | 49 -
...ev-missing-platform-info.x86_64-6.0.0.args | 37 -
...sev-missing-platform-info.x86_64-6.0.0.xml | 43 -
.../launch-security-sev.x86_64-6.0.0.args | 37 -
.../launch-security-sev.x86_64-6.0.0.xml | 45 -
.../luks-disks-source-qcow2.x86_64-5.2.0.args | 62 -
.../luks-disks-source-qcow2.x86_64-5.2.0.xml | 107 -
...ory-hotplug-nvdimm-align.x86_64-5.2.0.args | 40 -
...mory-hotplug-nvdimm-align.x86_64-5.2.0.xml | 60 -
...ory-hotplug-nvdimm-label.x86_64-5.2.0.args | 40 -
...mory-hotplug-nvdimm-label.x86_64-5.2.0.xml | 62 -
...mory-hotplug-nvdimm-pmem.x86_64-5.2.0.args | 40 -
...emory-hotplug-nvdimm-pmem.x86_64-5.2.0.xml | 60 -
...-hotplug-nvdimm-readonly.x86_64-5.2.0.args | 40 -
...y-hotplug-nvdimm-readonly.x86_64-5.2.0.xml | 60 -
...mory-hotplug-virtio-pmem.x86_64-5.2.0.args | 40 -
...emory-hotplug-virtio-pmem.x86_64-5.2.0.xml | 55 -
.../misc-no-reboot.x86_64-5.2.0.args | 36 -
.../misc-no-reboot.x86_64-5.2.0.xml | 38 -
.../numatune-memnode.x86_64-5.2.0.args | 39 -
.../numatune-memnode.x86_64-5.2.0.xml | 41 -
...0-async-teardown-disabled.s390x-6.0.0.args | 35 -
...90-async-teardown-disabled.s390x-6.0.0.xml | 36 -
.../s390-async-teardown.s390x-6.0.0.err | 1 -
.../virtio-iommu-x86_64.x86_64-6.1.0.err | 1 -
.../virtio-rng-builtin.x86_64-5.2.0.args | 36 -
.../virtio-rng-builtin.x86_64-5.2.0.xml | 35 -
.../virtio-rng-egd-unix.x86_64-5.2.0.args | 37 -
.../virtio-rng-egd-unix.x86_64-5.2.0.xml | 37 -
tests/qemuxmlconftest.c | 47 +-
141 files changed, 37729 insertions(+), 357243 deletions(-)
rename tests/domaincapsdata/{qemu_5.2.0-q35.x86_64.xml => qemu_10.0.0-q35.x86_64+amdsev.xml} (51%)
rename tests/domaincapsdata/{qemu_6.1.0-tcg.x86_64.xml => qemu_10.0.0-tcg.x86_64+amdsev.xml} (67%)
rename tests/domaincapsdata/{qemu_5.2.0.x86_64.xml => qemu_10.0.0.x86_64+amdsev.xml} (51%)
delete mode 100644 tests/domaincapsdata/qemu_5.2.0-tcg-virt.riscv64.xml
delete mode 100644 tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
delete mode 100644 tests/domaincapsdata/qemu_5.2.0-virt.aarch64.xml
delete mode 100644 tests/domaincapsdata/qemu_5.2.0-virt.riscv64.xml
delete mode 100644 tests/domaincapsdata/qemu_5.2.0.aarch64.xml
delete mode 100644 tests/domaincapsdata/qemu_5.2.0.ppc64.xml
delete mode 100644 tests/domaincapsdata/qemu_5.2.0.s390x.xml
delete mode 100644 tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
delete mode 100644 tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
delete mode 100644 tests/domaincapsdata/qemu_6.0.0-virt.aarch64.xml
delete mode 100644 tests/domaincapsdata/qemu_6.0.0.aarch64.xml
delete mode 100644 tests/domaincapsdata/qemu_6.0.0.s390x.xml
delete mode 100644 tests/domaincapsdata/qemu_6.0.0.x86_64.xml
delete mode 100644 tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
delete mode 100644 tests/domaincapsdata/qemu_6.1.0.x86_64.xml
delete mode 100644 tests/domaincapsdata/qemu_6.2.0-virt.aarch64.xml
delete mode 100644 tests/domaincapsdata/qemu_6.2.0.aarch64.xml
delete mode 100644 tests/domaincapsdata/qemu_7.0.0-virt.aarch64.xml
delete mode 100644 tests/domaincapsdata/qemu_7.0.0.aarch64.xml
delete mode 100644 tests/domaincapsdata/qemu_8.0.0-tcg-virt.riscv64.xml
delete mode 100644 tests/domaincapsdata/qemu_8.0.0-virt.riscv64.xml
rename tests/domaincapsdata/{qemu_7.0.0-hvf.aarch64+hvf.xml => qemu_9.2.0-hvf.aarch64+hvf.xml} (91%)
rename tests/qemucapabilitiesdata/{caps_6.1.0_x86_64.replies => caps_10.0.0_x86_64+amdsev.replies} (68%)
rename tests/qemucapabilitiesdata/{caps_6.1.0_x86_64.xml => caps_10.0.0_x86_64+amdsev.xml} (63%)
delete mode 100644 tests/qemucapabilitiesdata/caps_5.2.0_aarch64.replies
delete mode 100644 tests/qemucapabilitiesdata/caps_5.2.0_aarch64.xml
delete mode 100644 tests/qemucapabilitiesdata/caps_5.2.0_ppc64.replies
delete mode 100644 tests/qemucapabilitiesdata/caps_5.2.0_ppc64.xml
delete mode 100644 tests/qemucapabilitiesdata/caps_5.2.0_riscv64.replies
delete mode 100644 tests/qemucapabilitiesdata/caps_5.2.0_riscv64.xml
delete mode 100644 tests/qemucapabilitiesdata/caps_5.2.0_s390x.replies
delete mode 100644 tests/qemucapabilitiesdata/caps_5.2.0_s390x.xml
delete mode 100644 tests/qemucapabilitiesdata/caps_5.2.0_x86_64.replies
delete mode 100644 tests/qemucapabilitiesdata/caps_5.2.0_x86_64.xml
delete mode 100644 tests/qemucapabilitiesdata/caps_6.0.0_aarch64.replies
delete mode 100644 tests/qemucapabilitiesdata/caps_6.0.0_aarch64.xml
delete mode 100644 tests/qemucapabilitiesdata/caps_6.0.0_s390x.replies
delete mode 100644 tests/qemucapabilitiesdata/caps_6.0.0_s390x.xml
delete mode 100644 tests/qemucapabilitiesdata/caps_6.0.0_x86_64.replies
delete mode 100644 tests/qemucapabilitiesdata/caps_6.0.0_x86_64.xml
delete mode 100644 tests/qemucapabilitiesdata/caps_6.2.0_aarch64.replies
delete mode 100644 tests/qemucapabilitiesdata/caps_6.2.0_aarch64.xml
delete mode 100644 tests/qemucapabilitiesdata/caps_7.0.0_aarch64.replies
delete mode 100644 tests/qemucapabilitiesdata/caps_7.0.0_aarch64.xml
delete mode 100644 tests/qemucapabilitiesdata/caps_8.0.0_riscv64.replies
delete mode 100644 tests/qemucapabilitiesdata/caps_8.0.0_riscv64.xml
rename tests/qemucapabilitiesdata/{caps_7.0.0_aarch64+hvf.replies => caps_9.2.0_aarch64+hvf.replies} (82%)
rename tests/qemucapabilitiesdata/{caps_7.0.0_aarch64+hvf.xml => caps_9.2.0_aarch64+hvf.xml} (58%)
delete mode 100644 tests/qemuxmlconfdata/cpu-fallback.x86_64-5.2.0.args
delete mode 100644 tests/qemuxmlconfdata/cpu-fallback.x86_64-5.2.0.xml
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-5.2.0.args
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-5.2.0.xml
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-6.0.0.args
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-6.0.0.xml
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-6.1.0.args
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-6.1.0.xml
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-fallback-tcg.x86_64-5.2.0.args
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-fallback-tcg.x86_64-5.2.0.xml
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-fallback-tcg.x86_64-6.0.0.args
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-fallback-tcg.x86_64-6.0.0.xml
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-fallback-tcg.x86_64-6.1.0.args
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-fallback-tcg.x86_64-6.1.0.xml
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-5.2.0.args
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-5.2.0.xml
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-6.0.0.args
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-6.0.0.xml
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-6.1.0.args
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-6.1.0.xml
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-5.2.0.args
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-5.2.0.xml
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-6.0.0.args
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-6.0.0.xml
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-6.1.0.args
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-6.1.0.xml
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-nofallback-tcg.x86_64-5.2.0.args
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-nofallback-tcg.x86_64-5.2.0.xml
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-nofallback-tcg.x86_64-6.0.0.args
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-nofallback-tcg.x86_64-6.0.0.xml
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-nofallback-tcg.x86_64-6.1.0.args
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-nofallback-tcg.x86_64-6.1.0.xml
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-tcg.x86_64-5.2.0.args
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-tcg.x86_64-5.2.0.xml
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-tcg.x86_64-6.0.0.args
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-tcg.x86_64-6.0.0.xml
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-tcg.x86_64-6.1.0.args
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-tcg.x86_64-6.1.0.xml
delete mode 100644 tests/qemuxmlconfdata/cpu-nofallback.x86_64-5.2.0.err
delete mode 100644 tests/qemuxmlconfdata/cpu-nofallback.x86_64-5.2.0.xml
delete mode 100644 tests/qemuxmlconfdata/disk-network-rbd-encryption.x86_64-6.0.0.err
delete mode 100644 tests/qemuxmlconfdata/disk-network-sheepdog.x86_64-6.0.0.args
delete mode 100644 tests/qemuxmlconfdata/disk-network-sheepdog.x86_64-6.0.0.xml
create mode 100644 tests/qemuxmlconfdata/disk-network-sheepdog.x86_64-latest.err
delete mode 100644 tests/qemuxmlconfdata/disk-network-tlsx509-nbd.x86_64-5.2.0.args
delete mode 100644 tests/qemuxmlconfdata/disk-network-tlsx509-nbd.x86_64-5.2.0.xml
delete mode 100644 tests/qemuxmlconfdata/disk-virtio-scsi-reservations.x86_64-5.2.0.args
delete mode 100644 tests/qemuxmlconfdata/disk-virtio-scsi-reservations.x86_64-5.2.0.xml
delete mode 100644 tests/qemuxmlconfdata/graphics-vnc-tls-secret.x86_64-5.2.0.args
delete mode 100644 tests/qemuxmlconfdata/graphics-vnc-tls-secret.x86_64-5.2.0.xml
delete mode 100644 tests/qemuxmlconfdata/hyperv-passthrough.x86_64-6.1.0.args
delete mode 100644 tests/qemuxmlconfdata/hyperv-passthrough.x86_64-6.1.0.xml
delete mode 100644 tests/qemuxmlconfdata/iothreads-virtio-scsi-pci.x86_64-5.2.0.args
delete mode 100644 tests/qemuxmlconfdata/iothreads-virtio-scsi-pci.x86_64-5.2.0.xml
delete mode 100644 tests/qemuxmlconfdata/launch-security-sev-missing-platform-info.x86_64-6.0.0.args
delete mode 100644 tests/qemuxmlconfdata/launch-security-sev-missing-platform-info.x86_64-6.0.0.xml
delete mode 100644 tests/qemuxmlconfdata/launch-security-sev.x86_64-6.0.0.args
delete mode 100644 tests/qemuxmlconfdata/launch-security-sev.x86_64-6.0.0.xml
delete mode 100644 tests/qemuxmlconfdata/luks-disks-source-qcow2.x86_64-5.2.0.args
delete mode 100644 tests/qemuxmlconfdata/luks-disks-source-qcow2.x86_64-5.2.0.xml
delete mode 100644 tests/qemuxmlconfdata/memory-hotplug-nvdimm-align.x86_64-5.2.0.args
delete mode 100644 tests/qemuxmlconfdata/memory-hotplug-nvdimm-align.x86_64-5.2.0.xml
delete mode 100644 tests/qemuxmlconfdata/memory-hotplug-nvdimm-label.x86_64-5.2.0.args
delete mode 100644 tests/qemuxmlconfdata/memory-hotplug-nvdimm-label.x86_64-5.2.0.xml
delete mode 100644 tests/qemuxmlconfdata/memory-hotplug-nvdimm-pmem.x86_64-5.2.0.args
delete mode 100644 tests/qemuxmlconfdata/memory-hotplug-nvdimm-pmem.x86_64-5.2.0.xml
delete mode 100644 tests/qemuxmlconfdata/memory-hotplug-nvdimm-readonly.x86_64-5.2.0.args
delete mode 100644 tests/qemuxmlconfdata/memory-hotplug-nvdimm-readonly.x86_64-5.2.0.xml
delete mode 100644 tests/qemuxmlconfdata/memory-hotplug-virtio-pmem.x86_64-5.2.0.args
delete mode 100644 tests/qemuxmlconfdata/memory-hotplug-virtio-pmem.x86_64-5.2.0.xml
delete mode 100644 tests/qemuxmlconfdata/misc-no-reboot.x86_64-5.2.0.args
delete mode 100644 tests/qemuxmlconfdata/misc-no-reboot.x86_64-5.2.0.xml
delete mode 100644 tests/qemuxmlconfdata/numatune-memnode.x86_64-5.2.0.args
delete mode 100644 tests/qemuxmlconfdata/numatune-memnode.x86_64-5.2.0.xml
delete mode 100644 tests/qemuxmlconfdata/s390-async-teardown-disabled.s390x-6.0.0.args
delete mode 100644 tests/qemuxmlconfdata/s390-async-teardown-disabled.s390x-6.0.0.xml
delete mode 100644 tests/qemuxmlconfdata/s390-async-teardown.s390x-6.0.0.err
delete mode 100644 tests/qemuxmlconfdata/virtio-iommu-x86_64.x86_64-6.1.0.err
delete mode 100644 tests/qemuxmlconfdata/virtio-rng-builtin.x86_64-5.2.0.args
delete mode 100644 tests/qemuxmlconfdata/virtio-rng-builtin.x86_64-5.2.0.xml
delete mode 100644 tests/qemuxmlconfdata/virtio-rng-egd-unix.x86_64-5.2.0.args
delete mode 100644 tests/qemuxmlconfdata/virtio-rng-egd-unix.x86_64-5.2.0.xml
--
2.48.1
3 weeks, 2 days
Feature Request: --targetdir option on backup-begin
by Michael Niehren
Hi,
i just playing around with the "new" backup API for switching from the old way and simply want
to do full backup's in push mode. If i do so,
virsh backup-begin <domain>
the backup-Image files are always created in the image directory
As the place on the fast nvme's, where the images are lying is very limited, i want to place the
backup-image files to be on another harddisk on an mounted dir whithout temporary save them
in the image directory.
To do so, an --targetdir option on backup-begin would be very useful.
best regards
Michael
3 weeks, 2 days
[PATCH RESEND 0/6] Add support for configuring PCI high memory MMIO size
by Matthew R. Ochs
Resending this series since it appears my first attempt was not sent to
the list due to the "first post" manual moderation delay. =)
This patch series adds support for configuring the PCI high memory MMIO
window size for aarch64 virt machine types. This feature was recently merged
into the QEMU upstream master branch [1] and will be available in QEMU 10.0.
It allows users to configure the size of the high memory MMIO window above
4GB, which is particularly useful for systems with large amounts of PCI
memory requirements.
The feature is exposed through the domain XML as a new PCI feature:
<features>
<pci>
<highmem-mmio-size unit='G'>512</highmem-mmio-size>
</pci>
</features>
When enabled, this configures the size of the PCI high memory MMIO window
via QEMU's highmem-mmio-size machine property. The feature is only
available for aarch64 virt machine types and requires QEMU support.
This series depends on [2] and should be applied on top of those patches.
For your convenience, this series is also available on Github [3].
[1] https://github.com/qemu/qemu/commit/f10104aeae3a17f181d5bb37b7fd7dad7fe86cba
[2] https://lists.libvirt.org/archives/list/devel@lists.libvirt.org/thread/Z4...
[3] git fetch https://github.com/nvmochs/libvirt.git pci_highmem_mmio_size
Signed-off-by: Matthew R. Ochs <mochs(a)nvidia.com>
Matthew R. Ochs (6):
domain: Add PCI configuration feature infrastructure
schema: Add PCI configuration feature schema
conf: Add PCI configuration XML parsing and formatting
qemu: Add capability for PCI high memory MMIO size
qemu: Add command line support for PCI high memory MMIO size
tests: Add tests for machine PCI features
src/conf/domain_conf.c | 103 ++++++++++++++++++
src/conf/domain_conf.h | 6 +
src/conf/schemas/domaincommon.rng | 9 ++
src/qemu/qemu_capabilities.c | 2 +
src/qemu/qemu_capabilities.h | 1 +
src/qemu/qemu_command.c | 6 +
src/qemu/qemu_validate.c | 15 +++
.../caps_10.0.0_aarch64.replies | 10 ++
.../caps_10.0.0_aarch64.xml | 1 +
...rch64-virt-machine-pci.aarch64-latest.args | 31 ++++++
...arch64-virt-machine-pci.aarch64-latest.xml | 30 +++++
.../aarch64-virt-machine-pci.xml | 20 ++++
tests/qemuxmlconftest.c | 2 +
13 files changed, 236 insertions(+)
create mode 100644 tests/qemuxmlconfdata/aarch64-virt-machine-pci.aarch64-latest.args
create mode 100644 tests/qemuxmlconfdata/aarch64-virt-machine-pci.aarch64-latest.xml
create mode 100644 tests/qemuxmlconfdata/aarch64-virt-machine-pci.xml
--
2.46.0
3 weeks, 5 days
[PATCH] util: Check libnl function availability
by Akihiko Odaki
virNetDevBridgeSetupVlans() calls virNetlinkBridgeVlanFilterSet(),
which requires libnl. Use the function only when libnl is available
to avoid breaking builds.
Signed-off-by: Akihiko Odaki <akihiko.odaki(a)daynix.com>
---
src/util/virnetdevbridge.c | 122 ++++++++++++++++++++++-----------------------
1 file changed, 61 insertions(+), 61 deletions(-)
diff --git a/src/util/virnetdevbridge.c b/src/util/virnetdevbridge.c
index c79d0c79b7b16a0a070b5013ed7df9d0a63b1c38..70e82a0029634ddf44c2b933577bf783c89f035c 100644
--- a/src/util/virnetdevbridge.c
+++ b/src/util/virnetdevbridge.c
@@ -313,66 +313,6 @@ virNetDevBridgePortSetIsolated(const char *brname,
return virNetDevBridgePortSet(brname, ifname, "isolated", enable ? 1 : 0);
}
-static int
-virNetDevBridgeSetupVlans(const char *ifname, const virNetDevVlan *virtVlan)
-{
- int error = 0;
- unsigned short flags;
-
- if (!virtVlan || !virtVlan->nTags)
- return 0;
-
- // The interface will have been automatically added to vlan 1, so remove it
- if (virNetlinkBridgeVlanFilterSet(ifname, RTM_DELLINK, 0, 1, &error) < 0) {
- if (error != 0) {
- virReportSystemError(-error,
- _("error removing vlan filter from interface %1$s"),
- ifname);
- }
- return -1;
- }
-
- // If trunk mode, add the native VLAN then add the others, if any
- if (virtVlan->trunk) {
- size_t i;
-
- if (virtVlan->nativeTag) {
- flags = BRIDGE_VLAN_INFO_PVID;
- if (virtVlan->nativeMode == VIR_NATIVE_VLAN_MODE_UNTAGGED ||
- virtVlan->nativeMode == VIR_NATIVE_VLAN_MODE_DEFAULT) {
- flags |= BRIDGE_VLAN_INFO_UNTAGGED;
- }
-
- if (virNetlinkBridgeVlanFilterSet(ifname, RTM_SETLINK, flags,
- virtVlan->nativeTag, &error) < 0) {
- goto error;
- }
- }
-
- for (i = 0; i < virtVlan->nTags; i++) {
- if (virtVlan->tag[i] != virtVlan->nativeTag)
- if (virNetlinkBridgeVlanFilterSet(ifname, RTM_SETLINK, 0,
- virtVlan->tag[i], &error) < 0) {
- goto error;
- }
- }
- } else {
- // In native mode, add the single VLAN as pvid untagged
- flags = BRIDGE_VLAN_INFO_PVID | BRIDGE_VLAN_INFO_UNTAGGED;
- if (virNetlinkBridgeVlanFilterSet(ifname, RTM_SETLINK, flags,
- virtVlan->tag[0], &error) < 0) {
- goto error;
- }
- }
-
- return 0;
-
- error:
- if (error != 0)
- virReportSystemError(-error, _("error adding vlan filter to interface %1$s"), ifname);
- return -1;
-}
-
#else
int
@@ -651,7 +591,67 @@ int virNetDevBridgeDelete(const char *brname G_GNUC_UNUSED)
*
* Returns 0 in case of success or an errno code in case of failure.
*/
-#if defined(WITH_STRUCT_IFREQ) && defined(SIOCBRADDIF)
+#if defined(WITH_STRUCT_IFREQ) && defined(SIOCBRADDIF) && defined(WITH_LIBNL)
+static int
+virNetDevBridgeSetupVlans(const char *ifname, const virNetDevVlan *virtVlan)
+{
+ int error = 0;
+ unsigned short flags;
+
+ if (!virtVlan || !virtVlan->nTags)
+ return 0;
+
+ // The interface will have been automatically added to vlan 1, so remove it
+ if (virNetlinkBridgeVlanFilterSet(ifname, RTM_DELLINK, 0, 1, &error) < 0) {
+ if (error != 0) {
+ virReportSystemError(-error,
+ _("error removing vlan filter from interface %1$s"),
+ ifname);
+ }
+ return -1;
+ }
+
+ // If trunk mode, add the native VLAN then add the others, if any
+ if (virtVlan->trunk) {
+ size_t i;
+
+ if (virtVlan->nativeTag) {
+ flags = BRIDGE_VLAN_INFO_PVID;
+ if (virtVlan->nativeMode == VIR_NATIVE_VLAN_MODE_UNTAGGED ||
+ virtVlan->nativeMode == VIR_NATIVE_VLAN_MODE_DEFAULT) {
+ flags |= BRIDGE_VLAN_INFO_UNTAGGED;
+ }
+
+ if (virNetlinkBridgeVlanFilterSet(ifname, RTM_SETLINK, flags,
+ virtVlan->nativeTag, &error) < 0) {
+ goto error;
+ }
+ }
+
+ for (i = 0; i < virtVlan->nTags; i++) {
+ if (virtVlan->tag[i] != virtVlan->nativeTag)
+ if (virNetlinkBridgeVlanFilterSet(ifname, RTM_SETLINK, 0,
+ virtVlan->tag[i], &error) < 0) {
+ goto error;
+ }
+ }
+ } else {
+ // In native mode, add the single VLAN as pvid untagged
+ flags = BRIDGE_VLAN_INFO_PVID | BRIDGE_VLAN_INFO_UNTAGGED;
+ if (virNetlinkBridgeVlanFilterSet(ifname, RTM_SETLINK, flags,
+ virtVlan->tag[0], &error) < 0) {
+ goto error;
+ }
+ }
+
+ return 0;
+
+ error:
+ if (error != 0)
+ virReportSystemError(-error, _("error adding vlan filter to interface %1$s"), ifname);
+ return -1;
+}
+
int virNetDevBridgeAddPort(const char *brname,
const char *ifname,
const virNetDevVlan *virtVlan)
---
base-commit: e5299ddf86121d3c792ca271ffcb54900eb19dc3
change-id: 20250304-nl-605e05b8c5f2
Best regards,
--
Akihiko Odaki <akihiko.odaki(a)daynix.com>
3 weeks, 5 days
[PATCH v2 0/6] qemu: acpi-generic-initiator support
by Andrea Righi
= Overview =
This patch set introduces support for acpi-generic-initiator devices,
supported by QEMU [1].
The acpi-generic-initiator object is required to support Multi-Instance GPU
(MIG) configurations on NVIDIA GPUs [2]. MIG enables partitioning of GPU
resources into multiple isolated instances, each requiring a dedicated NUMA
node definition.
= Implementation =
This patch set implements the libvirt counterpart to the QEMU feature,
enabling users to configure acpi-generic-initiator objects within libvirt
domain XML.
This includes:
- adding XML syntax to define acpi-generic-initiator objects,
- adding a new qemu capability flag,
- resolving the acpi-generic-initiator definitions into the proper QEMU
command-line arguments,
- ensuring compatibility with existing NUMA configuration.
= Example =
- Domain XML:
```
...
<cpu mode='host-passthrough' check='none'>
<numa>
<cell id='0' cpus='0-15' memory='8388608' unit='KiB'/>
<cell id='1' memory='0' unit='KiB'/>
<cell id='2' memory='0' unit='KiB'/>
<cell id='3' memory='0' unit='KiB'/>
<cell id='4' memory='0' unit='KiB'/>
<cell id='5' memory='0' unit='KiB'/>
<cell id='6' memory='0' unit='KiB'/>
<cell id='7' memory='0' unit='KiB'/>
<cell id='8' memory='0' unit='KiB'/>
</numa>
</cpu>
...
<devices>
...
<acpi-generic-initiator>
<alias name="gi1" />
<pci-dev>hostdev0</pci-dev>
<numa-node>1</numa-node>
</acpi-generic-initiator>
<acpi-generic-initiator>
<alias name="gi2" />
<pci-dev>hostdev0</pci-dev>
<numa-node>2</numa-node>
</acpi-generic-initiator>
<acpi-generic-initiator>
<alias name="gi3" />
<pci-dev>hostdev0</pci-dev>
<numa-node>3</numa-node>
</acpi-generic-initiator>
<acpi-generic-initiator>
<alias name="gi4" />
<pci-dev>hostdev0</pci-dev>
<numa-node>4</numa-node>
</acpi-generic-initiator>
<acpi-generic-initiator>
<alias name="gi5" />
<pci-dev>hostdev0</pci-dev>
<numa-node>5</numa-node>
</acpi-generic-initiator>
<acpi-generic-initiator>
<alias name="gi6" />
<pci-dev>hostdev0</pci-dev>
<numa-node>6</numa-node>
</acpi-generic-initiator>
<acpi-generic-initiator>
<alias name="gi7" />
<pci-dev>hostdev0</pci-dev>
<numa-node>7</numa-node>
</acpi-generic-initiator>
<acpi-generic-initiator>
<alias name="gi8" />
<pci-dev>hostdev0</pci-dev>
<numa-node>8</numa-node>
</acpi-generic-initiator>
</devices>
```
- Generated QEMU command line options:
```
... /usr/bin/qemu-system-aarch64 \
...
-object '{"qom-type":"memory-backend-ram","id":"ram-node0","size":8589934592}' \
-numa node,nodeid=0,cpus=0-15,memdev=ram-node0 \
-numa node,nodeid=1 \
-numa node,nodeid=2 \
-numa node,nodeid=3 \
-numa node,nodeid=4 \
-numa node,nodeid=5 \
-numa node,nodeid=6 \
-numa node,nodeid=7 \
-numa node,nodeid=8 \
...
-object '{"qom-type":"acpi-generic-initiator","id":"gi1","pci-dev":"hostdev0","node":1}' \
-object '{"qom-type":"acpi-generic-initiator","id":"gi2","pci-dev":"hostdev0","node":2}' \
-object '{"qom-type":"acpi-generic-initiator","id":"gi3","pci-dev":"hostdev0","node":3}' \
-object '{"qom-type":"acpi-generic-initiator","id":"gi4","pci-dev":"hostdev0","node":4}' \
-object '{"qom-type":"acpi-generic-initiator","id":"gi5","pci-dev":"hostdev0","node":5}' \
-object '{"qom-type":"acpi-generic-initiator","id":"gi6","pci-dev":"hostdev0","node":6}' \
-object '{"qom-type":"acpi-generic-initiator","id":"gi7","pci-dev":"hostdev0","node":7}' \
-object '{"qom-type":"acpi-generic-initiator","id":"gi8","pci-dev":"hostdev0","node":8}'
```
= References =
[1] https://lore.kernel.org/all/20231225045603.7654-2-ankita@nvidia.com/
[2] https://www.nvidia.com/en-in/technologies/multi-instance-gpu/
ChangeLog v1 -> v2:
- split parser and driver changes in separate patches
- introduce a new qemu capability flag
- introduce test in qemuxmlconftest
Andrea Righi (6):
schema: Introduce acpi-generic-initiator definition
conf: Introduce acpi-generic-initiator device
qemu: Allow to define NUMA nodes without memory or CPUs assigned
qemu: capabilies: Introduce QEMU_CAPS_ACPI_GENERIC_INITIATOR
qemu: support acpi-generic-initiator
qemu: Add test case for acpi-generic-initiator
src/ch/ch_domain.c | 1 +
src/conf/domain_conf.c | 153 +++++++++++++++++++++
src/conf/domain_conf.h | 14 ++
src/conf/domain_postparse.c | 1 +
src/conf/domain_validate.c | 40 ++++++
src/conf/numa_conf.c | 3 +
src/conf/schemas/domaincommon.rng | 19 +++
src/conf/virconftypes.h | 2 +
src/libxl/libxl_driver.c | 6 +
src/lxc/lxc_driver.c | 6 +
src/qemu/qemu_capabilities.c | 2 +
src/qemu/qemu_capabilities.h | 1 +
src/qemu/qemu_command.c | 48 +++++--
src/qemu/qemu_domain.c | 2 +
src/qemu/qemu_domain_address.c | 4 +
src/qemu/qemu_driver.c | 3 +
src/qemu/qemu_hotplug.c | 5 +
src/qemu/qemu_postparse.c | 1 +
src/qemu/qemu_validate.c | 1 +
src/test/test_driver.c | 4 +
tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_9.1.0_riscv64.xml | 1 +
tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_9.2.0_x86_64.xml | 1 +
.../acpi-generic-initiator.x86_64-latest.args | 55 ++++++++
.../acpi-generic-initiator.x86_64-latest.xml | 102 ++++++++++++++
tests/qemuxmlconfdata/acpi-generic-initiator.xml | 102 ++++++++++++++
tests/qemuxmlconftest.c | 1 +
29 files changed, 573 insertions(+), 8 deletions(-)
create mode 100644 tests/qemuxmlconfdata/acpi-generic-initiator.x86_64-latest.args
create mode 100644 tests/qemuxmlconfdata/acpi-generic-initiator.x86_64-latest.xml
create mode 100644 tests/qemuxmlconfdata/acpi-generic-initiator.xml
3 weeks, 5 days
[libvirt PATCH] ci: refresh with 'lcitool manifest'
by Pavel Hrdina
- Remove EOL Debian 11
Signed-off-by: Pavel Hrdina <phrdina(a)redhat.com>
---
This depends on this MR [1] to update libvirt-ci as well.
[1] <https://gitlab.com/libvirt/libvirt-ci/-/merge_requests/527>
ci/buildenv/debian-11-cross-aarch64.sh | 117 ----------------
ci/buildenv/debian-11-cross-armv6l.sh | 116 ----------------
ci/buildenv/debian-11-cross-armv7l.sh | 117 ----------------
ci/buildenv/debian-11-cross-i686.sh | 116 ----------------
ci/buildenv/debian-11-cross-mips64el.sh | 116 ----------------
ci/buildenv/debian-11-cross-mipsel.sh | 116 ----------------
ci/buildenv/debian-11-cross-ppc64le.sh | 116 ----------------
ci/buildenv/debian-11-cross-s390x.sh | 116 ----------------
ci/buildenv/debian-11.sh | 100 --------------
.../debian-11-cross-aarch64.Dockerfile | 123 -----------------
.../debian-11-cross-armv6l.Dockerfile | 122 -----------------
.../debian-11-cross-armv7l.Dockerfile | 123 -----------------
ci/containers/debian-11-cross-i686.Dockerfile | 122 -----------------
.../debian-11-cross-mips64el.Dockerfile | 122 -----------------
.../debian-11-cross-mipsel.Dockerfile | 122 -----------------
.../debian-11-cross-ppc64le.Dockerfile | 122 -----------------
.../debian-11-cross-s390x.Dockerfile | 122 -----------------
ci/containers/debian-11.Dockerfile | 103 --------------
ci/gitlab/builds.yml | 128 ------------------
ci/gitlab/containers.yml | 72 ----------
ci/manifest.yml | 40 ------
21 files changed, 2351 deletions(-)
delete mode 100644 ci/buildenv/debian-11-cross-aarch64.sh
delete mode 100644 ci/buildenv/debian-11-cross-armv6l.sh
delete mode 100644 ci/buildenv/debian-11-cross-armv7l.sh
delete mode 100644 ci/buildenv/debian-11-cross-i686.sh
delete mode 100644 ci/buildenv/debian-11-cross-mips64el.sh
delete mode 100644 ci/buildenv/debian-11-cross-mipsel.sh
delete mode 100644 ci/buildenv/debian-11-cross-ppc64le.sh
delete mode 100644 ci/buildenv/debian-11-cross-s390x.sh
delete mode 100644 ci/buildenv/debian-11.sh
delete mode 100644 ci/containers/debian-11-cross-aarch64.Dockerfile
delete mode 100644 ci/containers/debian-11-cross-armv6l.Dockerfile
delete mode 100644 ci/containers/debian-11-cross-armv7l.Dockerfile
delete mode 100644 ci/containers/debian-11-cross-i686.Dockerfile
delete mode 100644 ci/containers/debian-11-cross-mips64el.Dockerfile
delete mode 100644 ci/containers/debian-11-cross-mipsel.Dockerfile
delete mode 100644 ci/containers/debian-11-cross-ppc64le.Dockerfile
delete mode 100644 ci/containers/debian-11-cross-s390x.Dockerfile
delete mode 100644 ci/containers/debian-11.Dockerfile
diff --git a/ci/buildenv/debian-11-cross-aarch64.sh b/ci/buildenv/debian-11-cross-aarch64.sh
deleted file mode 100644
index a52164a851..0000000000
--- a/ci/buildenv/debian-11-cross-aarch64.sh
+++ /dev/null
@@ -1,117 +0,0 @@
-# THIS FILE WAS AUTO-GENERATED
-#
-# $ lcitool manifest ci/manifest.yml
-#
-# https://gitlab.com/libvirt/libvirt-ci
-
-function install_buildenv() {
- export DEBIAN_FRONTEND=noninteractive
- apt-get update
- apt-get dist-upgrade -y
- apt-get install --no-install-recommends -y \
- augeas-lenses \
- augeas-tools \
- bash-completion \
- black \
- ca-certificates \
- ccache \
- codespell \
- cpp \
- diffutils \
- dwarves \
- ebtables \
- flake8 \
- gettext \
- git \
- grep \
- iproute2 \
- iptables \
- kmod \
- libclang-dev \
- libxml2-utils \
- locales \
- lvm2 \
- make \
- meson \
- nfs-common \
- ninja-build \
- numad \
- open-iscsi \
- perl-base \
- pkgconf \
- policykit-1 \
- python3 \
- python3-docutils \
- python3-pytest \
- qemu-utils \
- sed \
- xsltproc
- sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen
- dpkg-reconfigure locales
- rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
- export DEBIAN_FRONTEND=noninteractive
- dpkg --add-architecture arm64
- apt-get update
- apt-get dist-upgrade -y
- apt-get install --no-install-recommends -y dpkg-dev
- apt-get install --no-install-recommends -y \
- gcc-aarch64-linux-gnu \
- libacl1-dev:arm64 \
- libapparmor-dev:arm64 \
- libattr1-dev:arm64 \
- libaudit-dev:arm64 \
- libblkid-dev:arm64 \
- libc6-dev:arm64 \
- libcap-ng-dev:arm64 \
- libcurl4-gnutls-dev:arm64 \
- libdevmapper-dev:arm64 \
- libfuse-dev:arm64 \
- libglib2.0-dev:arm64 \
- libglusterfs-dev:arm64 \
- libgnutls28-dev:arm64 \
- libiscsi-dev:arm64 \
- libjson-c-dev:arm64 \
- libnl-3-dev:arm64 \
- libnl-route-3-dev:arm64 \
- libnuma-dev:arm64 \
- libparted-dev:arm64 \
- libpcap0.8-dev:arm64 \
- libpciaccess-dev:arm64 \
- librbd-dev:arm64 \
- libreadline-dev:arm64 \
- libsanlock-dev:arm64 \
- libsasl2-dev:arm64 \
- libselinux1-dev:arm64 \
- libssh-dev:arm64 \
- libssh2-1-dev:arm64 \
- libtirpc-dev:arm64 \
- libudev-dev:arm64 \
- libxen-dev:arm64 \
- libxml2-dev:arm64 \
- systemtap-sdt-dev:arm64
- mkdir -p /usr/local/share/meson/cross
- printf "[binaries]\n\
-c = '/usr/bin/aarch64-linux-gnu-gcc'\n\
-ar = '/usr/bin/aarch64-linux-gnu-gcc-ar'\n\
-strip = '/usr/bin/aarch64-linux-gnu-strip'\n\
-pkgconfig = '/usr/bin/aarch64-linux-gnu-pkg-config'\n\
-\n\
-[host_machine]\n\
-system = 'linux'\n\
-cpu_family = 'aarch64'\n\
-cpu = 'aarch64'\n\
-endian = 'little'\n" > /usr/local/share/meson/cross/aarch64-linux-gnu
- dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt
- mkdir -p /usr/libexec/ccache-wrappers
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/aarch64-linux-gnu-cc
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/aarch64-linux-gnu-gcc
-}
-
-export CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
-export LANG="en_US.UTF-8"
-export MAKE="/usr/bin/make"
-export NINJA="/usr/bin/ninja"
-export PYTHON="/usr/bin/python3"
-
-export ABI="aarch64-linux-gnu"
-export MESON_OPTS="--cross-file=aarch64-linux-gnu"
diff --git a/ci/buildenv/debian-11-cross-armv6l.sh b/ci/buildenv/debian-11-cross-armv6l.sh
deleted file mode 100644
index caef8e80a4..0000000000
--- a/ci/buildenv/debian-11-cross-armv6l.sh
+++ /dev/null
@@ -1,116 +0,0 @@
-# THIS FILE WAS AUTO-GENERATED
-#
-# $ lcitool manifest ci/manifest.yml
-#
-# https://gitlab.com/libvirt/libvirt-ci
-
-function install_buildenv() {
- export DEBIAN_FRONTEND=noninteractive
- apt-get update
- apt-get dist-upgrade -y
- apt-get install --no-install-recommends -y \
- augeas-lenses \
- augeas-tools \
- bash-completion \
- black \
- ca-certificates \
- ccache \
- codespell \
- cpp \
- diffutils \
- dwarves \
- ebtables \
- flake8 \
- gettext \
- git \
- grep \
- iproute2 \
- iptables \
- kmod \
- libclang-dev \
- libxml2-utils \
- locales \
- lvm2 \
- make \
- meson \
- nfs-common \
- ninja-build \
- numad \
- open-iscsi \
- perl-base \
- pkgconf \
- policykit-1 \
- python3 \
- python3-docutils \
- python3-pytest \
- qemu-utils \
- sed \
- xsltproc
- sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen
- dpkg-reconfigure locales
- rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
- export DEBIAN_FRONTEND=noninteractive
- dpkg --add-architecture armel
- apt-get update
- apt-get dist-upgrade -y
- apt-get install --no-install-recommends -y dpkg-dev
- apt-get install --no-install-recommends -y \
- gcc-arm-linux-gnueabi \
- libacl1-dev:armel \
- libapparmor-dev:armel \
- libattr1-dev:armel \
- libaudit-dev:armel \
- libblkid-dev:armel \
- libc6-dev:armel \
- libcap-ng-dev:armel \
- libcurl4-gnutls-dev:armel \
- libdevmapper-dev:armel \
- libfuse-dev:armel \
- libglib2.0-dev:armel \
- libglusterfs-dev:armel \
- libgnutls28-dev:armel \
- libiscsi-dev:armel \
- libjson-c-dev:armel \
- libnl-3-dev:armel \
- libnl-route-3-dev:armel \
- libnuma-dev:armel \
- libparted-dev:armel \
- libpcap0.8-dev:armel \
- libpciaccess-dev:armel \
- librbd-dev:armel \
- libreadline-dev:armel \
- libsanlock-dev:armel \
- libsasl2-dev:armel \
- libselinux1-dev:armel \
- libssh-dev:armel \
- libssh2-1-dev:armel \
- libtirpc-dev:armel \
- libudev-dev:armel \
- libxml2-dev:armel \
- systemtap-sdt-dev:armel
- mkdir -p /usr/local/share/meson/cross
- printf "[binaries]\n\
-c = '/usr/bin/arm-linux-gnueabi-gcc'\n\
-ar = '/usr/bin/arm-linux-gnueabi-gcc-ar'\n\
-strip = '/usr/bin/arm-linux-gnueabi-strip'\n\
-pkgconfig = '/usr/bin/arm-linux-gnueabi-pkg-config'\n\
-\n\
-[host_machine]\n\
-system = 'linux'\n\
-cpu_family = 'arm'\n\
-cpu = 'arm'\n\
-endian = 'little'\n" > /usr/local/share/meson/cross/arm-linux-gnueabi
- dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt
- mkdir -p /usr/libexec/ccache-wrappers
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabi-cc
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabi-gcc
-}
-
-export CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
-export LANG="en_US.UTF-8"
-export MAKE="/usr/bin/make"
-export NINJA="/usr/bin/ninja"
-export PYTHON="/usr/bin/python3"
-
-export ABI="arm-linux-gnueabi"
-export MESON_OPTS="--cross-file=arm-linux-gnueabi"
diff --git a/ci/buildenv/debian-11-cross-armv7l.sh b/ci/buildenv/debian-11-cross-armv7l.sh
deleted file mode 100644
index 81d92e6386..0000000000
--- a/ci/buildenv/debian-11-cross-armv7l.sh
+++ /dev/null
@@ -1,117 +0,0 @@
-# THIS FILE WAS AUTO-GENERATED
-#
-# $ lcitool manifest ci/manifest.yml
-#
-# https://gitlab.com/libvirt/libvirt-ci
-
-function install_buildenv() {
- export DEBIAN_FRONTEND=noninteractive
- apt-get update
- apt-get dist-upgrade -y
- apt-get install --no-install-recommends -y \
- augeas-lenses \
- augeas-tools \
- bash-completion \
- black \
- ca-certificates \
- ccache \
- codespell \
- cpp \
- diffutils \
- dwarves \
- ebtables \
- flake8 \
- gettext \
- git \
- grep \
- iproute2 \
- iptables \
- kmod \
- libclang-dev \
- libxml2-utils \
- locales \
- lvm2 \
- make \
- meson \
- nfs-common \
- ninja-build \
- numad \
- open-iscsi \
- perl-base \
- pkgconf \
- policykit-1 \
- python3 \
- python3-docutils \
- python3-pytest \
- qemu-utils \
- sed \
- xsltproc
- sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen
- dpkg-reconfigure locales
- rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
- export DEBIAN_FRONTEND=noninteractive
- dpkg --add-architecture armhf
- apt-get update
- apt-get dist-upgrade -y
- apt-get install --no-install-recommends -y dpkg-dev
- apt-get install --no-install-recommends -y \
- gcc-arm-linux-gnueabihf \
- libacl1-dev:armhf \
- libapparmor-dev:armhf \
- libattr1-dev:armhf \
- libaudit-dev:armhf \
- libblkid-dev:armhf \
- libc6-dev:armhf \
- libcap-ng-dev:armhf \
- libcurl4-gnutls-dev:armhf \
- libdevmapper-dev:armhf \
- libfuse-dev:armhf \
- libglib2.0-dev:armhf \
- libglusterfs-dev:armhf \
- libgnutls28-dev:armhf \
- libiscsi-dev:armhf \
- libjson-c-dev:armhf \
- libnl-3-dev:armhf \
- libnl-route-3-dev:armhf \
- libnuma-dev:armhf \
- libparted-dev:armhf \
- libpcap0.8-dev:armhf \
- libpciaccess-dev:armhf \
- librbd-dev:armhf \
- libreadline-dev:armhf \
- libsanlock-dev:armhf \
- libsasl2-dev:armhf \
- libselinux1-dev:armhf \
- libssh-dev:armhf \
- libssh2-1-dev:armhf \
- libtirpc-dev:armhf \
- libudev-dev:armhf \
- libxen-dev:armhf \
- libxml2-dev:armhf \
- systemtap-sdt-dev:armhf
- mkdir -p /usr/local/share/meson/cross
- printf "[binaries]\n\
-c = '/usr/bin/arm-linux-gnueabihf-gcc'\n\
-ar = '/usr/bin/arm-linux-gnueabihf-gcc-ar'\n\
-strip = '/usr/bin/arm-linux-gnueabihf-strip'\n\
-pkgconfig = '/usr/bin/arm-linux-gnueabihf-pkg-config'\n\
-\n\
-[host_machine]\n\
-system = 'linux'\n\
-cpu_family = 'arm'\n\
-cpu = 'armhf'\n\
-endian = 'little'\n" > /usr/local/share/meson/cross/arm-linux-gnueabihf
- dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt
- mkdir -p /usr/libexec/ccache-wrappers
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabihf-cc
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabihf-gcc
-}
-
-export CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
-export LANG="en_US.UTF-8"
-export MAKE="/usr/bin/make"
-export NINJA="/usr/bin/ninja"
-export PYTHON="/usr/bin/python3"
-
-export ABI="arm-linux-gnueabihf"
-export MESON_OPTS="--cross-file=arm-linux-gnueabihf"
diff --git a/ci/buildenv/debian-11-cross-i686.sh b/ci/buildenv/debian-11-cross-i686.sh
deleted file mode 100644
index 7ab7242654..0000000000
--- a/ci/buildenv/debian-11-cross-i686.sh
+++ /dev/null
@@ -1,116 +0,0 @@
-# THIS FILE WAS AUTO-GENERATED
-#
-# $ lcitool manifest ci/manifest.yml
-#
-# https://gitlab.com/libvirt/libvirt-ci
-
-function install_buildenv() {
- export DEBIAN_FRONTEND=noninteractive
- apt-get update
- apt-get dist-upgrade -y
- apt-get install --no-install-recommends -y \
- augeas-lenses \
- augeas-tools \
- bash-completion \
- black \
- ca-certificates \
- ccache \
- codespell \
- cpp \
- diffutils \
- dwarves \
- ebtables \
- flake8 \
- gettext \
- git \
- grep \
- iproute2 \
- iptables \
- kmod \
- libclang-dev \
- libxml2-utils \
- locales \
- lvm2 \
- make \
- meson \
- nfs-common \
- ninja-build \
- numad \
- open-iscsi \
- perl-base \
- pkgconf \
- policykit-1 \
- python3 \
- python3-docutils \
- python3-pytest \
- qemu-utils \
- sed \
- xsltproc
- sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen
- dpkg-reconfigure locales
- rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
- export DEBIAN_FRONTEND=noninteractive
- dpkg --add-architecture i386
- apt-get update
- apt-get dist-upgrade -y
- apt-get install --no-install-recommends -y dpkg-dev
- apt-get install --no-install-recommends -y \
- gcc-i686-linux-gnu \
- libacl1-dev:i386 \
- libapparmor-dev:i386 \
- libattr1-dev:i386 \
- libaudit-dev:i386 \
- libblkid-dev:i386 \
- libc6-dev:i386 \
- libcap-ng-dev:i386 \
- libcurl4-gnutls-dev:i386 \
- libdevmapper-dev:i386 \
- libfuse-dev:i386 \
- libglib2.0-dev:i386 \
- libglusterfs-dev:i386 \
- libgnutls28-dev:i386 \
- libiscsi-dev:i386 \
- libjson-c-dev:i386 \
- libnl-3-dev:i386 \
- libnl-route-3-dev:i386 \
- libnuma-dev:i386 \
- libparted-dev:i386 \
- libpcap0.8-dev:i386 \
- libpciaccess-dev:i386 \
- librbd-dev:i386 \
- libreadline-dev:i386 \
- libsanlock-dev:i386 \
- libsasl2-dev:i386 \
- libselinux1-dev:i386 \
- libssh-dev:i386 \
- libssh2-1-dev:i386 \
- libtirpc-dev:i386 \
- libudev-dev:i386 \
- libxml2-dev:i386 \
- systemtap-sdt-dev:i386
- mkdir -p /usr/local/share/meson/cross
- printf "[binaries]\n\
-c = '/usr/bin/i686-linux-gnu-gcc'\n\
-ar = '/usr/bin/i686-linux-gnu-gcc-ar'\n\
-strip = '/usr/bin/i686-linux-gnu-strip'\n\
-pkgconfig = '/usr/bin/i686-linux-gnu-pkg-config'\n\
-\n\
-[host_machine]\n\
-system = 'linux'\n\
-cpu_family = 'x86'\n\
-cpu = 'i686'\n\
-endian = 'little'\n" > /usr/local/share/meson/cross/i686-linux-gnu
- dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt
- mkdir -p /usr/libexec/ccache-wrappers
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-linux-gnu-cc
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-linux-gnu-gcc
-}
-
-export CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
-export LANG="en_US.UTF-8"
-export MAKE="/usr/bin/make"
-export NINJA="/usr/bin/ninja"
-export PYTHON="/usr/bin/python3"
-
-export ABI="i686-linux-gnu"
-export MESON_OPTS="--cross-file=i686-linux-gnu"
diff --git a/ci/buildenv/debian-11-cross-mips64el.sh b/ci/buildenv/debian-11-cross-mips64el.sh
deleted file mode 100644
index f983ab2981..0000000000
--- a/ci/buildenv/debian-11-cross-mips64el.sh
+++ /dev/null
@@ -1,116 +0,0 @@
-# THIS FILE WAS AUTO-GENERATED
-#
-# $ lcitool manifest ci/manifest.yml
-#
-# https://gitlab.com/libvirt/libvirt-ci
-
-function install_buildenv() {
- export DEBIAN_FRONTEND=noninteractive
- apt-get update
- apt-get dist-upgrade -y
- apt-get install --no-install-recommends -y \
- augeas-lenses \
- augeas-tools \
- bash-completion \
- black \
- ca-certificates \
- ccache \
- codespell \
- cpp \
- diffutils \
- dwarves \
- ebtables \
- flake8 \
- gettext \
- git \
- grep \
- iproute2 \
- iptables \
- kmod \
- libclang-dev \
- libxml2-utils \
- locales \
- lvm2 \
- make \
- meson \
- nfs-common \
- ninja-build \
- numad \
- open-iscsi \
- perl-base \
- pkgconf \
- policykit-1 \
- python3 \
- python3-docutils \
- python3-pytest \
- qemu-utils \
- sed \
- xsltproc
- sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen
- dpkg-reconfigure locales
- rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
- export DEBIAN_FRONTEND=noninteractive
- dpkg --add-architecture mips64el
- apt-get update
- apt-get dist-upgrade -y
- apt-get install --no-install-recommends -y dpkg-dev
- apt-get install --no-install-recommends -y \
- gcc-mips64el-linux-gnuabi64 \
- libacl1-dev:mips64el \
- libapparmor-dev:mips64el \
- libattr1-dev:mips64el \
- libaudit-dev:mips64el \
- libblkid-dev:mips64el \
- libc6-dev:mips64el \
- libcap-ng-dev:mips64el \
- libcurl4-gnutls-dev:mips64el \
- libdevmapper-dev:mips64el \
- libfuse-dev:mips64el \
- libglib2.0-dev:mips64el \
- libglusterfs-dev:mips64el \
- libgnutls28-dev:mips64el \
- libiscsi-dev:mips64el \
- libjson-c-dev:mips64el \
- libnl-3-dev:mips64el \
- libnl-route-3-dev:mips64el \
- libnuma-dev:mips64el \
- libparted-dev:mips64el \
- libpcap0.8-dev:mips64el \
- libpciaccess-dev:mips64el \
- librbd-dev:mips64el \
- libreadline-dev:mips64el \
- libsanlock-dev:mips64el \
- libsasl2-dev:mips64el \
- libselinux1-dev:mips64el \
- libssh-dev:mips64el \
- libssh2-1-dev:mips64el \
- libtirpc-dev:mips64el \
- libudev-dev:mips64el \
- libxml2-dev:mips64el \
- systemtap-sdt-dev:mips64el
- mkdir -p /usr/local/share/meson/cross
- printf "[binaries]\n\
-c = '/usr/bin/mips64el-linux-gnuabi64-gcc'\n\
-ar = '/usr/bin/mips64el-linux-gnuabi64-gcc-ar'\n\
-strip = '/usr/bin/mips64el-linux-gnuabi64-strip'\n\
-pkgconfig = '/usr/bin/mips64el-linux-gnuabi64-pkg-config'\n\
-\n\
-[host_machine]\n\
-system = 'linux'\n\
-cpu_family = 'mips64'\n\
-cpu = 'mips64el'\n\
-endian = 'little'\n" > /usr/local/share/meson/cross/mips64el-linux-gnuabi64
- dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt
- mkdir -p /usr/libexec/ccache-wrappers
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mips64el-linux-gnuabi64-cc
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mips64el-linux-gnuabi64-gcc
-}
-
-export CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
-export LANG="en_US.UTF-8"
-export MAKE="/usr/bin/make"
-export NINJA="/usr/bin/ninja"
-export PYTHON="/usr/bin/python3"
-
-export ABI="mips64el-linux-gnuabi64"
-export MESON_OPTS="--cross-file=mips64el-linux-gnuabi64"
diff --git a/ci/buildenv/debian-11-cross-mipsel.sh b/ci/buildenv/debian-11-cross-mipsel.sh
deleted file mode 100644
index 55a99b861f..0000000000
--- a/ci/buildenv/debian-11-cross-mipsel.sh
+++ /dev/null
@@ -1,116 +0,0 @@
-# THIS FILE WAS AUTO-GENERATED
-#
-# $ lcitool manifest ci/manifest.yml
-#
-# https://gitlab.com/libvirt/libvirt-ci
-
-function install_buildenv() {
- export DEBIAN_FRONTEND=noninteractive
- apt-get update
- apt-get dist-upgrade -y
- apt-get install --no-install-recommends -y \
- augeas-lenses \
- augeas-tools \
- bash-completion \
- black \
- ca-certificates \
- ccache \
- codespell \
- cpp \
- diffutils \
- dwarves \
- ebtables \
- flake8 \
- gettext \
- git \
- grep \
- iproute2 \
- iptables \
- kmod \
- libclang-dev \
- libxml2-utils \
- locales \
- lvm2 \
- make \
- meson \
- nfs-common \
- ninja-build \
- numad \
- open-iscsi \
- perl-base \
- pkgconf \
- policykit-1 \
- python3 \
- python3-docutils \
- python3-pytest \
- qemu-utils \
- sed \
- xsltproc
- sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen
- dpkg-reconfigure locales
- rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
- export DEBIAN_FRONTEND=noninteractive
- dpkg --add-architecture mipsel
- apt-get update
- apt-get dist-upgrade -y
- apt-get install --no-install-recommends -y dpkg-dev
- apt-get install --no-install-recommends -y \
- gcc-mipsel-linux-gnu \
- libacl1-dev:mipsel \
- libapparmor-dev:mipsel \
- libattr1-dev:mipsel \
- libaudit-dev:mipsel \
- libblkid-dev:mipsel \
- libc6-dev:mipsel \
- libcap-ng-dev:mipsel \
- libcurl4-gnutls-dev:mipsel \
- libdevmapper-dev:mipsel \
- libfuse-dev:mipsel \
- libglib2.0-dev:mipsel \
- libglusterfs-dev:mipsel \
- libgnutls28-dev:mipsel \
- libiscsi-dev:mipsel \
- libjson-c-dev:mipsel \
- libnl-3-dev:mipsel \
- libnl-route-3-dev:mipsel \
- libnuma-dev:mipsel \
- libparted-dev:mipsel \
- libpcap0.8-dev:mipsel \
- libpciaccess-dev:mipsel \
- librbd-dev:mipsel \
- libreadline-dev:mipsel \
- libsanlock-dev:mipsel \
- libsasl2-dev:mipsel \
- libselinux1-dev:mipsel \
- libssh-dev:mipsel \
- libssh2-1-dev:mipsel \
- libtirpc-dev:mipsel \
- libudev-dev:mipsel \
- libxml2-dev:mipsel \
- systemtap-sdt-dev:mipsel
- mkdir -p /usr/local/share/meson/cross
- printf "[binaries]\n\
-c = '/usr/bin/mipsel-linux-gnu-gcc'\n\
-ar = '/usr/bin/mipsel-linux-gnu-gcc-ar'\n\
-strip = '/usr/bin/mipsel-linux-gnu-strip'\n\
-pkgconfig = '/usr/bin/mipsel-linux-gnu-pkg-config'\n\
-\n\
-[host_machine]\n\
-system = 'linux'\n\
-cpu_family = 'mips'\n\
-cpu = 'mipsel'\n\
-endian = 'little'\n" > /usr/local/share/meson/cross/mipsel-linux-gnu
- dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt
- mkdir -p /usr/libexec/ccache-wrappers
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mipsel-linux-gnu-cc
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mipsel-linux-gnu-gcc
-}
-
-export CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
-export LANG="en_US.UTF-8"
-export MAKE="/usr/bin/make"
-export NINJA="/usr/bin/ninja"
-export PYTHON="/usr/bin/python3"
-
-export ABI="mipsel-linux-gnu"
-export MESON_OPTS="--cross-file=mipsel-linux-gnu"
diff --git a/ci/buildenv/debian-11-cross-ppc64le.sh b/ci/buildenv/debian-11-cross-ppc64le.sh
deleted file mode 100644
index b7d26e67fd..0000000000
--- a/ci/buildenv/debian-11-cross-ppc64le.sh
+++ /dev/null
@@ -1,116 +0,0 @@
-# THIS FILE WAS AUTO-GENERATED
-#
-# $ lcitool manifest ci/manifest.yml
-#
-# https://gitlab.com/libvirt/libvirt-ci
-
-function install_buildenv() {
- export DEBIAN_FRONTEND=noninteractive
- apt-get update
- apt-get dist-upgrade -y
- apt-get install --no-install-recommends -y \
- augeas-lenses \
- augeas-tools \
- bash-completion \
- black \
- ca-certificates \
- ccache \
- codespell \
- cpp \
- diffutils \
- dwarves \
- ebtables \
- flake8 \
- gettext \
- git \
- grep \
- iproute2 \
- iptables \
- kmod \
- libclang-dev \
- libxml2-utils \
- locales \
- lvm2 \
- make \
- meson \
- nfs-common \
- ninja-build \
- numad \
- open-iscsi \
- perl-base \
- pkgconf \
- policykit-1 \
- python3 \
- python3-docutils \
- python3-pytest \
- qemu-utils \
- sed \
- xsltproc
- sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen
- dpkg-reconfigure locales
- rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
- export DEBIAN_FRONTEND=noninteractive
- dpkg --add-architecture ppc64el
- apt-get update
- apt-get dist-upgrade -y
- apt-get install --no-install-recommends -y dpkg-dev
- apt-get install --no-install-recommends -y \
- gcc-powerpc64le-linux-gnu \
- libacl1-dev:ppc64el \
- libapparmor-dev:ppc64el \
- libattr1-dev:ppc64el \
- libaudit-dev:ppc64el \
- libblkid-dev:ppc64el \
- libc6-dev:ppc64el \
- libcap-ng-dev:ppc64el \
- libcurl4-gnutls-dev:ppc64el \
- libdevmapper-dev:ppc64el \
- libfuse-dev:ppc64el \
- libglib2.0-dev:ppc64el \
- libglusterfs-dev:ppc64el \
- libgnutls28-dev:ppc64el \
- libiscsi-dev:ppc64el \
- libjson-c-dev:ppc64el \
- libnl-3-dev:ppc64el \
- libnl-route-3-dev:ppc64el \
- libnuma-dev:ppc64el \
- libparted-dev:ppc64el \
- libpcap0.8-dev:ppc64el \
- libpciaccess-dev:ppc64el \
- librbd-dev:ppc64el \
- libreadline-dev:ppc64el \
- libsanlock-dev:ppc64el \
- libsasl2-dev:ppc64el \
- libselinux1-dev:ppc64el \
- libssh-dev:ppc64el \
- libssh2-1-dev:ppc64el \
- libtirpc-dev:ppc64el \
- libudev-dev:ppc64el \
- libxml2-dev:ppc64el \
- systemtap-sdt-dev:ppc64el
- mkdir -p /usr/local/share/meson/cross
- printf "[binaries]\n\
-c = '/usr/bin/powerpc64le-linux-gnu-gcc'\n\
-ar = '/usr/bin/powerpc64le-linux-gnu-gcc-ar'\n\
-strip = '/usr/bin/powerpc64le-linux-gnu-strip'\n\
-pkgconfig = '/usr/bin/powerpc64le-linux-gnu-pkg-config'\n\
-\n\
-[host_machine]\n\
-system = 'linux'\n\
-cpu_family = 'ppc64'\n\
-cpu = 'powerpc64le'\n\
-endian = 'little'\n" > /usr/local/share/meson/cross/powerpc64le-linux-gnu
- dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt
- mkdir -p /usr/libexec/ccache-wrappers
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/powerpc64le-linux-gnu-cc
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/powerpc64le-linux-gnu-gcc
-}
-
-export CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
-export LANG="en_US.UTF-8"
-export MAKE="/usr/bin/make"
-export NINJA="/usr/bin/ninja"
-export PYTHON="/usr/bin/python3"
-
-export ABI="powerpc64le-linux-gnu"
-export MESON_OPTS="--cross-file=powerpc64le-linux-gnu"
diff --git a/ci/buildenv/debian-11-cross-s390x.sh b/ci/buildenv/debian-11-cross-s390x.sh
deleted file mode 100644
index ac259c5625..0000000000
--- a/ci/buildenv/debian-11-cross-s390x.sh
+++ /dev/null
@@ -1,116 +0,0 @@
-# THIS FILE WAS AUTO-GENERATED
-#
-# $ lcitool manifest ci/manifest.yml
-#
-# https://gitlab.com/libvirt/libvirt-ci
-
-function install_buildenv() {
- export DEBIAN_FRONTEND=noninteractive
- apt-get update
- apt-get dist-upgrade -y
- apt-get install --no-install-recommends -y \
- augeas-lenses \
- augeas-tools \
- bash-completion \
- black \
- ca-certificates \
- ccache \
- codespell \
- cpp \
- diffutils \
- dwarves \
- ebtables \
- flake8 \
- gettext \
- git \
- grep \
- iproute2 \
- iptables \
- kmod \
- libclang-dev \
- libxml2-utils \
- locales \
- lvm2 \
- make \
- meson \
- nfs-common \
- ninja-build \
- numad \
- open-iscsi \
- perl-base \
- pkgconf \
- policykit-1 \
- python3 \
- python3-docutils \
- python3-pytest \
- qemu-utils \
- sed \
- xsltproc
- sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen
- dpkg-reconfigure locales
- rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
- export DEBIAN_FRONTEND=noninteractive
- dpkg --add-architecture s390x
- apt-get update
- apt-get dist-upgrade -y
- apt-get install --no-install-recommends -y dpkg-dev
- apt-get install --no-install-recommends -y \
- gcc-s390x-linux-gnu \
- libacl1-dev:s390x \
- libapparmor-dev:s390x \
- libattr1-dev:s390x \
- libaudit-dev:s390x \
- libblkid-dev:s390x \
- libc6-dev:s390x \
- libcap-ng-dev:s390x \
- libcurl4-gnutls-dev:s390x \
- libdevmapper-dev:s390x \
- libfuse-dev:s390x \
- libglib2.0-dev:s390x \
- libglusterfs-dev:s390x \
- libgnutls28-dev:s390x \
- libiscsi-dev:s390x \
- libjson-c-dev:s390x \
- libnl-3-dev:s390x \
- libnl-route-3-dev:s390x \
- libnuma-dev:s390x \
- libparted-dev:s390x \
- libpcap0.8-dev:s390x \
- libpciaccess-dev:s390x \
- librbd-dev:s390x \
- libreadline-dev:s390x \
- libsanlock-dev:s390x \
- libsasl2-dev:s390x \
- libselinux1-dev:s390x \
- libssh-dev:s390x \
- libssh2-1-dev:s390x \
- libtirpc-dev:s390x \
- libudev-dev:s390x \
- libxml2-dev:s390x \
- systemtap-sdt-dev:s390x
- mkdir -p /usr/local/share/meson/cross
- printf "[binaries]\n\
-c = '/usr/bin/s390x-linux-gnu-gcc'\n\
-ar = '/usr/bin/s390x-linux-gnu-gcc-ar'\n\
-strip = '/usr/bin/s390x-linux-gnu-strip'\n\
-pkgconfig = '/usr/bin/s390x-linux-gnu-pkg-config'\n\
-\n\
-[host_machine]\n\
-system = 'linux'\n\
-cpu_family = 's390x'\n\
-cpu = 's390x'\n\
-endian = 'big'\n" > /usr/local/share/meson/cross/s390x-linux-gnu
- dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt
- mkdir -p /usr/libexec/ccache-wrappers
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/s390x-linux-gnu-cc
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/s390x-linux-gnu-gcc
-}
-
-export CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
-export LANG="en_US.UTF-8"
-export MAKE="/usr/bin/make"
-export NINJA="/usr/bin/ninja"
-export PYTHON="/usr/bin/python3"
-
-export ABI="s390x-linux-gnu"
-export MESON_OPTS="--cross-file=s390x-linux-gnu"
diff --git a/ci/buildenv/debian-11.sh b/ci/buildenv/debian-11.sh
deleted file mode 100644
index affdf6e445..0000000000
--- a/ci/buildenv/debian-11.sh
+++ /dev/null
@@ -1,100 +0,0 @@
-# THIS FILE WAS AUTO-GENERATED
-#
-# $ lcitool manifest ci/manifest.yml
-#
-# https://gitlab.com/libvirt/libvirt-ci
-
-function install_buildenv() {
- export DEBIAN_FRONTEND=noninteractive
- apt-get update
- apt-get dist-upgrade -y
- apt-get install --no-install-recommends -y \
- augeas-lenses \
- augeas-tools \
- bash-completion \
- black \
- ca-certificates \
- ccache \
- clang \
- codespell \
- cpp \
- diffutils \
- dwarves \
- ebtables \
- flake8 \
- gcc \
- gettext \
- git \
- grep \
- iproute2 \
- iptables \
- kmod \
- libacl1-dev \
- libapparmor-dev \
- libattr1-dev \
- libaudit-dev \
- libblkid-dev \
- libc6-dev \
- libcap-ng-dev \
- libclang-dev \
- libcurl4-gnutls-dev \
- libdevmapper-dev \
- libfuse-dev \
- libglib2.0-dev \
- libglusterfs-dev \
- libgnutls28-dev \
- libiscsi-dev \
- libjson-c-dev \
- libnetcf-dev \
- libnl-3-dev \
- libnl-route-3-dev \
- libnuma-dev \
- libparted-dev \
- libpcap0.8-dev \
- libpciaccess-dev \
- librbd-dev \
- libreadline-dev \
- libsanlock-dev \
- libsasl2-dev \
- libselinux1-dev \
- libssh-dev \
- libssh2-1-dev \
- libtirpc-dev \
- libudev-dev \
- libxen-dev \
- libxml2-dev \
- libxml2-utils \
- locales \
- lvm2 \
- make \
- meson \
- nfs-common \
- ninja-build \
- numad \
- open-iscsi \
- perl-base \
- pkgconf \
- policykit-1 \
- python3 \
- python3-docutils \
- python3-pytest \
- qemu-utils \
- sed \
- systemtap-sdt-dev \
- wireshark-dev \
- xsltproc
- sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen
- dpkg-reconfigure locales
- rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
- dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt
- mkdir -p /usr/libexec/ccache-wrappers
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
-}
-
-export CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
-export LANG="en_US.UTF-8"
-export MAKE="/usr/bin/make"
-export NINJA="/usr/bin/ninja"
-export PYTHON="/usr/bin/python3"
diff --git a/ci/containers/debian-11-cross-aarch64.Dockerfile b/ci/containers/debian-11-cross-aarch64.Dockerfile
deleted file mode 100644
index 79c359f9fa..0000000000
--- a/ci/containers/debian-11-cross-aarch64.Dockerfile
+++ /dev/null
@@ -1,123 +0,0 @@
-# THIS FILE WAS AUTO-GENERATED
-#
-# $ lcitool manifest ci/manifest.yml
-#
-# https://gitlab.com/libvirt/libvirt-ci
-
-FROM docker.io/library/debian:11-slim
-
-RUN export DEBIAN_FRONTEND=noninteractive && \
- apt-get update && \
- apt-get install -y eatmydata && \
- eatmydata apt-get dist-upgrade -y && \
- eatmydata apt-get install --no-install-recommends -y \
- augeas-lenses \
- augeas-tools \
- bash-completion \
- black \
- ca-certificates \
- ccache \
- codespell \
- cpp \
- diffutils \
- dwarves \
- ebtables \
- flake8 \
- gettext \
- git \
- grep \
- iproute2 \
- iptables \
- kmod \
- libclang-dev \
- libxml2-utils \
- locales \
- lvm2 \
- make \
- meson \
- nfs-common \
- ninja-build \
- numad \
- open-iscsi \
- perl-base \
- pkgconf \
- policykit-1 \
- python3 \
- python3-docutils \
- python3-pytest \
- qemu-utils \
- sed \
- xsltproc && \
- eatmydata apt-get autoremove -y && \
- eatmydata apt-get autoclean -y && \
- sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
- dpkg-reconfigure locales && \
- rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
-
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
-
-RUN export DEBIAN_FRONTEND=noninteractive && \
- dpkg --add-architecture arm64 && \
- eatmydata apt-get update && \
- eatmydata apt-get dist-upgrade -y && \
- eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
- eatmydata apt-get install --no-install-recommends -y \
- gcc-aarch64-linux-gnu \
- libacl1-dev:arm64 \
- libapparmor-dev:arm64 \
- libattr1-dev:arm64 \
- libaudit-dev:arm64 \
- libblkid-dev:arm64 \
- libc6-dev:arm64 \
- libcap-ng-dev:arm64 \
- libcurl4-gnutls-dev:arm64 \
- libdevmapper-dev:arm64 \
- libfuse-dev:arm64 \
- libglib2.0-dev:arm64 \
- libglusterfs-dev:arm64 \
- libgnutls28-dev:arm64 \
- libiscsi-dev:arm64 \
- libjson-c-dev:arm64 \
- libnl-3-dev:arm64 \
- libnl-route-3-dev:arm64 \
- libnuma-dev:arm64 \
- libparted-dev:arm64 \
- libpcap0.8-dev:arm64 \
- libpciaccess-dev:arm64 \
- librbd-dev:arm64 \
- libreadline-dev:arm64 \
- libsanlock-dev:arm64 \
- libsasl2-dev:arm64 \
- libselinux1-dev:arm64 \
- libssh-dev:arm64 \
- libssh2-1-dev:arm64 \
- libtirpc-dev:arm64 \
- libudev-dev:arm64 \
- libxen-dev:arm64 \
- libxml2-dev:arm64 \
- systemtap-sdt-dev:arm64 && \
- eatmydata apt-get autoremove -y && \
- eatmydata apt-get autoclean -y && \
- mkdir -p /usr/local/share/meson/cross && \
- printf "[binaries]\n\
-c = '/usr/bin/aarch64-linux-gnu-gcc'\n\
-ar = '/usr/bin/aarch64-linux-gnu-gcc-ar'\n\
-strip = '/usr/bin/aarch64-linux-gnu-strip'\n\
-pkgconfig = '/usr/bin/aarch64-linux-gnu-pkg-config'\n\
-\n\
-[host_machine]\n\
-system = 'linux'\n\
-cpu_family = 'aarch64'\n\
-cpu = 'aarch64'\n\
-endian = 'little'\n" > /usr/local/share/meson/cross/aarch64-linux-gnu && \
- dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
- mkdir -p /usr/libexec/ccache-wrappers && \
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/aarch64-linux-gnu-cc && \
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/aarch64-linux-gnu-gcc
-
-ENV ABI "aarch64-linux-gnu"
-ENV MESON_OPTS "--cross-file=aarch64-linux-gnu"
diff --git a/ci/containers/debian-11-cross-armv6l.Dockerfile b/ci/containers/debian-11-cross-armv6l.Dockerfile
deleted file mode 100644
index 27bd6c578b..0000000000
--- a/ci/containers/debian-11-cross-armv6l.Dockerfile
+++ /dev/null
@@ -1,122 +0,0 @@
-# THIS FILE WAS AUTO-GENERATED
-#
-# $ lcitool manifest ci/manifest.yml
-#
-# https://gitlab.com/libvirt/libvirt-ci
-
-FROM docker.io/library/debian:11-slim
-
-RUN export DEBIAN_FRONTEND=noninteractive && \
- apt-get update && \
- apt-get install -y eatmydata && \
- eatmydata apt-get dist-upgrade -y && \
- eatmydata apt-get install --no-install-recommends -y \
- augeas-lenses \
- augeas-tools \
- bash-completion \
- black \
- ca-certificates \
- ccache \
- codespell \
- cpp \
- diffutils \
- dwarves \
- ebtables \
- flake8 \
- gettext \
- git \
- grep \
- iproute2 \
- iptables \
- kmod \
- libclang-dev \
- libxml2-utils \
- locales \
- lvm2 \
- make \
- meson \
- nfs-common \
- ninja-build \
- numad \
- open-iscsi \
- perl-base \
- pkgconf \
- policykit-1 \
- python3 \
- python3-docutils \
- python3-pytest \
- qemu-utils \
- sed \
- xsltproc && \
- eatmydata apt-get autoremove -y && \
- eatmydata apt-get autoclean -y && \
- sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
- dpkg-reconfigure locales && \
- rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
-
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
-
-RUN export DEBIAN_FRONTEND=noninteractive && \
- dpkg --add-architecture armel && \
- eatmydata apt-get update && \
- eatmydata apt-get dist-upgrade -y && \
- eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
- eatmydata apt-get install --no-install-recommends -y \
- gcc-arm-linux-gnueabi \
- libacl1-dev:armel \
- libapparmor-dev:armel \
- libattr1-dev:armel \
- libaudit-dev:armel \
- libblkid-dev:armel \
- libc6-dev:armel \
- libcap-ng-dev:armel \
- libcurl4-gnutls-dev:armel \
- libdevmapper-dev:armel \
- libfuse-dev:armel \
- libglib2.0-dev:armel \
- libglusterfs-dev:armel \
- libgnutls28-dev:armel \
- libiscsi-dev:armel \
- libjson-c-dev:armel \
- libnl-3-dev:armel \
- libnl-route-3-dev:armel \
- libnuma-dev:armel \
- libparted-dev:armel \
- libpcap0.8-dev:armel \
- libpciaccess-dev:armel \
- librbd-dev:armel \
- libreadline-dev:armel \
- libsanlock-dev:armel \
- libsasl2-dev:armel \
- libselinux1-dev:armel \
- libssh-dev:armel \
- libssh2-1-dev:armel \
- libtirpc-dev:armel \
- libudev-dev:armel \
- libxml2-dev:armel \
- systemtap-sdt-dev:armel && \
- eatmydata apt-get autoremove -y && \
- eatmydata apt-get autoclean -y && \
- mkdir -p /usr/local/share/meson/cross && \
- printf "[binaries]\n\
-c = '/usr/bin/arm-linux-gnueabi-gcc'\n\
-ar = '/usr/bin/arm-linux-gnueabi-gcc-ar'\n\
-strip = '/usr/bin/arm-linux-gnueabi-strip'\n\
-pkgconfig = '/usr/bin/arm-linux-gnueabi-pkg-config'\n\
-\n\
-[host_machine]\n\
-system = 'linux'\n\
-cpu_family = 'arm'\n\
-cpu = 'arm'\n\
-endian = 'little'\n" > /usr/local/share/meson/cross/arm-linux-gnueabi && \
- dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
- mkdir -p /usr/libexec/ccache-wrappers && \
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabi-cc && \
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabi-gcc
-
-ENV ABI "arm-linux-gnueabi"
-ENV MESON_OPTS "--cross-file=arm-linux-gnueabi"
diff --git a/ci/containers/debian-11-cross-armv7l.Dockerfile b/ci/containers/debian-11-cross-armv7l.Dockerfile
deleted file mode 100644
index 3b413673a6..0000000000
--- a/ci/containers/debian-11-cross-armv7l.Dockerfile
+++ /dev/null
@@ -1,123 +0,0 @@
-# THIS FILE WAS AUTO-GENERATED
-#
-# $ lcitool manifest ci/manifest.yml
-#
-# https://gitlab.com/libvirt/libvirt-ci
-
-FROM docker.io/library/debian:11-slim
-
-RUN export DEBIAN_FRONTEND=noninteractive && \
- apt-get update && \
- apt-get install -y eatmydata && \
- eatmydata apt-get dist-upgrade -y && \
- eatmydata apt-get install --no-install-recommends -y \
- augeas-lenses \
- augeas-tools \
- bash-completion \
- black \
- ca-certificates \
- ccache \
- codespell \
- cpp \
- diffutils \
- dwarves \
- ebtables \
- flake8 \
- gettext \
- git \
- grep \
- iproute2 \
- iptables \
- kmod \
- libclang-dev \
- libxml2-utils \
- locales \
- lvm2 \
- make \
- meson \
- nfs-common \
- ninja-build \
- numad \
- open-iscsi \
- perl-base \
- pkgconf \
- policykit-1 \
- python3 \
- python3-docutils \
- python3-pytest \
- qemu-utils \
- sed \
- xsltproc && \
- eatmydata apt-get autoremove -y && \
- eatmydata apt-get autoclean -y && \
- sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
- dpkg-reconfigure locales && \
- rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
-
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
-
-RUN export DEBIAN_FRONTEND=noninteractive && \
- dpkg --add-architecture armhf && \
- eatmydata apt-get update && \
- eatmydata apt-get dist-upgrade -y && \
- eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
- eatmydata apt-get install --no-install-recommends -y \
- gcc-arm-linux-gnueabihf \
- libacl1-dev:armhf \
- libapparmor-dev:armhf \
- libattr1-dev:armhf \
- libaudit-dev:armhf \
- libblkid-dev:armhf \
- libc6-dev:armhf \
- libcap-ng-dev:armhf \
- libcurl4-gnutls-dev:armhf \
- libdevmapper-dev:armhf \
- libfuse-dev:armhf \
- libglib2.0-dev:armhf \
- libglusterfs-dev:armhf \
- libgnutls28-dev:armhf \
- libiscsi-dev:armhf \
- libjson-c-dev:armhf \
- libnl-3-dev:armhf \
- libnl-route-3-dev:armhf \
- libnuma-dev:armhf \
- libparted-dev:armhf \
- libpcap0.8-dev:armhf \
- libpciaccess-dev:armhf \
- librbd-dev:armhf \
- libreadline-dev:armhf \
- libsanlock-dev:armhf \
- libsasl2-dev:armhf \
- libselinux1-dev:armhf \
- libssh-dev:armhf \
- libssh2-1-dev:armhf \
- libtirpc-dev:armhf \
- libudev-dev:armhf \
- libxen-dev:armhf \
- libxml2-dev:armhf \
- systemtap-sdt-dev:armhf && \
- eatmydata apt-get autoremove -y && \
- eatmydata apt-get autoclean -y && \
- mkdir -p /usr/local/share/meson/cross && \
- printf "[binaries]\n\
-c = '/usr/bin/arm-linux-gnueabihf-gcc'\n\
-ar = '/usr/bin/arm-linux-gnueabihf-gcc-ar'\n\
-strip = '/usr/bin/arm-linux-gnueabihf-strip'\n\
-pkgconfig = '/usr/bin/arm-linux-gnueabihf-pkg-config'\n\
-\n\
-[host_machine]\n\
-system = 'linux'\n\
-cpu_family = 'arm'\n\
-cpu = 'armhf'\n\
-endian = 'little'\n" > /usr/local/share/meson/cross/arm-linux-gnueabihf && \
- dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
- mkdir -p /usr/libexec/ccache-wrappers && \
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabihf-cc && \
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabihf-gcc
-
-ENV ABI "arm-linux-gnueabihf"
-ENV MESON_OPTS "--cross-file=arm-linux-gnueabihf"
diff --git a/ci/containers/debian-11-cross-i686.Dockerfile b/ci/containers/debian-11-cross-i686.Dockerfile
deleted file mode 100644
index ab5173f2f1..0000000000
--- a/ci/containers/debian-11-cross-i686.Dockerfile
+++ /dev/null
@@ -1,122 +0,0 @@
-# THIS FILE WAS AUTO-GENERATED
-#
-# $ lcitool manifest ci/manifest.yml
-#
-# https://gitlab.com/libvirt/libvirt-ci
-
-FROM docker.io/library/debian:11-slim
-
-RUN export DEBIAN_FRONTEND=noninteractive && \
- apt-get update && \
- apt-get install -y eatmydata && \
- eatmydata apt-get dist-upgrade -y && \
- eatmydata apt-get install --no-install-recommends -y \
- augeas-lenses \
- augeas-tools \
- bash-completion \
- black \
- ca-certificates \
- ccache \
- codespell \
- cpp \
- diffutils \
- dwarves \
- ebtables \
- flake8 \
- gettext \
- git \
- grep \
- iproute2 \
- iptables \
- kmod \
- libclang-dev \
- libxml2-utils \
- locales \
- lvm2 \
- make \
- meson \
- nfs-common \
- ninja-build \
- numad \
- open-iscsi \
- perl-base \
- pkgconf \
- policykit-1 \
- python3 \
- python3-docutils \
- python3-pytest \
- qemu-utils \
- sed \
- xsltproc && \
- eatmydata apt-get autoremove -y && \
- eatmydata apt-get autoclean -y && \
- sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
- dpkg-reconfigure locales && \
- rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
-
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
-
-RUN export DEBIAN_FRONTEND=noninteractive && \
- dpkg --add-architecture i386 && \
- eatmydata apt-get update && \
- eatmydata apt-get dist-upgrade -y && \
- eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
- eatmydata apt-get install --no-install-recommends -y \
- gcc-i686-linux-gnu \
- libacl1-dev:i386 \
- libapparmor-dev:i386 \
- libattr1-dev:i386 \
- libaudit-dev:i386 \
- libblkid-dev:i386 \
- libc6-dev:i386 \
- libcap-ng-dev:i386 \
- libcurl4-gnutls-dev:i386 \
- libdevmapper-dev:i386 \
- libfuse-dev:i386 \
- libglib2.0-dev:i386 \
- libglusterfs-dev:i386 \
- libgnutls28-dev:i386 \
- libiscsi-dev:i386 \
- libjson-c-dev:i386 \
- libnl-3-dev:i386 \
- libnl-route-3-dev:i386 \
- libnuma-dev:i386 \
- libparted-dev:i386 \
- libpcap0.8-dev:i386 \
- libpciaccess-dev:i386 \
- librbd-dev:i386 \
- libreadline-dev:i386 \
- libsanlock-dev:i386 \
- libsasl2-dev:i386 \
- libselinux1-dev:i386 \
- libssh-dev:i386 \
- libssh2-1-dev:i386 \
- libtirpc-dev:i386 \
- libudev-dev:i386 \
- libxml2-dev:i386 \
- systemtap-sdt-dev:i386 && \
- eatmydata apt-get autoremove -y && \
- eatmydata apt-get autoclean -y && \
- mkdir -p /usr/local/share/meson/cross && \
- printf "[binaries]\n\
-c = '/usr/bin/i686-linux-gnu-gcc'\n\
-ar = '/usr/bin/i686-linux-gnu-gcc-ar'\n\
-strip = '/usr/bin/i686-linux-gnu-strip'\n\
-pkgconfig = '/usr/bin/i686-linux-gnu-pkg-config'\n\
-\n\
-[host_machine]\n\
-system = 'linux'\n\
-cpu_family = 'x86'\n\
-cpu = 'i686'\n\
-endian = 'little'\n" > /usr/local/share/meson/cross/i686-linux-gnu && \
- dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
- mkdir -p /usr/libexec/ccache-wrappers && \
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-linux-gnu-cc && \
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-linux-gnu-gcc
-
-ENV ABI "i686-linux-gnu"
-ENV MESON_OPTS "--cross-file=i686-linux-gnu"
diff --git a/ci/containers/debian-11-cross-mips64el.Dockerfile b/ci/containers/debian-11-cross-mips64el.Dockerfile
deleted file mode 100644
index 04fa68f688..0000000000
--- a/ci/containers/debian-11-cross-mips64el.Dockerfile
+++ /dev/null
@@ -1,122 +0,0 @@
-# THIS FILE WAS AUTO-GENERATED
-#
-# $ lcitool manifest ci/manifest.yml
-#
-# https://gitlab.com/libvirt/libvirt-ci
-
-FROM docker.io/library/debian:11-slim
-
-RUN export DEBIAN_FRONTEND=noninteractive && \
- apt-get update && \
- apt-get install -y eatmydata && \
- eatmydata apt-get dist-upgrade -y && \
- eatmydata apt-get install --no-install-recommends -y \
- augeas-lenses \
- augeas-tools \
- bash-completion \
- black \
- ca-certificates \
- ccache \
- codespell \
- cpp \
- diffutils \
- dwarves \
- ebtables \
- flake8 \
- gettext \
- git \
- grep \
- iproute2 \
- iptables \
- kmod \
- libclang-dev \
- libxml2-utils \
- locales \
- lvm2 \
- make \
- meson \
- nfs-common \
- ninja-build \
- numad \
- open-iscsi \
- perl-base \
- pkgconf \
- policykit-1 \
- python3 \
- python3-docutils \
- python3-pytest \
- qemu-utils \
- sed \
- xsltproc && \
- eatmydata apt-get autoremove -y && \
- eatmydata apt-get autoclean -y && \
- sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
- dpkg-reconfigure locales && \
- rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
-
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
-
-RUN export DEBIAN_FRONTEND=noninteractive && \
- dpkg --add-architecture mips64el && \
- eatmydata apt-get update && \
- eatmydata apt-get dist-upgrade -y && \
- eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
- eatmydata apt-get install --no-install-recommends -y \
- gcc-mips64el-linux-gnuabi64 \
- libacl1-dev:mips64el \
- libapparmor-dev:mips64el \
- libattr1-dev:mips64el \
- libaudit-dev:mips64el \
- libblkid-dev:mips64el \
- libc6-dev:mips64el \
- libcap-ng-dev:mips64el \
- libcurl4-gnutls-dev:mips64el \
- libdevmapper-dev:mips64el \
- libfuse-dev:mips64el \
- libglib2.0-dev:mips64el \
- libglusterfs-dev:mips64el \
- libgnutls28-dev:mips64el \
- libiscsi-dev:mips64el \
- libjson-c-dev:mips64el \
- libnl-3-dev:mips64el \
- libnl-route-3-dev:mips64el \
- libnuma-dev:mips64el \
- libparted-dev:mips64el \
- libpcap0.8-dev:mips64el \
- libpciaccess-dev:mips64el \
- librbd-dev:mips64el \
- libreadline-dev:mips64el \
- libsanlock-dev:mips64el \
- libsasl2-dev:mips64el \
- libselinux1-dev:mips64el \
- libssh-dev:mips64el \
- libssh2-1-dev:mips64el \
- libtirpc-dev:mips64el \
- libudev-dev:mips64el \
- libxml2-dev:mips64el \
- systemtap-sdt-dev:mips64el && \
- eatmydata apt-get autoremove -y && \
- eatmydata apt-get autoclean -y && \
- mkdir -p /usr/local/share/meson/cross && \
- printf "[binaries]\n\
-c = '/usr/bin/mips64el-linux-gnuabi64-gcc'\n\
-ar = '/usr/bin/mips64el-linux-gnuabi64-gcc-ar'\n\
-strip = '/usr/bin/mips64el-linux-gnuabi64-strip'\n\
-pkgconfig = '/usr/bin/mips64el-linux-gnuabi64-pkg-config'\n\
-\n\
-[host_machine]\n\
-system = 'linux'\n\
-cpu_family = 'mips64'\n\
-cpu = 'mips64el'\n\
-endian = 'little'\n" > /usr/local/share/meson/cross/mips64el-linux-gnuabi64 && \
- dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
- mkdir -p /usr/libexec/ccache-wrappers && \
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mips64el-linux-gnuabi64-cc && \
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mips64el-linux-gnuabi64-gcc
-
-ENV ABI "mips64el-linux-gnuabi64"
-ENV MESON_OPTS "--cross-file=mips64el-linux-gnuabi64"
diff --git a/ci/containers/debian-11-cross-mipsel.Dockerfile b/ci/containers/debian-11-cross-mipsel.Dockerfile
deleted file mode 100644
index 558382ad25..0000000000
--- a/ci/containers/debian-11-cross-mipsel.Dockerfile
+++ /dev/null
@@ -1,122 +0,0 @@
-# THIS FILE WAS AUTO-GENERATED
-#
-# $ lcitool manifest ci/manifest.yml
-#
-# https://gitlab.com/libvirt/libvirt-ci
-
-FROM docker.io/library/debian:11-slim
-
-RUN export DEBIAN_FRONTEND=noninteractive && \
- apt-get update && \
- apt-get install -y eatmydata && \
- eatmydata apt-get dist-upgrade -y && \
- eatmydata apt-get install --no-install-recommends -y \
- augeas-lenses \
- augeas-tools \
- bash-completion \
- black \
- ca-certificates \
- ccache \
- codespell \
- cpp \
- diffutils \
- dwarves \
- ebtables \
- flake8 \
- gettext \
- git \
- grep \
- iproute2 \
- iptables \
- kmod \
- libclang-dev \
- libxml2-utils \
- locales \
- lvm2 \
- make \
- meson \
- nfs-common \
- ninja-build \
- numad \
- open-iscsi \
- perl-base \
- pkgconf \
- policykit-1 \
- python3 \
- python3-docutils \
- python3-pytest \
- qemu-utils \
- sed \
- xsltproc && \
- eatmydata apt-get autoremove -y && \
- eatmydata apt-get autoclean -y && \
- sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
- dpkg-reconfigure locales && \
- rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
-
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
-
-RUN export DEBIAN_FRONTEND=noninteractive && \
- dpkg --add-architecture mipsel && \
- eatmydata apt-get update && \
- eatmydata apt-get dist-upgrade -y && \
- eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
- eatmydata apt-get install --no-install-recommends -y \
- gcc-mipsel-linux-gnu \
- libacl1-dev:mipsel \
- libapparmor-dev:mipsel \
- libattr1-dev:mipsel \
- libaudit-dev:mipsel \
- libblkid-dev:mipsel \
- libc6-dev:mipsel \
- libcap-ng-dev:mipsel \
- libcurl4-gnutls-dev:mipsel \
- libdevmapper-dev:mipsel \
- libfuse-dev:mipsel \
- libglib2.0-dev:mipsel \
- libglusterfs-dev:mipsel \
- libgnutls28-dev:mipsel \
- libiscsi-dev:mipsel \
- libjson-c-dev:mipsel \
- libnl-3-dev:mipsel \
- libnl-route-3-dev:mipsel \
- libnuma-dev:mipsel \
- libparted-dev:mipsel \
- libpcap0.8-dev:mipsel \
- libpciaccess-dev:mipsel \
- librbd-dev:mipsel \
- libreadline-dev:mipsel \
- libsanlock-dev:mipsel \
- libsasl2-dev:mipsel \
- libselinux1-dev:mipsel \
- libssh-dev:mipsel \
- libssh2-1-dev:mipsel \
- libtirpc-dev:mipsel \
- libudev-dev:mipsel \
- libxml2-dev:mipsel \
- systemtap-sdt-dev:mipsel && \
- eatmydata apt-get autoremove -y && \
- eatmydata apt-get autoclean -y && \
- mkdir -p /usr/local/share/meson/cross && \
- printf "[binaries]\n\
-c = '/usr/bin/mipsel-linux-gnu-gcc'\n\
-ar = '/usr/bin/mipsel-linux-gnu-gcc-ar'\n\
-strip = '/usr/bin/mipsel-linux-gnu-strip'\n\
-pkgconfig = '/usr/bin/mipsel-linux-gnu-pkg-config'\n\
-\n\
-[host_machine]\n\
-system = 'linux'\n\
-cpu_family = 'mips'\n\
-cpu = 'mipsel'\n\
-endian = 'little'\n" > /usr/local/share/meson/cross/mipsel-linux-gnu && \
- dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
- mkdir -p /usr/libexec/ccache-wrappers && \
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mipsel-linux-gnu-cc && \
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mipsel-linux-gnu-gcc
-
-ENV ABI "mipsel-linux-gnu"
-ENV MESON_OPTS "--cross-file=mipsel-linux-gnu"
diff --git a/ci/containers/debian-11-cross-ppc64le.Dockerfile b/ci/containers/debian-11-cross-ppc64le.Dockerfile
deleted file mode 100644
index ed68e8f0af..0000000000
--- a/ci/containers/debian-11-cross-ppc64le.Dockerfile
+++ /dev/null
@@ -1,122 +0,0 @@
-# THIS FILE WAS AUTO-GENERATED
-#
-# $ lcitool manifest ci/manifest.yml
-#
-# https://gitlab.com/libvirt/libvirt-ci
-
-FROM docker.io/library/debian:11-slim
-
-RUN export DEBIAN_FRONTEND=noninteractive && \
- apt-get update && \
- apt-get install -y eatmydata && \
- eatmydata apt-get dist-upgrade -y && \
- eatmydata apt-get install --no-install-recommends -y \
- augeas-lenses \
- augeas-tools \
- bash-completion \
- black \
- ca-certificates \
- ccache \
- codespell \
- cpp \
- diffutils \
- dwarves \
- ebtables \
- flake8 \
- gettext \
- git \
- grep \
- iproute2 \
- iptables \
- kmod \
- libclang-dev \
- libxml2-utils \
- locales \
- lvm2 \
- make \
- meson \
- nfs-common \
- ninja-build \
- numad \
- open-iscsi \
- perl-base \
- pkgconf \
- policykit-1 \
- python3 \
- python3-docutils \
- python3-pytest \
- qemu-utils \
- sed \
- xsltproc && \
- eatmydata apt-get autoremove -y && \
- eatmydata apt-get autoclean -y && \
- sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
- dpkg-reconfigure locales && \
- rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
-
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
-
-RUN export DEBIAN_FRONTEND=noninteractive && \
- dpkg --add-architecture ppc64el && \
- eatmydata apt-get update && \
- eatmydata apt-get dist-upgrade -y && \
- eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
- eatmydata apt-get install --no-install-recommends -y \
- gcc-powerpc64le-linux-gnu \
- libacl1-dev:ppc64el \
- libapparmor-dev:ppc64el \
- libattr1-dev:ppc64el \
- libaudit-dev:ppc64el \
- libblkid-dev:ppc64el \
- libc6-dev:ppc64el \
- libcap-ng-dev:ppc64el \
- libcurl4-gnutls-dev:ppc64el \
- libdevmapper-dev:ppc64el \
- libfuse-dev:ppc64el \
- libglib2.0-dev:ppc64el \
- libglusterfs-dev:ppc64el \
- libgnutls28-dev:ppc64el \
- libiscsi-dev:ppc64el \
- libjson-c-dev:ppc64el \
- libnl-3-dev:ppc64el \
- libnl-route-3-dev:ppc64el \
- libnuma-dev:ppc64el \
- libparted-dev:ppc64el \
- libpcap0.8-dev:ppc64el \
- libpciaccess-dev:ppc64el \
- librbd-dev:ppc64el \
- libreadline-dev:ppc64el \
- libsanlock-dev:ppc64el \
- libsasl2-dev:ppc64el \
- libselinux1-dev:ppc64el \
- libssh-dev:ppc64el \
- libssh2-1-dev:ppc64el \
- libtirpc-dev:ppc64el \
- libudev-dev:ppc64el \
- libxml2-dev:ppc64el \
- systemtap-sdt-dev:ppc64el && \
- eatmydata apt-get autoremove -y && \
- eatmydata apt-get autoclean -y && \
- mkdir -p /usr/local/share/meson/cross && \
- printf "[binaries]\n\
-c = '/usr/bin/powerpc64le-linux-gnu-gcc'\n\
-ar = '/usr/bin/powerpc64le-linux-gnu-gcc-ar'\n\
-strip = '/usr/bin/powerpc64le-linux-gnu-strip'\n\
-pkgconfig = '/usr/bin/powerpc64le-linux-gnu-pkg-config'\n\
-\n\
-[host_machine]\n\
-system = 'linux'\n\
-cpu_family = 'ppc64'\n\
-cpu = 'powerpc64le'\n\
-endian = 'little'\n" > /usr/local/share/meson/cross/powerpc64le-linux-gnu && \
- dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
- mkdir -p /usr/libexec/ccache-wrappers && \
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/powerpc64le-linux-gnu-cc && \
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/powerpc64le-linux-gnu-gcc
-
-ENV ABI "powerpc64le-linux-gnu"
-ENV MESON_OPTS "--cross-file=powerpc64le-linux-gnu"
diff --git a/ci/containers/debian-11-cross-s390x.Dockerfile b/ci/containers/debian-11-cross-s390x.Dockerfile
deleted file mode 100644
index 62791ac154..0000000000
--- a/ci/containers/debian-11-cross-s390x.Dockerfile
+++ /dev/null
@@ -1,122 +0,0 @@
-# THIS FILE WAS AUTO-GENERATED
-#
-# $ lcitool manifest ci/manifest.yml
-#
-# https://gitlab.com/libvirt/libvirt-ci
-
-FROM docker.io/library/debian:11-slim
-
-RUN export DEBIAN_FRONTEND=noninteractive && \
- apt-get update && \
- apt-get install -y eatmydata && \
- eatmydata apt-get dist-upgrade -y && \
- eatmydata apt-get install --no-install-recommends -y \
- augeas-lenses \
- augeas-tools \
- bash-completion \
- black \
- ca-certificates \
- ccache \
- codespell \
- cpp \
- diffutils \
- dwarves \
- ebtables \
- flake8 \
- gettext \
- git \
- grep \
- iproute2 \
- iptables \
- kmod \
- libclang-dev \
- libxml2-utils \
- locales \
- lvm2 \
- make \
- meson \
- nfs-common \
- ninja-build \
- numad \
- open-iscsi \
- perl-base \
- pkgconf \
- policykit-1 \
- python3 \
- python3-docutils \
- python3-pytest \
- qemu-utils \
- sed \
- xsltproc && \
- eatmydata apt-get autoremove -y && \
- eatmydata apt-get autoclean -y && \
- sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
- dpkg-reconfigure locales && \
- rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
-
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
-
-RUN export DEBIAN_FRONTEND=noninteractive && \
- dpkg --add-architecture s390x && \
- eatmydata apt-get update && \
- eatmydata apt-get dist-upgrade -y && \
- eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
- eatmydata apt-get install --no-install-recommends -y \
- gcc-s390x-linux-gnu \
- libacl1-dev:s390x \
- libapparmor-dev:s390x \
- libattr1-dev:s390x \
- libaudit-dev:s390x \
- libblkid-dev:s390x \
- libc6-dev:s390x \
- libcap-ng-dev:s390x \
- libcurl4-gnutls-dev:s390x \
- libdevmapper-dev:s390x \
- libfuse-dev:s390x \
- libglib2.0-dev:s390x \
- libglusterfs-dev:s390x \
- libgnutls28-dev:s390x \
- libiscsi-dev:s390x \
- libjson-c-dev:s390x \
- libnl-3-dev:s390x \
- libnl-route-3-dev:s390x \
- libnuma-dev:s390x \
- libparted-dev:s390x \
- libpcap0.8-dev:s390x \
- libpciaccess-dev:s390x \
- librbd-dev:s390x \
- libreadline-dev:s390x \
- libsanlock-dev:s390x \
- libsasl2-dev:s390x \
- libselinux1-dev:s390x \
- libssh-dev:s390x \
- libssh2-1-dev:s390x \
- libtirpc-dev:s390x \
- libudev-dev:s390x \
- libxml2-dev:s390x \
- systemtap-sdt-dev:s390x && \
- eatmydata apt-get autoremove -y && \
- eatmydata apt-get autoclean -y && \
- mkdir -p /usr/local/share/meson/cross && \
- printf "[binaries]\n\
-c = '/usr/bin/s390x-linux-gnu-gcc'\n\
-ar = '/usr/bin/s390x-linux-gnu-gcc-ar'\n\
-strip = '/usr/bin/s390x-linux-gnu-strip'\n\
-pkgconfig = '/usr/bin/s390x-linux-gnu-pkg-config'\n\
-\n\
-[host_machine]\n\
-system = 'linux'\n\
-cpu_family = 's390x'\n\
-cpu = 's390x'\n\
-endian = 'big'\n" > /usr/local/share/meson/cross/s390x-linux-gnu && \
- dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
- mkdir -p /usr/libexec/ccache-wrappers && \
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/s390x-linux-gnu-cc && \
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/s390x-linux-gnu-gcc
-
-ENV ABI "s390x-linux-gnu"
-ENV MESON_OPTS "--cross-file=s390x-linux-gnu"
diff --git a/ci/containers/debian-11.Dockerfile b/ci/containers/debian-11.Dockerfile
deleted file mode 100644
index 48c59e3aab..0000000000
--- a/ci/containers/debian-11.Dockerfile
+++ /dev/null
@@ -1,103 +0,0 @@
-# THIS FILE WAS AUTO-GENERATED
-#
-# $ lcitool manifest ci/manifest.yml
-#
-# https://gitlab.com/libvirt/libvirt-ci
-
-FROM docker.io/library/debian:11-slim
-
-RUN export DEBIAN_FRONTEND=noninteractive && \
- apt-get update && \
- apt-get install -y eatmydata && \
- eatmydata apt-get dist-upgrade -y && \
- eatmydata apt-get install --no-install-recommends -y \
- augeas-lenses \
- augeas-tools \
- bash-completion \
- black \
- ca-certificates \
- ccache \
- clang \
- codespell \
- cpp \
- diffutils \
- dwarves \
- ebtables \
- flake8 \
- gcc \
- gettext \
- git \
- grep \
- iproute2 \
- iptables \
- kmod \
- libacl1-dev \
- libapparmor-dev \
- libattr1-dev \
- libaudit-dev \
- libblkid-dev \
- libc6-dev \
- libcap-ng-dev \
- libclang-dev \
- libcurl4-gnutls-dev \
- libdevmapper-dev \
- libfuse-dev \
- libglib2.0-dev \
- libglusterfs-dev \
- libgnutls28-dev \
- libiscsi-dev \
- libjson-c-dev \
- libnetcf-dev \
- libnl-3-dev \
- libnl-route-3-dev \
- libnuma-dev \
- libparted-dev \
- libpcap0.8-dev \
- libpciaccess-dev \
- librbd-dev \
- libreadline-dev \
- libsanlock-dev \
- libsasl2-dev \
- libselinux1-dev \
- libssh-dev \
- libssh2-1-dev \
- libtirpc-dev \
- libudev-dev \
- libxen-dev \
- libxml2-dev \
- libxml2-utils \
- locales \
- lvm2 \
- make \
- meson \
- nfs-common \
- ninja-build \
- numad \
- open-iscsi \
- perl-base \
- pkgconf \
- policykit-1 \
- python3 \
- python3-docutils \
- python3-pytest \
- qemu-utils \
- sed \
- systemtap-sdt-dev \
- wireshark-dev \
- xsltproc && \
- eatmydata apt-get autoremove -y && \
- eatmydata apt-get autoclean -y && \
- sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
- dpkg-reconfigure locales && \
- rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED && \
- dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
- mkdir -p /usr/libexec/ccache-wrappers && \
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
-
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
diff --git a/ci/gitlab/builds.yml b/ci/gitlab/builds.yml
index 0534a2278d..893843cb64 100644
--- a/ci/gitlab/builds.yml
+++ b/ci/gitlab/builds.yml
@@ -70,30 +70,6 @@ x86_64-centos-stream-9:
- libvirt-rpms
-x86_64-debian-11:
- extends: .native_build_job
- needs:
- - job: x86_64-debian-11-container
- optional: true
- allow_failure: false
- variables:
- JOB_OPTIONAL: 1
- NAME: debian-11
- TARGET_BASE_IMAGE: docker.io/library/debian:11-slim
-
-
-x86_64-debian-11-clang:
- extends: .native_build_job
- needs:
- - job: x86_64-debian-11-container
- optional: true
- allow_failure: false
- variables:
- JOB_OPTIONAL: 1
- NAME: debian-11
- TARGET_BASE_IMAGE: docker.io/library/debian:11-slim
-
-
x86_64-debian-12:
extends: .native_build_job
needs:
@@ -246,110 +222,6 @@ x86_64-ubuntu-2404-clang:
# Cross build jobs
-aarch64-debian-11:
- extends: .cross_build_job
- needs:
- - job: aarch64-debian-11-container
- optional: true
- allow_failure: false
- variables:
- CROSS: aarch64
- JOB_OPTIONAL: 1
- NAME: debian-11
- TARGET_BASE_IMAGE: docker.io/library/debian:11-slim
-
-
-armv6l-debian-11:
- extends: .cross_build_job
- needs:
- - job: armv6l-debian-11-container
- optional: true
- allow_failure: false
- variables:
- CROSS: armv6l
- JOB_OPTIONAL: 1
- NAME: debian-11
- TARGET_BASE_IMAGE: docker.io/library/debian:11-slim
-
-
-armv7l-debian-11:
- extends: .cross_build_job
- needs:
- - job: armv7l-debian-11-container
- optional: true
- allow_failure: false
- variables:
- CROSS: armv7l
- JOB_OPTIONAL: 1
- NAME: debian-11
- TARGET_BASE_IMAGE: docker.io/library/debian:11-slim
-
-
-i686-debian-11:
- extends: .cross_build_job
- needs:
- - job: i686-debian-11-container
- optional: true
- allow_failure: false
- variables:
- CROSS: i686
- JOB_OPTIONAL: 1
- NAME: debian-11
- TARGET_BASE_IMAGE: docker.io/library/debian:11-slim
-
-
-mips64el-debian-11:
- extends: .cross_build_job
- needs:
- - job: mips64el-debian-11-container
- optional: true
- allow_failure: false
- variables:
- CROSS: mips64el
- JOB_OPTIONAL: 1
- NAME: debian-11
- TARGET_BASE_IMAGE: docker.io/library/debian:11-slim
-
-
-mipsel-debian-11:
- extends: .cross_build_job
- needs:
- - job: mipsel-debian-11-container
- optional: true
- allow_failure: false
- variables:
- CROSS: mipsel
- JOB_OPTIONAL: 1
- NAME: debian-11
- TARGET_BASE_IMAGE: docker.io/library/debian:11-slim
-
-
-ppc64le-debian-11:
- extends: .cross_build_job
- needs:
- - job: ppc64le-debian-11-container
- optional: true
- allow_failure: false
- variables:
- CROSS: ppc64le
- JOB_OPTIONAL: 1
- NAME: debian-11
- TARGET_BASE_IMAGE: docker.io/library/debian:11-slim
-
-
-s390x-debian-11:
- extends: .cross_build_job
- needs:
- - job: s390x-debian-11-container
- optional: true
- allow_failure: false
- variables:
- CROSS: s390x
- JOB_OPTIONAL: 1
- NAME: debian-11
- TARGET_BASE_IMAGE: docker.io/library/debian:11-slim
-
-
aarch64-debian-12:
extends: .cross_build_job
needs:
diff --git a/ci/gitlab/containers.yml b/ci/gitlab/containers.yml
index 0e86062652..f88a39a1f8 100644
--- a/ci/gitlab/containers.yml
+++ b/ci/gitlab/containers.yml
@@ -35,14 +35,6 @@ x86_64-centos-stream-9-container:
NAME: centos-stream-9
-x86_64-debian-11-container:
- extends: .container_job
- allow_failure: false
- variables:
- JOB_OPTIONAL: 1
- NAME: debian-11
-
-
x86_64-debian-12-container:
extends: .container_job
allow_failure: false
@@ -109,70 +101,6 @@ x86_64-ubuntu-2404-container:
# Cross container jobs
-aarch64-debian-11-container:
- extends: .container_job
- allow_failure: false
- variables:
- JOB_OPTIONAL: 1
- NAME: debian-11-cross-aarch64
-
-
-armv6l-debian-11-container:
- extends: .container_job
- allow_failure: false
- variables:
- JOB_OPTIONAL: 1
- NAME: debian-11-cross-armv6l
-
-
-armv7l-debian-11-container:
- extends: .container_job
- allow_failure: false
- variables:
- JOB_OPTIONAL: 1
- NAME: debian-11-cross-armv7l
-
-
-i686-debian-11-container:
- extends: .container_job
- allow_failure: false
- variables:
- JOB_OPTIONAL: 1
- NAME: debian-11-cross-i686
-
-
-mips64el-debian-11-container:
- extends: .container_job
- allow_failure: false
- variables:
- JOB_OPTIONAL: 1
- NAME: debian-11-cross-mips64el
-
-
-mipsel-debian-11-container:
- extends: .container_job
- allow_failure: false
- variables:
- JOB_OPTIONAL: 1
- NAME: debian-11-cross-mipsel
-
-
-ppc64le-debian-11-container:
- extends: .container_job
- allow_failure: false
- variables:
- JOB_OPTIONAL: 1
- NAME: debian-11-cross-ppc64le
-
-
-s390x-debian-11-container:
- extends: .container_job
- allow_failure: false
- variables:
- JOB_OPTIONAL: 1
- NAME: debian-11-cross-s390x
-
-
aarch64-debian-12-container:
extends: .container_job
allow_failure: false
diff --git a/ci/manifest.yml b/ci/manifest.yml
index 3bfebed96c..3b06f4827e 100644
--- a/ci/manifest.yml
+++ b/ci/manifest.yml
@@ -34,46 +34,6 @@ targets:
paths:
- libvirt-rpms
- debian-11:
- jobs:
- - arch: x86_64
- builds: false
-
- - arch: x86_64
- suffix: -clang
- builds: false
-
- - arch: aarch64
- containers: false
- builds: false
-
- - arch: armv6l
- containers: false
- builds: false
-
- - arch: armv7l
- builds: false
-
- - arch: i686
- containers: false
- builds: false
-
- - arch: mips64el
- containers: false
- builds: false
-
- - arch: mipsel
- containers: false
- builds: false
-
- - arch: ppc64le
- containers: false
- builds: false
-
- - arch: s390x
- containers: false
- builds: false
-
debian-12:
jobs:
- arch: x86_64
--
2.48.1
3 weeks, 5 days
[PATCH] util: netdevvlan: Change return type of virNetDevVlanCopy to void
by Alexander Kuznetsov
This function return value is invariant since 1022e0ee, so change
its type and remove all dependent checks.
Found by Linux Verification Center (linuxtesting.org) with Svace.
Reported-by: Alexander Rudyuk <a.rudyuk(a)fobos-nt.ru>
Signed-off-by: Alexander Kuznetsov <kuznetsovam(a)altlinux.org>
---
src/conf/domain_conf.c | 9 +++------
src/network/bridge_driver.c | 4 +++-
src/util/virnetdevvlan.c | 6 +++---
src/util/virnetdevvlan.h | 2 +-
4 files changed, 10 insertions(+), 11 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 3f88a77a8f..6f49ee507a 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -30533,8 +30533,7 @@ virDomainNetDefToNetworkPort(virDomainDef *dom,
if (virNetDevBandwidthCopy(&port->bandwidth, iface->bandwidth) < 0)
return NULL;
- if (virNetDevVlanCopy(&port->vlan, &iface->vlan) < 0)
- return NULL;
+ virNetDevVlanCopy(&port->vlan, &iface->vlan);
port->isolatedPort = iface->isolatedPort;
port->trustGuestRxFilters = iface->trustGuestRxFilters;
@@ -30611,8 +30610,7 @@ virDomainNetDefActualFromNetworkPort(virDomainNetDef *iface,
if (virNetDevBandwidthCopy(&actual->bandwidth, port->bandwidth) < 0)
goto error;
- if (virNetDevVlanCopy(&actual->vlan, &port->vlan) < 0)
- goto error;
+ virNetDevVlanCopy(&actual->vlan, &port->vlan);
actual->isolatedPort = port->isolatedPort;
actual->class_id = port->class_id;
@@ -30729,8 +30727,7 @@ virDomainNetDefActualToNetworkPort(virDomainDef *dom,
if (virNetDevBandwidthCopy(&port->bandwidth, actual->bandwidth) < 0)
return NULL;
- if (virNetDevVlanCopy(&port->vlan, &actual->vlan) < 0)
- return NULL;
+ virNetDevVlanCopy(&port->vlan, &actual->vlan);
port->isolatedPort = actual->isolatedPort;
port->class_id = actual->class_id;
diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
index 8f47ef2574..668870a9ee 100644
--- a/src/network/bridge_driver.c
+++ b/src/network/bridge_driver.c
@@ -3973,8 +3973,10 @@ networkAllocatePort(virNetworkObj *obj,
else if (netdef->vlan.nTags > 0)
vlan = &netdef->vlan;
- if (vlan && virNetDevVlanCopy(&port->vlan, vlan) < 0)
+ if (vlan) {
+ virNetDevVlanCopy(&port->vlan, vlan);
return -1;
+ }
}
if (!port->trustGuestRxFilters) {
diff --git a/src/util/virnetdevvlan.c b/src/util/virnetdevvlan.c
index 67daa5d3b4..e8f572efd2 100644
--- a/src/util/virnetdevvlan.c
+++ b/src/util/virnetdevvlan.c
@@ -76,11 +76,11 @@ virNetDevVlanEqual(const virNetDevVlan *a, const virNetDevVlan *b)
* If src is NULL, dst will have nTags set to 0.
* dst is assumed to be empty on entry.
*/
-int
+void
virNetDevVlanCopy(virNetDevVlan *dst, const virNetDevVlan *src)
{
if (!src || src->nTags == 0)
- return 0;
+ return;
dst->tag = g_new0(unsigned int, src->nTags);
dst->trunk = src->trunk;
@@ -88,5 +88,5 @@ virNetDevVlanCopy(virNetDevVlan *dst, const virNetDevVlan *src)
dst->nativeMode = src->nativeMode;
dst->nativeTag = src->nativeTag;
memcpy(dst->tag, src->tag, src->nTags * sizeof(*src->tag));
- return 0;
+ return;
}
diff --git a/src/util/virnetdevvlan.h b/src/util/virnetdevvlan.h
index 228d270869..fd2f8023f5 100644
--- a/src/util/virnetdevvlan.h
+++ b/src/util/virnetdevvlan.h
@@ -42,6 +42,6 @@ struct _virNetDevVlan {
void virNetDevVlanClear(virNetDevVlan *vlan);
void virNetDevVlanFree(virNetDevVlan *vlan);
int virNetDevVlanEqual(const virNetDevVlan *a, const virNetDevVlan *b);
-int virNetDevVlanCopy(virNetDevVlan *dst, const virNetDevVlan *src);
+void virNetDevVlanCopy(virNetDevVlan *dst, const virNetDevVlan *src);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(virNetDevVlan, virNetDevVlanFree);
--
2.42.4
3 weeks, 5 days
[PATCH 1/4] virpci: changed the work with PCI via libpciaccess
by Alexander Shursha
Sponsored by: Future Crew, LLC
Signed-off-by: Alexander Shursha <kekek2(a)ya.ru>
---
src/meson.build | 1 +
src/util/virpci.c | 464 ++++++++++------------------------------
tests/qemuhotplugtest.c | 11 +-
tests/qemumemlocktest.c | 9 +
tests/qemuxmlconftest.c | 9 +
tests/virpcimock.c | 21 +-
6 files changed, 160 insertions(+), 355 deletions(-)
diff --git a/src/meson.build b/src/meson.build
index 9413192a55..39788ac4d7 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -411,6 +411,7 @@ libvirt_lib = shared_library(
dtrace_gen_objects,
dependencies: [
src_dep,
+ pciaccess_dep
],
link_args: libvirt_link_args,
link_whole: [
diff --git a/src/util/virpci.c b/src/util/virpci.c
index 90617e69c6..3f95fa2b3f 100644
--- a/src/util/virpci.c
+++ b/src/util/virpci.c
@@ -29,6 +29,7 @@
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
+#include <pciaccess.h>
#ifdef __linux__
# include <sys/utsname.h>
@@ -72,7 +73,7 @@ struct _virPCIDevice {
char *name; /* domain:bus:slot.function */
char id[PCI_ID_LEN]; /* product vendor */
- char *path;
+ struct pci_device *device;
/* The driver:domain which uses the device */
char *used_by_drvname;
@@ -359,121 +360,6 @@ virPCIDeviceGetCurrentDriverNameAndType(virPCIDevice *dev,
}
-static int
-virPCIDeviceConfigOpenInternal(virPCIDevice *dev, bool readonly, bool fatal)
-{
- int fd;
-
- fd = open(dev->path, readonly ? O_RDONLY : O_RDWR);
-
- if (fd < 0) {
- if (fatal) {
- virReportSystemError(errno,
- _("Failed to open config space file '%1$s'"),
- dev->path);
- } else {
- VIR_WARN("Failed to open config space file '%s': %s",
- dev->path, g_strerror(errno));
- }
- return -1;
- }
-
- VIR_DEBUG("%s %s: opened %s", dev->id, dev->name, dev->path);
- return fd;
-}
-
-static int
-virPCIDeviceConfigOpen(virPCIDevice *dev)
-{
- return virPCIDeviceConfigOpenInternal(dev, true, true);
-}
-
-static int
-virPCIDeviceConfigOpenTry(virPCIDevice *dev)
-{
- return virPCIDeviceConfigOpenInternal(dev, true, false);
-}
-
-static int
-virPCIDeviceConfigOpenWrite(virPCIDevice *dev)
-{
- return virPCIDeviceConfigOpenInternal(dev, false, true);
-}
-
-static void
-virPCIDeviceConfigClose(virPCIDevice *dev, int cfgfd)
-{
- if (VIR_CLOSE(cfgfd) < 0) {
- VIR_WARN("Failed to close config space file '%s': %s",
- dev->path, g_strerror(errno));
- }
-}
-
-
-static int
-virPCIDeviceRead(virPCIDevice *dev,
- int cfgfd,
- unsigned int pos,
- uint8_t *buf,
- unsigned int buflen)
-{
- memset(buf, 0, buflen);
- errno = 0;
-
- if (lseek(cfgfd, pos, SEEK_SET) != pos ||
- saferead(cfgfd, buf, buflen) != buflen) {
- VIR_DEBUG("Failed to read %u bytes at %u from '%s' : %s",
- buflen, pos, dev->path, g_strerror(errno));
- return -1;
- }
- return 0;
-}
-
-
-/**
- * virPCIDeviceReadN:
- * @dev: virPCIDevice object (used only to log name of config file)
- * @cfgfd: open file descriptor for device config file in sysfs
- * @pos: byte offset in the file to read from
- *
- * read "N" (where "N" is "8", "16", or "32", and appears at the end
- * of the function name) bytes from a PCI device's already-opened
- * sysfs config file and return them as the return value from the
- * function.
- *
- * Returns the value at @pos in the file, or 0 if there was an
- * error. NB: since 0 could be a valid value, occurrence of an error
- * must be determined by examining errno. errno is always reset to 0
- * before the seek/read is attempted (see virPCIDeviceRead()), so if
- * errno != 0 on return from one of these functions, then either the
- * seek or the read operation failed for some reason. If errno == 0
- * and the return value is 0, then the config file really does contain
- * the value 0 at @pos.
- */
-static uint8_t
-virPCIDeviceRead8(virPCIDevice *dev, int cfgfd, unsigned int pos)
-{
- uint8_t buf;
- virPCIDeviceRead(dev, cfgfd, pos, &buf, sizeof(buf));
- return buf;
-}
-
-static uint16_t
-virPCIDeviceRead16(virPCIDevice *dev, int cfgfd, unsigned int pos)
-{
- uint8_t buf[2];
- virPCIDeviceRead(dev, cfgfd, pos, &buf[0], sizeof(buf));
- return (buf[0] << 0) | (buf[1] << 8);
-}
-
-static uint32_t
-virPCIDeviceRead32(virPCIDevice *dev, int cfgfd, unsigned int pos)
-{
- uint8_t buf[4];
- virPCIDeviceRead(dev, cfgfd, pos, &buf[0], sizeof(buf));
- return (buf[0] << 0) | (buf[1] << 8) | (buf[2] << 16) | (buf[3] << 24);
-}
-
static int
virPCIDeviceReadClass(virPCIDevice *dev, uint16_t *device_class)
{
@@ -499,36 +385,6 @@ virPCIDeviceReadClass(virPCIDevice *dev, uint16_t *device_class)
return 0;
}
-static int
-virPCIDeviceWrite(virPCIDevice *dev,
- int cfgfd,
- unsigned int pos,
- uint8_t *buf,
- unsigned int buflen)
-{
- if (lseek(cfgfd, pos, SEEK_SET) != pos ||
- safewrite(cfgfd, buf, buflen) != buflen) {
- VIR_WARN("Failed to write to '%s' : %s", dev->path,
- g_strerror(errno));
- return -1;
- }
- return 0;
-}
-
-static void
-virPCIDeviceWrite16(virPCIDevice *dev, int cfgfd, unsigned int pos, uint16_t val)
-{
- uint8_t buf[2] = { (val >> 0), (val >> 8) };
- virPCIDeviceWrite(dev, cfgfd, pos, &buf[0], sizeof(buf));
-}
-
-static void
-virPCIDeviceWrite32(virPCIDevice *dev, int cfgfd, unsigned int pos, uint32_t val)
-{
- uint8_t buf[4] = { (val >> 0), (val >> 8), (val >> 16), (val >> 24) };
- virPCIDeviceWrite(dev, cfgfd, pos, &buf[0], sizeof(buf));
-}
-
typedef int (*virPCIDeviceIterPredicate)(virPCIDevice *, virPCIDevice *,
void *);
@@ -610,7 +466,6 @@ virPCIDeviceIterDevices(virPCIDeviceIterPredicate predicate,
*/
static int
virPCIDeviceFindCapabilityOffset(virPCIDevice *dev,
- int cfgfd,
unsigned int capability,
unsigned int *offset)
{
@@ -619,11 +474,13 @@ virPCIDeviceFindCapabilityOffset(virPCIDevice *dev,
*offset = 0; /* assume failure (*nothing* can be at offset 0) */
- status = virPCIDeviceRead16(dev, cfgfd, PCI_STATUS);
+ pci_device_cfg_read_u16(dev->device, &status, PCI_STATUS);
+
if (errno != 0 || !(status & PCI_STATUS_CAP_LIST))
goto error;
- pos = virPCIDeviceRead8(dev, cfgfd, PCI_CAPABILITY_LIST);
+ pci_device_cfg_read_u8(dev->device, &pos, PCI_CAPABILITY_LIST);
+
if (errno != 0)
goto error;
@@ -635,7 +492,9 @@ virPCIDeviceFindCapabilityOffset(virPCIDevice *dev,
* capabilities here.
*/
while (pos >= PCI_CONF_HEADER_LEN && pos != 0xff) {
- uint8_t capid = virPCIDeviceRead8(dev, cfgfd, pos);
+ uint8_t capid;
+ pci_device_cfg_read_u8(dev->device, &capid, pos);
+
if (errno != 0)
goto error;
@@ -646,7 +505,8 @@ virPCIDeviceFindCapabilityOffset(virPCIDevice *dev,
return 0;
}
- pos = virPCIDeviceRead8(dev, cfgfd, pos + 1);
+ pci_device_cfg_read_u8(dev->device, &pos, pos + 1);
+
if (errno != 0)
goto error;
}
@@ -665,7 +525,6 @@ virPCIDeviceFindCapabilityOffset(virPCIDevice *dev,
static unsigned int
virPCIDeviceFindExtendedCapabilityOffset(virPCIDevice *dev,
- int cfgfd,
unsigned int capability)
{
int ttl;
@@ -677,7 +536,7 @@ virPCIDeviceFindExtendedCapabilityOffset(virPCIDevice *dev,
pos = PCI_EXT_CAP_BASE;
while (ttl > 0 && pos >= PCI_EXT_CAP_BASE) {
- header = virPCIDeviceRead32(dev, cfgfd, pos);
+ header = pci_device_cfg_read_u32(dev->device, &header, pos);
if ((header & PCI_EXT_CAP_ID_MASK) == capability)
return pos;
@@ -693,7 +552,7 @@ virPCIDeviceFindExtendedCapabilityOffset(virPCIDevice *dev,
* not have FLR, 1 if it does, and -1 on error
*/
static bool
-virPCIDeviceDetectFunctionLevelReset(virPCIDevice *dev, int cfgfd)
+virPCIDeviceDetectFunctionLevelReset(virPCIDevice *dev)
{
uint32_t caps;
unsigned int pos;
@@ -707,7 +566,7 @@ virPCIDeviceDetectFunctionLevelReset(virPCIDevice *dev, int cfgfd)
* on SR-IOV NICs at the moment.
*/
if (dev->pcie_cap_pos) {
- caps = virPCIDeviceRead32(dev, cfgfd, dev->pcie_cap_pos + PCI_EXP_DEVCAP);
+ pci_device_cfg_read_u32(dev->device, &caps, dev->pcie_cap_pos + PCI_EXP_DEVCAP);
if (caps & PCI_EXP_DEVCAP_FLR) {
VIR_DEBUG("%s %s: detected PCIe FLR capability", dev->id, dev->name);
return true;
@@ -718,11 +577,13 @@ virPCIDeviceDetectFunctionLevelReset(virPCIDevice *dev, int cfgfd)
* the same thing, except for conventional PCI
* devices. This is not common yet.
*/
- if (virPCIDeviceFindCapabilityOffset(dev, cfgfd, PCI_CAP_ID_AF, &pos) < 0)
+ if (virPCIDeviceFindCapabilityOffset(dev, PCI_CAP_ID_AF, &pos) < 0)
goto error;
if (pos) {
- caps = virPCIDeviceRead16(dev, cfgfd, pos + PCI_AF_CAP);
+ uint16_t caps16;
+ pci_device_cfg_read_u16(dev->device, &caps16, pos + PCI_AF_CAP);
+ caps = caps16;
if (caps & PCI_AF_CAP_FLR) {
VIR_DEBUG("%s %s: detected PCI FLR capability", dev->id, dev->name);
return true;
@@ -754,13 +615,13 @@ virPCIDeviceDetectFunctionLevelReset(virPCIDevice *dev, int cfgfd)
* internal reset, not just a soft reset.
*/
static bool
-virPCIDeviceDetectPowerManagementReset(virPCIDevice *dev, int cfgfd)
+virPCIDeviceDetectPowerManagementReset(virPCIDevice *dev)
{
if (dev->pci_pm_cap_pos) {
uint32_t ctl;
/* require the NO_SOFT_RESET bit is clear */
- ctl = virPCIDeviceRead32(dev, cfgfd, dev->pci_pm_cap_pos + PCI_PM_CTRL);
+ pci_device_cfg_read_u32(dev->device, &ctl, dev->pci_pm_cap_pos + PCI_PM_CTRL);
if (!(ctl & PCI_PM_CTRL_NO_SOFT_RESET)) {
VIR_DEBUG("%s %s: detected PM reset capability", dev->id, dev->name);
return true;
@@ -811,26 +672,22 @@ virPCIDeviceIsParent(virPCIDevice *dev, virPCIDevice *check, void *data)
uint8_t header_type, secondary, subordinate;
virPCIDevice **best = data;
int ret = 0;
- int fd;
if (dev->address.domain != check->address.domain)
return 0;
- if ((fd = virPCIDeviceConfigOpenTry(check)) < 0)
- return 0;
-
/* Is it a bridge? */
ret = virPCIDeviceReadClass(check, &device_class);
if (ret < 0 || device_class != PCI_CLASS_BRIDGE_PCI)
- goto cleanup;
+ return ret;
/* Is it a plane? */
- header_type = virPCIDeviceRead8(check, fd, PCI_HEADER_TYPE);
+ pci_device_cfg_read_u8(check->device, &header_type, PCI_HEADER_TYPE);
if ((header_type & PCI_HEADER_TYPE_MASK) != PCI_HEADER_TYPE_BRIDGE)
- goto cleanup;
+ return ret;
- secondary = virPCIDeviceRead8(check, fd, PCI_SECONDARY_BUS);
- subordinate = virPCIDeviceRead8(check, fd, PCI_SUBORDINATE_BUS);
+ pci_device_cfg_read_u8(check->device, &secondary, PCI_SECONDARY_BUS);
+ pci_device_cfg_read_u8(check->device, &subordinate, PCI_SUBORDINATE_BUS);
VIR_DEBUG("%s %s: found parent device %s", dev->id, dev->name, check->name);
@@ -838,8 +695,7 @@ virPCIDeviceIsParent(virPCIDevice *dev, virPCIDevice *check, void *data)
* the direct parent. No further work is necessary
*/
if (dev->address.bus == secondary) {
- ret = 1;
- goto cleanup;
+ return 1;
}
/* otherwise, SRIOV allows VFs to be on different buses than their PFs.
@@ -850,35 +706,26 @@ virPCIDeviceIsParent(virPCIDevice *dev, virPCIDevice *check, void *data)
if (*best == NULL) {
*best = virPCIDeviceNew(&check->address);
if (*best == NULL) {
- ret = -1;
- goto cleanup;
+ return -1;
}
} else {
/* OK, we had already recorded a previous "best" match for the
* parent. See if the current device is more restrictive than the
* best, and if so, make it the new best
*/
- int bestfd;
uint8_t best_secondary;
- if ((bestfd = virPCIDeviceConfigOpenTry(*best)) < 0)
- goto cleanup;
- best_secondary = virPCIDeviceRead8(*best, bestfd, PCI_SECONDARY_BUS);
- virPCIDeviceConfigClose(*best, bestfd);
+ pci_device_cfg_read_u8((*best)->device, &best_secondary, PCI_SECONDARY_BUS);
if (secondary > best_secondary) {
virPCIDeviceFree(*best);
*best = virPCIDeviceNew(&check->address);
if (*best == NULL) {
- ret = -1;
- goto cleanup;
+ return -1;
}
}
}
}
-
- cleanup:
- virPCIDeviceConfigClose(check, fd);
return ret;
}
@@ -902,15 +749,14 @@ virPCIDeviceGetParent(virPCIDevice *dev, virPCIDevice **parent)
*/
static int
virPCIDeviceTrySecondaryBusReset(virPCIDevice *dev,
- int cfgfd,
virPCIDeviceList *inactiveDevs)
{
g_autoptr(virPCIDevice) parent = NULL;
g_autoptr(virPCIDevice) conflict = NULL;
uint8_t config_space[PCI_CONF_LEN];
uint16_t ctl;
- int ret = -1;
- int parentfd;
+ pciaddr_t bytes_read;
+ pciaddr_t bytes_written;
/* Refuse to do a secondary bus reset if there are other
* devices/functions behind the bus are used by the host
@@ -932,8 +778,6 @@ virPCIDeviceTrySecondaryBusReset(virPCIDevice *dev,
dev->name);
return -1;
}
- if ((parentfd = virPCIDeviceConfigOpenWrite(parent)) < 0)
- goto out;
VIR_DEBUG("%s %s: doing a secondary bus reset", dev->id, dev->name);
@@ -941,38 +785,37 @@ virPCIDeviceTrySecondaryBusReset(virPCIDevice *dev,
* for the supplied device since we refuse to do a reset if there
* are multiple devices/functions
*/
- if (virPCIDeviceRead(dev, cfgfd, 0, config_space, PCI_CONF_LEN) < 0) {
+ pci_device_cfg_read(dev->device, config_space, 0, PCI_CONF_LEN, &bytes_read);
+ if (bytes_read < PCI_CONF_LEN) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to read PCI config space for %1$s"),
dev->name);
- goto out;
+ return -1;
}
/* Read the control register, set the reset flag, wait 200ms,
* unset the reset flag and wait 200ms.
*/
- ctl = virPCIDeviceRead16(dev, parentfd, PCI_BRIDGE_CONTROL);
- virPCIDeviceWrite16(parent, parentfd, PCI_BRIDGE_CONTROL,
- ctl | PCI_BRIDGE_CTL_RESET);
+ pci_device_cfg_read_u16(parent->device, &ctl, PCI_BRIDGE_CONTROL);
+
+ pci_device_cfg_write_u16(parent->device, ctl | PCI_BRIDGE_CTL_RESET, PCI_BRIDGE_CONTROL);
g_usleep(200 * 1000); /* sleep 200ms */
- virPCIDeviceWrite16(parent, parentfd, PCI_BRIDGE_CONTROL, ctl);
+ pci_device_cfg_write_u16(parent->device, ctl, PCI_BRIDGE_CONTROL);
g_usleep(200 * 1000); /* sleep 200ms */
- if (virPCIDeviceWrite(dev, cfgfd, 0, config_space, PCI_CONF_LEN) < 0) {
+ pci_device_cfg_write(dev->device, config_space, 0, PCI_CONF_LEN, &bytes_written);
+ if (bytes_written < PCI_CONF_LEN) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to restore PCI config space for %1$s"),
dev->name);
- goto out;
+ return -1;
}
- ret = 0;
- out:
- virPCIDeviceConfigClose(parent, parentfd);
- return ret;
+ return 0;
}
/* Power management reset attempts to reset a device using a
@@ -980,16 +823,19 @@ virPCIDeviceTrySecondaryBusReset(virPCIDevice *dev,
* above we require the device supports a full internal reset.
*/
static int
-virPCIDeviceTryPowerManagementReset(virPCIDevice *dev, int cfgfd)
+virPCIDeviceTryPowerManagementReset(virPCIDevice *dev)
{
uint8_t config_space[PCI_CONF_LEN];
uint32_t ctl;
+ pciaddr_t bytes_read;
+ pciaddr_t bytes_written;
if (!dev->pci_pm_cap_pos)
return -1;
/* Save and restore the device's config space. */
- if (virPCIDeviceRead(dev, cfgfd, 0, &config_space[0], PCI_CONF_LEN) < 0) {
+ pci_device_cfg_read(dev->device, config_space, 0, PCI_CONF_LEN, &bytes_read);
+ if (bytes_read < PCI_CONF_LEN) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to read PCI config space for %1$s"),
dev->name);
@@ -998,20 +844,19 @@ virPCIDeviceTryPowerManagementReset(virPCIDevice *dev, int cfgfd)
VIR_DEBUG("%s %s: doing a power management reset", dev->id, dev->name);
- ctl = virPCIDeviceRead32(dev, cfgfd, dev->pci_pm_cap_pos + PCI_PM_CTRL);
+ pci_device_cfg_read_u32(dev->device, &ctl, dev->pci_pm_cap_pos + PCI_PM_CTRL);
ctl &= ~PCI_PM_CTRL_STATE_MASK;
- virPCIDeviceWrite32(dev, cfgfd, dev->pci_pm_cap_pos + PCI_PM_CTRL,
- ctl | PCI_PM_CTRL_STATE_D3hot);
+ pci_device_cfg_write_u32(dev->device, ctl | PCI_PM_CTRL_STATE_D3hot, dev->pci_pm_cap_pos + PCI_PM_CTRL);
g_usleep(10 * 1000); /* sleep 10ms */
- virPCIDeviceWrite32(dev, cfgfd, dev->pci_pm_cap_pos + PCI_PM_CTRL,
- ctl | PCI_PM_CTRL_STATE_D0);
+ pci_device_cfg_write_u32(dev->device, ctl | PCI_PM_CTRL_STATE_D0, dev->pci_pm_cap_pos + PCI_PM_CTRL);
g_usleep(10 * 1000); /* sleep 10ms */
- if (virPCIDeviceWrite(dev, cfgfd, 0, &config_space[0], PCI_CONF_LEN) < 0) {
+ pci_device_cfg_write(dev->device, config_space, 0, PCI_CONF_LEN, &bytes_written);
+ if (bytes_written < PCI_CONF_LEN) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to restore PCI config space for %1$s"),
dev->name);
@@ -1046,10 +891,10 @@ virPCIDeviceTryPowerManagementReset(virPCIDevice *dev, int cfgfd)
* Always returns success (0) (for now)
*/
static int
-virPCIDeviceInit(virPCIDevice *dev, int cfgfd)
+virPCIDeviceInit(virPCIDevice *dev)
{
dev->is_pcie = false;
- if (virPCIDeviceFindCapabilityOffset(dev, cfgfd, PCI_CAP_ID_EXP, &dev->pcie_cap_pos) < 0) {
+ if (virPCIDeviceFindCapabilityOffset(dev, PCI_CAP_ID_EXP, &dev->pcie_cap_pos) < 0) {
/* an unprivileged process is unable to read *all* of a
* device's PCI config (it can only read the first 64
* bytes, which isn't enough for see the Express
@@ -1065,18 +910,13 @@ virPCIDeviceInit(virPCIDevice *dev, int cfgfd)
* -1), then we blindly assume the most likely outcome -
* PCIe.
*/
- off_t configLen = virFileLength(virPCIDeviceGetConfigPath(dev), -1);
-
- if (configLen != 256)
- dev->is_pcie = true;
-
} else {
dev->is_pcie = (dev->pcie_cap_pos != 0);
}
- virPCIDeviceFindCapabilityOffset(dev, cfgfd, PCI_CAP_ID_PM, &dev->pci_pm_cap_pos);
- dev->has_flr = virPCIDeviceDetectFunctionLevelReset(dev, cfgfd);
- dev->has_pm_reset = virPCIDeviceDetectPowerManagementReset(dev, cfgfd);
+ virPCIDeviceFindCapabilityOffset(dev, PCI_CAP_ID_PM, &dev->pci_pm_cap_pos);
+ dev->has_flr = virPCIDeviceDetectFunctionLevelReset(dev);
+ dev->has_pm_reset = virPCIDeviceDetectPowerManagementReset(dev);
return 0;
}
@@ -1089,7 +929,6 @@ virPCIDeviceReset(virPCIDevice *dev,
g_autofree char *drvName = NULL;
virPCIStubDriver drvType;
int ret = -1;
- int fd = -1;
int hdrType = -1;
if (virPCIGetHeaderType(dev, &hdrType) < 0)
@@ -1114,29 +953,26 @@ virPCIDeviceReset(virPCIDevice *dev,
* be redundant.
*/
if (virPCIDeviceGetCurrentDriverNameAndType(dev, &drvName, &drvType) < 0)
- goto cleanup;
+ return -1;
if (drvType == VIR_PCI_STUB_DRIVER_VFIO) {
VIR_DEBUG("Device %s is bound to %s - skip reset", dev->name, drvName);
ret = 0;
- goto cleanup;
+ return 0;
}
VIR_DEBUG("Resetting device %s", dev->name);
- if ((fd = virPCIDeviceConfigOpenWrite(dev)) < 0)
- goto cleanup;
-
- if (virPCIDeviceInit(dev, fd) < 0)
- goto cleanup;
+ if (virPCIDeviceInit(dev) < 0)
+ return -1;
/* KVM will perform FLR when starting and stopping
* a guest, so there is no need for us to do it here.
*/
if (dev->has_flr) {
ret = 0;
- goto cleanup;
+ return 0;
}
/* If the device supports PCI power management reset,
@@ -1144,11 +980,11 @@ virPCIDeviceReset(virPCIDevice *dev,
* the function, not the whole device.
*/
if (dev->has_pm_reset)
- ret = virPCIDeviceTryPowerManagementReset(dev, fd);
+ ret = virPCIDeviceTryPowerManagementReset(dev);
/* Bus reset is not an option with the root bus */
if (ret < 0 && dev->address.bus != 0)
- ret = virPCIDeviceTrySecondaryBusReset(dev, fd, inactiveDevs);
+ ret = virPCIDeviceTrySecondaryBusReset(dev, inactiveDevs);
if (ret < 0) {
virErrorPtr err = virGetLastError();
@@ -1159,8 +995,6 @@ virPCIDeviceReset(virPCIDevice *dev,
_("no FLR, PM reset or bus reset available"));
}
- cleanup:
- virPCIDeviceConfigClose(dev, fd);
return ret;
}
@@ -1756,28 +1590,6 @@ virPCIDeviceReattach(virPCIDevice *dev,
return 0;
}
-static char *
-virPCIDeviceReadID(virPCIDevice *dev, const char *id_name)
-{
- g_autofree char *path = NULL;
- g_autofree char *id_str = NULL;
-
- path = virPCIFile(dev->name, id_name);
-
- /* ID string is '0xNNNN\n' ... i.e. 7 bytes */
- if (virFileReadAll(path, 7, &id_str) < 0)
- return NULL;
-
- /* Check for 0x suffix */
- if (id_str[0] != '0' || id_str[1] != 'x')
- return NULL;
-
- /* Chop off the newline; we know the string is 7 bytes */
- id_str[6] = '\0';
-
- return g_steal_pointer(&id_str);
-}
-
bool
virPCIDeviceAddressIsValid(virPCIDeviceAddress *addr,
bool report)
@@ -1865,9 +1677,9 @@ virPCIDeviceExists(const virPCIDeviceAddress *addr)
virPCIDevice *
virPCIDeviceNew(const virPCIDeviceAddress *address)
{
+ struct pci_device * device;
+
g_autoptr(virPCIDevice) dev = NULL;
- g_autofree char *vendor = NULL;
- g_autofree char *product = NULL;
dev = g_new0(virPCIDevice, 1);
@@ -1875,31 +1687,21 @@ virPCIDeviceNew(const virPCIDeviceAddress *address)
dev->name = virPCIDeviceAddressAsString(&dev->address);
- dev->path = g_strdup_printf(PCI_SYSFS "devices/%s/config", dev->name);
-
- if (!virFileExists(dev->path)) {
- virReportSystemError(errno,
- _("Device %1$s not found: could not access %2$s"),
- dev->name, dev->path);
+ pci_system_init();
+ device = pci_device_find_by_slot(address->domain, address->bus, address->slot, address->function);
+ if (!device)
return NULL;
- }
-
- vendor = virPCIDeviceReadID(dev, "vendor");
- product = virPCIDeviceReadID(dev, "device");
-
- if (!vendor || !product) {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- _("Failed to read product/vendor ID for %1$s"),
- dev->name);
+ dev->device = g_memdup(device, sizeof(*dev->device));
+ if (!dev->device) {
+ virReportSystemError(errno,
+ _("Not found device domain: %1$d, bus: %2$d, slot: %3$d, function: %4$d"),
+ address->domain, address->bus, address->slot, address->function);
return NULL;
}
-
- /* strings contain '0x' prefix */
- if (g_snprintf(dev->id, sizeof(dev->id), "%s %s", &vendor[2],
- &product[2]) >= sizeof(dev->id)) {
+ if (g_snprintf(dev->id, sizeof(dev->id), "%x %x", dev->device->vendor_id, dev->device->device_id) >= sizeof(dev->id)) {
virReportError(VIR_ERR_INTERNAL_ERROR,
- _("dev->id buffer overflow: %1$s %2$s"),
- &vendor[2], &product[2]);
+ _("dev->id buffer overflow: %1$d %2$d"),
+ dev->device->vendor_id, dev->device->device_id);
return NULL;
}
@@ -1918,10 +1720,10 @@ virPCIDeviceCopy(virPCIDevice *dev)
/* shallow copy to take care of most attributes */
*copy = *dev;
- copy->path = NULL;
- copy->used_by_drvname = copy->used_by_domname = NULL;
+ copy->device = NULL;
+ copy->device = g_memdup(dev->device, sizeof(*dev->device));
+ copy->name = copy->used_by_drvname = copy->used_by_domname = copy->stubDriverName = NULL;
copy->name = g_strdup(dev->name);
- copy->path = g_strdup(dev->path);
copy->used_by_drvname = g_strdup(dev->used_by_drvname);
copy->used_by_domname = g_strdup(dev->used_by_domname);
copy->stubDriverName = g_strdup(dev->stubDriverName);
@@ -1936,10 +1738,11 @@ virPCIDeviceFree(virPCIDevice *dev)
return;
VIR_DEBUG("%s %s: freeing", dev->id, dev->name);
g_free(dev->name);
- g_free(dev->path);
g_free(dev->used_by_drvname);
g_free(dev->used_by_domname);
g_free(dev->stubDriverName);
+ if (dev->device)
+ g_free(dev->device);
g_free(dev);
}
@@ -1971,9 +1774,9 @@ virPCIDeviceGetName(virPCIDevice *dev)
* config file.
*/
const char *
-virPCIDeviceGetConfigPath(virPCIDevice *dev)
+virPCIDeviceGetConfigPath(virPCIDevice *dev G_GNUC_UNUSED)
{
- return dev->path;
+ return NULL;
}
void virPCIDeviceSetManaged(virPCIDevice *dev, bool managed)
@@ -2484,47 +2287,37 @@ virPCIDeviceDownstreamLacksACS(virPCIDevice *dev)
uint16_t flags;
uint16_t ctrl;
unsigned int pos;
- int fd;
- int ret = 0;
uint16_t device_class;
- if ((fd = virPCIDeviceConfigOpen(dev)) < 0)
+ if (virPCIDeviceInit(dev) < 0) {
return -1;
-
- if (virPCIDeviceInit(dev, fd) < 0) {
- ret = -1;
- goto cleanup;
}
if (virPCIDeviceReadClass(dev, &device_class) < 0)
- goto cleanup;
+ return 0;
pos = dev->pcie_cap_pos;
if (!pos || device_class != PCI_CLASS_BRIDGE_PCI)
- goto cleanup;
+ return 0;
- flags = virPCIDeviceRead16(dev, fd, pos + PCI_EXP_FLAGS);
+ pci_device_cfg_read_u16(dev->device, &flags, pos + PCI_EXP_FLAGS);
if (((flags & PCI_EXP_FLAGS_TYPE) >> 4) != PCI_EXP_TYPE_DOWNSTREAM)
- goto cleanup;
+ return 0;
- pos = virPCIDeviceFindExtendedCapabilityOffset(dev, fd, PCI_EXT_CAP_ID_ACS);
+ pos = virPCIDeviceFindExtendedCapabilityOffset(dev, PCI_EXT_CAP_ID_ACS);
if (!pos) {
VIR_DEBUG("%s %s: downstream port lacks ACS", dev->id, dev->name);
- ret = 1;
- goto cleanup;
+ return 1;
}
- ctrl = virPCIDeviceRead16(dev, fd, pos + PCI_EXT_ACS_CTRL);
+ pci_device_cfg_read_u16(dev->device, &ctrl, pos + PCI_EXT_ACS_CTRL);
if ((ctrl & PCI_EXT_CAP_ACS_ENABLED) != PCI_EXT_CAP_ACS_ENABLED) {
VIR_DEBUG("%s %s: downstream port has ACS disabled",
dev->id, dev->name);
- ret = 1;
- goto cleanup;
+ return 1;
}
- cleanup:
- virPCIDeviceConfigClose(dev, fd);
- return ret;
+ return 0;
}
static int
@@ -3189,48 +2982,27 @@ virPCIDeviceGetVPD(virPCIDevice *dev G_GNUC_UNUSED)
int
virPCIDeviceIsPCIExpress(virPCIDevice *dev)
{
- int fd;
- int ret = -1;
-
- if ((fd = virPCIDeviceConfigOpen(dev)) < 0)
- return ret;
-
- if (virPCIDeviceInit(dev, fd) < 0)
- goto cleanup;
-
- ret = dev->is_pcie;
+ if (virPCIDeviceInit(dev) < 0)
+ return -1;
- cleanup:
- virPCIDeviceConfigClose(dev, fd);
- return ret;
+ return dev->is_pcie;
}
int
virPCIDeviceHasPCIExpressLink(virPCIDevice *dev)
{
- int fd;
- int ret = -1;
uint16_t cap, type;
-
- if ((fd = virPCIDeviceConfigOpen(dev)) < 0)
- return ret;
-
- if (virPCIDeviceInit(dev, fd) < 0)
- goto cleanup;
+ if (virPCIDeviceInit(dev) < 0)
+ return -1;
if (dev->pcie_cap_pos == 0) {
- ret = 0;
- goto cleanup;
+ return 0;
}
- cap = virPCIDeviceRead16(dev, fd, dev->pcie_cap_pos + PCI_CAP_FLAGS);
+ pci_device_cfg_read_u16(dev->device, &cap, dev->pcie_cap_pos + PCI_CAP_FLAGS);
type = (cap & PCI_EXP_FLAGS_TYPE) >> 4;
- ret = type != PCI_EXP_TYPE_ROOT_INT_EP && type != PCI_EXP_TYPE_ROOT_EC;
-
- cleanup:
- virPCIDeviceConfigClose(dev, fd);
- return ret;
+ return type != PCI_EXP_TYPE_ROOT_INT_EP && type != PCI_EXP_TYPE_ROOT_EC;
}
int
@@ -3242,53 +3014,39 @@ virPCIDeviceGetLinkCapSta(virPCIDevice *dev,
unsigned int *sta_width)
{
uint32_t t;
- int fd;
- int ret = -1;
-
- if ((fd = virPCIDeviceConfigOpen(dev)) < 0)
- return ret;
-
- if (virPCIDeviceInit(dev, fd) < 0)
- goto cleanup;
+ uint16_t t16;
+ if (virPCIDeviceInit(dev) < 0)
+ return -1;
if (!dev->pcie_cap_pos) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("pci device %1$s is not a PCI-Express device"),
dev->name);
- goto cleanup;
+ return -1;
}
- t = virPCIDeviceRead32(dev, fd, dev->pcie_cap_pos + PCI_EXP_LNKCAP);
+ pci_device_cfg_read_u32(dev->device, &t, dev->pcie_cap_pos + PCI_EXP_LNKCAP);
*cap_port = t >> 24;
*cap_speed = t & PCI_EXP_LNKCAP_SPEED;
*cap_width = (t & PCI_EXP_LNKCAP_WIDTH) >> 4;
- t = virPCIDeviceRead16(dev, fd, dev->pcie_cap_pos + PCI_EXP_LNKSTA);
+ pci_device_cfg_read_u16(dev->device, &t16, dev->pcie_cap_pos + PCI_EXP_LNKSTA);
+ t = t16;
*sta_speed = t & PCI_EXP_LNKSTA_SPEED;
*sta_width = (t & PCI_EXP_LNKSTA_WIDTH) >> 4;
- ret = 0;
-
- cleanup:
- virPCIDeviceConfigClose(dev, fd);
- return ret;
+ return 0;
}
int virPCIGetHeaderType(virPCIDevice *dev, int *hdrType)
{
- int fd;
uint8_t type;
*hdrType = -1;
- if ((fd = virPCIDeviceConfigOpen(dev)) < 0)
- return -1;
-
- type = virPCIDeviceRead8(dev, fd, PCI_HEADER_TYPE);
-
- virPCIDeviceConfigClose(dev, fd);
+ pci_device_cfg_read_u8(dev->device, &type, PCI_HEADER_TYPE);
type &= PCI_HEADER_TYPE_MASK;
if (type >= VIR_PCI_HEADER_LAST) {
diff --git a/tests/qemuhotplugtest.c b/tests/qemuhotplugtest.c
index d2a1f5acf1..fd8339bd30 100644
--- a/tests/qemuhotplugtest.c
+++ b/tests/qemuhotplugtest.c
@@ -18,12 +18,14 @@
*/
#include <config.h>
+#include "testutils.h"
+
+#ifdef __linux__
#include "qemu/qemu_alias.h"
#include "qemu/qemu_conf.h"
#include "qemu/qemu_hotplug.h"
#include "qemumonitortestutils.h"
-#include "testutils.h"
#include "testutilsqemu.h"
#include "testutilsqemuschema.h"
#include "virhostdev.h"
@@ -816,3 +818,10 @@ VIR_TEST_MAIN_PRELOAD(mymain,
VIR_TEST_MOCK("domaincaps"),
VIR_TEST_MOCK("virprocess"),
VIR_TEST_MOCK("qemuhotplug"));
+#else
+int
+main(void)
+{
+ return EXIT_AM_SKIP;
+}
+#endif
diff --git a/tests/qemumemlocktest.c b/tests/qemumemlocktest.c
index a2888732f7..5f62c80665 100644
--- a/tests/qemumemlocktest.c
+++ b/tests/qemumemlocktest.c
@@ -7,6 +7,8 @@
#include "testutils.h"
+#ifdef __linux__
+
#ifdef WITH_QEMU
# include "internal.h"
@@ -137,3 +139,10 @@ main(void)
}
#endif /* WITH_QEMU */
+#else
+int
+main(void)
+{
+ return EXIT_AM_SKIP;
+}
+#endif
diff --git a/tests/qemuxmlconftest.c b/tests/qemuxmlconftest.c
index 1f0068864a..6f84812109 100644
--- a/tests/qemuxmlconftest.c
+++ b/tests/qemuxmlconftest.c
@@ -7,6 +7,8 @@
#include "testutils.h"
+#ifdef __linux__
+
#ifdef WITH_QEMU
# include "internal.h"
@@ -3051,3 +3053,10 @@ int main(void)
}
#endif /* WITH_QEMU */
+#else
+int
+main(void)
+{
+ return EXIT_AM_SKIP;
+}
+#endif
diff --git a/tests/virpcimock.c b/tests/virpcimock.c
index 5b923c63ce..2fa12903d2 100644
--- a/tests/virpcimock.c
+++ b/tests/virpcimock.c
@@ -22,7 +22,7 @@
#include "virpcivpdpriv.h"
-#if defined(__linux__) || defined(__FreeBSD__) || defined(__APPLE__)
+#if defined(__linux__) || defined(__APPLE__)
# define VIR_MOCK_LOOKUP_MAIN
# include "virmock.h"
# include "virpci.h"
@@ -42,6 +42,10 @@ static int (*real___open_2)(const char *path, int flags);
static int (*real_close)(int fd);
static DIR * (*real_opendir)(const char *name);
static char *(*real_virFileCanonicalizePath)(const char *path);
+static int (*real_scandir)(const char *restrict dirp,
+ struct dirent ***restrict namelist,
+ typeof(int(const struct dirent *)) *filter,
+ typeof(int(const struct dirent **, const struct dirent **)) *compar);
static char *fakerootdir;
@@ -955,6 +959,7 @@ init_syms(void)
VIR_MOCK_REAL_INIT(opendir);
# endif
VIR_MOCK_REAL_INIT(virFileCanonicalizePath);
+ VIR_MOCK_REAL_INIT(scandir);
}
static void
@@ -1172,6 +1177,20 @@ virFileCanonicalizePath(const char *path)
return real_virFileCanonicalizePath(newpath);
}
+int scandir(const char *restrict dirp, struct dirent ***restrict namelist,
+ typeof(int(const struct dirent *)) *filter,
+ typeof(int(const struct dirent **, const struct dirent **)) *compar)
+{
+ g_autofree char *newpath = NULL;
+
+ init_syms();
+
+ if (getrealpath(&newpath, dirp) < 0)
+ return -1;
+
+ return real_scandir(newpath, namelist, filter, compar);
+}
+
# include "virmockstathelpers.c"
#else
--
2.47.1
3 weeks, 5 days
[libvirt PATCH 0/4] introduce and use virXMLFormatElementDirect
by Pavel Hrdina
Pavel Hrdina (4):
util: virxml: introduce virXMLFormatElementDirect
conf: use virXMLFormatElementDirect
domain_conf: refactor virDomainLoaderDefFormatNvram
util: virxml: unexport virXMLFormatElementInternal
src/conf/domain_conf.c | 22 ++++++++++------------
src/conf/node_device_conf.c | 2 +-
src/libvirt_private.syms | 2 +-
src/util/virxml.c | 16 +++++++++++++++-
src/util/virxml.h | 13 ++++++-------
5 files changed, 33 insertions(+), 22 deletions(-)
--
2.48.1
3 weeks, 5 days
[PATCH 0/1] nwfilter: Fix deadlock between nwfilter-list and VM startup/migration
by Dion Bosschieter
A deadlock occurs when `nwfilterBindingCreateXML` and `nwfilterConnectListAllNWFilters`
acquire locks in an inconsistent order. This affects both incoming migrations and
VM startups (`virsh start`), where `nwfilterBindingCreateXML` needs `updateLock`,
while `nwfilter-list` first acquires `driverMutex` and then locks individual filters.
This patch resolves the deadlock by ensuring `nwfilterBindingCreateXML` acquires
`driverMutex` before `updateLock`, following the locking pattern used by other
functions like `undefine` `nwfilterStateReload`.
Added the use of `driverMutex` in `nwfilterBindingDelete` to maintain
consistent locking order, as suggested.
Fixes: https://gitlab.com/libvirt/libvirt/-/issues/680
Dion Bosschieter (1):
nwfilter: Fix deadlock between nwfilter-list and VM startup/migration
src/nwfilter/nwfilter_driver.c | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
--
2.39.3 (Apple Git-146)
3 weeks, 5 days