Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
83 commits
Select commit Hold shift + click to select a range
5fdcae7
hw/arm/smmuv3: Update ATC invalidation check
NathanChenNVIDIA Jun 8, 2026
6ce3ee8
hw/arm/smmuv3: Improve accel SMMUv3 usage documentation
NathanChenNVIDIA Jun 8, 2026
de94fe3
hw/arm/smmuv3-accel: Add helper for resolving auto parameters
NathanChenNVIDIA Jun 8, 2026
869e950
hw/arm/smmuv3-accel: Implement "auto" value for "ats"
NathanChenNVIDIA Jun 8, 2026
a9bcf82
hw/arm/smmuv3-accel: Implement "auto" value for "ril"
NathanChenNVIDIA Jun 8, 2026
ecb3402
hw/arm/smmuv3-accel: Implement "auto" value for "ssidsize"
NathanChenNVIDIA Jun 8, 2026
d2706bc
hw/arm/smmuv3-accel: Implement "auto" value for "oas"
NathanChenNVIDIA Jun 8, 2026
362ac33
hw/arm/smmuv3: Set default ats, ril, ssidsize, oas to auto
NathanChenNVIDIA Jun 8, 2026
da6315b
qemu-options.hx: Support "auto" for accel SMMUv3 properties
NathanChenNVIDIA Jun 8, 2026
bb578b6
hw/arm/smmuv3: Avoid including CONFIG_DEVICES in hw/ header
philmd Mar 10, 2026
18b7003
iommufd: Rename all the idev and idevc variables to hiod and hiodc
duanzhenzhong Apr 1, 2026
adb12ec
backends/iommufd: Update iommufd_backend_get_device_info
nicolinc Jun 9, 2026
f00eea7
backends/iommufd: Update iommufd_backend_alloc_viommu to allow user ptr
nicolinc Jun 9, 2026
9b9c28d
backends/iommufd: Introduce iommufd_backend_alloc_hw_queue
nicolinc Jun 9, 2026
70d7509
backends/iommufd: Introduce iommufd_backend_viommu_mmap
nicolinc Jun 9, 2026
5d0d516
system/iommufd: Remove unused viommu pointer from IOMMUFDVeventq
Jun 9, 2026
3441e22
hw/arm/smmuv3-accel: Introduce CMDQV ops interface
Jun 9, 2026
8007c46
hw/arm/tegra241-cmdqv: Add Tegra241 CMDQV ops backend stub
Jun 9, 2026
d8d098c
hw/arm/smmuv3-accel: Wire CMDQV ops into accel lifecycle
Jun 9, 2026
0395bac
hw/arm/virt: Use stored SMMUv3 device list for IORT build
Jun 9, 2026
4773c96
hw/arm/tegra241-cmdqv: Probe host Tegra241 CMDQV support
Jun 9, 2026
0ab04a1
hw/arm/tegra241-cmdqv: Implement CMDQV init
nicolinc Jun 9, 2026
39d6f12
hw/arm/virt: Link SMMUv3 CMDQV resources to platform bus
Jun 9, 2026
852fe75
hw/arm/tegra241-cmdqv: Implement CMDQV vIOMMU alloc/free
nicolinc Jun 9, 2026
9a73937
hw/arm/tegra241-cmdqv: mmap host VINTF Page0 for CMDQV
nicolinc Jun 9, 2026
9f10723
hw/arm/tegra241-cmdqv: Emulate CMDQ-V Config region
nicolinc Jun 9, 2026
d178b5a
hw/arm/tegra241-cmdqv: Emulate VCMDQ register reads
nicolinc Jun 9, 2026
c6cff08
hw/arm/tegra241-cmdqv: Emulate VCMDQ register writes
nicolinc Jun 9, 2026
17d3218
hw/arm/tegra241-cmdqv: Allocate HW VCMDQs once configured
nicolinc Jun 9, 2026
16b9874
hw/arm/tegra241-cmdqv: Route allocated VCMDQ Page0 accesses to the mm…
Jun 9, 2026
ae6b0a0
memory: Allow RAM device regions to skip IOMMU mapping
Jun 9, 2026
96d98ec
hw/arm/tegra241-cmdqv: Use mmap'd host VINTF page0 for virtual VINTF …
nicolinc Jun 9, 2026
c61a22c
hw/arm/smmuv3-accel: Introduce common helper for veventq read
Jun 9, 2026
94c7f2b
hw/arm/tegra241-cmdqv: Read and propagate Tegra241 CMDQV errors
Jun 9, 2026
542be67
hw/arm/tegra241-cmdqv: Initialize register state on reset
nicolinc Jun 9, 2026
79ffa69
hw/arm/tegra241-cmdqv: Limit queue size based on backend page size
nicolinc Jun 9, 2026
84050ee
hw/arm/smmuv3: Add per-device identifier property
Jun 9, 2026
8513f17
hw/arm/smmuv3-accel: Introduce helper to query CMDQV type
Jun 9, 2026
1cb945b
hw/arm/virt-acpi: Advertise Tegra241 CMDQV nodes in DSDT
nicolinc Jun 9, 2026
7a13382
hw/arm/smmuv3-accel: Enforce viommu association when CMDQV is active
Jun 9, 2026
3831644
hw/arm/tegra241-cmdqv: Document the CMDQV design and lifecycle
Jun 9, 2026
9a0b802
hw/arm/smmuv3: Add cmdqv property for SMMUv3 device
Jun 9, 2026
1419baa
NVIDIA: SAUCE: hw/acpi/pci.c: preserve generic initiator insertion order
ankita-nv Dec 12, 2025
d9a147c
NVIDIA: SAUCE: qom: New object to associate device to EGM node
ankita-nv Aug 27, 2024
62f3578
NVIDIA: SAUCE: hw/acpi: Populate DSDT with EGM properties
ankita-nv Aug 27, 2024
d691f28
NVIDIA: SAUCE: hw/arm/boot: Create DTB memory regions skipping ECC er…
ankita-nv Aug 27, 2024
40a5589
NVIDIA: SAUCE: hw/acpi: Add pxb bridge above GPU in DSDT
ankita-nv Apr 9, 2025
30be135
NVIDIA: SAUCE: Reset gpu_id each time building DSDT
nvmochs Dec 15, 2025
5337a51
NVIDIA: [Packaging] Add QEMU Ubuntu Noble debian packaging base
JiandiAnNVIDIA May 14, 2026
23e6232
NVIDIA: [Packaging] Apply packaging changes for NVIDIA QEMU
nvmochs Oct 6, 2025
86bf921
NVIDIA: [Packaging] Allow to include binaries in the source package
arighi Oct 11, 2025
0bcc7f3
NVIDIA: [Packaging] Fix DTB file installation for QEMU 11.0 builds
nvmochs Oct 10, 2025
6dff73d
NVIDIA: [Packaging] Introduce deb helper script
arighi Oct 11, 2025
c181b56
NVIDIA: [Packaging] Remove --enable-avx2 configure option for xen build
nvmochs Oct 15, 2025
b0ac9be
NVIDIA: [Packaging] Remove microblazeel from system emulation target …
JiandiAnNVIDIA May 19, 2026
9e4c8fb
NVIDIA: [Packaging] Fix microvm binary installation path
nvmochs Oct 15, 2025
8f0daaa
NVIDIA: [Packaging] Exclude qemu-vmsr-helper from packaging
nvmochs Oct 15, 2025
a02c086
NVIDIA: [Packaging] Fix dh_missing errors for QEMU 11.0
JiandiAnNVIDIA May 19, 2026
915bbbb
CANONICAL: [Infrastructure] Add Canonical Build CI
MitchellAugustin Oct 14, 2025
07f54e0
CANONICAL: [Infrastructure] Make orig name more dynamic
MitchellAugustin Dec 18, 2025
75c7c6d
1:11.0.0+nvidia1-1
JiandiAnNVIDIA May 16, 2026
75444d9
NVIDIA: SAUCE: Indicate this is the -unstable branch of NVIDIA QEMU
nvmochs Oct 7, 2025
49e24dc
NVIDIA: SAUCE: fix: build QEMU 11.0 with GCC 15 C++ plugins
nvmochs May 29, 2026
665814c
NVIDIA: SAUCE: fix: add python3-wheel build dependency
nvmochs May 29, 2026
6041ce6
1:11.0.0+nvidia-unstable2-1
nvmochs May 30, 2026
ccfbff2
NVIDIA: SAUCE: WAR: hw/vfio: Retry dma_map to bypass PFNMAP
nicolinc Jun 5, 2026
102b12f
NVIDIA: VR: SAUCE: hw/arm/virt: Add CXL FMWS PA window for device memory
mmhonap Apr 27, 2026
4efcc34
NVIDIA: VR: SAUCE: cxl: Add preserve_config to pxb-cxl OSC method
mmhonap Apr 27, 2026
9ce60dc
NVIDIA: VR: SAUCE: linux-headers: Update vfio.h for CXL Type-2 device…
mmhonap Apr 27, 2026
43eecc4
NVIDIA: VR: SAUCE: hw/vfio/region: Add vfio_region_setup_with_ops() f…
mmhonap Apr 27, 2026
ba13dd4
NVIDIA: VR: SAUCE: hw/vfio/pci: Add CXL Type-2 device detection and r…
mmhonap Apr 27, 2026
22d51e8
NVIDIA: VR: SAUCE: hw/vfio/pci: Wire CXL component-register BAR with …
mmhonap Apr 27, 2026
5c585cf
NVIDIA: VR: SAUCE: hw/vfio+cxl: Program HDM decoder 0 at machine_done…
mmhonap Apr 27, 2026
e8136a3
NVIDIA: VR: SAUCE: hw/arm/smmu-common: Allow pxb-cxl as SMMUv3 primar…
mmhonap Apr 27, 2026
e3affed
NVIDIA: VR: SAUCE: vfio/listener: Skip DMA mapping for VFIO-owned RAM…
mmhonap Apr 27, 2026
de80d51
NVIDIA: VR: SAUCE: vfio-cxl: Tighten FMWS placement
kobak2026 Jun 5, 2026
837073f
NVIDIA: VR: SAUCE: vfio-cxl: Reject duplicate FMWS users
kobak2026 Jun 5, 2026
5774e25
NVIDIA: VR: SAUCE: vfio-cxl: Reserve FMWS before setup
kobak2026 Jun 5, 2026
246a3d6
NVIDIA: VR: SAUCE: hw/arm/virt: Resize CXL high MMIO with PCIe
kobak2026 Jun 6, 2026
f1b043a
1:11.0.0+nvidia-unstable3-1
nvmochs Jun 10, 2026
a4410b5
CANONICAL: [Infrastructure] Update workflow actions to later version
mxc42 Jun 1, 2026
3c8eaf6
Revert "NVIDIA: VR: SAUCE: vfio/listener: Skip DMA mapping for VFIO-o…
mmhonap Jun 18, 2026
a34bfda
1:11.0.0+nvidia-unstable4-1
nvmochs Jun 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
115 changes: 115 additions & 0 deletions .github/workflows/build-source-package.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
# Builds a Debian source package for QEMU

name: Build Debian Source Package

on:
push:
branches:
- 'nvidia/latest'
- 'nvidia_stable-10.1'

# Allow manual triggering of the workflow from the GitHub UI
workflow_dispatch:

jobs:
build-source-package:
# arm64 is the primary platform of interest for this project
runs-on: ubuntu-24.04

steps:
# Step 1: Check out the repository's code
- name: Checkout repository
uses: actions/checkout@v6
with:
# Fetch all history for all tags and branches, which can be necessary
# for tools like git-buildpackage to determine version numbers.
fetch-depth: 0

# Step 2: Install Debian packaging tools and build dependencies
- name: Install Build Dependencies
run: |
sudo apt-get update

sudo DEBIAN_FRONTEND=noninteractive apt-get install -y devscripts equivs fakeroot git-buildpackage

# Use mk-build-deps to parse debian/control, create a dummy package
# with all build dependencies, and install it. This ensures all
# required build dependencies are present.
# The --no-install-recommends flag keeps the environment minimal.
sudo mk-build-deps -i --tool="apt-get -y --no-install-recommends"
# Remove debs that this generates from the working directory after install
rm -f qemu-build-deps*

# Step 3: Generate Upstream Tarball
- name: Generate Upstream Tarball
run: |
# Extract source name and upstream version from debian/changelog.
# The first sed command strips any epoch (e.g., "1:") from the start of the version.
# The second sed command strips the Debian revision from the end of the version string.
# dpkg-parsechangelog is in the dpkg-dev package, a dependency of devscripts.
export SOURCE_NAME=$(dpkg-parsechangelog -S Source)
export UPSTREAM_VERSION=$(dpkg-parsechangelog -S Version | sed 's/^[0-9]\+://' | sed 's/-[^-]*$//')

git config --global user.email "robot@builder.local"
git config --global user.name "Builder Robot"
# Create the .orig.tar.gz in the parent directory.
./debian/build-source-package-from-git.sh

# Step 4: Upload Workspace for Debugging
- name: Upload Workspace for Debugging
uses: actions/upload-artifact@v7
with:
name: pre-build-workspace
path: .

# Step 5: Build the Debian source package
- name: Build Source Package
run: |
# Use debuild to create the source package.
# -S: Build a source package only (no binaries).
# -us: Do not sign the source package.
# -uc: Do not sign the .changes file.
# This command will find and use the .orig.tar.gz we just created.
current_dir=$(pwd)
cd deb
# There should only be one thing in here, which is the tarball we'll extract
# so wildcard should be OK in this instance.
ls
tar -xvf $(ls -d * | head -n 1)
ls
cd $(ls -d */ | head -n 1)
debuild -S -us -uc
cd "$current_dir"

# Step 6: Log MD5 Checksums
- name: Log MD5 Checksums as Annotations
run: |
# Change to the parent directory where artifacts were created.
current_dir=$(pwd)
cd deb
mkdir source_package_artifacts

# Iterate over all the generated build artifacts.
for file in *.dsc *.orig.tar.* *.debian.tar.* *.changes *source.build *source.buildinfo; do
# Check if files matching the pattern exist before processing.
if [ -f "$file" ]; then
# Calculate the MD5 sum and format it for the annotation.
# The output of md5sum is "CHECKSUM FILENAME".
checksum=$(md5sum "$file")

# Echo the checksum as a workflow notice annotation.
# This will make it easily visible in the GitHub Actions UI.
echo "::notice title=MD5 Checksum::$checksum"
mv "$file" source_package_artifacts
fi
done
mv source_package_artifacts "$current_dir"

# Step 7: Upload the generated source package files as artifacts
- name: Upload Debian Source Package Artifacts
uses: actions/upload-artifact@v7
with:
# Name of the artifact bundle to be displayed in the GitHub UI
name: debian-source-package

path: source_package_artifacts
90 changes: 77 additions & 13 deletions backends/iommufd.c
Original file line number Diff line number Diff line change
Expand Up @@ -390,16 +390,23 @@ bool iommufd_backend_get_dirty_bitmap(IOMMUFDBackend *be,
return true;
}

/*
* @type can carry a desired HW info type defined in the uapi headers. If caller
* doesn't have one, indicating it wants the default type, then @type should be
* zeroed (i.e. IOMMU_HW_INFO_TYPE_DEFAULT).
*/
bool iommufd_backend_get_device_info(IOMMUFDBackend *be, uint32_t devid,
uint32_t *type, void *data, uint32_t len,
uint64_t *caps, uint8_t *max_pasid_log2,
Error **errp)
{
struct iommu_hw_info info = {
.flags = (*type) ? IOMMU_HW_INFO_FLAG_INPUT_TYPE : 0,
.size = sizeof(info),
.dev_id = devid,
.data_len = len,
.data_uptr = (uintptr_t)data,
.in_data_type = *type,
};

if (ioctl(be->fd, IOMMU_GET_HW_INFO, &info)) {
Expand Down Expand Up @@ -456,6 +463,7 @@ bool iommufd_backend_invalidate_cache(IOMMUFDBackend *be, uint32_t id,

bool iommufd_backend_alloc_viommu(IOMMUFDBackend *be, uint32_t dev_id,
uint32_t viommu_type, uint32_t hwpt_id,
void *data_ptr, uint32_t data_len,
uint32_t *out_viommu_id, Error **errp)
{
int ret;
Expand All @@ -464,11 +472,14 @@ bool iommufd_backend_alloc_viommu(IOMMUFDBackend *be, uint32_t dev_id,
.type = viommu_type,
.dev_id = dev_id,
.hwpt_id = hwpt_id,
.data_len = data_len,
.data_uptr = (uintptr_t)data_ptr,
};

ret = ioctl(be->fd, IOMMU_VIOMMU_ALLOC, &alloc_viommu);

trace_iommufd_backend_alloc_viommu(be->fd, dev_id, viommu_type, hwpt_id,
(uintptr_t)data_ptr, data_len,
alloc_viommu.out_viommu_id, ret);
if (ret) {
error_setg_errno(errp, errno, "IOMMU_VIOMMU_ALLOC failed");
Expand Down Expand Up @@ -538,24 +549,77 @@ bool iommufd_backend_alloc_veventq(IOMMUFDBackend *be, uint32_t viommu_id,
return true;
}

bool host_iommu_device_iommufd_attach_hwpt(HostIOMMUDeviceIOMMUFD *idev,
bool iommufd_backend_alloc_hw_queue(IOMMUFDBackend *be, uint32_t viommu_id,
uint32_t queue_type, uint32_t index,
uint64_t addr, uint64_t length,
uint32_t *out_hw_queue_id, Error **errp)
{
int ret;
struct iommu_hw_queue_alloc alloc_hw_queue = {
.size = sizeof(alloc_hw_queue),
.flags = 0,
.viommu_id = viommu_id,
.type = queue_type,
.index = index,
.nesting_parent_iova = addr,
.length = length,
};

ret = ioctl(be->fd, IOMMU_HW_QUEUE_ALLOC, &alloc_hw_queue);

trace_iommufd_backend_alloc_hw_queue(be->fd, viommu_id, queue_type,
index, addr, length,
alloc_hw_queue.out_hw_queue_id, ret);
if (ret) {
error_setg_errno(errp, errno, "IOMMU_HW_QUEUE_ALLOC failed");
return false;
}

g_assert(out_hw_queue_id);
*out_hw_queue_id = alloc_hw_queue.out_hw_queue_id;
return true;
}

/*
* Helper to mmap HW MMIO regions exposed via iommufd for a vIOMMU instance.
* The caller is responsible for unmapping the mapped region.
*/
bool iommufd_backend_viommu_mmap(IOMMUFDBackend *be, uint32_t viommu_id,
uint64_t size, off_t offset, void **out_ptr,
Error **errp)
{
g_assert(viommu_id);
g_assert(out_ptr);

*out_ptr = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED, be->fd,
offset);
trace_iommufd_backend_viommu_mmap(be->fd, viommu_id, size, offset);
if (*out_ptr == MAP_FAILED) {
error_setg_errno(errp, errno, "IOMMUFD vIOMMU mmap failed");
return false;
}

return true;
}

bool host_iommu_device_iommufd_attach_hwpt(HostIOMMUDeviceIOMMUFD *hiodi,
uint32_t hwpt_id, Error **errp)
{
HostIOMMUDeviceIOMMUFDClass *idevc =
HOST_IOMMU_DEVICE_IOMMUFD_GET_CLASS(idev);
HostIOMMUDeviceIOMMUFDClass *hiodic =
HOST_IOMMU_DEVICE_IOMMUFD_GET_CLASS(hiodi);

g_assert(idevc->attach_hwpt);
return idevc->attach_hwpt(idev, hwpt_id, errp);
g_assert(hiodic->attach_hwpt);
return hiodic->attach_hwpt(hiodi, hwpt_id, errp);
}

bool host_iommu_device_iommufd_detach_hwpt(HostIOMMUDeviceIOMMUFD *idev,
bool host_iommu_device_iommufd_detach_hwpt(HostIOMMUDeviceIOMMUFD *hiodi,
Error **errp)
{
HostIOMMUDeviceIOMMUFDClass *idevc =
HOST_IOMMU_DEVICE_IOMMUFD_GET_CLASS(idev);
HostIOMMUDeviceIOMMUFDClass *hiodic =
HOST_IOMMU_DEVICE_IOMMUFD_GET_CLASS(hiodi);

g_assert(idevc->detach_hwpt);
return idevc->detach_hwpt(idev, errp);
g_assert(hiodic->detach_hwpt);
return hiodic->detach_hwpt(hiodi, errp);
}

static int hiod_iommufd_get_cap(HostIOMMUDevice *hiod, int cap, Error **errp)
Expand Down Expand Up @@ -591,10 +655,10 @@ static bool hiod_iommufd_get_pasid_info(HostIOMMUDevice *hiod,

static void hiod_iommufd_class_init(ObjectClass *oc, const void *data)
{
HostIOMMUDeviceClass *hioc = HOST_IOMMU_DEVICE_CLASS(oc);
HostIOMMUDeviceClass *hiodc = HOST_IOMMU_DEVICE_CLASS(oc);

hioc->get_cap = hiod_iommufd_get_cap;
hioc->get_pasid_info = hiod_iommufd_get_pasid_info;
hiodc->get_cap = hiod_iommufd_get_cap;
hiodc->get_pasid_info = hiod_iommufd_get_pasid_info;
};

static const TypeInfo types[] = {
Expand Down
4 changes: 3 additions & 1 deletion backends/trace-events
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,11 @@ iommufd_backend_free_id(int iommufd, uint32_t id, int ret) " iommufd=%d id=%d (%
iommufd_backend_set_dirty(int iommufd, uint32_t hwpt_id, bool start, int ret) " iommufd=%d hwpt=%u enable=%d (%d)"
iommufd_backend_get_dirty_bitmap(int iommufd, uint32_t hwpt_id, uint64_t iova, uint64_t size, uint64_t flags, uint64_t page_size, int ret) " iommufd=%d hwpt=%u iova=0x%"PRIx64" size=0x%"PRIx64" flags=0x%"PRIx64" page_size=0x%"PRIx64" (%d)"
iommufd_backend_invalidate_cache(int iommufd, uint32_t id, uint32_t data_type, uint32_t entry_len, uint32_t entry_num, uint32_t done_num, uint64_t data_ptr, int ret) " iommufd=%d id=%u data_type=%u entry_len=%u entry_num=%u done_num=%u data_ptr=0x%"PRIx64" (%d)"
iommufd_backend_alloc_viommu(int iommufd, uint32_t dev_id, uint32_t type, uint32_t hwpt_id, uint32_t viommu_id, int ret) " iommufd=%d type=%u dev_id=%u hwpt_id=%u viommu_id=%u (%d)"
iommufd_backend_alloc_viommu(int iommufd, uint32_t dev_id, uint32_t type, uint32_t hwpt_id, uint64_t data_ptr, uint32_t data_len, uint32_t viommu_id, int ret) " iommufd=%d type=%u dev_id=%u hwpt_id=%u data_ptr=0x%"PRIx64" data_len=0x%x viommu_id=%u (%d)"
iommufd_backend_alloc_vdev(int iommufd, uint32_t dev_id, uint32_t viommu_id, uint64_t virt_id, uint32_t vdev_id, int ret) " iommufd=%d dev_id=%u viommu_id=%u virt_id=0x%"PRIx64" vdev_id=%u (%d)"
iommufd_viommu_alloc_eventq(int iommufd, uint32_t viommu_id, uint32_t type, uint32_t veventq_id, uint32_t veventq_fd, int ret) " iommufd=%d viommu_id=%u type=%u veventq_id=%u veventq_fd=%u (%d)"
iommufd_backend_alloc_hw_queue(int iommufd, uint32_t viommu_id, uint32_t queue_type, uint32_t index, uint64_t addr, uint64_t size, uint32_t queue_id, int ret) " iommufd=%d viommu_id=%u queue_type=%u index=%u addr=0x%"PRIx64" size=0x%"PRIx64" queue_id=%u (%d)"
iommufd_backend_viommu_mmap(int iommufd, uint32_t viommu_id, uint64_t size, uint64_t offset) " iommufd=%d viommu_id=%u size=0x%"PRIx64" offset=0x%"PRIx64

# igvm-cfg.c
igvm_reset_enter(int type) "type=%u"
Expand Down
74 changes: 74 additions & 0 deletions debian/README-components-versions
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
Evolution of qemu-related packages in debian

kvm: was a binary package providing /usr/bin/kvm before squeeze.

In squeeze it has been renamed to qemu-kvm,
so kvm becomes a transitional package.

Probably can be get rid of now.

No need to conflict with this package, but we can force-remove it
by conflicting with it.

Some packages may still Require/Depend/Suggest: kvm.


qemu-kvm: was a binary package providing /usr/bin/kvm in wheezy (v. 1.1)

This binary become a (deprecated) shell wrapper and was a part of
qemu-system-x86 package between versions 1.3.0+dfsg-5 (when qemu-system
were split) up to 1.7.0+dfsg-1, with qemu-kvm package being transitional.

At version 1.7.0+dfsg-2, qemu-kvm packcage is not transitional anymore,
and the wrapper is provided by qemu-kvm, not qemu-system-x86.

Some packages may Require/Depend/Suggest: qemu-kvm.

qemu: initially it was a mix of all of qemu (unrelated, not conflicting
with qemu-kvm or kvm)

at 0.11.0-1 it were split to qemu-user, qemu-user-static and qemu-system.

Also qemu-keymaps is made a separate package at version 0.12.4+dfsg-4
(for use together with qemu-kvm and xen and, on ubuntu, qemu-linaro).

And qemu-utils become a separate package (look when? since the beginning?)

Now it is a metapackage and a placeholder for some docs

qemu-system: was a package with all qemu-system-* binaries.

Were split into individual qemu-system-foo and qemu-system-common at version
1.3.0+dfsg-5, so qemu-system becomes a metapackage without its own files.

The split introduced a bunch of qemu-system-* conflicting+replacing
qemu-system<<1.3.0+dfsg-5.

At version 1.3.0+dfsg-4exp (before split, in experimental), /usr/bin/kvm was
a part of qemu-system (and later qemu-system-x86)/

At the same version, virtfs-proxy-helper binary has been moved from qemu-utils
to qemu-system (and later to qemu-system-common).

qemu-system-common: appeared at 1.3.0+dfsg-5, files common for all qemu-system*

briefly (>=1.3.0+dfsg-4exp, <<1.3.0+dfsg-5), qemu-utils had
virtfs-proxy-helper binary which is in qemu-system-common

qemu-keymaps: keymap definition for qemu, qemu-kvm and xen.

Can be merged into qemu-system-common now, or after qemu-linaro.

Were split out of qemu at version 0.12.4+dfsg-4

qemu-utils: common utilities (part of qemu-common in ubuntu?)

In versions between 1.3.0+dfsg-1~exp1 and 1.3.0+dfsg-4exp, wrongly shipped
virtfs-proxy-helper binary

qemu-user, qemu-user-static: user-mode qemu emulation

Were split out of qemu at verson 0.11.0-1 (pre-squeeze),
do not conflict/replace anything anymore.

qemu-common: ubuntu package
16 changes: 16 additions & 0 deletions debian/TODO
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
* fix other binaries (s390-zipl, ppc_rom)

* permissions/ownership for /dev/vhost_net???

* startup script for qemu-guest-agent: check dependencies & runlevels.

* maybe provide activation for udev & systemd:

SUBSYSTEM=="virtio-ports", ATTR{name}=="org.qemu.guest_agent.0", \
TAG+="systemd" ENV{SYSTEMD_WANTS}="qemu-guest-agent.service"

and dev-virtio/ports-org.qemu.guest_agent.0.device activation
for systemd.

* decide what to do with qemu-bridge-helper (#691138)

Loading