From 141f42da34ae1dd9a8a16cd44559ce5be5c4ecd35e70559815b463fe2f64b3c3 Mon Sep 17 00:00:00 2001 From: OBS User buildservice-autocommit Date: Tue, 6 Dec 2011 17:26:09 +0000 Subject: [PATCH 1/5] Updating link to change in openSUSE:Factory/libvirt revision 92.0 OBS-URL: https://build.opensuse.org/package/show/Virtualization/libvirt?expand=0&rev=0c32160dd9a53f78a472ab00a2f00263 --- libvirt.spec | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/libvirt.spec b/libvirt.spec index 3c97d0d..66e3990 100644 --- a/libvirt.spec +++ b/libvirt.spec @@ -309,7 +309,7 @@ BuildRequires: systemtap-sdt-devel Name: libvirt Url: http://libvirt.org/ -License: LGPLv2.1+ +License: LGPL-2.1+ Group: Development/Libraries/C and C++ AutoReqProv: yes Version: 0.9.7 @@ -416,7 +416,7 @@ Authors: Karel Zak %package client -License: LGPLv2.1+ +License: LGPL-2.1+ Summary: Client side library and utilities of the libvirt library Group: Development/Libraries/C and C++ Requires: readline @@ -443,7 +443,7 @@ Authors: Karel Zak %package devel -License: LGPLv2.1+ +License: LGPL-2.1+ Summary: A C toolkit to interact with the virtualization capabilities of Linux Group: Development/Libraries/C and C++ Requires: %{name}-client = %{version}-%{release} libxml2-devel @@ -465,7 +465,7 @@ Authors: Karel Zak %package doc -License: LGPLv2.1+ +License: LGPL-2.1+ Summary: A C toolkit to interact with the virtualization capabilities of Linux Group: Development/Libraries/C and C++ Requires: %{name}-client = %{version}-%{release} @@ -485,7 +485,7 @@ Authors: %if %{with_python} %package python -License: LGPLv2.1+ +License: LGPL-2.1+ Summary: A C toolkit to interact with the virtualization capabilities of Linux Group: Development/Libraries/C and C++ Requires: %{name}-client = %{version}-%{release} From 3231a86fc76b5a846246d6fba9f448cd5f291820f71b0c87ed9546d5d7ba0983 Mon Sep 17 00:00:00 2001 From: James Fehlig Date: Wed, 14 Dec 2011 04:48:31 +0000 Subject: [PATCH 2/5] - Add support for QEMU 1.0 dd8e8956-qemu-1.0.patch bnc#736569 OBS-URL: https://build.opensuse.org/package/show/Virtualization/libvirt?expand=0&rev=182 --- dd8e8956-qemu-1.0.patch | 507 ++++++++++++++++++++++++++++++++++++++++ libvirt.changes | 7 + libvirt.spec | 2 + 3 files changed, 516 insertions(+) create mode 100644 dd8e8956-qemu-1.0.patch diff --git a/dd8e8956-qemu-1.0.patch b/dd8e8956-qemu-1.0.patch new file mode 100644 index 0000000..e627c13 --- /dev/null +++ b/dd8e8956-qemu-1.0.patch @@ -0,0 +1,507 @@ +commit dd8e8956060f38b084d581ed63f934c3d8202071 +Author: Jiri Denemark +Date: Fri Dec 2 21:20:15 2011 +0100 + + Add support for QEMU 1.0 + +Index: libvirt-0.9.7/src/qemu/qemu_capabilities.c +=================================================================== +--- libvirt-0.9.7.orig/src/qemu/qemu_capabilities.c ++++ libvirt-0.9.7/src/qemu/qemu_capabilities.c +@@ -1141,14 +1141,17 @@ int qemuCapsParseHelpStr(const char *qem + ++p; + + minor = virParseNumber(&p); +- if (minor == -1 || *p != '.') ++ if (minor == -1) + goto fail; + +- ++p; +- +- micro = virParseNumber(&p); +- if (micro == -1) +- goto fail; ++ if (*p != '.') { ++ micro = 0; ++ } else { ++ ++p; ++ micro = virParseNumber(&p); ++ if (micro == -1) ++ goto fail; ++ } + + SKIP_BLANKS(p); + +Index: libvirt-0.9.7/tests/qemuhelpdata/qemu-1.0 +=================================================================== +--- /dev/null ++++ libvirt-0.9.7/tests/qemuhelpdata/qemu-1.0 +@@ -0,0 +1,252 @@ ++QEMU emulator version 1.0, 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 parameter for item of type ++ 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=[,] ++ 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 enable spice ++-portrait rotate graphical output 90 deg left (only PXA LCD) ++-rotate 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 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 ++-writeconfig ++ read/write config file ++-nodefconfig ++ do not load default config files at startup ++-trace [events=][,file=] ++ specify tracing options ++ ++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. +Index: libvirt-0.9.7/tests/qemuhelpdata/qemu-1.0-device +=================================================================== +--- /dev/null ++++ libvirt-0.9.7/tests/qemuhelpdata/qemu-1.0-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 +Index: libvirt-0.9.7/tests/qemuhelptest.c +=================================================================== +--- libvirt-0.9.7.orig/tests/qemuhelptest.c ++++ libvirt-0.9.7/tests/qemuhelptest.c +@@ -571,6 +571,68 @@ mymain(void) + QEMU_CAPS_USB_HUB, + QEMU_CAPS_NO_SHUTDOWN, + QEMU_CAPS_PCI_ROMBAR); ++ DO_TEST("qemu-1.0", 1000000, 0, 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); + + return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE; + } diff --git a/libvirt.changes b/libvirt.changes index e70ad9f..465efda 100644 --- a/libvirt.changes +++ b/libvirt.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Tue Dec 13 21:37:19 MST 2011 - jfehlig@suse.com + +- Add support for QEMU 1.0 + dd8e8956-qemu-1.0.patch + bnc#736569 + ------------------------------------------------------------------- Wed Nov 30 09:53:25 MST 2011 - jfehlig@suse.com diff --git a/libvirt.spec b/libvirt.spec index 66e3990..947f9cb 100644 --- a/libvirt.spec +++ b/libvirt.spec @@ -382,6 +382,7 @@ Source99: baselibs.conf # Upstream patches Patch0: d47ab3fe-polkit0.patch Patch1: a495365d-sexpr-empty-str.patch +Patch2: dd8e8956-qemu-1.0.patch # Need to go upstream Patch100: xen-name-for-devid.patch Patch101: clone.patch @@ -508,6 +509,7 @@ Authors: %setup -q %patch0 -p1 %patch1 -p1 +%patch2 -p1 %patch100 -p1 %patch101 %patch102 -p1 From 313e7cf2d58bb46c76178de0108490eb50dd17cff99723226cf985f0a9be5cd3 Mon Sep 17 00:00:00 2001 From: James Fehlig Date: Thu, 15 Dec 2011 01:23:04 +0000 Subject: [PATCH 3/5] Update to libvirt 0.9.8 OBS-URL: https://build.opensuse.org/package/show/Virtualization/libvirt?expand=0&rev=183 --- 10404671-systemd-build-fix.patch | 210 +++++++++++++ 478a4d07-systemd-build-fix.patch | 81 +++++ AF_PACKET.patch | 26 ++ a495365d-sexpr-empty-str.patch | 46 --- ae1232b2-CVE-2011-4600.patch | 55 ++++ d47ab3fe-polkit0.patch | 25 -- dd8e8956-qemu-1.0.patch | 507 ------------------------------- install-apparmor-profiles.patch | 28 +- libvirt-0.9.7.tar.bz2 | 3 - libvirt-0.9.8.tar.bz2 | 3 + libvirt-suse-netcontrol.patch | 48 +-- libvirt.changes | 22 ++ libvirt.spec | 127 +++++++- libvirtd-defaults.patch | 16 +- relax-qemu-usergroup-check.patch | 6 +- suse-qemu-conf.patch | 6 +- use-init-script-redhat.patch | 111 ++++--- xen-domctl-ver8.patch | 14 +- xen-name-for-devid.patch | 6 +- xen-pv-cdrom.patch | 6 +- 20 files changed, 645 insertions(+), 701 deletions(-) create mode 100644 10404671-systemd-build-fix.patch create mode 100644 478a4d07-systemd-build-fix.patch create mode 100644 AF_PACKET.patch delete mode 100644 a495365d-sexpr-empty-str.patch create mode 100644 ae1232b2-CVE-2011-4600.patch delete mode 100644 d47ab3fe-polkit0.patch delete mode 100644 dd8e8956-qemu-1.0.patch delete mode 100644 libvirt-0.9.7.tar.bz2 create mode 100644 libvirt-0.9.8.tar.bz2 diff --git a/10404671-systemd-build-fix.patch b/10404671-systemd-build-fix.patch new file mode 100644 index 0000000..bfc8073 --- /dev/null +++ b/10404671-systemd-build-fix.patch @@ -0,0 +1,210 @@ +commit 104046712f10106574f08661a395891dc5c5ca3d +Author: Eric Blake +Date: Fri Dec 9 11:06:19 2011 -0700 + + build: follow directory install conventions + + Commit 4d9e51f6 fixed a 'make uninstall' failure, but failed + to follow other conventions already present in src/Makefile.am. + In particular, we prefer MKDIR_P over mkdir -p, and should + have a matching rmdir during uninstall for every directory + created during install (the idea being that uninstall in a + DESTDIR should be clean, while installation in the final + system should not fail with non-empty directories left behind). + + * tools/Makefile.am (install-sysconfig, install-initscript) + (install-systemd): Use MKDIR_P. + (uninstall-sysconfig, uninstall-initscript, uninstall-systemd): + Also remove directories. + * daemon/Makefile.am (install-data-local, install-data-polkit) + (install-logrotate, install-sysconfig, install-sysctl) + (install-init-redhat, install-init-upstart, install-init-systemd) + (install-data-sasl): Use MKDIR_P. + (uninstall-data-polkit, uninstall-sysconfig, uninstall-sysctl) + (uninstall-init-redhat, uninstall-init-upstart) + (uninstall-init-systemd): Also remove directory. + (uninstall-logrotate): New rule. + (uninstall-local): Add uninstall-logrotate. + +Index: libvirt-0.9.8/daemon/Makefile.am +=================================================================== +--- libvirt-0.9.8.orig/daemon/Makefile.am ++++ libvirt-0.9.8/daemon/Makefile.am +@@ -173,23 +173,24 @@ endif + install-data-local: install-init-redhat install-init-systemd install-init-upstart \ + install-data-sasl install-data-polkit \ + install-logrotate install-sysctl +- mkdir -p $(DESTDIR)$(localstatedir)/log/libvirt +- mkdir -p $(DESTDIR)$(localstatedir)/run/libvirt +- mkdir -p $(DESTDIR)$(localstatedir)/lib/libvirt ++ $(MKDIR_P) $(DESTDIR)$(localstatedir)/log/libvirt \ ++ $(DESTDIR)$(localstatedir)/run/libvirt \ ++ $(DESTDIR)$(localstatedir)/lib/libvirt + + uninstall-local:: uninstall-init-redhat uninstall-init-systemd uninstall-init-upstart \ + uninstall-data-sasl uninstall-data-polkit \ +- uninstall-sysctl ++ uninstall-logrotate uninstall-sysctl + rmdir $(DESTDIR)$(localstatedir)/log/libvirt || : + rmdir $(DESTDIR)$(localstatedir)/run/libvirt || : + rmdir $(DESTDIR)$(localstatedir)/lib/libvirt || : + + if HAVE_POLKIT + install-data-polkit:: +- mkdir -p $(DESTDIR)$(policydir) ++ $(MKDIR_P) $(DESTDIR)$(policydir) + $(INSTALL_DATA) $(srcdir)/$(policyfile) $(DESTDIR)$(policydir)/org.libvirt.unix.policy + uninstall-data-polkit:: + rm -f $(DESTDIR)$(policydir)/org.libvirt.unix.policy ++ rmdir $(DESTDIR)$(policydir) || : + else + install-data-polkit:: + uninstall-data-polkit:: +@@ -228,41 +229,54 @@ libvirtd.uml.logrotate: libvirtd.uml.log + mv $@-t $@ + + install-logrotate: $(LOGROTATE_CONFS) +- mkdir -p $(DESTDIR)$(localstatedir)/log/libvirt/qemu/ +- mkdir -p $(DESTDIR)$(localstatedir)/log/libvirt/lxc/ +- mkdir -p $(DESTDIR)$(localstatedir)/log/libvirt/uml/ +- mkdir -p $(DESTDIR)$(sysconfdir)/logrotate.d/ ++ $(MKDIR_P) $(DESTDIR)$(localstatedir)/log/libvirt/qemu/ \ ++ $(DESTDIR)$(localstatedir)/log/libvirt/lxc/ \ ++ $(DESTDIR)$(localstatedir)/log/libvirt/uml/ \ ++ $(DESTDIR)$(sysconfdir)/logrotate.d/ + $(INSTALL_DATA) libvirtd.logrotate $(DESTDIR)$(sysconfdir)/logrotate.d/libvirtd + $(INSTALL_DATA) libvirtd.qemu.logrotate $(DESTDIR)$(sysconfdir)/logrotate.d/libvirtd.qemu + $(INSTALL_DATA) libvirtd.lxc.logrotate $(DESTDIR)$(sysconfdir)/logrotate.d/libvirtd.lxc + $(INSTALL_DATA) libvirtd.uml.logrotate $(DESTDIR)$(sysconfdir)/logrotate.d/libvirtd.uml + ++uninstall-logrotate: ++ rm -f $(DESTDIR)$(sysconfdir)/logrotate.d/libvirtd \ ++ $(DESTDIR)$(sysconfdir)/logrotate.d/libvirtd.qemu \ ++ $(DESTDIR)$(sysconfdir)/logrotate.d/libvirtd.lxc \ ++ $(DESTDIR)$(sysconfdir)/logrotate.d/libvirtd.uml ++ rmdir $(DESTDIR)$(localstatedir)/log/libvirt/qemu || : ++ rmdir $(DESTDIR)$(localstatedir)/log/libvirt/lxc || : ++ rmdir $(DESTDIR)$(localstatedir)/log/libvirt/uml || : ++ rmdir $(DESTDIR)$(sysconfdir)/logrotate.d || : ++ + install-sysconfig: +- mkdir -p $(DESTDIR)$(sysconfdir)/sysconfig ++ $(MKDIR_P) $(DESTDIR)$(sysconfdir)/sysconfig + $(INSTALL_DATA) $(srcdir)/libvirtd.sysconf \ + $(DESTDIR)$(sysconfdir)/sysconfig/libvirtd + uninstall-sysconfig: + rm -f $(DESTDIR)$(sysconfdir)/sysconfig/libvirtd ++ rmdir $(DESTDIR)$(sysconfdir)/sysconfig || : + + install-sysctl: +- mkdir -p $(DESTDIR)$(sysconfdir)/sysctl.d ++ $(MKDIR_P) $(DESTDIR)$(sysconfdir)/sysctl.d + $(INSTALL_DATA) $(srcdir)/libvirtd.sysctl \ + $(DESTDIR)$(sysconfdir)/sysctl.d/libvirtd + + uninstall-sysctl: + rm -f $(DESTDIR)$(sysconfdir)/sysctl.d/libvirtd ++ rmdir $(DESTDIR)$(sysconfdir)/sysctl.d || : + + if LIBVIRT_INIT_SCRIPT_RED_HAT + + BUILT_SOURCES += libvirtd.init + + install-init-redhat: install-sysconfig libvirtd.init +- mkdir -p $(DESTDIR)$(sysconfdir)/rc.d/init.d ++ $(MKDIR_P) $(DESTDIR)$(sysconfdir)/rc.d/init.d + $(INSTALL_SCRIPT) libvirtd.init \ + $(DESTDIR)$(sysconfdir)/rc.d/init.d/libvirtd + + uninstall-init-redhat: uninstall-sysconfig + rm -f $(DESTDIR)$(sysconfdir)/rc.d/init.d/libvirtd ++ rmdir $(DESTDIR)$(sysconfdir)/rc.d/init.d || : + else + install-init-redhat: + uninstall-init-redhat: +@@ -272,12 +286,13 @@ endif # LIBVIRT_INIT_SCRIPT_RED_HAT + if LIBVIRT_INIT_SCRIPT_UPSTART + + install-init-upstart: install-sysconfig +- mkdir -p $(DESTDIR)$(sysconfdir)/event.d ++ $(MKDIR_P) $(DESTDIR)$(sysconfdir)/event.d + $(INSTALL_SCRIPT) libvirtd.upstart \ + $(DESTDIR)$(sysconfdir)/event.d/libvirtd + + uninstall-init-upstart: uninstall-sysconfig + rm -f $(DESTDIR)$(sysconfdir)/event.d/libvirtd ++ rmdir $(DESTDIR)$(sysconfdir)/event.d || : + else + install-init-upstart: + uninstall-init-upstart: +@@ -291,12 +306,13 @@ SYSTEMD_UNIT_DIR = /lib/systemd/system + BUILT_SOURCES += libvirtd.service + + install-init-systemd: install-sysconfig libvirtd.service +- mkdir -p $(DESTDIR)$(SYSTEMD_UNIT_DIR) ++ $(MKDIR_P) $(DESTDIR)$(SYSTEMD_UNIT_DIR) + $(INSTALL_SCRIPT) libvirtd.service \ + $(DESTDIR)$(SYSTEMD_UNIT_DIR)/libvirtd.service + + uninstall-init-systemd: uninstall-sysconfig + rm -f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/libvirtd.service ++ rmdir $(DESTDIR)$(SYSTEMD_UNIT_DIR) || : + else + install-init-systemd: + uninstall-init-systemd: +@@ -346,7 +362,7 @@ $(srcdir)/libvirtd.8.in: libvirtd.pod.in + # the WITH_LIBVIRTD conditional + if HAVE_SASL + install-data-sasl: +- mkdir -p $(DESTDIR)$(sysconfdir)/sasl2/ ++ $(MKDIR_P) $(DESTDIR)$(sysconfdir)/sasl2/ + $(INSTALL_DATA) $(srcdir)/libvirtd.sasl $(DESTDIR)$(sysconfdir)/sasl2/libvirt.conf + + uninstall-data-sasl: +Index: libvirt-0.9.8/tools/Makefile.am +=================================================================== +--- libvirt-0.9.8.orig/tools/Makefile.am ++++ libvirt-0.9.8/tools/Makefile.am +@@ -153,23 +153,24 @@ install-data-local: install-init install + uninstall-local: uninstall-init uninstall-systemd + + install-sysconfig: +- mkdir -p $(DESTDIR)$(sysconfdir)/sysconfig ++ $(MKDIR_P) $(DESTDIR)$(sysconfdir)/sysconfig + $(INSTALL_DATA) $(srcdir)/libvirt-guests.sysconf \ + $(DESTDIR)$(sysconfdir)/sysconfig/libvirt-guests + + uninstall-sysconfig: + rm -f $(DESTDIR)$(sysconfdir)/sysconfig/libvirt-guests ++ rmdir $(DESTDIR)$(sysconfdir)/sysconfig ||: + + EXTRA_DIST += libvirt-guests.init.sh + + install-initscript: libvirt-guests.init +- mkdir -p $(DESTDIR)$(sysconfdir)/rc.d/init.d ++ $(MKDIR_P) $(DESTDIR)$(sysconfdir)/rc.d/init.d + $(INSTALL_SCRIPT) libvirt-guests.init \ + $(DESTDIR)$(sysconfdir)/rc.d/init.d/libvirt-guests + + uninstall-initscript: + rm -f $(DESTDIR)$(sysconfdir)/rc.d/init.d/libvirt-guests +- ++ rmdir $(DESTDIR)$(sysconfdir)/rc.d/init.d ||: + + + if LIBVIRT_INIT_SCRIPT_RED_HAT +@@ -201,12 +202,13 @@ SYSTEMD_UNIT_DIR = /lib/systemd/system + + if LIBVIRT_INIT_SCRIPT_SYSTEMD + install-systemd: libvirt-guests.service install-initscript install-sysconfig +- mkdir -p $(DESTDIR)$(SYSTEMD_UNIT_DIR) ++ $(MKDIR_P) $(DESTDIR)$(SYSTEMD_UNIT_DIR) + $(INSTALL_SCRIPT) libvirt-guests.service \ + $(DESTDIR)$(SYSTEMD_UNIT_DIR)/libvirt-guests.service + + uninstall-systemd: uninstall-initscript uninstall-sysconfig + rm -f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/libvirt-guests.service ++ rmdir $(DESTDIR)$(SYSTEMD_UNIT_DIR) ||: + + BUILT_SOURCES += libvirt-guests.service + diff --git a/478a4d07-systemd-build-fix.patch b/478a4d07-systemd-build-fix.patch new file mode 100644 index 0000000..2a14444 --- /dev/null +++ b/478a4d07-systemd-build-fix.patch @@ -0,0 +1,81 @@ +commit 478a4d07ac489e9a52defe65290f1aeedc92393a +Author: Daniel P. Berrange +Date: Thu Dec 8 13:30:24 2011 +0000 + + Fix installation of libvirt-guests.service + + The installation rules for the libvirt-guests.service were + totally broken + + - Installing in the wrong location + - The location was not overridable + - The install-systemd rule was not invoked anywhere + - The install-systemd rule was not invoking install-initscript + which it depends on + - The installed service file lacked a .service extension + + * tools/Makefile.am: Fix install of libvirt-guests.service + +Index: libvirt-0.9.8/tools/Makefile.am +=================================================================== +--- libvirt-0.9.8.orig/tools/Makefile.am ++++ libvirt-0.9.8/tools/Makefile.am +@@ -148,9 +148,9 @@ endif + virsh.1: virsh.pod + $(AM_V_GEN)$(POD2MAN) $< $(srcdir)/$@ + +-install-data-local: install-init ++install-data-local: install-init install-systemd + +-uninstall-local: uninstall-init ++uninstall-local: uninstall-init uninstall-systemd + + install-sysconfig: + mkdir -p $(DESTDIR)$(sysconfdir)/sysconfig +@@ -162,17 +162,20 @@ uninstall-sysconfig: + + EXTRA_DIST += libvirt-guests.init.sh + +-if LIBVIRT_INIT_SCRIPT_RED_HAT +-install-init: libvirt-guests.init install-sysconfig ++install-initscript: libvirt-guests.init + mkdir -p $(DESTDIR)$(sysconfdir)/rc.d/init.d + $(INSTALL_SCRIPT) libvirt-guests.init \ + $(DESTDIR)$(sysconfdir)/rc.d/init.d/libvirt-guests + +-uninstall-init: install-sysconfig ++uninstall-initscript: + rm -f $(DESTDIR)$(sysconfdir)/rc.d/init.d/libvirt-guests + +-BUILT_SOURCES += libvirt-guests.init + ++ ++if LIBVIRT_INIT_SCRIPT_RED_HAT ++BUILT_SOURCES += libvirt-guests.init ++install-init: install-sysconfig install-initscript ++uninstall-init: uninstall-sysconfig uninstall-initscript + else + install-init: + uninstall-init: +@@ -194,14 +197,16 @@ libvirt-guests.init: libvirt-guests.init + + EXTRA_DIST += libvirt-guests.service.in + ++SYSTEMD_UNIT_DIR = /lib/systemd/system ++ + if LIBVIRT_INIT_SCRIPT_SYSTEMD +-install-systemd: libvirt-guests.service install-sysconfig +- mkdir -p $(DESTDIR)$(sysconfdir)/rc.d/systemd.d ++install-systemd: libvirt-guests.service install-initscript install-sysconfig ++ mkdir -p $(DESTDIR)$(SYSTEMD_UNIT_DIR) + $(INSTALL_SCRIPT) libvirt-guests.service \ +- $(DESTDIR)$(sysconfdir)/rc.d/systemd.d/libvirt-guests ++ $(DESTDIR)$(SYSTEMD_UNIT_DIR)/libvirt-guests.service + +-uninstall-systemd: install-sysconfig +- rm -f $(DESTDIR)$(sysconfdir)/rc.d/systemd.d/libvirt-guests ++uninstall-systemd: uninstall-initscript uninstall-sysconfig ++ rm -f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/libvirt-guests.service + + BUILT_SOURCES += libvirt-guests.service + diff --git a/AF_PACKET.patch b/AF_PACKET.patch new file mode 100644 index 0000000..c654459 --- /dev/null +++ b/AF_PACKET.patch @@ -0,0 +1,26 @@ +Index: libvirt-0.9.8/src/util/virnetdev.c +=================================================================== +--- libvirt-0.9.8.orig/src/util/virnetdev.c ++++ libvirt-0.9.8/src/util/virnetdev.c +@@ -84,7 +84,7 @@ static int virNetDevSetupControlFull(con + static int virNetDevSetupControl(const char *ifname, + struct ifreq *ifr) + { +- return virNetDevSetupControlFull(ifname, ifr, AF_PACKET, SOCK_DGRAM); ++ return virNetDevSetupControlFull(ifname, ifr, AF_INET, SOCK_STREAM); + } + #endif + +Index: libvirt-0.9.8/src/util/virnetdevbridge.c +=================================================================== +--- libvirt-0.9.8.orig/src/util/virnetdevbridge.c ++++ libvirt-0.9.8/src/util/virnetdevbridge.c +@@ -84,7 +84,7 @@ static int virNetDevSetupControlFull(con + static int virNetDevSetupControl(const char *ifname, + struct ifreq *ifr) + { +- return virNetDevSetupControlFull(ifname, ifr, AF_PACKET, SOCK_DGRAM); ++ return virNetDevSetupControlFull(ifname, ifr, AF_INET, SOCK_STREAM); + } + #endif + diff --git a/a495365d-sexpr-empty-str.patch b/a495365d-sexpr-empty-str.patch deleted file mode 100644 index 962a420..0000000 --- a/a495365d-sexpr-empty-str.patch +++ /dev/null @@ -1,46 +0,0 @@ -commit a495365d09138bf0f07504cfe9b6ea2de858e18e -Author: Jim Fehlig -Date: Fri Nov 18 14:54:38 2011 -0700 - - Don't copy sexpr node value that is an empty string - - Xen4.1 initializes some unspecified sexpr config items to an empty - string, unlike previous Xen versions that would leave the item unset. - E.g. the kernel item for an HVM guest (non-direct kernel boot): - - Xen4.0 and earlier - ... - (image - (hvm - (kernel ) - ... - - Xen4.1 - ... - (image - (hvm - (kernel '') - ... - - The empty string for kernel causes some grief in subsequent parsing - where existence of specified kernel is checked, e.g. - - if (!def->os.kernel) - ... - - This patch solves the problem in sexpr_node_copy() by not copying - a node containing an empty string. - -Index: libvirt-0.9.7/src/util/sexpr.c -=================================================================== ---- libvirt-0.9.7.orig/src/util/sexpr.c -+++ libvirt-0.9.7/src/util/sexpr.c -@@ -519,7 +519,7 @@ int sexpr_node_copy(const struct sexpr * - { - const char *val = sexpr_node(sexpr, node); - -- if (val) { -+ if (val && *val) { - *dst = strdup(val); - if (!(*dst)) - return -1; diff --git a/ae1232b2-CVE-2011-4600.patch b/ae1232b2-CVE-2011-4600.patch new file mode 100644 index 0000000..1559b88 --- /dev/null +++ b/ae1232b2-CVE-2011-4600.patch @@ -0,0 +1,55 @@ +commit ae1232b298323dd7bef909426e2ebafa6bca9157 +Author: Laine Stump +Date: Tue Dec 6 15:13:50 2011 -0500 + + network: don't add iptables rules for externally managed networks + + This patch addresses https://bugzilla.redhat.com/show_bug.cgi?id=760442 + + When a network has any forward type other than route, nat or none, the + network configuration should be done completely external to libvirt - + libvirt only uses these types to allow configuring guests in a manner + that isn't tied to a specific host (all the host-specific information, + in particular interface names, port profile data, and bandwidth + configuration is in the network definition, and the guest + configuration only references it). + + Due to a bug in the bridge network driver, libvirt was adding iptables + rules for networks with forward type='bridge' etc. any time libvirtd + was restarted while one of these networks was active. + + This patch eliminates that error by only "reloading" iptables rules if + forward type is route, nat, or none. + +Index: libvirt-0.9.8/src/network/bridge_driver.c +=================================================================== +--- libvirt-0.9.8.orig/src/network/bridge_driver.c ++++ libvirt-0.9.8/src/network/bridge_driver.c +@@ -1470,14 +1470,22 @@ networkReloadIptablesRules(struct networ + VIR_INFO("Reloading iptables rules"); + + for (i = 0 ; i < driver->networks.count ; i++) { +- virNetworkObjLock(driver->networks.objs[i]); +- if (virNetworkObjIsActive(driver->networks.objs[i])) { +- networkRemoveIptablesRules(driver, driver->networks.objs[i]); +- if (networkAddIptablesRules(driver, driver->networks.objs[i]) < 0) { ++ virNetworkObjPtr network = driver->networks.objs[i]; ++ ++ virNetworkObjLock(network); ++ if (virNetworkObjIsActive(network) && ++ ((network->def->forwardType == VIR_NETWORK_FORWARD_NONE) || ++ (network->def->forwardType == VIR_NETWORK_FORWARD_NAT) || ++ (network->def->forwardType == VIR_NETWORK_FORWARD_ROUTE))) { ++ /* Only the three L3 network types that are configured by libvirt ++ * need to have iptables rules reloaded. ++ */ ++ networkRemoveIptablesRules(driver, network); ++ if (networkAddIptablesRules(driver, network) < 0) { + /* failed to add but already logged */ + } + } +- virNetworkObjUnlock(driver->networks.objs[i]); ++ virNetworkObjUnlock(network); + } + } + diff --git a/d47ab3fe-polkit0.patch b/d47ab3fe-polkit0.patch deleted file mode 100644 index f01a66d..0000000 --- a/d47ab3fe-polkit0.patch +++ /dev/null @@ -1,25 +0,0 @@ -commit d47ab3fe6115de6c54f999ba598fe58418840653 -Author: Jim Fehlig -Date: Wed Nov 16 11:35:08 2011 -0700 - - Fix build with polkit0 - - I missed adding virNetServerGetDBusConn() to libvirtd_private.syms - in commit b8adfcc6, which didn't cause a problem in 0.9.6 but - results in this build error in 0.9.7 - - libvirtd-remote.o: In function `remoteDispatchAuthPolkit': - remote.c:(.text+0x188dd): undefined reference to `virNetServerGetDBusConn' - -Index: libvirt-0.9.7/src/libvirt_private.syms -=================================================================== ---- libvirt-0.9.7.orig/src/libvirt_private.syms -+++ libvirt-0.9.7/src/libvirt_private.syms -@@ -1217,6 +1217,7 @@ virNetServerAddSignalHandler; - virNetServerAutoShutdown; - virNetServerClose; - virNetServerFree; -+virNetServerGetDBusConn; - virNetServerIsPrivileged; - virNetServerNew; - virNetServerQuit; diff --git a/dd8e8956-qemu-1.0.patch b/dd8e8956-qemu-1.0.patch deleted file mode 100644 index e627c13..0000000 --- a/dd8e8956-qemu-1.0.patch +++ /dev/null @@ -1,507 +0,0 @@ -commit dd8e8956060f38b084d581ed63f934c3d8202071 -Author: Jiri Denemark -Date: Fri Dec 2 21:20:15 2011 +0100 - - Add support for QEMU 1.0 - -Index: libvirt-0.9.7/src/qemu/qemu_capabilities.c -=================================================================== ---- libvirt-0.9.7.orig/src/qemu/qemu_capabilities.c -+++ libvirt-0.9.7/src/qemu/qemu_capabilities.c -@@ -1141,14 +1141,17 @@ int qemuCapsParseHelpStr(const char *qem - ++p; - - minor = virParseNumber(&p); -- if (minor == -1 || *p != '.') -+ if (minor == -1) - goto fail; - -- ++p; -- -- micro = virParseNumber(&p); -- if (micro == -1) -- goto fail; -+ if (*p != '.') { -+ micro = 0; -+ } else { -+ ++p; -+ micro = virParseNumber(&p); -+ if (micro == -1) -+ goto fail; -+ } - - SKIP_BLANKS(p); - -Index: libvirt-0.9.7/tests/qemuhelpdata/qemu-1.0 -=================================================================== ---- /dev/null -+++ libvirt-0.9.7/tests/qemuhelpdata/qemu-1.0 -@@ -0,0 +1,252 @@ -+QEMU emulator version 1.0, 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 parameter for item of type -+ 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=[,] -+ 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 enable spice -+-portrait rotate graphical output 90 deg left (only PXA LCD) -+-rotate 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 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 -+-writeconfig -+ read/write config file -+-nodefconfig -+ do not load default config files at startup -+-trace [events=][,file=] -+ specify tracing options -+ -+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. -Index: libvirt-0.9.7/tests/qemuhelpdata/qemu-1.0-device -=================================================================== ---- /dev/null -+++ libvirt-0.9.7/tests/qemuhelpdata/qemu-1.0-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 -Index: libvirt-0.9.7/tests/qemuhelptest.c -=================================================================== ---- libvirt-0.9.7.orig/tests/qemuhelptest.c -+++ libvirt-0.9.7/tests/qemuhelptest.c -@@ -571,6 +571,68 @@ mymain(void) - QEMU_CAPS_USB_HUB, - QEMU_CAPS_NO_SHUTDOWN, - QEMU_CAPS_PCI_ROMBAR); -+ DO_TEST("qemu-1.0", 1000000, 0, 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); - - return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE; - } diff --git a/install-apparmor-profiles.patch b/install-apparmor-profiles.patch index 6b2946e..4e39d86 100644 --- a/install-apparmor-profiles.patch +++ b/install-apparmor-profiles.patch @@ -1,7 +1,7 @@ -Index: libvirt-0.9.7/examples/apparmor/Makefile.am +Index: libvirt-0.9.8/examples/apparmor/Makefile.am =================================================================== ---- libvirt-0.9.7.orig/examples/apparmor/Makefile.am -+++ libvirt-0.9.7/examples/apparmor/Makefile.am +--- libvirt-0.9.8.orig/examples/apparmor/Makefile.am ++++ libvirt-0.9.8/examples/apparmor/Makefile.am @@ -1,8 +1,39 @@ ## Copyright (C) 2005-2011 Red Hat, Inc. ## See COPYING.LIB for the License of this software @@ -47,10 +47,10 @@ Index: libvirt-0.9.7/examples/apparmor/Makefile.am + rm -f $(DESTDIR)$(sysconfdir)/apparmor.d/libvirt/TEMPLATE + +endif -Index: libvirt-0.9.7/examples/apparmor/usr.lib.libvirt.virt-aa-helper.in +Index: libvirt-0.9.8/examples/apparmor/usr.lib.libvirt.virt-aa-helper.in =================================================================== --- /dev/null -+++ libvirt-0.9.7/examples/apparmor/usr.lib.libvirt.virt-aa-helper.in ++++ libvirt-0.9.8/examples/apparmor/usr.lib.libvirt.virt-aa-helper.in @@ -0,0 +1,40 @@ +# Last Modified: Fri Aug 19 11:21:48 2011 +#include @@ -92,9 +92,9 @@ Index: libvirt-0.9.7/examples/apparmor/usr.lib.libvirt.virt-aa-helper.in + /var/lib/kvm/images/ r, + /var/lib/kvm/images/** r, +} -Index: libvirt-0.9.7/examples/apparmor/usr.lib.libvirt.virt-aa-helper +Index: libvirt-0.9.8/examples/apparmor/usr.lib.libvirt.virt-aa-helper =================================================================== ---- libvirt-0.9.7.orig/examples/apparmor/usr.lib.libvirt.virt-aa-helper +--- libvirt-0.9.8.orig/examples/apparmor/usr.lib.libvirt.virt-aa-helper +++ /dev/null @@ -1,38 +0,0 @@ -# Last Modified: Mon Apr 5 15:10:27 2010 @@ -135,9 +135,9 @@ Index: libvirt-0.9.7/examples/apparmor/usr.lib.libvirt.virt-aa-helper - /var/lib/libvirt/images/ r, - /var/lib/libvirt/images/** r, -} -Index: libvirt-0.9.7/examples/apparmor/usr.sbin.libvirtd +Index: libvirt-0.9.8/examples/apparmor/usr.sbin.libvirtd =================================================================== ---- libvirt-0.9.7.orig/examples/apparmor/usr.sbin.libvirtd +--- libvirt-0.9.8.orig/examples/apparmor/usr.sbin.libvirtd +++ /dev/null @@ -1,52 +0,0 @@ -# Last Modified: Mon Apr 5 15:03:58 2010 @@ -192,10 +192,10 @@ Index: libvirt-0.9.7/examples/apparmor/usr.sbin.libvirtd - change_profile -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*, - -} -Index: libvirt-0.9.7/examples/apparmor/usr.sbin.libvirtd.in +Index: libvirt-0.9.8/examples/apparmor/usr.sbin.libvirtd.in =================================================================== --- /dev/null -+++ libvirt-0.9.7/examples/apparmor/usr.sbin.libvirtd.in ++++ libvirt-0.9.8/examples/apparmor/usr.sbin.libvirtd.in @@ -0,0 +1,54 @@ +# Last Modified: Fri Aug 19 11:20:36 2011 +#include @@ -251,10 +251,10 @@ Index: libvirt-0.9.7/examples/apparmor/usr.sbin.libvirtd.in + change_profile -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*, + +} -Index: libvirt-0.9.7/examples/apparmor/libvirt-qemu +Index: libvirt-0.9.8/examples/apparmor/libvirt-qemu =================================================================== ---- libvirt-0.9.7.orig/examples/apparmor/libvirt-qemu -+++ libvirt-0.9.7/examples/apparmor/libvirt-qemu +--- libvirt-0.9.8.orig/examples/apparmor/libvirt-qemu ++++ libvirt-0.9.8/examples/apparmor/libvirt-qemu @@ -52,6 +52,7 @@ # access to firmware's etc /usr/share/kvm/** r, diff --git a/libvirt-0.9.7.tar.bz2 b/libvirt-0.9.7.tar.bz2 deleted file mode 100644 index 0588b2b..0000000 --- a/libvirt-0.9.7.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:cc541b104a7378ecf00d140a1eb3b582e34eed28faed07ca5936caa98ecb82dd -size 12461024 diff --git a/libvirt-0.9.8.tar.bz2 b/libvirt-0.9.8.tar.bz2 new file mode 100644 index 0000000..63524d4 --- /dev/null +++ b/libvirt-0.9.8.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4b1fdbfb9bf8831ca5b4c0a065a051243ecdab1ea8778de2c185f35e77b93629 +size 12881970 diff --git a/libvirt-suse-netcontrol.patch b/libvirt-suse-netcontrol.patch index 613f7fb..5452d2d 100644 --- a/libvirt-suse-netcontrol.patch +++ b/libvirt-suse-netcontrol.patch @@ -1,7 +1,7 @@ -Index: libvirt-0.9.7/configure.ac +Index: libvirt-0.9.8/configure.ac =================================================================== ---- libvirt-0.9.7.orig/configure.ac -+++ libvirt-0.9.7/configure.ac +--- libvirt-0.9.8.orig/configure.ac ++++ libvirt-0.9.8/configure.ac @@ -63,6 +63,7 @@ AVAHI_REQUIRED="0.6.0" POLKIT_REQUIRED="0.6" PARTED_REQUIRED="1.8.0" @@ -10,7 +10,7 @@ Index: libvirt-0.9.7/configure.ac UDEV_REQUIRED=145 PCIACCESS_REQUIRED=0.10.0 XMLRPC_REQUIRED=1.14.0 -@@ -1591,6 +1592,38 @@ AM_CONDITIONAL([WITH_NETCF], [test "$wit +@@ -1639,6 +1640,38 @@ AM_CONDITIONAL([WITH_NETCF], [test "$wit AC_SUBST([NETCF_CFLAGS]) AC_SUBST([NETCF_LIBS]) @@ -49,7 +49,7 @@ Index: libvirt-0.9.7/configure.ac AC_ARG_WITH([secrets], AC_HELP_STRING([--with-secrets], [with local secrets management driver @<:@default=yes@:>@]),[],[with_secrets=yes]) -@@ -2515,6 +2548,7 @@ AC_MSG_NOTICE([ Remote: $with_remote]) +@@ -2567,6 +2600,7 @@ AC_MSG_NOTICE([ Remote: $with_remote]) AC_MSG_NOTICE([ Network: $with_network]) AC_MSG_NOTICE([Libvirtd: $with_libvirtd]) AC_MSG_NOTICE([ netcf: $with_netcf]) @@ -57,7 +57,7 @@ Index: libvirt-0.9.7/configure.ac AC_MSG_NOTICE([ macvtap: $with_macvtap]) AC_MSG_NOTICE([virtport: $with_virtualport]) AC_MSG_NOTICE([]) -@@ -2646,6 +2680,11 @@ AC_MSG_NOTICE([ netcf: $NETCF_CFLAGS $ +@@ -2698,6 +2732,11 @@ AC_MSG_NOTICE([ netcf: $NETCF_CFLAGS $ else AC_MSG_NOTICE([ netcf: no]) fi @@ -69,10 +69,10 @@ Index: libvirt-0.9.7/configure.ac if test "$with_qemu" = "yes" && test "$LIBPCAP_FOUND" != "no"; then AC_MSG_NOTICE([ pcap: $LIBPCAP_CFLAGS $LIBPCAP_LIBS]) else -Index: libvirt-0.9.7/daemon/Makefile.am +Index: libvirt-0.9.8/daemon/Makefile.am =================================================================== ---- libvirt-0.9.7.orig/daemon/Makefile.am -+++ libvirt-0.9.7/daemon/Makefile.am +--- libvirt-0.9.8.orig/daemon/Makefile.am ++++ libvirt-0.9.8/daemon/Makefile.am @@ -143,6 +143,10 @@ endif if WITH_NETCF @@ -84,10 +84,10 @@ Index: libvirt-0.9.7/daemon/Makefile.am endif if WITH_NODE_DEVICES -Index: libvirt-0.9.7/daemon/libvirtd.c +Index: libvirt-0.9.8/daemon/libvirtd.c =================================================================== ---- libvirt-0.9.7.orig/daemon/libvirtd.c -+++ libvirt-0.9.7/daemon/libvirtd.c +--- libvirt-0.9.8.orig/daemon/libvirtd.c ++++ libvirt-0.9.8/daemon/libvirtd.c @@ -75,6 +75,10 @@ # endif # ifdef WITH_NETCF @@ -99,7 +99,7 @@ Index: libvirt-0.9.7/daemon/libvirtd.c # endif # ifdef WITH_STORAGE_DIR # include "storage/storage_driver.h" -@@ -389,6 +393,10 @@ static void daemonInitialize(void) +@@ -393,6 +397,10 @@ static void daemonInitialize(void) # endif # ifdef WITH_NETCF interfaceRegister(); @@ -110,11 +110,11 @@ Index: libvirt-0.9.7/daemon/libvirtd.c # endif # ifdef WITH_STORAGE_DIR storageRegister(); -Index: libvirt-0.9.7/src/Makefile.am +Index: libvirt-0.9.8/src/Makefile.am =================================================================== ---- libvirt-0.9.7.orig/src/Makefile.am -+++ libvirt-0.9.7/src/Makefile.am -@@ -941,6 +941,24 @@ libvirt_driver_interface_la_LIBADD += .. +--- libvirt-0.9.8.orig/src/Makefile.am ++++ libvirt-0.9.8/src/Makefile.am +@@ -950,6 +950,24 @@ libvirt_driver_interface_la_LIBADD += .. libvirt_driver_interface_la_LDFLAGS += -module -avoid-version endif libvirt_driver_interface_la_SOURCES = $(INTERFACE_DRIVER_SOURCES) @@ -139,10 +139,10 @@ Index: libvirt-0.9.7/src/Makefile.am endif if WITH_SECRETS -Index: libvirt-0.9.7/src/interface/netcf_driver.c +Index: libvirt-0.9.8/src/interface/netcf_driver.c =================================================================== ---- libvirt-0.9.7.orig/src/interface/netcf_driver.c -+++ libvirt-0.9.7/src/interface/netcf_driver.c +--- libvirt-0.9.8.orig/src/interface/netcf_driver.c ++++ libvirt-0.9.8/src/interface/netcf_driver.c @@ -23,7 +23,13 @@ #include @@ -208,11 +208,11 @@ Index: libvirt-0.9.7/src/interface/netcf_driver.c /* open netcf */ if (ncf_init(&driverState->netcf, NULL) != 0) { -Index: libvirt-0.9.7/tools/virsh.c +Index: libvirt-0.9.8/tools/virsh.c =================================================================== ---- libvirt-0.9.7.orig/tools/virsh.c -+++ libvirt-0.9.7/tools/virsh.c -@@ -16506,6 +16506,10 @@ vshShowVersion(vshControl *ctl ATTRIBUTE +--- libvirt-0.9.8.orig/tools/virsh.c ++++ libvirt-0.9.8/tools/virsh.c +@@ -17646,6 +17646,10 @@ vshShowVersion(vshControl *ctl ATTRIBUTE #endif #ifdef WITH_NETCF vshPrint(ctl, " Netcf"); diff --git a/libvirt.changes b/libvirt.changes index 465efda..a426319 100644 --- a/libvirt.changes +++ b/libvirt.changes @@ -1,3 +1,25 @@ +------------------------------------------------------------------- +Wed Dec 14 18:13:11 MST 2011 - jfehlig@suse.com + +- CVE-2011-4600: unintended firewall port exposure after restarting + libvirtd when defining a bridged forward-mode network + ae1232b2-CVE-2011-4600.patch + bnc#736082 + +- Post-0.9.8 upstream systemd patches + 10404671-systemd-build-fix.patch 478a4d07-systemd-build-fix.patch + +- Update to libvirt 0.9.8 + - Add support for QEMU 1.0 + - Add first parts of PPC cpu driver + - Add new API virDomain{Set, Get}BlockIoTune + - block_resize: Define the new API + - Add a public API to invoke suspend/resume on the host + - Various improvements for LXC containers + - Define keepalive protocol and add virConnectIsAlive API + - Add support for STP and VLANfiltering + - Numerous bug fixes and improvements + ------------------------------------------------------------------- Tue Dec 13 21:37:19 MST 2011 - jfehlig@suse.com diff --git a/libvirt.spec b/libvirt.spec index 947f9cb..769b97a 100644 --- a/libvirt.spec +++ b/libvirt.spec @@ -78,7 +78,8 @@ %define with_audit 0%{!?_without_audit:0} %define with_dtrace 0%{!?_without_dtrace:0} %define with_cgconfig 0%{!?_without_cgconfig:0} - +%define with_sanlock 0%{!?_without_sanlock:0} +%define with_systemd 0%{!?_without_systemd:0} # Non-server/HV driver defaults which are always enabled %define with_python 0%{!?_without_python:1} %define with_sasl 0%{!?_without_sasl:1} @@ -306,13 +307,19 @@ BuildRequires: audit-devel # we need /usr/sbin/dtrace BuildRequires: systemtap-sdt-devel %endif +%if %{with_sanlock} +BuildRequires: sanlock-devel >= 1.8 +%endif +%if %{with_systemd} +BuildRequires: systemd-units +%endif Name: libvirt Url: http://libvirt.org/ License: LGPL-2.1+ Group: Development/Libraries/C and C++ AutoReqProv: yes -Version: 0.9.7 +Version: 0.9.8 Release: 1 Summary: A C toolkit to interact with the virtualization capabilities of Linux Conflicts: kvm < 0.14.1 @@ -374,20 +381,30 @@ Recommends: device-mapper # For multipath support Recommends: device-mapper %endif +# For virConnectGetSysinfo +Requires: dmidecode +# For service management +%if %{with_systemd} +Requires(post): systemd-units +Requires(post): systemd-sysv +Requires(preun): systemd-units +Requires(postun): systemd-units +%endif Source0: %{name}-%{version}.tar.bz2 Source1: libvirtd.init Source2: libvirtd-relocation-server.fw Source99: baselibs.conf # Upstream patches -Patch0: d47ab3fe-polkit0.patch -Patch1: a495365d-sexpr-empty-str.patch -Patch2: dd8e8956-qemu-1.0.patch +Patch0: ae1232b2-CVE-2011-4600.patch +Patch1: 478a4d07-systemd-build-fix.patch +Patch2: 10404671-systemd-build-fix.patch # Need to go upstream Patch100: xen-name-for-devid.patch Patch101: clone.patch Patch102: xen-pv-cdrom.patch Patch103: xen-domctl-ver8.patch +Patch104: AF_PACKET.patch # Our patches Patch200: libvirtd-defaults.patch Patch201: use-init-script-redhat.patch @@ -483,6 +500,21 @@ Authors: Daniel Veillard Karel Zak +%if %{with_sanlock} + +%package lock-sanlock +License: LGPL-2.1+ +Summary: Sanlock lock manager plugin for QEMU driver +Group: Development/Libraries/C and C++ +Requires: sanlock >= 1.8 +#for virt-sanlock-cleanup require augeas +Requires: augeas +Requires: %{name} = %{version}-%{release} + +%description lock-sanlock +Includes the Sanlock lock manager plugin for the QEMU driver +%endif + %if %{with_python} %package python @@ -514,6 +546,7 @@ Authors: %patch101 %patch102 -p1 %patch103 -p1 +%patch104 -p1 %patch200 -p1 %patch201 -p1 %patch202 -p1 @@ -631,6 +664,17 @@ Authors: %if ! %{with_libpcap} %define _without_libpcap --without-libpcap %endif +%if ! %{with_sanlock} +%define _without_sanlock --without-sanlock +%endif +%if %{with_systemd} +# Use 'systemd+redhat' (see patch use-init-script-redhat.patch), +# so if someone installs upstart or legacy init scripts, they can +# still start libvirtd +%define init_scripts --with-init_script=systemd+redhat +%else +%define init_scripts --with-init_script=redhat +%endif autoreconf -f -i export CFLAGS="$RPM_OPT_FLAGS" @@ -670,17 +714,18 @@ export CFLAGS="$RPM_OPT_FLAGS" %{?_without_sasl} \ %{?_without_python} \ %{?_without_libpcap} \ + %{?_without_sanlock} \ --libexecdir=%{_libdir}/%{name} \ --with-qemu-user=%{qemu_user} \ --with-qemu-group=%{qemu_group} \ - --with-init-script=redhat \ + %{init_scripts} \ ac_cv_path_MODPROBE=/sbin/modprobe \ ac_cv_path_UDEVADM=/sbin/udevadm \ ac_cv_path_SHOWMOUNT=/usr/sbin/showmount -make %{?jobs:-j%jobs} DOCS_DIR=%{_docdir}/%{name}-python EXAMPLE_DIR=%{_docdir}/%{name}-python/examples HTML_DIR=%{_docdir}/%{name} +make V=1 %{?jobs:-j%jobs} DOCS_DIR=%{_docdir}/%{name}-python EXAMPLE_DIR=%{_docdir}/%{name}-python/examples HTML_DIR=%{_docdir}/%{name} %install -%makeinstall DOCS_DIR=%{_docdir}/%{name}-python EXAMPLE_DIR=%{_docdir}/%{name}-python/examples HTML_DIR=%{_docdir}/%{name} +%makeinstall SYSTEMD_UNIT_DIR=%{buildroot}%{_unitdir} DOCS_DIR=%{_docdir}/%{name}-python EXAMPLE_DIR=%{_docdir}/%{name}-python/examples HTML_DIR=%{_docdir}/%{name} cp -a AUTHORS ChangeLog COPYING NEWS README TODO $RPM_BUILD_ROOT%{_docdir}/%{name}/ cd docs ; cp -a *.html $RPM_BUILD_ROOT%{_docdir}/%{name} ; cp -a *.png $RPM_BUILD_ROOT%{_docdir}/%{name} ; cd .. # remove currently unsupported locale(s) @@ -764,7 +809,7 @@ rm -rf $RPM_BUILD_ROOT %if %{with_libvirtd} %if %{with_network} # Install the default network if one doesn't exist -if test ! -f %{_sysconfdir}/libvirt/qemu/networks/default.xml +if ! /sbin/chkconfig libvirtd && test ! -f %{_sysconfdir}/libvirt/qemu/networks/default.xml then UUID=`/usr/bin/uuidgen` sed -e "s,,\n $UUID," \ @@ -772,24 +817,65 @@ then > %{_sysconfdir}/libvirt/qemu/networks/default.xml fi %endif + %if 0%{?sles_version} +%if %{with_systemd} +if [ $1 -eq 1 ] ; then + # Initial installation + /bin/systemctl enable libvirtd.service >/dev/null 2>&1 || : +fi +%else # !systemd %{fillup_and_insserv -y libvirtd} +%endif +%else # ! sles +%if %{with_systemd} %else %{fillup_only -n libvirtd} %endif %endif +%endif + +%if %{with_systemd} +%else %{fillup_only -n libvirt-guests} +%endif %preun %if %{with_libvirtd} +%if %{with_systemd} +if [ $1 -eq 0 ] ; then + # Package removal, not upgrade + /bin/systemctl --no-reload disable libvirtd.service > /dev/null 2>&1 || : + /bin/systemctl stop libvirtd.service > /dev/null 2>&1 || : +fi +%else %stop_on_removal libvirtd %endif +%endif %postun /sbin/ldconfig %if %{with_libvirtd} +%if %{with_systemd} +/bin/systemctl daemon-reload >/dev/null 2>&1 || : +if [ $1 -ge 1 ] ; then + # Package upgrade, not uninstall + /bin/systemctl try-restart libvirtd.service >/dev/null 2>&1 || : +fi + +%triggerun -- libvirt < 0.9.4 +%{_bindir}/systemd-sysv-convert --save libvirtd >/dev/null 2>&1 ||: + +# If the package is allowed to autostart: +/bin/systemctl --no-reload enable libvirtd.service >/dev/null 2>&1 ||: + +# Run these because the SysV package being removed won't do them +/sbin/chkconfig --del libvirtd >/dev/null 2>&1 || : +/bin/systemctl try-restart libvirtd.service >/dev/null 2>&1 || : +%else %restart_on_update libvirtd %endif +%endif %insserv_cleanup %post client -p /sbin/ldconfig @@ -817,6 +903,9 @@ fi %{_localstatedir}/adm/fillup-templates/sysconfig.libvirtd %config /etc/init.d/libvirtd %{_sbindir}/rclibvirtd +%if %{with_systemd} +%{_unitdir}/libvirtd.service +%endif %config(noreplace) %{_sysconfdir}/libvirt/libvirtd.conf %config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd %if %{with_dtrace} @@ -864,7 +953,6 @@ fi %endif %attr(0755, root, root) %{_libdir}/%{name}/libvirt_iohelper %doc %{_mandir}/man8/libvirtd.8* -%endif %if %{with_apparmor} %dir %{_sysconfdir}/apparmor.d %dir %{_sysconfdir}/apparmor.d/abstractions @@ -876,6 +964,7 @@ fi %{_libdir}/%{name}/virt-aa-helper %endif %config %{_fwdefdir}/libvirtd-relocation-server +%endif # with_libvirtd %files client -f %{name}.lang %defattr(-, root, root) @@ -894,6 +983,9 @@ fi %{_localstatedir}/adm/fillup-templates/sysconfig.libvirt-guests %config /etc/init.d/libvirt-guests %{_sbindir}/rclibvirt-guests +%if %{with_systemd} +%{_unitdir}/libvirt-guests.service +%endif %dir %{_datadir}/libvirt/ %dir %{_datadir}/libvirt/schemas/ @@ -932,6 +1024,21 @@ fi %doc %{_docdir}/%{name}/*.css %doc %{_docdir}/%{name}/html +%if %{with_sanlock} + +%files lock-sanlock +%defattr(-, root, root) +%if %{with_qemu} +%config(noreplace) %{_sysconfdir}/libvirt/qemu-sanlock.conf +%endif +%attr(0755, root, root) %{_libdir}/libvirt/lock-driver/sanlock.so +%{_datadir}/augeas/lenses/libvirt_sanlock.aug +%{_datadir}/augeas/lenses/tests/test_libvirt_sanlock.aug +%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/sanlock +%{_sbindir}/virt-sanlock-cleanup +%{_mandir}/man8/virt-sanlock-cleanup.8* +%endif + %if %{with_python} %files python diff --git a/libvirtd-defaults.patch b/libvirtd-defaults.patch index d0e5f16..9775190 100644 --- a/libvirtd-defaults.patch +++ b/libvirtd-defaults.patch @@ -1,7 +1,7 @@ -Index: libvirt-0.9.7/daemon/libvirtd.conf +Index: libvirt-0.9.8/daemon/libvirtd.conf =================================================================== ---- libvirt-0.9.7.orig/daemon/libvirtd.conf -+++ libvirt-0.9.7/daemon/libvirtd.conf +--- libvirt-0.9.8.orig/daemon/libvirtd.conf ++++ libvirt-0.9.8/daemon/libvirtd.conf @@ -18,8 +18,8 @@ # It is necessary to setup a CA and issue server certificates before # using this capability. @@ -28,11 +28,11 @@ Index: libvirt-0.9.7/daemon/libvirtd.conf # Override the default mDNS advertizement name. This must be # unique on the immediate broadcast network. -Index: libvirt-0.9.7/daemon/libvirtd.c +Index: libvirt-0.9.8/daemon/libvirtd.c =================================================================== ---- libvirt-0.9.7.orig/daemon/libvirtd.c -+++ libvirt-0.9.7/daemon/libvirtd.c -@@ -846,7 +846,7 @@ daemonConfigNew(bool privileged ATTRIBUT +--- libvirt-0.9.8.orig/daemon/libvirtd.c ++++ libvirt-0.9.8/daemon/libvirtd.c +@@ -850,7 +850,7 @@ daemonConfigNew(bool privileged ATTRIBUT return NULL; } @@ -41,7 +41,7 @@ Index: libvirt-0.9.7/daemon/libvirtd.c data->listen_tcp = 0; if (!(data->tls_port = strdup(LIBVIRTD_TLS_PORT))) -@@ -883,7 +883,7 @@ daemonConfigNew(bool privileged ATTRIBUT +@@ -887,7 +887,7 @@ daemonConfigNew(bool privileged ATTRIBUT #endif data->auth_tls = REMOTE_AUTH_NONE; diff --git a/relax-qemu-usergroup-check.patch b/relax-qemu-usergroup-check.patch index c6b9450..46272ae 100644 --- a/relax-qemu-usergroup-check.patch +++ b/relax-qemu-usergroup-check.patch @@ -7,10 +7,10 @@ drivers as loadable modules instead of built-in to the daemon. Then the qemu driver would only be loaded when needed, which would never be the case on a xen-only configuration. -Index: libvirt-0.9.7/src/qemu/qemu_conf.c +Index: libvirt-0.9.8/src/qemu/qemu_conf.c =================================================================== ---- libvirt-0.9.7.orig/src/qemu/qemu_conf.c -+++ libvirt-0.9.7/src/qemu/qemu_conf.c +--- libvirt-0.9.8.orig/src/qemu/qemu_conf.c ++++ libvirt-0.9.8/src/qemu/qemu_conf.c @@ -255,9 +255,7 @@ int qemudLoadDriverConfig(struct qemud_d return -1; } diff --git a/suse-qemu-conf.patch b/suse-qemu-conf.patch index e3205cd..6e74be9 100644 --- a/suse-qemu-conf.patch +++ b/suse-qemu-conf.patch @@ -1,7 +1,7 @@ -Index: libvirt-0.9.7/src/qemu/qemu.conf +Index: libvirt-0.9.8/src/qemu/qemu.conf =================================================================== ---- libvirt-0.9.7.orig/src/qemu/qemu.conf -+++ libvirt-0.9.7/src/qemu/qemu.conf +--- libvirt-0.9.8.orig/src/qemu/qemu.conf ++++ libvirt-0.9.8/src/qemu/qemu.conf @@ -136,7 +136,16 @@ # leaving SELinux enabled for the host in general, then set this # to 'none' instead. diff --git a/use-init-script-redhat.patch b/use-init-script-redhat.patch index 04ae33c..ebb1f68 100644 --- a/use-init-script-redhat.patch +++ b/use-init-script-redhat.patch @@ -1,35 +1,42 @@ -Index: libvirt-0.9.7/tools/Makefile.am +Index: libvirt-0.9.8/tools/Makefile.am =================================================================== ---- libvirt-0.9.7.orig/tools/Makefile.am -+++ libvirt-0.9.7/tools/Makefile.am -@@ -155,16 +155,17 @@ uninstall-local: uninstall-init +--- libvirt-0.9.8.orig/tools/Makefile.am ++++ libvirt-0.9.8/tools/Makefile.am +@@ -153,24 +153,22 @@ install-data-local: install-init install + uninstall-local: uninstall-init uninstall-systemd - if LIBVIRT_INIT_SCRIPT_RED_HAT - install-init: libvirt-guests.init -- mkdir -p $(DESTDIR)$(sysconfdir)/rc.d/init.d -+ mkdir -p $(DESTDIR)$(sysconfdir)/init.d - $(INSTALL_SCRIPT) libvirt-guests.init \ -- $(DESTDIR)$(sysconfdir)/rc.d/init.d/libvirt-guests -- mkdir -p $(DESTDIR)$(sysconfdir)/sysconfig -+ $(DESTDIR)$(sysconfdir)/init.d/libvirt-guests -+ mkdir -p $(DESTDIR)$(localstatedir)/adm/fillup-templates + install-sysconfig: +- $(MKDIR_P) $(DESTDIR)$(sysconfdir)/sysconfig ++ $(MKDIR_P) $(DESTDIR)$(localstatedir)/adm/fillup-templates $(INSTALL_DATA) $(srcdir)/libvirt-guests.sysconf \ - $(DESTDIR)$(sysconfdir)/sysconfig/libvirt-guests -+ $(DESTDIR)$(localstatedir)/adm/fillup-templates/sysconfig.libvirt-guests ++ $(DESTDIR)$(localstatedir)/adm/fillup-templates/sysconfig.libvirt-guests - uninstall-init: -- rm -f $(DESTDIR)$(sysconfdir)/rc.d/init.d/libvirt-guests \ -- $(DESTDIR)$(sysconfdir)/sysconfig/libvirt-guests -+ rm -f $(DESTDIR)$(sysconfdir)/init.d/libvirt-guests \ -+ $(DESTDIR)$(sysconfdir)/sysconfig/libvirt-guests \ -+ $(DESTDIR)$(localstatedir)/adm/fillup-templates/sysconfig.libvirt-guests + uninstall-sysconfig: +- rm -f $(DESTDIR)$(sysconfdir)/sysconfig/libvirt-guests +- rmdir $(DESTDIR)$(sysconfdir)/sysconfig ||: ++ rm -f $(DESTDIR)$(localstatedir)/adm/fillup-templates/sysconfig.libvirt-guests - BUILT_SOURCES += libvirt-guests.init + EXTRA_DIST += libvirt-guests.init.sh -Index: libvirt-0.9.7/tools/libvirt-guests.sysconf + install-initscript: libvirt-guests.init +- $(MKDIR_P) $(DESTDIR)$(sysconfdir)/rc.d/init.d ++ $(MKDIR_P) $(DESTDIR)$(sysconfdir)/init.d + $(INSTALL_SCRIPT) libvirt-guests.init \ +- $(DESTDIR)$(sysconfdir)/rc.d/init.d/libvirt-guests ++ $(DESTDIR)$(sysconfdir)/init.d/libvirt-guests + + uninstall-initscript: +- rm -f $(DESTDIR)$(sysconfdir)/rc.d/init.d/libvirt-guests +- rmdir $(DESTDIR)$(sysconfdir)/rc.d/init.d ||: ++ rm -f $(DESTDIR)$(sysconfdir)/init.d/libvirt-guests + + + if LIBVIRT_INIT_SCRIPT_RED_HAT +Index: libvirt-0.9.8/tools/libvirt-guests.sysconf =================================================================== ---- libvirt-0.9.7.orig/tools/libvirt-guests.sysconf -+++ libvirt-0.9.7/tools/libvirt-guests.sysconf +--- libvirt-0.9.8.orig/tools/libvirt-guests.sysconf ++++ libvirt-0.9.8/tools/libvirt-guests.sysconf @@ -1,18 +1,28 @@ +## Path: System/Virtualization/libvirt + @@ -80,10 +87,10 @@ Index: libvirt-0.9.7/tools/libvirt-guests.sysconf # If non-zero, try to bypass the file system cache when saving and # restoring guests, even though this may give slower operation for # some file systems. -Index: libvirt-0.9.7/tools/libvirt-guests.init.sh +Index: libvirt-0.9.8/tools/libvirt-guests.init.sh =================================================================== ---- libvirt-0.9.7.orig/tools/libvirt-guests.init.sh -+++ libvirt-0.9.7/tools/libvirt-guests.init.sh +--- libvirt-0.9.8.orig/tools/libvirt-guests.init.sh ++++ libvirt-0.9.8/tools/libvirt-guests.init.sh @@ -4,10 +4,10 @@ # ### BEGIN INIT INFO @@ -226,31 +233,45 @@ Index: libvirt-0.9.7/tools/libvirt-guests.init.sh esac -exit $RETVAL +rc_exit -Index: libvirt-0.9.7/daemon/Makefile.am +Index: libvirt-0.9.8/daemon/Makefile.am =================================================================== ---- libvirt-0.9.7.orig/daemon/Makefile.am -+++ libvirt-0.9.7/daemon/Makefile.am -@@ -236,20 +236,12 @@ install-logrotate: $(LOGROTATE_CONFS) +--- libvirt-0.9.8.orig/daemon/Makefile.am ++++ libvirt-0.9.8/daemon/Makefile.am +@@ -249,34 +249,23 @@ uninstall-logrotate: + rmdir $(DESTDIR)$(sysconfdir)/logrotate.d || : - if LIBVIRT_INIT_SCRIPT_RED_HAT - install-init: libvirtd.init -- mkdir -p $(DESTDIR)$(sysconfdir)/rc.d/init.d \ -- $(DESTDIR)$(sysconfdir)/sysconfig \ -- $(DESTDIR)$(sysconfdir)/sysctl.d -- $(INSTALL_SCRIPT) libvirtd.init \ -- $(DESTDIR)$(sysconfdir)/rc.d/init.d/libvirtd -+ mkdir -p $(DESTDIR)$(localstatedir)/adm/fillup-templates + install-sysconfig: +- $(MKDIR_P) $(DESTDIR)$(sysconfdir)/sysconfig ++ $(MKDIR_P) $(DESTDIR)$(localstatedir)/adm/fillup-templates $(INSTALL_DATA) $(srcdir)/libvirtd.sysconf \ - $(DESTDIR)$(sysconfdir)/sysconfig/libvirtd ++ $(DESTDIR)$(localstatedir)/adm/fillup-templates/sysconfig.libvirtd + uninstall-sysconfig: +- rm -f $(DESTDIR)$(sysconfdir)/sysconfig/libvirtd +- rmdir $(DESTDIR)$(sysconfdir)/sysconfig || : ++ rm -f $(DESTDIR)$(localstatedir)/adm/fillup-templates/sysconfig.libvirtd + + install-sysctl: +- $(MKDIR_P) $(DESTDIR)$(sysconfdir)/sysctl.d - $(INSTALL_DATA) $(srcdir)/libvirtd.sysctl \ - $(DESTDIR)$(sysconfdir)/sysctl.d/libvirtd -+ $(DESTDIR)$(localstatedir)/adm/fillup-templates/sysconfig.libvirtd - uninstall-init: -- rm -f $(DESTDIR)$(sysconfdir)/rc.d/init.d/libvirtd \ -- $(DESTDIR)$(sysconfdir)/sysconfig/libvirtd \ -- $(DESTDIR)$(sysconfdir)/sysctl.d/libvirtd -+ rm -f $(DESTDIR)$(localstatedir)/adm/fillup-templates/sysconfig.libvirtd + uninstall-sysctl: +- rm -f $(DESTDIR)$(sysconfdir)/sysctl.d/libvirtd +- rmdir $(DESTDIR)$(sysconfdir)/sysctl.d || : + + if LIBVIRT_INIT_SCRIPT_RED_HAT BUILT_SOURCES += libvirtd.init + install-init-redhat: install-sysconfig libvirtd.init +- $(MKDIR_P) $(DESTDIR)$(sysconfdir)/rc.d/init.d +- $(INSTALL_SCRIPT) libvirtd.init \ +- $(DESTDIR)$(sysconfdir)/rc.d/init.d/libvirtd + + uninstall-init-redhat: uninstall-sysconfig +- rm -f $(DESTDIR)$(sysconfdir)/rc.d/init.d/libvirtd +- rmdir $(DESTDIR)$(sysconfdir)/rc.d/init.d || : + else + install-init-redhat: + uninstall-init-redhat: diff --git a/xen-domctl-ver8.patch b/xen-domctl-ver8.patch index e98a2ab..c40f4d7 100644 --- a/xen-domctl-ver8.patch +++ b/xen-domctl-ver8.patch @@ -1,8 +1,8 @@ -Index: libvirt-0.9.7/src/xen/xen_hypervisor.c +Index: libvirt-0.9.8/src/xen/xen_hypervisor.c =================================================================== ---- libvirt-0.9.7.orig/src/xen/xen_hypervisor.c -+++ libvirt-0.9.7/src/xen/xen_hypervisor.c -@@ -242,12 +242,30 @@ struct xen_v2d7_getdomaininfo { +--- libvirt-0.9.8.orig/src/xen/xen_hypervisor.c ++++ libvirt-0.9.8/src/xen/xen_hypervisor.c +@@ -243,12 +243,30 @@ struct xen_v2d7_getdomaininfo { }; typedef struct xen_v2d7_getdomaininfo xen_v2d7_getdomaininfo; @@ -33,7 +33,7 @@ Index: libvirt-0.9.7/src/xen/xen_hypervisor.c }; typedef union xen_getdomaininfo xen_getdomaininfo; -@@ -257,6 +275,7 @@ union xen_getdomaininfolist { +@@ -258,6 +276,7 @@ union xen_getdomaininfolist { struct xen_v2d5_getdomaininfo *v2d5; struct xen_v2d6_getdomaininfo *v2d6; struct xen_v2d7_getdomaininfo *v2d7; @@ -41,7 +41,7 @@ Index: libvirt-0.9.7/src/xen/xen_hypervisor.c }; typedef union xen_getdomaininfolist xen_getdomaininfolist; -@@ -294,179 +313,211 @@ typedef struct xen_v2s5_availheap xen_v +@@ -295,179 +314,211 @@ typedef struct xen_v2s5_availheap xen_v #define XEN_GETDOMAININFOLIST_ALLOC(domlist, size) \ (hv_versions.hypervisor < 2 ? \ (VIR_ALLOC_N(domlist.v0, (size)) == 0) : \ @@ -269,7 +269,7 @@ Index: libvirt-0.9.7/src/xen/xen_hypervisor.c static int -@@ -2141,12 +2192,20 @@ xenHypervisorInit(struct xenHypervisorVe +@@ -2142,12 +2193,20 @@ xenHypervisorInit(struct xenHypervisorVe /* Xen 4.1 * sysctl version 8 -> xen-unstable c/s 21118:28e5409e3fb3 * domctl version 7 -> xen-unstable c/s 21212:de94884a669c diff --git a/xen-name-for-devid.patch b/xen-name-for-devid.patch index d38aebb..eb4eee5 100644 --- a/xen-name-for-devid.patch +++ b/xen-name-for-devid.patch @@ -13,10 +13,10 @@ Date: Wed Jan 27 16:11:41 2010 -0700 This approach allows removing a disk when domain is inactive. We obviously can't search xenstore when the domain is inactive. -Index: libvirt-0.9.7/src/xen/xend_internal.c +Index: libvirt-0.9.8/src/xen/xend_internal.c =================================================================== ---- libvirt-0.9.7.orig/src/xen/xend_internal.c -+++ libvirt-0.9.7/src/xen/xend_internal.c +--- libvirt-0.9.8.orig/src/xen/xend_internal.c ++++ libvirt-0.9.8/src/xen/xend_internal.c @@ -60,6 +60,7 @@ static int diff --git a/xen-pv-cdrom.patch b/xen-pv-cdrom.patch index 572b781..f920f2b 100644 --- a/xen-pv-cdrom.patch +++ b/xen-pv-cdrom.patch @@ -1,7 +1,7 @@ -Index: libvirt-0.9.7/src/xenxs/xen_sxpr.c +Index: libvirt-0.9.8/src/xenxs/xen_sxpr.c =================================================================== ---- libvirt-0.9.7.orig/src/xenxs/xen_sxpr.c -+++ libvirt-0.9.7/src/xenxs/xen_sxpr.c +--- libvirt-0.9.8.orig/src/xenxs/xen_sxpr.c ++++ libvirt-0.9.8/src/xenxs/xen_sxpr.c @@ -329,7 +329,7 @@ error: static int xenParseSxprDisks(virDomainDefPtr def, From 2caea9a03a51079324b052d8c46a41ecf3c4a5d1c19a6484a6a8948954357f61 Mon Sep 17 00:00:00 2001 From: James Fehlig Date: Tue, 3 Jan 2012 16:29:06 +0000 Subject: [PATCH 4/5] - Use %fdupes for duplicate file checking instead of hand-rolled function OBS-URL: https://build.opensuse.org/package/show/Virtualization/libvirt?expand=0&rev=184 --- libvirt.changes | 6 ++++++ libvirt.spec | 19 ++----------------- 2 files changed, 8 insertions(+), 17 deletions(-) diff --git a/libvirt.changes b/libvirt.changes index a426319..95587d8 100644 --- a/libvirt.changes +++ b/libvirt.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Tue Jan 3 09:20:43 MST 2012 - jfehlig@suse.com + +- Use %fdupes for duplicate file checking instead of hand-rolled + function + ------------------------------------------------------------------- Wed Dec 14 18:13:11 MST 2011 - jfehlig@suse.com diff --git a/libvirt.spec b/libvirt.spec index 769b97a..d1a6d6f 100644 --- a/libvirt.spec +++ b/libvirt.spec @@ -1,7 +1,7 @@ # # spec file for package libvirt # -# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -769,22 +769,6 @@ rm -rf $RPM_BUILD_ROOT%{_docdir}/%{name}-python rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/nwfilter %endif -ln_dupes() -{ - target="" - fdupes -r "$1" | while read file; do - if [ -z "$file" ] || [ -z "$target" ]; then - target="$file" - continue - fi - ln -sf "${target#.}" "$file" - done -} -( - cd $RPM_BUILD_ROOT - ln_dupes .%{_docdir}/%{name} - ln_dupes ./usr/share/locale -) # init scripts mkdir -p $RPM_BUILD_ROOT/etc/init.d %if %{with_libvirtd} @@ -796,6 +780,7 @@ ln -s /etc/init.d/libvirt-guests $RPM_BUILD_ROOT%{_sbindir}/rclibvirt-guests #/usr/share/SuSEfirewall2/services/TEMPLATE mkdir -p $RPM_BUILD_ROOT/%{_fwdefdir} install -m 644 %{S:2} $RPM_BUILD_ROOT/%{_fwdefdir}/libvirtd-relocation-server +%fdupes -s $RPM_BUILD_ROOT %clean rm -rf $RPM_BUILD_ROOT From ff2439ca46065e9029d1aa936088bd50a6038dc208b626fd4e59a3a0af03a69d Mon Sep 17 00:00:00 2001 From: James Fehlig Date: Wed, 4 Jan 2012 23:48:35 +0000 Subject: [PATCH 5/5] - Fixup systemd support as per openSUSE systemd packaging guidelines. OBS-URL: https://build.opensuse.org/package/show/Virtualization/libvirt?expand=0&rev=185 --- libvirt.changes | 6 ++++ libvirt.spec | 59 +++++++++++------------------------- use-init-script-redhat.patch | 34 +++++++++++++++++++++ 3 files changed, 57 insertions(+), 42 deletions(-) diff --git a/libvirt.changes b/libvirt.changes index 95587d8..53c69ce 100644 --- a/libvirt.changes +++ b/libvirt.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Wed Jan 4 16:41:32 MST 2012 - jfehlig@suse.com + +- Fixup systemd support as per openSUSE systemd packaging + guidelines. + ------------------------------------------------------------------- Tue Jan 3 09:20:43 MST 2012 - jfehlig@suse.com diff --git a/libvirt.spec b/libvirt.spec index d1a6d6f..8b0624a 100644 --- a/libvirt.spec +++ b/libvirt.spec @@ -152,6 +152,10 @@ # All supported version of openSUSE/SLE contain audit %define with_audit 0%{!?_without_audit:1} +%if 0%{?suse_version} > 1140 +%define with_systemd 0%{!?_without_systemd:1} +%endif + # Disable some drivers when building without libvirt daemon. # The logic is the same as in configure.ac %if ! %{with_libvirtd} @@ -311,7 +315,7 @@ BuildRequires: systemtap-sdt-devel BuildRequires: sanlock-devel >= 1.8 %endif %if %{with_systemd} -BuildRequires: systemd-units +BuildRequires: systemd %endif Name: libvirt @@ -385,10 +389,7 @@ Recommends: device-mapper Requires: dmidecode # For service management %if %{with_systemd} -Requires(post): systemd-units -Requires(post): systemd-sysv -Requires(preun): systemd-units -Requires(postun): systemd-units +%{?systemd_requires} %endif Source0: %{name}-%{version}.tar.bz2 @@ -725,7 +726,7 @@ export CFLAGS="$RPM_OPT_FLAGS" make V=1 %{?jobs:-j%jobs} DOCS_DIR=%{_docdir}/%{name}-python EXAMPLE_DIR=%{_docdir}/%{name}-python/examples HTML_DIR=%{_docdir}/%{name} %install -%makeinstall SYSTEMD_UNIT_DIR=%{buildroot}%{_unitdir} DOCS_DIR=%{_docdir}/%{name}-python EXAMPLE_DIR=%{_docdir}/%{name}-python/examples HTML_DIR=%{_docdir}/%{name} +%makeinstall SYSTEMD_UNIT_DIR=%{_unitdir} DOCS_DIR=%{_docdir}/%{name}-python EXAMPLE_DIR=%{_docdir}/%{name}-python/examples HTML_DIR=%{_docdir}/%{name} cp -a AUTHORS ChangeLog COPYING NEWS README TODO $RPM_BUILD_ROOT%{_docdir}/%{name}/ cd docs ; cp -a *.html $RPM_BUILD_ROOT%{_docdir}/%{name} ; cp -a *.png $RPM_BUILD_ROOT%{_docdir}/%{name} ; cd .. # remove currently unsupported locale(s) @@ -786,6 +787,9 @@ install -m 644 %{S:2} $RPM_BUILD_ROOT/%{_fwdefdir}/libvirtd-relocation-server rm -rf $RPM_BUILD_ROOT %pre +%if %{with_systemd} +%service_add_pre libvirtd.service +%endif %{_bindir}/getent group libvirt >/dev/null || \ %{_sbindir}/groupadd -r libvirt 2>/dev/null @@ -802,37 +806,22 @@ then > %{_sysconfdir}/libvirt/qemu/networks/default.xml fi %endif - -%if 0%{?sles_version} -%if %{with_systemd} -if [ $1 -eq 1 ] ; then - # Initial installation - /bin/systemctl enable libvirtd.service >/dev/null 2>&1 || : -fi -%else # !systemd -%{fillup_and_insserv -y libvirtd} -%endif -%else # ! sles %if %{with_systemd} +%service_add_post libvirtd.service libvirt-guests.service %else +%if 0%{?sles_version} +%{fillup_and_insserv -y libvirtd} +%else # ! sles %{fillup_only -n libvirtd} %endif -%endif -%endif - -%if %{with_systemd} -%else %{fillup_only -n libvirt-guests} %endif +%endif %preun %if %{with_libvirtd} %if %{with_systemd} -if [ $1 -eq 0 ] ; then - # Package removal, not upgrade - /bin/systemctl --no-reload disable libvirtd.service > /dev/null 2>&1 || : - /bin/systemctl stop libvirtd.service > /dev/null 2>&1 || : -fi +%service_del_preun libvirtd.service libvirt-guests.service %else %stop_on_removal libvirtd %endif @@ -842,21 +831,7 @@ fi /sbin/ldconfig %if %{with_libvirtd} %if %{with_systemd} -/bin/systemctl daemon-reload >/dev/null 2>&1 || : -if [ $1 -ge 1 ] ; then - # Package upgrade, not uninstall - /bin/systemctl try-restart libvirtd.service >/dev/null 2>&1 || : -fi - -%triggerun -- libvirt < 0.9.4 -%{_bindir}/systemd-sysv-convert --save libvirtd >/dev/null 2>&1 ||: - -# If the package is allowed to autostart: -/bin/systemctl --no-reload enable libvirtd.service >/dev/null 2>&1 ||: - -# Run these because the SysV package being removed won't do them -/sbin/chkconfig --del libvirtd >/dev/null 2>&1 || : -/bin/systemctl try-restart libvirtd.service >/dev/null 2>&1 || : +%service_del_postun libvirtd.service libvirt-guests.service %else %restart_on_update libvirtd %endif diff --git a/use-init-script-redhat.patch b/use-init-script-redhat.patch index ebb1f68..03dbee4 100644 --- a/use-init-script-redhat.patch +++ b/use-init-script-redhat.patch @@ -275,3 +275,37 @@ Index: libvirt-0.9.8/daemon/Makefile.am else install-init-redhat: uninstall-init-redhat: +Index: libvirt-0.9.8/daemon/libvirtd.sysconf +=================================================================== +--- libvirt-0.9.8.orig/daemon/libvirtd.sysconf ++++ libvirt-0.9.8/daemon/libvirtd.sysconf +@@ -1,16 +1,25 @@ ++## Path: System/Virtualization/libvirt ++ ++## Type: string ++## Default: /etc/libvirt/libvirtd.conf + # Override the default config file + # NOTE: This setting is no longer honoured if using + # systemd. Set '--config /etc/libvirt/libvirtd.conf' + # in LIBVIRTD_ARGS instead. +-#LIBVIRTD_CONFIG=/etc/libvirt/libvirtd.conf ++LIBVIRTD_CONFIG=/etc/libvirt/libvirtd.conf + +-# Listen for TCP/IP connections +-# NB. must setup TLS/SSL keys prior to using this +-#LIBVIRTD_ARGS="--listen" ++## Type: string ++## Default: --listen ++# Arguments to pass to libvirtd ++LIBVIRTD_ARGS="--listen" + ++## Type: string ++## Default: none + # Override Kerberos service keytab for SASL/GSSAPI + #KRB5_KTNAME=/etc/libvirt/krb5.tab + ++## Type: string ++## Default: none + # Override the QEMU/SDL default audio driver probing when + # starting virtual machines using SDL graphics + #