Package: virt-manager Version: 1:4.1.0-4 Severity: normal Tags: patch User: ubuntu-de...@lists.ubuntu.com Usertags: origin-ubuntu oracular ubuntu-patch
Dear Maintainer, When running virt-install with both --location and --cloud-init options, the latter is silently ignored. Although the --cloud-init option is properly honored when used with --cdrom instead of --location ; but --cdrom is incompatible with --extra-args ; which is useful as well. There is an upstream bug report [1] with an open PR [2]. I have added the patch from the PR as a quilt patch (refreshed) in the attached debdiff. [1] https://github.com/virt-manager/virt-manager/issues/469 [2] https://github.com/virt-manager/virt-manager/pull/485 In Ubuntu, the attached patch was applied to achieve the following: * d/p/virtinstall-Fix-location-and-cloud-init-conflict.patch: do not ignore virt-install's --cloud-init option when used in conjunction with --location. (LP: #2073461) Thanks for considering the patch. -- System Information: Debian Release: trixie/sid APT prefers noble-updates APT policy: (500, 'noble-updates'), (500, 'noble-security'), (500, 'noble'), (100, 'noble-backports') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 6.8.0-38-generic (SMP w/8 CPU threads; PREEMPT) Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled Versions of packages virt-manager is related to: ii libvirt-clients 10.0.0-2ubuntu8.2 ii libvirt-daemon 10.0.0-2ubuntu8.2 ii libvirt0 10.0.0-2ubuntu8.2 ii osinfo-db 0.20240523-0ubuntu0.24.04.1
diff -Nru virt-manager-4.1.0/debian/patches/series virt-manager-4.1.0/debian/patches/series --- virt-manager-4.1.0/debian/patches/series 2024-05-09 09:45:01.000000000 +0200 +++ virt-manager-4.1.0/debian/patches/series 2024-07-18 09:54:44.000000000 +0200 @@ -3,3 +3,4 @@ upstream_tests-Fix-host-copy-XML-with-libvirt-10.1.0.patch upstream_build-use-super.patch upstream_build-use-setuptools.command.build-when-available.patch +virtinstall-Fix-location-and-cloud-init-conflict.patch diff -Nru virt-manager-4.1.0/debian/patches/virtinstall-Fix-location-and-cloud-init-conflict.patch virt-manager-4.1.0/debian/patches/virtinstall-Fix-location-and-cloud-init-conflict.patch --- virt-manager-4.1.0/debian/patches/virtinstall-Fix-location-and-cloud-init-conflict.patch 1970-01-01 01:00:00.000000000 +0100 +++ virt-manager-4.1.0/debian/patches/virtinstall-Fix-location-and-cloud-init-conflict.patch 2024-07-18 09:54:44.000000000 +0200 @@ -0,0 +1,208 @@ +Description: virtinstall: Fix --location and --cloud-init conflict + So far, --cloud-init is ignored when --location is specified. + . + Resolves: virt-manager#469 +Author: Patrice Lacouture <p.lacout...@see.fr> +Origin: upstream, https://github.com/virt-manager/virt-manager/pull/485 +Bug: https://github.com/virt-manager/virt-manager/issues/469 +Bug-Ubuntu: https://launchpad.net/bugs/2073461 +Applied-Upstream: no +Last-Update: 2024-07-18 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +--- /dev/null ++++ b/tests/data/cli/compare/virt-install-location-iso-and-cloud-init.xml +@@ -0,0 +1,172 @@ ++<domain type="kvm"> ++ <name>fedora17</name> ++ <uuid>00000000-1111-2222-3333-444444444444</uuid> ++ <metadata> ++ <libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0"> ++ <libosinfo:os id="http://fedoraproject.org/fedora/17"/> ++ </libosinfo:libosinfo> ++ </metadata> ++ <memory>65536</memory> ++ <currentMemory>65536</currentMemory> ++ <vcpu>2</vcpu> ++ <os> ++ <type arch="x86_64" machine="pc-i440fx-6.1">hvm</type> ++ <kernel>/VIRTINST-TESTSUITE/vmlinuz</kernel> ++ <initrd>/VIRTINST-TESTSUITE/initrd.img</initrd> ++ <smbios mode="sysinfo"/> ++ </os> ++ <features> ++ <acpi/> ++ <apic/> ++ <vmport state="off"/> ++ </features> ++ <cpu mode="host-passthrough"/> ++ <clock offset="utc"> ++ <timer name="rtc" tickpolicy="catchup"/> ++ <timer name="pit" tickpolicy="delay"/> ++ <timer name="hpet" present="no"/> ++ </clock> ++ <pm> ++ <suspend-to-mem enabled="no"/> ++ <suspend-to-disk enabled="no"/> ++ </pm> ++ <devices> ++ <emulator>/usr/bin/qemu-system-x86_64</emulator> ++ <disk type="file" device="disk"> ++ <driver name="qemu" type="qcow2"/> ++ <source file="/pool-dir/testvol1.img"/> ++ <target dev="vda" bus="virtio"/> ++ </disk> ++ <disk type="file" device="cdrom"> ++ <driver name="qemu"/> ++ <source file="TESTSUITE_SCRUBBED/tests/data/fakemedia/fake-fedora17-tree.iso"/> ++ <target dev="hda" bus="ide"/> ++ <readonly/> ++ </disk> ++ <controller type="usb" model="ich9-ehci1"/> ++ <controller type="usb" model="ich9-uhci1"> ++ <master startport="0"/> ++ </controller> ++ <controller type="usb" model="ich9-uhci2"> ++ <master startport="2"/> ++ </controller> ++ <controller type="usb" model="ich9-uhci3"> ++ <master startport="4"/> ++ </controller> ++ <console type="pty"/> ++ <channel type="unix"> ++ <source mode="bind"/> ++ <target type="virtio" name="org.qemu.guest_agent.0"/> ++ </channel> ++ <channel type="spicevmc"> ++ <target type="virtio" name="com.redhat.spice.0"/> ++ </channel> ++ <input type="tablet" bus="usb"/> ++ <graphics type="spice" port="-1" tlsPort="-1" autoport="yes"> ++ <image compression="off"/> ++ </graphics> ++ <sound model="ich6"/> ++ <video> ++ <model type="qxl"/> ++ </video> ++ <redirdev bus="usb" type="spicevmc"/> ++ <redirdev bus="usb" type="spicevmc"/> ++ <memballoon model="virtio"/> ++ <rng model="virtio"> ++ <backend model="random">/dev/urandom</backend> ++ </rng> ++ <disk type="file" device="cdrom"> ++ <driver name="qemu" type="raw"/> ++ <source file="/VIRTINST-TESTSUITE/cloudinit.iso"/> ++ <target dev="hdb" bus="ide"/> ++ <readonly/> ++ </disk> ++ </devices> ++ <sysinfo type="smbios"> ++ <system> ++ <entry name="serial">ds=nocloud</entry> ++ </system> ++ </sysinfo> ++ <on_reboot>destroy</on_reboot> ++</domain> ++<domain type="kvm"> ++ <name>fedora17</name> ++ <uuid>00000000-1111-2222-3333-444444444444</uuid> ++ <metadata> ++ <libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0"> ++ <libosinfo:os id="http://fedoraproject.org/fedora/17"/> ++ </libosinfo:libosinfo> ++ </metadata> ++ <memory>65536</memory> ++ <currentMemory>65536</currentMemory> ++ <vcpu>2</vcpu> ++ <os> ++ <type arch="x86_64" machine="pc-i440fx-6.1">hvm</type> ++ <boot dev="hd"/> ++ </os> ++ <features> ++ <acpi/> ++ <apic/> ++ <vmport state="off"/> ++ </features> ++ <cpu mode="host-passthrough"/> ++ <clock offset="utc"> ++ <timer name="rtc" tickpolicy="catchup"/> ++ <timer name="pit" tickpolicy="delay"/> ++ <timer name="hpet" present="no"/> ++ </clock> ++ <pm> ++ <suspend-to-mem enabled="no"/> ++ <suspend-to-disk enabled="no"/> ++ </pm> ++ <devices> ++ <emulator>/usr/bin/qemu-system-x86_64</emulator> ++ <disk type="file" device="disk"> ++ <driver name="qemu" type="qcow2"/> ++ <source file="/pool-dir/testvol1.img"/> ++ <target dev="vda" bus="virtio"/> ++ </disk> ++ <disk type="file" device="cdrom"> ++ <driver name="qemu"/> ++ <source file="TESTSUITE_SCRUBBED/tests/data/fakemedia/fake-fedora17-tree.iso"/> ++ <target dev="hda" bus="ide"/> ++ <readonly/> ++ </disk> ++ <controller type="usb" model="ich9-ehci1"/> ++ <controller type="usb" model="ich9-uhci1"> ++ <master startport="0"/> ++ </controller> ++ <controller type="usb" model="ich9-uhci2"> ++ <master startport="2"/> ++ </controller> ++ <controller type="usb" model="ich9-uhci3"> ++ <master startport="4"/> ++ </controller> ++ <console type="pty"/> ++ <channel type="unix"> ++ <source mode="bind"/> ++ <target type="virtio" name="org.qemu.guest_agent.0"/> ++ </channel> ++ <channel type="spicevmc"> ++ <target type="virtio" name="com.redhat.spice.0"/> ++ </channel> ++ <input type="tablet" bus="usb"/> ++ <graphics type="spice" port="-1" tlsPort="-1" autoport="yes"> ++ <image compression="off"/> ++ </graphics> ++ <sound model="ich6"/> ++ <video> ++ <model type="qxl"/> ++ </video> ++ <redirdev bus="usb" type="spicevmc"/> ++ <redirdev bus="usb" type="spicevmc"/> ++ <memballoon model="virtio"/> ++ <rng model="virtio"> ++ <backend model="random">/dev/urandom</backend> ++ </rng> ++ <disk type="file" device="cdrom"> ++ <target dev="hdb" bus="ide"/> ++ <readonly/> ++ </disk> ++ </devices> ++</domain> +--- a/tests/test_cli.py ++++ b/tests/test_cli.py +@@ -1088,6 +1088,7 @@ + c.add_compare("--osinfo linux2020 --pxe", "linux2020", prerun_check=no_osinfo_linux2020_virtio) + c.add_compare("--osinfo generic --disk none --location %(ISO-NO-OS)s,kernel=frib.img,initrd=/frob.img", "location-manual-kernel", prerun_check=missing_xorriso) # --location with an unknown ISO but manually specified kernel paths + c.add_compare("--disk %(EXISTIMG1)s --location %(ISOTREE)s --nonetworks", "location-iso", prerun_check=missing_xorriso) # Using --location iso mounting ++c.add_compare("--disk %(EXISTIMG1)s --location %(ISOTREE)s --nonetworks --cloud-init user-data=%(XMLDIR)s/cloudinit/user-data.txt,meta-data=%(XMLDIR)s/cloudinit/meta-data.txt", "location-iso-and-cloud-init", prerun_check=missing_xorriso) # Using --location iso mounting and --cloud-init at the same time + c.add_compare("--disk %(EXISTIMG1)s --cdrom %(ISOLABEL)s", "cdrom-centos-label") # Using --cdrom with centos CD label, should use virtio etc. + c.add_compare("--disk %(EXISTIMG1)s --install bootdev=network --os-variant rhel5.4 --cloud-init none", "kvm-rhel5") # RHEL5 defaults + c.add_compare("--disk %(EXISTIMG1)s --install kernel=%(ISO-WIN7)s,initrd=%(ISOLABEL)s,kernel_args='foo bar' --os-variant rhel6.4 --unattended none", "kvm-rhel6") # RHEL6 defaults. ISO paths are just to point at existing files +--- a/virtinst/install/installer.py ++++ b/virtinst/install/installer.py +@@ -393,7 +393,7 @@ + elif unattended_scripts: + self._prepare_unattended_data(guest, meter, unattended_scripts) + +- elif self._cloudinit_data: ++ if self._cloudinit_data: + self._prepare_cloudinit(guest, meter) + + def _cleanup(self, guest):