[libvirt] [PATCH 0/2] Fixed QEMU 1.0.1 support

This patch fixes incorrect help screen parsing for QEMU 1.0.1 package Version line changed from QEMU emulator version 1.0 (qemu-kvm-1.0), Copyright (c) 2003-2008 Fabrice Bellard To QEMU emulator version 1.0,1 (qemu-kvm-1.0.1), Copyright (c) 2003-2008 Fabrice Bellard Comma in version number hits parsing logic and leads to incorrect capabilities list. Particularity KVM support capability is not detected making problems in various scenarious. The patch treats the newly added 1 as a micro version number, not sure this is legitimate. Please, correct me if I'm wrong. Signed-off-by: Dmitry Fleytman dmitry@daynix.com Dmitry Fleytman (2): Incorrect help screen parsing for QEMU 1.0.1 package fixed Test for QEMU 1.0.1 help screen parsing added src/qemu/qemu_capabilities.c | 13 +- tests/qemuhelpdata/qemu-1.0.1 | 261 +++++++++++++++++++++++++++++++++++ tests/qemuhelpdata/qemu-1.0.1-device | 138 ++++++++++++++++++ tests/qemuhelptest.c | 73 ++++++++++ 4 files changed, 481 insertions(+), 4 deletions(-) create mode 100644 tests/qemuhelpdata/qemu-1.0.1 create mode 100644 tests/qemuhelpdata/qemu-1.0.1-device -- 1.7.11.4

Signed-off-by: Dmitry Fleytman dmitry@daynix.com --- src/qemu/qemu_capabilities.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index ae26967..d2580b6 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -1288,13 +1288,18 @@ int qemuCapsParseHelpStr(const char *qemu, if (minor == -1) goto fail; - if (*p != '.') { + if ((*p != '.') && (*p != ',')) { micro = 0; } else { ++p; - micro = virParseNumber(&p); - if (micro == -1) - goto fail; + + if(*p == ' ') { + micro = 0; /* 1.0, case */ + } else { + micro = virParseNumber(&p); /* 1.0,x case */ + if (micro == -1) + goto fail; + } } SKIP_BLANKS(p); -- 1.7.11.4

Signed-off-by: Dmitry Fleytman dmitry@daynix.com --- tests/qemuhelpdata/qemu-1.0.1 | 261 +++++++++++++++++++++++++++++++++++ tests/qemuhelpdata/qemu-1.0.1-device | 138 ++++++++++++++++++ tests/qemuhelptest.c | 73 ++++++++++ 3 files changed, 472 insertions(+) create mode 100644 tests/qemuhelpdata/qemu-1.0.1 create mode 100644 tests/qemuhelpdata/qemu-1.0.1-device diff --git a/tests/qemuhelpdata/qemu-1.0.1 b/tests/qemuhelpdata/qemu-1.0.1 new file mode 100644 index 0000000..1296612 --- /dev/null +++ b/tests/qemuhelpdata/qemu-1.0.1 @@ -0,0 +1,261 @@ +QEMU emulator version 1.0,1 (qemu-kvm-1.0.1), Copyright (c) 2003-2008 Fabrice Bellard +usage: qemu [options] [disk_image] + +'disk_image' is a raw hard disk image for IDE hard disk 0 + +Standard options: +-h or -help display this help and exit +-version display version information and exit +-machine [type=]name[,prop[=value][,...]] + selects emulated machine (-machine ? for list) + property accel=accel1[:accel2[:...]] selects accelerator + supported accelerators are kvm, xen, tcg (default: tcg) +-cpu cpu select CPU (-cpu ? for list) +-smp n[,maxcpus=cpus][,cores=cores][,threads=threads][,sockets=sockets] + set the number of CPUs to 'n' [default=1] + maxcpus= maximum number of total cpus, including + offline CPUs for hotplug, etc + cores= number of CPU cores on one socket + threads= number of threads on one CPU core + sockets= number of discrete sockets in the system +-numa node[,mem=size][,cpus=cpu[-cpu]][,nodeid=node] +-fda/-fdb file use 'file' as floppy disk 0/1 image +-hda/-hdb file use 'file' as IDE hard disk 0/1 image +-hdc/-hdd file use 'file' as IDE hard disk 2/3 image +-cdrom file use 'file' as IDE cdrom image (cdrom is ide1 master) +-drive [file=file][,if=type][,bus=n][,unit=m][,media=d][,index=i] + [,cyls=c,heads=h,secs=s[,trans=t]][,snapshot=on|off] + [,cache=writethrough|writeback|none|directsync|unsafe][,format=f] + [,serial=s][,addr=A][,id=name][,aio=threads|native] + [,readonly=on|off] + use 'file' as a drive image +-set group.id.arg=value + set <arg> parameter for item <id> of type <group> + i.e. -set drive.$id.file=/path/to/image +-global driver.property=value + set a global default for a driver property +-mtdblock file use 'file' as on-board Flash memory image +-sd file use 'file' as SecureDigital card image +-pflash file use 'file' as a parallel flash image +-boot [order=drives][,once=drives][,menu=on|off] + [,splash=sp_name][,splash-time=sp_time] + 'drives': floppy (a), hard disk (c), CD-ROM (d), network (n) + 'sp_name': the file's name that would be passed to bios as logo picture, if menu=on + 'sp_time': the period that splash picture last if menu=on, unit is ms +-snapshot write to temporary files instead of disk image files +-m megs set virtual RAM size to megs MB [default=128] +-mem-path FILE provide backing storage for guest RAM +-mem-prealloc preallocate guest memory (use with -mem-path) +-k language use keyboard layout (for example 'fr' for French) +-audio-help print list of audio drivers and their options +-soundhw c1,... enable audio support + and only specified sound cards (comma separated list) + use -soundhw ? to get the list of supported cards + use -soundhw all to enable all of them +-usb enable the USB driver (will be the default soon) +-usbdevice name add the host or guest USB device 'name' +-device driver[,prop[=value][,...]] + add device (based on driver) + prop=value,... sets driver properties + use -device ? to print all possible drivers + use -device driver,? to print all possible properties + +File system options: +-fsdev fsdriver,id=id,path=path,[security_model={mapped|passthrough|none}] + [,writeout=immediate][,readonly] + +Virtual File system pass-through options: +-virtfs local,path=path,mount_tag=tag,security_model=[mapped|passthrough|none] + [,writeout=immediate][,readonly] +-virtfs_synth Create synthetic file system image + +-name string1[,process=string2] + set the name of the guest + string1 sets the window title and string2 the process name (on Linux) +-uuid %08x-%04x-%04x-%04x-%012x + specify machine UUID + +Display options: +-display sdl[,frame=on|off][,alt_grab=on|off][,ctrl_grab=on|off] + [,window_close=on|off]|curses|none| + vnc=<display>[,<optargs>] + select display type +-nographic disable graphical output and redirect serial I/Os to console +-curses use a curses/ncurses interface instead of SDL +-no-frame open SDL window without a frame and window decorations +-alt-grab use Ctrl-Alt-Shift to grab mouse (instead of Ctrl-Alt) +-ctrl-grab use Right-Ctrl to grab mouse (instead of Ctrl-Alt) +-no-quit disable SDL window close capability +-sdl enable SDL +-spice <args> enable spice +-portrait rotate graphical output 90 deg left (only PXA LCD) +-rotate <deg> rotate graphical output some deg left (only PXA LCD) +-vga [std|cirrus|vmware|qxl|xenfb|none] + select video card type +-full-screen start in full screen +-g WxH[xDEPTH] Set the initial graphical resolution and depth +-vnc display start a VNC server on display + +i386 target only: +-win2k-hack use it when installing Windows 2000 to avoid a disk full bug +-no-fd-bootchk disable boot signature checking for floppy disks +-no-acpi disable ACPI +-no-hpet disable HPET +-balloon none disable balloon device +-balloon virtio[,addr=str] + enable virtio balloon device (default) +-acpitable [sig=str][,rev=n][,oem_id=str][,oem_table_id=str][,oem_rev=n][,asl_compiler_id=str][,asl_compiler_rev=n][,{data|file}=file1[:file2]...] + ACPI table description +-smbios file=binary + load SMBIOS entry from binary file +-smbios type=0[,vendor=str][,version=str][,date=str][,release=%d.%d] + specify SMBIOS type 0 fields +-smbios type=1[,manufacturer=str][,product=str][,version=str][,serial=str] + [,uuid=uuid][,sku=str][,family=str] + specify SMBIOS type 1 fields + +Network options: +-net nic[,vlan=n][,macaddr=mac][,model=type][,name=str][,addr=str][,vectors=v] + create a new Network Interface Card and connect it to VLAN 'n' +-net user[,vlan=n][,name=str][,net=addr[/mask]][,host=addr][,restrict=on|off] + [,hostname=host][,dhcpstart=addr][,dns=addr][,tftp=dir][,bootfile=f] + [,hostfwd=rule][,guestfwd=rule][,smb=dir[,smbserver=addr]] + connect the user mode network stack to VLAN 'n', configure its + DHCP server and enabled optional services +-net tap[,vlan=n][,name=str][,fd=h][,ifname=name][,script=file][,downscript=dfile][,sndbuf=nbytes][,vnet_hdr=on|off][,vhost=on|off][,vhostfd=h][,vhostforce=on|off] + connect the host TAP network interface to VLAN 'n' and use the + network scripts 'file' (default=/etc/qemu-ifup) + and 'dfile' (default=/etc/qemu-ifdown) + use '[down]script=no' to disable script execution + use 'fd=h' to connect to an already opened TAP interface + use 'sndbuf=nbytes' to limit the size of the send buffer (the + default is disabled 'sndbuf=0' to enable flow control set 'sndbuf=1048576') + use vnet_hdr=off to avoid enabling the IFF_VNET_HDR tap flag + use vnet_hdr=on to make the lack of IFF_VNET_HDR support an error condition + use vhost=on to enable experimental in kernel accelerator + (only has effect for virtio guests which use MSIX) + use vhostforce=on to force vhost on for non-MSIX virtio guests + use 'vhostfd=h' to connect to an already opened vhost net device +-net socket[,vlan=n][,name=str][,fd=h][,listen=[host]:port][,connect=host:port] + connect the vlan 'n' to another VLAN using a socket connection +-net socket[,vlan=n][,name=str][,fd=h][,mcast=maddr:port[,localaddr=addr]] + connect the vlan 'n' to multicast maddr and port + use 'localaddr=addr' to specify the host address to send packets from +-net dump[,vlan=n][,file=f][,len=n] + dump traffic on vlan 'n' to file 'f' (max n bytes per packet) +-net none use it alone to have zero network devices. If no -net option + is provided, the default is '-net nic -net user' +-netdev [user|tap|socket],id=str[,option][,option][,...] + +Character device options: +-chardev null,id=id[,mux=on|off] +-chardev socket,id=id[,host=host],port=host[,to=to][,ipv4][,ipv6][,nodelay] + [,server][,nowait][,telnet][,mux=on|off] (tcp) +-chardev socket,id=id,path=path[,server][,nowait][,telnet],[mux=on|off] (unix) +-chardev udp,id=id[,host=host],port=port[,localaddr=localaddr] + [,localport=localport][,ipv4][,ipv6][,mux=on|off] +-chardev msmouse,id=id[,mux=on|off] +-chardev vc,id=id[[,width=width][,height=height]][[,cols=cols][,rows=rows]] + [,mux=on|off] +-chardev file,id=id,path=path[,mux=on|off] +-chardev pipe,id=id,path=path[,mux=on|off] +-chardev pty,id=id[,mux=on|off] +-chardev stdio,id=id[,mux=on|off][,signal=on|off] +-chardev braille,id=id[,mux=on|off] +-chardev tty,id=id,path=path[,mux=on|off] +-chardev parport,id=id,path=path[,mux=on|off] +-chardev spicevmc,id=id,name=name[,debug=debug] + +Bluetooth(R) options: +-bt hci,null dumb bluetooth HCI - doesn't respond to commands +-bt hci,host[:id] + use host's HCI with the given name +-bt hci[,vlan=n] + emulate a standard HCI in virtual scatternet 'n' +-bt vhci[,vlan=n] + add host computer to virtual scatternet 'n' using VHCI +-bt device:dev[,vlan=n] + emulate a bluetooth device 'dev' in scatternet 'n' + +Linux/Multiboot boot specific: +-kernel bzImage use 'bzImage' as kernel image +-append cmdline use 'cmdline' as kernel command line +-initrd file use 'file' as initial ram disk + +Debug/Expert options: +-serial dev redirect the serial port to char device 'dev' +-parallel dev redirect the parallel port to char device 'dev' +-monitor dev redirect the monitor to char device 'dev' +-qmp dev like -monitor but opens in 'control' mode +-mon chardev=[name][,mode=readline|control][,default] +-debugcon dev redirect the debug console to char device 'dev' +-pidfile file write PID to 'file' +-singlestep always run in singlestep mode +-S freeze CPU at startup (use 'c' to start execution) +-gdb dev wait for gdb connection on 'dev' +-s shorthand for -gdb tcp::1234 +-d item1,... output log to /tmp/qemu.log (use -d ? for a list of log items) +-D logfile output log to logfile (instead of the default /tmp/qemu.log) +-hdachs c,h,s[,t] + force hard disk 0 physical geometry and the optional BIOS + translation (t=none or lba) (usually qemu can guess them) +-L path set the directory for the BIOS, VGA BIOS and keymaps +-bios file set the filename for the BIOS +-enable-kvm enable KVM full virtualization support +-xen-domid id specify xen guest domain id +-xen-create create domain using xen hypercalls, bypassing xend + warning: should not be used when xend is in use +-xen-attach attach to existing xen domain + xend will use this when starting qemu +-no-reboot exit instead of rebooting +-no-shutdown stop before shutdown +-loadvm [tag|id] + start right away with a saved state (loadvm in monitor) +-daemonize daemonize QEMU after initializing +-option-rom rom load a file, rom, into the option ROM space +-clock force the use of the given methods for timer alarm. + To see what timers are available use -clock ? +-rtc [base=utc|localtime|date][,clock=host|vm][,driftfix=none|slew] + set the RTC base and clock, enable drift fix for clock ticks (x86 only) +-icount [N|auto] + enable virtual instruction counter with 2^N clock ticks per + instruction +-watchdog i6300esb|ib700 + enable virtual hardware watchdog [default=none] +-watchdog-action reset|shutdown|poweroff|pause|debug|none + action when watchdog fires [default=reset] +-echr chr set terminal escape character instead of ctrl-a +-virtioconsole c + set virtio console +-show-cursor show cursor +-tb-size n set TB size +-incoming p prepare for incoming migration, listen on port p +-nodefaults don't create default devices +-chroot dir chroot to dir just before starting the VM +-runas user change to user id user just before starting the VM +-prom-env variable=value + set OpenBIOS nvram variables +-semihosting semihosting mode +-old-param old param mode +-readconfig <file> +-writeconfig <file> + read/write config file +-nodefconfig + do not load default config files at startup +-trace [events=<file>][,file=<file>] + specify tracing options +-no-kvm disable KVM hardware virtualization +-no-kvm-irqchip disable KVM kernel mode PIC/IOAPIC/LAPIC +-no-kvm-pit disable KVM kernel mode PIT +-no-kvm-pit-reinjection + disable KVM kernel mode PIT interrupt reinjection +-tdf enable guest time drift compensation +-kvm-shadow-memory MEGABYTES + allocate MEGABYTES for kvm mmu shadowing + +During emulation, the following keys are useful: +ctrl-alt-f toggle full screen +ctrl-alt-n switch to virtual console 'n' +ctrl-alt toggle mouse and keyboard grab + +When using -nographic, press 'ctrl-a h' to get some help. diff --git a/tests/qemuhelpdata/qemu-1.0.1-device b/tests/qemuhelpdata/qemu-1.0.1-device new file mode 100644 index 0000000..0bdfbbd --- /dev/null +++ b/tests/qemuhelpdata/qemu-1.0.1-device @@ -0,0 +1,138 @@ +name "AC97", bus PCI, desc "Intel 82801AA AC97 Audio" +name "isa-applesmc", bus ISA +name "ccid-card-emulated", bus ccid-bus, desc "emulated smartcard" +name "ccid-card-passthru", bus ccid-bus, desc "passthrough smartcard" +name "e1000", bus PCI, desc "Intel Gigabit Ethernet" +name "i82801", bus PCI, desc "Intel i82801 Ethernet" +name "i82562", bus PCI, desc "Intel i82562 Ethernet" +name "i82559er", bus PCI, desc "Intel i82559ER Ethernet" +name "i82559c", bus PCI, desc "Intel i82559C Ethernet" +name "i82559b", bus PCI, desc "Intel i82559B Ethernet" +name "i82559a", bus PCI, desc "Intel i82559A Ethernet" +name "i82558b", bus PCI, desc "Intel i82558B Ethernet" +name "i82558a", bus PCI, desc "Intel i82558A Ethernet" +name "i82557c", bus PCI, desc "Intel i82557C Ethernet" +name "i82557b", bus PCI, desc "Intel i82557B Ethernet" +name "i82557a", bus PCI, desc "Intel i82557A Ethernet" +name "i82551", bus PCI, desc "Intel i82551 Ethernet" +name "i82550", bus PCI, desc "Intel i82550 Ethernet" +name "ES1370", bus PCI, desc "ENSONIQ AudioPCI ES1370" +name "SUNW,fdtwo", bus System +name "sysbus-fdc", bus System +name "hda-duplex", bus HDA, desc "HDA Audio Codec, duplex" +name "hda-output", bus HDA, desc "HDA Audio Codec, output-only" +name "ich9-ahci", bus PCI, alias "ahci" +name "isa-ide", bus ISA +name "ide-drive", bus IDE, desc "virtual IDE disk or CD-ROM (legacy)" +name "ide-cd", bus IDE, desc "virtual IDE CD-ROM" +name "ide-hd", bus IDE, desc "virtual IDE disk" +name "intel-hda", bus PCI, desc "Intel HD Audio Controller" +name "ioh3420", bus PCI, desc "Intel IOH device id 3420 PCIE Root Port" +name "lsi53c895a", bus PCI, alias "lsi" +name "ne2k_isa", bus ISA +name "ne2k_pci", bus PCI +name "isa-parallel", bus ISA +name "pcnet", bus PCI +name "rtl8139", bus PCI +name "sb16", bus ISA, desc "Creative Sound Blaster 16" +name "isa-serial", bus ISA +name "usb-ccid", bus USB, desc "CCID Rev 1.1 smartcard reader" +name "ich9-usb-ehci1", bus PCI +name "usb-ehci", bus PCI +name "sysbus-ohci", bus System, desc "OHCI USB Controller" +name "pci-ohci", bus PCI, desc "Apple USB Controller" +name "ich9-usb-uhci3", bus PCI +name "ich9-usb-uhci2", bus PCI +name "ich9-usb-uhci1", bus PCI +name "vt82c686b-usb-uhci", bus PCI +name "piix4-usb-uhci", bus PCI +name "piix3-usb-uhci", bus PCI +name "isa-vga", bus ISA +name "VGA", bus PCI +name "virtconsole", bus virtio-serial-bus +name "virtserialport", bus virtio-serial-bus +name "virtio-balloon-pci", bus PCI, alias "virtio-balloon" +name "virtio-serial-pci", bus PCI, alias "virtio-serial" +name "virtio-net-pci", bus PCI, alias "virtio-net" +name "virtio-blk-pci", bus PCI, alias "virtio-blk" +name "vmware-svga", bus PCI +name "i6300esb", bus PCI +name "xio3130-downstream", bus PCI, desc "TI X3130 Downstream Port of PCI Express Switch" +name "x3130-upstream", bus PCI, desc "TI X3130 Upstream Port of PCI Express Switch" +name "scsi-disk", bus SCSI, desc "virtual SCSI disk or CD-ROM (legacy)" +name "scsi-block", bus SCSI, desc "SCSI block device passthrough" +name "scsi-cd", bus SCSI, desc "virtual SCSI CD-ROM" +name "scsi-hd", bus SCSI, desc "virtual SCSI disk" +name "scsi-generic", bus SCSI, desc "pass through generic scsi device (/dev/sg*)" +name "smbus-eeprom", bus I2C +name "usb-bt-dongle", bus USB +name "usb-kbd", bus USB +name "usb-mouse", bus USB +name "usb-tablet", bus USB +name "usb-hub", bus USB +name "usb-host", bus USB +name "usb-storage", bus USB +name "usb-net", bus USB +name "usb-braille", bus USB +name "usb-serial", bus USB +name "usb-wacom-tablet", bus USB, desc "QEMU PenPartner Tablet" +name "virtio-9p-pci", bus PCI +name "cirrus-vga", bus PCI, desc "Cirrus CLGD 54xx VGA" +name "isa-debugcon", bus ISA +name "ivshmem", bus PCI +name "qxl", bus PCI, desc "Spice QXL GPU (secondary)" +name "qxl-vga", bus PCI, desc "Spice QXL GPU (primary, vga compatible)" +name "sga", bus ISA, desc "Serial Graphics Adapter" +name "ib700", bus ISA +virtio-blk-pci.class=hex32 +virtio-blk-pci.drive=drive +virtio-blk-pci.logical_block_size=uint16 +virtio-blk-pci.physical_block_size=uint16 +virtio-blk-pci.min_io_size=uint16 +virtio-blk-pci.opt_io_size=uint32 +virtio-blk-pci.bootindex=int32 +virtio-blk-pci.discard_granularity=uint32 +virtio-blk-pci.serial=string +virtio-blk-pci.ioeventfd=on/off +virtio-blk-pci.vectors=uint32 +virtio-blk-pci.indirect_desc=on/off +virtio-blk-pci.event_idx=on/off +virtio-blk-pci.scsi=on/off +virtio-blk-pci.addr=pci-devfn +virtio-blk-pci.romfile=string +virtio-blk-pci.rombar=uint32 +virtio-blk-pci.multifunction=on/off +virtio-blk-pci.command_serr_enable=on/off +virtio-net-pci.ioeventfd=on/off +virtio-net-pci.vectors=uint32 +virtio-net-pci.indirect_desc=on/off +virtio-net-pci.event_idx=on/off +virtio-net-pci.csum=on/off +virtio-net-pci.guest_csum=on/off +virtio-net-pci.gso=on/off +virtio-net-pci.guest_tso4=on/off +virtio-net-pci.guest_tso6=on/off +virtio-net-pci.guest_ecn=on/off +virtio-net-pci.guest_ufo=on/off +virtio-net-pci.host_tso4=on/off +virtio-net-pci.host_tso6=on/off +virtio-net-pci.host_ecn=on/off +virtio-net-pci.host_ufo=on/off +virtio-net-pci.mrg_rxbuf=on/off +virtio-net-pci.status=on/off +virtio-net-pci.ctrl_vq=on/off +virtio-net-pci.ctrl_rx=on/off +virtio-net-pci.ctrl_vlan=on/off +virtio-net-pci.ctrl_rx_extra=on/off +virtio-net-pci.mac=macaddr +virtio-net-pci.vlan=vlan +virtio-net-pci.netdev=netdev +virtio-net-pci.bootindex=int32 +virtio-net-pci.x-txtimer=uint32 +virtio-net-pci.x-txburst=int32 +virtio-net-pci.tx=string +virtio-net-pci.addr=pci-devfn +virtio-net-pci.romfile=string +virtio-net-pci.rombar=uint32 +virtio-net-pci.multifunction=on/off +virtio-net-pci.command_serr_enable=on/off diff --git a/tests/qemuhelptest.c b/tests/qemuhelptest.c index 05fdc4d..e6ad8b6 100644 --- a/tests/qemuhelptest.c +++ b/tests/qemuhelptest.c @@ -675,6 +675,79 @@ mymain(void) QEMU_CAPS_CPU_HOST, QEMU_CAPS_FSDEV_WRITEOUT, QEMU_CAPS_SCSI_BLOCK); + DO_TEST("qemu-1.0.1", 1000001, 1, 0, + QEMU_CAPS_VNC_COLON, + QEMU_CAPS_NO_REBOOT, + QEMU_CAPS_DRIVE, + QEMU_CAPS_NAME, + QEMU_CAPS_UUID, + QEMU_CAPS_MIGRATE_QEMU_TCP, + QEMU_CAPS_MIGRATE_QEMU_EXEC, + QEMU_CAPS_DRIVE_CACHE_V2, + QEMU_CAPS_DRIVE_CACHE_UNSAFE, + QEMU_CAPS_DRIVE_FORMAT, + QEMU_CAPS_DRIVE_SERIAL, + QEMU_CAPS_XEN_DOMID, + QEMU_CAPS_DRIVE_READONLY, + QEMU_CAPS_VGA, + QEMU_CAPS_0_10, + QEMU_CAPS_MEM_PATH, + QEMU_CAPS_SDL, + QEMU_CAPS_MIGRATE_QEMU_UNIX, + QEMU_CAPS_CHARDEV, + QEMU_CAPS_ENABLE_KVM, + QEMU_CAPS_MONITOR_JSON, + QEMU_CAPS_BALLOON, + QEMU_CAPS_DEVICE, + QEMU_CAPS_SMP_TOPOLOGY, + QEMU_CAPS_NETDEV, + QEMU_CAPS_RTC, + QEMU_CAPS_VHOST_NET, + QEMU_CAPS_NO_HPET, + QEMU_CAPS_NODEFCONFIG, + QEMU_CAPS_BOOT_MENU, + QEMU_CAPS_FSDEV, + QEMU_CAPS_NAME_PROCESS, + QEMU_CAPS_SMBIOS_TYPE, + QEMU_CAPS_VGA_QXL, + QEMU_CAPS_SPICE, + QEMU_CAPS_VGA_NONE, + QEMU_CAPS_MIGRATE_QEMU_FD, + QEMU_CAPS_BOOTINDEX, + QEMU_CAPS_HDA_DUPLEX, + QEMU_CAPS_DRIVE_AIO, + QEMU_CAPS_CCID_EMULATED, + QEMU_CAPS_CCID_PASSTHRU, + QEMU_CAPS_CHARDEV_SPICEVMC, + QEMU_CAPS_VIRTIO_TX_ALG, + QEMU_CAPS_DEVICE_QXL_VGA, + QEMU_CAPS_PCI_MULTIFUNCTION, + QEMU_CAPS_VIRTIO_IOEVENTFD, + QEMU_CAPS_SGA, + QEMU_CAPS_VIRTIO_BLK_EVENT_IDX, + QEMU_CAPS_VIRTIO_NET_EVENT_IDX, + QEMU_CAPS_DRIVE_CACHE_DIRECTSYNC, + QEMU_CAPS_PIIX3_USB_UHCI, + QEMU_CAPS_PIIX4_USB_UHCI, + QEMU_CAPS_USB_EHCI, + QEMU_CAPS_ICH9_USB_EHCI1, + QEMU_CAPS_VT82C686B_USB_UHCI, + QEMU_CAPS_PCI_OHCI, + QEMU_CAPS_USB_HUB, + QEMU_CAPS_NO_SHUTDOWN, + QEMU_CAPS_PCI_ROMBAR, + QEMU_CAPS_ICH9_AHCI, + QEMU_CAPS_NO_ACPI, + QEMU_CAPS_FSDEV_READONLY, + QEMU_CAPS_VIRTIO_BLK_SCSI, + QEMU_CAPS_VIRTIO_BLK_SG_IO, + QEMU_CAPS_CPU_HOST, + QEMU_CAPS_FSDEV_WRITEOUT, + QEMU_CAPS_SCSI_BLOCK, + QEMU_CAPS_VNET_HDR, + QEMU_CAPS_KVM, + QEMU_CAPS_NO_KVM_PIT, + QEMU_CAPS_TDF); return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE; } -- 1.7.11.4

On 25.09.2012 10:58, Dmitry Fleytman wrote:
This patch fixes incorrect help screen parsing for QEMU 1.0.1 package Version line changed from QEMU emulator version 1.0 (qemu-kvm-1.0), Copyright (c) 2003-2008 Fabrice Bellard To QEMU emulator version 1.0,1 (qemu-kvm-1.0.1), Copyright (c) 2003-2008 Fabrice Bellard
This seems like a bug to me. If it is a micro version number, why is it delimited with comma instead of dot? If it is not a micro version number, can we threat it like it is? BTW: what distro is this so I can chase this down to see if it's a bug or not? Michal

On Tue, Sep 25, 2012 at 02:49:00PM +0200, Michal Privoznik wrote:
On 25.09.2012 10:58, Dmitry Fleytman wrote:
This patch fixes incorrect help screen parsing for QEMU 1.0.1 package Version line changed from QEMU emulator version 1.0 (qemu-kvm-1.0), Copyright (c) 2003-2008 Fabrice Bellard To QEMU emulator version 1.0,1 (qemu-kvm-1.0.1), Copyright (c) 2003-2008 Fabrice Bellard
This seems like a bug to me. If it is a micro version number, why is it delimited with comma instead of dot? If it is not a micro version number, can we threat it like it is?
I agree, it smells very much like a QEMU/distro bug to me. Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|

On 09/25/2012 06:54 AM, Daniel P. Berrange wrote:
On Tue, Sep 25, 2012 at 02:49:00PM +0200, Michal Privoznik wrote:
On 25.09.2012 10:58, Dmitry Fleytman wrote:
This patch fixes incorrect help screen parsing for QEMU 1.0.1 package Version line changed from QEMU emulator version 1.0 (qemu-kvm-1.0), Copyright (c) 2003-2008 Fabrice Bellard To QEMU emulator version 1.0,1 (qemu-kvm-1.0.1), Copyright (c) 2003-2008 Fabrice Bellard
This seems like a bug to me. If it is a micro version number, why is it delimited with comma instead of dot? If it is not a micro version number, can we threat it like it is?
I agree, it smells very much like a QEMU/distro bug to me.
It is an upstream bug: https://lists.gnu.org/archive/html/qemu-devel/2012-02/msg02527.html Distros should probably be backporting that particular patch, but there's still the question of whether we should deal with it in libvirt because it is upstream. -- Eric Blake eblake@redhat.com +1-919-301-3266 Libvirt virtualization library http://libvirt.org

On Tue, Sep 25, 2012 at 10:57:23AM -0600, Eric Blake wrote:
On 09/25/2012 06:54 AM, Daniel P. Berrange wrote:
On Tue, Sep 25, 2012 at 02:49:00PM +0200, Michal Privoznik wrote:
On 25.09.2012 10:58, Dmitry Fleytman wrote:
This patch fixes incorrect help screen parsing for QEMU 1.0.1 package Version line changed from QEMU emulator version 1.0 (qemu-kvm-1.0), Copyright (c) 2003-2008 Fabrice Bellard To QEMU emulator version 1.0,1 (qemu-kvm-1.0.1), Copyright (c) 2003-2008 Fabrice Bellard
This seems like a bug to me. If it is a micro version number, why is it delimited with comma instead of dot? If it is not a micro version number, can we threat it like it is?
I agree, it smells very much like a QEMU/distro bug to me.
It is an upstream bug:
https://lists.gnu.org/archive/html/qemu-devel/2012-02/msg02527.html
Distros should probably be backporting that particular patch, but there's still the question of whether we should deal with it in libvirt because it is upstream.
Well it is a bug on only one branch of upstream, that was promptly fixed, so I still don't think we should complicate libvirt by dealing with it. It is trivial for QEMU maintainers to fix Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|

On Tue, Sep 25, 2012 at 12:01 PM, Daniel P. Berrange <berrange@redhat.com> wrote:
On Tue, Sep 25, 2012 at 10:57:23AM -0600, Eric Blake wrote:
On 09/25/2012 06:54 AM, Daniel P. Berrange wrote:
On Tue, Sep 25, 2012 at 02:49:00PM +0200, Michal Privoznik wrote:
On 25.09.2012 10:58, Dmitry Fleytman wrote:
This patch fixes incorrect help screen parsing for QEMU 1.0.1 package Version line changed from QEMU emulator version 1.0 (qemu-kvm-1.0), Copyright (c) 2003-2008 Fabrice Bellard To QEMU emulator version 1.0,1 (qemu-kvm-1.0.1), Copyright (c) 2003-2008 Fabrice Bellard
This seems like a bug to me. If it is a micro version number, why is it delimited with comma instead of dot? If it is not a micro version number, can we threat it like it is?
I agree, it smells very much like a QEMU/distro bug to me.
It is an upstream bug:
https://lists.gnu.org/archive/html/qemu-devel/2012-02/msg02527.html
Distros should probably be backporting that particular patch, but there's still the question of whether we should deal with it in libvirt because it is upstream.
Well it is a bug on only one branch of upstream, that was promptly fixed, so I still don't think we should complicate libvirt by dealing with it. It is trivial for QEMU maintainers to fix
Daniel --
FWIW, the raw tarball from qemu.org still contains the bug. They didn't reissue the tarball. First commit on the list here: http://wiki.qemu.org/ChangeLog/1.0 -- Doug Goldstein

On 25.09.2012 19:08, Doug Goldstein wrote:
On Tue, Sep 25, 2012 at 12:01 PM, Daniel P. Berrange <berrange@redhat.com> wrote:
On Tue, Sep 25, 2012 at 10:57:23AM -0600, Eric Blake wrote:
On 09/25/2012 06:54 AM, Daniel P. Berrange wrote:
On Tue, Sep 25, 2012 at 02:49:00PM +0200, Michal Privoznik wrote:
On 25.09.2012 10:58, Dmitry Fleytman wrote:
This patch fixes incorrect help screen parsing for QEMU 1.0.1 package Version line changed from QEMU emulator version 1.0 (qemu-kvm-1.0), Copyright (c) 2003-2008 Fabrice Bellard To QEMU emulator version 1.0,1 (qemu-kvm-1.0.1), Copyright (c) 2003-2008 Fabrice Bellard
This seems like a bug to me. If it is a micro version number, why is it delimited with comma instead of dot? If it is not a micro version number, can we threat it like it is?
I agree, it smells very much like a QEMU/distro bug to me.
It is an upstream bug:
https://lists.gnu.org/archive/html/qemu-devel/2012-02/msg02527.html
Distros should probably be backporting that particular patch, but there's still the question of whether we should deal with it in libvirt because it is upstream.
Well it is a bug on only one branch of upstream, that was promptly fixed, so I still don't think we should complicate libvirt by dealing with it. It is trivial for QEMU maintainers to fix
Daniel --
FWIW, the raw tarball from qemu.org still contains the bug. They didn't reissue the tarball. First commit on the list here: http://wiki.qemu.org/ChangeLog/1.0
[CC'ing QEMU devel list] Maybe QEMU guys can reissue the tarball since Fedora (and probably other distros as well) is using this tarball when building a package? Or is it distro's business to backport the patch? Michal

Michal Privoznik <mprivozn@redhat.com> writes:
On 25.09.2012 19:08, Doug Goldstein wrote:
On Tue, Sep 25, 2012 at 12:01 PM, Daniel P. Berrange <berrange@redhat.com> wrote:
On Tue, Sep 25, 2012 at 10:57:23AM -0600, Eric Blake wrote:
On 09/25/2012 06:54 AM, Daniel P. Berrange wrote:
On Tue, Sep 25, 2012 at 02:49:00PM +0200, Michal Privoznik wrote:
On 25.09.2012 10:58, Dmitry Fleytman wrote: > This patch fixes incorrect help screen parsing for QEMU 1.0.1 package > Version line changed from > QEMU emulator version 1.0 (qemu-kvm-1.0), Copyright (c) 2003-2008 Fabrice Bellard > To > QEMU emulator version 1.0,1 (qemu-kvm-1.0.1), Copyright (c) 2003-2008 Fabrice Bellard
This seems like a bug to me. If it is a micro version number, why is it delimited with comma instead of dot? If it is not a micro version number, can we threat it like it is?
I agree, it smells very much like a QEMU/distro bug to me.
It is an upstream bug:
https://lists.gnu.org/archive/html/qemu-devel/2012-02/msg02527.html
Distros should probably be backporting that particular patch, but there's still the question of whether we should deal with it in libvirt because it is upstream.
Well it is a bug on only one branch of upstream, that was promptly fixed, so I still don't think we should complicate libvirt by dealing with it. It is trivial for QEMU maintainers to fix
Daniel --
FWIW, the raw tarball from qemu.org still contains the bug. They didn't reissue the tarball. First commit on the list here: http://wiki.qemu.org/ChangeLog/1.0
[CC'ing QEMU devel list]
Maybe QEMU guys can reissue the tarball since Fedora (and probably other distros as well) is using this tarball when building a package? Or is it distro's business to backport the patch?
We released a qemu-1.0.1-1.tar.bz2 that contained the fixed VERSION file. Regards, Anthony Liguori
Michal

On 26.09.2012 22:46, Anthony Liguori wrote:
Michal Privoznik <mprivozn@redhat.com> writes:
On 25.09.2012 19:08, Doug Goldstein wrote:
On Tue, Sep 25, 2012 at 12:01 PM, Daniel P. Berrange <berrange@redhat.com> wrote:
On Tue, Sep 25, 2012 at 10:57:23AM -0600, Eric Blake wrote:
On 09/25/2012 06:54 AM, Daniel P. Berrange wrote:
On Tue, Sep 25, 2012 at 02:49:00PM +0200, Michal Privoznik wrote: > On 25.09.2012 10:58, Dmitry Fleytman wrote: >> This patch fixes incorrect help screen parsing for QEMU 1.0.1 package >> Version line changed from >> QEMU emulator version 1.0 (qemu-kvm-1.0), Copyright (c) 2003-2008 Fabrice Bellard >> To >> QEMU emulator version 1.0,1 (qemu-kvm-1.0.1), Copyright (c) 2003-2008 Fabrice Bellard > > This seems like a bug to me. If it is a micro version number, why is it > delimited with comma instead of dot? If it is not a micro version > number, can we threat it like it is?
I agree, it smells very much like a QEMU/distro bug to me.
It is an upstream bug:
https://lists.gnu.org/archive/html/qemu-devel/2012-02/msg02527.html
Distros should probably be backporting that particular patch, but there's still the question of whether we should deal with it in libvirt because it is upstream.
Well it is a bug on only one branch of upstream, that was promptly fixed, so I still don't think we should complicate libvirt by dealing with it. It is trivial for QEMU maintainers to fix
Daniel --
FWIW, the raw tarball from qemu.org still contains the bug. They didn't reissue the tarball. First commit on the list here: http://wiki.qemu.org/ChangeLog/1.0
[CC'ing QEMU devel list]
Maybe QEMU guys can reissue the tarball since Fedora (and probably other distros as well) is using this tarball when building a package? Or is it distro's business to backport the patch?
We released a qemu-1.0.1-1.tar.bz2 that contained the fixed VERSION file.
Regards,
Anthony Liguori
Ah, I didn't know that. Maybe it's worth updating [1] then, isn't it? Regards Michal 1: http://wiki.qemu.org/Download

On 09/25/2012 11:01 AM, Daniel P. Berrange wrote:
I agree, it smells very much like a QEMU/distro bug to me.
It is an upstream bug:
https://lists.gnu.org/archive/html/qemu-devel/2012-02/msg02527.html
Distros should probably be backporting that particular patch, but there's still the question of whether we should deal with it in libvirt because it is upstream.
Well it is a bug on only one branch of upstream, that was promptly fixed, so I still don't think we should complicate libvirt by dealing with it. It is trivial for QEMU maintainers to fix
Meanwhile, I'm not opposed to these patches. It may be a trivial fix for distro packagers, but not so obvious for people building qemu from scratch. However, I have to wonder if src/util/util.c:virParseVersionString needs to be taught to handle comma, and also whether qemuCapsParseHelpStr should reuse virParseVersionString rather than open-coding its own parser. -- Eric Blake eblake@redhat.com +1-919-301-3266 Libvirt virtualization library http://libvirt.org

Hi, Michal, This is qemu 1.0.1 rpm from fc17. Sent from my iPad On Sep 25, 2012, at 2:49 PM, Michal Privoznik <mprivozn@redhat.com> wrote:
On 25.09.2012 10:58, Dmitry Fleytman wrote:
This patch fixes incorrect help screen parsing for QEMU 1.0.1 package Version line changed from QEMU emulator version 1.0 (qemu-kvm-1.0), Copyright (c) 2003-2008 Fabrice Bellard To QEMU emulator version 1.0,1 (qemu-kvm-1.0.1), Copyright (c) 2003-2008 Fabrice Bellard
This seems like a bug to me. If it is a micro version number, why is it delimited with comma instead of dot? If it is not a micro version number, can we threat it like it is?
BTW: what distro is this so I can chase this down to see if it's a bug or not?
Michal

On 25.09.2012 15:01, Dmitry Fleytman wrote:
Hi, Michal,
This is qemu 1.0.1 rpm from fc17.
Yup, it's a bug. A typo to be exact. Here is the build: http://koji.fedoraproject.org/koji/buildinfo?buildID=344872 and if you'd download and unpack .src.rpm and subsequently qemu-kvm-1.0.1.tar.gz you'll find VERSION file. Since everything (spec file, archive name, etc.) but VERSION file says 1.0.1 I assume it's a typo and hence the bug. I must admit very tricky one, though. [CC'ing Cole who made the build so maybe he can spin another one] Michal
Sent from my iPad
On Sep 25, 2012, at 2:49 PM, Michal Privoznik <mprivozn@redhat.com> wrote:
On 25.09.2012 10:58, Dmitry Fleytman wrote:
This patch fixes incorrect help screen parsing for QEMU 1.0.1 package Version line changed from QEMU emulator version 1.0 (qemu-kvm-1.0), Copyright (c) 2003-2008 Fabrice Bellard To QEMU emulator version 1.0,1 (qemu-kvm-1.0.1), Copyright (c) 2003-2008 Fabrice Bellard
This seems like a bug to me. If it is a micro version number, why is it delimited with comma instead of dot? If it is not a micro version number, can we threat it like it is?
BTW: what distro is this so I can chase this down to see if it's a bug or not?
Michal
-- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list

Since this rpm released already, should fix be made anyway? Should it just treat that comma as a dot (current fix is a little bit more sophisticated)? On Tue, Sep 25, 2012 at 3:45 PM, Michal Privoznik <mprivozn@redhat.com>wrote:
On 25.09.2012 15:01, Dmitry Fleytman wrote:
Hi, Michal,
This is qemu 1.0.1 rpm from fc17.
Yup, it's a bug. A typo to be exact.
Here is the build:
http://koji.fedoraproject.org/koji/buildinfo?buildID=344872
and if you'd download and unpack .src.rpm and subsequently qemu-kvm-1.0.1.tar.gz you'll find VERSION file. Since everything (spec file, archive name, etc.) but VERSION file says 1.0.1 I assume it's a typo and hence the bug. I must admit very tricky one, though.
[CC'ing Cole who made the build so maybe he can spin another one]
Michal
Sent from my iPad
On Sep 25, 2012, at 2:49 PM, Michal Privoznik <mprivozn@redhat.com> wrote:
On 25.09.2012 10:58, Dmitry Fleytman wrote:
This patch fixes incorrect help screen parsing for QEMU 1.0.1 package Version line changed from QEMU emulator version 1.0 (qemu-kvm-1.0), Copyright (c) 2003-2008 Fabrice Bellard To QEMU emulator version 1.0,1 (qemu-kvm-1.0.1), Copyright (c) 2003-2008 Fabrice Bellard
This seems like a bug to me. If it is a micro version number, why is it delimited with comma instead of dot? If it is not a micro version number, can we threat it like it is?
BTW: what distro is this so I can chase this down to see if it's a bug or not?
Michal
-- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
-- Dmitry Fleytman Technology Expert and Consultant, Daynix Computing Ltd. Cell: +972-54-2819481 Skype: dmitry.fleytman

On Tue, Sep 25, 2012 at 04:03:35PM +0200, Dmitry Fleytman wrote:
Since this rpm released already, should fix be made anyway?
No, the QEMU update should be unpushed, or obsoleted by a new one that works. Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|

Ok, I see :) Never mind. On Tue, Sep 25, 2012 at 4:06 PM, Daniel P. Berrange <berrange@redhat.com>wrote:
On Tue, Sep 25, 2012 at 04:03:35PM +0200, Dmitry Fleytman wrote:
Since this rpm released already, should fix be made anyway?
No, the QEMU update should be unpushed, or obsoleted by a new one that works.
Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/:| |: http://libvirt.org -o- http://virt-manager.org:| |: http://autobuild.org -o- http://search.cpan.org/~danberr/:| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc:|
-- Dmitry Fleytman Technology Expert and Consultant, Daynix Computing Ltd. Cell: +972-54-2819481 Skype: dmitry.fleytman

On Tue, Sep 25, 2012 at 7:49 AM, Michal Privoznik <mprivozn@redhat.com> wrote:
On 25.09.2012 10:58, Dmitry Fleytman wrote:
This patch fixes incorrect help screen parsing for QEMU 1.0.1 package Version line changed from QEMU emulator version 1.0 (qemu-kvm-1.0), Copyright (c) 2003-2008 Fabrice Bellard To QEMU emulator version 1.0,1 (qemu-kvm-1.0.1), Copyright (c) 2003-2008 Fabrice Bellard
This seems like a bug to me. If it is a micro version number, why is it delimited with comma instead of dot? If it is not a micro version number, can we threat it like it is?
BTW: what distro is this so I can chase this down to see if it's a bug or not?
Michal
--
Upstream had a bug where they released with a comma instead of a period. The unfortunate thing is that the comma is in the wild. They accepted a patch afterwards to change it back to a period. That being said, I believe this worked in libvirt master since I actually tried it both ways when I contacted upstream QEMU about this several months back. Its possible though that commits since I've tried it have broken it. -- Doug Goldstein
participants (6)
-
Anthony Liguori
-
Daniel P. Berrange
-
Dmitry Fleytman
-
Doug Goldstein
-
Eric Blake
-
Michal Privoznik