From buildsys at fedoraproject.org Tue Sep 1 10:26:53 2009 From: buildsys at fedoraproject.org (buildsys at fedoraproject.org) Date: Tue, 1 Sep 2009 10:26:53 +0000 (UTC) Subject: [fedora-virt-maint] Broken dependencies: collectd Message-ID: <20090901102653.DBA231B804A@releng2.fedora.phx.redhat.com> collectd has broken dependencies in the development tree: On ppc: collectd-mysql-4.5.3-2.fc11.ppc requires libcrypto.so.8 collectd-mysql-4.5.3-2.fc11.ppc requires libssl.so.8 On x86_64: collectd-mysql-4.5.3-2.fc11.x86_64 requires libcrypto.so.8()(64bit) collectd-mysql-4.5.3-2.fc11.x86_64 requires libssl.so.8()(64bit) On i386: collectd-mysql-4.5.3-2.fc11.i586 requires libcrypto.so.8 collectd-mysql-4.5.3-2.fc11.i586 requires libssl.so.8 On ppc64: collectd-mysql-4.5.3-2.fc11.ppc64 requires libcrypto.so.8()(64bit) collectd-mysql-4.5.3-2.fc11.ppc64 requires libssl.so.8()(64bit) On ppc: collectd-nut-4.5.3-2.fc11.ppc requires libcrypto.so.8 collectd-nut-4.5.3-2.fc11.ppc requires libssl.so.8 On x86_64: collectd-nut-4.5.3-2.fc11.x86_64 requires libcrypto.so.8()(64bit) collectd-nut-4.5.3-2.fc11.x86_64 requires libssl.so.8()(64bit) On i386: collectd-nut-4.5.3-2.fc11.i586 requires libcrypto.so.8 collectd-nut-4.5.3-2.fc11.i586 requires libssl.so.8 On ppc64: collectd-nut-4.5.3-2.fc11.ppc64 requires libcrypto.so.8()(64bit) collectd-nut-4.5.3-2.fc11.ppc64 requires libssl.so.8()(64bit) On ppc: collectd-snmp-4.5.3-2.fc11.ppc requires libcrypto.so.8 On x86_64: collectd-snmp-4.5.3-2.fc11.x86_64 requires libcrypto.so.8()(64bit) On i386: collectd-snmp-4.5.3-2.fc11.i586 requires libcrypto.so.8 On ppc64: collectd-snmp-4.5.3-2.fc11.ppc64 requires libcrypto.so.8()(64bit) Please resolve this as soon as possible. From kraxel at fedoraproject.org Tue Sep 1 11:35:37 2009 From: kraxel at fedoraproject.org (Gerd Hoffmann) Date: Tue, 1 Sep 2009 11:35:37 +0000 (UTC) Subject: [fedora-virt-maint] rpms/xen/devel xen-bzip2-xz-1.patch, NONE, 1.1 xen-bzip2-xz-2.patch, NONE, 1.1 xen-bzip2-xz-3.patch, NONE, 1.1 xen-pygrub-fix-timeout-0.patch, NONE, 1.1 xen-qemu-dm-fix-block-memory-leak.patch, NONE, 1.1 xen-stubdomain-bridging.patch, NONE, 1.1 xen.spec, 1.244, 1.245 Message-ID: <20090901113537.81CCA11C00EF@cvs1.fedora.phx.redhat.com> Author: kraxel Update of /cvs/pkgs/rpms/xen/devel In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv16175 Modified Files: xen.spec Added Files: xen-bzip2-xz-1.patch xen-bzip2-xz-2.patch xen-bzip2-xz-3.patch xen-pygrub-fix-timeout-0.patch xen-qemu-dm-fix-block-memory-leak.patch xen-stubdomain-bridging.patch Log Message: backport patches xen-bzip2-xz-1.patch: Makefile | 22 ++ xc_dom_bzimageloader.c | 392 +++++++++++++++++++++++++++++++++++++++++-------- 2 files changed, 353 insertions(+), 61 deletions(-) --- NEW FILE xen-bzip2-xz-1.patch --- # HG changeset patch # User Keir Fraser # Date 1250802745 -3600 # Node ID a687c4d35fdd00c89c097d691c3039e07f737a1d # Parent 29fe6ba28490124ffbfc1252b6fa7a9d7e20803e domain builder: Implement bzip2 and LZMA loaders Recent upstream kernels can be compressed using either gzip, bzip2, or LZMA. However, the PV kernel loader in Xen currently only understands gzip, and will fail on the other two types. The attached patch implements kernel decompression for gzip, bzip2, and LZMA so that kernels compressed with any of these methods can be launched. Signed-off-by: Chris Lalancette Signed-off-by: Keir Fraser --- a/tools/libxc/Makefile Thu Aug 20 21:15:24 2009 +0100 +++ b/tools/libxc/Makefile Thu Aug 20 22:12:25 2009 +0100 @@ -114,7 +114,7 @@ TAGS: .PHONY: clean clean: - rm -rf *.rpm $(LIB) *~ $(DEPS) \ + rm -rf *.rpm $(LIB) *~ $(DEPS) .*.deps \ $(CTRL_LIB_OBJS) $(CTRL_PIC_OBJS) \ $(GUEST_LIB_OBJS) $(GUEST_PIC_OBJS) @@ -151,6 +151,26 @@ libxenguest.so.$(MAJOR): libxenguest.so. libxenguest.so.$(MAJOR): libxenguest.so.$(MAJOR).$(MINOR) ln -sf $< $@ +.zlib.deps: + @(set -e; \ + . ../check/funcs.sh; \ + rm -f $@.new; \ + if has_header bzlib.h; then \ + echo "-DHAVE_BZLIB" >>$@.new; \ + echo "-lbz2" >>$@.new; \ + echo " - BZIP2 decompression supported"; \ + fi; \ + if has_header lzma.h; then \ + echo "-DHAVE_LZMA" >>$@.new; \ + echo "-llzma" >>$@.new; \ + echo " - LZMA decompression supported"; \ + fi; \ + mv $@.new $@) + +xc_dom_bzimageloader.o: .zlib.deps +xc_dom_bzimageloader.o: CFLAGS += $(shell grep D .zlib.deps) + +libxenguest.so.$(MAJOR).$(MINOR): LDFLAGS += $(shell grep l .zlib.deps) libxenguest.so.$(MAJOR).$(MINOR): $(GUEST_PIC_OBJS) libxenctrl.so $(CC) $(CFLAGS) $(LDFLAGS) -Wl,$(SONAME_LDFLAG) -Wl,libxenguest.so.$(MAJOR) $(SHLIB_CFLAGS) -o $@ $(GUEST_PIC_OBJS) -lz -lxenctrl $(PTHREAD_LIBS) --- a/tools/libxc/xc_dom_bzimageloader.c Thu Aug 20 21:15:24 2009 +0100 +++ b/tools/libxc/xc_dom_bzimageloader.c Thu Aug 20 22:12:25 2009 +0100 @@ -11,6 +11,7 @@ * written 2006 by Gerd Hoffmann . * written 2007 by Jeremy Fitzhardinge * written 2008 by Ian Campbell + * written 2009 by Chris Lalancette * */ #include @@ -20,43 +21,289 @@ #include "xg_private.h" #include "xc_dom.h" +#if defined(HAVE_BZLIB) + +#include + +static int xc_try_bzip2_decode( + struct xc_dom_image *dom, void **blob, size_t *size) +{ + bz_stream stream; + int ret; + char *out_buf; + int retval = -1; + int outsize; + uint64_t total; + + stream.bzalloc = NULL; + stream.bzfree = NULL; + stream.opaque = NULL; + + ret = BZ2_bzDecompressInit(&stream, 0, 0); + if ( ret != BZ_OK ) + { + xc_dom_printf("Error initting bz2 stream\n"); + return -1; + } + + /* sigh. We don't know up-front how much memory we are going to need + * for the output buffer. Allocate the output buffer to be equal + * the input buffer to start, and we'll realloc as needed. + */ + outsize = dom->kernel_size; + out_buf = malloc(outsize); + if ( out_buf == NULL ) + { + xc_dom_printf("Failed to alloc memory\n"); + goto bzip2_cleanup; + } + + stream.next_in = dom->kernel_blob; + stream.avail_in = dom->kernel_size; + + stream.next_out = out_buf; + stream.avail_out = dom->kernel_size; + + for ( ; ; ) + { + ret = BZ2_bzDecompress(&stream); + if ( (stream.avail_out == 0) || (ret != BZ_OK) ) + { + out_buf = realloc(out_buf, outsize * 2); + if ( out_buf == NULL ) + { + xc_dom_printf("Failed to realloc memory\n"); + break; + } + + stream.next_out = out_buf + outsize; + stream.avail_out = (outsize * 2) - outsize; + outsize *= 2; + } + + if ( ret != BZ_OK ) + { + if ( ret == BZ_STREAM_END ) + { + xc_dom_printf("Saw data stream end\n"); + retval = 0; + break; + } + xc_dom_printf("BZIP error\n"); + } + } + + total = (stream.total_out_hi32 << 31) | stream.total_out_lo32; + + xc_dom_printf("%s: BZIP2 decompress OK, 0x%zx -> 0x%lx\n", + __FUNCTION__, *size, (long unsigned int) total); + + *blob = out_buf; + *size = total; + + bzip2_cleanup: + BZ2_bzDecompressEnd(&stream); + + return retval; +} + +#else /* !defined(HAVE_BZLIB) */ + +static int xc_try_bzip2_decode( + struct xc_dom_image *dom, void **blob, size_t *size) +{ + xc_dom_printf("%s: LZMA decompress support unavailable\n", + __FUNCTION__); + return -1; +} + +#endif + +#if defined(HAVE_LZMA) + +#include + +static uint64_t physmem(void) +{ + uint64_t ret = 0; + const long pagesize = sysconf(_SC_PAGESIZE); + const long pages = sysconf(_SC_PHYS_PAGES); + + if ( (pagesize != -1) || (pages != -1) ) + { + /* + * According to docs, pagesize * pages can overflow. + * Simple case is 32-bit box with 4 GiB or more RAM, + * which may report exactly 4 GiB of RAM, and "long" + * being 32-bit will overflow. Casting to uint64_t + * hopefully avoids overflows in the near future. + */ + ret = (uint64_t)(pagesize) * (uint64_t)(pages); + } + + return ret; +} + +static int xc_try_lzma_decode( + struct xc_dom_image *dom, void **blob, size_t *size) +{ + lzma_stream stream = LZMA_STREAM_INIT; + lzma_ret ret; + lzma_action action = LZMA_RUN; + unsigned char *out_buf; + int retval = -1; + int outsize; + const char *msg; + + ret = lzma_alone_decoder(&stream, physmem() / 3); + if ( ret != LZMA_OK ) + { + xc_dom_printf("Failed to init lzma stream decoder\n"); + return -1; + } + + /* sigh. We don't know up-front how much memory we are going to need + * for the output buffer. Allocate the output buffer to be equal + * the input buffer to start, and we'll realloc as needed. + */ + outsize = dom->kernel_size; + out_buf = malloc(outsize); + if ( out_buf == NULL ) + { + xc_dom_printf("Failed to alloc memory\n"); + goto lzma_cleanup; + } + + stream.next_in = dom->kernel_blob; + stream.avail_in = dom->kernel_size; + + stream.next_out = out_buf; + stream.avail_out = dom->kernel_size; + + for ( ; ; ) + { + ret = lzma_code(&stream, action); + if ( (stream.avail_out == 0) || (ret != LZMA_OK) ) + { + out_buf = realloc(out_buf, outsize * 2); + if ( out_buf == NULL ) + { + xc_dom_printf("Failed to realloc memory\n"); + break; + } + + stream.next_out = out_buf + outsize; + stream.avail_out = (outsize * 2) - outsize; + outsize *= 2; + } + + if ( ret != LZMA_OK ) + { + if ( ret == LZMA_STREAM_END ) + { + xc_dom_printf("Saw data stream end\n"); + retval = 0; + break; + } + + switch ( ret ) + { + case LZMA_MEM_ERROR: + msg = strerror(ENOMEM); + break; + + case LZMA_MEMLIMIT_ERROR: + msg = "Memory usage limit reached"; + break; + + case LZMA_FORMAT_ERROR: + msg = "File format not recognized"; + break; + + case LZMA_OPTIONS_ERROR: + // FIXME: Better message? + msg = "Unsupported compression options"; + break; + + case LZMA_DATA_ERROR: + msg = "File is corrupt"; + break; + + case LZMA_BUF_ERROR: + msg = "Unexpected end of input"; + break; + + default: + msg = "Internal program error (bug)"; + break; + } + xc_dom_printf("%s: LZMA decompression error %s\n", + __FUNCTION__, msg); + break; + } + } + + xc_dom_printf("%s: LZMA decompress OK, 0x%zx -> 0x%zx\n", + __FUNCTION__, *size, (size_t)stream.total_out); + + *blob = out_buf; + *size = stream.total_out; + + lzma_cleanup: + lzma_end(&stream); + + return retval; +} + +#else /* !defined(HAVE_LZMA) */ + +static int xc_try_lzma_decode( + struct xc_dom_image *dom, void **blob, size_t *size) +{ + xc_dom_printf("%s: LZMA decompress support unavailable\n", + __FUNCTION__); + return -1; +} + +#endif + struct setup_header { - uint8_t _pad0[0x1f1]; /* skip uninteresting stuff */ - uint8_t setup_sects; - uint16_t root_flags; - uint32_t syssize; - uint16_t ram_size; - uint16_t vid_mode; - uint16_t root_dev; - uint16_t boot_flag; - uint16_t jump; - uint32_t header; -#define HDR_MAGIC "HdrS" -#define HDR_MAGIC_SZ 4 - uint16_t version; -#define VERSION(h,l) (((h)<<8) | (l)) - uint32_t realmode_swtch; - uint16_t start_sys; - uint16_t kernel_version; - uint8_t type_of_loader; - uint8_t loadflags; - uint16_t setup_move_size; - uint32_t code32_start; - uint32_t ramdisk_image; - uint32_t ramdisk_size; - uint32_t bootsect_kludge; - uint16_t heap_end_ptr; - uint16_t _pad1; - uint32_t cmd_line_ptr; - uint32_t initrd_addr_max; - uint32_t kernel_alignment; - uint8_t relocatable_kernel; - uint8_t _pad2[3]; - uint32_t cmdline_size; - uint32_t hardware_subarch; - uint64_t hardware_subarch_data; - uint32_t payload_offset; - uint32_t payload_length; + uint8_t _pad0[0x1f1]; /* skip uninteresting stuff */ + uint8_t setup_sects; + uint16_t root_flags; + uint32_t syssize; + uint16_t ram_size; + uint16_t vid_mode; + uint16_t root_dev; + uint16_t boot_flag; + uint16_t jump; + uint32_t header; +#define HDR_MAGIC "HdrS" +#define HDR_MAGIC_SZ 4 + uint16_t version; +#define VERSION(h,l) (((h)<<8) | (l)) + uint32_t realmode_swtch; + uint16_t start_sys; + uint16_t kernel_version; + uint8_t type_of_loader; + uint8_t loadflags; + uint16_t setup_move_size; + uint32_t code32_start; + uint32_t ramdisk_image; + uint32_t ramdisk_size; + uint32_t bootsect_kludge; + uint16_t heap_end_ptr; + uint16_t _pad1; + uint32_t cmd_line_ptr; + uint32_t initrd_addr_max; + uint32_t kernel_alignment; + uint8_t relocatable_kernel; + uint8_t _pad2[3]; + uint32_t cmdline_size; + uint32_t hardware_subarch; + uint64_t hardware_subarch_data; + uint32_t payload_offset; + uint32_t payload_length; } __attribute__((packed)); extern struct xc_dom_loader elf_loader; @@ -70,22 +317,22 @@ static unsigned int payload_offset(struc return off; } -static int check_bzimage_kernel(struct xc_dom_image *dom, int verbose) +static int xc_dom_probe_bzimage_kernel(struct xc_dom_image *dom) { struct setup_header *hdr; + int ret; if ( dom->kernel_blob == NULL ) { - if ( verbose ) - xc_dom_panic(XC_INTERNAL_ERROR, "%s: no kernel image loaded\n", - __FUNCTION__); - return -EINVAL; - } + xc_dom_panic(XC_INTERNAL_ERROR, "%s: no kernel image loaded\n", + __FUNCTION__); + return -EINVAL; + } + if ( dom->kernel_size < sizeof(struct setup_header) ) { - if ( verbose ) - xc_dom_panic(XC_INTERNAL_ERROR, "%s: kernel image too small\n", - __FUNCTION__); + xc_dom_panic(XC_INTERNAL_ERROR, "%s: kernel image too small\n", + __FUNCTION__); return -EINVAL; } @@ -93,37 +340,62 @@ static int check_bzimage_kernel(struct x if ( memcmp(&hdr->header, HDR_MAGIC, HDR_MAGIC_SZ) != 0 ) { - if ( verbose ) - xc_dom_panic(XC_INVALID_KERNEL, "%s: kernel is not a bzImage\n", - __FUNCTION__); + xc_dom_panic(XC_INVALID_KERNEL, "%s: kernel is not a bzImage\n", + __FUNCTION__); return -EINVAL; } if ( hdr->version < VERSION(2,8) ) { - if ( verbose ) - xc_dom_panic(XC_INVALID_KERNEL, "%s: boot protocol too old (%04x)\n", - __FUNCTION__, hdr->version); + xc_dom_panic(XC_INVALID_KERNEL, "%s: boot protocol too old (%04x)\n", + __FUNCTION__, hdr->version); return -EINVAL; } dom->kernel_blob = dom->kernel_blob + payload_offset(hdr); dom->kernel_size = hdr->payload_length; - if ( xc_dom_try_gunzip(dom, &dom->kernel_blob, &dom->kernel_size) == -1 ) - { - if ( verbose ) - xc_dom_panic(XC_INVALID_KERNEL, "%s: unable to decompress kernel\n", + if ( memcmp(dom->kernel_blob, "\037\213", 2) == 0 ) + { + ret = xc_dom_try_gunzip(dom, &dom->kernel_blob, &dom->kernel_size); + if ( ret == -1 ) + { + xc_dom_panic(XC_INVALID_KERNEL, + "%s: unable to gzip decompress kernel\n", __FUNCTION__); + return -EINVAL; + } + } + else if ( memcmp(dom->kernel_blob, "\102\132\150", 3) == 0 ) + { + ret = xc_try_bzip2_decode(dom, &dom->kernel_blob, &dom->kernel_size); + if ( ret < 0 ) + { + xc_dom_panic(XC_INVALID_KERNEL, + "%s unable to BZIP2 decompress kernel", + __FUNCTION__); + return -EINVAL; + } + } + else if ( memcmp(dom->kernel_blob, "\135\000", 2) == 0 ) + { + ret = xc_try_lzma_decode(dom, &dom->kernel_blob, &dom->kernel_size); + if ( ret < 0 ) + { + xc_dom_panic(XC_INVALID_KERNEL, + "%s unable to LZMA decompress kernel\n", + __FUNCTION__); + return -EINVAL; + } + } + else + { + xc_dom_panic(XC_INVALID_KERNEL, "%s: unknown compression format\n", + __FUNCTION__); return -EINVAL; } return elf_loader.probe(dom); -} - -static int xc_dom_probe_bzimage_kernel(struct xc_dom_image *dom) -{ - return check_bzimage_kernel(dom, 0); } static int xc_dom_parse_bzimage_kernel(struct xc_dom_image *dom) xen-bzip2-xz-2.patch: Makefile | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) --- NEW FILE xen-bzip2-xz-2.patch --- # HG changeset patch # User Keir Fraser # Date 1250803576 -3600 # Node ID 7dad2e23bf892a6be9244265e028a9899503e664 # Parent a687c4d35fdd00c89c097d691c3039e07f737a1d libxenguest: Fix libbz2/liblzma dependency computation. 1. Create an empty dep file if neither lib is installed 2. Forcibly disable support for libs if building minios Signed-off-by: Keir Fraser --- a/tools/libxc/Makefile Thu Aug 20 22:12:25 2009 +0100 +++ b/tools/libxc/Makefile Thu Aug 20 22:26:16 2009 +0100 @@ -151,10 +151,14 @@ libxenguest.so.$(MAJOR): libxenguest.so. libxenguest.so.$(MAJOR): libxenguest.so.$(MAJOR).$(MINOR) ln -sf $< $@ +ifeq ($(CONFIG_MiniOS),y) +.zlib.deps: + echo >$@ +else .zlib.deps: @(set -e; \ . ../check/funcs.sh; \ - rm -f $@.new; \ + echo >$@.new; \ if has_header bzlib.h; then \ echo "-DHAVE_BZLIB" >>$@.new; \ echo "-lbz2" >>$@.new; \ @@ -166,6 +170,7 @@ libxenguest.so.$(MAJOR): libxenguest.so. echo " - LZMA decompression supported"; \ fi; \ mv $@.new $@) +endif xc_dom_bzimageloader.o: .zlib.deps xc_dom_bzimageloader.o: CFLAGS += $(shell grep D .zlib.deps) xen-bzip2-xz-3.patch: .hgignore | 2 +- tools/libxc/Makefile | 36 +++++++++++++++--------------------- tools/libxc/xc_dom_bzimageloader.c | 2 +- 3 files changed, 17 insertions(+), 23 deletions(-) --- NEW FILE xen-bzip2-xz-3.patch --- # HG changeset patch # User Keir Fraser # Date 1251098850 -3600 # Node ID c5125c0ea051be8babe0533c94a5635eaa760272 # Parent 4e67ba3c321affda3f90734ba62ce04b23fce66c libxc: More LZMA/BZIP fixes. - Fix an error message in xc_try_bzip2_decode() - Check library installation on demand using a Makefile function, rather than generating a dependency file. Cleaner and avoids a race on generating the dep file. Signed-off-by: Keir Fraser --- a/.hgignore Mon Aug 24 08:08:52 2009 +0100 +++ b/.hgignore Mon Aug 24 08:27:30 2009 +0100 @@ -102,6 +102,7 @@ ^stubdom/ocaml-.*$ ^stubdom/lwip/ ^stubdom/ioemu/ +^stubdom/stubdompath\.sh$ ^tools/.*/build/lib.*/.*\.py$ ^tools/blktap2/daemon/blktapctrl$ ^tools/blktap2/drivers/img2qcow$ @@ -170,7 +171,6 @@ ^tools/ioemu/qemu\.1$ ^tools/ioemu/qemu\.pod$ ^tools/ioemu/tapdisk-ioemu$ -^tools/libxc/\.zlib\.deps$ ^tools/libxc/ia64/asm/.*\.h$ ^tools/libxc/ia64/acpi/.*\.h$ ^tools/libxc/ia64/acpi/platform/.*\.h$ --- a/tools/libxc/Makefile Mon Aug 24 08:08:52 2009 +0100 +++ b/tools/libxc/Makefile Mon Aug 24 08:27:30 2009 +0100 @@ -114,7 +114,7 @@ TAGS: .PHONY: clean clean: - rm -rf *.rpm $(LIB) *~ $(DEPS) .*.deps \ + rm -rf *.rpm $(LIB) *~ $(DEPS) \ $(CTRL_LIB_OBJS) $(CTRL_PIC_OBJS) \ $(GUEST_LIB_OBJS) $(GUEST_PIC_OBJS) @@ -152,30 +152,24 @@ libxenguest.so.$(MAJOR): libxenguest.so. ln -sf $< $@ ifeq ($(CONFIG_MiniOS),y) -.zlib.deps: - echo >$@ +zlib-options = else -.zlib.deps: - @(set -e; \ - . ../check/funcs.sh; \ - echo >$@.new; \ - if has_header bzlib.h; then \ - echo "-DHAVE_BZLIB" >>$@.new; \ - echo "-lbz2" >>$@.new; \ - echo " - BZIP2 decompression supported"; \ - fi; \ - if has_header lzma.h; then \ - echo "-DHAVE_LZMA" >>$@.new; \ - echo "-llzma" >>$@.new; \ - echo " - LZMA decompression supported"; \ - fi; \ - mv $@.new $@) +zlib-options = $(shell \ + (. ../check/funcs.sh; \ + if has_header bzlib.h; then \ + echo "-DHAVE_BZLIB"; \ + echo "-lbz2"; \ + fi; \ + if has_header lzma.h; then \ + echo "-DHAVE_LZMA"; \ + echo "-llzma"; \ + fi) | grep $(1)) endif -xc_dom_bzimageloader.o: .zlib.deps -xc_dom_bzimageloader.o: CFLAGS += $(shell grep D .zlib.deps) +xc_dom_bzimageloader.o: CFLAGS += $(call zlib-options,D) +xc_dom_bzimageloader.opic: CFLAGS += $(call zlib-options,D) -libxenguest.so.$(MAJOR).$(MINOR): LDFLAGS += $(shell grep l .zlib.deps) +libxenguest.so.$(MAJOR).$(MINOR): LDFLAGS += $(call zlib-options,l) libxenguest.so.$(MAJOR).$(MINOR): $(GUEST_PIC_OBJS) libxenctrl.so $(CC) $(CFLAGS) $(LDFLAGS) -Wl,$(SONAME_LDFLAG) -Wl,libxenguest.so.$(MAJOR) $(SHLIB_CFLAGS) -o $@ $(GUEST_PIC_OBJS) -lz -lxenctrl $(PTHREAD_LIBS) --- a/tools/libxc/xc_dom_bzimageloader.c Mon Aug 24 08:08:52 2009 +0100 +++ b/tools/libxc/xc_dom_bzimageloader.c Mon Aug 24 08:27:30 2009 +0100 @@ -112,7 +112,7 @@ static int xc_try_bzip2_decode( static int xc_try_bzip2_decode( struct xc_dom_image *dom, void **blob, size_t *size) { - xc_dom_printf("%s: LZMA decompress support unavailable\n", + xc_dom_printf("%s: BZIP2 decompress support unavailable\n", __FUNCTION__); return -1; } xen-pygrub-fix-timeout-0.patch: pygrub | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) --- NEW FILE xen-pygrub-fix-timeout-0.patch --- # HG changeset patch # User Keir Fraser # Date 1250753424 -3600 # Node ID 7a57911ff09efb2b2e5fe7811e0495adc5884a29 # Parent 3fc731e42b63f14ef0be1a972113dd19834f0d99 pygrub: Revert 19322:3118041f2259, as it breaks timeout=0 behaviour Signed-off-by: Keir Fraser xen-unstable changeset: 20090:3509276d8ad6 xen-unstable date: Thu Aug 20 08:23:33 2009 +0100 --- a/tools/pygrub/src/pygrub Thu Aug 20 08:29:54 2009 +0100 +++ b/tools/pygrub/src/pygrub Thu Aug 20 08:30:24 2009 +0100 @@ -443,11 +443,7 @@ class Grub: # Timed out waiting for a keypress if mytime != -1: mytime += 1 - # curses.timeout() does not work properly on Solaris - # So we may come here even after a key has been pressed. - # Check both timeout and mytime to avoid exiting - # when we shouldn't. - if timeout != -1 and mytime >= int(timeout): + if mytime >= int(timeout): self.isdone = True break else: xen-qemu-dm-fix-block-memory-leak.patch: block.c | 1 + 1 file changed, 1 insertion(+) --- NEW FILE xen-qemu-dm-fix-block-memory-leak.patch --- Date: Wed, 12 Aug 2009 17:09:15 +0100 From: Stefano Stabellini To: xen-devel at lists.xensource.com Message-ID: Subject: [Xen-devel] [PATCH] fix qemu memory leak Hi all, the qemu block interface leaks memory every time a read or write request is issued, this patch fixes it. This is also the bug that is causing stubdomains to crash under high disk IO. Signed-off-by: Stefano Stabellini --- diff --git a/block.c b/block.c index 36f5eb9..6ce453c 100644 --- a/tools/ioemu-qemu-xen/block.c +++ b/tools/ioemu-qemu-xen/block.c @@ -1378,6 +1378,7 @@ static void bdrv_aio_rw_vector_cb(void *opaque, int ret) qemu_vfree(s->bounce); s->this_aiocb->cb(s->this_aiocb->opaque, ret); qemu_aio_release(s->this_aiocb); + qemu_free(s); } static BlockDriverAIOCB *bdrv_aio_rw_vector(BlockDriverState *bs, _______________________________________________ Xen-devel mailing list Xen-devel at lists.xensource.com http://lists.xensource.com/xen-devel xen-stubdomain-bridging.patch: stubdom-dm | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) --- NEW FILE xen-stubdomain-bridging.patch --- Date: Fri, 14 Aug 2009 17:47:42 +0100 From: Stefano Stabellini To: xen-devel at lists.xensource.com Message-ID: Subject: [Xen-devel] [PATCH] stubdoms: parse bridge informations Hi all, currently the stubdom-dm script doesn't read the bridge of a vif on xenstore, therefore all the vifs assigned to the stubdom always belong to default bridge. This patch changes the behavior reading the bridge from xenstore and adding the bridge to the stubdom config file. It would be nice to have this patch in the 3.4 tree as well. Signed-off-by: Stefano Stabellini --- diff -r 68e8b8379244 stubdom/stubdom-dm --- a/stubdom/stubdom-dm Sun Aug 02 13:43:15 2009 +0100 +++ b/stubdom/stubdom-dm Fri Aug 14 17:39:53 2009 +0100 @@ -143,11 +143,18 @@ i=${i%\"} i=${i#\"} vif_mac=`xenstore-read $i/mac` + vif_bridge=`xenstore-read $i/bridge` if [ $j -ne 0 ] then echo -n "," >> ${stubdom_configdir}/$domname-dm fi - echo -n "'mac=$vif_mac'" >> ${stubdom_configdir}/$domname-dm + echo -n "'mac=$vif_mac" >> ${stubdom_configdir}/$domname-dm + if [ "$vif_bridge" ] + then + echo -n ",bridge=$vif_bridge'" >> ${stubdom_configdir}/$domname-dm + else + echo -n "'" >> ${stubdom_configdir}/$domname-dm + fi j=$(( $j + 1 )) done echo " ] " >> ${stubdom_configdir}/$domname-dm _______________________________________________ Xen-devel mailing list Xen-devel at lists.xensource.com http://lists.xensource.com/xen-devel Index: xen.spec =================================================================== RCS file: /cvs/pkgs/rpms/xen/devel/xen.spec,v retrieving revision 1.244 retrieving revision 1.245 diff -u -p -r1.244 -r1.245 --- xen.spec 7 Aug 2009 15:27:58 -0000 1.244 +++ xen.spec 1 Sep 2009 11:35:37 -0000 1.245 @@ -37,6 +37,15 @@ Patch5: xen-net-disable-iptables-on-brid Patch10: xen-no-werror.patch +# backports +Patch20: xen-pygrub-fix-timeout-0.patch +Patch21: xen-qemu-dm-fix-block-memory-leak.patch +Patch22: xen-stubdomain-bridging.patch + +Patch30: xen-bzip2-xz-1.patch +Patch31: xen-bzip2-xz-2.patch +Patch32: xen-bzip2-xz-3.patch + Patch100: xen-configure-xend.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root @@ -58,6 +67,8 @@ BuildRequires: gnutls-devel BuildRequires: openssl-devel # For ioemu PCI passthrough BuildRequires: pciutils-devel +# modern compressed kernels +BuildRequires: bzip2-devel xz-devel Requires: bridge-utils Requires: udev >= 059 Requires: xen-runtime = %{version}-%{release} @@ -136,6 +147,14 @@ which manage Xen virtual machines. %patch10 -p1 +%patch20 -p1 +%patch21 -p1 +#%patch22 -p1 + +%patch30 -p1 +%patch31 -p1 +#%patch32 -p1 + %patch100 -p1 # stubdom sources @@ -449,6 +468,10 @@ rm -rf %{buildroot} %{_libdir}/*.a %changelog +* Tue Sep 1 2009 Gerd Hoffmann - 3.4.1-2 +- backport bzip2+xz linux kernel compression support. +- backport a few bugfixes. + * Fri Aug 7 2009 Gerd Hoffmann - 3.4.1-1 - update to 3.4.1 release. From kraxel at fedoraproject.org Tue Sep 1 11:46:49 2009 From: kraxel at fedoraproject.org (Gerd Hoffmann) Date: Tue, 1 Sep 2009 11:46:49 +0000 (UTC) Subject: [fedora-virt-maint] rpms/xen/devel xen.spec,1.245,1.246 Message-ID: <20090901114649.4C1CF11C00EF@cvs1.fedora.phx.redhat.com> Author: kraxel Update of /cvs/pkgs/rpms/xen/devel In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv22717 Modified Files: xen.spec Log Message: up release Index: xen.spec =================================================================== RCS file: /cvs/pkgs/rpms/xen/devel/xen.spec,v retrieving revision 1.245 retrieving revision 1.246 diff -u -p -r1.245 -r1.246 --- xen.spec 1 Sep 2009 11:35:37 -0000 1.245 +++ xen.spec 1 Sep 2009 11:46:49 -0000 1.246 @@ -6,7 +6,7 @@ Summary: Xen is a virtual machine monitor Name: xen Version: 3.4.1 -Release: 1%{?dist} +Release: 2%{?dist} Group: Development/Libraries License: GPLv2+ and LGPLv2+ and BSD URL: http://xen.org/ From buildsys at fedoraproject.org Wed Sep 2 10:22:50 2009 From: buildsys at fedoraproject.org (buildsys at fedoraproject.org) Date: Wed, 2 Sep 2009 10:22:50 +0000 (UTC) Subject: [fedora-virt-maint] Broken dependencies: collectd Message-ID: <20090902102250.697641F8210@releng2.fedora.phx.redhat.com> collectd has broken dependencies in the development tree: On ppc: collectd-mysql-4.5.3-2.fc11.ppc requires libcrypto.so.8 collectd-mysql-4.5.3-2.fc11.ppc requires libssl.so.8 On x86_64: collectd-mysql-4.5.3-2.fc11.x86_64 requires libcrypto.so.8()(64bit) collectd-mysql-4.5.3-2.fc11.x86_64 requires libssl.so.8()(64bit) On i386: collectd-mysql-4.5.3-2.fc11.i586 requires libcrypto.so.8 collectd-mysql-4.5.3-2.fc11.i586 requires libssl.so.8 On ppc64: collectd-mysql-4.5.3-2.fc11.ppc64 requires libcrypto.so.8()(64bit) collectd-mysql-4.5.3-2.fc11.ppc64 requires libssl.so.8()(64bit) On ppc: collectd-nut-4.5.3-2.fc11.ppc requires libcrypto.so.8 collectd-nut-4.5.3-2.fc11.ppc requires libssl.so.8 On x86_64: collectd-nut-4.5.3-2.fc11.x86_64 requires libcrypto.so.8()(64bit) collectd-nut-4.5.3-2.fc11.x86_64 requires libssl.so.8()(64bit) On i386: collectd-nut-4.5.3-2.fc11.i586 requires libcrypto.so.8 collectd-nut-4.5.3-2.fc11.i586 requires libssl.so.8 On ppc64: collectd-nut-4.5.3-2.fc11.ppc64 requires libcrypto.so.8()(64bit) collectd-nut-4.5.3-2.fc11.ppc64 requires libssl.so.8()(64bit) On ppc: collectd-snmp-4.5.3-2.fc11.ppc requires libcrypto.so.8 On x86_64: collectd-snmp-4.5.3-2.fc11.x86_64 requires libcrypto.so.8()(64bit) On i386: collectd-snmp-4.5.3-2.fc11.i586 requires libcrypto.so.8 On ppc64: collectd-snmp-4.5.3-2.fc11.ppc64 requires libcrypto.so.8()(64bit) Please resolve this as soon as possible. From kraxel at fedoraproject.org Wed Sep 2 11:36:00 2009 From: kraxel at fedoraproject.org (Gerd Hoffmann) Date: Wed, 2 Sep 2009 11:36:00 +0000 (UTC) Subject: [fedora-virt-maint] rpms/xen/devel xen-341-add-bzip2-lzma-pv-bootloader-support-v2.patch, NONE, 1.1 xen-fix-videoram-option.patch, NONE, 1.1 xen.spec, 1.246, 1.247 xen-bzip2-xz-1.patch, 1.1, NONE xen-bzip2-xz-2.patch, 1.1, NONE xen-bzip2-xz-3.patch, 1.1, NONE xen-stubdomain-bridging.patch, 1.1, NONE Message-ID: <20090902113600.AF97011C00E6@cvs1.fedora.phx.redhat.com> Author: kraxel Update of /cvs/pkgs/rpms/xen/devel In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv16108 Modified Files: xen.spec Added Files: xen-341-add-bzip2-lzma-pv-bootloader-support-v2.patch xen-fix-videoram-option.patch Removed Files: xen-bzip2-xz-1.patch xen-bzip2-xz-2.patch xen-bzip2-xz-3.patch xen-stubdomain-bridging.patch Log Message: more backports xen-341-add-bzip2-lzma-pv-bootloader-support-v2.patch: Makefile | 19 ++ xc_dom_bzimageloader.c | 386 +++++++++++++++++++++++++++++++++++++++++-------- 2 files changed, 348 insertions(+), 57 deletions(-) --- NEW FILE xen-341-add-bzip2-lzma-pv-bootloader-support-v2.patch --- --- xen-3.4-testing.hg/tools/libxc/Makefile 2009-09-01 17:19:44.000000000 +0300 +++ xen-unstable.hg/tools/libxc/Makefile 2009-09-01 17:12:45.000000000 +0300 @@ -149,6 +151,25 @@ libxenguest.so.$(MAJOR): libxenguest.so.$(MAJOR).$(MINOR) ln -sf $< $@ +ifeq ($(CONFIG_MiniOS),y) +zlib-options = +else +zlib-options = $(shell \ + (. ../check/funcs.sh; \ + if has_header bzlib.h; then \ + echo "-DHAVE_BZLIB"; \ + echo "-lbz2"; \ + fi; \ + if has_header lzma.h; then \ + echo "-DHAVE_LZMA"; \ + echo "-llzma"; \ + fi) | grep $(1)) +endif + +xc_dom_bzimageloader.o: CFLAGS += $(call zlib-options,D) +xc_dom_bzimageloader.opic: CFLAGS += $(call zlib-options,D) + +libxenguest.so.$(MAJOR).$(MINOR): LDFLAGS += $(call zlib-options,l) libxenguest.so.$(MAJOR).$(MINOR): $(GUEST_PIC_OBJS) libxenctrl.so $(CC) $(CFLAGS) $(LDFLAGS) -Wl,$(SONAME_LDFLAG) -Wl,libxenguest.so.$(MAJOR) $(SHLIB_CFLAGS) -o $@ $(GUEST_PIC_OBJS) -lz -lxenctrl $(PTHREAD_LIBS) --- xen-3.4-testing.hg/tools/libxc/xc_dom_bzimageloader.c 2009-09-01 17:19:44.000000000 +0300 +++ xen-unstable.hg/tools/libxc/xc_dom_bzimageloader.c 2009-09-01 17:12:45.000000000 +0300 @@ -11,6 +11,7 @@ * written 2006 by Gerd Hoffmann . * written 2007 by Jeremy Fitzhardinge * written 2008 by Ian Campbell + * written 2009 by Chris Lalancette * */ #include @@ -20,43 +21,289 @@ #include "xg_private.h" #include "xc_dom.h" +#if defined(HAVE_BZLIB) + +#include + +static int xc_try_bzip2_decode( + struct xc_dom_image *dom, void **blob, size_t *size) +{ + bz_stream stream; + int ret; + char *out_buf; + int retval = -1; + int outsize; + uint64_t total; + + stream.bzalloc = NULL; + stream.bzfree = NULL; + stream.opaque = NULL; + + ret = BZ2_bzDecompressInit(&stream, 0, 0); + if ( ret != BZ_OK ) + { + xc_dom_printf("Error initting bz2 stream\n"); + return -1; + } + + /* sigh. We don't know up-front how much memory we are going to need + * for the output buffer. Allocate the output buffer to be equal + * the input buffer to start, and we'll realloc as needed. + */ + outsize = dom->kernel_size; + out_buf = malloc(outsize); + if ( out_buf == NULL ) + { + xc_dom_printf("Failed to alloc memory\n"); + goto bzip2_cleanup; + } + + stream.next_in = dom->kernel_blob; + stream.avail_in = dom->kernel_size; + + stream.next_out = out_buf; + stream.avail_out = dom->kernel_size; + + for ( ; ; ) + { + ret = BZ2_bzDecompress(&stream); + if ( (stream.avail_out == 0) || (ret != BZ_OK) ) + { + out_buf = realloc(out_buf, outsize * 2); + if ( out_buf == NULL ) + { + xc_dom_printf("Failed to realloc memory\n"); + break; + } + + stream.next_out = out_buf + outsize; + stream.avail_out = (outsize * 2) - outsize; + outsize *= 2; + } + + if ( ret != BZ_OK ) + { + if ( ret == BZ_STREAM_END ) + { + xc_dom_printf("Saw data stream end\n"); + retval = 0; + break; + } + xc_dom_printf("BZIP error\n"); + } + } + + total = (stream.total_out_hi32 << 31) | stream.total_out_lo32; + + xc_dom_printf("%s: BZIP2 decompress OK, 0x%zx -> 0x%lx\n", + __FUNCTION__, *size, (long unsigned int) total); + + *blob = out_buf; + *size = total; + + bzip2_cleanup: + BZ2_bzDecompressEnd(&stream); + + return retval; +} + +#else /* !defined(HAVE_BZLIB) */ + +static int xc_try_bzip2_decode( + struct xc_dom_image *dom, void **blob, size_t *size) +{ + xc_dom_printf("%s: BZIP2 decompress support unavailable\n", + __FUNCTION__); + return -1; +} + +#endif + +#if defined(HAVE_LZMA) + +#include + +static uint64_t physmem(void) +{ + uint64_t ret = 0; + const long pagesize = sysconf(_SC_PAGESIZE); + const long pages = sysconf(_SC_PHYS_PAGES); + + if ( (pagesize != -1) || (pages != -1) ) + { + /* + * According to docs, pagesize * pages can overflow. + * Simple case is 32-bit box with 4 GiB or more RAM, + * which may report exactly 4 GiB of RAM, and "long" + * being 32-bit will overflow. Casting to uint64_t + * hopefully avoids overflows in the near future. + */ + ret = (uint64_t)(pagesize) * (uint64_t)(pages); + } + + return ret; +} + +static int xc_try_lzma_decode( + struct xc_dom_image *dom, void **blob, size_t *size) +{ + lzma_stream stream = LZMA_STREAM_INIT; + lzma_ret ret; + lzma_action action = LZMA_RUN; + unsigned char *out_buf; + int retval = -1; + int outsize; + const char *msg; + + ret = lzma_alone_decoder(&stream, physmem() / 3); + if ( ret != LZMA_OK ) + { + xc_dom_printf("Failed to init lzma stream decoder\n"); + return -1; + } + + /* sigh. We don't know up-front how much memory we are going to need + * for the output buffer. Allocate the output buffer to be equal + * the input buffer to start, and we'll realloc as needed. + */ + outsize = dom->kernel_size; + out_buf = malloc(outsize); + if ( out_buf == NULL ) + { + xc_dom_printf("Failed to alloc memory\n"); + goto lzma_cleanup; + } + + stream.next_in = dom->kernel_blob; + stream.avail_in = dom->kernel_size; + + stream.next_out = out_buf; + stream.avail_out = dom->kernel_size; + + for ( ; ; ) + { + ret = lzma_code(&stream, action); + if ( (stream.avail_out == 0) || (ret != LZMA_OK) ) + { + out_buf = realloc(out_buf, outsize * 2); + if ( out_buf == NULL ) + { + xc_dom_printf("Failed to realloc memory\n"); + break; + } + + stream.next_out = out_buf + outsize; + stream.avail_out = (outsize * 2) - outsize; + outsize *= 2; + } + + if ( ret != LZMA_OK ) + { + if ( ret == LZMA_STREAM_END ) + { + xc_dom_printf("Saw data stream end\n"); + retval = 0; + break; + } + + switch ( ret ) + { + case LZMA_MEM_ERROR: + msg = strerror(ENOMEM); + break; + + case LZMA_MEMLIMIT_ERROR: + msg = "Memory usage limit reached"; + break; + + case LZMA_FORMAT_ERROR: + msg = "File format not recognized"; + break; + + case LZMA_OPTIONS_ERROR: + // FIXME: Better message? + msg = "Unsupported compression options"; + break; + + case LZMA_DATA_ERROR: + msg = "File is corrupt"; + break; + + case LZMA_BUF_ERROR: + msg = "Unexpected end of input"; + break; + + default: + msg = "Internal program error (bug)"; + break; + } + xc_dom_printf("%s: LZMA decompression error %s\n", + __FUNCTION__, msg); + break; + } + } + + xc_dom_printf("%s: LZMA decompress OK, 0x%zx -> 0x%zx\n", + __FUNCTION__, *size, (size_t)stream.total_out); + + *blob = out_buf; + *size = stream.total_out; + + lzma_cleanup: + lzma_end(&stream); + + return retval; +} + +#else /* !defined(HAVE_LZMA) */ + +static int xc_try_lzma_decode( + struct xc_dom_image *dom, void **blob, size_t *size) +{ + xc_dom_printf("%s: LZMA decompress support unavailable\n", + __FUNCTION__); + return -1; +} + +#endif + struct setup_header { - uint8_t _pad0[0x1f1]; /* skip uninteresting stuff */ - uint8_t setup_sects; - uint16_t root_flags; - uint32_t syssize; - uint16_t ram_size; - uint16_t vid_mode; - uint16_t root_dev; - uint16_t boot_flag; - uint16_t jump; - uint32_t header; -#define HDR_MAGIC "HdrS" -#define HDR_MAGIC_SZ 4 - uint16_t version; -#define VERSION(h,l) (((h)<<8) | (l)) - uint32_t realmode_swtch; - uint16_t start_sys; - uint16_t kernel_version; - uint8_t type_of_loader; - uint8_t loadflags; - uint16_t setup_move_size; - uint32_t code32_start; - uint32_t ramdisk_image; - uint32_t ramdisk_size; - uint32_t bootsect_kludge; - uint16_t heap_end_ptr; - uint16_t _pad1; - uint32_t cmd_line_ptr; - uint32_t initrd_addr_max; - uint32_t kernel_alignment; - uint8_t relocatable_kernel; - uint8_t _pad2[3]; - uint32_t cmdline_size; - uint32_t hardware_subarch; - uint64_t hardware_subarch_data; - uint32_t payload_offset; - uint32_t payload_length; + uint8_t _pad0[0x1f1]; /* skip uninteresting stuff */ + uint8_t setup_sects; + uint16_t root_flags; + uint32_t syssize; + uint16_t ram_size; + uint16_t vid_mode; + uint16_t root_dev; + uint16_t boot_flag; + uint16_t jump; + uint32_t header; +#define HDR_MAGIC "HdrS" +#define HDR_MAGIC_SZ 4 + uint16_t version; +#define VERSION(h,l) (((h)<<8) | (l)) + uint32_t realmode_swtch; + uint16_t start_sys; + uint16_t kernel_version; + uint8_t type_of_loader; + uint8_t loadflags; + uint16_t setup_move_size; + uint32_t code32_start; + uint32_t ramdisk_image; + uint32_t ramdisk_size; + uint32_t bootsect_kludge; + uint16_t heap_end_ptr; + uint16_t _pad1; + uint32_t cmd_line_ptr; + uint32_t initrd_addr_max; + uint32_t kernel_alignment; + uint8_t relocatable_kernel; + uint8_t _pad2[3]; + uint32_t cmdline_size; + uint32_t hardware_subarch; + uint64_t hardware_subarch_data; + uint32_t payload_offset; + uint32_t payload_length; } __attribute__((packed)); extern struct xc_dom_loader elf_loader; @@ -70,22 +317,22 @@ return off; } -static int check_bzimage_kernel(struct xc_dom_image *dom, int verbose) +static int xc_dom_probe_bzimage_kernel(struct xc_dom_image *dom) { struct setup_header *hdr; + int ret; if ( dom->kernel_blob == NULL ) { - if ( verbose ) - xc_dom_panic(XC_INTERNAL_ERROR, "%s: no kernel image loaded\n", - __FUNCTION__); + xc_dom_panic(XC_INTERNAL_ERROR, "%s: no kernel image loaded\n", + __FUNCTION__); return -EINVAL; } + if ( dom->kernel_size < sizeof(struct setup_header) ) { - if ( verbose ) - xc_dom_panic(XC_INTERNAL_ERROR, "%s: kernel image too small\n", - __FUNCTION__); + xc_dom_panic(XC_INTERNAL_ERROR, "%s: kernel image too small\n", + __FUNCTION__); return -EINVAL; } @@ -93,39 +340,64 @@ if ( memcmp(&hdr->header, HDR_MAGIC, HDR_MAGIC_SZ) != 0 ) { - if ( verbose ) - xc_dom_panic(XC_INVALID_KERNEL, "%s: kernel is not a bzImage\n", - __FUNCTION__); + xc_dom_panic(XC_INVALID_KERNEL, "%s: kernel is not a bzImage\n", + __FUNCTION__); return -EINVAL; } if ( hdr->version < VERSION(2,8) ) { - if ( verbose ) - xc_dom_panic(XC_INVALID_KERNEL, "%s: boot protocol too old (%04x)\n", - __FUNCTION__, hdr->version); + xc_dom_panic(XC_INVALID_KERNEL, "%s: boot protocol too old (%04x)\n", + __FUNCTION__, hdr->version); return -EINVAL; } dom->kernel_blob = dom->kernel_blob + payload_offset(hdr); dom->kernel_size = hdr->payload_length; - if ( xc_dom_try_gunzip(dom, &dom->kernel_blob, &dom->kernel_size) == -1 ) + if ( memcmp(dom->kernel_blob, "\037\213", 2) == 0 ) + { + ret = xc_dom_try_gunzip(dom, &dom->kernel_blob, &dom->kernel_size); + if ( ret == -1 ) + { + xc_dom_panic(XC_INVALID_KERNEL, + "%s: unable to gzip decompress kernel\n", + __FUNCTION__); + return -EINVAL; + } + } + else if ( memcmp(dom->kernel_blob, "\102\132\150", 3) == 0 ) { - if ( verbose ) - xc_dom_panic(XC_INVALID_KERNEL, "%s: unable to decompress kernel\n", + ret = xc_try_bzip2_decode(dom, &dom->kernel_blob, &dom->kernel_size); + if ( ret < 0 ) + { + xc_dom_panic(XC_INVALID_KERNEL, + "%s unable to BZIP2 decompress kernel", __FUNCTION__); + return -EINVAL; + } + } + else if ( memcmp(dom->kernel_blob, "\135\000", 2) == 0 ) + { + ret = xc_try_lzma_decode(dom, &dom->kernel_blob, &dom->kernel_size); + if ( ret < 0 ) + { + xc_dom_panic(XC_INVALID_KERNEL, + "%s unable to LZMA decompress kernel\n", + __FUNCTION__); + return -EINVAL; + } + } + else + { + xc_dom_panic(XC_INVALID_KERNEL, "%s: unknown compression format\n", + __FUNCTION__); return -EINVAL; } return elf_loader.probe(dom); } -static int xc_dom_probe_bzimage_kernel(struct xc_dom_image *dom) -{ - return check_bzimage_kernel(dom, 0); -} - static int xc_dom_parse_bzimage_kernel(struct xc_dom_image *dom) { return elf_loader.parser(dom); xen-fix-videoram-option.patch: vl.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) --- NEW FILE xen-fix-videoram-option.patch --- Date: Mon, 10 Aug 2009 13:46:30 +0100 Message-ID: Subject: Re: [Xen-devel] [ANNOUNCE] Xen 3.3.2 and 3.4.1 released From: Andrew Lyon > > If that's not what you meant, what did you mean ? :-) > > Ian. > Yes that is the correct pair of patches, I have tested on x86_64 and I am able to create hvm with increased video ram, I do not see much value in applying a patch which does not work and then fixing it if both are not currently in 3.4 so here is a single patch instead, perhaps KUWAMURA Shin'ya can add a signed-off-by to this too. Signed-off-by: Andrew Lyon --- diff --git tools/ioemu-qemu-xen/vl.c tools/ioemu-qemu-xen/vl.c index b5bb5cb..3506977 100644 --- a/tools/ioemu-qemu-xen/vl.c +++ b/tools/ioemu-qemu-xen/vl.c @@ -4801,7 +4801,6 @@ int main(int argc, char **argv, char **envp) machine = first_machine; cpu_model = NULL; initrd_filename = NULL; - ram_size = VGA_RAM_SIZE; #ifdef CONFIG_GDBSTUB use_gdbstub = 0; gdbstub_port = DEFAULT_GDBSTUB_PORT; @@ -5654,13 +5653,6 @@ int main(int argc, char **argv, char **envp) } #endif -#if defined (__ia64__) - if (ram_size > VGA_IO_START) - ram_size += VGA_IO_SIZE; /* skip VGA I/O hole */ - if (ram_size > MMIO_START) - ram_size += 1 * MEM_G; /* skip 3G-4G MMIO, LEGACY_IO_SPACE etc. */ -#endif - /* init the bluetooth world */ for (i = 0; i < nb_bt_opts; i++) if (bt_parse(bt_opts[i])) @@ -5677,6 +5669,13 @@ int main(int argc, char **argv, char **envp) phys_ram_size = (machine->ram_require + vga_ram_size) & ~RAMSIZE_FIXED; +#if defined (__ia64__) + if (ram_size > VGA_IO_START) + ram_size += VGA_IO_SIZE; /* skip VGA I/O hole */ + if (ram_size > MMIO_START) + ram_size += 1 * MEM_G; /* skip 3G-4G MMIO, LEGACY_IO_SPACE etc. */ +#endif + if (machine->ram_require & RAMSIZE_FIXED) { if (ram_size > 0) { if (ram_size < phys_ram_size) { Andy _______________________________________________ Xen-devel mailing list Xen-devel at lists.xensource.com http://lists.xensource.com/xen-devel Index: xen.spec =================================================================== RCS file: /cvs/pkgs/rpms/xen/devel/xen.spec,v retrieving revision 1.246 retrieving revision 1.247 diff -u -p -r1.246 -r1.247 --- xen.spec 1 Sep 2009 11:46:49 -0000 1.246 +++ xen.spec 2 Sep 2009 11:36:00 -0000 1.247 @@ -6,7 +6,7 @@ Summary: Xen is a virtual machine monitor Name: xen Version: 3.4.1 -Release: 2%{?dist} +Release: 3%{?dist} Group: Development/Libraries License: GPLv2+ and LGPLv2+ and BSD URL: http://xen.org/ @@ -40,11 +40,8 @@ Patch10: xen-no-werror.patch # backports Patch20: xen-pygrub-fix-timeout-0.patch Patch21: xen-qemu-dm-fix-block-memory-leak.patch -Patch22: xen-stubdomain-bridging.patch - -Patch30: xen-bzip2-xz-1.patch -Patch31: xen-bzip2-xz-2.patch -Patch32: xen-bzip2-xz-3.patch +Patch22: xen-fix-videoram-option.patch +Patch23: xen-341-add-bzip2-lzma-pv-bootloader-support-v2.patch Patch100: xen-configure-xend.patch @@ -149,11 +146,8 @@ which manage Xen virtual machines. %patch20 -p1 %patch21 -p1 -#%patch22 -p1 - -%patch30 -p1 -%patch31 -p1 -#%patch32 -p1 +%patch22 -p1 +%patch23 -p1 %patch100 -p1 @@ -468,6 +462,10 @@ rm -rf %{buildroot} %{_libdir}/*.a %changelog +* Tue Sep 2 2009 Gerd Hoffmann - 3.4.1-3 +- swap bzip2+xz linux kernel compression support patches. +- backport one more bugfix (videoram option). + * Tue Sep 1 2009 Gerd Hoffmann - 3.4.1-2 - backport bzip2+xz linux kernel compression support. - backport a few bugfixes. --- xen-bzip2-xz-1.patch DELETED --- --- xen-bzip2-xz-2.patch DELETED --- --- xen-bzip2-xz-3.patch DELETED --- --- xen-stubdomain-bridging.patch DELETED --- From apevec at fedoraproject.org Wed Sep 2 13:45:01 2009 From: apevec at fedoraproject.org (Alan Pevec) Date: Wed, 2 Sep 2009 13:45:01 +0000 (UTC) Subject: [fedora-virt-maint] rpms/collectd/devel .cvsignore, 1.8, 1.9 collectd.spec, 1.23, 1.24 sources, 1.8, 1.9 Message-ID: <20090902134501.3BF5911C008C@cvs1.fedora.phx.redhat.com> Author: apevec Update of /cvs/pkgs/rpms/collectd/devel In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv27780 Modified Files: .cvsignore collectd.spec sources Log Message: * Wed Sep 02 2009 Alan Pevec 4.6.4-1 - fix condrestart: on upgrade collectd is not restarted, bz# 516273 - collectd does not re-connect to libvirtd, bz# 480997 - fix unpackaged files https://bugzilla.redhat.com/show_bug.cgi?id=516276#c4 - New upstream version 4.6.4 http://collectd.org/news.shtml#news69 Index: .cvsignore =================================================================== RCS file: /cvs/pkgs/rpms/collectd/devel/.cvsignore,v retrieving revision 1.8 retrieving revision 1.9 diff -u -p -r1.8 -r1.9 --- .cvsignore 20 May 2009 10:40:50 -0000 1.8 +++ .cvsignore 2 Sep 2009 13:45:01 -0000 1.9 @@ -1,2 +1 @@ -collectd-4.5.3.tar.bz2 -collectd-4.6.2.tar.bz2 +collectd-4.6.4.tar.bz2 Index: collectd.spec =================================================================== RCS file: /cvs/pkgs/rpms/collectd/devel/collectd.spec,v retrieving revision 1.23 retrieving revision 1.24 diff -u -p -r1.23 -r1.24 --- collectd.spec 21 Aug 2009 12:48:55 -0000 1.23 +++ collectd.spec 2 Sep 2009 13:45:01 -0000 1.24 @@ -1,15 +1,19 @@ Summary: Statistics collection daemon for filling RRD files Name: collectd -Version: 4.6.2 -Release: 5%{?dist} +Version: 4.6.4 +Release: 1%{?dist} License: GPLv2 Group: System Environment/Daemons URL: http://collectd.org/ Source: http://collectd.org/files/%{name}-%{version}.tar.bz2 -Patch0: %{name}-%{version}-include-collectd.d.patch +Patch0: %{name}-4.6.2-include-collectd.d.patch # bug 468067 "pkg-config --libs OpenIPMIpthread" fails -Patch1: %{name}-%{version}-configure-OpenIPMI.patch +Patch1: %{name}-4.6.2-configure-OpenIPMI.patch +# bug 516273 on upgrade collectd is not restarted +Patch2: %{name}-4.5.4-fix-condrestart.patch +# bug 480997 collectd does not re-connect to libvirtd +Patch3: %{name}-4.5.4-libvirt-reconnect.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root @@ -151,6 +155,8 @@ This plugin collects information from vi %setup -q %patch0 -p1 %patch1 -p0 +%patch2 -p0 +%patch3 -p1 sed -i.orig -e 's|-Werror||g' Makefile.in */Makefile.in @@ -221,7 +227,7 @@ done # *.la files shouldn't be distributed. -rm -f %{buildroot}/%{_libdir}/collectd/*.la +rm -f %{buildroot}/%{_libdir}/{collectd/,}*.la %post @@ -310,6 +316,24 @@ fi %{_libdir}/collectd/wireless.so %{_datadir}/collectd/types.db +%{_libdir}/collectd/bind.so +%{_libdir}/collectd/curl.so +%{_libdir}/collectd/match_regex.so +%{_libdir}/collectd/match_timediff.so +%{_libdir}/collectd/match_value.so +%{_libdir}/collectd/openvpn.so +%{_libdir}/collectd/target_notification.so +%{_libdir}/collectd/target_replace.so +%{_libdir}/collectd/target_set.so + +# collectdclient - TBD reintroduce -devel subpackage? +%{_libdir}/libcollectdclient.so +%{_libdir}/libcollectdclient.so.0 +%{_libdir}/libcollectdclient.so.0.0.0 +%{_libdir}/pkgconfig/libcollectdclient.pc +%{_includedir}/collectd/client.h +%{_includedir}/collectd/lcc_features.h + %doc AUTHORS ChangeLog COPYING INSTALL README %doc %{_mandir}/man1/collectd.1* %doc %{_mandir}/man1/collectd-nagios.1* @@ -407,6 +431,13 @@ fi %changelog +* Wed Sep 02 2009 Alan Pevec 4.6.4-1 +- fix condrestart: on upgrade collectd is not restarted, bz# 516273 +- collectd does not re-connect to libvirtd, bz# 480997 +- fix unpackaged files https://bugzilla.redhat.com/show_bug.cgi?id=516276#c4 +- New upstream version 4.6.4 + http://collectd.org/news.shtml#news69 + * Fri Aug 21 2009 Tomas Mraz - 4.6.2-5 - rebuilt with new openssl Index: sources =================================================================== RCS file: /cvs/pkgs/rpms/collectd/devel/sources,v retrieving revision 1.8 retrieving revision 1.9 diff -u -p -r1.8 -r1.9 --- sources 20 May 2009 10:40:50 -0000 1.8 +++ sources 2 Sep 2009 13:45:01 -0000 1.9 @@ -1,2 +1 @@ -f368200c4bedd64baba46094906e81ee collectd-4.5.3.tar.bz2 -ca1282372f15882ce07fdff6c61340d5 collectd-4.6.2.tar.bz2 +f4a1b16c57ba946d24c0db910febb950 collectd-4.6.4.tar.bz2 From apevec at fedoraproject.org Wed Sep 2 13:52:55 2009 From: apevec at fedoraproject.org (Alan Pevec) Date: Wed, 2 Sep 2009 13:52:55 +0000 (UTC) Subject: [fedora-virt-maint] rpms/collectd/devel collectd-4.5.4-fix-condrestart.patch, NONE, 1.1 collectd-4.5.4-libvirt-reconnect.patch, NONE, 1.1 Message-ID: <20090902135255.5AD7811C008C@cvs1.fedora.phx.redhat.com> Author: apevec Update of /cvs/pkgs/rpms/collectd/devel In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv31642 Added Files: collectd-4.5.4-fix-condrestart.patch collectd-4.5.4-libvirt-reconnect.patch Log Message: * Wed Sep 02 2009 Alan Pevec 4.6.4-1 - fix condrestart: on upgrade collectd is not restarted, bz# 516273 - collectd does not re-connect to libvirtd, bz# 480997 - fix unpackaged files https://bugzilla.redhat.com/show_bug.cgi?id=516276#c4 - New upstream version 4.6.4 http://collectd.org/news.shtml#news69 collectd-4.5.4-fix-condrestart.patch: init.d-collectd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- NEW FILE collectd-4.5.4-fix-condrestart.patch --- --- contrib/fedora/init.d-collectd.orig 2009-08-11 01:50:15.000000000 +0200 +++ contrib/fedora/init.d-collectd 2009-08-11 01:51:10.000000000 +0200 @@ -54,7 +54,7 @@ start ;; condrestart) - [ -f /var/lock/subsys/$prog ] && restart || : + [ -f /var/lock/subsys/$prog ] && stop && start || : ;; *) echo $"Usage: $0 {start|stop|status|restart|reload|condrestart}" collectd-4.5.4-libvirt-reconnect.patch: libvirt.c | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) --- NEW FILE collectd-4.5.4-libvirt-reconnect.patch --- --- a/src/libvirt.c 2009-08-11 23:27:35.000000000 +0200 +++ b/src/libvirt.c 2009-08-12 00:14:58.000000000 +0200 @@ -49,6 +49,8 @@ /* Connection. */ static virConnectPtr conn = 0; +static char *conn_string = NULL; +static int conn_count = 0; /* Seconds between list refreshes, 0 disables completely. */ static int interval = 60; @@ -153,14 +155,14 @@ il_interface_devices = ignorelist_create (1); if (strcasecmp (key, "Connection") == 0) { - if (conn != 0) { + if (conn_count++ != 0) { ERROR ("Connection may only be given once in config file"); return 1; } - conn = virConnectOpenReadOnly (value); - if (!conn) { - VIRT_ERROR (NULL, "connection failed"); - return 1; + conn_string = strdup(value); + if (conn_string == NULL) { + ERROR ("libvirt plugin: Connection strdup failed."); + return -1; } return 0; } @@ -253,10 +255,11 @@ int i; if (conn == NULL) { - ERROR ("libvirt plugin: Not connected. Use Connection in " - "config file to supply connection URI. For more information " - "see "); - return -1; + conn = virConnectOpenReadOnly (conn_string); + if (conn == NULL) { + ERROR ("libvirt plugin: Not connected."); + return -1; + } } time (&t); @@ -264,8 +267,12 @@ /* Need to refresh domain or device lists? */ if ((last_refresh == (time_t) 0) || ((interval > 0) && ((last_refresh + interval) <= t))) { - if (refresh_lists () != 0) + if (refresh_lists () != 0) { + if (conn != NULL) + virConnectClose (conn); + conn = NULL; return -1; + } last_refresh = t; } From buildsys at fedoraproject.org Thu Sep 3 10:12:21 2009 From: buildsys at fedoraproject.org (buildsys at fedoraproject.org) Date: Thu, 3 Sep 2009 10:12:21 +0000 (UTC) Subject: [fedora-virt-maint] Broken dependencies: collectd Message-ID: <20090903101221.EE4301F81D6@releng2.fedora.phx.redhat.com> collectd has broken dependencies in the development tree: On ppc: collectd-mysql-4.5.3-2.fc11.ppc requires libcrypto.so.8 collectd-mysql-4.5.3-2.fc11.ppc requires libssl.so.8 On x86_64: collectd-mysql-4.5.3-2.fc11.x86_64 requires libcrypto.so.8()(64bit) collectd-mysql-4.5.3-2.fc11.x86_64 requires libssl.so.8()(64bit) On i386: collectd-mysql-4.5.3-2.fc11.i586 requires libcrypto.so.8 collectd-mysql-4.5.3-2.fc11.i586 requires libssl.so.8 On ppc64: collectd-mysql-4.5.3-2.fc11.ppc64 requires libcrypto.so.8()(64bit) collectd-mysql-4.5.3-2.fc11.ppc64 requires libssl.so.8()(64bit) On ppc: collectd-nut-4.5.3-2.fc11.ppc requires libcrypto.so.8 collectd-nut-4.5.3-2.fc11.ppc requires libssl.so.8 On x86_64: collectd-nut-4.5.3-2.fc11.x86_64 requires libcrypto.so.8()(64bit) collectd-nut-4.5.3-2.fc11.x86_64 requires libssl.so.8()(64bit) On i386: collectd-nut-4.5.3-2.fc11.i586 requires libcrypto.so.8 collectd-nut-4.5.3-2.fc11.i586 requires libssl.so.8 On ppc64: collectd-nut-4.5.3-2.fc11.ppc64 requires libcrypto.so.8()(64bit) collectd-nut-4.5.3-2.fc11.ppc64 requires libssl.so.8()(64bit) On ppc: collectd-snmp-4.5.3-2.fc11.ppc requires libcrypto.so.8 On x86_64: collectd-snmp-4.5.3-2.fc11.x86_64 requires libcrypto.so.8()(64bit) On i386: collectd-snmp-4.5.3-2.fc11.i586 requires libcrypto.so.8 On ppc64: collectd-snmp-4.5.3-2.fc11.ppc64 requires libcrypto.so.8()(64bit) Please resolve this as soon as possible. From crobinso at fedoraproject.org Thu Sep 3 15:54:48 2009 From: crobinso at fedoraproject.org (Cole Robinson) Date: Thu, 3 Sep 2009 15:54:48 +0000 (UTC) Subject: [fedora-virt-maint] rpms/gnome-applet-vm/devel dead.package, NONE, 1.1 Makefile, 1.2, NONE gnome-applet-vm-0.2.0-gnome-libs.patch, 1.2, NONE gnome-applet-vm.spec, 1.26, NONE sources, 1.10, NONE Message-ID: <20090903155448.59EB211C0099@cvs1.fedora.phx.redhat.com> Author: crobinso Update of /cvs/pkgs/rpms/gnome-applet-vm/devel In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv30468 Added Files: dead.package Removed Files: Makefile gnome-applet-vm-0.2.0-gnome-libs.patch gnome-applet-vm.spec sources Log Message: Mark package as dead in devel branch. Upstream is dead, virt-manager now has similar functionality. --- NEW FILE dead.package --- Dead upstream, largely obsoleted by virt-manager 0.8.0. --- Makefile DELETED --- --- gnome-applet-vm-0.2.0-gnome-libs.patch DELETED --- --- gnome-applet-vm.spec DELETED --- --- sources DELETED --- From markmc at fedoraproject.org Fri Sep 4 07:22:11 2009 From: markmc at fedoraproject.org (Mark McLoughlin) Date: Fri, 4 Sep 2009 07:22:11 +0000 (UTC) Subject: [fedora-virt-maint] rpms/qemu/devel qemu-fix-no-kvm-segfault.patch, 1.1, 1.2 Message-ID: <20090904072211.39E9711C0082@cvs1.fedora.phx.redhat.com> Author: markmc Update of /cvs/pkgs/rpms/qemu/devel In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv7992 Modified Files: qemu-fix-no-kvm-segfault.patch Log Message: Sync from git qemu-fix-no-kvm-segfault.patch: exec.c | 4 ---- 1 file changed, 4 deletions(-) Index: qemu-fix-no-kvm-segfault.patch =================================================================== RCS file: /cvs/pkgs/rpms/qemu/devel/qemu-fix-no-kvm-segfault.patch,v retrieving revision 1.1 retrieving revision 1.2 diff -u -p -r1.1 -r1.2 --- qemu-fix-no-kvm-segfault.patch 20 Aug 2009 12:56:37 -0000 1.1 +++ qemu-fix-no-kvm-segfault.patch 4 Sep 2009 07:22:09 -0000 1.2 @@ -1,5 +1,5 @@ -From add286b6e753f14e4ae0ab6b831441aea0d35497 Mon Sep 17 00:00:00 2001 -From: Richard Jones +From aa1620047bb49079f4c114326d43fb9aa7a26065 Mon Sep 17 00:00:00 2001 +From: Richard Jones Date: Thu, 20 Aug 2009 13:52:20 +0100 Subject: [PATCH] Workaround segfault when qemu-kvm runs inside a VM (RHBZ#516543). @@ -11,15 +11,18 @@ http://www.mail-archive.com/kvm at vger.ker Note: NOT UPSTREAM and this is something of a hack. Upstream are still debating how they really want to fix this. + +Signed-off-by: Richard Jones +Fedora-patch: qemu-fix-no-kvm-segfault.patch --- exec.c | 3 --- 1 files changed, 0 insertions(+), 3 deletions(-) diff --git a/exec.c b/exec.c -index 705bcf2..2091516 100644 +index 88bcff5..721fcff 100644 --- a/exec.c +++ b/exec.c -@@ -422,9 +422,6 @@ static uint8_t static_code_gen_buffer[DEFAULT_CODE_GEN_BUFFER_SIZE]; +@@ -421,9 +421,6 @@ static uint8_t static_code_gen_buffer[DEFAULT_CODE_GEN_BUFFER_SIZE]; static void code_gen_alloc(unsigned long tb_size) { @@ -30,5 +33,5 @@ index 705bcf2..2091516 100644 code_gen_buffer = static_code_gen_buffer; code_gen_buffer_size = DEFAULT_CODE_GEN_BUFFER_SIZE; -- -1.6.4 +1.6.2.5 From buildsys at fedoraproject.org Fri Sep 4 10:06:11 2009 From: buildsys at fedoraproject.org (buildsys at fedoraproject.org) Date: Fri, 4 Sep 2009 10:06:11 +0000 (UTC) Subject: [fedora-virt-maint] Broken dependencies: collectd Message-ID: <20090904100611.88B091F821D@releng2.fedora.phx.redhat.com> collectd has broken dependencies in the development tree: On ppc: collectd-mysql-4.5.3-2.fc11.ppc requires libcrypto.so.8 collectd-mysql-4.5.3-2.fc11.ppc requires libssl.so.8 On x86_64: collectd-mysql-4.5.3-2.fc11.x86_64 requires libcrypto.so.8()(64bit) collectd-mysql-4.5.3-2.fc11.x86_64 requires libssl.so.8()(64bit) On i386: collectd-mysql-4.5.3-2.fc11.i586 requires libcrypto.so.8 collectd-mysql-4.5.3-2.fc11.i586 requires libssl.so.8 On ppc64: collectd-mysql-4.5.3-2.fc11.ppc64 requires libcrypto.so.8()(64bit) collectd-mysql-4.5.3-2.fc11.ppc64 requires libssl.so.8()(64bit) On ppc: collectd-nut-4.5.3-2.fc11.ppc requires libcrypto.so.8 collectd-nut-4.5.3-2.fc11.ppc requires libssl.so.8 On x86_64: collectd-nut-4.5.3-2.fc11.x86_64 requires libcrypto.so.8()(64bit) collectd-nut-4.5.3-2.fc11.x86_64 requires libssl.so.8()(64bit) On i386: collectd-nut-4.5.3-2.fc11.i586 requires libcrypto.so.8 collectd-nut-4.5.3-2.fc11.i586 requires libssl.so.8 On ppc64: collectd-nut-4.5.3-2.fc11.ppc64 requires libcrypto.so.8()(64bit) collectd-nut-4.5.3-2.fc11.ppc64 requires libssl.so.8()(64bit) On ppc: collectd-snmp-4.5.3-2.fc11.ppc requires libcrypto.so.8 On x86_64: collectd-snmp-4.5.3-2.fc11.x86_64 requires libcrypto.so.8()(64bit) On i386: collectd-snmp-4.5.3-2.fc11.i586 requires libcrypto.so.8 On ppc64: collectd-snmp-4.5.3-2.fc11.ppc64 requires libcrypto.so.8()(64bit) Please resolve this as soon as possible. From markmc at fedoraproject.org Fri Sep 4 10:09:56 2009 From: markmc at fedoraproject.org (Mark McLoughlin) Date: Fri, 4 Sep 2009 10:09:56 +0000 (UTC) Subject: [fedora-virt-maint] rpms/qemu/F-11 qemu-use-statfs-to-determine-huge-page-size.patch, NONE, 1.1 qemu.spec, 1.100, 1.101 Message-ID: <20090904100956.7C94811C0082@cvs1.fedora.phx.redhat.com> Author: markmc Update of /cvs/pkgs/rpms/qemu/F-11 In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv10568 Modified Files: qemu.spec Added Files: qemu-use-statfs-to-determine-huge-page-size.patch Log Message: * Fri Sep 4 2009 Mark McLoughlin - 2:0.10.6-3 - Use statfs to determine huge page size, fixing fd leak (#519378) qemu-use-statfs-to-determine-huge-page-size.patch: sysemu.h | 2 +- vl.c | 43 +++++++++++++++++++------------------------ 2 files changed, 20 insertions(+), 25 deletions(-) --- NEW FILE qemu-use-statfs-to-determine-huge-page-size.patch --- >From 046661932789fd11acc1293e2106a3eba3e6c840 Mon Sep 17 00:00:00 2001 From: Joerg Roedel Date: Fri, 27 Mar 2009 15:34:38 +0100 Subject: [PATCH] Use statfs to determine size of huge pages The current method of finding out the size of huge pages does not work reliably anymore. Current Linux supports more than one huge page size but /proc/meminfo only show one of the supported sizes. To find out the real page size used can be found by calling statfs. This patch changes qemu to use statfs instead of parsing /proc/meminfo. (cherry picked from commit f1ac0931a1aeadab2569b7001ec35250e695d94f) Signed-off-by: Joerg Roedel Signed-off-by: Avi Kivity Signed-off-by: Mark McLoughlin Fedora-patch: qemu-use-statfs-to-determine-huge-page-size.patch --- sysemu.h | 2 +- vl.c | 42 +++++++++++++++++++----------------------- 2 files changed, 20 insertions(+), 24 deletions(-) diff --git a/sysemu.h b/sysemu.h index 7ca08c1..e8e746d 100644 --- a/sysemu.h +++ b/sysemu.h @@ -100,7 +100,7 @@ extern int graphic_rotate; extern int no_quit; extern int semihosting_enabled; extern int old_param; -extern int hpagesize; +extern long hpagesize; extern const char *bootp_filename; #ifdef USE_KQEMU diff --git a/vl.c b/vl.c index 1774d1c..0bfa380 100644 --- a/vl.c +++ b/vl.c @@ -62,6 +62,7 @@ #include #include #include +#include #include #include #if defined(__NetBSD__) @@ -256,7 +257,7 @@ const char *mem_path = NULL; #ifdef MAP_POPULATE int mem_prealloc = 1; /* force preallocation of physical target memory */ #endif -int hpagesize = 0; +long hpagesize = 0; const char *cpu_vendor_string; #ifdef TARGET_ARM int old_param = 0; @@ -4722,32 +4723,27 @@ void qemu_get_launch_info(int *argc, char ***argv, int *opt_daemonize, const cha } #ifdef USE_KVM -static int gethugepagesize(void) + +#define HUGETLBFS_MAGIC 0x958458f6 + +static long gethugepagesize(const char *path) { - int ret, fd; - char buf[4096]; - const char *needle = "Hugepagesize:"; - char *size; - unsigned long hugepagesize; + struct statfs fs; + int ret; - fd = open("/proc/meminfo", O_RDONLY); - if (fd < 0) { - perror("open"); - exit(0); - } + do { + ret = statfs(path, &fs); + } while (ret != 0 && errno == EINTR); - ret = read(fd, buf, sizeof(buf)); - if (ret < 0) { - perror("read"); - exit(0); + if (ret != 0) { + perror("statfs"); + return 0; } - size = strstr(buf, needle); - if (!size) - return 0; - size += strlen(needle); - hugepagesize = strtol(size, NULL, 0); - return hugepagesize; + if (fs.f_type != HUGETLBFS_MAGIC) + fprintf(stderr, "Warning: path not on HugeTLBFS: %s\n", path); + + return fs.f_bsize; } static void *alloc_mem_area(size_t memory, unsigned long *len, const char *path) @@ -4767,7 +4763,7 @@ static void *alloc_mem_area(size_t memory, unsigned long *len, const char *path) if (asprintf(&filename, "%s/kvm.XXXXXX", path) == -1) return NULL; - hpagesize = gethugepagesize() * 1024; + hpagesize = gethugepagesize(path); if (!hpagesize) return NULL; -- 1.6.2.5 Index: qemu.spec =================================================================== RCS file: /cvs/pkgs/rpms/qemu/F-11/qemu.spec,v retrieving revision 1.100 retrieving revision 1.101 diff -u -p -r1.100 -r1.101 --- qemu.spec 18 Aug 2009 10:06:17 -0000 1.100 +++ qemu.spec 4 Sep 2009 10:09:56 -0000 1.101 @@ -1,7 +1,7 @@ Summary: QEMU is a FAST! processor emulator Name: qemu Version: 0.10.6 -Release: 2%{?dist} +Release: 3%{?dist} # Epoch because we pushed a qemu-1.0 package Epoch: 2 License: GPLv2+ and LGPLv2+ and BSD @@ -29,6 +29,7 @@ Patch13: qemu-bios-bigger-roms.patch Patch14: qemu-kvm-fix-kerneldir-includes.patch Patch15: qemu-avoid-harmless-msr-warnings.patch Patch16: qemu-ppc-on-ppc.patch +Patch17: qemu-use-statfs-to-determine-huge-page-size.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: SDL-devel zlib-devel which texi2html gnutls-devel cyrus-sasl-devel @@ -225,6 +226,7 @@ such as kvmtrace and kvm_stat. %patch14 -p1 %patch15 -p1 %patch16 -p1 +%patch17 -p1 %build # systems like rhel build system does not have a recent enough linker so @@ -467,6 +469,9 @@ fi %{_mandir}/man1/qemu-img.1* %changelog +* Fri Sep 4 2009 Mark McLoughlin - 2:0.10.6-3 +- Use statfs to determine huge page size, fixing fd leak (#519378) + * Tue Aug 18 2009 Mark McLoughlin - 2:0.10.6-2 - Allow blacklisting of kvm modules (#517866) From markmc at fedoraproject.org Fri Sep 4 10:34:33 2009 From: markmc at fedoraproject.org (Mark McLoughlin) Date: Fri, 4 Sep 2009 10:34:33 +0000 (UTC) Subject: [fedora-virt-maint] rpms/qemu/devel qemu-allow-pulseaudio-to-be-the-default.patch, NONE, 1.1 qemu.spec, 1.123, 1.124 Message-ID: <20090904103433.3351B11C0082@cvs1.fedora.phx.redhat.com> Author: markmc Update of /cvs/pkgs/rpms/qemu/devel In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv20629 Modified Files: qemu.spec Added Files: qemu-allow-pulseaudio-to-be-the-default.patch Log Message: * Fri Sep 4 2009 Mark McLoughlin - 2:0.10.91-0.9.rc1 - Make pulseaudio the default audio backend (#519540, #495964, #496627) qemu-allow-pulseaudio-to-be-the-default.patch: paaudio.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) --- NEW FILE qemu-allow-pulseaudio-to-be-the-default.patch --- >From 01c3198a8f0d933c9b219acaf087c675d729bbf7 Mon Sep 17 00:00:00 2001 From: Mark McLoughlin Date: Fri, 4 Sep 2009 11:24:03 +0100 Subject: [PATCH] Allow pulseaudio backend to be the default We're seeing various issues with the SDL audio backend and want to switch to the pulseaudio backend. See e.g. https://bugzilla.redhat.com/495964 https://bugzilla.redhat.com/519540 https://bugzilla.redhat.com/496627 The pulseaudio backend seems to work well, so we should allow it to be selected as the default. Signed-off-by: Mark McLoughlin Fedora-patch: qemu-allow-pulseaudio-to-be-the-default.patch --- audio/paaudio.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/audio/paaudio.c b/audio/paaudio.c index a50fccc..547e252 100644 --- a/audio/paaudio.c +++ b/audio/paaudio.c @@ -507,7 +507,7 @@ struct audio_driver pa_audio_driver = { INIT_FIELD (init = ) qpa_audio_init, INIT_FIELD (fini = ) qpa_audio_fini, INIT_FIELD (pcm_ops = ) &qpa_pcm_ops, - INIT_FIELD (can_be_default = ) 0, + INIT_FIELD (can_be_default = ) 1, INIT_FIELD (max_voices_out = ) INT_MAX, INIT_FIELD (max_voices_in = ) INT_MAX, INIT_FIELD (voice_size_out = ) sizeof (PAVoiceOut), -- 1.6.2.5 Index: qemu.spec =================================================================== RCS file: /cvs/pkgs/rpms/qemu/devel/qemu.spec,v retrieving revision 1.123 retrieving revision 1.124 diff -u -p -r1.123 -r1.124 --- qemu.spec 20 Aug 2009 12:57:48 -0000 1.123 +++ qemu.spec 4 Sep 2009 10:34:32 -0000 1.124 @@ -4,7 +4,7 @@ Summary: QEMU is a FAST! processor emulator Name: qemu Version: 0.10.91 -Release: 0.8.%{kvmvertag}%{?dist} +Release: 0.9.%{kvmvertag}%{?dist} # Epoch because we pushed a qemu-1.0 package Epoch: 2 License: GPLv2+ and LGPLv2+ and BSD @@ -34,19 +34,12 @@ Patch05: qemu-fix-extboot-signrom.patch # Fix virtio_net with -net user (bug #516022) Patch06: qemu-fix-vnet-hdr-slirp-bustage.patch -# Fix segfault when qemu-kvm is invoked inside a VM (where HVM is not -# available). RHBZ#516543 -# -# Regression was introduced by this commit: -# http://git.kernel.org/?p=virt/kvm/qemu-kvm.git;a=commitdiff;h=b8083e930efc1ee85a7ad7e700dbd0f52ebb32dd -# -# Upstream discussion: -# http://www.mail-archive.com/kvm at vger.kernel.org/msg19890.html -# -# Note: NOT UPSTREAM and this is something of a hack. Upstream are -# still debating how they really want to fix this. +# Fix segfault when qemu-kvm is invoked inside a VM (bug #516543) Patch07: qemu-fix-no-kvm-segfault.patch +# Allow the pulseudio backend to be the default +Patch08: qemu-allow-pulseaudio-to-be-the-default.patch + BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: SDL-devel zlib-devel which texi2html gnutls-devel cyrus-sasl-devel BuildRequires: rsync dev86 iasl @@ -234,6 +227,7 @@ such as kvmtrace and kvm_stat. %patch05 -p1 %patch06 -p1 %patch07 -p1 +%patch08 -p1 %build # systems like rhel build system does not have a recent enough linker so @@ -498,6 +492,9 @@ getent passwd qemu >/dev/null || \ %{_mandir}/man1/qemu-img.1* %changelog +* Fri Sep 4 2009 Mark McLoughlin - 2:0.10.91-0.9.rc1 +- Make pulseaudio the default audio backend (#519540, #495964, #496627) + * Thu Aug 20 2009 Richard W.M. Jones - 2:0.10.91-0.8.rc1 - Fix segfault when qemu-kvm is invoked inside a VM (#516543) From markmc at fedoraproject.org Fri Sep 4 10:38:39 2009 From: markmc at fedoraproject.org (Mark McLoughlin) Date: Fri, 4 Sep 2009 10:38:39 +0000 (UTC) Subject: [fedora-virt-maint] rpms/qemu/F-11 qemu-allow-pulseaudio-to-be-the-default.patch, NONE, 1.1 qemu.spec, 1.101, 1.102 Message-ID: <20090904103839.E621611C0082@cvs1.fedora.phx.redhat.com> Author: markmc Update of /cvs/pkgs/rpms/qemu/F-11 In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv21787 Modified Files: qemu.spec Added Files: qemu-allow-pulseaudio-to-be-the-default.patch Log Message: * Fri Sep 4 2009 Mark McLoughlin - 2:0.10.6-4 - Make pulseaudio the default audio backend (#519540, #495964, #496627) qemu-allow-pulseaudio-to-be-the-default.patch: paaudio.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) --- NEW FILE qemu-allow-pulseaudio-to-be-the-default.patch --- >From a9459944fec8e338826eedbce844ce5c1c1ff948 Mon Sep 17 00:00:00 2001 From: Mark McLoughlin Date: Fri, 4 Sep 2009 11:24:03 +0100 Subject: [PATCH] Allow pulseaudio backend to be the default We're seeing various issues with the SDL audio backend and want to switch to the pulseaudio backend. See e.g. https://bugzilla.redhat.com/495964 https://bugzilla.redhat.com/519540 https://bugzilla.redhat.com/496627 The pulseaudio backend seems to work well, so we should allow it to be selected as the default. Signed-off-by: Mark McLoughlin Fedora-patch: qemu-allow-pulseaudio-to-be-the-default.patch --- audio/paaudio.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/audio/paaudio.c b/audio/paaudio.c index ff43bdd..081087a 100644 --- a/audio/paaudio.c +++ b/audio/paaudio.c @@ -507,7 +507,7 @@ struct audio_driver pa_audio_driver = { INIT_FIELD (init = ) qpa_audio_init, INIT_FIELD (fini = ) qpa_audio_fini, INIT_FIELD (pcm_ops = ) &qpa_pcm_ops, - INIT_FIELD (can_be_default = ) 0, + INIT_FIELD (can_be_default = ) 1, INIT_FIELD (max_voices_out = ) INT_MAX, INIT_FIELD (max_voices_in = ) INT_MAX, INIT_FIELD (voice_size_out = ) sizeof (PAVoiceOut), -- 1.6.2.5 Index: qemu.spec =================================================================== RCS file: /cvs/pkgs/rpms/qemu/F-11/qemu.spec,v retrieving revision 1.101 retrieving revision 1.102 diff -u -p -r1.101 -r1.102 --- qemu.spec 4 Sep 2009 10:09:56 -0000 1.101 +++ qemu.spec 4 Sep 2009 10:38:39 -0000 1.102 @@ -1,7 +1,7 @@ Summary: QEMU is a FAST! processor emulator Name: qemu Version: 0.10.6 -Release: 3%{?dist} +Release: 4%{?dist} # Epoch because we pushed a qemu-1.0 package Epoch: 2 License: GPLv2+ and LGPLv2+ and BSD @@ -30,6 +30,7 @@ Patch14: qemu-kvm-fix-kerneldir-includes Patch15: qemu-avoid-harmless-msr-warnings.patch Patch16: qemu-ppc-on-ppc.patch Patch17: qemu-use-statfs-to-determine-huge-page-size.patch +Patch18: qemu-allow-pulseaudio-to-be-the-default.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: SDL-devel zlib-devel which texi2html gnutls-devel cyrus-sasl-devel @@ -227,6 +228,7 @@ such as kvmtrace and kvm_stat. %patch15 -p1 %patch16 -p1 %patch17 -p1 +%patch18 -p1 %build # systems like rhel build system does not have a recent enough linker so @@ -469,6 +471,9 @@ fi %{_mandir}/man1/qemu-img.1* %changelog +* Fri Sep 4 2009 Mark McLoughlin - 2:0.10.6-4 +- Make pulseaudio the default audio backend (#519540, #495964, #496627) + * Fri Sep 4 2009 Mark McLoughlin - 2:0.10.6-3 - Use statfs to determine huge page size, fixing fd leak (#519378) From buildsys at fedoraproject.org Sat Sep 5 10:43:19 2009 From: buildsys at fedoraproject.org (buildsys at fedoraproject.org) Date: Sat, 5 Sep 2009 10:43:19 +0000 (UTC) Subject: [fedora-virt-maint] Broken dependencies: collectd Message-ID: <20090905104319.035E81F8224@releng2.fedora.phx.redhat.com> collectd has broken dependencies in the development tree: On ppc: collectd-mysql-4.5.3-2.fc11.ppc requires libcrypto.so.8 collectd-mysql-4.5.3-2.fc11.ppc requires libssl.so.8 On x86_64: collectd-mysql-4.5.3-2.fc11.x86_64 requires libcrypto.so.8()(64bit) collectd-mysql-4.5.3-2.fc11.x86_64 requires libssl.so.8()(64bit) On i386: collectd-mysql-4.5.3-2.fc11.i586 requires libcrypto.so.8 collectd-mysql-4.5.3-2.fc11.i586 requires libssl.so.8 On ppc64: collectd-mysql-4.5.3-2.fc11.ppc64 requires libcrypto.so.8()(64bit) collectd-mysql-4.5.3-2.fc11.ppc64 requires libssl.so.8()(64bit) On ppc: collectd-nut-4.5.3-2.fc11.ppc requires libcrypto.so.8 collectd-nut-4.5.3-2.fc11.ppc requires libssl.so.8 On x86_64: collectd-nut-4.5.3-2.fc11.x86_64 requires libcrypto.so.8()(64bit) collectd-nut-4.5.3-2.fc11.x86_64 requires libssl.so.8()(64bit) On i386: collectd-nut-4.5.3-2.fc11.i586 requires libcrypto.so.8 collectd-nut-4.5.3-2.fc11.i586 requires libssl.so.8 On ppc64: collectd-nut-4.5.3-2.fc11.ppc64 requires libcrypto.so.8()(64bit) collectd-nut-4.5.3-2.fc11.ppc64 requires libssl.so.8()(64bit) On ppc: collectd-snmp-4.5.3-2.fc11.ppc requires libcrypto.so.8 On x86_64: collectd-snmp-4.5.3-2.fc11.x86_64 requires libcrypto.so.8()(64bit) On i386: collectd-snmp-4.5.3-2.fc11.i586 requires libcrypto.so.8 On ppc64: collectd-snmp-4.5.3-2.fc11.ppc64 requires libcrypto.so.8()(64bit) Please resolve this as soon as possible. From buildsys at fedoraproject.org Sun Sep 6 10:00:30 2009 From: buildsys at fedoraproject.org (buildsys at fedoraproject.org) Date: Sun, 6 Sep 2009 10:00:30 +0000 (UTC) Subject: [fedora-virt-maint] Broken dependencies: collectd Message-ID: <20090906100030.698B31F821B@releng2.fedora.phx.redhat.com> collectd has broken dependencies in the development tree: On ppc: collectd-mysql-4.5.3-2.fc11.ppc requires libcrypto.so.8 collectd-mysql-4.5.3-2.fc11.ppc requires libssl.so.8 On x86_64: collectd-mysql-4.5.3-2.fc11.x86_64 requires libcrypto.so.8()(64bit) collectd-mysql-4.5.3-2.fc11.x86_64 requires libssl.so.8()(64bit) On i386: collectd-mysql-4.5.3-2.fc11.i586 requires libcrypto.so.8 collectd-mysql-4.5.3-2.fc11.i586 requires libssl.so.8 On ppc64: collectd-mysql-4.5.3-2.fc11.ppc64 requires libcrypto.so.8()(64bit) collectd-mysql-4.5.3-2.fc11.ppc64 requires libssl.so.8()(64bit) On ppc: collectd-nut-4.5.3-2.fc11.ppc requires libcrypto.so.8 collectd-nut-4.5.3-2.fc11.ppc requires libssl.so.8 On x86_64: collectd-nut-4.5.3-2.fc11.x86_64 requires libcrypto.so.8()(64bit) collectd-nut-4.5.3-2.fc11.x86_64 requires libssl.so.8()(64bit) On i386: collectd-nut-4.5.3-2.fc11.i586 requires libcrypto.so.8 collectd-nut-4.5.3-2.fc11.i586 requires libssl.so.8 On ppc64: collectd-nut-4.5.3-2.fc11.ppc64 requires libcrypto.so.8()(64bit) collectd-nut-4.5.3-2.fc11.ppc64 requires libssl.so.8()(64bit) On ppc: collectd-snmp-4.5.3-2.fc11.ppc requires libcrypto.so.8 On x86_64: collectd-snmp-4.5.3-2.fc11.x86_64 requires libcrypto.so.8()(64bit) On i386: collectd-snmp-4.5.3-2.fc11.i586 requires libcrypto.so.8 On ppc64: collectd-snmp-4.5.3-2.fc11.ppc64 requires libcrypto.so.8()(64bit) Please resolve this as soon as possible. From markmc at fedoraproject.org Sun Sep 6 13:46:21 2009 From: markmc at fedoraproject.org (Mark McLoughlin) Date: Sun, 6 Sep 2009 13:46:21 +0000 (UTC) Subject: [fedora-virt-maint] rpms/libvirt/devel .cvsignore, 1.45, 1.46 libvirt.spec, 1.173, 1.174 sources, 1.46, 1.47 libvirt-0.7.0-chown-kernel-initrd-before-spawning-qemu.patch, 1.2, NONE libvirt-0.7.0-handle-kernels-with-no-ipv6-support.patch, 1.2, NONE libvirt-0.7.0-numa-ignore-fail.patch, 1.2, NONE libvirt-0.7.0-policy-kit-rewrite.patch, 1.2, NONE libvirt-add-pci-hostdev-hotplug-support.patch, 1.1, NONE libvirt-add-space-to-nodedev-list-tree.patch, 1.1, NONE libvirt-allow-pci-hostdev-reset-to-reset-other-devices.patch, 1.1, NONE libvirt-allow-pm-reset-on-multi-function-pci-devices.patch, 1.1, NONE libvirt-fix-device-list-update-after-detach.patch, 1.1, NONE libvirt-fix-migration-completion-with-newer-qemu.patch, 1.1, NONE libvirt-improve-pci-hostdev-reset-error-message.patch, 1.1, NONE libvirt-reattach-pci-hostdevs-after-guest-shutdown.patch, 1.1, NONE Message-ID: <20090906134621.5976911C00E5@cvs1.fedora.phx.redhat.com> Author: markmc Update of /cvs/pkgs/rpms/libvirt/devel In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv7401 Modified Files: .cvsignore libvirt.spec sources Removed Files: libvirt-0.7.0-chown-kernel-initrd-before-spawning-qemu.patch libvirt-0.7.0-handle-kernels-with-no-ipv6-support.patch libvirt-0.7.0-numa-ignore-fail.patch libvirt-0.7.0-policy-kit-rewrite.patch libvirt-add-pci-hostdev-hotplug-support.patch libvirt-add-space-to-nodedev-list-tree.patch libvirt-allow-pci-hostdev-reset-to-reset-other-devices.patch libvirt-allow-pm-reset-on-multi-function-pci-devices.patch libvirt-fix-device-list-update-after-detach.patch libvirt-fix-migration-completion-with-newer-qemu.patch libvirt-improve-pci-hostdev-reset-error-message.patch libvirt-reattach-pci-hostdevs-after-guest-shutdown.patch Log Message: * Sun Sep 6 2009 Mark McLoughlin - 0.7.1-0.1.gitg3ef2e05 - Update to pre-release git snapshot of 0.7.1 - Drop upstreamed patches Index: .cvsignore =================================================================== RCS file: /cvs/pkgs/rpms/libvirt/devel/.cvsignore,v retrieving revision 1.45 retrieving revision 1.46 diff -u -p -r1.45 -r1.46 --- .cvsignore 5 Aug 2009 15:24:45 -0000 1.45 +++ .cvsignore 6 Sep 2009 13:46:19 -0000 1.46 @@ -3,12 +3,3 @@ i686 x86_64 libvirt-*.tar.gz -libvirt-0.6.0.tar.gz -libvirt-0.6.1.tar.gz -libvirt-0.6.2.tar.gz -libvirt-0.6.3.tar.gz -libvirt-0.6.4.tar.gz -libvirt-0.6.5.tar.gz -libvirt-0.7.0-0.1.gitf055724.tar.gz -libvirt-0.7.0-0.6.gite195b43.tar.gz -libvirt-0.7.0.tar.gz Index: libvirt.spec =================================================================== RCS file: /cvs/pkgs/rpms/libvirt/devel/libvirt.spec,v retrieving revision 1.173 retrieving revision 1.174 diff -u -p -r1.173 -r1.174 --- libvirt.spec 21 Aug 2009 10:19:53 -0000 1.173 +++ libvirt.spec 6 Sep 2009 13:46:19 -0000 1.174 @@ -12,6 +12,7 @@ %define with_libvirtd 0%{!?_without_libvirtd:1} %define with_uml 0%{!?_without_uml:1} %define with_one 0%{!?_without_one:1} +%define with_phyp 0%{!?_without_phyp:1} %define with_network 0%{!?_without_network:1} %define with_storage_fs 0%{!?_without_storage_fs:1} %define with_storage_lvm 0%{!?_without_storage_lvm:1} @@ -24,9 +25,6 @@ %define with_capng 0%{!?_without_capng:0} %define with_netcf 0%{!?_without_netcf:0} -# default to off -%define with_phyp 0%{!?_without_phyp:0} - # Xen is available only on i386 x86_64 ia64 %ifnarch i386 i586 i686 x86_64 ia64 %define with_xen 0 @@ -74,55 +72,19 @@ %define with_one 0 %endif +%define git_snapshot git3ef2e05 Summary: Library providing a simple API virtualization Name: libvirt -Version: 0.7.0 -Release: 6%{?dist}%{?extra_release} +Version: 0.7.1 +Release: 0.1.%{git_snapshot}%{?dist}%{?extra_release} License: LGPLv2+ Group: Development/Libraries -Source: http://libvirt.org/sources/libvirt-%{version}.tar.gz - -# Make sure qemu can access kernel/initrd (bug #516034) -Patch01: libvirt-0.7.0-chown-kernel-initrd-before-spawning-qemu.patch - -# Don't fail to start network if ipv6 modules is not loaded (bug #516497) -Patch02: libvirt-0.7.0-handle-kernels-with-no-ipv6-support.patch - -# Policykit rewrite (bug #499970) -# NB remove autoreconf hack & extra BRs when this goes away -Patch03: libvirt-0.7.0-policy-kit-rewrite.patch - -# Log and ignore NUMA topology problems (rhbz #506590) -Patch04: libvirt-0.7.0-numa-ignore-fail.patch - -# Minor 'virsh nodedev-list --tree' annoyance, fix from upstream -Patch05: libvirt-add-space-to-nodedev-list-tree.patch - -# Fixes list corruption after disk hot-unplug -Patch06: libvirt-fix-device-list-update-after-detach.patch - -# Re-attach PCI host devices after guest shuts down (bug #499561) -Patch07: libvirt-reattach-pci-hostdevs-after-guest-shutdown.patch - -# Allow PM reset on multi-function PCI devices (bug #515689) -Patch08: libvirt-allow-pm-reset-on-multi-function-pci-devices.patch - -# Fix stupid PCI reset error message (#499678) -Patch09: libvirt-improve-pci-hostdev-reset-error-message.patch - -# Allow PCI bus reset to reset other devices (#499678) -Patch10: libvirt-allow-pci-hostdev-reset-to-reset-other-devices.patch - -# Add PCI host device hotplug support -Patch11: libvirt-add-pci-hostdev-hotplug-support.patch - -# Fix migration completion with newer versions of qemu (#516187) -Patch12: libvirt-fix-migration-completion-with-newer-qemu.patch +Source: http://libvirt.org/sources/libvirt-%{version}-%{git_snapshot}.tar.gz # Temporary hack till PulseAudio autostart problems are sorted # out when SELinux enforcing (bz 486112) -Patch200: libvirt-0.6.4-svirt-sound.patch +Patch00: libvirt-0.6.4-svirt-sound.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root URL: http://libvirt.org/ @@ -150,8 +112,10 @@ BuildRequires: util-linux BuildRequires: nfs-utils Requires: nfs-utils # For glusterfs +%if 0%{?fedora} >= 11 Requires: glusterfs-client >= 2.0.1 %endif +%endif %if %{with_qemu} # From QEMU RPMs Requires: /usr/bin/qemu-img @@ -236,7 +200,7 @@ BuildRequires: numactl-devel BuildRequires: libcap-ng-devel >= 0.5.0 %endif %if %{with_phyp} -BuildRequires: libssh-devel >= 0.3.1 +BuildRequires: libssh2-devel %endif %if %{with_netcf} BuildRequires: netcf-devel @@ -245,9 +209,6 @@ BuildRequires: netcf-devel # Fedora build root suckage BuildRequires: gawk -# Temp hack for patch 3 -BuildRequires: libtool autoconf automake gettext cvs - %description Libvirt is a C toolkit to interact with the virtualization capabilities of recent versions of Linux (and other OSes). The main package includes @@ -301,20 +262,7 @@ of recent versions of Linux (and other O %prep %setup -q -%patch01 -p1 -%patch02 -p1 -%patch03 -p1 -%patch04 -p1 -%patch05 -p1 -%patch06 -p1 -%patch07 -p1 -%patch08 -p1 -%patch09 -p1 -%patch10 -p1 -%patch11 -p1 -%patch12 -p1 - -%patch200 -p1 +%patch00 -p1 %build %if ! %{with_xen} @@ -405,9 +353,6 @@ of recent versions of Linux (and other O %define _without_netcf --without-netcf %endif -# Temp hack for patch 3 -autoreconf -if - %configure %{?_without_xen} \ %{?_without_qemu} \ %{?_without_openvz} \ @@ -566,7 +511,7 @@ fi %dir %attr(0700, root, root) %{_localstatedir}/cache/libvirt/ %if %{with_qemu} -%dir %attr(0700, %{qemu_user}, %{qemu_group}) %{_localstatedir}/run/libvirt/qemu/ +%dir %attr(0700, root, root) %{_localstatedir}/run/libvirt/qemu/ %dir %attr(0700, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/ %dir %attr(0700, %{qemu_user}, %{qemu_group}) %{_localstatedir}/cache/libvirt/qemu/ %endif @@ -644,6 +589,8 @@ fi %{_datadir}/libvirt/schemas/nodedev.rng %{_datadir}/libvirt/schemas/capability.rng %{_datadir}/libvirt/schemas/interface.rng +%{_datadir}/libvirt/schemas/secret.rng +%{_datadir}/libvirt/schemas/storageencryption.rng %if %{with_sasl} %config(noreplace) %{_sysconfdir}/sasl2/libvirt.conf @@ -681,6 +628,10 @@ fi %endif %changelog +* Sun Sep 6 2009 Mark McLoughlin - 0.7.1-0.1.gitg3ef2e05 +- Update to pre-release git snapshot of 0.7.1 +- Drop upstreamed patches + * Wed Aug 19 2009 Mark McLoughlin - 0.7.0-6 - Fix migration completion with newer versions of qemu (#516187) Index: sources =================================================================== RCS file: /cvs/pkgs/rpms/libvirt/devel/sources,v retrieving revision 1.46 retrieving revision 1.47 diff -u -p -r1.46 -r1.47 --- sources 5 Aug 2009 15:24:45 -0000 1.46 +++ sources 6 Sep 2009 13:46:19 -0000 1.47 @@ -1 +1 @@ -8c2c14a7695c9c661004bcfc6468d62d libvirt-0.7.0.tar.gz +d47a8065f71e68d60ff020ba9b370801 libvirt-0.7.1-git3ef2e05.tar.gz --- libvirt-0.7.0-chown-kernel-initrd-before-spawning-qemu.patch DELETED --- --- libvirt-0.7.0-handle-kernels-with-no-ipv6-support.patch DELETED --- --- libvirt-0.7.0-numa-ignore-fail.patch DELETED --- --- libvirt-0.7.0-policy-kit-rewrite.patch DELETED --- --- libvirt-add-pci-hostdev-hotplug-support.patch DELETED --- --- libvirt-add-space-to-nodedev-list-tree.patch DELETED --- --- libvirt-allow-pci-hostdev-reset-to-reset-other-devices.patch DELETED --- --- libvirt-allow-pm-reset-on-multi-function-pci-devices.patch DELETED --- --- libvirt-fix-device-list-update-after-detach.patch DELETED --- --- libvirt-fix-migration-completion-with-newer-qemu.patch DELETED --- --- libvirt-improve-pci-hostdev-reset-error-message.patch DELETED --- --- libvirt-reattach-pci-hostdevs-after-guest-shutdown.patch DELETED --- From pkgdb at fedoraproject.org Mon Sep 7 01:04:09 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Mon, 07 Sep 2009 01:04:09 +0000 Subject: [fedora-virt-maint] [pkgdb] perl-Sys-Virt had acl change status Message-ID: <20090907010409.1DCFC10F855@bastion2.fedora.phx.redhat.com> steve has set the watchbugzilla acl on perl-Sys-Virt (Fedora devel) to Approved for virtmaint To make changes to this package see: https://admin.fedoraproject.org/pkgdb/packages/name/perl-Sys-Virt From pkgdb at fedoraproject.org Mon Sep 7 01:04:10 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Mon, 07 Sep 2009 01:04:10 +0000 Subject: [fedora-virt-maint] [pkgdb] perl-Sys-Virt had acl change status Message-ID: <20090907010410.F042510F87E@bastion2.fedora.phx.redhat.com> steve has set the watchcommits acl on perl-Sys-Virt (Fedora devel) to Approved for virtmaint To make changes to this package see: https://admin.fedoraproject.org/pkgdb/packages/name/perl-Sys-Virt From pkgdb at fedoraproject.org Mon Sep 7 01:04:15 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Mon, 07 Sep 2009 01:04:15 +0000 Subject: [fedora-virt-maint] [pkgdb] perl-Sys-Virt had acl change status Message-ID: <20090907010415.995CF10F894@bastion2.fedora.phx.redhat.com> steve has set the watchbugzilla acl on perl-Sys-Virt (Fedora EPEL 4) to Approved for virtmaint To make changes to this package see: https://admin.fedoraproject.org/pkgdb/packages/name/perl-Sys-Virt From pkgdb at fedoraproject.org Mon Sep 7 01:04:16 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Mon, 07 Sep 2009 01:04:16 +0000 Subject: [fedora-virt-maint] [pkgdb] perl-Sys-Virt had acl change status Message-ID: <20090907010416.D1EC610F89A@bastion2.fedora.phx.redhat.com> steve has set the watchcommits acl on perl-Sys-Virt (Fedora EPEL 4) to Approved for virtmaint To make changes to this package see: https://admin.fedoraproject.org/pkgdb/packages/name/perl-Sys-Virt From pkgdb at fedoraproject.org Mon Sep 7 01:04:21 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Mon, 07 Sep 2009 01:04:21 +0000 Subject: [fedora-virt-maint] [pkgdb] perl-Sys-Virt had acl change status Message-ID: <20090907010421.6C55310F855@bastion2.fedora.phx.redhat.com> steve has set the watchbugzilla acl on perl-Sys-Virt (Fedora EPEL 5) to Approved for virtmaint To make changes to this package see: https://admin.fedoraproject.org/pkgdb/packages/name/perl-Sys-Virt From pkgdb at fedoraproject.org Mon Sep 7 01:04:21 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Mon, 07 Sep 2009 01:04:21 +0000 Subject: [fedora-virt-maint] [pkgdb] perl-Sys-Virt had acl change status Message-ID: <20090907010421.D20C210F8A0@bastion2.fedora.phx.redhat.com> steve has set the watchcommits acl on perl-Sys-Virt (Fedora EPEL 5) to Approved for virtmaint To make changes to this package see: https://admin.fedoraproject.org/pkgdb/packages/name/perl-Sys-Virt From pkgdb at fedoraproject.org Mon Sep 7 01:04:24 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Mon, 07 Sep 2009 01:04:24 +0000 Subject: [fedora-virt-maint] [pkgdb] perl-Sys-Virt had acl change status Message-ID: <20090907010424.9638710F8A3@bastion2.fedora.phx.redhat.com> steve has set the watchbugzilla acl on perl-Sys-Virt (Fedora 7) to Approved for virtmaint To make changes to this package see: https://admin.fedoraproject.org/pkgdb/packages/name/perl-Sys-Virt From pkgdb at fedoraproject.org Mon Sep 7 01:04:25 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Mon, 07 Sep 2009 01:04:25 +0000 Subject: [fedora-virt-maint] [pkgdb] perl-Sys-Virt had acl change status Message-ID: <20090907010425.61D7F10F8A6@bastion2.fedora.phx.redhat.com> steve has set the watchcommits acl on perl-Sys-Virt (Fedora 7) to Approved for virtmaint To make changes to this package see: https://admin.fedoraproject.org/pkgdb/packages/name/perl-Sys-Virt From pkgdb at fedoraproject.org Mon Sep 7 01:04:28 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Mon, 07 Sep 2009 01:04:28 +0000 Subject: [fedora-virt-maint] [pkgdb] perl-Sys-Virt had acl change status Message-ID: <20090907010428.35DC210F8AA@bastion2.fedora.phx.redhat.com> steve has set the watchbugzilla acl on perl-Sys-Virt (Fedora 5) to Approved for virtmaint To make changes to this package see: https://admin.fedoraproject.org/pkgdb/packages/name/perl-Sys-Virt From pkgdb at fedoraproject.org Mon Sep 7 01:04:28 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Mon, 07 Sep 2009 01:04:28 +0000 Subject: [fedora-virt-maint] [pkgdb] perl-Sys-Virt had acl change status Message-ID: <20090907010428.D898110F8AD@bastion2.fedora.phx.redhat.com> steve has set the watchcommits acl on perl-Sys-Virt (Fedora 5) to Approved for virtmaint To make changes to this package see: https://admin.fedoraproject.org/pkgdb/packages/name/perl-Sys-Virt From pkgdb at fedoraproject.org Mon Sep 7 01:04:32 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Mon, 07 Sep 2009 01:04:32 +0000 Subject: [fedora-virt-maint] [pkgdb] perl-Sys-Virt had acl change status Message-ID: <20090907010432.1C95610F8B1@bastion2.fedora.phx.redhat.com> steve has set the watchbugzilla acl on perl-Sys-Virt (Fedora 6) to Approved for virtmaint To make changes to this package see: https://admin.fedoraproject.org/pkgdb/packages/name/perl-Sys-Virt From pkgdb at fedoraproject.org Mon Sep 7 01:04:32 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Mon, 07 Sep 2009 01:04:32 +0000 Subject: [fedora-virt-maint] [pkgdb] perl-Sys-Virt had acl change status Message-ID: <20090907010432.A7D1A10F8B7@bastion2.fedora.phx.redhat.com> steve has set the watchcommits acl on perl-Sys-Virt (Fedora 6) to Approved for virtmaint To make changes to this package see: https://admin.fedoraproject.org/pkgdb/packages/name/perl-Sys-Virt From pkgdb at fedoraproject.org Mon Sep 7 01:04:37 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Mon, 07 Sep 2009 01:04:37 +0000 Subject: [fedora-virt-maint] [pkgdb] perl-Sys-Virt had acl change status Message-ID: <20090907010437.C918A10F87C@bastion2.fedora.phx.redhat.com> steve has set the watchcommits acl on perl-Sys-Virt (Fedora 8) to Approved for virtmaint To make changes to this package see: https://admin.fedoraproject.org/pkgdb/packages/name/perl-Sys-Virt From pkgdb at fedoraproject.org Mon Sep 7 01:04:37 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Mon, 07 Sep 2009 01:04:37 +0000 Subject: [fedora-virt-maint] [pkgdb] perl-Sys-Virt had acl change status Message-ID: <20090907010437.D034010F8B4@bastion2.fedora.phx.redhat.com> steve has set the watchbugzilla acl on perl-Sys-Virt (Fedora 8) to Approved for virtmaint To make changes to this package see: https://admin.fedoraproject.org/pkgdb/packages/name/perl-Sys-Virt From pkgdb at fedoraproject.org Mon Sep 7 01:04:40 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Mon, 07 Sep 2009 01:04:40 +0000 Subject: [fedora-virt-maint] [pkgdb] perl-Sys-Virt had acl change status Message-ID: <20090907010440.ED96F10F8BA@bastion2.fedora.phx.redhat.com> steve has set the watchbugzilla acl on perl-Sys-Virt (Fedora 9) to Approved for virtmaint To make changes to this package see: https://admin.fedoraproject.org/pkgdb/packages/name/perl-Sys-Virt From pkgdb at fedoraproject.org Mon Sep 7 01:04:41 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Mon, 07 Sep 2009 01:04:41 +0000 Subject: [fedora-virt-maint] [pkgdb] perl-Sys-Virt had acl change status Message-ID: <20090907010441.57DDF10F8BE@bastion2.fedora.phx.redhat.com> steve has set the watchcommits acl on perl-Sys-Virt (Fedora 9) to Approved for virtmaint To make changes to this package see: https://admin.fedoraproject.org/pkgdb/packages/name/perl-Sys-Virt From pkgdb at fedoraproject.org Mon Sep 7 01:04:47 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Mon, 07 Sep 2009 01:04:47 +0000 Subject: [fedora-virt-maint] [pkgdb] perl-Sys-Virt had acl change status Message-ID: <20090907010447.A50CA10F894@bastion2.fedora.phx.redhat.com> steve has set the watchbugzilla acl on perl-Sys-Virt (Fedora 10) to Approved for virtmaint To make changes to this package see: https://admin.fedoraproject.org/pkgdb/packages/name/perl-Sys-Virt From pkgdb at fedoraproject.org Mon Sep 7 01:04:48 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Mon, 07 Sep 2009 01:04:48 +0000 Subject: [fedora-virt-maint] [pkgdb] perl-Sys-Virt had acl change status Message-ID: <20090907010448.3732410F8C2@bastion2.fedora.phx.redhat.com> steve has set the watchcommits acl on perl-Sys-Virt (Fedora 10) to Approved for virtmaint To make changes to this package see: https://admin.fedoraproject.org/pkgdb/packages/name/perl-Sys-Virt From pkgdb at fedoraproject.org Mon Sep 7 01:04:55 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Mon, 07 Sep 2009 01:04:55 +0000 Subject: [fedora-virt-maint] [pkgdb] perl-Sys-Virt had acl change status Message-ID: <20090907010455.47D5B10F896@bastion2.fedora.phx.redhat.com> steve has set the watchbugzilla acl on perl-Sys-Virt (Fedora 11) to Approved for virtmaint To make changes to this package see: https://admin.fedoraproject.org/pkgdb/packages/name/perl-Sys-Virt From pkgdb at fedoraproject.org Mon Sep 7 01:04:53 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Mon, 07 Sep 2009 01:04:53 +0000 Subject: [fedora-virt-maint] [pkgdb] perl-Sys-Virt had acl change status Message-ID: <20090907010453.098B410F8C9@bastion2.fedora.phx.redhat.com> steve has set the watchcommits acl on perl-Sys-Virt (Fedora 11) to Approved for virtmaint To make changes to this package see: https://admin.fedoraproject.org/pkgdb/packages/name/perl-Sys-Virt From markmc at fedoraproject.org Mon Sep 7 07:02:09 2009 From: markmc at fedoraproject.org (Mark McLoughlin) Date: Mon, 7 Sep 2009 07:02:09 +0000 (UTC) Subject: [fedora-virt-maint] rpms/qemu/devel qemu-fix-msix-error-handling-on-older-kernels.patch, NONE, 1.1 qemu.spec, 1.124, 1.125 Message-ID: <20090907070209.1E63811C00DB@cvs1.fedora.phx.redhat.com> Author: markmc Update of /cvs/pkgs/rpms/qemu/devel In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv22395 Modified Files: qemu.spec Added Files: qemu-fix-msix-error-handling-on-older-kernels.patch Log Message: * Mon Sep 7 2009 Mark McLoughlin - 2:0.10.91-0.10.rc1 - Fix MSI-X error handling on older kernels (#519787) qemu-fix-msix-error-handling-on-older-kernels.patch: msix.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) --- NEW FILE qemu-fix-msix-error-handling-on-older-kernels.patch --- >From 057fb1b4b227bc49aa00b08da5f177b50c020693 Mon Sep 17 00:00:00 2001 From: Michael S. Tsirkin Date: Thu, 23 Jul 2009 16:34:13 +0300 Subject: [PATCH] Fix error handling in msix vector add When adding a vector fails, the used counter should not be incremented, otherwise on vector change we will try to update the routing entry. (cherry picked from commit aca6915d92743b11ac5555d6e412cc4737f27f34) Signed-off-by: Michael S. Tsirkin Signed-off-by: Avi Kivity Signed-off-by: Mark McLoughlin Fedora-patch: qemu-fix-msix-error-handling-on-older-kernels.patch --- hw/msix.c | 10 ++++++++-- 1 files changed, 8 insertions(+), 2 deletions(-) diff --git a/hw/msix.c b/hw/msix.c index 974268d..b6c3f17 100644 --- a/hw/msix.c +++ b/hw/msix.c @@ -503,13 +503,19 @@ void msix_reset(PCIDevice *dev) /* Mark vector as used. */ int msix_vector_use(PCIDevice *dev, unsigned vector) { + int ret; if (vector >= dev->msix_entries_nr) return -EINVAL; - if (dev->msix_entry_used[vector]++) + if (dev->msix_entry_used[vector]) { return 0; + } if (kvm_enabled() && qemu_kvm_irqchip_in_kernel()) { - return kvm_msix_add(dev, vector); + ret = kvm_msix_add(dev, vector); + if (ret) { + return ret; + } } + ++dev->msix_entry_used[vector]; return 0; } -- 1.6.2.5 Index: qemu.spec =================================================================== RCS file: /cvs/pkgs/rpms/qemu/devel/qemu.spec,v retrieving revision 1.124 retrieving revision 1.125 diff -u -p -r1.124 -r1.125 --- qemu.spec 4 Sep 2009 10:34:32 -0000 1.124 +++ qemu.spec 7 Sep 2009 07:02:08 -0000 1.125 @@ -4,7 +4,7 @@ Summary: QEMU is a FAST! processor emulator Name: qemu Version: 0.10.91 -Release: 0.9.%{kvmvertag}%{?dist} +Release: 0.10.%{kvmvertag}%{?dist} # Epoch because we pushed a qemu-1.0 package Epoch: 2 License: GPLv2+ and LGPLv2+ and BSD @@ -40,6 +40,9 @@ Patch07: qemu-fix-no-kvm-segfault.patch # Allow the pulseudio backend to be the default Patch08: qemu-allow-pulseaudio-to-be-the-default.patch +# Fix MSI-X error handling on older kernels (#519787) +Patch09: qemu-fix-msix-error-handling-on-older-kernels.patch + BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: SDL-devel zlib-devel which texi2html gnutls-devel cyrus-sasl-devel BuildRequires: rsync dev86 iasl @@ -228,6 +231,7 @@ such as kvmtrace and kvm_stat. %patch06 -p1 %patch07 -p1 %patch08 -p1 +%patch09 -p1 %build # systems like rhel build system does not have a recent enough linker so @@ -492,6 +496,9 @@ getent passwd qemu >/dev/null || \ %{_mandir}/man1/qemu-img.1* %changelog +* Mon Sep 7 2009 Mark McLoughlin - 2:0.10.91-0.10.rc1 +- Fix MSI-X error handling on older kernels (#519787) + * Fri Sep 4 2009 Mark McLoughlin - 2:0.10.91-0.9.rc1 - Make pulseaudio the default audio backend (#519540, #495964, #496627) From buildsys at fedoraproject.org Mon Sep 7 11:44:13 2009 From: buildsys at fedoraproject.org (buildsys at fedoraproject.org) Date: Mon, 7 Sep 2009 11:44:13 +0000 (UTC) Subject: [fedora-virt-maint] Broken dependencies: collectd Message-ID: <20090907114413.8D9091F821B@releng2.fedora.phx.redhat.com> collectd has broken dependencies in the development tree: On ppc: collectd-mysql-4.5.3-2.fc11.ppc requires libcrypto.so.8 collectd-mysql-4.5.3-2.fc11.ppc requires libssl.so.8 On x86_64: collectd-mysql-4.5.3-2.fc11.x86_64 requires libcrypto.so.8()(64bit) collectd-mysql-4.5.3-2.fc11.x86_64 requires libssl.so.8()(64bit) On i386: collectd-mysql-4.5.3-2.fc11.i586 requires libcrypto.so.8 collectd-mysql-4.5.3-2.fc11.i586 requires libssl.so.8 On ppc64: collectd-mysql-4.5.3-2.fc11.ppc64 requires libcrypto.so.8()(64bit) collectd-mysql-4.5.3-2.fc11.ppc64 requires libssl.so.8()(64bit) On ppc: collectd-nut-4.5.3-2.fc11.ppc requires libcrypto.so.8 collectd-nut-4.5.3-2.fc11.ppc requires libssl.so.8 On x86_64: collectd-nut-4.5.3-2.fc11.x86_64 requires libcrypto.so.8()(64bit) collectd-nut-4.5.3-2.fc11.x86_64 requires libssl.so.8()(64bit) On i386: collectd-nut-4.5.3-2.fc11.i586 requires libcrypto.so.8 collectd-nut-4.5.3-2.fc11.i586 requires libssl.so.8 On ppc64: collectd-nut-4.5.3-2.fc11.ppc64 requires libcrypto.so.8()(64bit) collectd-nut-4.5.3-2.fc11.ppc64 requires libssl.so.8()(64bit) On ppc: collectd-snmp-4.5.3-2.fc11.ppc requires libcrypto.so.8 On x86_64: collectd-snmp-4.5.3-2.fc11.x86_64 requires libcrypto.so.8()(64bit) On i386: collectd-snmp-4.5.3-2.fc11.i586 requires libcrypto.so.8 On ppc64: collectd-snmp-4.5.3-2.fc11.ppc64 requires libcrypto.so.8()(64bit) Please resolve this as soon as possible. From lkundrak at fedoraproject.org Mon Sep 7 13:32:32 2009 From: lkundrak at fedoraproject.org (Lubomir Rintel) Date: Mon, 7 Sep 2009 13:32:32 +0000 (UTC) Subject: [fedora-virt-maint] rpms/qemu/EL-5 qemu.spec,1.27,1.28 Message-ID: <20090907133232.4B8C111C00DB@cvs1.fedora.phx.redhat.com> Author: lkundrak Update of /cvs/pkgs/rpms/qemu/EL-5 In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv28960 Modified Files: qemu.spec Log Message: * Sun May 24 2009 Lubomir Rintel - 2:0.10.5-1.2 - Drop bogus dependency Index: qemu.spec =================================================================== RCS file: /cvs/pkgs/rpms/qemu/EL-5/qemu.spec,v retrieving revision 1.27 retrieving revision 1.28 diff -u -p -r1.27 -r1.28 --- qemu.spec 30 Jun 2009 07:44:34 -0000 1.27 +++ qemu.spec 7 Sep 2009 13:32:31 -0000 1.28 @@ -1,7 +1,7 @@ Summary: QEMU is a FAST! processor emulator Name: qemu Version: 0.10.5 -Release: 1%{?dist}.1 +Release: 1%{?dist}.2 # Epoch because we pushed a qemu-1.0 package Epoch: 2 License: GPLv2+ and LGPLv2+ and BSD @@ -90,7 +90,6 @@ platform. Summary: QEMU system emulator for ppc Group: Development/Tools Requires: %{name}-common = %{epoch}:%{version}-%{release} -Requires: openbios-ppc %description system-ppc QEMU is a generic and open source processor emulator which achieves a good emulation speed by using dynamic translation. @@ -315,6 +314,9 @@ fi %{_mandir}/man1/qemu-img.1* %changelog +* Sun May 24 2009 Lubomir Rintel - 2:0.10.5-1.2 +- Drop bogus dependency + * Tue Jun 30 2009 Richard Jones - 2:0.10.5-1.el5.1 - Package version regressed in EPEL 5 after the move to Koji. Force rebuild. From lkundrak at fedoraproject.org Mon Sep 7 13:33:43 2009 From: lkundrak at fedoraproject.org (Lubomir Rintel) Date: Mon, 7 Sep 2009 13:33:43 +0000 (UTC) Subject: [fedora-virt-maint] rpms/qemu/EL-5 qemu.spec,1.28,1.29 Message-ID: <20090907133343.5DAF211C00DB@cvs1.fedora.phx.redhat.com> Author: lkundrak Update of /cvs/pkgs/rpms/qemu/EL-5 In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv29287 Modified Files: qemu.spec Log Message: * Sun May 24 2009 Lubomir Rintel - 2:0.10.5-1.2 - Drop bogus dependency Index: qemu.spec =================================================================== RCS file: /cvs/pkgs/rpms/qemu/EL-5/qemu.spec,v retrieving revision 1.28 retrieving revision 1.29 diff -u -p -r1.28 -r1.29 --- qemu.spec 7 Sep 2009 13:32:31 -0000 1.28 +++ qemu.spec 7 Sep 2009 13:33:43 -0000 1.29 @@ -314,7 +314,7 @@ fi %{_mandir}/man1/qemu-img.1* %changelog -* Sun May 24 2009 Lubomir Rintel - 2:0.10.5-1.2 +* Mon Sep 07 2009 Lubomir Rintel - 2:0.10.5-1.2 - Drop bogus dependency * Tue Jun 30 2009 Richard Jones - 2:0.10.5-1.el5.1 From markmc at fedoraproject.org Mon Sep 7 14:22:20 2009 From: markmc at fedoraproject.org (Mark McLoughlin) Date: Mon, 7 Sep 2009 14:22:20 +0000 (UTC) Subject: [fedora-virt-maint] rpms/qemu/devel qemu-add-ksm-support.patch, 1.2, 1.3 qemu-allow-pulseaudio-to-be-the-default.patch, 1.1, 1.2 qemu-bios-bigger-roms.patch, 1.10, 1.11 qemu-fix-linux-user-build-on-ppc.patch, 1.6, 1.7 qemu-fix-msix-error-handling-on-older-kernels.patch, 1.1, 1.2 qemu-fix-no-kvm-segfault.patch, 1.2, 1.3 qemu.spec, 1.125, 1.126 sources, 1.20, 1.21 qemu-fix-extboot-signrom.patch, 1.2, NONE qemu-fix-optionrom-install.patch, 1.2, NONE qemu-fix-vnet-hdr-slirp-bustage.patch, 1.1, NONE Message-ID: <20090907142220.8728311C00DB@cvs1.fedora.phx.redhat.com> Author: markmc Update of /cvs/pkgs/rpms/qemu/devel In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv11939 Modified Files: qemu-add-ksm-support.patch qemu-allow-pulseaudio-to-be-the-default.patch qemu-bios-bigger-roms.patch qemu-fix-linux-user-build-on-ppc.patch qemu-fix-msix-error-handling-on-older-kernels.patch qemu-fix-no-kvm-segfault.patch qemu.spec sources Removed Files: qemu-fix-extboot-signrom.patch qemu-fix-optionrom-install.patch qemu-fix-vnet-hdr-slirp-bustage.patch Log Message: * Mon Sep 7 2009 Mark McLoughlin - 2:0.10.92-1 - Update to qemu-kvm-0.11.0-rc2 - Drop upstreamed patches - extboot install now fixed upstream - Re-place TCG init fix (#516543) with the one gone upstream qemu-add-ksm-support.patch: exec.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) Index: qemu-add-ksm-support.patch =================================================================== RCS file: /cvs/pkgs/rpms/qemu/devel/qemu-add-ksm-support.patch,v retrieving revision 1.2 retrieving revision 1.3 diff -u -p -r1.2 -r1.3 --- qemu-add-ksm-support.patch 4 Aug 2009 14:48:15 -0000 1.2 +++ qemu-add-ksm-support.patch 7 Sep 2009 14:22:19 -0000 1.3 @@ -1,4 +1,4 @@ -From 729b681039015c718e476b8f294480b179ed726d Mon Sep 17 00:00:00 2001 +From 4d64a615f69458c202561fcc01e8e0505fa46ee9 Mon Sep 17 00:00:00 2001 From: Izik Eidus Date: Tue, 28 Jul 2009 19:14:26 +0300 Subject: [PATCH] kvm userspace: ksm support @@ -13,10 +13,10 @@ Fedora-patch: qemu-add-ksm-support.patch 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/exec.c b/exec.c -index 2134697..88bcff5 100644 +index 0655b4b..b93f7b8 100644 --- a/exec.c +++ b/exec.c -@@ -2578,6 +2578,9 @@ ram_addr_t qemu_ram_alloc(ram_addr_t size) +@@ -2579,6 +2579,9 @@ ram_addr_t qemu_ram_alloc(ram_addr_t size) new_block->host = file_ram_alloc(size, mem_path); if (!new_block->host) { new_block->host = qemu_vmalloc(size); qemu-allow-pulseaudio-to-be-the-default.patch: paaudio.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) Index: qemu-allow-pulseaudio-to-be-the-default.patch =================================================================== RCS file: /cvs/pkgs/rpms/qemu/devel/qemu-allow-pulseaudio-to-be-the-default.patch,v retrieving revision 1.1 retrieving revision 1.2 diff -u -p -r1.1 -r1.2 --- qemu-allow-pulseaudio-to-be-the-default.patch 4 Sep 2009 10:34:32 -0000 1.1 +++ qemu-allow-pulseaudio-to-be-the-default.patch 7 Sep 2009 14:22:20 -0000 1.2 @@ -1,4 +1,4 @@ -From 01c3198a8f0d933c9b219acaf087c675d729bbf7 Mon Sep 17 00:00:00 2001 +From 4f5019c88e710be0aa597c81017b683d494c532d Mon Sep 17 00:00:00 2001 From: Mark McLoughlin Date: Fri, 4 Sep 2009 11:24:03 +0100 Subject: [PATCH] Allow pulseaudio backend to be the default qemu-bios-bigger-roms.patch: rombios.c | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) Index: qemu-bios-bigger-roms.patch =================================================================== RCS file: /cvs/pkgs/rpms/qemu/devel/qemu-bios-bigger-roms.patch,v retrieving revision 1.10 retrieving revision 1.11 diff -u -p -r1.10 -r1.11 --- qemu-bios-bigger-roms.patch 4 Aug 2009 14:48:15 -0000 1.10 +++ qemu-bios-bigger-roms.patch 7 Sep 2009 14:22:20 -0000 1.11 @@ -1,4 +1,4 @@ -From 7f871498235ac7591bd4398a745735081290c1a2 Mon Sep 17 00:00:00 2001 +From f751c8937a81116469149357359c767a71ee8ebd Mon Sep 17 00:00:00 2001 From: Glauber Costa Date: Wed, 24 Jun 2009 14:31:41 +0100 Subject: [PATCH] compute checksum for roms bigger than a segment qemu-fix-linux-user-build-on-ppc.patch: elf.h | 2 ++ linux-user/elfload.c | 11 ++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) Index: qemu-fix-linux-user-build-on-ppc.patch =================================================================== RCS file: /cvs/pkgs/rpms/qemu/devel/qemu-fix-linux-user-build-on-ppc.patch,v retrieving revision 1.6 retrieving revision 1.7 diff -u -p -r1.6 -r1.7 --- qemu-fix-linux-user-build-on-ppc.patch 4 Aug 2009 14:48:16 -0000 1.6 +++ qemu-fix-linux-user-build-on-ppc.patch 7 Sep 2009 14:22:20 -0000 1.7 @@ -1,4 +1,4 @@ -From 1cdc8e879b1e2140cc48c1a76718c336f42b0a7d Mon Sep 17 00:00:00 2001 +From 22c6c8c5dfe66a5e7f81dd4a296e1b2b245c5d28 Mon Sep 17 00:00:00 2001 From: Mark McLoughlin Date: Mon, 29 Jun 2009 14:49:03 +0100 Subject: [PATCH] Fix linux-user build on ppc @@ -58,7 +58,7 @@ index b042002..14f8aa1 100644 /* ARM specific declarations */ diff --git a/linux-user/elfload.c b/linux-user/elfload.c -index d31cca7..3ccfdda 100644 +index 3a8268b..d283f73 100644 --- a/linux-user/elfload.c +++ b/linux-user/elfload.c @@ -134,6 +134,7 @@ static inline void init_thread(struct target_pt_regs *regs, struct image_info *i qemu-fix-msix-error-handling-on-older-kernels.patch: msix.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) Index: qemu-fix-msix-error-handling-on-older-kernels.patch =================================================================== RCS file: /cvs/pkgs/rpms/qemu/devel/qemu-fix-msix-error-handling-on-older-kernels.patch,v retrieving revision 1.1 retrieving revision 1.2 diff -u -p -r1.1 -r1.2 --- qemu-fix-msix-error-handling-on-older-kernels.patch 7 Sep 2009 07:02:08 -0000 1.1 +++ qemu-fix-msix-error-handling-on-older-kernels.patch 7 Sep 2009 14:22:20 -0000 1.2 @@ -1,4 +1,4 @@ -From 057fb1b4b227bc49aa00b08da5f177b50c020693 Mon Sep 17 00:00:00 2001 +From 0b341eda83cd2f01134d5b13300d97c07a3abced Mon Sep 17 00:00:00 2001 From: Michael S. Tsirkin Date: Thu, 23 Jul 2009 16:34:13 +0300 Subject: [PATCH] Fix error handling in msix vector add qemu-fix-no-kvm-segfault.patch: vl.c | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) Index: qemu-fix-no-kvm-segfault.patch =================================================================== RCS file: /cvs/pkgs/rpms/qemu/devel/qemu-fix-no-kvm-segfault.patch,v retrieving revision 1.2 retrieving revision 1.3 diff -u -p -r1.2 -r1.3 --- qemu-fix-no-kvm-segfault.patch 4 Sep 2009 07:22:09 -0000 1.2 +++ qemu-fix-no-kvm-segfault.patch 7 Sep 2009 14:22:20 -0000 1.3 @@ -1,37 +1,78 @@ -From aa1620047bb49079f4c114326d43fb9aa7a26065 Mon Sep 17 00:00:00 2001 -From: Richard Jones -Date: Thu, 20 Aug 2009 13:52:20 +0100 -Subject: [PATCH] Workaround segfault when qemu-kvm runs inside a VM (RHBZ#516543). - -Regression was introduced by this commit: -http://git.kernel.org/?p=virt/kvm/qemu-kvm.git;a=commitdiff;h=b8083e930efc1ee85a7ad7e700dbd0f52ebb32dd - -Upstream discussion: -http://www.mail-archive.com/kvm at vger.kernel.org/msg19890.html - -Note: NOT UPSTREAM and this is something of a hack. Upstream are -still debating how they really want to fix this. - -Signed-off-by: Richard Jones +From 00782050707fbb999bfffe722794490d2211a0a9 Mon Sep 17 00:00:00 2001 +From: Dustin Kirkland +Date: Fri, 4 Sep 2009 14:38:30 -0500 +Subject: [PATCH] qemu-kvm: fix segfault when running kvm without /dev/kvm + +qemu-kvm segfaults on systems without access to /dev/kvm. +The global kvm_allowed is being set too late in vl.c. + +This patch moves the kvm initialization a bit higher in the +vl.c main, just after the daemonize fork. + +This fix is intended to be a short term solution, solving the +segfaults. + +In the longer term, the suggested approach requires a bit more +development and testing: + * If no arg given => try kvm, try kqemu, try tcg + * If --accelmode arg given => try $arg, and fail if unavailable + +(cherry picked from commit c06b44bfc9814930b6a94db7bbeb3be1cd39c0d2) + +Signed-off-by: Dustin Kirkland +Signed-off-by: Marcelo Tosatti +Signed-off-by: Mark McLoughlin Fedora-patch: qemu-fix-no-kvm-segfault.patch --- - exec.c | 3 --- - 1 files changed, 0 insertions(+), 3 deletions(-) + vl.c | 28 ++++++++++++++-------------- + 1 files changed, 14 insertions(+), 14 deletions(-) -diff --git a/exec.c b/exec.c -index 88bcff5..721fcff 100644 ---- a/exec.c -+++ b/exec.c -@@ -421,9 +421,6 @@ static uint8_t static_code_gen_buffer[DEFAULT_CODE_GEN_BUFFER_SIZE]; +diff --git a/vl.c b/vl.c +index db75470..26bced8 100644 +--- a/vl.c ++++ b/vl.c +@@ -5831,6 +5831,20 @@ int main(int argc, char **argv, char **envp) + } + #endif + ++ if (kvm_enabled()) { ++ int ret; ++ ++ ret = kvm_init(smp_cpus); ++ if (ret < 0) { ++#if defined(KVM_UPSTREAM) || defined(NO_CPU_EMULATION) ++ fprintf(stderr, "failed to initialize KVM\n"); ++ exit(1); ++#endif ++ fprintf(stderr, "Could not initialize KVM, will disable KVM support\n"); ++ kvm_allowed = 0; ++ } ++ } ++ + #ifdef CONFIG_KQEMU + if (smp_cpus > 1) + kqemu_allowed = 0; +@@ -6002,20 +6016,6 @@ int main(int argc, char **argv, char **envp) + } + } - static void code_gen_alloc(unsigned long tb_size) - { -- if (kvm_enabled()) -- return; +- if (kvm_enabled()) { +- int ret; +- +- ret = kvm_init(smp_cpus); +- if (ret < 0) { +-#if defined(KVM_UPSTREAM) || defined(NO_CPU_EMULATION) +- fprintf(stderr, "failed to initialize KVM\n"); +- exit(1); +-#endif +- fprintf(stderr, "Could not initialize KVM, will disable KVM support\n"); +- kvm_allowed = 0; +- } +- } - - #ifdef USE_STATIC_CODE_GEN_BUFFER - code_gen_buffer = static_code_gen_buffer; - code_gen_buffer_size = DEFAULT_CODE_GEN_BUFFER_SIZE; + if (monitor_device) { + monitor_hd = qemu_chr_open("monitor", monitor_device, NULL); + if (!monitor_hd) { -- 1.6.2.5 Index: qemu.spec =================================================================== RCS file: /cvs/pkgs/rpms/qemu/devel/qemu.spec,v retrieving revision 1.125 retrieving revision 1.126 diff -u -p -r1.125 -r1.126 --- qemu.spec 7 Sep 2009 07:02:08 -0000 1.125 +++ qemu.spec 7 Sep 2009 14:22:20 -0000 1.126 @@ -1,10 +1,9 @@ -%define kvmvertag rc1 -%define kvmverfull kvm-0.11.0-rc1 +%define kvmverfull kvm-0.11.0-rc2 Summary: QEMU is a FAST! processor emulator Name: qemu -Version: 0.10.91 -Release: 0.10.%{kvmvertag}%{?dist} +Version: 0.10.92 +Release: 1%{?dist} # Epoch because we pushed a qemu-1.0 package Epoch: 2 License: GPLv2+ and LGPLv2+ and BSD @@ -22,26 +21,17 @@ Patch01: qemu-bios-bigger-roms.patch # Works around broken linux-user build on ppc Patch02: qemu-fix-linux-user-build-on-ppc.patch -# Make sure multiboot.bin/extboot.bin gets installed -Patch03: qemu-fix-optionrom-install.patch +# Allow the pulseudio backend to be the default +Patch03: qemu-allow-pulseaudio-to-be-the-default.patch # Add KSM support - see https://fedoraproject.org/wiki/Features/KSM Patch04: qemu-add-ksm-support.patch -# Fix extboot checksum (bug #514899) -Patch05: qemu-fix-extboot-signrom.patch - -# Fix virtio_net with -net user (bug #516022) -Patch06: qemu-fix-vnet-hdr-slirp-bustage.patch +# Fix MSI-X error handling on older kernels (#519787) +Patch05: qemu-fix-msix-error-handling-on-older-kernels.patch # Fix segfault when qemu-kvm is invoked inside a VM (bug #516543) -Patch07: qemu-fix-no-kvm-segfault.patch - -# Allow the pulseudio backend to be the default -Patch08: qemu-allow-pulseaudio-to-be-the-default.patch - -# Fix MSI-X error handling on older kernels (#519787) -Patch09: qemu-fix-msix-error-handling-on-older-kernels.patch +Patch06: qemu-fix-no-kvm-segfault.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: SDL-devel zlib-devel which texi2html gnutls-devel cyrus-sasl-devel @@ -229,9 +219,6 @@ such as kvmtrace and kvm_stat. %patch04 -p1 %patch05 -p1 %patch06 -p1 -%patch07 -p1 -%patch08 -p1 -%patch09 -p1 %build # systems like rhel build system does not have a recent enough linker so @@ -496,6 +483,12 @@ getent passwd qemu >/dev/null || \ %{_mandir}/man1/qemu-img.1* %changelog +* Mon Sep 7 2009 Mark McLoughlin - 2:0.10.92-1 +- Update to qemu-kvm-0.11.0-rc2 +- Drop upstreamed patches +- extboot install now fixed upstream +- Re-place TCG init fix (#516543) with the one gone upstream + * Mon Sep 7 2009 Mark McLoughlin - 2:0.10.91-0.10.rc1 - Fix MSI-X error handling on older kernels (#519787) Index: sources =================================================================== RCS file: /cvs/pkgs/rpms/qemu/devel/sources,v retrieving revision 1.20 retrieving revision 1.21 diff -u -p -r1.20 -r1.21 --- sources 4 Aug 2009 14:48:16 -0000 1.20 +++ sources 7 Sep 2009 14:22:20 -0000 1.21 @@ -1 +1 @@ -bef21a81a3e81cfbaf92e9f2c4219575 qemu-kvm-0.11.0-rc1.tar.gz +35294f8c77250eae6ef48c713fe92803 qemu-kvm-0.11.0-rc2.tar.gz --- qemu-fix-extboot-signrom.patch DELETED --- --- qemu-fix-optionrom-install.patch DELETED --- --- qemu-fix-vnet-hdr-slirp-bustage.patch DELETED --- From buildsys at fedoraproject.org Tue Sep 8 15:31:10 2009 From: buildsys at fedoraproject.org (buildsys at fedoraproject.org) Date: Tue, 8 Sep 2009 15:31:10 +0000 (UTC) Subject: [fedora-virt-maint] Broken dependencies: collectd Message-ID: <20090908153110.B2FF51F821B@releng2.fedora.phx.redhat.com> collectd has broken dependencies in the development tree: On ppc: collectd-mysql-4.5.3-2.fc11.ppc requires libcrypto.so.8 collectd-mysql-4.5.3-2.fc11.ppc requires libssl.so.8 On x86_64: collectd-mysql-4.5.3-2.fc11.x86_64 requires libcrypto.so.8()(64bit) collectd-mysql-4.5.3-2.fc11.x86_64 requires libssl.so.8()(64bit) On i386: collectd-mysql-4.5.3-2.fc11.i586 requires libcrypto.so.8 collectd-mysql-4.5.3-2.fc11.i586 requires libssl.so.8 On ppc64: collectd-mysql-4.5.3-2.fc11.ppc64 requires libcrypto.so.8()(64bit) collectd-mysql-4.5.3-2.fc11.ppc64 requires libssl.so.8()(64bit) On ppc: collectd-nut-4.5.3-2.fc11.ppc requires libcrypto.so.8 collectd-nut-4.5.3-2.fc11.ppc requires libssl.so.8 On x86_64: collectd-nut-4.5.3-2.fc11.x86_64 requires libcrypto.so.8()(64bit) collectd-nut-4.5.3-2.fc11.x86_64 requires libssl.so.8()(64bit) On i386: collectd-nut-4.5.3-2.fc11.i586 requires libcrypto.so.8 collectd-nut-4.5.3-2.fc11.i586 requires libssl.so.8 On ppc64: collectd-nut-4.5.3-2.fc11.ppc64 requires libcrypto.so.8()(64bit) collectd-nut-4.5.3-2.fc11.ppc64 requires libssl.so.8()(64bit) On ppc: collectd-snmp-4.5.3-2.fc11.ppc requires libcrypto.so.8 On x86_64: collectd-snmp-4.5.3-2.fc11.x86_64 requires libcrypto.so.8()(64bit) On i386: collectd-snmp-4.5.3-2.fc11.i586 requires libcrypto.so.8 On ppc64: collectd-snmp-4.5.3-2.fc11.ppc64 requires libcrypto.so.8()(64bit) Please resolve this as soon as possible. From buildsys at fedoraproject.org Fri Sep 11 02:52:39 2009 From: buildsys at fedoraproject.org (buildsys at fedoraproject.org) Date: Fri, 11 Sep 2009 02:52:39 +0000 (UTC) Subject: [fedora-virt-maint] Broken dependencies: collectd Message-ID: <20090911025239.58C271F8221@releng2.fedora.phx.redhat.com> collectd has broken dependencies in the development tree: On ppc: collectd-mysql-4.5.3-2.fc11.ppc requires libcrypto.so.8 collectd-mysql-4.5.3-2.fc11.ppc requires libssl.so.8 On x86_64: collectd-mysql-4.5.3-2.fc11.x86_64 requires libcrypto.so.8()(64bit) collectd-mysql-4.5.3-2.fc11.x86_64 requires libssl.so.8()(64bit) On i386: collectd-mysql-4.5.3-2.fc11.i586 requires libcrypto.so.8 collectd-mysql-4.5.3-2.fc11.i586 requires libssl.so.8 On ppc64: collectd-mysql-4.5.3-2.fc11.ppc64 requires libcrypto.so.8()(64bit) collectd-mysql-4.5.3-2.fc11.ppc64 requires libssl.so.8()(64bit) On ppc: collectd-nut-4.5.3-2.fc11.ppc requires libcrypto.so.8 collectd-nut-4.5.3-2.fc11.ppc requires libssl.so.8 On x86_64: collectd-nut-4.5.3-2.fc11.x86_64 requires libcrypto.so.8()(64bit) collectd-nut-4.5.3-2.fc11.x86_64 requires libssl.so.8()(64bit) On i386: collectd-nut-4.5.3-2.fc11.i586 requires libcrypto.so.8 collectd-nut-4.5.3-2.fc11.i586 requires libssl.so.8 On ppc64: collectd-nut-4.5.3-2.fc11.ppc64 requires libcrypto.so.8()(64bit) collectd-nut-4.5.3-2.fc11.ppc64 requires libssl.so.8()(64bit) On ppc: collectd-snmp-4.5.3-2.fc11.ppc requires libcrypto.so.8 On x86_64: collectd-snmp-4.5.3-2.fc11.x86_64 requires libcrypto.so.8()(64bit) On i386: collectd-snmp-4.5.3-2.fc11.i586 requires libcrypto.so.8 On ppc64: collectd-snmp-4.5.3-2.fc11.ppc64 requires libcrypto.so.8()(64bit) Please resolve this as soon as possible. From markmc at fedoraproject.org Fri Sep 11 11:13:09 2009 From: markmc at fedoraproject.org (Mark McLoughlin) Date: Fri, 11 Sep 2009 11:13:09 +0000 (UTC) Subject: [fedora-virt-maint] rpms/qemu/F-11 qemu-fix-vnc-copyrect-screen-corruption.patch, NONE, 1.1 qemu-fix-vnc-disconnect-segfault.patch, NONE, 1.1 01-tls-handshake-fix.patch, 1.4, 1.5 02-vnc-monitor-info.patch, 1.4, 1.5 03-display-keymaps.patch, 1.4, 1.5 04-vnc-struct.patch, 1.4, 1.5 05-vnc-tls-vencrypt.patch, 1.4, 1.5 06-vnc-sasl.patch, 1.4, 1.5 07-vnc-monitor-authinfo.patch, 1.4, 1.5 qemu.spec, 1.102, 1.103 Message-ID: <20090911111309.4BB0011C0099@cvs1.fedora.phx.redhat.com> Author: markmc Update of /cvs/pkgs/rpms/qemu/F-11 In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv14905 Modified Files: 01-tls-handshake-fix.patch 02-vnc-monitor-info.patch 03-display-keymaps.patch 04-vnc-struct.patch 05-vnc-tls-vencrypt.patch 06-vnc-sasl.patch 07-vnc-monitor-authinfo.patch qemu.spec Added Files: qemu-fix-vnc-copyrect-screen-corruption.patch qemu-fix-vnc-disconnect-segfault.patch Log Message: * Fri Sep 11 2009 Mark McLoughlin - 2:0.10.6-4 - Fix vnc segfault on disconnect (#501131) - Fix vnc screen corruption with e.g. xterm (#503156) - Rebase vnc sasl patches on top of these two vnc fixes qemu-fix-vnc-copyrect-screen-corruption.patch: vnc.c | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) --- NEW FILE qemu-fix-vnc-copyrect-screen-corruption.patch --- >From 30157150182db6907cde111d8c3d76224b0841df Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Mon, 27 Jul 2009 17:10:48 +0200 Subject: [PATCH] BACKPORT: vnc: fix copyrect screen corruption When sending a copyrect command to the vnc client, we must also update the local server surface. Otherwise the server's and the client's idea of the screen content run out of sync and screen updates don't work correctly. [ backport: uses ds_get_data() instead of direct dereference ] (cherry picked from commit 74ccfe8b7e9c351b3196f68795126e76060903b3) Signed-off-by: Anthony Liguori Signed-off-by: Glauber Costa Signed-off-by: Mark McLoughlin Fedora-patch: qemu-fix-vnc-copyrect-screen-corruption.patch --- vnc.c | 23 +++++++++++++++++++++++ 1 files changed, 23 insertions(+), 0 deletions(-) diff --git a/vnc.c b/vnc.c index 1d8ebe7..c0700c0 100644 --- a/vnc.c +++ b/vnc.c @@ -633,8 +633,14 @@ static void send_framebuffer_update(VncState *vs, int x, int y, int w, int h) static void vnc_copy(VncState *vs, int src_x, int src_y, int dst_x, int dst_y, int w, int h) { + + uint8_t *src_row; + uint8_t *dst_row; + int y,pitch,depth; + vnc_update_client(vs); + /* send bitblit op to the vnc client */ vnc_write_u8(vs, 0); /* msg id */ vnc_write_u8(vs, 0); vnc_write_u16(vs, 1); /* number of rects */ @@ -642,6 +648,23 @@ static void vnc_copy(VncState *vs, int src_x, int src_y, int dst_x, int dst_y, i vnc_write_u16(vs, src_x); vnc_write_u16(vs, src_y); vnc_flush(vs); + + /* do bitblit op on the local surface too */ + pitch = ds_get_linesize(vs->ds); + depth = ds_get_bytes_per_pixel(vs->ds); + src_row = ds_get_data(vs->ds) + pitch * src_y + depth * src_x; + dst_row = ds_get_data(vs->ds) + pitch * dst_y + depth * dst_x; + if (dst_y > src_y) { + /* copy backwards */ + src_row += pitch * (h-1); + dst_row += pitch * (h-1); + pitch = -pitch; + } + for (y = 0; y < h; y++) { + memmove(dst_row, src_row, w * depth); + src_row += pitch; + dst_row += pitch; + } } static void vnc_dpy_copy(DisplayState *ds, int src_x, int src_y, int dst_x, int dst_y, int w, int h) -- 1.6.2.5 qemu-fix-vnc-disconnect-segfault.patch: vnc.c | 111 ++++++++++++++++++++++++++++++++++++++++++------------------------ 1 file changed, 71 insertions(+), 40 deletions(-) --- NEW FILE qemu-fix-vnc-disconnect-segfault.patch --- >From 977b3b69b2e06f0aab0c48ff08a236bff8763f2e Mon Sep 17 00:00:00 2001 From: Chris Webb Date: Wed, 26 Aug 2009 22:52:43 +0000 Subject: [PATCH] vnc: rework VncState release workflow Split socket closing and releasing of VncState into two steps. First close the socket and set the variable to -1 to indicate shutdown in progress. Do the actual release in a few places where we can be sure it doesn't cause trouble in form of use-after-free. Add some checks for a valid socket handle to make sure we don't try to use the closed socket. Signed-off-by: Gerd Hoffmann Signed-off-by: Anthony Liguori Backported to 0.10-stable, removing references to vs->force_update and changing vnc_disconnect_finish() to match the code in the 0.10 version of vnc_client_io_error() in place of the master branch version. (cherry picked from commit c2723a9606dae5af5c614a55296ee37e2ed7801a) Signed-off-by: Chris Webb Signed-off-by: Glauber Costa Signed-off-by: Mark McLoughlin Fedora-patch: qemu-fix-vnc-disconnect-segfault.patch --- vnc.c | 110 ++++++++++++++++++++++++++++++++++++++++++----------------------- 1 files changed, 71 insertions(+), 39 deletions(-) diff --git a/vnc.c b/vnc.c index c0700c0..28e8362 100644 --- a/vnc.c +++ b/vnc.c @@ -200,6 +200,8 @@ static void vnc_write_u16(VncState *vs, uint16_t value); static void vnc_write_u8(VncState *vs, uint8_t value); static void vnc_flush(VncState *vs); static void vnc_update_client(void *opaque); +static void vnc_disconnect_start(VncState *vs); +static void vnc_disconnect_finish(VncState *vs); static void vnc_client_read(void *opaque); static void vnc_colordepth(VncState *vs); @@ -670,13 +672,21 @@ static void vnc_copy(VncState *vs, int src_x, int src_y, int dst_x, int dst_y, i static void vnc_dpy_copy(DisplayState *ds, int src_x, int src_y, int dst_x, int dst_y, int w, int h) { VncDisplay *vd = ds->opaque; - VncState *vs = vd->clients; - while (vs != NULL) { + VncState *vs, *vn; + + for (vs = vd->clients; vs != NULL; vs = vn) { + vn = vs->next; + if (vnc_has_feature(vs, VNC_FEATURE_COPYRECT)) { + vnc_update_client(vs); + /* vs might be free()ed here */ + } + } + + for (vs = vd->clients; vs != NULL; vs = vs->next) { if (vnc_has_feature(vs, VNC_FEATURE_COPYRECT)) vnc_copy(vs, src_x, src_y, dst_x, dst_y, w, h); else /* TODO */ vnc_update(vs, dst_x, dst_y, w, h); - vs = vs->next; } } @@ -786,6 +796,8 @@ static void vnc_update_client(void *opaque) if (vs->csock != -1) { qemu_mod_timer(vs->timer, qemu_get_clock(rt_clock) + VNC_REFRESH_INTERVAL); + } else { + vnc_disconnect_finish(vs); } } @@ -855,6 +867,47 @@ static void audio_del(VncState *vs) } } +static void vnc_disconnect_start(VncState *vs) +{ + if (vs->csock == -1) + return; + qemu_set_fd_handler2(vs->csock, NULL, NULL, NULL, NULL); + closesocket(vs->csock); + vs->csock = -1; +} + +static void vnc_disconnect_finish(VncState *vs) +{ + qemu_del_timer(vs->timer); + qemu_free_timer(vs->timer); + if (vs->input.buffer) qemu_free(vs->input.buffer); + if (vs->output.buffer) qemu_free(vs->output.buffer); +#ifdef CONFIG_VNC_TLS + if (vs->tls_session) { + gnutls_deinit(vs->tls_session); + vs->tls_session = NULL; + } +#endif /* CONFIG_VNC_TLS */ + audio_del(vs); + + VncState *p, *parent = NULL; + for (p = vs->vd->clients; p != NULL; p = p->next) { + if (p == vs) { + if (parent) + parent->next = p->next; + else + vs->vd->clients = p->next; + break; + } + parent = p; + } + if (!vs->vd->clients) + dcl->idle = 1; + + qemu_free(vs->old_data); + qemu_free(vs); +} + static int vnc_client_io_error(VncState *vs, int ret, int last_errno) { if (ret == 0 || ret == -1) { @@ -872,36 +925,7 @@ static int vnc_client_io_error(VncState *vs, int ret, int last_errno) } VNC_DEBUG("Closing down client sock %d %d\n", ret, ret < 0 ? last_errno : 0); - qemu_set_fd_handler2(vs->csock, NULL, NULL, NULL, NULL); - closesocket(vs->csock); - qemu_del_timer(vs->timer); - qemu_free_timer(vs->timer); - if (vs->input.buffer) qemu_free(vs->input.buffer); - if (vs->output.buffer) qemu_free(vs->output.buffer); -#ifdef CONFIG_VNC_TLS - if (vs->tls_session) { - gnutls_deinit(vs->tls_session); - vs->tls_session = NULL; - } -#endif /* CONFIG_VNC_TLS */ - audio_del(vs); - - VncState *p, *parent = NULL; - for (p = vs->vd->clients; p != NULL; p = p->next) { - if (p == vs) { - if (parent) - parent->next = p->next; - else - vs->vd->clients = p->next; - break; - } - parent = p; - } - if (!vs->vd->clients) - dcl->idle = 1; - - qemu_free(vs->old_data); - qemu_free(vs); + vnc_disconnect_start(vs); return 0; } @@ -910,7 +934,8 @@ static int vnc_client_io_error(VncState *vs, int ret, int last_errno) static void vnc_client_error(VncState *vs) { - vnc_client_io_error(vs, -1, EINVAL); + VNC_DEBUG("Closing down client sock: protocol error\n"); + vnc_disconnect_start(vs); } static void vnc_client_write(void *opaque) @@ -970,8 +995,11 @@ static void vnc_client_read(void *opaque) #endif /* CONFIG_VNC_TLS */ ret = recv(vs->csock, buffer_end(&vs->input), 4096, 0); ret = vnc_client_io_error(vs, ret, socket_error()); - if (!ret) + if (!ret) { + if (vs->csock == -1) + vnc_disconnect_finish(vs); return; + } vs->input.offset += ret; @@ -980,8 +1008,10 @@ static void vnc_client_read(void *opaque) int ret; ret = vs->read_handler(vs, vs->input.buffer, len); - if (vs->csock == -1) + if (vs->csock == -1) { + vnc_disconnect_finish(vs); return; + } if (!ret) { memmove(vs->input.buffer, vs->input.buffer + len, (vs->input.offset - len)); @@ -996,7 +1026,7 @@ static void vnc_write(VncState *vs, const void *data, size_t len) { buffer_reserve(&vs->output, len); - if (buffer_empty(&vs->output)) { + if (vs->csock != -1 && buffer_empty(&vs->output)) { qemu_set_fd_handler2(vs->csock, NULL, vnc_client_read, vnc_client_write, vs); } @@ -1037,7 +1067,7 @@ static void vnc_write_u8(VncState *vs, uint8_t value) static void vnc_flush(VncState *vs) { - if (vs->output.offset) + if (vs->csock != -1 && vs->output.offset) vnc_client_write(vs); } @@ -2305,11 +2335,13 @@ static void vnc_connect(VncDisplay *vd, int csock) vnc_read_when(vs, protocol_version, 12); memset(vs->old_data, 0, ds_get_linesize(vs->ds) * ds_get_height(vs->ds)); memset(vs->dirty_row, 0xFF, sizeof(vs->dirty_row)); - vnc_update_client(vs); reset_keys(vs); vs->next = vd->clients; vd->clients = vs; + + vnc_update_client(vs); + /* vs might be free()ed here */ } static void vnc_listen_read(void *opaque) -- 1.6.2.5 01-tls-handshake-fix.patch: vnc.c | 9 --------- 1 file changed, 9 deletions(-) Index: 01-tls-handshake-fix.patch =================================================================== RCS file: /cvs/pkgs/rpms/qemu/F-11/01-tls-handshake-fix.patch,v retrieving revision 1.4 retrieving revision 1.5 diff -u -p -r1.4 -r1.5 --- 01-tls-handshake-fix.patch 4 Aug 2009 15:35:42 -0000 1.4 +++ 01-tls-handshake-fix.patch 11 Sep 2009 11:13:08 -0000 1.5 @@ -1,4 +1,4 @@ -From 6b55d3e74400c9f7e71739abd0dac362a5db1dc6 Mon Sep 17 00:00:00 2001 +From 9883355cd27949061b396a42bb724853b75ce7f9 Mon Sep 17 00:00:00 2001 From: aliguori Date: Fri, 6 Mar 2009 20:27:02 +0000 Subject: [PATCH] Fix bug in TLS authentication ("Daniel P. Berrange") @@ -32,10 +32,10 @@ Fedora-patch: 01-tls-handshake-fix.patch 1 files changed, 0 insertions(+), 8 deletions(-) diff --git a/vnc.c b/vnc.c -index 1d8ebe7..d6a7225 100644 +index 28e8362..9fa0f82 100644 --- a/vnc.c +++ b/vnc.c -@@ -2105,14 +2105,6 @@ static int protocol_client_vencrypt_auth(VncState *vs, uint8_t *data, size_t len +@@ -2158,14 +2158,6 @@ static int protocol_client_vencrypt_auth(VncState *vs, uint8_t *data, size_t len VNC_DEBUG("Failed to complete TLS\n"); return 0; } 02-vnc-monitor-info.patch: vnc.c | 140 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 128 insertions(+), 12 deletions(-) Index: 02-vnc-monitor-info.patch =================================================================== RCS file: /cvs/pkgs/rpms/qemu/F-11/02-vnc-monitor-info.patch,v retrieving revision 1.4 retrieving revision 1.5 diff -u -p -r1.4 -r1.5 --- 02-vnc-monitor-info.patch 4 Aug 2009 15:35:42 -0000 1.4 +++ 02-vnc-monitor-info.patch 11 Sep 2009 11:13:08 -0000 1.5 @@ -1,4 +1,4 @@ -From b4b2ff2fbd7e6458fbfa8f2e6af7d1b668a06a1a Mon Sep 17 00:00:00 2001 +From 37beb4aa5dd10764a492d76822f2d7ec04b33fd0 Mon Sep 17 00:00:00 2001 From: aliguori Date: Fri, 6 Mar 2009 20:27:05 +0000 Subject: [PATCH] Enhance 'info vnc' monitor output ("Daniel P. Berrange") @@ -48,7 +48,7 @@ Fedora-patch: 02-vnc-monitor-info.patch 1 files changed, 128 insertions(+), 11 deletions(-) diff --git a/vnc.c b/vnc.c -index d6a7225..d7d9b91 100644 +index 9fa0f82..7853635 100644 --- a/vnc.c +++ b/vnc.c @@ -166,19 +166,136 @@ struct VncState 03-display-keymaps.patch: Makefile | 9 +++++--- curses.c | 3 -- curses_keys.h | 9 +++----- keymaps.c | 45 ++++++++++++++++--------------------------- keymaps.h | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ sdl.c | 3 -- sdl_keysym.h | 7 ++---- vnc.c | 5 +--- vnc_keysym.h | 8 ++----- 9 files changed, 97 insertions(+), 52 deletions(-) Index: 03-display-keymaps.patch =================================================================== RCS file: /cvs/pkgs/rpms/qemu/F-11/03-display-keymaps.patch,v retrieving revision 1.4 retrieving revision 1.5 diff -u -p -r1.4 -r1.5 --- 03-display-keymaps.patch 4 Aug 2009 15:35:42 -0000 1.4 +++ 03-display-keymaps.patch 11 Sep 2009 11:13:08 -0000 1.5 @@ -1,4 +1,4 @@ -From 202790c357fcff7f1222f4e7777e0cf561b516d5 Mon Sep 17 00:00:00 2001 +From 15a868dc4e7a982f9d684a0231938602757c0c25 Mon Sep 17 00:00:00 2001 From: aliguori Date: Fri, 6 Mar 2009 20:27:10 +0000 Subject: [PATCH] Refactor keymap code to avoid duplication ("Daniel P. Berrange") @@ -323,7 +323,7 @@ index c9087d7..c213ef8 100644 /* ascii */ { "space", 0x020}, diff --git a/vnc.c b/vnc.c -index d7d9b91..969d5b0 100644 +index 7853635..239a9ce 100644 --- a/vnc.c +++ b/vnc.c @@ -35,7 +35,6 @@ @@ -334,7 +334,7 @@ index d7d9b91..969d5b0 100644 #include "d3des.h" #ifdef CONFIG_VNC_TLS -@@ -2428,9 +2427,9 @@ void vnc_display_init(DisplayState *ds) +@@ -2483,9 +2482,9 @@ void vnc_display_init(DisplayState *ds) vs->ds = ds; if (keyboard_layout) 04-vnc-struct.patch: vnc.c | 109 ----------------------------------------------- vnc.h | 150 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 148 insertions(+), 111 deletions(-) Index: 04-vnc-struct.patch =================================================================== RCS file: /cvs/pkgs/rpms/qemu/F-11/04-vnc-struct.patch,v retrieving revision 1.4 retrieving revision 1.5 diff -u -p -r1.4 -r1.5 --- 04-vnc-struct.patch 4 Aug 2009 15:35:42 -0000 1.4 +++ 04-vnc-struct.patch 11 Sep 2009 11:13:08 -0000 1.5 @@ -1,4 +1,4 @@ -From 35b87b5d1543c563c09361086519ebdc960d4934 Mon Sep 17 00:00:00 2001 +From f710ba3ae8fdfa1206d22a3d77884487f9e52477 Mon Sep 17 00:00:00 2001 From: aliguori Date: Fri, 6 Mar 2009 20:27:13 +0000 Subject: [PATCH] Move VNC structs into header file ("Daniel P. Berrange") @@ -19,7 +19,7 @@ Fedora-patch: 04-vnc-struct.patch 2 files changed, 148 insertions(+), 110 deletions(-) diff --git a/vnc.c b/vnc.c -index 969d5b0..7fb31b6 100644 +index 239a9ce..4d793ab 100644 --- a/vnc.c +++ b/vnc.c @@ -3,6 +3,7 @@ 05-vnc-tls-vencrypt.patch: Makefile | 11 vnc-auth-vencrypt.c | 167 ++++++++++++++ vnc-auth-vencrypt.h | 33 ++ vnc-tls.c | 414 +++++++++++++++++++++++++++++++++++++ vnc-tls.h | 70 ++++++ vnc.c | 581 +++------------------------------------------------- vnc.h | 77 ++++-- 7 files changed, 780 insertions(+), 573 deletions(-) Index: 05-vnc-tls-vencrypt.patch =================================================================== RCS file: /cvs/pkgs/rpms/qemu/F-11/05-vnc-tls-vencrypt.patch,v retrieving revision 1.4 retrieving revision 1.5 diff -u -p -r1.4 -r1.5 --- 05-vnc-tls-vencrypt.patch 4 Aug 2009 15:35:42 -0000 1.4 +++ 05-vnc-tls-vencrypt.patch 11 Sep 2009 11:13:08 -0000 1.5 @@ -1,4 +1,4 @@ -From af17025ce83b924f666617294606ec5ad1a9e833 Mon Sep 17 00:00:00 2001 +From a2f48883d67b606218c98dc4996cbb41d3dc0990 Mon Sep 17 00:00:00 2001 From: aliguori Date: Fri, 6 Mar 2009 20:27:23 +0000 Subject: [PATCH] Move TLS auth into separate file ("Daniel P. Berrange") @@ -789,7 +789,7 @@ index 0000000..cda95b9 +#endif /* __QEMU_VNC_TLS_H__ */ + diff --git a/vnc.c b/vnc.c -index 7fb31b6..f980d68 100644 +index 4d793ab..4da5fbb 100644 --- a/vnc.c +++ b/vnc.c @@ -34,21 +34,6 @@ @@ -814,7 +814,7 @@ index 7fb31b6..f980d68 100644 #define count_bits(c, v) { \ for (c = 0; v; v >>= 1) \ { \ -@@ -204,14 +189,7 @@ static inline uint32_t vnc_has_feature(VncState *vs, int feature) { +@@ -204,16 +189,9 @@ static inline uint32_t vnc_has_feature(VncState *vs, int feature) { 3) resolutions > 1024 */ @@ -825,23 +825,25 @@ index 7fb31b6..f980d68 100644 -static void vnc_write_u8(VncState *vs, uint8_t value); -static void vnc_flush(VncState *vs); static void vnc_update_client(void *opaque); + static void vnc_disconnect_start(VncState *vs); + static void vnc_disconnect_finish(VncState *vs); -static void vnc_client_read(void *opaque); static void vnc_colordepth(VncState *vs); -@@ -867,10 +845,7 @@ static int vnc_client_io_error(VncState *vs, int ret, int last_errno) - if (vs->input.buffer) qemu_free(vs->input.buffer); - if (vs->output.buffer) qemu_free(vs->output.buffer); +@@ -894,10 +872,7 @@ static void vnc_disconnect_finish(VncState *vs) + if (vs->input.buffer) qemu_free(vs->input.buffer); + if (vs->output.buffer) qemu_free(vs->output.buffer); #ifdef CONFIG_VNC_TLS -- if (vs->tls_session) { -- gnutls_deinit(vs->tls_session); -- vs->tls_session = NULL; -- } -+ vnc_tls_client_cleanup(vs); +- if (vs->tls_session) { +- gnutls_deinit(vs->tls_session); +- vs->tls_session = NULL; +- } ++ vnc_tls_client_cleanup(vs); #endif /* CONFIG_VNC_TLS */ - audio_del(vs); + audio_del(vs); -@@ -896,19 +871,20 @@ static int vnc_client_io_error(VncState *vs, int ret, int last_errno) +@@ -943,20 +918,21 @@ static int vnc_client_io_error(VncState *vs, int ret, int last_errno) return ret; } @@ -849,7 +851,8 @@ index 7fb31b6..f980d68 100644 + +void vnc_client_error(VncState *vs) { - vnc_client_io_error(vs, -1, EINVAL); + VNC_DEBUG("Closing down client sock: protocol error\n"); + vnc_disconnect_start(vs); } -static void vnc_client_write(void *opaque) @@ -866,7 +869,7 @@ index 7fb31b6..f980d68 100644 if (ret < 0) { if (ret == GNUTLS_E_AGAIN) errno = EAGAIN; -@@ -931,13 +907,13 @@ static void vnc_client_write(void *opaque) +@@ -979,13 +955,13 @@ static void vnc_client_write(void *opaque) } } @@ -882,7 +885,7 @@ index 7fb31b6..f980d68 100644 { VncState *vs = opaque; long ret; -@@ -945,8 +921,8 @@ static void vnc_client_read(void *opaque) +@@ -993,8 +969,8 @@ static void vnc_client_read(void *opaque) buffer_reserve(&vs->input, 4096); #ifdef CONFIG_VNC_TLS @@ -893,7 +896,7 @@ index 7fb31b6..f980d68 100644 if (ret < 0) { if (ret == GNUTLS_E_AGAIN) errno = EAGAIN; -@@ -980,7 +956,7 @@ static void vnc_client_read(void *opaque) +@@ -1033,7 +1009,7 @@ static void vnc_client_read(void *opaque) } } @@ -902,7 +905,7 @@ index 7fb31b6..f980d68 100644 { buffer_reserve(&vs->output, len); -@@ -991,12 +967,12 @@ static void vnc_write(VncState *vs, const void *data, size_t len) +@@ -1044,12 +1020,12 @@ static void vnc_write(VncState *vs, const void *data, size_t len) buffer_append(&vs->output, data, len); } @@ -917,7 +920,7 @@ index 7fb31b6..f980d68 100644 { uint8_t buf[4]; -@@ -1008,7 +984,7 @@ static void vnc_write_u32(VncState *vs, uint32_t value) +@@ -1061,7 +1037,7 @@ static void vnc_write_u32(VncState *vs, uint32_t value) vnc_write(vs, buf, 4); } @@ -926,7 +929,7 @@ index 7fb31b6..f980d68 100644 { uint8_t buf[2]; -@@ -1018,74 +994,39 @@ static void vnc_write_u16(VncState *vs, uint16_t value) +@@ -1071,74 +1047,39 @@ static void vnc_write_u16(VncState *vs, uint16_t value) vnc_write(vs, buf, 2); } @@ -939,7 +942,7 @@ index 7fb31b6..f980d68 100644 -static void vnc_flush(VncState *vs) +void vnc_flush(VncState *vs) { - if (vs->output.offset) + if (vs->csock != -1 && vs->output.offset) vnc_client_write(vs); } @@ -1007,7 +1010,7 @@ index 7fb31b6..f980d68 100644 static void client_cut_text(VncState *vs, size_t len, uint8_t *text) { } -@@ -1677,6 +1618,11 @@ static int protocol_client_init(VncState *vs, uint8_t *data, size_t len) +@@ -1730,6 +1671,11 @@ static int protocol_client_init(VncState *vs, uint8_t *data, size_t len) return 0; } @@ -1019,7 +1022,7 @@ index 7fb31b6..f980d68 100644 static void make_challenge(VncState *vs) { int i; -@@ -1732,12 +1678,12 @@ static int protocol_client_auth_vnc(VncState *vs, uint8_t *data, size_t len) +@@ -1785,12 +1731,12 @@ static int protocol_client_auth_vnc(VncState *vs, uint8_t *data, size_t len) vnc_write_u32(vs, 0); /* Accept auth */ vnc_flush(vs); @@ -1034,7 +1037,7 @@ index 7fb31b6..f980d68 100644 { make_challenge(vs); /* Send client a 'random' challenge */ -@@ -1745,410 +1691,8 @@ static int start_auth_vnc(VncState *vs) +@@ -1798,410 +1744,8 @@ static int start_auth_vnc(VncState *vs) vnc_flush(vs); vnc_read_when(vs, protocol_client_auth_vnc, sizeof(vs->challenge)); @@ -1445,7 +1448,7 @@ index 7fb31b6..f980d68 100644 static int protocol_client_auth(VncState *vs, uint8_t *data, size_t len) { -@@ -2172,17 +1716,19 @@ static int protocol_client_auth(VncState *vs, uint8_t *data, size_t len) +@@ -2225,17 +1769,19 @@ static int protocol_client_auth(VncState *vs, uint8_t *data, size_t len) vnc_write_u32(vs, 0); /* Accept auth completion */ vnc_flush(vs); } @@ -1468,7 +1471,7 @@ index 7fb31b6..f980d68 100644 #endif /* CONFIG_VNC_TLS */ default: /* Should not be possible, but just in case */ -@@ -2235,7 +1781,7 @@ static int protocol_version(VncState *vs, uint8_t *version, size_t len) +@@ -2288,7 +1834,7 @@ static int protocol_version(VncState *vs, uint8_t *version, size_t len) VNC_DEBUG("Tell client auth none\n"); vnc_write_u32(vs, vs->vd->auth); vnc_flush(vs); @@ -1477,7 +1480,7 @@ index 7fb31b6..f980d68 100644 } else if (vs->vd->auth == VNC_AUTH_VNC) { VNC_DEBUG("Tell client VNC auth\n"); vnc_write_u32(vs, vs->vd->auth); -@@ -2336,61 +1882,6 @@ void vnc_display_init(DisplayState *ds) +@@ -2391,61 +1937,6 @@ void vnc_display_init(DisplayState *ds) register_displaychangelistener(ds, dcl); } @@ -1539,7 +1542,7 @@ index 7fb31b6..f980d68 100644 void vnc_display_close(DisplayState *ds) { -@@ -2410,7 +1901,7 @@ void vnc_display_close(DisplayState *ds) +@@ -2465,7 +1956,7 @@ void vnc_display_close(DisplayState *ds) vs->auth = VNC_AUTH_INVALID; #ifdef CONFIG_VNC_TLS vs->subauth = VNC_AUTH_INVALID; @@ -1548,7 +1551,7 @@ index 7fb31b6..f980d68 100644 #endif } -@@ -2466,7 +1957,7 @@ int vnc_display_open(DisplayState *ds, const char *display) +@@ -2521,7 +2012,7 @@ int vnc_display_open(DisplayState *ds, const char *display) char *start, *end; x509 = 1; /* Require x509 certificates */ if (strncmp(options, "x509verify", 10) == 0) @@ -1557,7 +1560,7 @@ index 7fb31b6..f980d68 100644 /* Now check for 'x509=/some/path' postfix * and use that to setup x509 certificate/key paths */ -@@ -2477,7 +1968,7 @@ int vnc_display_open(DisplayState *ds, const char *display) +@@ -2532,7 +2023,7 @@ int vnc_display_open(DisplayState *ds, const char *display) char *path = qemu_strndup(start + 1, len); VNC_DEBUG("Trying certificate path '%s'\n", path); 06-vnc-sasl.patch: Makefile | 7 Makefile.target | 5 configure | 34 ++ qemu-doc.texi | 97 ++++++++ qemu.sasl | 34 ++ vnc-auth-sasl.c | 626 ++++++++++++++++++++++++++++++++++++++++++++++++++++ vnc-auth-sasl.h | 67 +++++ vnc-auth-vencrypt.c | 12 vnc.c | 248 ++++++++++++++++++-- vnc.h | 32 ++ 10 files changed, 1128 insertions(+), 34 deletions(-) Index: 06-vnc-sasl.patch =================================================================== RCS file: /cvs/pkgs/rpms/qemu/F-11/06-vnc-sasl.patch,v retrieving revision 1.4 retrieving revision 1.5 diff -u -p -r1.4 -r1.5 --- 06-vnc-sasl.patch 4 Aug 2009 15:35:42 -0000 1.4 +++ 06-vnc-sasl.patch 11 Sep 2009 11:13:08 -0000 1.5 @@ -1,4 +1,4 @@ -From 1b4f956f40315ecc756e34cdeb923424c7095684 Mon Sep 17 00:00:00 2001 +From 655a2c8e445a6992bf483de3ba326306b8bf951f Mon Sep 17 00:00:00 2001 From: aliguori Date: Fri, 6 Mar 2009 20:27:28 +0000 Subject: [PATCH] Add SASL authentication support ("Daniel P. Berrange") @@ -79,9 +79,9 @@ Fedora-patch: 06-vnc-sasl.patch vnc-auth-sasl.c | 626 +++++++++++++++++++++++++++++++++++++++++++++++++++ vnc-auth-sasl.h | 67 ++++++ vnc-auth-vencrypt.c | 12 +- - vnc.c | 249 ++++++++++++++++++--- + vnc.c | 248 ++++++++++++++++++--- vnc.h | 31 +++- - 10 files changed, 1129 insertions(+), 33 deletions(-) + 10 files changed, 1128 insertions(+), 33 deletions(-) create mode 100644 qemu.sasl create mode 100644 vnc-auth-sasl.c create mode 100644 vnc-auth-sasl.h @@ -1121,7 +1121,7 @@ index 1f113a7..9ed642c 100644 static int protocol_client_vencrypt_auth(VncState *vs, uint8_t *data, size_t len) diff --git a/vnc.c b/vnc.c -index f980d68..3c315d6 100644 +index 4da5fbb..0b62000 100644 --- a/vnc.c +++ b/vnc.c @@ -68,7 +68,8 @@ static char *addr_to_string(const char *format, @@ -1163,7 +1163,7 @@ index f980d68..3c315d6 100644 } return "unknown"; } -@@ -278,7 +286,7 @@ static void vnc_framebuffer_update(VncState *vs, int x, int y, int w, int h, +@@ -280,7 +288,7 @@ static void vnc_framebuffer_update(VncState *vs, int x, int y, int w, int h, vnc_write_s32(vs, encoding); } @@ -1172,7 +1172,7 @@ index f980d68..3c315d6 100644 { if ((buffer->capacity - buffer->offset) < len) { buffer->capacity += (len + 1024); -@@ -290,22 +298,22 @@ static void buffer_reserve(Buffer *buffer, size_t len) +@@ -292,22 +300,22 @@ static void buffer_reserve(Buffer *buffer, size_t len) } } @@ -1199,28 +1199,27 @@ index f980d68..3c315d6 100644 { memcpy(buffer->buffer + buffer->offset, data, len); buffer->offset += len; -@@ -821,7 +829,8 @@ static void audio_del(VncState *vs) - } +@@ -874,6 +882,9 @@ static void vnc_disconnect_finish(VncState *vs) + #ifdef CONFIG_VNC_TLS + vnc_tls_client_cleanup(vs); + #endif /* CONFIG_VNC_TLS */ ++#ifdef CONFIG_VNC_SASL ++ vnc_sasl_client_cleanup(vs); ++#endif /* CONFIG_VNC_SASL */ + audio_del(vs); + + VncState *p, *parent = NULL; +@@ -894,7 +905,7 @@ static void vnc_disconnect_finish(VncState *vs) + qemu_free(vs); } -static int vnc_client_io_error(VncState *vs, int ret, int last_errno) -+ +int vnc_client_io_error(VncState *vs, int ret, int last_errno) { if (ret == 0 || ret == -1) { if (ret == -1) { -@@ -847,6 +856,9 @@ static int vnc_client_io_error(VncState *vs, int ret, int last_errno) - #ifdef CONFIG_VNC_TLS - vnc_tls_client_cleanup(vs); - #endif /* CONFIG_VNC_TLS */ -+#ifdef CONFIG_VNC_SASL -+ vnc_sasl_client_cleanup(vs); -+#endif /* CONFIG_VNC_SASL */ - audio_del(vs); - - VncState *p, *parent = NULL; -@@ -877,14 +889,28 @@ void vnc_client_error(VncState *vs) - vnc_client_io_error(vs, -1, EINVAL); +@@ -925,14 +936,28 @@ void vnc_client_error(VncState *vs) + vnc_disconnect_start(vs); } -void vnc_client_write(void *opaque) @@ -1252,7 +1251,7 @@ index f980d68..3c315d6 100644 if (ret < 0) { if (ret == GNUTLS_E_AGAIN) errno = EAGAIN; -@@ -894,10 +920,42 @@ void vnc_client_write(void *opaque) +@@ -942,10 +967,42 @@ void vnc_client_write(void *opaque) } } else #endif /* CONFIG_VNC_TLS */ @@ -1298,7 +1297,7 @@ index f980d68..3c315d6 100644 memmove(vs->output.buffer, vs->output.buffer + ret, (vs->output.offset - ret)); vs->output.offset -= ret; -@@ -905,6 +963,29 @@ void vnc_client_write(void *opaque) +@@ -953,6 +1010,29 @@ void vnc_client_write(void *opaque) if (vs->output.offset == 0) { qemu_set_fd_handler2(vs->csock, NULL, vnc_client_read, NULL, vs); } @@ -1328,7 +1327,7 @@ index f980d68..3c315d6 100644 } void vnc_read_when(VncState *vs, VncReadEvent *func, size_t expecting) -@@ -913,16 +994,28 @@ void vnc_read_when(VncState *vs, VncReadEvent *func, size_t expecting) +@@ -961,16 +1041,28 @@ void vnc_read_when(VncState *vs, VncReadEvent *func, size_t expecting) vs->read_handler_expect = expecting; } @@ -1363,19 +1362,17 @@ index f980d68..3c315d6 100644 if (ret < 0) { if (ret == GNUTLS_E_AGAIN) errno = EAGAIN; -@@ -932,12 +1025,52 @@ void vnc_client_read(void *opaque) +@@ -980,16 +1072,56 @@ void vnc_client_read(void *opaque) } } else #endif /* CONFIG_VNC_TLS */ - ret = recv(vs->csock, buffer_end(&vs->input), 4096, 0); - ret = vnc_client_io_error(vs, ret, socket_error()); -- if (!ret) -- return; + ret = recv(vs->csock, data, datalen, 0); + VNC_DEBUG("Read wire %p %d -> %ld\n", data, datalen, ret); + return vnc_client_io_error(vs, ret, socket_error()); +} - ++ + +/* + * Called to read data from the client socket to the input buffer, @@ -1394,7 +1391,7 @@ index f980d68..3c315d6 100644 + ret = vnc_client_read_buf(vs, buffer_end(&vs->input), 4096); + if (!ret) + return 0; - vs->input.offset += ret; ++ vs->input.offset += ret; + return ret; +} + @@ -1415,12 +1412,18 @@ index f980d68..3c315d6 100644 + else +#endif /* CONFIG_VNC_SASL */ + ret = vnc_client_read_plain(vs); -+ if (!ret) -+ return; + if (!ret) { + if (vs->csock == -1) + vnc_disconnect_finish(vs); + return; + } +- vs->input.offset += ret; +- while (vs->read_handler && vs->input.offset >= vs->read_handler_expect) { size_t len = vs->read_handler_expect; -@@ -1731,6 +1864,13 @@ static int protocol_client_auth(VncState *vs, uint8_t *data, size_t len) + int ret; +@@ -1784,6 +1916,13 @@ static int protocol_client_auth(VncState *vs, uint8_t *data, size_t len) break; #endif /* CONFIG_VNC_TLS */ @@ -1434,7 +1437,7 @@ index f980d68..3c315d6 100644 default: /* Should not be possible, but just in case */ VNC_DEBUG("Reject auth %d\n", vs->vd->auth); vnc_write_u8(vs, 1); -@@ -1931,6 +2071,10 @@ int vnc_display_open(DisplayState *ds, const char *display) +@@ -1986,6 +2125,10 @@ int vnc_display_open(DisplayState *ds, const char *display) #ifdef CONFIG_VNC_TLS int tls = 0, x509 = 0; #endif @@ -1445,7 +1448,7 @@ index f980d68..3c315d6 100644 if (!vnc_display) return -1; -@@ -1950,6 +2094,10 @@ int vnc_display_open(DisplayState *ds, const char *display) +@@ -2005,6 +2148,10 @@ int vnc_display_open(DisplayState *ds, const char *display) reverse = 1; } else if (strncmp(options, "to=", 3) == 0) { to_port = atoi(options+3) + 5900; @@ -1456,7 +1459,7 @@ index f980d68..3c315d6 100644 #ifdef CONFIG_VNC_TLS } else if (strncmp(options, "tls", 3) == 0) { tls = 1; /* Require TLS */ -@@ -1986,6 +2134,22 @@ int vnc_display_open(DisplayState *ds, const char *display) +@@ -2041,6 +2188,22 @@ int vnc_display_open(DisplayState *ds, const char *display) } } @@ -1479,7 +1482,7 @@ index f980d68..3c315d6 100644 if (password) { #ifdef CONFIG_VNC_TLS if (tls) { -@@ -1998,13 +2162,34 @@ int vnc_display_open(DisplayState *ds, const char *display) +@@ -2053,13 +2216,34 @@ int vnc_display_open(DisplayState *ds, const char *display) vs->subauth = VNC_AUTH_VENCRYPT_TLSVNC; } } else { @@ -1516,7 +1519,7 @@ index f980d68..3c315d6 100644 } else { #ifdef CONFIG_VNC_TLS if (tls) { -@@ -2026,6 +2211,16 @@ int vnc_display_open(DisplayState *ds, const char *display) +@@ -2081,6 +2265,16 @@ int vnc_display_open(DisplayState *ds, const char *display) #endif } 07-vnc-monitor-authinfo.patch: vnc-tls.c | 17 +++++++++++++++++ vnc-tls.h | 3 +++ vnc.c | 20 +++++++++++++++++--- 3 files changed, 37 insertions(+), 3 deletions(-) Index: 07-vnc-monitor-authinfo.patch =================================================================== RCS file: /cvs/pkgs/rpms/qemu/F-11/07-vnc-monitor-authinfo.patch,v retrieving revision 1.4 retrieving revision 1.5 diff -u -p -r1.4 -r1.5 --- 07-vnc-monitor-authinfo.patch 4 Aug 2009 15:35:42 -0000 1.4 +++ 07-vnc-monitor-authinfo.patch 11 Sep 2009 11:13:08 -0000 1.5 @@ -1,4 +1,4 @@ -From e61c19737387273e305a2da5c9b28fe42e2eef67 Mon Sep 17 00:00:00 2001 +From 54d323707c4e1603795259fc3078f3e4ef9487d2 Mon Sep 17 00:00:00 2001 From: aliguori Date: Fri, 6 Mar 2009 20:27:32 +0000 Subject: [PATCH] Include auth credentials in 'info vnc' ("Daniel P. Berrange") @@ -87,7 +87,7 @@ index cda95b9..fd0a2d9 100644 int vnc_tls_client_setup(VncState *vs, int x509Creds); diff --git a/vnc.c b/vnc.c -index 3c315d6..9f0e16b 100644 +index 0b62000..de7b3b4 100644 --- a/vnc.c +++ b/vnc.c @@ -156,6 +156,21 @@ static void do_info_vnc_client(VncState *client) @@ -112,7 +112,7 @@ index 3c315d6..9f0e16b 100644 } void do_info_vnc(void) -@@ -1832,7 +1847,7 @@ static int protocol_client_auth(VncState *vs, uint8_t *data, size_t len) +@@ -1884,7 +1899,7 @@ static int protocol_client_auth(VncState *vs, uint8_t *data, size_t len) /* We only advertise 1 auth scheme at a time, so client * must pick the one we sent. Verify this */ if (data[0] != vs->vd->auth) { /* Reject auth */ @@ -121,7 +121,7 @@ index 3c315d6..9f0e16b 100644 vnc_write_u32(vs, 1); if (vs->minor >= 8) { static const char err[] = "Authentication failed"; -@@ -1872,7 +1887,7 @@ static int protocol_client_auth(VncState *vs, uint8_t *data, size_t len) +@@ -1924,7 +1939,7 @@ static int protocol_client_auth(VncState *vs, uint8_t *data, size_t len) #endif /* CONFIG_VNC_SASL */ default: /* Should not be possible, but just in case */ Index: qemu.spec =================================================================== RCS file: /cvs/pkgs/rpms/qemu/F-11/qemu.spec,v retrieving revision 1.102 retrieving revision 1.103 diff -u -p -r1.102 -r1.103 --- qemu.spec 4 Sep 2009 10:38:39 -0000 1.102 +++ qemu.spec 11 Sep 2009 11:13:08 -0000 1.103 @@ -1,7 +1,7 @@ Summary: QEMU is a FAST! processor emulator Name: qemu Version: 0.10.6 -Release: 4%{?dist} +Release: 5%{?dist} # Epoch because we pushed a qemu-1.0 package Epoch: 2 License: GPLv2+ and LGPLv2+ and BSD @@ -12,6 +12,11 @@ Source0: http://downloads.sourceforge.ne Source1: qemu.init Source2: kvm.modules +# Patches for bug #503156 and bug #501131 +# Both will be include in qemu-kvm-0.10.7 +Patch100: qemu-fix-vnc-copyrect-screen-corruption.patch +Patch101: qemu-fix-vnc-disconnect-segfault.patch + Patch1: 01-tls-handshake-fix.patch Patch2: 02-vnc-monitor-info.patch Patch3: 03-display-keymaps.patch @@ -211,6 +216,9 @@ such as kvmtrace and kvm_stat. %prep %setup -q -n qemu-kvm-%{version} +%patch100 -p1 +%patch101 -p1 + %patch1 -p1 %patch2 -p1 %patch3 -p1 @@ -471,6 +479,11 @@ fi %{_mandir}/man1/qemu-img.1* %changelog +* Fri Sep 11 2009 Mark McLoughlin - 2:0.10.6-4 +- Fix vnc segfault on disconnect (#501131) +- Fix vnc screen corruption with e.g. xterm (#503156) +- Rebase vnc sasl patches on top of these two vnc fixes + * Fri Sep 4 2009 Mark McLoughlin - 2:0.10.6-4 - Make pulseaudio the default audio backend (#519540, #495964, #496627) From markmc at fedoraproject.org Fri Sep 11 11:16:05 2009 From: markmc at fedoraproject.org (Mark McLoughlin) Date: Fri, 11 Sep 2009 11:16:05 +0000 (UTC) Subject: [fedora-virt-maint] rpms/qemu/F-11 qemu.spec,1.103,1.104 Message-ID: <20090911111605.60F6D11C0099@cvs1.fedora.phx.redhat.com> Author: markmc Update of /cvs/pkgs/rpms/qemu/F-11 In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv15765 Modified Files: qemu.spec Log Message: Fix changelog Index: qemu.spec =================================================================== RCS file: /cvs/pkgs/rpms/qemu/F-11/qemu.spec,v retrieving revision 1.103 retrieving revision 1.104 diff -u -p -r1.103 -r1.104 --- qemu.spec 11 Sep 2009 11:13:08 -0000 1.103 +++ qemu.spec 11 Sep 2009 11:16:05 -0000 1.104 @@ -479,7 +479,7 @@ fi %{_mandir}/man1/qemu-img.1* %changelog -* Fri Sep 11 2009 Mark McLoughlin - 2:0.10.6-4 +* Fri Sep 11 2009 Mark McLoughlin - 2:0.10.6-5 - Fix vnc segfault on disconnect (#501131) - Fix vnc screen corruption with e.g. xterm (#503156) - Rebase vnc sasl patches on top of these two vnc fixes From buildsys at fedoraproject.org Fri Sep 11 20:40:15 2009 From: buildsys at fedoraproject.org (buildsys at fedoraproject.org) Date: Fri, 11 Sep 2009 20:40:15 +0000 (UTC) Subject: [fedora-virt-maint] Broken dependencies: collectd Message-ID: <20090911204015.BB9D01F8221@releng2.fedora.phx.redhat.com> collectd has broken dependencies in the development tree: On ppc: collectd-mysql-4.5.3-2.fc11.ppc requires libcrypto.so.8 collectd-mysql-4.5.3-2.fc11.ppc requires libssl.so.8 On x86_64: collectd-mysql-4.5.3-2.fc11.x86_64 requires libcrypto.so.8()(64bit) collectd-mysql-4.5.3-2.fc11.x86_64 requires libssl.so.8()(64bit) On i386: collectd-mysql-4.5.3-2.fc11.i586 requires libcrypto.so.8 collectd-mysql-4.5.3-2.fc11.i586 requires libssl.so.8 On ppc64: collectd-mysql-4.5.3-2.fc11.ppc64 requires libcrypto.so.8()(64bit) collectd-mysql-4.5.3-2.fc11.ppc64 requires libssl.so.8()(64bit) On ppc: collectd-nut-4.5.3-2.fc11.ppc requires libcrypto.so.8 collectd-nut-4.5.3-2.fc11.ppc requires libssl.so.8 On x86_64: collectd-nut-4.5.3-2.fc11.x86_64 requires libcrypto.so.8()(64bit) collectd-nut-4.5.3-2.fc11.x86_64 requires libssl.so.8()(64bit) On i386: collectd-nut-4.5.3-2.fc11.i586 requires libcrypto.so.8 collectd-nut-4.5.3-2.fc11.i586 requires libssl.so.8 On ppc64: collectd-nut-4.5.3-2.fc11.ppc64 requires libcrypto.so.8()(64bit) collectd-nut-4.5.3-2.fc11.ppc64 requires libssl.so.8()(64bit) On ppc: collectd-snmp-4.5.3-2.fc11.ppc requires libcrypto.so.8 On x86_64: collectd-snmp-4.5.3-2.fc11.x86_64 requires libcrypto.so.8()(64bit) On i386: collectd-snmp-4.5.3-2.fc11.i586 requires libcrypto.so.8 On ppc64: collectd-snmp-4.5.3-2.fc11.ppc64 requires libcrypto.so.8()(64bit) Please resolve this as soon as possible. From spot at fedoraproject.org Sat Sep 12 00:17:17 2009 From: spot at fedoraproject.org (Tom Callaway) Date: Sat, 12 Sep 2009 00:17:17 +0000 (UTC) Subject: [fedora-virt-maint] rpms/collectd/devel .cvsignore, 1.9, 1.10 collectd-4.6.2-configure-OpenIPMI.patch, 1.1, 1.2 collectd-4.6.2-include-collectd.d.patch, 1.1, 1.2 collectd.spec, 1.24, 1.25 sources, 1.9, 1.10 Message-ID: <20090912001717.96ADF11C0099@cvs1.fedora.phx.redhat.com> Author: spot Update of /cvs/pkgs/rpms/collectd/devel In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv7117 Modified Files: .cvsignore collectd-4.6.2-configure-OpenIPMI.patch collectd-4.6.2-include-collectd.d.patch collectd.spec sources Log Message: 4.6.5, excludearch ppc to get it building again Index: .cvsignore =================================================================== RCS file: /cvs/pkgs/rpms/collectd/devel/.cvsignore,v retrieving revision 1.9 retrieving revision 1.10 diff -u -p -r1.9 -r1.10 --- .cvsignore 2 Sep 2009 13:45:01 -0000 1.9 +++ .cvsignore 12 Sep 2009 00:17:15 -0000 1.10 @@ -1 +1 @@ -collectd-4.6.4.tar.bz2 +collectd-4.6.5.tar.bz2 collectd-4.6.2-configure-OpenIPMI.patch: configure | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) Index: collectd-4.6.2-configure-OpenIPMI.patch =================================================================== RCS file: /cvs/pkgs/rpms/collectd/devel/collectd-4.6.2-configure-OpenIPMI.patch,v retrieving revision 1.1 retrieving revision 1.2 diff -u -p -r1.1 -r1.2 --- collectd-4.6.2-configure-OpenIPMI.patch 20 May 2009 10:40:50 -0000 1.1 +++ collectd-4.6.2-configure-OpenIPMI.patch 12 Sep 2009 00:17:15 -0000 1.2 @@ -1,29 +1,30 @@ ---- configure.orig 2009-03-18 11:56:42.000000000 +0100 -+++ configure 2009-05-20 11:05:33.000000000 +0200 -@@ -40327,7 +40327,7 @@ +diff -up ./configure.orig ./configure +--- ./configure.orig 2009-09-10 14:22:48.000000000 -0400 ++++ ./configure 2009-09-11 19:39:02.408651561 -0400 +@@ -27913,7 +27913,7 @@ if test "x$with_libopenipmipthread" = "x then - { $as_echo "$as_me:$LINENO: checking for libOpenIPMIpthread" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libOpenIPMIpthread" >&5 $as_echo_n "checking for libOpenIPMIpthread... " >&6; } - $PKG_CONFIG --exists OpenIPMIpthread 2>/dev/null + $PKG_CONFIG --exists OpenIPMI 2>/dev/null if test "$?" != "0" then with_libopenipmipthread="no ($PKG_CONFIG doesn't know OpenIPMIpthread)" -@@ -40340,7 +40340,7 @@ +@@ -27926,7 +27926,7 @@ if test "x$with_libopenipmipthread" = "x then - { $as_echo "$as_me:$LINENO: checking for libOpenIPMIpthread CFLAGS" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libOpenIPMIpthread CFLAGS" >&5 $as_echo_n "checking for libOpenIPMIpthread CFLAGS... " >&6; } - temp_result="`$PKG_CONFIG --cflags OpenIPMIpthread`" -+ temp_result="`$PKG_CONFIG --cflags OpenIPMI` -pthread" ++ temp_result="`$PKG_CONFIG --cflags OpenIPMI`" if test "$?" = "0" then with_libopenipmipthread_cflags="$temp_result" -@@ -40356,7 +40356,7 @@ +@@ -27942,7 +27942,7 @@ if test "x$with_libopenipmipthread" = "x then - { $as_echo "$as_me:$LINENO: checking for libOpenIPMIpthread LDFLAGS" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libOpenIPMIpthread LDFLAGS" >&5 $as_echo_n "checking for libOpenIPMIpthread LDFLAGS... " >&6; } - temp_result="`$PKG_CONFIG --libs OpenIPMIpthread`" -+ temp_result="-lOpenIPMIpthread `$PKG_CONFIG --libs OpenIPMI`" ++ temp_result="`$PKG_CONFIG --libs OpenIPMI`" if test "$?" = "0" then with_libopenipmipthread_ldflags="$temp_result" collectd-4.6.2-include-collectd.d.patch: collectd.conf.in | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) Index: collectd-4.6.2-include-collectd.d.patch =================================================================== RCS file: /cvs/pkgs/rpms/collectd/devel/collectd-4.6.2-include-collectd.d.patch,v retrieving revision 1.1 retrieving revision 1.2 diff -u -p -r1.1 -r1.2 --- collectd-4.6.2-include-collectd.d.patch 20 May 2009 10:40:50 -0000 1.1 +++ collectd-4.6.2-include-collectd.d.patch 12 Sep 2009 00:17:15 -0000 1.2 @@ -1,6 +1,7 @@ ---- collectd-4.6.2/src/collectd.conf.in.orig 2009-03-18 11:55:39.000000000 +0100 -+++ collectd-4.6.2/src/collectd.conf.in 2009-05-20 10:59:34.000000000 +0200 -@@ -26,7 +26,6 @@ +diff -up collectd-4.6.5/src/collectd.conf.in.orig collectd-4.6.5/src/collectd.conf.in +--- collectd-4.6.5/src/collectd.conf.in.orig 2009-09-10 14:16:52.000000000 -0400 ++++ collectd-4.6.5/src/collectd.conf.in 2009-09-11 19:34:18.865782426 -0400 +@@ -26,7 +26,6 @@ FQDNLookup true # LogLevel info # @@ -8,7 +9,7 @@ @BUILD_PLUGIN_APCUPS_TRUE at LoadPlugin apcups @BUILD_PLUGIN_APPLE_SENSORS_TRUE at LoadPlugin apple_sensors @BUILD_PLUGIN_ASCENT_TRUE at LoadPlugin ascent -@@ -39,45 +38,33 @@ +@@ -39,45 +38,33 @@ FQDNLookup true @BUILD_PLUGIN_DBI_TRUE at LoadPlugin dbi @BUILD_PLUGIN_DF_TRUE at LoadPlugin df @BUILD_PLUGIN_DISK_TRUE at LoadPlugin disk @@ -54,8 +55,8 @@ @BUILD_PLUGIN_SWAP_TRUE at LoadPlugin swap @BUILD_PLUGIN_TAIL_TRUE at LoadPlugin tail @BUILD_PLUGIN_TAPE_TRUE at LoadPlugin tape -@@ -551,3 +538,5 @@ - # +@@ -560,3 +547,5 @@ FQDNLookup true + # # Target "write" # + Index: collectd.spec =================================================================== RCS file: /cvs/pkgs/rpms/collectd/devel/collectd.spec,v retrieving revision 1.24 retrieving revision 1.25 diff -u -p -r1.24 -r1.25 --- collectd.spec 2 Sep 2009 13:45:01 -0000 1.24 +++ collectd.spec 12 Sep 2009 00:17:15 -0000 1.25 @@ -1,6 +1,6 @@ Summary: Statistics collection daemon for filling RRD files Name: collectd -Version: 4.6.4 +Version: 4.6.5 Release: 1%{?dist} License: GPLv2 Group: System Environment/Daemons @@ -10,10 +10,6 @@ Source: http://collectd.org/files/%{name Patch0: %{name}-4.6.2-include-collectd.d.patch # bug 468067 "pkg-config --libs OpenIPMIpthread" fails Patch1: %{name}-4.6.2-configure-OpenIPMI.patch -# bug 516273 on upgrade collectd is not restarted -Patch2: %{name}-4.5.4-fix-condrestart.patch -# bug 480997 collectd does not re-connect to libvirtd -Patch3: %{name}-4.5.4-libvirt-reconnect.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root @@ -35,6 +31,16 @@ BuildRequires: OpenIPMI-devel BuildRequires: postgresql-devel BuildRequires: nut-devel +# In function 'strncpy', +# inlined from 'ping_send_one_ipv6' at liboping.c:626: +# /usr/include/bits/string3.h:122: error: call to __builtin___strncpy_chk will always overflow destination buffer +# In function 'strncpy', +# inlined from 'ping_send_one_ipv4' at liboping.c:579: +# /usr/include/bits/string3.h:122: error: call to __builtin___strncpy_chk will always overflow destination buffer + +# PPC/PPC64 disabled due to above error. +ExcludeArch: ppc ppc64 + %description collectd is a small daemon written in C for performance. It reads various system statistics and updates RRD files, creating them if necessary. @@ -155,8 +161,6 @@ This plugin collects information from vi %setup -q %patch0 -p1 %patch1 -p0 -%patch2 -p0 -%patch3 -p1 sed -i.orig -e 's|-Werror||g' Makefile.in */Makefile.in @@ -431,6 +435,10 @@ fi %changelog +* Fri Sep 11 2009 Tom "spot" Callaway 4.6.5-1 +- update to 4.6.5 +- disable ppc/ppc64 due to compile error + * Wed Sep 02 2009 Alan Pevec 4.6.4-1 - fix condrestart: on upgrade collectd is not restarted, bz# 516273 - collectd does not re-connect to libvirtd, bz# 480997 Index: sources =================================================================== RCS file: /cvs/pkgs/rpms/collectd/devel/sources,v retrieving revision 1.9 retrieving revision 1.10 diff -u -p -r1.9 -r1.10 --- sources 2 Sep 2009 13:45:01 -0000 1.9 +++ sources 12 Sep 2009 00:17:15 -0000 1.10 @@ -1 +1 @@ -f4a1b16c57ba946d24c0db910febb950 collectd-4.6.4.tar.bz2 +131e6fbb55f0cf6a069a98eedd21d293 collectd-4.6.5.tar.bz2 From crobinso at fedoraproject.org Sun Sep 13 23:14:09 2009 From: crobinso at fedoraproject.org (Cole Robinson) Date: Sun, 13 Sep 2009 23:14:09 +0000 (UTC) Subject: [fedora-virt-maint] rpms/python-virtinst/devel virtinst-0.500.0-no-default-keymap.patch, NONE, 1.1 virtinst-0.500.0-update-testsuite.patch, NONE, 1.1 virtinst-0.500.0-virtio-cdrom.patch, NONE, 1.1 virtinst-0.500.0-virtio-dev-limit.patch, NONE, 1.1 python-virtinst.spec, 1.70, 1.71 Message-ID: <20090913231409.19E4411C0374@cvs1.fedora.phx.redhat.com> Author: crobinso Update of /cvs/pkgs/rpms/python-virtinst/devel In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv846 Modified Files: python-virtinst.spec Added Files: virtinst-0.500.0-no-default-keymap.patch virtinst-0.500.0-update-testsuite.patch virtinst-0.500.0-virtio-cdrom.patch virtinst-0.500.0-virtio-dev-limit.patch Log Message: Don't erroneously set limit for amount of virtio devices (bz 499654) Don't use virtio for cdrom devices (bz 517151) Auto detect keymapping (bz 487735) virtinst-0.500.0-no-default-keymap.patch: VirtualGraphics.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) --- NEW FILE virtinst-0.500.0-no-default-keymap.patch --- diff -r 712276328f75 virtinst/VirtualGraphics.py --- a/virtinst/VirtualGraphics.py Wed Apr 08 10:27:20 2009 -0400 +++ b/virtinst/VirtualGraphics.py Thu Apr 09 09:48:36 2009 -0400 @@ -55,8 +55,9 @@ def get_keymap(self): return self._keymap def set_keymap(self, val): - if not val: - val = _util.default_keymap() + if val == None: + self._keymap = val + return if not val or type(val) != type("string"): raise ValueError, _("Keymap must be a string") if len(val) > 16: virtinst-0.500.0-update-testsuite.patch: testdriver.xml | 16 ++++++++++++---- xmlconfig.py | 3 +-- 2 files changed, 13 insertions(+), 6 deletions(-) --- NEW FILE virtinst-0.500.0-update-testsuite.patch --- diff -rup old/tests/testdriver.xml virtinst-0.500.0/tests/testdriver.xml --- old/tests/testdriver.xml 2009-09-13 19:06:49.000000000 -0400 +++ virtinst-0.500.0/tests/testdriver.xml 2009-09-13 19:07:02.000000000 -0400 @@ -62,19 +62,25 @@ default-vol 1000000 50000 - + + + testvol1.img 1000000 50000 - + + + testvol2.img 1000000 50000 - + + + @@ -153,7 +159,9 @@ testvol1.img 107374182400 107374182400 - + + + diff -rup old/tests/xmlconfig.py virtinst-0.500.0/tests/xmlconfig.py --- old/tests/xmlconfig.py 2009-09-13 19:06:49.000000000 -0400 +++ virtinst-0.500.0/tests/xmlconfig.py 2009-09-13 19:10:56.000000000 -0400 @@ -28,7 +28,7 @@ from virtinst import VirtualCharDevice from virtinst import VirtualVideoDevice import tests -conn = libvirt.open("test:///default") +conn = tests.open_testdriver() def get_basic_paravirt_guest(): g = virtinst.ParaVirtGuest(connection=conn, type="xen") @@ -41,7 +41,6 @@ def get_basic_paravirt_guest(): g.vcpus = 5 return g -conn = libvirt.open("test:///default") def get_basic_fullyvirt_guest(typ="xen"): g = virtinst.FullVirtGuest(connection=conn, type=typ, emulator="/usr/lib/xen/bin/qemu-dm", virtinst-0.500.0-virtio-cdrom.patch: tests/xmlconfig-xml/install-f11.xml | 9 +++++++++ tests/xmlconfig.py | 10 ++++++++-- virtinst/FullVirtGuest.py | 4 +++- 3 files changed, 20 insertions(+), 3 deletions(-) --- NEW FILE virtinst-0.500.0-virtio-cdrom.patch --- # HG changeset patch # User Cole Robinson # Date 1252880415 14400 # Node ID 252ff7bc5ff9e95f49dd7deb6ef6af07287a5055 # Parent 726dc69533961f5cf7865e35be2b851f5f686c52 Don't use virtio for cdrom/floppy devices (bz 517151) Also add a test case to prevent against this issue in the future. diff -r 726dc6953396 -r 252ff7bc5ff9 tests/xmlconfig-xml/install-f11.xml --- a/tests/xmlconfig-xml/install-f11.xml Sun Sep 13 13:05:53 2009 -0400 +++ b/tests/xmlconfig-xml/install-f11.xml Sun Sep 13 18:20:15 2009 -0400 @@ -17,6 +17,10 @@ 5 /usr/lib/xen/bin/qemu-dm + + + + @@ -25,6 +29,11 @@ + + + + + diff -r 726dc6953396 -r 252ff7bc5ff9 tests/xmlconfig.py --- a/tests/xmlconfig.py Sun Sep 13 13:05:53 2009 -0400 +++ b/tests/xmlconfig.py Sun Sep 13 18:20:15 2009 -0400 @@ -57,6 +57,9 @@ g.vcpus = 5 return g +def get_floppy(path="/default-pool/testvol1.img"): + return VirtualDisk(path, conn=conn, device=VirtualDisk.DEVICE_FLOPPY) + def get_filedisk(path="/tmp/test.img"): return VirtualDisk(path, size=.0001, conn=conn) @@ -326,8 +329,11 @@ g = get_basic_fullyvirt_guest("kvm") g.os_type = "linux" g.os_variant = "fedora11" - g.installer = virtinst.PXEInstaller(type="kvm", os_type="hvm", - conn=g.conn) + g.installer = virtinst.DistroInstaller(type="kvm", os_type="hvm", + conn=g.conn, + location="/default-pool/default-vol") + g.installer.cdrom = True + g.disks.append(get_floppy()) g.disks.append(get_filedisk()) g.disks.append(get_blkdisk()) g.nics.append(get_virtual_network()) diff -r 726dc6953396 -r 252ff7bc5ff9 virtinst/FullVirtGuest.py --- a/virtinst/FullVirtGuest.py Sun Sep 13 13:05:53 2009 -0400 +++ b/virtinst/FullVirtGuest.py Sun Sep 13 18:20:15 2009 -0400 @@ -24,6 +24,7 @@ from Guest import Guest from VirtualDevice import VirtualDevice +from VirtualDisk import VirtualDisk from VirtualInputDevice import VirtualInputDevice from VirtualCharDevice import VirtualCharDevice @@ -122,7 +123,8 @@ if net_model and not net.model: net.model = net_model for disk in self._get_install_devs(VirtualDevice.VIRTUAL_DEV_DISK): - if disk_bus and not disk.bus: + if (disk_bus and not disk.bus and + disk.device == VirtualDisk.DEVICE_DISK): disk.bus = disk_bus # If no serial devices were attached to the guest, stick the default virtinst-0.500.0-virtio-dev-limit.patch: tests/clitest.py | 2 ++ virtinst/VirtualDisk.py | 8 +++++--- 2 files changed, 7 insertions(+), 3 deletions(-) --- NEW FILE virtinst-0.500.0-virtio-dev-limit.patch --- # HG changeset patch # User Cole Robinson # Date 1252861553 14400 # Node ID 726dc69533961f5cf7865e35be2b851f5f686c52 # Parent 0d3cdc5ff5d091dd73d3ef0fe21123fb63b4d7a0 Don't erroneously limit the amount of virtio disks (bz 499654) Just let qemu error if we add too many. diff -r 0d3cdc5ff5d0 -r 726dc6953396 tests/clitest.py --- a/tests/clitest.py Wed Aug 05 14:37:02 2009 -0400 +++ b/tests/clitest.py Sun Sep 13 13:05:53 2009 -0400 @@ -128,6 +128,8 @@ "--disk vol=%(POOL)s/%(VOL)s", # 3 IDE and CD "--disk path=%(EXISTIMG1)s --disk path=%(EXISTIMG1)s --disk path=%(EXISTIMG1)s --disk path=%(EXISTIMG1)s,device=cdrom", + # > 16 scsi disks + " --disk path=%(EXISTIMG1)s,bus=scsi --disk path=%(EXISTIMG1)s,bus=scsi --disk path=%(EXISTIMG1)s,bus=scsi --disk path=%(EXISTIMG1)s,bus=scsi --disk path=%(EXISTIMG1)s,bus=scsi --disk path=%(EXISTIMG1)s,bus=scsi --disk path=%(EXISTIMG1)s,bus=scsi --disk path=%(EXISTIMG1)s,bus=scsi --disk path=%(EXISTIMG1)s,bus=scsi --disk path=%(EXISTIMG1)s,bus=scsi --disk path=%(EXISTIMG1)s,bus=scsi --disk path=%(EXISTIMG1)s,bus=scsi --disk path=%(EXISTIMG1)s,bus=scsi --disk path=%(EXISTIMG1)s,bus=scsi --disk path=%(EXISTIMG1)s,bus=scsi --disk path=%(EXISTIMG1)s,bus=scsi --disk path=%(EXISTIMG1)s,bus=scsi", ], "invalid": [ diff -r 0d3cdc5ff5d0 -r 726dc6953396 virtinst/VirtualDisk.py --- a/virtinst/VirtualDisk.py Wed Aug 05 14:37:02 2009 -0400 +++ b/virtinst/VirtualDisk.py Sun Sep 13 13:05:53 2009 -0400 @@ -1142,12 +1142,14 @@ the passed parameters. @returns: str prefix, or None if no reasonable guess can be made """ + # The upper limits here aren't necessarilly 1024, but let the HV + # error as appropriate. if self.bus == "virtio": - return ("vd", 16) + return ("vd", 1024) elif self.bus == "scsi" or self.bus == "usb": - return ("sd", 16) + return ("sd", 1024) elif self.bus == "xen": - return ("xvd", 16) + return ("xvd", 1024) elif self.bus == "fdc" or self.device == self.DEVICE_FLOPPY: return ("fd", 2) elif self.bus == "ide": Index: python-virtinst.spec =================================================================== RCS file: /cvs/pkgs/rpms/python-virtinst/devel/python-virtinst.spec,v retrieving revision 1.70 retrieving revision 1.71 diff -u -p -r1.70 -r1.71 --- python-virtinst.spec 29 Jul 2009 02:17:47 -0000 1.70 +++ python-virtinst.spec 13 Sep 2009 23:14:03 -0000 1.71 @@ -17,8 +17,17 @@ Summary: Python modules and utilities for installing virtual machines Name: python-%{appname} Version: 0.500.0 -Release: 1%{_extra_release} +Release: 2%{_extra_release} Source0: http://virt-manager.org/download/sources/%{appname}/%{appname}-%{version}.tar.gz +# Don't erroneously set limit for amount of virtio devices (bz 499654) +Patch1: %{appname}-%{version}-virtio-dev-limit.patch +# Don't use virtio for cdrom devices (bz 517151) +Patch2: %{appname}-%{version}-virtio-cdrom.patch +# Rawhide/F11 can auto detect keymapping (bz 487735) +Patch3: %{appname}-%{version}-no-default-keymap.patch +# Update test suite to verify patches +Patch4: %{appname}-%{version}-update-testsuite.patch + License: GPLv2+ Group: Development/Libraries BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -45,6 +54,10 @@ and install new VMs) and virt-clone (clo %prep %setup -q -n %{appname}-%{version} +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 %build python setup.py build @@ -80,6 +93,11 @@ rm -rf $RPM_BUILD_ROOT %{_bindir}/virt-convert %changelog +* Sun Sep 13 2009 Cole Robinson - 0.500.0-2.fc12 +- Don't erroneously set limit for amount of virtio devices (bz 499654) +- Don't use virtio for cdrom devices (bz 517151) +- Auto detect keymapping (bz 487735) + * Tue Jul 28 2009 Cole Robinson - 0.500.0-1.fc12 - Update to version 0.500.0 - New virt-install device options --serial, --parallel, and --video From crobinso at fedoraproject.org Sun Sep 13 23:48:36 2009 From: crobinso at fedoraproject.org (Cole Robinson) Date: Sun, 13 Sep 2009 23:48:36 +0000 (UTC) Subject: [fedora-virt-maint] rpms/python-virtinst/F-11 virtinst-0.400.3-default-bridge-error.patch, NONE, 1.1 virtinst-0.400.3-sles-virtio.patch, NONE, 1.1 virtinst-0.400.3-virtio-dev-limit.patch, NONE, 1.1 python-virtinst.spec, 1.69, 1.70 Message-ID: <20090913234836.BF88E11C0374@cvs1.fedora.phx.redhat.com> Author: crobinso Update of /cvs/pkgs/rpms/python-virtinst/F-11 In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv23121 Modified Files: python-virtinst.spec Added Files: virtinst-0.400.3-default-bridge-error.patch virtinst-0.400.3-sles-virtio.patch virtinst-0.400.3-virtio-dev-limit.patch Log Message: Fix parse error when looking for default bridge (bz 506319) Use virtio for SLES guests (bz 505317) Don't erroneously set limit for amount of virtio devices (bz 499654) virtinst-0.400.3-default-bridge-error.patch: VirtualNetworkInterface.py | 2 - _util.py | 50 ++++++++++++++++++++++++++++++++++++++ util.py | 58 +++++++++------------------------------------ 3 files changed, 62 insertions(+), 48 deletions(-) --- NEW FILE virtinst-0.400.3-default-bridge-error.patch --- # HG changeset patch # User Cole Robinson # Date 1245253380 14400 # Node ID 503cd42936a950399e3684430d6caffe3aa75c1f # Parent 9da0cafaf0e9c68a0e3ada8ca33eff0999493533 Refactor default net device searching. We had some duplicate code, and some pretty careless code that could bomb out in corner cases (rhbz 506319) diff -rup old/virtinst/_util.py virtinst-0.400.3/virtinst/_util.py --- old/virtinst/_util.py 2009-09-13 18:44:41.000000000 -0400 +++ virtinst-0.400.3/virtinst/_util.py 2009-09-13 18:51:17.000000000 -0400 @@ -28,10 +28,12 @@ import os import re import commands import logging +import platform +import subprocess import libvirt -from virtinst import util +import virtinst.util as util from virtinst import _virtinst as _ def is_vdisk(path): @@ -176,6 +178,52 @@ def fetch_all_guests(conn): return (active, inactive) +def default_nic(): + """ + Return the default NIC to use, if one is specified. + """ + + dev = '' + + if platform.system() != 'SunOS': + return dev + + # XXX: fails without PRIV_XVM_CONTROL + proc = subprocess.Popen(['/usr/lib/xen/bin/xenstore-read', + 'device-misc/vif/default-nic'], stdout=subprocess.PIPE, + stderr=subprocess.PIPE) + out = proc.stdout.readlines() + if len(out) > 0: + dev = out[0].rstrip() + + return dev + +def default_bridge2(conn = None): + if platform.system() == 'SunOS': + return ["bridge", default_nic()] + + dev = util.default_route() + + if (dev is not None and + (not conn or not is_uri_remote(conn.getURI()))): + # New style peth0 == phys dev, eth0 == bridge, eth0 == default route + if os.path.exists("/sys/class/net/%s/bridge" % dev): + return ["bridge", dev] + + # Old style, peth0 == phys dev, eth0 == netloop, xenbr0 == bridge, + # vif0.0 == netloop enslaved, eth0 == default route + try: + defn = int(dev[-1]) + except: + defn = -1 + + if (defn >= 0 and + os.path.exists("/sys/class/net/peth%d/brport" % defn) and + os.path.exists("/sys/class/net/xenbr%d/bridge" % defn)): + return ["bridge", "xenbr%d" % defn] + + return None + # # These functions accidentally ended up in the API under virtinst.util # diff -rup old/virtinst/util.py virtinst-0.400.3/virtinst/util.py --- old/virtinst/util.py 2009-09-13 18:44:41.000000000 -0400 +++ virtinst-0.400.3/virtinst/util.py 2009-09-13 18:51:17.000000000 -0400 @@ -38,6 +38,7 @@ from sys import stderr import libvirt from virtinst import _virtinst as _ +import virtinst import CapabilitiesParser from User import User @@ -75,59 +76,24 @@ def default_route(nic = None): continue return None -def _default_nic(): - """Return the default NIC to use, if one is specified. - This is NOT part of the API and may change at will.""" - - dev = '' - - if platform.system() != 'SunOS': - return dev - - # XXX: fails without PRIV_XVM_CONTROL - proc = subprocess.Popen(['/usr/lib/xen/bin/xenstore-read', - 'device-misc/vif/default-nic'], stdout=subprocess.PIPE, - stderr=subprocess.PIPE) - out = proc.stdout.readlines() - if len(out) > 0: - dev = out[0].rstrip() - - return dev def default_bridge(): - if platform.system() == 'SunOS': - return _default_nic() - - rt = default_route() - if rt is None: - defn = None + ret = virtinst._util.default_bridge2(None) + if not ret: + # Maintain this behavior for back compat + ret = "xenbr0" else: - defn = int(rt[-1]) + ret = ret[1] - if defn is None: - return "xenbr0" - else: - return "xenbr%d"%(defn) + return ret def default_network(conn): - if platform.system() == 'SunOS': - return ["bridge", _default_nic()] - - dev = default_route() - - if dev is not None and not is_uri_remote(conn.getURI()): - # New style peth0 == phys dev, eth0 == bridge, eth0 == default route - if os.path.exists("/sys/class/net/%s/bridge" % dev): - return ["bridge", dev] - - # Old style, peth0 == phys dev, eth0 == netloop, xenbr0 == bridge, - # vif0.0 == netloop enslaved, eth0 == default route - defn = int(dev[-1]) - if os.path.exists("/sys/class/net/peth%d/brport" % defn) and \ - os.path.exists("/sys/class/net/xenbr%d/bridge" % defn): - return ["bridge", "xenbr%d" % defn] + ret = virtinst._util.default_bridge2(conn) + if not ret: + # FIXME: Check that this exists + ret = ["network", "default"] - return ["network", "default"] + return ret def default_connection(): if os.path.exists('/var/lib/xend'): diff -rup old/virtinst/VirtualNetworkInterface.py virtinst-0.400.3/virtinst/VirtualNetworkInterface.py --- old/virtinst/VirtualNetworkInterface.py 2009-09-13 18:44:41.000000000 -0400 +++ virtinst-0.400.3/virtinst/VirtualNetworkInterface.py 2009-09-13 18:51:17.000000000 -0400 @@ -127,7 +127,7 @@ class VirtualNetworkInterface(VirtualDev raise RuntimeError(msg) if not self.bridge and self.type == "bridge": - self.bridge = _util.default_bridge() + self.bridge = _util.default_bridge2(self.conn) def get_xml_config(self): src_xml = "" virtinst-0.400.3-sles-virtio.patch: osdict.py | 7 +++++++ 1 file changed, 7 insertions(+) --- NEW FILE virtinst-0.400.3-sles-virtio.patch --- # HG changeset patch # User Cole Robinson # Date 1247623635 14400 # Node ID dbda3bfc28f8d81d244c7b54998e63a85ddf9824 # Parent 3c68ba7758a6190f28ec32ab20a3ce96f7802542 osdict: Add SLES 11 (supports virtio) diff -r 3c68ba7758a6 -r dbda3bfc28f8 virtinst/osdict.py --- a/virtinst/osdict.py Tue Jul 14 12:13:50 2009 -0400 +++ b/virtinst/osdict.py Tue Jul 14 22:07:15 2009 -0400 @@ -174,6 +174,13 @@ }}, "sles10": { "label": "Suse Linux Enterprise Server", "distro": "suse" }, + "sles11": { "label": "Suse Linux Enterprise Server 11", + "distro": "suse", + "devices" : { + "disk" : { "bus" : [ (["kvm"], "virtio") ] }, + "net" : { "model" : [ (["kvm"], "virtio") ] }, + }, + }, "debianetch": { "label": "Debian Etch", "distro": "debian" }, "debianlenny": { "label": "Debian Lenny", "distro": "debian", "devices" : { virtinst-0.400.3-virtio-dev-limit.patch: VirtualDisk.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) --- NEW FILE virtinst-0.400.3-virtio-dev-limit.patch --- # HG changeset patch # User Cole Robinson # Date 1252861553 14400 # Node ID 726dc69533961f5cf7865e35be2b851f5f686c52 # Parent 0d3cdc5ff5d091dd73d3ef0fe21123fb63b4d7a0 Don't erroneously limit the amount of virtio disks (bz 499654) Just let qemu error if we add too many. diff -r 0d3cdc5ff5d0 -r 726dc6953396 virtinst/VirtualDisk.py --- a/virtinst/VirtualDisk.py Wed Aug 05 14:37:02 2009 -0400 +++ b/virtinst/VirtualDisk.py Sun Sep 13 13:05:53 2009 -0400 @@ -1142,12 +1142,14 @@ the passed parameters. @returns: str prefix, or None if no reasonable guess can be made """ + # The upper limits here aren't necessarilly 1024, but let the HV + # error as appropriate. if self.bus == "virtio": - return ("vd", 16) + return ("vd", 1024) elif self.bus == "scsi" or self.bus == "usb": - return ("sd", 16) + return ("sd", 1024) elif self.bus == "xen": - return ("xvd", 16) + return ("xvd", 1024) elif self.bus == "fdc" or self.device == self.DEVICE_FLOPPY: return ("fd", 2) elif self.bus == "ide": Index: python-virtinst.spec =================================================================== RCS file: /cvs/pkgs/rpms/python-virtinst/F-11/python-virtinst.spec,v retrieving revision 1.69 retrieving revision 1.70 diff -u -p -r1.69 -r1.70 --- python-virtinst.spec 6 May 2009 16:10:47 -0000 1.69 +++ python-virtinst.spec 13 Sep 2009 23:48:25 -0000 1.70 @@ -17,7 +17,7 @@ Summary: Python modules and utilities for installing virtual machines Name: python-%{appname} Version: 0.400.3 -Release: 8%{_extra_release} +Release: 9%{_extra_release} Source0: http://virt-manager.org/download/sources/%{appname}/%{appname}-%{version}.tar.gz Patch1: %{appname}-%{version}-fix-virtimage-scratch.patch Patch2: %{appname}-%{version}-hostdev-libvirt-calls.patch @@ -33,6 +33,13 @@ Patch7: %{appname}-%{version}-updated-tr Patch8: %{appname}-%{version}-selinux-warn.patch # Fix PCI assignment detach/reset calls (bz 499267) Patch9: %{appname}-%{version}-fix-pci-assign.patch +# Fix parse error when looking for default bridge (bz 506319) +Patch10: %{appname}-%{version}-default-bridge-error.patch +# Use virtio for SLES guests (bz 505317) +Patch11: %{appname}-%{version}-sles-virtio.patch +# Don't erroneously set limit for amount of virtio devices (bz 499654) +Patch12: %{appname}-%{version}-virtio-dev-limit.patch + License: GPLv2+ Group: Development/Libraries BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -68,6 +75,9 @@ and install new VMs) and virt-clone (clo %patch7 -p1 %patch8 -p1 %patch9 -p1 +%patch10 -p1 +%patch11 -p1 +%patch12 -p1 %build python setup.py build @@ -103,6 +113,11 @@ rm -rf $RPM_BUILD_ROOT %{_bindir}/virt-convert %changelog +* Sun Sep 13 2009 Cole Robinson - 0.400.3-9.fc11 +- Fix parse error when looking for default bridge (bz 506319) +- Use virtio for SLES guests (bz 505317) +- Don't erroneously set limit for amount of virtio devices (bz 499654) + * Wed May 06 2009 Cole Robinson - 0.400.3-8.fc11 - Fix PCI assignment (bz 499267) From crobinso at fedoraproject.org Mon Sep 14 01:01:42 2009 From: crobinso at fedoraproject.org (Cole Robinson) Date: Mon, 14 Sep 2009 01:01:42 +0000 (UTC) Subject: [fedora-virt-maint] rpms/virt-manager/F-10 virt-manager-0.6.1-migrate-fixes.patch, NONE, 1.1 virt-manager-0.6.1-rhel-fixes.patch, NONE, 1.1 virt-manager.spec, 1.40, 1.41 Message-ID: <20090914010142.EC43F11C0375@cvs1.fedora.phx.redhat.com> Author: crobinso Update of /cvs/pkgs/rpms/virt-manager/F-10 In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv6875 Modified Files: virt-manager.spec Added Files: virt-manager-0.6.1-migrate-fixes.patch virt-manager-0.6.1-rhel-fixes.patch Log Message: Fix migration for qemu/kvm guests (bz 517548) Back compat fixes for connecting to older xen installations (bz 489885) virt-manager-0.6.1-migrate-fixes.patch: new/src/virtManager/domain.py | 10 +++++++--- src/virtManager/details.py | 11 +++++------ src/virtManager/engine.py | 13 ++++++++++++- src/virtManager/manager.py | 11 ++++------- 4 files changed, 28 insertions(+), 17 deletions(-) --- NEW FILE virt-manager-0.6.1-migrate-fixes.patch --- # HG changeset patch # User Cole Robinson # Date 1236630113 14400 # Node ID 6126a50801deafa155b17b66cfc3008ffe584b24 # Parent 3f37d0519b1750666e88e7eaef8d5dfaafc34237 Fix conn uri lookup for domain migration. diff -r 3f37d0519b17 -r 6126a50801de src/virtManager/details.py --- a/src/virtManager/details.py Mon Mar 09 16:21:32 2009 -0400 +++ b/src/virtManager/details.py Mon Mar 09 16:21:53 2009 -0400 @@ -719,12 +719,11 @@ def control_vm_migrate(self, src): # get selected submenu(destination hostname) - hostname = self.window.get_widget("details-menu-migrate_menu").get_active().get_image().get_stock()[0] - for key in self.engine.connections.keys(): - if self.engine.get_connection(key).get_hostname() == hostname: - host_uri = key - break - self.emit("action-migrate-domain", self.vm.get_connection().get_uri(), self.vm.get_uuid(), host_uri) + info = self.window.get_widget("details-menu-migrate_menu").get_active().get_image().get_stock()[0] + hostname = info.split(" ")[0] + + self.emit("action-migrate-domain", self.vm.get_connection().get_uri(), + self.vm.get_uuid(), hostname) def set_migrate_menu(self): menu = self.window.get_widget("details-menu-migrate_menu") diff -r 3f37d0519b17 -r 6126a50801de src/virtManager/engine.py --- a/src/virtManager/engine.py Mon Mar 09 16:21:32 2009 -0400 +++ b/src/virtManager/engine.py Mon Mar 09 16:21:53 2009 -0400 @@ -527,7 +527,18 @@ else: logging.warning("Reboot requested, but machine is already shutting down / shutoff") - def migrate_domain(self, uri, uuid, desturi): + def migrate_domain(self, uri, uuid, desthost): + desturi = None + for key in self.connections.keys(): + if self.get_connection(key).get_hostname() == desthost: + desturi = key + break + + if desturi == None: + logging.debug("Could not find dest uri for migrate hostname: %s" + % desthost) + return + conn = self.get_connection(uri, False) vm = conn.get_vm(uuid) destconn = self.get_connection(desturi, False) diff -r 3f37d0519b17 -r 6126a50801de src/virtManager/manager.py --- a/src/virtManager/manager.py Mon Mar 09 16:21:32 2009 -0400 +++ b/src/virtManager/manager.py Mon Mar 09 16:21:53 2009 -0400 @@ -1100,14 +1100,11 @@ def migrate(self, ignore): vm = self.current_vm() - # get selected submenu(destination hostname) - hostname = self.vmmenumigrate.get_active().get_image().get_stock()[0] - for key in self.engine.connections.keys(): - if self.engine.get_connection(key).get_hostname() == hostname: - host_uri = key - break + label = self.vmmenumigrate.get_active().get_image().get_stock()[0] + hostname = label.split(" ")[0] if vm is not None: - self.emit("action-migrate-domain", vm.get_connection().get_uri(), vm.get_uuid(), host_uri) + self.emit("action-migrate-domain", vm.get_connection().get_uri(), + vm.get_uuid(), hostname) def set_migrate_submenu(self, src): self.engine.populate_migrate_menu(self.vmmenumigrate, self.migrate) diff -rup virt-manager-0.6.1/src/virtManager/domain.py new/src/virtManager/domain.py --- virt-manager-0.6.1/src/virtManager/domain.py 2009-09-13 20:25:12.000000000 -0400 +++ new/src/virtManager/domain.py 2009-09-13 20:24:29.000000000 -0400 @@ -1293,11 +1293,15 @@ class vmmDomain(gobject.GObject): else: self._disk_io = self._sample_disk_io_dummy - - def migrate(self, dictcon): + def migrate(self, destconn): flags = 0 if self.lastStatus == libvirt.VIR_DOMAIN_RUNNING: flags = libvirt.VIR_MIGRATE_LIVE - self.vm.migrate(self.connection.vmm, flags, None, dictcon.get_short_hostname(), 0) + + newxml = self.get_xml() + + self.vm.migrate(destconn.vmm, flags, None, None, 0) + + destconn.define_domain(newxml) gobject.type_register(vmmDomain) virt-manager-0.6.1-rhel-fixes.patch: details.py | 2 +- domain.py | 29 +++++++++++++++++++++++++---- 2 files changed, 26 insertions(+), 5 deletions(-) --- NEW FILE virt-manager-0.6.1-rhel-fixes.patch --- # HG changeset patch # User Cole Robinson # Date 1236957667 14400 # Node ID 4331403b2e66dafdda618283dcea259a66fba423 # Parent 89c007e38850e1283447ea4c19ff6f64ce6224b6 Fix xml parsing for old style 'console' xml. diff -r 89c007e38850 -r 4331403b2e66 src/virtManager/details.py --- a/src/virtManager/details.py Mon Mar 09 23:38:03 2009 -0400 +++ b/src/virtManager/details.py Fri Mar 13 11:21:07 2009 -0400 @@ -1106,7 +1106,7 @@ _("(Primary Console)") or "") self.window.get_widget("char-type").set_markup(typelabel) self.window.get_widget("char-dev-type").set_text(charinfo[4] or "-") - self.window.get_widget("char-target-port").set_text(charinfo[3]) + self.window.get_widget("char-target-port").set_text(charinfo[3] or "") self.window.get_widget("char-source-path").set_text(charinfo[5] or "-") def refresh_hostdev_page(self): diff -r 89c007e38850 -r 4331403b2e66 src/virtManager/domain.py --- a/src/virtManager/domain.py Mon Mar 09 23:38:03 2009 -0400 +++ b/src/virtManager/domain.py Fri Mar 13 11:21:07 2009 -0400 @@ -806,7 +806,7 @@ def _parse_char_devs(ctx): chars = [] devs = [] - devs = ctx.xpathEval("/domain/devices/console") + devs.extend(ctx.xpathEval("/domain/devices/console")) devs.extend(ctx.xpathEval("/domain/devices/parallel")) devs.extend(ctx.xpathEval("/domain/devices/serial")) @@ -822,7 +822,7 @@ target_port = None source_path = None - for child in node.children: + for child in node.children or []: if child.name == "target": target_port = child.prop("port") if child.name == "source": # HG changeset patch # User Cole Robinson # Date 1236969355 14400 # Node ID 403916479f503f79f23bb682698b38f595eb0626 # Parent 81c591e8c64053840c12dac67ee06b5b97d419e7 Handle old style 'console' tag in 'Connect to serial' list. diff -r 81c591e8c640 -r 403916479f50 src/virtManager/domain.py --- a/src/virtManager/domain.py Fri Mar 13 14:35:28 2009 -0400 +++ b/src/virtManager/domain.py Fri Mar 13 14:35:55 2009 -0400 @@ -606,8 +606,9 @@ def _parse_serial_consoles(ctx): # [ Name, device type, source path serial_list = [] - devs = ctx.xpathEval("/domain/devices/serial") - for node in devs: + sdevs = ctx.xpathEval("/domain/devices/serial") + cdevs = ctx.xpathEval("/domain/devices/console") + for node in sdevs: name = "Serial " dev_type = node.prop("type") source_path = None @@ -622,6 +623,26 @@ serial_list.append([name, dev_type, source_path]) + for node in cdevs: + name = "Serial Console" + dev_type = "pty" + source_path = None + inuse = False + + for child in node.children: + if child.name == "source": + source_path = child.prop("path") + break + + if source_path: + for dev in serial_list: + if source_path == dev[2]: + inuse = True + break + + if not inuse: + serial_list.append([name, dev_type, source_path]) + return serial_list return self._parse_device_xml(_parse_serial_consoles) Index: virt-manager.spec =================================================================== RCS file: /cvs/pkgs/rpms/virt-manager/F-10/virt-manager.spec,v retrieving revision 1.40 retrieving revision 1.41 diff -u -p -r1.40 -r1.41 --- virt-manager.spec 4 Mar 2009 18:28:24 -0000 1.40 +++ virt-manager.spec 14 Sep 2009 01:01:38 -0000 1.41 @@ -8,7 +8,7 @@ Name: virt-manager Version: 0.6.1 -Release: 1%{_extra_release} +Release: 2%{_extra_release} Summary: Virtual Machine Manager Group: Applications/Emulators @@ -18,6 +18,11 @@ Source0: http://virt-manager.org/downloa Patch1: %{name}-%{version}-update-polish.patch Patch2: %{name}-%{version}-fix-cadl.patch Patch3: %{name}-%{version}-fix-stats-prefs.patch +# Fix migration for qemu/kvm guests (bz 517548) +Patch4: %{name}-%{version}-migrate-fixes.patch +# Back compat fixes for connecting to older xen installations (bz 489885) +Patch5: %{name}-%{version}-rhel-fixes.patch + BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) # These two are just the oldest version tested @@ -92,6 +97,8 @@ management API. %patch1 -p1 %patch2 -p1 %patch3 -p1 +%patch4 -p1 +%patch5 -p1 %build %configure @@ -169,6 +176,10 @@ fi %{_datadir}/dbus-1/services/%{name}.service %changelog +* Sun Sep 13 2009 Cole Robinson - 0.6.1-2.fc10 +- Fix migration for qemu/kvm guests (bz 517548) +- Back compat fixes for connecting to older xen installations (bz 489885) + * Wed Mar 4 2009 Cole Robinson - 0.6.1-1.fc10 - Update to 0.6.1 release - Disk and Network VM stats reporting From kraxel at fedoraproject.org Mon Sep 14 06:54:49 2009 From: kraxel at fedoraproject.org (Gerd Hoffmann) Date: Mon, 14 Sep 2009 06:54:49 +0000 (UTC) Subject: [fedora-virt-maint] rpms/xen/devel xen.spec,1.247,1.248 Message-ID: <20090914065450.19D9111C00EC@cvs1.fedora.phx.redhat.com> Author: kraxel Update of /cvs/pkgs/rpms/xen/devel In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv22816 Modified Files: xen.spec Log Message: add e2fsprogs-devel to build dependencies Index: xen.spec =================================================================== RCS file: /cvs/pkgs/rpms/xen/devel/xen.spec,v retrieving revision 1.247 retrieving revision 1.248 diff -u -p -r1.247 -r1.248 --- xen.spec 2 Sep 2009 11:36:00 -0000 1.247 +++ xen.spec 14 Sep 2009 06:54:47 -0000 1.248 @@ -6,7 +6,7 @@ Summary: Xen is a virtual machine monitor Name: xen Version: 3.4.1 -Release: 3%{?dist} +Release: 4%{?dist} Group: Development/Libraries License: GPLv2+ and LGPLv2+ and BSD URL: http://xen.org/ @@ -66,6 +66,8 @@ BuildRequires: openssl-devel BuildRequires: pciutils-devel # modern compressed kernels BuildRequires: bzip2-devel xz-devel +# libfsimage +BuildRequires: e2fsprogs-devel Requires: bridge-utils Requires: udev >= 059 Requires: xen-runtime = %{version}-%{release} @@ -462,6 +464,9 @@ rm -rf %{buildroot} %{_libdir}/*.a %changelog +* Mon Sep 14 2009 Gerd Hoffmann - 3.4.1-4 +- add e2fsprogs-devel to build dependencies. + * Tue Sep 2 2009 Gerd Hoffmann - 3.4.1-3 - swap bzip2+xz linux kernel compression support patches. - backport one more bugfix (videoram option). From crobinso at fedoraproject.org Mon Sep 14 14:58:39 2009 From: crobinso at fedoraproject.org (Cole Robinson) Date: Mon, 14 Sep 2009 14:58:39 +0000 (UTC) Subject: [fedora-virt-maint] rpms/virt-manager/F-10 virt-manager-0.6.1-pylint-script.patch, NONE, 1.1 virt-manager.spec, 1.41, 1.42 Message-ID: <20090914145839.092C611C00EC@cvs1.fedora.phx.redhat.com> Author: crobinso Update of /cvs/pkgs/rpms/virt-manager/F-10 In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv12576 Modified Files: virt-manager.spec Added Files: virt-manager-0.6.1-pylint-script.patch Log Message: Add pylint script for sanity testing. virt-manager-0.6.1-pylint-script.patch: Makefile.am | 2 tests/Makefile.am | 4 + tests/pylint-virt-manager.sh | 115 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 120 insertions(+), 1 deletion(-) --- NEW FILE virt-manager-0.6.1-pylint-script.patch --- diff -rupN virt-manager-0.6.1/tests/Makefile.am new/tests/Makefile.am --- virt-manager-0.6.1/tests/Makefile.am 1969-12-31 19:00:00.000000000 -0500 +++ new/tests/Makefile.am 2009-03-18 13:05:51.516847000 -0400 @@ -0,0 +1,4 @@ +testsdir = $(pkgdatadir)/tests +tests_DATA = $(wildcard $(srcdir)/*.sh) + +EXTRA_DIST = $(tests_DATA) diff -rupN virt-manager-0.6.1/tests/pylint-virt-manager.sh new/tests/pylint-virt-manager.sh --- virt-manager-0.6.1/tests/pylint-virt-manager.sh 1969-12-31 19:00:00.000000000 -0500 +++ new/tests/pylint-virt-manager.sh 2009-03-18 13:05:51.513848000 -0400 @@ -0,0 +1,115 @@ +#!/bin/sh + +# pylint doesn't work well with a file named xxx.py.xxx +cp src/virt-manager.py.in src/_virt-manager + +cd src || exit 1 + +IGNOREFILES="IPy.py" +FILES="virtManager/ _virt-manager" + +# Deliberately ignored warnings: +# Don't print pylint config warning +NO_PYL_CONFIG=".*No config file found.*" + +# The gettext function is installed in the builtin namespace +GETTEXT_VAR="Undefined variable '_'" + +# These all work fine and are legit, just false positives +GOBJECT_VAR="has no '__gobject_init__' member" +EMIT_VAR="has no 'emit' member" +ERROR_VBOX="vmmErrorDialog.__init__.*Class 'vbox' has no 'pack_start' member" +EXCEPTHOOK="no '__excepthook__' member" +CONNECT_VAR="no 'connect' member" +DISCONNECT_VAR="no 'disconnect' member" + +# os._exit is needed for forked processes. +OS_EXIT="protected member _exit of a client class" + +# Avahi API may have requirements on callback argument names, so ignore these +# warnings +BTYPE_LIST="(vmmConnect.add_service|vmmConnect.remove_service|vmmConnect.add_conn_to_list)" +BUILTIN_TYPE="${BTYPE_LIST}.*Redefining built-in 'type'" + + +DMSG="" +addmsg() { + DMSG="${DMSG},$1" +} + +addchecker() { + DCHECKERS="${DCHECKERS},$1" +} + +# Disabled unwanted messages +addmsg "C0103" # C0103: Name doesn't match some style regex +addmsg "C0111" # C0111: No docstring +addmsg "C0301" # C0301: Line too long +addmsg "C0302" # C0302: Too many lines in module +addmsg "C0324" # C0324: *Comma not followed by a space* +addmsg "R0201" # R0201: Method could be a function +addmsg "W0105" # W0105: String statement has no effect +addmsg "W0141" # W0141: Complaining about 'map' and 'filter' +addmsg "W0142" # W0142: *Used * or ** magic* +addmsg "W0403" # W0403: Relative imports +addmsg "W0603" # W0603: Using the global statement +addmsg "W0702" # W0703: No exception type specified +addmsg "W0703" # W0703: Catch 'Exception' +addmsg "W0704" # W0704: Exception doesn't do anything + +# Potentially useful messages, disabled for now +addmsg "C0322" # C0322: *Operator not preceded by a space* +addmsg "C0323" # C0323: *Operator not followed by a space* +addmsg "W0201" # W0201: Defined outside __init__ +addmsg "W0511" # W0511: FIXME and XXX: messages +addmsg "W0613" # W0613: Unused arguments + +# Disabled Checkers: +addchecker "Design" # Things like "Too many func arguments", + # "Too man public methods" +addchecker "Similarities" # Finds duplicate code (enable this later?) + +# May want to enable this in the future +SHOW_REPORT="n" + +AWK=awk +[ `uname -s` = 'SunOS' ] && AWK=nawk + +pylint --ignore=IPy.py $FILES \ + --reports=$SHOW_REPORT \ + --output-format=colorized \ + --dummy-variables-rgx="dummy|ignore*" \ + --disable-msg=${DMSG}\ + --disable-checker=${DCHECKERS} 2>&1 | \ + egrep -ve "$NO_PYL_CONFIG" \ + -ve "$GOBJECT_VAR" \ + -ve "$EMIT_VAR" \ + -ve "$CONNECT_VAR" \ + -ve "$DISCONNECT_VAR" \ + -ve "$GETTEXT_VAR" \ + -ve "$OS_EXIT" \ + -ve "$BUILTIN_TYPE" \ + -ve "$ERROR_VBOX" \ + -ve "$EXCEPTHOOK" | \ +$AWK '\ +# Strip out any "*** Module name" lines if we dont list any errors for them +BEGIN { found=0; cur_line="" } +{ + if (found == 1) { + if ( /\*\*\*/ ) { + prev_line = $0 + } else { + print prev_line + print $0 + found = 0 + } + } else if ( /\*\*\*/ ) { + found = 1 + prev_line = $0 + } else { + print $0 + } +}' + +cd - > /dev/null +rm src/_virt-manager diff -rup virt-manager-0.6.1/Makefile.am new/Makefile.am --- virt-manager-0.6.1/Makefile.am 2009-01-26 14:33:33.000000000 -0500 +++ new/Makefile.am 2009-03-18 13:25:07.912999000 -0400 @@ -11,4 +11,4 @@ rpm: clean $(MAKE) dist && rpmbuild -ta $(distdir).tar.gz check-pylint: - tests/pylint-virt-manager.sh + sh tests/pylint-virt-manager.sh Index: virt-manager.spec =================================================================== RCS file: /cvs/pkgs/rpms/virt-manager/F-10/virt-manager.spec,v retrieving revision 1.41 retrieving revision 1.42 diff -u -p -r1.41 -r1.42 --- virt-manager.spec 14 Sep 2009 01:01:38 -0000 1.41 +++ virt-manager.spec 14 Sep 2009 14:58:38 -0000 1.42 @@ -22,6 +22,8 @@ Patch3: %{name}-%{version}-fix-stats-pre Patch4: %{name}-%{version}-migrate-fixes.patch # Back compat fixes for connecting to older xen installations (bz 489885) Patch5: %{name}-%{version}-rhel-fixes.patch +# Add pylint script for sanity testing the build +Patch6: %{name}-%{version}-pylint-script.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -99,6 +101,7 @@ management API. %patch3 -p1 %patch4 -p1 %patch5 -p1 +%patch6 -p1 %build %configure From crobinso at fedoraproject.org Mon Sep 14 15:05:51 2009 From: crobinso at fedoraproject.org (Cole Robinson) Date: Mon, 14 Sep 2009 15:05:51 +0000 (UTC) Subject: [fedora-virt-maint] rpms/virt-manager/devel virt-manager-0.8.0-addhw-errmsg-typo.patch, NONE, 1.1 virt-manager-0.8.0-cdrom-eject-driver.patch, NONE, 1.1 virt-manager-0.8.0-newvm-storage-cb.patch, NONE, 1.1 virt-manager-0.8.0-no-delete-active.patch, NONE, 1.1 virt-manager-0.8.0-pylint-tweak.patch, NONE, 1.1 virt-manager.spec, 1.56, 1.57 Message-ID: <20090914150551.B0F2411C00EC@cvs1.fedora.phx.redhat.com> Author: crobinso Update of /cvs/pkgs/rpms/virt-manager/devel In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv15203 Modified Files: virt-manager.spec Added Files: virt-manager-0.8.0-addhw-errmsg-typo.patch virt-manager-0.8.0-cdrom-eject-driver.patch virt-manager-0.8.0-newvm-storage-cb.patch virt-manager-0.8.0-no-delete-active.patch virt-manager-0.8.0-pylint-tweak.patch Log Message: Fix disk XML mangling via connect/eject cdrom (bz 516116) Fix delete button sensitivity (bz 518536) Fix populating text box from storage browser in 'New VM' (bz 517263) Fix a traceback in an 'Add Hardware' error path (bz 517286) virt-manager-0.8.0-addhw-errmsg-typo.patch: AUTHORS | 1 + src/virtManager/addhardware.py | 4 ++-- src/vmm-manager.glade | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) --- NEW FILE virt-manager-0.8.0-addhw-errmsg-typo.patch --- # HG changeset patch # User Paul W. Frields # Date 1251729959 14400 # Node ID d34def55dbd78e2ad5f099d6a38c1f358c798555 # Parent b70858b9f8c6f9fea21f6e66a10e7b9498f11e5e addhardware: Fix error message syntax typo diff -r b70858b9f8c6 -r d34def55dbd7 AUTHORS --- a/AUTHORS Mon Aug 31 10:19:49 2009 -0400 +++ b/AUTHORS Mon Aug 31 10:45:59 2009 -0400 @@ -59,6 +59,7 @@ Emmanuel Lacour Laurent L?onard Michal Novotny + Paul W. Frields <...send a patch & get your name here...> diff -r b70858b9f8c6 -r d34def55dbd7 src/virtManager/addhardware.py --- a/src/virtManager/addhardware.py Mon Aug 31 10:19:49 2009 -0400 +++ b/src/virtManager/addhardware.py Mon Aug 31 10:45:59 2009 -0400 @@ -1186,8 +1186,8 @@ conn = self.vm.get_connection().vmm, name = nodedev_name) except Exception, e: - return self.err.val_err(_("Host device parameter error", - str(e))) + return self.err.val_err(_("Host device parameter error"), + str(e)) elif page_num == PAGE_CHAR: chartype = self.get_char_type() diff -r b70858b9f8c6 -r d34def55dbd7 src/vmm-manager.glade --- a/src/vmm-manager.glade Mon Aug 31 10:19:49 2009 -0400 +++ b/src/vmm-manager.glade Mon Aug 31 10:45:59 2009 -0400 @@ -118,7 +118,7 @@ True - Delete Virtual Machine + Delete True virt-manager-0.8.0-cdrom-eject-driver.patch: domain.py | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) --- NEW FILE virt-manager-0.8.0-cdrom-eject-driver.patch --- # HG changeset patch # User Cole Robinson # Date 1251727555 14400 # Node ID c0de24094ca26b8da900d29746adba056f4114f7 # Parent 37a986ce54ceac389573d763c78f633a10ec1ab7 Don't mangle QEMU driver name on cdrom connect (bz 516116) diff -r 37a986ce54ce -r c0de24094ca2 src/virtManager/domain.py --- a/src/virtManager/domain.py Thu Aug 27 11:07:35 2009 -0400 +++ b/src/virtManager/domain.py Mon Aug 31 10:05:55 2009 -0400 @@ -1291,19 +1291,28 @@ xml = self.get_device_xml("disk", dev_id_info) def cdrom_xml_connect(doc, ctx): - disk_fragment = ctx.xpathEval("/disk") + disk_fragment = ctx.xpathEval("/disk")[0] driver_fragment = ctx.xpathEval("/disk/driver") - disk_fragment[0].setProp("type", _type) - elem = disk_fragment[0].newChild(None, "source", None) + disk_fragment.setProp("type", _type) + elem = disk_fragment.newChild(None, "source", None) + if _type == "file": elem.setProp("file", source) - if driver_fragment: - driver_fragment[0].setProp("name", _type) + driver_name = _type else: elem.setProp("dev", source) - if driver_fragment: - driver_fragment[0].setProp("name", "phy") - return disk_fragment[0].serialize() + driver_name = "phy" + + if driver_fragment: + driver_fragment = driver_fragment[0] + orig_name = driver_fragment.prop("name") + + # For Xen, the driver name is dependent on the storage type + # (file or phys). + if orig_name and orig_name in [ "file", "phy" ]: + driver_fragment.setProp("name", driver_name) + + return disk_fragment.serialize() result = util.xml_parse_wrapper(xml, cdrom_xml_connect) logging.debug("connect_cdrom produced: %s" % result) @@ -1313,17 +1322,19 @@ xml = self.get_device_xml("disk", dev_id_info) def cdrom_xml_disconnect(doc, ctx): - disk_fragment = ctx.xpathEval("/disk") + disk_fragment = ctx.xpathEval("/disk")[0] sourcenode = None - for child in disk_fragment[0].children: + + for child in disk_fragment.children: if child.name == "source": sourcenode = child break else: continue + sourcenode.unlinkNode() sourcenode.freeNode() - return disk_fragment[0].serialize() + return disk_fragment.serialize() result = util.xml_parse_wrapper(xml, cdrom_xml_disconnect) logging.debug("eject_cdrom produced: %s" % result) virt-manager-0.8.0-newvm-storage-cb.patch: addhardware.py | 5 +---- create.py | 5 +++-- storagebrowse.py | 6 ++++++ 3 files changed, 10 insertions(+), 6 deletions(-) --- NEW FILE virt-manager-0.8.0-newvm-storage-cb.patch --- # HG changeset patch # User Cole Robinson # Date 1252939197 14400 # Node ID 486cd6791c3926420786d30401a690884acdf653 # Parent 043ca66e19aabcdb89b8bbe76ef5ded8b0c0fc54 Fix populating text box with storage browser selection in 'New VM' (bz 517263) We were only properly setting the 'finish' callback for the first time the storage browser was launched. All subsequent runs would not enter anything in the associated text box. diff -r 043ca66e19aa -r 486cd6791c39 src/virtManager/addhardware.py --- a/src/virtManager/addhardware.py Mon Sep 14 10:14:41 2009 -0400 +++ b/src/virtManager/addhardware.py Mon Sep 14 10:39:57 2009 -0400 @@ -80,7 +80,6 @@ _("An unexpected error occurred")) self.storage_browser = None - self._browse_cb_id = None self._dev = None @@ -911,10 +910,8 @@ conn = self.vm.get_connection() if self.storage_browser == None: self.storage_browser = vmmStorageBrowser(self.config, conn, False) - if self._browse_cb_id: - self.storage_browser.disconnect(self._browse_cb_id) - self._browse_cb_id = self.storage_browser.connect("storage-browse-finish", set_storage_cb) + self.storage_browser.set_finish_cb(set_storage_cb) self.storage_browser.local_args = { "dialog_name": dialog_name, "confirm_func": confirm_func, "browse_reason": diff -r 043ca66e19aa -r 486cd6791c39 src/virtManager/create.py --- a/src/virtManager/create.py Mon Sep 14 10:14:41 2009 -0400 +++ b/src/virtManager/create.py Mon Sep 14 10:39:57 2009 -0400 @@ -1644,8 +1644,9 @@ if self.storage_browser == None: self.storage_browser = vmmStorageBrowser(self.config, self.conn, is_media) - self.storage_browser.connect("storage-browse-finish", - callback) + + self.storage_browser.set_finish_cb(callback) + if is_media: reason = self.config.CONFIG_DIR_MEDIA else: diff -r 043ca66e19aa -r 486cd6791c39 src/virtManager/storagebrowse.py --- a/src/virtManager/storagebrowse.py Mon Sep 14 10:14:41 2009 -0400 +++ b/src/virtManager/storagebrowse.py Mon Sep 14 10:39:57 2009 -0400 @@ -47,6 +47,7 @@ self.config = config self.conn = conn self.conn_signal_ids = [] + self.finish_cb_id = None self.topwin = self.window.get_widget("vmm-storage-browse") self.err = vmmErrorDialog(self.topwin, @@ -89,6 +90,11 @@ self.addvol.close() return 1 + def set_finish_cb(self, callback): + if self.finish_cb_id: + self.disconnect(self.finish_cb_id) + self.finish_cb_id = self.connect("storage-browse-finish", callback) + def set_initial_state(self): pool_list = self.window.get_widget("pool-list") virtManager.host.init_pool_list(pool_list, self.pool_selected) virt-manager-0.8.0-no-delete-active.patch: manager.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) --- NEW FILE virt-manager-0.8.0-no-delete-active.patch --- # HG changeset patch # User Cole Robinson # Date 1251728389 14400 # Node ID b70858b9f8c6f9fea21f6e66a10e7b9498f11e5e # Parent 0bdea2b6c30e3b9ac7ca7b35f957598e66fd8c36 Don't allow deleting an active VM (bz 518536) diff -r 0bdea2b6c30e -r b70858b9f8c6 src/virtManager/manager.py --- a/src/virtManager/manager.py Mon Aug 31 10:07:06 2009 -0400 +++ b/src/virtManager/manager.py Mon Aug 31 10:19:49 2009 -0400 @@ -684,7 +684,8 @@ show_open = bool(vm) show_details = bool(vm) host_details = bool(vm or conn) - delete = bool((vm and vm.is_runable()) or conn) + delete = bool((vm and vm.is_runable()) or + (not vm and conn)) show_run = bool(vm and vm.is_runable()) is_paused = bool(vm and vm.is_paused()) if is_paused: virt-manager-0.8.0-pylint-tweak.patch: pylint-virt-manager.sh | 1 + 1 file changed, 1 insertion(+) --- NEW FILE virt-manager-0.8.0-pylint-tweak.patch --- # HG changeset patch # User Cole Robinson # Date 1252937681 14400 # Node ID 043ca66e19aabcdb89b8bbe76ef5ded8b0c0fc54 # Parent d34def55dbd78e2ad5f099d6a38c1f358c798555 Try to avoid 'maximum recursion depth' errors from pylint script. diff -r d34def55dbd7 -r 043ca66e19aa tests/pylint-virt-manager.sh --- a/tests/pylint-virt-manager.sh Mon Aug 31 10:45:59 2009 -0400 +++ b/tests/pylint-virt-manager.sh Mon Sep 14 10:14:41 2009 -0400 @@ -95,6 +95,7 @@ -ve "$BUILTIN_TYPE" \ -ve "$ERROR_VBOX" \ -ve "$UNABLE_IMPORT" \ + -ve "$MAX_RECURSION" \ -ve "$EXCEPTHOOK" | \ $AWK '\ # Strip out any "*** Module name" lines if we dont list any errors for them Index: virt-manager.spec =================================================================== RCS file: /cvs/pkgs/rpms/virt-manager/devel/virt-manager.spec,v retrieving revision 1.56 retrieving revision 1.57 diff -u -p -r1.56 -r1.57 --- virt-manager.spec 13 Aug 2009 15:51:03 -0000 1.56 +++ virt-manager.spec 14 Sep 2009 15:05:51 -0000 1.57 @@ -8,7 +8,7 @@ Name: virt-manager Version: 0.8.0 -Release: 2%{_extra_release} +Release: 3%{_extra_release} Summary: Virtual Machine Manager Group: Applications/Emulators @@ -17,6 +17,16 @@ URL: http://virt-manager.org/ Source0: http://virt-manager.org/download/sources/%{name}/%{name}-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildArch: noarch +# Fix disk XML mangling via connect/eject cdrom (bz 516116) +Patch1: %{name}-%{version}-cdrom-eject-driver.patch +# Fix delete button sensitivity (bz 518536) +Patch2: %{name}-%{version}-no-delete-active.patch +# Fix populating text box from storage browser in 'New VM' (bz 517263) +Patch3: %{name}-%{version}-newvm-storage-cb.patch +# Fix a traceback in an 'Add Hardware' error path (bz 517286) +Patch4: %{name}-%{version}-addhw-errmsg-typo.patch +# Fixes for pylint script to return nicer results on F11/F12 +Patch5: %{name}-%{version}-pylint-tweak.patch # These two are just the oldest version tested Requires: pygtk2 >= 1.99.12-6 @@ -81,6 +91,11 @@ management API. %prep %setup -q +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 +%patch5 -p1 %build %configure @@ -154,6 +169,12 @@ fi %{_datadir}/dbus-1/services/%{name}.service %changelog +* Mon Sep 14 2009 Cole Robinson - 0.8.0-3.fc12 +- Fix disk XML mangling via connect/eject cdrom (bz 516116) +- Fix delete button sensitivity (bz 518536) +- Fix populating text box from storage browser in 'New VM' (bz 517263) +- Fix a traceback in an 'Add Hardware' error path (bz 517286) + * Thu Aug 13 2009 Daniel P. Berrange - 0.8.0-2.fc12 - Remove obsolete dep on policykit agent From crobinso at fedoraproject.org Mon Sep 14 15:52:03 2009 From: crobinso at fedoraproject.org (Cole Robinson) Date: Mon, 14 Sep 2009 15:52:03 +0000 (UTC) Subject: [fedora-virt-maint] rpms/virt-manager/F-10 virt-manager.spec, 1.42, 1.43 Message-ID: <20090914155203.140C711C00EC@cvs1.fedora.phx.redhat.com> Author: crobinso Update of /cvs/pkgs/rpms/virt-manager/F-10 In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv1429 Modified Files: virt-manager.spec Log Message: Depend on virtinst 0.400.3 (bz 493256) Index: virt-manager.spec =================================================================== RCS file: /cvs/pkgs/rpms/virt-manager/F-10/virt-manager.spec,v retrieving revision 1.42 retrieving revision 1.43 diff -u -p -r1.42 -r1.43 --- virt-manager.spec 14 Sep 2009 14:58:38 -0000 1.42 +++ virt-manager.spec 14 Sep 2009 15:52:02 -0000 1.43 @@ -8,7 +8,7 @@ Name: virt-manager Version: 0.6.1 -Release: 2%{_extra_release} +Release: 3%{_extra_release} Summary: Virtual Machine Manager Group: Applications/Emulators @@ -51,7 +51,7 @@ Requires: gnome-python2-gnome # Minimum we've tested with Requires: libxml2-python >= 2.6.23 # Required to install Xen & QEMU guests -Requires: python-virtinst >= 0.400.0 +Requires: python-virtinst >= 0.400.3 # Required for loading the glade UI Requires: pygtk2-libglade # Required for our graphics which are currently SVG format @@ -179,6 +179,9 @@ fi %{_datadir}/dbus-1/services/%{name}.service %changelog +* Mon Sep 14 2009 Cole Robinson - 0.6.1-3.fc10 +- Depend on virtinst 0.400.3 (bz 493256) + * Sun Sep 13 2009 Cole Robinson - 0.6.1-2.fc10 - Fix migration for qemu/kvm guests (bz 517548) - Back compat fixes for connecting to older xen installations (bz 489885) From markmc at fedoraproject.org Mon Sep 14 18:30:46 2009 From: markmc at fedoraproject.org (Mark McLoughlin) Date: Mon, 14 Sep 2009 18:30:46 +0000 (UTC) Subject: [fedora-virt-maint] rpms/libvirt/devel libvirt-0.6.4-svirt-sound.patch, 1.4, 1.5 libvirt.spec, 1.174, 1.175 sources, 1.47, 1.48 Message-ID: <20090914183046.2243011C00EC@cvs1.fedora.phx.redhat.com> Author: markmc Update of /cvs/pkgs/rpms/libvirt/devel In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv16180 Modified Files: libvirt-0.6.4-svirt-sound.patch libvirt.spec sources Log Message: * Mon Sep 14 2009 Mark McLoughlin - 0.7.1-0.2.gitfac3f4c - Update to newer snapshot of 0.7.1 - Stop libvirt using untrusted 'info vcpus' PID data (#520864) - Support relabelling of USB and PCI devices - Enable multipath storage support - Restart libvirtd upon RPM upgrade libvirt-0.6.4-svirt-sound.patch: qemu_conf.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) Index: libvirt-0.6.4-svirt-sound.patch =================================================================== RCS file: /cvs/pkgs/rpms/libvirt/devel/libvirt-0.6.4-svirt-sound.patch,v retrieving revision 1.4 retrieving revision 1.5 diff -u -p -r1.4 -r1.5 --- libvirt-0.6.4-svirt-sound.patch 19 Aug 2009 17:13:01 -0000 1.4 +++ libvirt-0.6.4-svirt-sound.patch 14 Sep 2009 18:30:45 -0000 1.5 @@ -1,4 +1,4 @@ -From 5f8d720b5f1393ee333a5fa8375ffe9ac954d48b Mon Sep 17 00:00:00 2001 +From e2106f6db9beb9f48e9f87f8a1eaba821d1a2296 Mon Sep 17 00:00:00 2001 From: Daniel P. Berrange Date: Mon, 17 Aug 2009 08:32:08 +0100 Subject: [PATCH] Disable sound cards when running sVirt @@ -12,10 +12,10 @@ Fedora-patch: libvirt-0.6.4-svirt-sound. 1 files changed, 16 insertions(+), 1 deletions(-) diff --git a/src/qemu_conf.c b/src/qemu_conf.c -index 6b0b404..53186e0 100644 +index f92bcef..f3b4ef0 100644 --- a/src/qemu_conf.c +++ b/src/qemu_conf.c -@@ -1384,6 +1384,20 @@ int qemudBuildCommandLine(virConnectPtr conn, +@@ -1510,6 +1510,20 @@ int qemudBuildCommandLine(virConnectPtr conn, char uuid[VIR_UUID_STRING_BUFLEN]; char domid[50]; const char *cpu = NULL; @@ -36,7 +36,7 @@ index 6b0b404..53186e0 100644 uname_normalize(&ut); -@@ -2015,7 +2029,8 @@ int qemudBuildCommandLine(virConnectPtr conn, +@@ -2181,7 +2195,8 @@ int qemudBuildCommandLine(virConnectPtr conn, } /* Add sound hardware */ Index: libvirt.spec =================================================================== RCS file: /cvs/pkgs/rpms/libvirt/devel/libvirt.spec,v retrieving revision 1.174 retrieving revision 1.175 diff -u -p -r1.174 -r1.175 --- libvirt.spec 6 Sep 2009 13:46:19 -0000 1.174 +++ libvirt.spec 14 Sep 2009 18:30:45 -0000 1.175 @@ -18,6 +18,7 @@ %define with_storage_lvm 0%{!?_without_storage_lvm:1} %define with_storage_iscsi 0%{!?_without_storage_iscsi:1} %define with_storage_disk 0%{!?_without_storage_disk:1} +%define with_storage_mpath 0%{!?_without_storage_mpath:1} %define with_numactl 0%{!?_without_numactl:1} # default to off - selectively enabled below @@ -72,12 +73,12 @@ %define with_one 0 %endif -%define git_snapshot git3ef2e05 +%define git_snapshot gitfac3f4c Summary: Library providing a simple API virtualization Name: libvirt Version: 0.7.1 -Release: 0.1.%{git_snapshot}%{?dist}%{?extra_release} +Release: 0.2.%{git_snapshot}%{?dist}%{?extra_release} License: LGPLv2+ Group: Development/Libraries Source: http://libvirt.org/sources/libvirt-%{version}-%{git_snapshot}.tar.gz @@ -119,6 +120,11 @@ Requires: glusterfs-client >= 2.0.1 %if %{with_qemu} # From QEMU RPMs Requires: /usr/bin/qemu-img +# For image compression +Requires: gzip +Requires: bzip2 +Requires: lzop +Requires: xz %else %if %{with_xen} # From Xen RPMs @@ -137,6 +143,10 @@ Requires: iscsi-initiator-utils # For disk driver Requires: parted %endif +%if %{with_storage_mpath} +# For multipath support +Requires: device-mapper +%endif %if %{with_xen} BuildRequires: xen-devel %endif @@ -192,6 +202,10 @@ BuildRequires: iscsi-initiator-utils # For disk driver BuildRequires: parted-devel %endif +%if %{with_storage_mpath} +# For Multipath support +BuildRequires: device-mapper-devel +%endif %if %{with_numactl} # For QEMU/LXC numa info BuildRequires: numactl-devel @@ -341,6 +355,10 @@ of recent versions of Linux (and other O %define _without_storage_disk --without-storage-disk %endif +%if ! %{with_storage_mpath} +%define _without_storage_mpath --without-storage-mpath +%endif + %if ! %{with_numactl} %define _without_numactl --without-numactl %endif @@ -372,6 +390,7 @@ of recent versions of Linux (and other O %{?_without_storage_lvm} \ %{?_without_storage_iscsi} \ %{?_without_storage_disk} \ + %{?_without_storage_mpath} \ %{?_without_numactl} \ %{?_without_capng} \ %{?_without_netcf} \ @@ -460,6 +479,9 @@ fi %endif /sbin/chkconfig --add libvirtd +if [ "$1" -ge "1" ]; then + /sbin/service libvirtd condrestart > /dev/null 2>&1 +fi %endif %preun @@ -628,6 +650,13 @@ fi %endif %changelog +* Mon Sep 14 2009 Mark McLoughlin - 0.7.1-0.2.gitfac3f4c +- Update to newer snapshot of 0.7.1 +- Stop libvirt using untrusted 'info vcpus' PID data (#520864) +- Support relabelling of USB and PCI devices +- Enable multipath storage support +- Restart libvirtd upon RPM upgrade + * Sun Sep 6 2009 Mark McLoughlin - 0.7.1-0.1.gitg3ef2e05 - Update to pre-release git snapshot of 0.7.1 - Drop upstreamed patches Index: sources =================================================================== RCS file: /cvs/pkgs/rpms/libvirt/devel/sources,v retrieving revision 1.47 retrieving revision 1.48 diff -u -p -r1.47 -r1.48 --- sources 6 Sep 2009 13:46:19 -0000 1.47 +++ sources 14 Sep 2009 18:30:45 -0000 1.48 @@ -1 +1 @@ -d47a8065f71e68d60ff020ba9b370801 libvirt-0.7.1-git3ef2e05.tar.gz +84cb07d98032787f1e2a36776768e297 libvirt-0.7.1-gitfac3f4c.tar.gz From rjones at fedoraproject.org Tue Sep 15 09:05:02 2009 From: rjones at fedoraproject.org (Richard W.M. Jones) Date: Tue, 15 Sep 2009 09:05:02 +0000 (UTC) Subject: [fedora-virt-maint] rpms/libguestfs/devel .cvsignore, 1.47, 1.48 libguestfs.spec, 1.95, 1.96 sources, 1.47, 1.48 Message-ID: <20090915090502.6E05A11C00CE@cvs1.fedora.phx.redhat.com> Author: rjones Update of /cvs/pkgs/rpms/libguestfs/devel In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv28574 Modified Files: .cvsignore libguestfs.spec sources Log Message: New upstream version 1.0.69. Index: .cvsignore =================================================================== RCS file: /cvs/pkgs/rpms/libguestfs/devel/.cvsignore,v retrieving revision 1.47 retrieving revision 1.48 diff -u -p -r1.47 -r1.48 --- .cvsignore 19 Aug 2009 17:35:08 -0000 1.47 +++ .cvsignore 15 Sep 2009 09:05:01 -0000 1.48 @@ -1 +1 @@ -libguestfs-1.0.68.tar.gz +libguestfs-1.0.69.tar.gz Index: libguestfs.spec =================================================================== RCS file: /cvs/pkgs/rpms/libguestfs/devel/libguestfs.spec,v retrieving revision 1.95 retrieving revision 1.96 diff -u -p -r1.95 -r1.96 --- libguestfs.spec 20 Aug 2009 15:41:37 -0000 1.95 +++ libguestfs.spec 15 Sep 2009 09:05:02 -0000 1.96 @@ -4,8 +4,8 @@ Summary: Access and modify virtual machine disk images Name: libguestfs Epoch: 1 -Version: 1.0.68 -Release: 2%{?dist} +Version: 1.0.69 +Release: 1%{?dist} License: LGPLv2+ Group: Development/Libraries URL: http://libguestfs.org/ @@ -343,11 +343,11 @@ export LIBGUESTFS_DEBUG=1 # 516022 all F-12 virtio-net gives "Network is unreachable" errors # (FIXED) # 516096 ? F-11 race condition in swapoff/blockdev --rereadpt -# 516543 ? F-12 qemu-kvm segfaults when run inside a VM +# 516543 ? F-12 qemu-kvm segfaults when run inside a VM (FIXED) -#%ifarch x86_64 -#make check -#%endif +%ifarch x86_64 +make check +%endif %install @@ -537,6 +537,12 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Tue Sep 15 2009 Richard W.M. Jones - 1.0.69-1 +- New upstream release 1.0.69. +- Reenable the tests (because RHBZ#516543 is supposed to be fixed). +- New main loop code should fix RHBZ#501888, RHBZ#504418. +- Add waitpid along guestfs_close path (fixes RHBZ#518747). + * Wed Aug 19 2009 Richard W.M. Jones - 1.0.68-2 - New upstream release 1.0.68. - BR genisoimage. Index: sources =================================================================== RCS file: /cvs/pkgs/rpms/libguestfs/devel/sources,v retrieving revision 1.47 retrieving revision 1.48 diff -u -p -r1.47 -r1.48 --- sources 19 Aug 2009 17:35:08 -0000 1.47 +++ sources 15 Sep 2009 09:05:02 -0000 1.48 @@ -1 +1 @@ -2999a99a99417ad349b4a6d6b4480fe5 libguestfs-1.0.68.tar.gz +e90d40fd9c36231c4ed39c4aa6a77704 libguestfs-1.0.69.tar.gz From rjones at fedoraproject.org Tue Sep 15 09:05:04 2009 From: rjones at fedoraproject.org (Richard W.M. Jones) Date: Tue, 15 Sep 2009 09:05:04 +0000 (UTC) Subject: [fedora-virt-maint] rpms/libguestfs/F-11 .cvsignore, 1.34, 1.35 libguestfs.spec, 1.59, 1.60 sources, 1.34, 1.35 Message-ID: <20090915090504.D8A2B11C00CE@cvs1.fedora.phx.redhat.com> Author: rjones Update of /cvs/pkgs/rpms/libguestfs/F-11 In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv28625 Modified Files: .cvsignore libguestfs.spec sources Log Message: New upstream version 1.0.69. Index: .cvsignore =================================================================== RCS file: /cvs/pkgs/rpms/libguestfs/F-11/.cvsignore,v retrieving revision 1.34 retrieving revision 1.35 diff -u -p -r1.34 -r1.35 --- .cvsignore 19 Aug 2009 17:35:16 -0000 1.34 +++ .cvsignore 15 Sep 2009 09:05:04 -0000 1.35 @@ -1 +1 @@ -libguestfs-1.0.68.tar.gz +libguestfs-1.0.69.tar.gz Index: libguestfs.spec =================================================================== RCS file: /cvs/pkgs/rpms/libguestfs/F-11/libguestfs.spec,v retrieving revision 1.59 retrieving revision 1.60 diff -u -p -r1.59 -r1.60 --- libguestfs.spec 20 Aug 2009 15:41:36 -0000 1.59 +++ libguestfs.spec 15 Sep 2009 09:05:04 -0000 1.60 @@ -4,8 +4,8 @@ Summary: Access and modify virtual machine disk images Name: libguestfs Epoch: 1 -Version: 1.0.68 -Release: 2%{?dist} +Version: 1.0.69 +Release: 1%{?dist} License: LGPLv2+ Group: Development/Libraries URL: http://libguestfs.org/ @@ -339,7 +339,7 @@ export LIBGUESTFS_DEBUG=1 # 516022 all F-12 virtio-net gives "Network is unreachable" errors # (FIXED) # 516096 ? F-11 race condition in swapoff/blockdev --rereadpt -# 516543 ? F-12 qemu-kvm segfaults when run inside a VM +# 516543 ? F-12 qemu-kvm segfaults when run inside a VM (FIXED) #%ifarch x86_64 #make check @@ -533,6 +533,11 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Tue Sep 15 2009 Richard W.M. Jones - 1.0.69-1 +- New upstream release 1.0.69. +- New main loop code should fix RHBZ#501888, RHBZ#504418. +- Add waitpid along guestfs_close path (fixes RHBZ#518747). + * Wed Aug 19 2009 Richard W.M. Jones - 1.0.68-2 - New upstream release 1.0.68. - BR genisoimage. Index: sources =================================================================== RCS file: /cvs/pkgs/rpms/libguestfs/F-11/sources,v retrieving revision 1.34 retrieving revision 1.35 diff -u -p -r1.34 -r1.35 --- sources 19 Aug 2009 17:35:16 -0000 1.34 +++ sources 15 Sep 2009 09:05:04 -0000 1.35 @@ -1 +1 @@ -2999a99a99417ad349b4a6d6b4480fe5 libguestfs-1.0.68.tar.gz +e90d40fd9c36231c4ed39c4aa6a77704 libguestfs-1.0.69.tar.gz From rjones at fedoraproject.org Tue Sep 15 09:05:04 2009 From: rjones at fedoraproject.org (Richard W.M. Jones) Date: Tue, 15 Sep 2009 09:05:04 +0000 (UTC) Subject: [fedora-virt-maint] rpms/libguestfs/EL-5 .cvsignore, 1.28, 1.29 libguestfs.spec, 1.64, 1.65 sources, 1.28, 1.29 0001-tests-Found-three-more-references-to-the-squashfs.patch, 1.1, NONE Message-ID: <20090915090504.F41C111C00EB@cvs1.fedora.phx.redhat.com> Author: rjones Update of /cvs/pkgs/rpms/libguestfs/EL-5 In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv28613 Modified Files: .cvsignore libguestfs.spec sources Removed Files: 0001-tests-Found-three-more-references-to-the-squashfs.patch Log Message: New upstream version 1.0.69. Index: .cvsignore =================================================================== RCS file: /cvs/pkgs/rpms/libguestfs/EL-5/.cvsignore,v retrieving revision 1.28 retrieving revision 1.29 diff -u -p -r1.28 -r1.29 --- .cvsignore 19 Aug 2009 17:35:14 -0000 1.28 +++ .cvsignore 15 Sep 2009 09:05:04 -0000 1.29 @@ -1 +1 @@ -libguestfs-1.0.68.tar.gz +libguestfs-1.0.69.tar.gz Index: libguestfs.spec =================================================================== RCS file: /cvs/pkgs/rpms/libguestfs/EL-5/libguestfs.spec,v retrieving revision 1.64 retrieving revision 1.65 diff -u -p -r1.64 -r1.65 --- libguestfs.spec 19 Aug 2009 20:41:43 -0000 1.64 +++ libguestfs.spec 15 Sep 2009 09:05:04 -0000 1.65 @@ -4,17 +4,14 @@ Summary: Access and modify virtual machine disk images Name: libguestfs Epoch: 1 -Version: 1.0.68 -Release: 5%{?dist} +Version: 1.0.69 +Release: 1%{?dist} License: LGPLv2+ Group: Development/Libraries URL: http://libguestfs.org/ Source0: http://libguestfs.org/download/%{name}-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root -# This patch upstream in 1.0.69. -Patch0: 0001-tests-Found-three-more-references-to-the-squashfs.patch - # Currently fails on PPC because: # "No Package Found for kernel" ExclusiveArch: %{ix86} x86_64 @@ -310,8 +307,6 @@ Requires: jpackage-utils %prep %setup -q -%patch0 -p1 - mkdir -p daemon/m4 @@ -541,6 +536,12 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Tue Sep 15 2009 Richard W.M. Jones - 1.0.69-1 +- New upstream release 1.0.69. +- New main loop code should fix RHBZ#501888, RHBZ#504418. +- Add waitpid along guestfs_close path (fixes RHBZ#518747). +- Remove fix-tests patch which is now upstream. + * Wed Aug 19 2009 Richard W.M. Jones - 1.0.68-5 - New upstream release 1.0.68. - BR mkisofs. Index: sources =================================================================== RCS file: /cvs/pkgs/rpms/libguestfs/EL-5/sources,v retrieving revision 1.28 retrieving revision 1.29 diff -u -p -r1.28 -r1.29 --- sources 19 Aug 2009 17:35:14 -0000 1.28 +++ sources 15 Sep 2009 09:05:04 -0000 1.29 @@ -1 +1 @@ -2999a99a99417ad349b4a6d6b4480fe5 libguestfs-1.0.68.tar.gz +e90d40fd9c36231c4ed39c4aa6a77704 libguestfs-1.0.69.tar.gz --- 0001-tests-Found-three-more-references-to-the-squashfs.patch DELETED --- From rjones at fedoraproject.org Tue Sep 15 10:35:03 2009 From: rjones at fedoraproject.org (Richard W.M. Jones) Date: Tue, 15 Sep 2009 10:35:03 +0000 (UTC) Subject: [fedora-virt-maint] rpms/libguestfs/EL-5 .cvsignore, 1.29, 1.30 libguestfs.spec, 1.65, 1.66 sources, 1.29, 1.30 Message-ID: <20090915103503.954E711C00CE@cvs1.fedora.phx.redhat.com> Author: rjones Update of /cvs/pkgs/rpms/libguestfs/EL-5 In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv25902 Modified Files: .cvsignore libguestfs.spec sources Log Message: Version 1.0.70. Index: .cvsignore =================================================================== RCS file: /cvs/pkgs/rpms/libguestfs/EL-5/.cvsignore,v retrieving revision 1.29 retrieving revision 1.30 diff -u -p -r1.29 -r1.30 --- .cvsignore 15 Sep 2009 09:05:04 -0000 1.29 +++ .cvsignore 15 Sep 2009 10:35:03 -0000 1.30 @@ -1 +1 @@ -libguestfs-1.0.69.tar.gz +libguestfs-1.0.70.tar.gz Index: libguestfs.spec =================================================================== RCS file: /cvs/pkgs/rpms/libguestfs/EL-5/libguestfs.spec,v retrieving revision 1.65 retrieving revision 1.66 diff -u -p -r1.65 -r1.66 --- libguestfs.spec 15 Sep 2009 09:05:04 -0000 1.65 +++ libguestfs.spec 15 Sep 2009 10:35:03 -0000 1.66 @@ -4,7 +4,7 @@ Summary: Access and modify virtual machine disk images Name: libguestfs Epoch: 1 -Version: 1.0.69 +Version: 1.0.70 Release: 1%{?dist} License: LGPLv2+ Group: Development/Libraries @@ -536,6 +536,10 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Tue Sep 15 2009 Richard W.M. Jones - 1.0.70-1 +- New upstream release 1.0.70. +- Fixes build problem related to old version of GNU gettext. + * Tue Sep 15 2009 Richard W.M. Jones - 1.0.69-1 - New upstream release 1.0.69. - New main loop code should fix RHBZ#501888, RHBZ#504418. Index: sources =================================================================== RCS file: /cvs/pkgs/rpms/libguestfs/EL-5/sources,v retrieving revision 1.29 retrieving revision 1.30 diff -u -p -r1.29 -r1.30 --- sources 15 Sep 2009 09:05:04 -0000 1.29 +++ sources 15 Sep 2009 10:35:03 -0000 1.30 @@ -1 +1 @@ -e90d40fd9c36231c4ed39c4aa6a77704 libguestfs-1.0.69.tar.gz +31de0cb2ac480cbb4a1c7398f2963caf libguestfs-1.0.70.tar.gz From rjones at fedoraproject.org Tue Sep 15 10:35:17 2009 From: rjones at fedoraproject.org (Richard W.M. Jones) Date: Tue, 15 Sep 2009 10:35:17 +0000 (UTC) Subject: [fedora-virt-maint] rpms/libguestfs/F-11 .cvsignore, 1.35, 1.36 libguestfs.spec, 1.60, 1.61 sources, 1.35, 1.36 Message-ID: <20090915103517.1AD2A11C00CE@cvs1.fedora.phx.redhat.com> Author: rjones Update of /cvs/pkgs/rpms/libguestfs/F-11 In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv25449 Modified Files: .cvsignore libguestfs.spec sources Log Message: Version 1.0.70. Index: .cvsignore =================================================================== RCS file: /cvs/pkgs/rpms/libguestfs/F-11/.cvsignore,v retrieving revision 1.35 retrieving revision 1.36 diff -u -p -r1.35 -r1.36 --- .cvsignore 15 Sep 2009 09:05:04 -0000 1.35 +++ .cvsignore 15 Sep 2009 10:35:16 -0000 1.36 @@ -1 +1 @@ -libguestfs-1.0.69.tar.gz +libguestfs-1.0.70.tar.gz Index: libguestfs.spec =================================================================== RCS file: /cvs/pkgs/rpms/libguestfs/F-11/libguestfs.spec,v retrieving revision 1.60 retrieving revision 1.61 diff -u -p -r1.60 -r1.61 --- libguestfs.spec 15 Sep 2009 09:05:04 -0000 1.60 +++ libguestfs.spec 15 Sep 2009 10:35:16 -0000 1.61 @@ -533,6 +533,10 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Tue Sep 15 2009 Richard W.M. Jones - 1.0.70-1 +- New upstream release 1.0.70. +- Fixes build problem related to old version of GNU gettext. + * Tue Sep 15 2009 Richard W.M. Jones - 1.0.69-1 - New upstream release 1.0.69. - New main loop code should fix RHBZ#501888, RHBZ#504418. Index: sources =================================================================== RCS file: /cvs/pkgs/rpms/libguestfs/F-11/sources,v retrieving revision 1.35 retrieving revision 1.36 diff -u -p -r1.35 -r1.36 --- sources 15 Sep 2009 09:05:04 -0000 1.35 +++ sources 15 Sep 2009 10:35:16 -0000 1.36 @@ -1 +1 @@ -e90d40fd9c36231c4ed39c4aa6a77704 libguestfs-1.0.69.tar.gz +31de0cb2ac480cbb4a1c7398f2963caf libguestfs-1.0.70.tar.gz From rjones at fedoraproject.org Tue Sep 15 10:35:22 2009 From: rjones at fedoraproject.org (Richard W.M. Jones) Date: Tue, 15 Sep 2009 10:35:22 +0000 (UTC) Subject: [fedora-virt-maint] rpms/libguestfs/devel .cvsignore, 1.48, 1.49 libguestfs.spec, 1.96, 1.97 sources, 1.48, 1.49 Message-ID: <20090915103522.3285F11C00CE@cvs1.fedora.phx.redhat.com> Author: rjones Update of /cvs/pkgs/rpms/libguestfs/devel In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv25490 Modified Files: .cvsignore libguestfs.spec sources Log Message: Version 1.0.70. Index: .cvsignore =================================================================== RCS file: /cvs/pkgs/rpms/libguestfs/devel/.cvsignore,v retrieving revision 1.48 retrieving revision 1.49 diff -u -p -r1.48 -r1.49 --- .cvsignore 15 Sep 2009 09:05:01 -0000 1.48 +++ .cvsignore 15 Sep 2009 10:35:21 -0000 1.49 @@ -1 +1 @@ -libguestfs-1.0.69.tar.gz +libguestfs-1.0.70.tar.gz Index: libguestfs.spec =================================================================== RCS file: /cvs/pkgs/rpms/libguestfs/devel/libguestfs.spec,v retrieving revision 1.96 retrieving revision 1.97 diff -u -p -r1.96 -r1.97 --- libguestfs.spec 15 Sep 2009 09:05:02 -0000 1.96 +++ libguestfs.spec 15 Sep 2009 10:35:21 -0000 1.97 @@ -4,7 +4,7 @@ Summary: Access and modify virtual machine disk images Name: libguestfs Epoch: 1 -Version: 1.0.69 +Version: 1.0.70 Release: 1%{?dist} License: LGPLv2+ Group: Development/Libraries @@ -537,6 +537,10 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Tue Sep 15 2009 Richard W.M. Jones - 1.0.70-1 +- New upstream release 1.0.70. +- Fixes build problem related to old version of GNU gettext. + * Tue Sep 15 2009 Richard W.M. Jones - 1.0.69-1 - New upstream release 1.0.69. - Reenable the tests (because RHBZ#516543 is supposed to be fixed). Index: sources =================================================================== RCS file: /cvs/pkgs/rpms/libguestfs/devel/sources,v retrieving revision 1.48 retrieving revision 1.49 diff -u -p -r1.48 -r1.49 --- sources 15 Sep 2009 09:05:02 -0000 1.48 +++ sources 15 Sep 2009 10:35:21 -0000 1.49 @@ -1 +1 @@ -e90d40fd9c36231c4ed39c4aa6a77704 libguestfs-1.0.69.tar.gz +31de0cb2ac480cbb4a1c7398f2963caf libguestfs-1.0.70.tar.gz From rjones at fedoraproject.org Tue Sep 15 10:36:27 2009 From: rjones at fedoraproject.org (Richard W.M. Jones) Date: Tue, 15 Sep 2009 10:36:27 +0000 (UTC) Subject: [fedora-virt-maint] rpms/libguestfs/F-11 libguestfs.spec,1.61,1.62 Message-ID: <20090915103627.B578E11C00CE@cvs1.fedora.phx.redhat.com> Author: rjones Update of /cvs/pkgs/rpms/libguestfs/F-11 In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv26579 Modified Files: libguestfs.spec Log Message: Version 1.0.70. Index: libguestfs.spec =================================================================== RCS file: /cvs/pkgs/rpms/libguestfs/F-11/libguestfs.spec,v retrieving revision 1.61 retrieving revision 1.62 diff -u -p -r1.61 -r1.62 --- libguestfs.spec 15 Sep 2009 10:35:16 -0000 1.61 +++ libguestfs.spec 15 Sep 2009 10:36:27 -0000 1.62 @@ -4,7 +4,7 @@ Summary: Access and modify virtual machine disk images Name: libguestfs Epoch: 1 -Version: 1.0.69 +Version: 1.0.70 Release: 1%{?dist} License: LGPLv2+ Group: Development/Libraries From veillard at fedoraproject.org Tue Sep 15 12:50:58 2009 From: veillard at fedoraproject.org (Daniel Veillard) Date: Tue, 15 Sep 2009 12:50:58 +0000 (UTC) Subject: [fedora-virt-maint] rpms/libvirt/devel .cvsignore, 1.46, 1.47 libvirt.spec, 1.175, 1.176 sources, 1.48, 1.49 Message-ID: <20090915125059.00D1211C00CE@cvs1.fedora.phx.redhat.com> Author: veillard Update of /cvs/pkgs/rpms/libvirt/devel In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv10061 Modified Files: .cvsignore libvirt.spec sources Log Message: Release of 0.7.1 upstream, Daniel Index: .cvsignore =================================================================== RCS file: /cvs/pkgs/rpms/libvirt/devel/.cvsignore,v retrieving revision 1.46 retrieving revision 1.47 diff -u -p -r1.46 -r1.47 --- .cvsignore 6 Sep 2009 13:46:19 -0000 1.46 +++ .cvsignore 15 Sep 2009 12:50:58 -0000 1.47 @@ -3,3 +3,11 @@ i686 x86_64 libvirt-*.tar.gz +libvirt-0.6.0.tar.gz +libvirt-0.6.1.tar.gz +libvirt-0.6.2.tar.gz +libvirt-0.6.3.tar.gz +libvirt-0.6.4.tar.gz +libvirt-0.6.5.tar.gz +libvirt-0.7.0.tar.gz +libvirt-0.7.1.tar.gz Index: libvirt.spec =================================================================== RCS file: /cvs/pkgs/rpms/libvirt/devel/libvirt.spec,v retrieving revision 1.175 retrieving revision 1.176 diff -u -p -r1.175 -r1.176 --- libvirt.spec 14 Sep 2009 18:30:45 -0000 1.175 +++ libvirt.spec 15 Sep 2009 12:50:58 -0000 1.176 @@ -73,15 +73,14 @@ %define with_one 0 %endif -%define git_snapshot gitfac3f4c Summary: Library providing a simple API virtualization Name: libvirt Version: 0.7.1 -Release: 0.2.%{git_snapshot}%{?dist}%{?extra_release} +Release: 1%{?dist}%{?extra_release} License: LGPLv2+ Group: Development/Libraries -Source: http://libvirt.org/sources/libvirt-%{version}-%{git_snapshot}.tar.gz +Source: http://libvirt.org/sources/libvirt-%{version}.tar.gz # Temporary hack till PulseAudio autostart problems are sorted # out when SELinux enforcing (bz 486112) @@ -650,6 +649,16 @@ fi %endif %changelog +* Tue Sep 15 2009 Daniel Veillard - 0.7.1-1 +- Upstream release of 0.7.1 +- ESX, VBox driver updates +- mutipath support +- support for encrypted (qcow) volume +- compressed save image format for Qemu/KVM +- QEmu host PCI device hotplug support +- configuration of huge pages in guests +- a lot of fixes + * Mon Sep 14 2009 Mark McLoughlin - 0.7.1-0.2.gitfac3f4c - Update to newer snapshot of 0.7.1 - Stop libvirt using untrusted 'info vcpus' PID data (#520864) Index: sources =================================================================== RCS file: /cvs/pkgs/rpms/libvirt/devel/sources,v retrieving revision 1.48 retrieving revision 1.49 diff -u -p -r1.48 -r1.49 --- sources 14 Sep 2009 18:30:45 -0000 1.48 +++ sources 15 Sep 2009 12:50:58 -0000 1.49 @@ -1 +1 @@ -84cb07d98032787f1e2a36776768e297 libvirt-0.7.1-gitfac3f4c.tar.gz +f1cd360a5da38b847e166c6482141940 libvirt-0.7.1.tar.gz From markmc at fedoraproject.org Wed Sep 16 09:38:30 2009 From: markmc at fedoraproject.org (Mark McLoughlin) Date: Wed, 16 Sep 2009 09:38:30 +0000 (UTC) Subject: [fedora-virt-maint] rpms/qemu/devel ksm.init, NONE, 1.1 ksm.sysconfig, NONE, 1.1 qemu.spec, 1.126, 1.127 Message-ID: <20090916093830.E874C11C0099@cvs1.fedora.phx.redhat.com> Author: markmc Update of /cvs/pkgs/rpms/qemu/devel In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv5560 Modified Files: qemu.spec Added Files: ksm.init ksm.sysconfig Log Message: * Wed Sep 16 2009 Mark McLoughlin - 2:0.10.92-2 - Add ksm control script from Dan Kenigsberg --- NEW FILE ksm.init --- #!/bin/bash # # ksm Kernel Samepage Merging # # Author: Dan Kenigsberg # # Copyright 2009 Red Hat, Inc. and/or its affiliates. # Released under the GPL # # chkconfig: - 84 16 # description: The KSM init script starts and stops the ksm kernel thread. # config: /etc/sysconfig/ksm # ### BEGIN INIT INFO # Provides: ksm # Required-Start: # Required-Stop: # Should-Start: # Short-Description: start and stop ksm # Description: The KSM init script starts and stops the ksm kernel thread. ### END INIT INFO . /etc/rc.d/init.d/functions if [ -f /etc/sysconfig/ksm ]; then . /etc/sysconfig/ksm fi prog=ksm RETVAL=0 # unless KSM_MAX_KERNEL_PAGES is set, let ksm munch up to half of total memory. default_max_kernel_pages () { local total pagesize total=`awk '/^MemTotal:/ {print $2}' /proc/meminfo` pagesize=`getconf PAGESIZE` echo $[total * 1024 / pagesize / 2] } start() { echo -n $"Starting $prog: " KSM_MAX_KERNEL_PAGES=${KSM_MAX_KERNEL_PAGES:-`default_max_kernel_pages`} echo $KSM_MAX_KERNEL_PAGES > /sys/kernel/mm/ksm/max_kernel_pages echo 1 > /sys/kernel/mm/ksm/run RETVAL=$? [ $RETVAL = 0 ] && success $"$prog startup" || failure $"$prog startup" echo return $RETVAL } stop() { echo -n $"Stopping $prog: " echo 0 > /sys/kernel/mm/ksm/run RETVAL=$? [ $RETVAL = 0 ] && success $"$prog shutdown" || failure $"$prog shutdown" echo } case "$1" in start) start ;; stop) stop ;; status) is_run=`cat /sys/kernel/mm/ksm/run` RETVAL=$? if [ $is_run -eq 1 ]; then echo $"$prog is running" else echo $"$prog is not running" fi ;; restart) stop start ;; signal) signal ;; *) echo $"Usage: $prog {start|stop|restart|status|help}" RETVAL=3 esac exit $RETVAL --- NEW FILE ksm.sysconfig --- # The maximum number of unswappable kernel pages # which may be allocated by ksm (0 for unlimited) # If unset, defaults to half of total memory # KSM_MAX_KERNEL_PAGES= Index: qemu.spec =================================================================== RCS file: /cvs/pkgs/rpms/qemu/devel/qemu.spec,v retrieving revision 1.126 retrieving revision 1.127 diff -u -p -r1.126 -r1.127 --- qemu.spec 7 Sep 2009 14:22:20 -0000 1.126 +++ qemu.spec 16 Sep 2009 09:38:29 -0000 1.127 @@ -3,7 +3,7 @@ Summary: QEMU is a FAST! processor emulator Name: qemu Version: 0.10.92 -Release: 1%{?dist} +Release: 2%{?dist} # Epoch because we pushed a qemu-1.0 package Epoch: 2 License: GPLv2+ and LGPLv2+ and BSD @@ -12,9 +12,17 @@ URL: http://www.qemu.org/ Source0: http://downloads.sourceforge.net/sourceforge/kvm/qemu-%{kvmverfull}.tar.gz Source1: qemu.init + +# Loads kvm kernel modules at boot Source2: kvm.modules + +# Creates /dev/kvm Source3: 80-kvm.rules +# KSM control script +Source4: ksm.init +Source5: ksm.sysconfig + # Not upstream, why? Patch01: qemu-bios-bigger-roms.patch @@ -292,6 +300,9 @@ make V=1 %{?_smp_mflags} $buildldflags %install rm -rf $RPM_BUILD_ROOT +install -D -p -m 0755 %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/ksm +install -D -p -m 0644 %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/ksm + %ifarch %{ix86} x86_64 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/modules mkdir -p $RPM_BUILD_ROOT%{_bindir}/ @@ -398,6 +409,8 @@ getent passwd qemu >/dev/null || \ %{_mandir}/man8/qemu-nbd.8* %{_bindir}/qemu-nbd %config(noreplace) %{_sysconfdir}/sasl2/qemu.conf +%{_sysconfdir}/rc.d/init.d/ksm +%config(noreplace) %{_sysconfdir}/sysconfig/ksm %files user %defattr(-,root,root) %{_sysconfdir}/rc.d/init.d/qemu @@ -483,6 +496,9 @@ getent passwd qemu >/dev/null || \ %{_mandir}/man1/qemu-img.1* %changelog +* Wed Sep 16 2009 Mark McLoughlin - 2:0.10.92-2 +- Add ksm control script from Dan Kenigsberg + * Mon Sep 7 2009 Mark McLoughlin - 2:0.10.92-1 - Update to qemu-kvm-0.11.0-rc2 - Drop upstreamed patches From markmc at fedoraproject.org Wed Sep 16 17:31:16 2009 From: markmc at fedoraproject.org (Mark McLoughlin) Date: Wed, 16 Sep 2009 17:31:16 +0000 (UTC) Subject: [fedora-virt-maint] rpms/qemu/devel ksmtuned, NONE, 1.1 ksmtuned.conf, NONE, 1.1 ksmtuned.init, NONE, 1.1 ksm.init, 1.1, 1.2 qemu.spec, 1.127, 1.128 Message-ID: <20090916173116.36AEC11C00EB@cvs1.fedora.phx.redhat.com> Author: markmc Update of /cvs/pkgs/rpms/qemu/devel In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv2712 Modified Files: ksm.init qemu.spec Added Files: ksmtuned ksmtuned.conf ksmtuned.init Log Message: * Wed Sep 16 2009 Mark McLoughlin - 2:0.10.92-3 - Add ksmtuned, also from Dan Kenigsberg - Use %_initddir macro --- NEW FILE ksmtuned --- #!/bin/bash # # Copyright 2009 Red Hat, Inc. and/or its affiliates. # Released under the GPL # # Author: Dan Kenigsberg # # ksmtuned - a simple script that controls whether (and with what vigor) ksm # should search for duplicated pages. # # starts ksm when memory commited to qemu processes exceeds a threshold, and # make ksm work harder and harder untill memory load falls below that # threshold. # # needs testing and ironing. contact danken at redhat.com if something breaks. if [ -f /etc/ksmtuned.conf ]; then . /etc/ksmtuned.conf fi KSM_MONITOR_INTERVAL=${KSM_MONITOR_INTERVAL:-60} KSM_NPAGES_BOOST=${KSM_NPAGES_BOOST:-300} KSM_NPAGES_DECAY=${KSM_NPAGES_DECAY:--50} KSM_NPAGES_MIN=${KSM_NPAGES_MIN:-64} KSM_NPAGES_MAX=${KSM_NPAGES_MAX:-1250} # millisecond sleep between ksm scans for 16Gb server. Smaller servers sleep # more, bigger sleep less. KSM_SLEEP_MSEC=${KSM_SLEEP_MSEC:-10} KSM_THRES_COEF=${KSM_THRES_COEF:-20} KSM_THRES_CONST=${KSM_THRES_CONST:-2048} total=`awk '/^MemTotal:/ {print $2}' /proc/meminfo` [ -n "$DEBUG" ] && echo total $total npages=0 sleep=$[KSM_SLEEP_MSEC * 16 * 1024 * 1024 / total] [ $sleep -le 10 ] && sleep=10 [ -n "$DEBUG" ] && echo sleep $sleep thres=$[total * KSM_THRES_COEF / 100] if [ $KSM_THRES_CONST -gt $thres ]; then thres=$KSM_THRES_CONST fi [ -n "$DEBUG" ] && echo thres $thres KSMCTL () { case x$1 in xstop) echo 0 > /sys/kernel/mm/ksm/run ;; xstart) echo $2 > /sys/kernel/mm/ksm/pages_to_scan echo $3 > /sys/kernel/mm/ksm/sleep_millisecs echo 1 > /sys/kernel/mm/ksm/run ;; esac } committed_memory () { # calculate how much memory is committed to running qemu processes local progname progname=${1:-qemu} ps -o vsz `pgrep $progname` | awk '{ sum += $1 }; END { print sum }' } free_memory () { awk '/^(MemFree|Buffers|MemCached):/ {free += $2}; END {print free}' \ /proc/meminfo } increase_npages() { local delta delta=${1:-0} npages=$[npages + delta] if [ $npages -lt $KSM_NPAGES_MIN ]; then npages=$KSM_NPAGES_MIN elif [ $npages -gt $KSM_NPAGES_MAX ]; then npages=$KSM_NPAGES_MAX fi echo $npages } adjust () { local free committed free=`free_memory` committed=`committed_memory` [ -n "$DEBUG" ] && echo committed $committed free $free if [ $[committed + thres] -lt $total -a $free -gt $thres ]; then KSMCTL stop [ -n "$DEBUG" ] && echo "$[committed + thres] < $total and free > $thres, stop ksm" return 1 fi [ -n "$DEBUG" ] && echo "$[committed + thres] > $total, start ksm" if [ $free -lt $thres ]; then npages=`increase_npages $KSM_NPAGES_BOOST` [ -n "$DEBUG" ] && echo "$free < $thres, boost" else npages=`increase_npages $KSM_NPAGES_DECAY` [ -n "$DEBUG" ] && echo "$free > $thres, decay" fi KSMCTL start $npages $sleep [ -n "$DEBUG" ] && echo "KSMCTL start $npages $sleep" return 0 } loop () { while true do sleep $KSM_MONITOR_INTERVAL adjust done } PIDFILE=${PIDFILE-/var/run/ksmtune.pid} if touch "$PIDFILE"; then loop & echo $! > "$PIDFILE" fi --- NEW FILE ksmtuned.conf --- # Configuration file for ksmtuned. # How long ksmtuned should sleep between tuning adjustments # KSM_MONITOR_INTERVAL=60 # Millisecond sleep between ksm scans for 16Gb server. # Smaller servers sleep more, bigger sleep less. # KSM_SLEEP_MSEC=10 # KSM_NPAGES_BOOST=300 # KSM_NPAGES_DECAY=-50 # KSM_NPAGES_MIN=64 # KSM_NPAGES_MAX=1250 # KSM_THRES_COEF=20 # KSM_THRES_CONST=2048 --- NEW FILE ksmtuned.init --- #!/bin/bash # # ksmtuned Kernel Samepage Merging (KSM) Tuning Daemon # # Author: Dan Kenigsberg # # Copyright 2009 Red Hat, Inc. and/or its affiliates. # Released under the GPL # # chkconfig: - 85 15 # description: The KSM tuning daemon controls whether (and with what vigor) \ # ksm should ksm search duplicated pages. # processname: ksmtuned # config: /etc/ksmtuned.conf # pidfile: /var/run/ksmtuned.pid # ### BEGIN INIT INFO # Provides: ksmtuned # Required-Start: # Required-Stop: # Should-Start: # Short-Description: tune the speed of ksm # Description: The Kernel Samepage Merging control Daemon is a simple script # that controls whether (and with what vigor) should ksm search duplicated # memory pages. # needs testing and ironing. contact danken at redhat.com if something breaks. ### END INIT INFO . /etc/rc.d/init.d/functions prog=ksmtuned ksmtuned=/usr/sbin/ksmtuned pidfile=${PIDFILE-/var/run/ksmtune.pid} RETVAL=0 start() { echo -n $"Starting $prog: " daemon --pidfile=${pidfile} $ksmtuned RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog } stop() { echo -n $"Stopping $prog: " killproc -p ${pidfile} RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog } restart() { stop start } condrestart() { [ -e /var/lock/subsys/$prog ] && restart || : } case "$1" in start) start ;; stop) stop ;; status) status -p ${pidfile} $prog RETVAL=$? ;; restart) restart ;; condrestart) condrestart ;; *) echo $"Usage: $prog {start|stop|restart|condrestart|status|help}" RETVAL=3 esac exit $RETVAL Index: ksm.init =================================================================== RCS file: /cvs/pkgs/rpms/qemu/devel/ksm.init,v retrieving revision 1.1 retrieving revision 1.2 diff -u -p -r1.1 -r1.2 --- ksm.init 16 Sep 2009 09:38:29 -0000 1.1 +++ ksm.init 16 Sep 2009 17:31:15 -0000 1.2 @@ -76,11 +76,10 @@ case "$1" in stop start ;; - signal) - signal - ;; + condrestart) + ;; *) - echo $"Usage: $prog {start|stop|restart|status|help}" + echo $"Usage: $prog {start|stop|restart|condrestart|status|help}" RETVAL=3 esac Index: qemu.spec =================================================================== RCS file: /cvs/pkgs/rpms/qemu/devel/qemu.spec,v retrieving revision 1.127 retrieving revision 1.128 diff -u -p -r1.127 -r1.128 --- qemu.spec 16 Sep 2009 09:38:29 -0000 1.127 +++ qemu.spec 16 Sep 2009 17:31:15 -0000 1.128 @@ -3,7 +3,7 @@ Summary: QEMU is a FAST! processor emulator Name: qemu Version: 0.10.92 -Release: 2%{?dist} +Release: 3%{?dist} # Epoch because we pushed a qemu-1.0 package Epoch: 2 License: GPLv2+ and LGPLv2+ and BSD @@ -19,9 +19,12 @@ Source2: kvm.modules # Creates /dev/kvm Source3: 80-kvm.rules -# KSM control script +# KSM control scripts Source4: ksm.init Source5: ksm.sysconfig +Source6: ksmtuned.init +Source7: ksmtuned +Source8: ksmtuned.conf # Not upstream, why? Patch01: qemu-bios-bigger-roms.patch @@ -100,6 +103,9 @@ This package provides the command line t %package common Summary: QEMU common files needed by all QEMU targets Group: Development/Tools +Requires(post): /sbin/chkconfig +Requires(preun): /sbin/service /sbin/chkconfig +Requires(postun): /sbin/service %description common QEMU is a generic and open source processor emulator which achieves a good emulation speed by using dynamic translation. @@ -300,9 +306,13 @@ make V=1 %{?_smp_mflags} $buildldflags %install rm -rf $RPM_BUILD_ROOT -install -D -p -m 0755 %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/ksm +install -D -p -m 0755 %{SOURCE4} $RPM_BUILD_ROOT%{_initddir}/ksm install -D -p -m 0644 %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/ksm +install -D -p -m 0755 %{SOURCE6} $RPM_BUILD_ROOT%{_initddir}/rc.d/init.d/ksmtuned +install -D -p -m 0755 %{SOURCE7} $RPM_BUILD_ROOT%{_sbindir}/ksmtuned +install -D -p -m 0644 %{SOURCE8} $RPM_BUILD_ROOT%{_sysconfdir}/ksmtuned.conf + %ifarch %{ix86} x86_64 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/modules mkdir -p $RPM_BUILD_ROOT%{_bindir}/ @@ -324,7 +334,7 @@ make prefix="${RPM_BUILD_ROOT}%{_prefix} docdir="${RPM_BUILD_ROOT}%{_docdir}/%{name}-%{version}" \ datadir="${RPM_BUILD_ROOT}%{_datadir}/%{name}" install chmod -x ${RPM_BUILD_ROOT}%{_mandir}/man1/* -install -D -p -m 0755 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/qemu +install -D -p -m 0755 %{SOURCE1} $RPM_BUILD_ROOT%{_initddir}/qemu install -D -p -m 0644 -t ${RPM_BUILD_ROOT}%{qemudocdir} Changelog README TODO COPYING COPYING.LIB LICENSE install -D -p -m 0644 qemu.sasl $RPM_BUILD_ROOT%{_sysconfdir}/sasl2/qemu.conf @@ -366,6 +376,30 @@ rm -rf $RPM_BUILD_ROOT sh %{_sysconfdir}/sysconfig/modules/kvm.modules %endif +%post common +getent group kvm >/dev/null || groupadd -g 36 -r kvm +getent group qemu >/dev/null || groupadd -g 107 -r qemu +getent passwd qemu >/dev/null || \ + useradd -r -u 107 -g qemu -G kvm -d / -s /sbin/nologin \ + -c "qemu user" qemu + +/sbin/chkconfig --add ksm +/sbin/chkconfig --add ksmtuned + +%preun common +if [ $1 -eq 0 ]; then + /sbin/service ksmtuned stop &>/dev/null || : + /sbin/chkconfig --del ksmtuned + /sbin/service ksm stop &>/dev/null || : + /sbin/chkconfig --del ksm +fi + +%postun common +if [ $1 -ge 1 ]; then + /sbin/service ksm condrestart &>/dev/null || : + /sbin/service ksmtuned condrestart &>/dev/null || : +fi + %post user /sbin/chkconfig --add qemu @@ -380,13 +414,6 @@ if [ $1 -ge 1 ]; then /sbin/service qemu condrestart &>/dev/null || : fi -%post common -getent group kvm >/dev/null || groupadd -g 36 -r kvm -getent group qemu >/dev/null || groupadd -g 107 -r qemu -getent passwd qemu >/dev/null || \ - useradd -r -u 107 -g qemu -G kvm -d / -s /sbin/nologin \ - -c "qemu user" qemu - %files %defattr(-,root,root) @@ -409,11 +436,14 @@ getent passwd qemu >/dev/null || \ %{_mandir}/man8/qemu-nbd.8* %{_bindir}/qemu-nbd %config(noreplace) %{_sysconfdir}/sasl2/qemu.conf -%{_sysconfdir}/rc.d/init.d/ksm +%{_initddir}/ksm %config(noreplace) %{_sysconfdir}/sysconfig/ksm +%{_initddir}/ksmtuned +%{_sbindir}/ksmtuned +%config(noreplace) %{_sysconfdir}/ksmtuned.conf %files user %defattr(-,root,root) -%{_sysconfdir}/rc.d/init.d/qemu +%{_initddir}/qemu %{_bindir}/qemu-alpha %{_bindir}/qemu-arm %{_bindir}/qemu-armeb @@ -496,6 +526,10 @@ getent passwd qemu >/dev/null || \ %{_mandir}/man1/qemu-img.1* %changelog +* Wed Sep 16 2009 Mark McLoughlin - 2:0.10.92-3 +- Add ksmtuned, also from Dan Kenigsberg +- Use %_initddir macro + * Wed Sep 16 2009 Mark McLoughlin - 2:0.10.92-2 - Add ksm control script from Dan Kenigsberg From crobinso at fedoraproject.org Wed Sep 16 17:33:01 2009 From: crobinso at fedoraproject.org (Cole Robinson) Date: Wed, 16 Sep 2009 17:33:01 +0000 (UTC) Subject: [fedora-virt-maint] rpms/python-virtinst/devel virtinst-0.500.0-bogus-driver-xml.patch, NONE, 1.1 virtinst-0.500.0-disk-format.patch, NONE, 1.1 virtinst-0.500.0-f12-distro.patch, NONE, 1.1 python-virtinst.spec, 1.71, 1.72 Message-ID: <20090916173301.09FF911C00CF@cvs1.fedora.phx.redhat.com> Author: crobinso Update of /cvs/pkgs/rpms/python-virtinst/devel In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv3759 Modified Files: python-virtinst.spec Added Files: virtinst-0.500.0-bogus-driver-xml.patch virtinst-0.500.0-disk-format.patch virtinst-0.500.0-f12-distro.patch Log Message: Don't generate bogus disk driver XML. Add '--disk format=' for specifying format (qcow2, ...) when provisioning Add Fedora12 to os dictionary virtinst-0.500.0-bogus-driver-xml.patch: AUTHORS | 1 + virtinst/VirtualDisk.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) --- NEW FILE virtinst-0.500.0-bogus-driver-xml.patch --- # HG changeset patch # User Alban Browaeys # Date 1249497422 14400 # Node ID 0d3cdc5ff5d091dd73d3ef0fe21123fb63b4d7a0 # Parent 07d296ecfbeb3c42e4db0efbeb03a9d8c4cac501 Set proper driver type from storage volume xml. Fixes possible traceback if creating a qemu VM from a storage volume. diff -r 07d296ecfbeb -r 0d3cdc5ff5d0 AUTHORS --- a/AUTHORS Wed Aug 05 14:32:40 2009 -0400 +++ b/AUTHORS Wed Aug 05 14:37:02 2009 -0400 @@ -42,6 +42,7 @@ Laurent L?onard Christophe Sauthier Michal Novotny + Alban Browaeys ...send patches and get your name here... diff -r 07d296ecfbeb -r 0d3cdc5ff5d0 virtinst/VirtualDisk.py --- a/virtinst/VirtualDisk.py Wed Aug 05 14:32:40 2009 -0400 +++ b/virtinst/VirtualDisk.py Wed Aug 05 14:37:02 2009 -0400 @@ -470,7 +470,7 @@ if self.vol_object: drvtype = _util.get_xml_path(self.vol_object.XMLDesc(0), - "/volume/target/format") + "/volume/target/format/@type") elif self.vol_install: if drvname == self.DRIVER_QEMU: virtinst-0.500.0-disk-format.patch: man/en/virt-install.1 | 5 +++++ man/en/virt-install.pod.in | 6 ++++++ tests/clitest.py | 13 +++++++++++++ virt-install | 16 ++++++++++------ virtinst/VirtualDisk.py | 33 ++++++++++++++++++++++++++++++++- 5 files changed, 66 insertions(+), 7 deletions(-) --- NEW FILE virtinst-0.500.0-disk-format.patch --- # HG changeset patch # User Cole Robinson # Date 1253112830 14400 # Node ID 6a398359952bfd8cc62e36afc26bb470862ce42d # Parent 252ff7bc5ff9e95f49dd7deb6ef6af07287a5055 virt-install: Add 'format' option to --disk Allows specifying storage volume format (raw, qcow2, etc.). diff -r 252ff7bc5ff9 -r 6a398359952b man/en/virt-install.1 --- a/man/en/virt-install.1 Sun Sep 13 18:20:15 2009 -0400 +++ b/man/en/virt-install.1 Wed Sep 16 10:53:50 2009 -0400 @@ -659,6 +659,11 @@ The cache value can be 'none', 'writethrough', or 'writeback'. \&'writethrough' provides read caching. 'writeback' provides read and write caching. +.IP "\fBformat\fR" 4 +.IX Item "format" +Image format to be used if creating managed storage. For file volumes, this +can be 'raw', 'qcow2', 'vmdk', etc. See format types in + for possible values. .RE .RS 2 .Sp diff -r 252ff7bc5ff9 -r 6a398359952b man/en/virt-install.pod.in --- a/man/en/virt-install.pod.in Sun Sep 13 18:20:15 2009 -0400 +++ b/man/en/virt-install.pod.in Wed Sep 16 10:53:50 2009 -0400 @@ -435,6 +435,12 @@ 'writethrough' provides read caching. 'writeback' provides read and write caching. +=item B + +Image format to be used if creating managed storage. For file volumes, this +can be 'raw', 'qcow2', 'vmdk', etc. See format types in +L for possible values. + =back See the examples section for some uses. This option deprecates C<--file>, diff -r 252ff7bc5ff9 -r 6a398359952b tests/clitest.py --- a/tests/clitest.py Sun Sep 13 18:20:15 2009 -0400 +++ b/tests/clitest.py Wed Sep 16 10:53:50 2009 -0400 @@ -62,6 +62,7 @@ 'MANAGEDEXIST2' : "/default-pool/testvol2.img", 'MANAGEDNEW1' : "/default-pool/clonevol", 'MANAGEDNEW2' : "/default-pool/clonevol", + 'MANAGEDDISKNEW1' : "/disk-pool/newvol1.img", } debug = False @@ -130,6 +131,12 @@ "--disk path=%(EXISTIMG1)s --disk path=%(EXISTIMG1)s --disk path=%(EXISTIMG1)s --disk path=%(EXISTIMG1)s,device=cdrom", # > 16 scsi disks " --disk path=%(EXISTIMG1)s,bus=scsi --disk path=%(EXISTIMG1)s,bus=scsi --disk path=%(EXISTIMG1)s,bus=scsi --disk path=%(EXISTIMG1)s,bus=scsi --disk path=%(EXISTIMG1)s,bus=scsi --disk path=%(EXISTIMG1)s,bus=scsi --disk path=%(EXISTIMG1)s,bus=scsi --disk path=%(EXISTIMG1)s,bus=scsi --disk path=%(EXISTIMG1)s,bus=scsi --disk path=%(EXISTIMG1)s,bus=scsi --disk path=%(EXISTIMG1)s,bus=scsi --disk path=%(EXISTIMG1)s,bus=scsi --disk path=%(EXISTIMG1)s,bus=scsi --disk path=%(EXISTIMG1)s,bus=scsi --disk path=%(EXISTIMG1)s,bus=scsi --disk path=%(EXISTIMG1)s,bus=scsi --disk path=%(EXISTIMG1)s,bus=scsi", + # Unmanaged file using format 'raw' + "--disk path=%(NEWIMG1)s,format=raw,size=.0000001", + # Managed file using format raw + "--disk path=%(MANAGEDNEW1)s,format=raw,size=.0000001", + # Managed file using format qcow2 + "--disk path=%(MANAGEDNEW1)s,format=qcow2,size=.0000001", ], "invalid": [ @@ -153,6 +160,12 @@ "--disk pool=%(POOL)s", # Unknown cache type "--disk path=%(EXISTIMG1)s,perms=ro,size=.0001,cache=FOOBAR", + # Unmanaged file using non-raw format + "--disk path=%(NEWIMG1)s,format=qcow2,size=.0000001", + # Managed file using unknown format + "--disk path=%(MANAGEDNEW1)s,format=frob,size=.0000001", + # Managed disk using any format + "--disk path=%(MANAGEDDISKNEW1)s,format=raw,size=.0000001", ] }, # category "storage" diff -r 252ff7bc5ff9 -r 6a398359952b virt-install --- a/virt-install Sun Sep 13 18:20:15 2009 -0400 +++ b/virt-install Wed Sep 16 10:53:50 2009 -0400 @@ -156,7 +156,8 @@ ro = False shared = False sparse = True - option_whitelist = ["perms", "cache", "bus", "device", "size", "sparse"] + option_whitelist = ["perms", "cache", "bus", "device", "size", "sparse", + "format"] # Strip media type path, ignore, optstr = partition(path, ",") @@ -200,6 +201,7 @@ devtype = opts.get("device") bus = opts.get("bus") cache = opts.get("cache") + fmt = opts.get("format") # We return (path, (poolname, volname), volinst, device, bus, readonly, # shared) @@ -220,6 +222,8 @@ suffix=".img") volinst = vc(pool_name=path, name=vname, conn=guest.conn, allocation=0, capacity=(size and size*1024*1024*1024)) + if fmt: + volinst.format = fmt elif path_type == "vol=": if not path.count("/"): @@ -235,7 +239,7 @@ if not devtype: devtype = virtinst.VirtualDisk.DEVICE_DISK ret = (abspath, voltuple, volinst, devtype, bus, ro, shared, size, sparse, - cache) + cache, fmt) logging.debug("parse_disk: returning %s" % str(ret)) return ret @@ -252,13 +256,13 @@ # Get disk parameters if is_file_path: (path, voltuple, volinst, device, bus, readOnly, shared, size, - sparse, cache) = \ + sparse, cache, fmt) = \ (disk, None, None, virtinst.VirtualDisk.DEVICE_DISK, None, False, - False, size, sparse, None) + False, size, sparse, None, None) else: (path, voltuple, volinst, device, bus, readOnly, shared, - size, sparse, cache) = parse_disk_option(guest, disk, size) + size, sparse, cache, fmt) = parse_disk_option(guest, disk, size) if not sparse and volinst: volinst.allocation = volinst.capacity @@ -266,7 +270,7 @@ 'volInstall': volinst, 'volName': voltuple, 'readOnly': readOnly, 'shareable': shared, 'device': device, 'bus': bus, 'conn': guest.conn, - 'driverCache': cache} + 'driverCache': cache, 'format': fmt} d = cli.disk_prompt(None, kwargs) diff -r 252ff7bc5ff9 -r 6a398359952b virtinst/VirtualDisk.py --- a/virtinst/VirtualDisk.py Sun Sep 13 18:20:15 2009 -0400 +++ b/virtinst/VirtualDisk.py Wed Sep 16 10:53:50 2009 -0400 @@ -146,7 +146,7 @@ device=DEVICE_DISK, driverName=None, driverType=None, readOnly=False, sparse=True, conn=None, volObject=None, volInstall=None, volName=None, bus=None, shareable=False, - driverCache=None, selinuxLabel=None): + driverCache=None, selinuxLabel=None, format=None): """ @param path: filesystem path to the disk image. @type path: C{str} @@ -183,6 +183,8 @@ @type driverCache: member of cache_types @param selinuxLabel: Used for labelling new or relabel existing storage @type selinuxLabel: C{str} + @param format: Storage volume format to use when creating storage + @type format: C{str} """ VirtualDevice.__init__(self, conn=conn) @@ -200,6 +202,7 @@ self._driver_cache = None self._selinux_label = None self._clone_path = None + self._format = None # XXX: No property methods for these self.transient = transient @@ -219,6 +222,7 @@ self._set_shareable(shareable, validate=False) self._set_driver_cache(driverCache, validate=False) self._set_selinux_label(selinuxLabel, validate=False) + self._set_format(format, validate=False) if volName: self.__lookup_vol_name(volName) @@ -375,6 +379,14 @@ self.__validate_wrapper("_selinux_label", val, validate) selinux_label = property(_get_selinux_label, _set_selinux_label) + def _get_format(self): + return self._format + def _set_format(self, val, validate=True): + if val is not None: + self._check_str(val, "format") + self.__validate_wrapper("_format", val, validate) + format = property(_get_format, _set_format) + # Validation assistance methods # Initializes attribute if it hasn't been done, then validates args. @@ -392,6 +404,24 @@ setattr(self, varname, orig) raise + def __set_format(self): + if not self.format: + return + + if not self.__creating_storage(): + return + + if self.vol_install: + if not hasattr(self.vol_install, "format"): + raise ValueError(_("Storage type does not support format " + "parameter.")) + if self.vol_install.format != self.format: + self.vol_install.format = self.format + + elif self.format != "raw": + raise RuntimeError(_("Format cannot be specified for " + "unmanaged storage.")) + def __set_size(self): """ Fill in 'size' attribute for existing storage. @@ -700,6 +730,7 @@ create_media = self.__creating_storage() self.__set_size() + self.__set_format() if not self.selinux_label: # If we are using existing storage, pull the label from it virtinst-0.500.0-f12-distro.patch: osdict.py | 7 +++++++ 1 file changed, 7 insertions(+) --- NEW FILE virtinst-0.500.0-f12-distro.patch --- # HG changeset patch # User Cole Robinson # Date 1253115773 14400 # Node ID d8f88998215ae844534b2bf9a7024edc1bf46826 # Parent 6a398359952bfd8cc62e36afc26bb470862ce42d osdict: Add 'Fedora 12' entry diff -r 6a398359952b -r d8f88998215a virtinst/osdict.py --- a/virtinst/osdict.py Wed Sep 16 10:53:50 2009 -0400 +++ b/virtinst/osdict.py Wed Sep 16 11:42:53 2009 -0400 @@ -179,6 +179,13 @@ "input" : { "type" : [ (["all"], "tablet") ], "bus" : [ (["all"], "usb"), ] }, }}, + "fedora12": { "label": "Fedora 12", "distro": "fedora", + "devices" : { + "disk" : { "bus" : [ (["kvm"], "virtio") ] }, + "net" : { "model" : [ (["kvm"], "virtio") ] }, + "input" : { "type" : [ (["all"], "tablet") ], + "bus" : [ (["all"], "usb"), ] }, + }}, "sles10": { "label": "Suse Linux Enterprise Server", "distro": "suse" }, "sles11": { "label": "Suse Linux Enterprise Server 11", Index: python-virtinst.spec =================================================================== RCS file: /cvs/pkgs/rpms/python-virtinst/devel/python-virtinst.spec,v retrieving revision 1.71 retrieving revision 1.72 diff -u -p -r1.71 -r1.72 --- python-virtinst.spec 13 Sep 2009 23:14:03 -0000 1.71 +++ python-virtinst.spec 16 Sep 2009 17:33:00 -0000 1.72 @@ -17,7 +17,7 @@ Summary: Python modules and utilities for installing virtual machines Name: python-%{appname} Version: 0.500.0 -Release: 2%{_extra_release} +Release: 3%{_extra_release} Source0: http://virt-manager.org/download/sources/%{appname}/%{appname}-%{version}.tar.gz # Don't erroneously set limit for amount of virtio devices (bz 499654) Patch1: %{appname}-%{version}-virtio-dev-limit.patch @@ -27,6 +27,12 @@ Patch2: %{appname}-%{version}-virtio-cdr Patch3: %{appname}-%{version}-no-default-keymap.patch # Update test suite to verify patches Patch4: %{appname}-%{version}-update-testsuite.patch +# Don't generate bogus disk driver XML. +Patch5: /home/boston/crobinso/virtinst-0.500.0-bogus-driver-xml.patch +# Add '--disk format=' for specifying format (qcow2, ...) when provisioning +Patch6: /home/boston/crobinso/virtinst-0.500.0-disk-format.patch +# Add Fedora12 to os dictionary +Patch7: /home/boston/crobinso/virtinst-0.500.0-f12-distro.patch License: GPLv2+ Group: Development/Libraries @@ -58,6 +64,9 @@ and install new VMs) and virt-clone (clo %patch2 -p1 %patch3 -p1 %patch4 -p1 +%patch5 -p1 +%patch6 -p1 +%patch7 -p1 %build python setup.py build @@ -93,6 +102,11 @@ rm -rf $RPM_BUILD_ROOT %{_bindir}/virt-convert %changelog +* Wed Sep 16 2009 Cole Robinson - 0.500.0-3.fc12 +- Don't generate bogus disk driver XML. +- Add '--disk format=' for specifying format (qcow2, ...) when provisioning +- Add Fedora12 to os dictionary + * Sun Sep 13 2009 Cole Robinson - 0.500.0-2.fc12 - Don't erroneously set limit for amount of virtio devices (bz 499654) - Don't use virtio for cdrom devices (bz 517151) From markmc at fedoraproject.org Wed Sep 16 20:18:42 2009 From: markmc at fedoraproject.org (Mark McLoughlin) Date: Wed, 16 Sep 2009 20:18:42 +0000 (UTC) Subject: [fedora-virt-maint] rpms/qemu/devel qemu.spec,1.128,1.129 Message-ID: <20090916201842.9905511C00CF@cvs1.fedora.phx.redhat.com> Author: markmc Update of /cvs/pkgs/rpms/qemu/devel In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv23889 Modified Files: qemu.spec Log Message: Fix typo Index: qemu.spec =================================================================== RCS file: /cvs/pkgs/rpms/qemu/devel/qemu.spec,v retrieving revision 1.128 retrieving revision 1.129 diff -u -p -r1.128 -r1.129 --- qemu.spec 16 Sep 2009 17:31:15 -0000 1.128 +++ qemu.spec 16 Sep 2009 20:18:42 -0000 1.129 @@ -309,7 +309,7 @@ rm -rf $RPM_BUILD_ROOT install -D -p -m 0755 %{SOURCE4} $RPM_BUILD_ROOT%{_initddir}/ksm install -D -p -m 0644 %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/ksm -install -D -p -m 0755 %{SOURCE6} $RPM_BUILD_ROOT%{_initddir}/rc.d/init.d/ksmtuned +install -D -p -m 0755 %{SOURCE6} $RPM_BUILD_ROOT%{_initddir}/ksmtuned install -D -p -m 0755 %{SOURCE7} $RPM_BUILD_ROOT%{_sbindir}/ksmtuned install -D -p -m 0644 %{SOURCE8} $RPM_BUILD_ROOT%{_sysconfdir}/ksmtuned.conf From markmc at fedoraproject.org Wed Sep 16 22:20:35 2009 From: markmc at fedoraproject.org (Mark McLoughlin) Date: Wed, 16 Sep 2009 22:20:35 +0000 (UTC) Subject: [fedora-virt-maint] rpms/qemu/devel qemu-add-ksm-support.patch, 1.3, 1.4 qemu-fix-msix-error-handling-on-older-kernels.patch, 1.2, 1.3 qemu-fix-no-kvm-segfault.patch, 1.3, 1.4 qemu.spec, 1.129, 1.130 Message-ID: <20090916222035.D33FE11C0336@cvs1.fedora.phx.redhat.com> Author: markmc Update of /cvs/pkgs/rpms/qemu/devel In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv4399 Modified Files: qemu-add-ksm-support.patch qemu-fix-msix-error-handling-on-older-kernels.patch qemu-fix-no-kvm-segfault.patch qemu.spec Log Message: * Wed Sep 16 2009 Mark McLoughlin - 2:0.10.92-4 - Fix for KSM patch from Justin Forbes qemu-add-ksm-support.patch: exec.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) Index: qemu-add-ksm-support.patch =================================================================== RCS file: /cvs/pkgs/rpms/qemu/devel/qemu-add-ksm-support.patch,v retrieving revision 1.3 retrieving revision 1.4 diff -u -p -r1.3 -r1.4 --- qemu-add-ksm-support.patch 7 Sep 2009 14:22:19 -0000 1.3 +++ qemu-add-ksm-support.patch 16 Sep 2009 22:20:32 -0000 1.4 @@ -1,4 +1,4 @@ -From 4d64a615f69458c202561fcc01e8e0505fa46ee9 Mon Sep 17 00:00:00 2001 +From ef44e9475ab38ec73b30e83241279170fac06b22 Mon Sep 17 00:00:00 2001 From: Izik Eidus Date: Tue, 28 Jul 2009 19:14:26 +0300 Subject: [PATCH] kvm userspace: ksm support @@ -6,17 +6,28 @@ Subject: [PATCH] kvm userspace: ksm supp rfc for ksm support to kvm userpsace. Signed-off-by: Izik Eidus +signed-off-by: Justin M. Forbes Signed-off-by: Mark McLoughlin Fedora-patch: qemu-add-ksm-support.patch --- - exec.c | 3 +++ - 1 files changed, 3 insertions(+), 0 deletions(-) + exec.c | 6 ++++++ + 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/exec.c b/exec.c -index 0655b4b..b93f7b8 100644 +index 0655b4b..a0e2203 100644 --- a/exec.c +++ b/exec.c -@@ -2579,6 +2579,9 @@ ram_addr_t qemu_ram_alloc(ram_addr_t size) +@@ -65,6 +65,9 @@ + #undef DEBUG_TB_CHECK + #endif + ++/* Quick hack to enable KSM support */ ++#define MADV_MERGEABLE 12 /* KSM may merge identical pages */ ++ + #define SMC_BITMAP_USE_THRESHOLD 10 + + #if defined(TARGET_SPARC64) +@@ -2579,6 +2582,9 @@ ram_addr_t qemu_ram_alloc(ram_addr_t size) new_block->host = file_ram_alloc(size, mem_path); if (!new_block->host) { new_block->host = qemu_vmalloc(size); qemu-fix-msix-error-handling-on-older-kernels.patch: msix.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) Index: qemu-fix-msix-error-handling-on-older-kernels.patch =================================================================== RCS file: /cvs/pkgs/rpms/qemu/devel/qemu-fix-msix-error-handling-on-older-kernels.patch,v retrieving revision 1.2 retrieving revision 1.3 diff -u -p -r1.2 -r1.3 --- qemu-fix-msix-error-handling-on-older-kernels.patch 7 Sep 2009 14:22:20 -0000 1.2 +++ qemu-fix-msix-error-handling-on-older-kernels.patch 16 Sep 2009 22:20:32 -0000 1.3 @@ -1,4 +1,4 @@ -From 0b341eda83cd2f01134d5b13300d97c07a3abced Mon Sep 17 00:00:00 2001 +From 80380f566e2c1d4c9e02e0c0dff405ecc86d134e Mon Sep 17 00:00:00 2001 From: Michael S. Tsirkin Date: Thu, 23 Jul 2009 16:34:13 +0300 Subject: [PATCH] Fix error handling in msix vector add qemu-fix-no-kvm-segfault.patch: vl.c | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) Index: qemu-fix-no-kvm-segfault.patch =================================================================== RCS file: /cvs/pkgs/rpms/qemu/devel/qemu-fix-no-kvm-segfault.patch,v retrieving revision 1.3 retrieving revision 1.4 diff -u -p -r1.3 -r1.4 --- qemu-fix-no-kvm-segfault.patch 7 Sep 2009 14:22:20 -0000 1.3 +++ qemu-fix-no-kvm-segfault.patch 16 Sep 2009 22:20:32 -0000 1.4 @@ -1,4 +1,4 @@ -From 00782050707fbb999bfffe722794490d2211a0a9 Mon Sep 17 00:00:00 2001 +From 70415c7d31bf6420d1a2d685fe14661ce1cfd9cb Mon Sep 17 00:00:00 2001 From: Dustin Kirkland Date: Fri, 4 Sep 2009 14:38:30 -0500 Subject: [PATCH] qemu-kvm: fix segfault when running kvm without /dev/kvm Index: qemu.spec =================================================================== RCS file: /cvs/pkgs/rpms/qemu/devel/qemu.spec,v retrieving revision 1.129 retrieving revision 1.130 diff -u -p -r1.129 -r1.130 --- qemu.spec 16 Sep 2009 20:18:42 -0000 1.129 +++ qemu.spec 16 Sep 2009 22:20:32 -0000 1.130 @@ -3,7 +3,7 @@ Summary: QEMU is a FAST! processor emulator Name: qemu Version: 0.10.92 -Release: 3%{?dist} +Release: 4%{?dist} # Epoch because we pushed a qemu-1.0 package Epoch: 2 License: GPLv2+ and LGPLv2+ and BSD @@ -526,6 +526,9 @@ fi %{_mandir}/man1/qemu-img.1* %changelog +* Wed Sep 16 2009 Mark McLoughlin - 2:0.10.92-4 +- Fix for KSM patch from Justin Forbes + * Wed Sep 16 2009 Mark McLoughlin - 2:0.10.92-3 - Add ksmtuned, also from Dan Kenigsberg - Use %_initddir macro From veillard at fedoraproject.org Thu Sep 17 12:32:34 2009 From: veillard at fedoraproject.org (Daniel Veillard) Date: Thu, 17 Sep 2009 12:32:34 +0000 (UTC) Subject: [fedora-virt-maint] rpms/libvirt/devel libvirt.spec,1.176,1.177 Message-ID: <20090917123234.1B1C011C00CE@cvs1.fedora.phx.redhat.com> Author: veillard Update of /cvs/pkgs/rpms/libvirt/devel In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv12857 Modified Files: libvirt.spec Log Message: Refactoring of spec file by danpb for RHEL 5/6 compat, daniel Index: libvirt.spec =================================================================== RCS file: /cvs/pkgs/rpms/libvirt/devel/libvirt.spec,v retrieving revision 1.176 retrieving revision 1.177 diff -u -p -r1.176 -r1.177 --- libvirt.spec 15 Sep 2009 12:50:58 -0000 1.176 +++ libvirt.spec 17 Sep 2009 12:32:32 -0000 1.177 @@ -1,60 +1,132 @@ # -*- rpm-spec -*- -%define with_xen 0%{!?_without_xen:1} -%define with_xen_proxy 0%{!?_without_xen_proxy:1} -%define with_qemu 0%{!?_without_qemu:1} -%define with_openvz 0%{!?_without_openvz:1} -%define with_lxc 0%{!?_without_lxc:1} -%define with_vbox 0%{!?_without_vbox:1} -%define with_sasl 0%{!?_without_sasl:1} -%define with_avahi 0%{!?_without_avahi:1} -%define with_python 0%{!?_without_python:1} -%define with_libvirtd 0%{!?_without_libvirtd:1} -%define with_uml 0%{!?_without_uml:1} -%define with_one 0%{!?_without_one:1} -%define with_phyp 0%{!?_without_phyp:1} -%define with_network 0%{!?_without_network:1} -%define with_storage_fs 0%{!?_without_storage_fs:1} -%define with_storage_lvm 0%{!?_without_storage_lvm:1} -%define with_storage_iscsi 0%{!?_without_storage_iscsi:1} -%define with_storage_disk 0%{!?_without_storage_disk:1} -%define with_storage_mpath 0%{!?_without_storage_mpath:1} -%define with_numactl 0%{!?_without_numactl:1} +# A client only build will create a libvirt.so only containing +# the generic RPC driver, and test driver and no libvirtd +# Default to a full server + client build +%define client_only 0 + +# Now turn off server build in certain cases + +# RHEL-5 builds are client-only for s390, ppc +%if 0%{?rhel} == 5 +%ifnarch i386 i586 i686 x86_64 ia64 +%define client_only 1 +%endif +%endif -# default to off - selectively enabled below +# Disable all server side drivers if client only build requested +%if %{client_only} +%define server_drivers 0 +%else +%define server_drivers 1 +%endif + + +# Now set the defaults for all the important features, independant +# of any particular OS + +# First the daemon itself +%define with_libvirtd 0%{!?_without_libvirtd:%{server_drivers}} +%define with_avahi 0%{!?_without_avahi:%{server_drivers}} + +# Then the hypervisor drivers +%define with_xen 0%{!?_without_xen:%{server_drivers}} +%define with_xen_proxy 0%{!?_without_xen_proxy:%{server_drivers}} +%define with_qemu 0%{!?_without_qemu:%{server_drivers}} +%define with_openvz 0%{!?_without_openvz:%{server_drivers}} +%define with_lxc 0%{!?_without_lxc:%{server_drivers}} +%define with_vbox 0%{!?_without_vbox:%{server_drivers}} +%define with_uml 0%{!?_without_uml:%{server_drivers}} +%define with_one 0%{!?_without_one:%{server_drivers}} +%define with_phyp 0%{!?_without_phyp:%{server_drivers}} +%define with_esx 0%{!?_without_esx:%{server_drivers}} + +# Then the secondary host drivers +%define with_network 0%{!?_without_network:%{server_drivers}} +%define with_storage_fs 0%{!?_without_storage_fs:%{server_drivers}} +%define with_storage_lvm 0%{!?_without_storage_lvm:%{server_drivers}} +%define with_storage_iscsi 0%{!?_without_storage_iscsi:%{server_drivers}} +%define with_storage_disk 0%{!?_without_storage_disk:%{server_drivers}} +%define with_storage_mpath 0%{!?_without_storage_mpath:%{server_drivers}} +%define with_numactl 0%{!?_without_numactl:%{server_drivers}} +%define with_selinux 0%{!?_without_selinux:%{server_drivers}} +%define with_hal 0%{!?_without_hal:%{server_drivers}} + +# A few optional bits off by default, we enable later %define with_polkit 0%{!?_without_polkit:0} %define with_capng 0%{!?_without_capng:0} %define with_netcf 0%{!?_without_netcf:0} +# Non-server/HV driver defaults which are always enabled +%define with_python 0%{!?_without_python:1} +%define with_sasl 0%{!?_without_sasl:1} + + +# Finally set the OS / architecture specific special cases + # Xen is available only on i386 x86_64 ia64 %ifnarch i386 i586 i686 x86_64 ia64 %define with_xen 0 %endif + +# RHEL doesn't ship OpenVZ, VBox, UML, OpenNebula, PowerHypervisor or ESX +%if 0%{?rhel} +%define with_openvz 0 +%define with_vbox 0 +%define with_uml 0 +%define with_one 0 +%define with_phyp 0 +%define with_esx 0 +%endif + +# RHEL-5 has restricted QEMU to x86_64 only and is too old for LXC +%if 0%{?rhel} == 5 +%ifnarch x86_64 +%define with_qemu 0 +%endif +%define with_lxc 0 +%endif + +# RHEL-6 has restricted QEMU to x86_64 only, stopped including Xen +# on all archs. Other archs all have LXC available though +%if 0%{?rhel} >= 6 +%ifnarch x86_64 +%define with_qemu 0 +%endif +%define with_xen 0 +%endif +# If Xen isn't turned on, we shouldn't build the xen proxy either %if ! %{with_xen} %define with_xen_proxy 0 %endif +# Fedora doesn't have any QEMU on ppc64 - only ppc %if 0%{?fedora} %ifarch ppc64 %define with_qemu 0 %endif %endif -%if 0%{?fedora} >= 8 +# PolicyKit was introduced in Fedora 8 / RHEL-6 or newer, allowing +# the setuid Xen proxy to be killed off +%if 0%{?fedora} >= 8 || 0%{?rhel} >= 6 %define with_polkit 0%{!?_without_polkit:1} %define with_xen_proxy 0 %endif -%if 0%{?fedora} >= 12 +# libcapng is used to manage capabilities in Fedora 12 / RHEL-6 or newer +%if 0%{?fedora} >= 12 || 0%{?rhel} >= 6 %define with_capng 0%{!?_without_capng:1} %endif -%if 0%{?fedora} >= 12 -%define with_netcf 0%{!?_without_netcf:1} +# netcf is used to manage network interfaces in Fedora 12 / RHEL-6 or newer +%if 0%{?fedora} >= 12 || 0%{?rhel} >= 6 +%define with_netcf 0%{!?_without_netcf:%{server_drivers}} %endif -%if 0%{?fedora} >= 12 +# Force QEMU to run as non-root +%if 0%{?fedora} >= 12 || 0%{?rhel} >= 6 %define qemu_user qemu %define qemu_group qemu %else @@ -62,22 +134,20 @@ %define qemu_group root %endif -# -# If building on RHEL switch on the specific support -# -%if 0%{?fedora} -%define with_rhel5 0 -%else + +# The RHEL-5 Xen package has some feature backports. This +# flag is set to enable use of those special bits on RHEL-5 +%if 0%{?rhel} == 5 %define with_rhel5 1 -%define with_polkit 0 -%define with_one 0 +%else +%define with_rhel5 0 %endif Summary: Library providing a simple API virtualization Name: libvirt Version: 0.7.1 -Release: 1%{?dist}%{?extra_release} +Release: 2%{?dist}%{?extra_release} License: LGPLv2+ Group: Development/Libraries Source: http://libvirt.org/sources/libvirt-%{version}.tar.gz @@ -93,13 +163,21 @@ BuildRequires: python-devel # The client side, i.e. shared libs and virsh are in a subpackage Requires: libvirt-client = %{version}-%{release} -Requires: dnsmasq +# Used by many of the drivers, so turn it on whenever the +# daemon is present +%if %{with_libvirtd} Requires: bridge-utils +%endif +%if %{with_network} +Requires: dnsmasq Requires: iptables +%endif # needed for device enumeration +%if %{with_hal} Requires: hal +%endif %if %{with_polkit} -%if 0%{?fedora} >= 12 +%if 0%{?fedora} >= 12 || 0%{?rhel} >=6 Requires: polkit >= 0.93 %else Requires: PolicyKit >= 0.6 @@ -158,18 +236,24 @@ BuildRequires: readline-devel BuildRequires: ncurses-devel BuildRequires: gettext BuildRequires: gnutls-devel +%if %{with_hal} BuildRequires: hal-devel +%endif %if %{with_avahi} BuildRequires: avahi-devel %endif +%if %{with_selinux} BuildRequires: libselinux-devel +%endif +%if %{with_network} BuildRequires: dnsmasq +%endif BuildRequires: bridge-utils %if %{with_sasl} BuildRequires: cyrus-sasl-devel %endif %if %{with_polkit} -%if 0%{?fedora} >= 12 +%if 0%{?fedora} >= 12 || 0%{?rhel} >= 6 # Only need the binary, not -devel BuildRequires: polkit >= 0.93 %else @@ -200,11 +284,20 @@ BuildRequires: iscsi-initiator-utils %if %{with_storage_disk} # For disk driver BuildRequires: parted-devel +%if 0%{?rhel} == 5 +# Broken RHEL-5 parted RPM is missing a dep +BuildRequires: e2fsprogs-devel +%endif %endif %if %{with_storage_mpath} # For Multipath support +%if 0%{?rhel} == 5 +# Broken RHEL-5 packaging has header files in main RPM :-( +BuildRequires: device-mapper +%else BuildRequires: device-mapper-devel %endif +%endif %if %{with_numactl} # For QEMU/LXC numa info BuildRequires: numactl-devel @@ -310,6 +403,10 @@ of recent versions of Linux (and other O %define _without_phyp --without-phyp %endif +%if ! %{with_esx} +%define _without_esx --without-esx +%endif + %if ! %{with_polkit} %define _without_polkit --without-polkit %endif @@ -370,6 +467,14 @@ of recent versions of Linux (and other O %define _without_netcf --without-netcf %endif +%if ! %{with_selinux} +%define _without_selinux --without-selinux +%endif + +%if ! %{with_hal} +%define _without_hal --without-hal +%endif + %configure %{?_without_xen} \ %{?_without_qemu} \ %{?_without_openvz} \ @@ -383,6 +488,7 @@ of recent versions of Linux (and other O %{?_without_uml} \ %{?_without_one} \ %{?_without_phyp} \ + %{?_without_esx} \ %{?_without_network} \ %{?_with_rhel5_api} \ %{?_without_storage_fs} \ @@ -393,6 +499,8 @@ of recent versions of Linux (and other O %{?_without_numactl} \ %{?_without_capng} \ %{?_without_netcf} \ + %{?_without_selinux} \ + %{?_without_hal} \ --with-qemu-user=%{qemu_user} \ --with-qemu-group=%{qemu_group} \ --with-init-script=redhat \ @@ -413,7 +521,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.a rm -f $RPM_BUILD_ROOT%{_libdir}/python*/site-packages/*.la rm -f $RPM_BUILD_ROOT%{_libdir}/python*/site-packages/*.a -%if %{with_qemu} +%if %{with_network} # We don't want to install /etc/libvirt/qemu/networks in the main %files list # because if the admin wants to delete the default network completely, we don't # want to end up re-incarnating it on every RPM upgrade. @@ -427,6 +535,8 @@ sed -i -e "//d" $RPM_BUILD_ROOT%{_ %else rm -f $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu/networks/default.xml rm -f $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu/networks/autostart/default.xml +%endif +%if ! %{with_qemu} rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirtd_qemu.aug rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/tests/test_libvirtd_qemu.aug %endif @@ -436,6 +546,10 @@ rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/ rm -rf $RPM_BUILD_ROOT%{_datadir}/doc/libvirt-python-%{version} %endif +%if %{client_only} +rm -rf $RPM_BUILD_ROOT%{_datadir}/doc/libvirt-%{version} +%endif + %if ! %{with_qemu} rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu.conf %endif @@ -448,9 +562,9 @@ chmod 0644 $RPM_BUILD_ROOT%{_sysconfdir} rm -fr %{buildroot} %pre -%if 0%{?fedora} >= 12 +%if 0%{?fedora} >= 12 || 0%{?rhel} >= 6 # Normally 'setup' adds this in /etc/passwd, but this is -# here for case of upgrades from earlier Fedora. This +# here for case of upgrades from earlier Fedora/RHEL. This # UID/GID pair is reserved for qemu:qemu getent group kvm >/dev/null || groupadd -g 36 -r kvm getent group qemu >/dev/null || groupadd -g 107 -r qemu @@ -462,7 +576,7 @@ getent passwd qemu >/dev/null || \ %post %if %{with_libvirtd} -%if %{with_qemu} +%if %{with_network} # We want to install the default network for initial RPM installs # or on the first upgrade from a non-network aware libvirt only. # We check this by looking to see if the daemon is already installed @@ -479,7 +593,7 @@ fi /sbin/chkconfig --add libvirtd if [ "$1" -ge "1" ]; then - /sbin/service libvirtd condrestart > /dev/null 2>&1 + /sbin/service libvirtd condrestart > /dev/null 2>&1 fi %endif @@ -495,31 +609,31 @@ fi %postun client -p /sbin/ldconfig +%if %{with_libvirtd} %files %defattr(-, root, root) %doc AUTHORS ChangeLog.gz NEWS README COPYING.LIB TODO %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/ -%if %{with_qemu} +%if %{with_network} %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/ %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/networks/ %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/networks/autostart %endif -%if %{with_libvirtd} %{_sysconfdir}/rc.d/init.d/libvirtd %config(noreplace) %{_sysconfdir}/sysconfig/libvirtd %config(noreplace) %{_sysconfdir}/libvirt/libvirtd.conf %config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd -%endif %if %{with_qemu} %config(noreplace) %{_sysconfdir}/libvirt/qemu.conf %endif -%if %{with_qemu} %dir %{_datadir}/libvirt/ + +%if %{with_network} %dir %{_datadir}/libvirt/networks/ %{_datadir}/libvirt/networks/default.xml %endif @@ -557,13 +671,11 @@ fi %{_datadir}/augeas/lenses/tests/test_libvirtd_qemu.aug %endif -%if %{with_libvirtd} %{_datadir}/augeas/lenses/libvirtd.aug %{_datadir}/augeas/lenses/tests/test_libvirtd.aug -%endif %if %{with_polkit} -%if 0%{?fedora} >= 12 +%if 0%{?fedora} >= 12 || 0%{?rhel} >= 6 %{_datadir}/polkit-1/actions/org.libvirt.unix.policy %else %{_datadir}/PolicyKit/policy/org.libvirt.unix.policy @@ -578,17 +690,15 @@ fi %if %{with_xen_proxy} %attr(4755, root, root) %{_libexecdir}/libvirt_proxy %endif - %if %{with_lxc} %attr(0755, root, root) %{_libexecdir}/libvirt_lxc %endif -%if %{with_libvirtd} %attr(0755, root, root) %{_libexecdir}/libvirt_parthelper %attr(0755, root, root) %{_sbindir}/libvirtd -%endif %doc docs/*.xml +%endif %files client -f %{name}.lang %defattr(-, root, root) @@ -649,6 +759,9 @@ fi %endif %changelog +* Thu Sep 17 2009 Daniel Veillard - 0.7.1-2 +- revamp of spec file for modularity and RHELs + * Tue Sep 15 2009 Daniel Veillard - 0.7.1-1 - Upstream release of 0.7.1 - ESX, VBox driver updates @@ -694,7 +807,6 @@ fi - Set perms on /var/lib/libvirt/boot to 0711 (bug #516034) * Wed Aug 5 2009 Daniel Veillard - 0.7.0-1 -- Upstream release of 0.7.0 - ESX, VBox3, Power Hypervisor drivers - new net filesystem glusterfs - Storage cloning for LVM and Disk backends @@ -703,299 +815,55 @@ fi - QEmu hotplug NIC support - a lot of fixes -* Fri Jul 31 2009 Mark McLoughlin - 0.7.0-0.9.gite195b43 -- Set perms on /var/lib/libvirt/images to 0711 - -* Thu Jul 30 2009 Mark McLoughlin - 0.7.0-0.8.gite195b43 -- Add patch from upstream to fix qemu pidfile perms problem - -* Thu Jul 30 2009 Daniel P. Berrange - 0.7.0-0.7.gite195b43 -- Create qemu/kvm user & group to fix upgrades - -* Wed Jul 29 2009 Daniel Veillard - 0.7.0-0.6.gite195b43 -- another prerelease with qemu, uml and remote patches -- drop the news patch as it's now UTF8 upstream - -* Wed Jul 29 2009 Mark McLoughlin - 0.7.0-0.5.gitf055724 -- Move ldconfig call to libvirt-client %post/%postun -- Fix rpmlint warning about libvirt-client summary -- Fix disabling polkit and netcf on older fedoras - -* Wed Jul 29 2009 Mark McLoughlin - 0.7.0-0.4.gitf055724 -- Drop explicit libselinux requires, it is autorequired -- Drop cleanup of python/tests, apparently not needed -- Cherry-pick upstream patch to convert NEWS to UTF-8, drop iconv -- Drop python BR; python-devel requires it - -* Tue Jul 28 2009 Mark McLoughlin - 0.7.0-0.3.gitf055724 -- Enable netcf support -- Pass --with-qemu-user=qemu etc. to configure -- Move various requires to the libvirt-client sub-package -- Sync some trivial cleanups from upstream spec file -- Remove explicit libxml2 requires, again -- Build with --without-capng if capng support is disabled -- Remove explicit dir creating in makeinstall, replaced by attr in files -- Set perms on /var/{run,lib,cache}/libvirt/qemu - -* Tue Jul 28 2009 Mark McLoughlin - 0.7.0-0.2.gitf055724 -- Drop glusterfs dep to 2.0.1 (bug #514191) - -* Mon Jul 27 2009 Daniel Veillard - 0.7.0-0.1.gitf055724 -- prerelease of 0.7.0 +* Fri Jul 3 2009 Daniel Veillard - 0.6.5-1 +- release of 0.6.5 -* Sat Jul 25 2009 Fedora Release Engineering - 0.6.5-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild +* Fri May 29 2009 Daniel Veillard - 0.6.4-1 +- release of 0.6.4 +- various new APIs -* Fri Jul 10 2009 Richard W.M. Jones - 0.6.5-2.fc12 -- Bump release number to rebuild against new libparted. - -* Fri Jul 3 2009 Daniel Veillard - 0.6.5-1.fc12 -- Upstream release of 0.6.5 -- OpenNebula driver -- many bug fixes - -* Fri Jul 3 2009 Mark McLoughlin - 0.6.4-4.fc12 -- Fix libvirtd crash with bad capabilities data (bug #505635) - -* Fri Jul 3 2009 Mark McLoughlin - 0.6.4-3.fc12 -- Handle shared/readonly image labelling (bug #493692) -- Don't unnecessarily try to change a file context (bug #507555) -- Don't try to label a disk with no path (e.g. empty cdrom) (bug #499569) - -* Fri Jun 5 2009 Mark McLoughlin - 0.6.4-2.fc12 -- Remove the qemu BuildRequires - -* Fri May 29 2009 Daniel Veillard - 0.6.4-1.fc12 -- Upstream release of 0.6.4 -- new APIs -- fixes for latests QEmu/KVM versions -- various assorted fixes - -* Mon May 25 2009 Mark McLoughlin - 0.6.3-11.fc12 -- Bring up the bridge, even if it doesn't have an IP address (bug #501912) - -* Thu May 21 2009 Mark McLoughlin - 0.6.3-10.fc12 -- Fix XML attribute escaping (bug #499791) -- Fix serious event handling issues causing guests to be destroyed (bug #499698) - -* Thu May 21 2009 Mark McLoughlin - 0.6.3-9.fc12 -- Fix qemu argv detection with latest qemu (bug #501923) - -* Sun May 10 2009 Cole Robinson - 0.6.2-8.fc12 -- Don't try to label a disk with no path (e.g. empty cdrom) (bug #499569) - -* Thu May 7 2009 Mark McLoughlin - 0.6.3-7.fc12 -- Enable migration for qemu 0.10 (bug #499704) - -* Wed May 6 2009 Cole Robinson - 0.6.3-6.fc12 -- Refresh qemu caps when getCapabilities is called (bug #460649) - -* Wed May 6 2009 Mark McLoughlin - 0.6.3-5.fc12 -- Fix handling of (bug #499386) +* Fri Apr 24 2009 Daniel Veillard - 0.6.3-1 +- release of 0.6.3 +- VirtualBox driver -* Tue May 5 2009 Daniel Berrange - 0.6.3-4.fc12 -- Fix readonly/shared disk image labelling (rhbz #493692) +* Fri Apr 3 2009 Daniel Veillard - 0.6.2-1 +- release of 0.6.2 -* Tue Apr 28 2009 Daniel Veillard - 0.6.3-3.fc12 -- was also missing /usr/share/gtk-doc/html/libvirt in -devel +* Fri Mar 4 2009 Daniel Veillard - 0.6.1-1 +- release of 0.6.1 -* Tue Apr 28 2009 Daniel Veillard - 0.6.3-2.fc12 -- fix packaging bug #496945 libvirt should own /var/cache/libvirt +* Sat Jan 31 2009 Daniel Veillard - 0.6.0-1 +- release of 0.6.0 -* Fri Apr 24 2009 Daniel Veillard - 0.6.3-1.fc12 -- release of 0.6.3 -- VirtualBox driver -- new virt-xml-validate command -- assorted bug fixes +* Tue Nov 25 2008 Daniel Veillard - 0.5.0-1 +- release of 0.5.0 -* Thu Apr 16 2009 Mark McLoughlin - 0.6.2-2.fc12 -- Fix qemu drive format specification (#496092) +* Tue Sep 23 2008 Daniel Veillard - 0.4.6-1 +- release of 0.4.6 -* Fri Apr 3 2009 Daniel Veillard - 0.6.2-1.fc11 -- release of 0.6.2 -- memory ballooning in QEMU -- SCSI HBA storage pool support -- support SASL auth for VNC server -- PCI passthrough in Xen driver -- assorted bug fixes - -* Fri Apr 3 2009 Daniel P. Berrange - 0.6.1-6.fc11 -- Fix typo in previous patch - -* Tue Mar 17 2009 Daniel P. Berrange - 0.6.1-5.fc11 -- Don't relabel shared/readonly disks -- Disable sound cards when running sVirt - -* Tue Mar 17 2009 Daniel P. Berrange - 0.6.1-4.fc11 -- Fix memory allocation for xend lookup -- Avoid crash if storage volume deletion fails -- Fix multiple FD leaks -- Fix bug in dispatch FD events when a callback is marked deleted -- Fix parsing of storage volume owner/group/mode -- Fix memory allocation for virDomainGetVcpus RPC handler -- Avoid deadlock in setting vCPU count -- Use correct driver name in Xen block detach - -* Mon Mar 9 2009 Cole Robinson - 0.6.1-3.fc11 -- Add Requires: libselinux - -* Fri Mar 6 2009 Daniel P. Berrange - 0.6.1-2.fc11 -- Fix crash after storage vol deletion fails -- Add patch to enable VNC SASL authentication - -* Wed Mar 4 2009 Daniel Veillard - 0.6.1-1.fc11 -- upstream release 0.6.1 -- support for node device detach reattach and reset -- sVirt mandatory access control support -- many bug fixes and small improvements - -* Mon Mar 2 2009 Daniel Veillard - 0.6.0-6.fc11 -- make sure Xen is handled in i586 new default 32bits x86 packages - -* Wed Feb 25 2009 Fedora Release Engineering - 0.6.0-5.fc11 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild - -* Wed Feb 18 2009 Daniel P. Berrange - 0.6.0-4.fc11 -- Fix QEMU startup timeout/race (rhbz #484649) -- Setup DBus threading. Don't allow dbus to call _exit / change SIGPIPE (rhbz #484553) -- Fix timeout when autostarting session daemon - -* Wed Feb 11 2009 Richard W.M. Jones - 0.6.0-3.fc11 -- Multiple fixes to remove rpmlint warnings/errors (rhbz #226055) - -* Fri Feb 6 2009 Daniel P. Berrange - 0.6.0-2.fc11 -- Fix libvirtd --timeout usage -- Fix RPC call problems and QEMU startup handling (rhbz #484414) -- Fix unowned directories (rhbz #483442) - -* Sat Jan 31 2009 Daniel Veillard - 0.6.0-1.fc11 -- upstream release 0.6.0 -- thread safety of API -- allow QEmu/KVM domains to survive daemon restart -- extended logging capabilities -- support copy on write storage volumes for QEmu/KVM -- support of storage cache control options for QEmu/KVM -- a lot of bug fixes - -* Wed Dec 17 2008 Daniel Veillard - 0.5.1-2.fc11 -- fix missing read-only access checks, fixes CVE-2008-5086 - -* Fri Dec 5 2008 Daniel Veillard - 0.5.1-1.fc11 -- upstream release 0.5.1 -- mostly bugfixes e.g #473071 -- some driver improvments - -* Sat Nov 29 2008 Ignacio Vazquez-Abrams - 0.5.0-2 -- Rebuild for Python 2.6 - -* Wed Nov 26 2008 Daniel Veillard - 0.5.0-1.fc11 -- upstream release 0.5.0 -- domain lifecycle event support -- node device enumeration -- KVM/QEmu migration support -- improved LXC support -- SDL display configuration -- User Mode Linux driver (Daniel Berrange) - -* Wed Sep 24 2008 Daniel Veillard - 0.4.6-3.fc10 -- apply the python makefile patch for #463733 - -* Wed Sep 24 2008 Daniel Veillard - 0.4.6-2.fc10 -- upstream release 0.4.6 -- fixes some problems with 0.4.5 - -* Tue Sep 9 2008 Daniel Veillard - 0.4.5-2.fc10 -- fix a crash if a QEmu/KVM domain is defined without an emulator path - -* Mon Sep 8 2008 Daniel Veillard - 0.4.5-1.fc10 -- upstream release 0.4.5 -- a lot of bug fixes -- major updates to QEmu/KVM and Linux containers drivers -- support for OpenVZ if installed - -* Thu Aug 7 2008 Tom "spot" Callaway - 0.4.4-3.fc10 -- fix license tag - -* Tue Jul 8 2008 Daniel P. Berrange - 0.4.4-2.fc10 -- Fix booting of CDROM images with KVM (rhbz #452355) - -* Wed Jun 25 2008 Daniel Veillard - 0.4.4-1.fc10 -- upstream release 0.4.4 -- fix a few bugs in previous release - -* Thu Jun 12 2008 Daniel Veillard - 0.4.3-1.fc10 -- upstream release 0.4.3 -- many bug fixes -- many small improvements -- serious xenner fixes - -* Wed Jun 4 2008 Mark McLoughlin - 0.4.2-6.fc10 -- Disable lokkit support again (#449996, #447633) -- Ensure %-fedora is evaluated correctly - -* Thu May 15 2008 Daniel P. Berrange - 0.4.2-5.fc10 -- Rebuild with policy enabled (rhbz #446616) - -* Fri May 9 2008 Daniel P. Berrange - 0.4.2-4.fc10 -- Added directory for initrd/kernel images for SELinux policy - -* Mon Apr 28 2008 Mark McLoughlin - 0.4.2-3.fc10 -- Simplify the way arch conditionals are handled - -* Mon Apr 28 2008 Mark McLoughlin - 0.4.2-2.fc10 -- Enable lokkit support (#443796) - -* Tue Apr 8 2008 Daniel Veillard - 0.4.2-1.fc9 -- upstream release 0.4.2 -- many bug fixes -- localization updates +* Mon Sep 8 2008 Daniel Veillard - 0.4.5-1 +- release of 0.4.5 -* Thu Apr 4 2008 Daniel P. Berrange - 0.4.1-7.fc9 -- Don't run polkit-auth as root -- Don't request polkit auth if client is root - -* Fri Mar 28 2008 Chris Lalancette - 0.4.1-6.fc9 -- When dumping XML for a storage pool, make the directory tag - match the tag used for specifying the pool in the first place - -* Thu Mar 27 2008 Chris Lalancette - 0.4.1-5.fc9 -- Do iscsiadm sendtarget before trying to do login -- Do sysfs scanning for iSCSI LUNs instead of trying to parse them from - iscsiadm session output - -* Thu Mar 13 2008 Daniel P. Berrange - 0.4.1-4.fc9 -- Fix QEMU tap device setup -- Fix Xen boot device XML processing -- Fixed QEMU cdrom media change +* Wed Jun 25 2008 Daniel Veillard - 0.4.4-1 +- release of 0.4.4 +- mostly a few bug fixes from 0.4.3 -* Mon Mar 10 2008 Daniel P. Berrange - 0.4.1-3.fc9 -- Fixed daemon startup when run with --daemon flag +* Thu Jun 12 2008 Daniel Veillard - 0.4.3-1 +- release of 0.4.3 +- lots of bug fixes and small improvements -* Mon Mar 3 2008 Daniel Veillard - 0.4.1-2.fc9 -- 2 patches found just after the release +* Tue Apr 8 2008 Daniel Veillard - 0.4.2-1 +- release of 0.4.2 +- lots of bug fixes and small improvements -* Mon Mar 3 2008 Daniel Veillard - 0.4.1-1.fc9 +* Mon Mar 3 2008 Daniel Veillard - 0.4.1-1 - Release of 0.4.1 - Storage APIs - xenner support - lots of assorted improvements, bugfixes and cleanups - documentation and localization improvements -* Wed Feb 20 2008 Fedora Release Engineering - 0.4.0-5 -- Autorebuild for GCC 4.3 - -* Fri Jan 18 2008 Daniel P. Berrange - 0.4.0-4.fc9 -- Fix SSH tunnelling (rhbz #428743) -- Fix back-compat for nodeinfo call changes. - -* Sun Jan 13 2008 Daniel P. Berrange - 0.4.0-3.fc9 -- Fix crash when no auth callback - -* Wed Jan 2 2008 Daniel P. Berrange - 0.4.0-2.fc9 -- Fix reading large config files (rhbz #426425) -- Fix crash when connecting to a PolicyKit enabled server with not auth callback (rhbz #427107) - -* Tue Dec 18 2007 Daniel Veillard - 0.4.0-1.fc8 +* Tue Dec 18 2007 Daniel Veillard - 0.4.0-1 - Release of 0.4.0 - SASL based authentication - PolicyKit authentication @@ -1003,10 +871,6 @@ fi - lots of assorted improvements, bugfixes and cleanups - documentation and localization improvements -* Mon Oct 15 2007 Daniel P. Berrange - 0.3.3-2.fc8 -- Added QEMU driver config file support -- Added example config files - * Sun Sep 30 2007 Daniel Veillard - 0.3.3-1 - Release of 0.3.3 - Avahi support @@ -1014,40 +878,28 @@ fi - lots of assorted improvements, bugfixes and cleanups - documentation and localization improvements -* Fri Aug 24 2007 Daniel Veillard - 0.3.2-2.fc8 -- also build on arches where Xen is not available - -* Tue Aug 21 2007 Daniel Veillard - 0.3.2-1.fc8 +* Tue Aug 21 2007 Daniel Veillard - 0.3.2-1 - Release of 0.3.2 - API for domains migration - APIs for collecting statistics on disks and interfaces - lots of assorted bugfixes and cleanups - documentation and localization improvements -* Thu Aug 16 2007 Daniel Veillard - 0.3.1-4.fc8 -- Fixes missing Requires for libvirt-devel - -* Thu Jul 26 2007 Daniel Veillard - 0.3.1-3.fc8 -- adds fix for bug #249594 - -* Wed Jul 25 2007 Jesse Keating - 0.3.1-2 -- Rebuild for RH #249435 - -* Tue Jul 24 2007 Daniel Veillard - 0.3.1-1.fc8 +* Tue Jul 24 2007 Daniel Veillard - 0.3.1-1 - Release of 0.3.1 - localtime clock support - PS/2 and USB input devices - lots of assorted bugfixes and cleanups - documentation and localization improvements -* Mon Jul 9 2007 Daniel Veillard - 0.3.0-1.fc8 +* Mon Jul 9 2007 Daniel Veillard - 0.3.0-1 - Release of 0.3.0 - Secure remote access support - unification of daemons - lots of assorted bugfixes and cleanups - documentation and localization improvements -* Fri Jun 8 2007 Daniel Veillard - 0.2.3-1.fc8 +* Fri Jun 8 2007 Daniel Veillard - 0.2.3-1 - Release of 0.2.3 - lot of assorted bugfixes and cleanups - support for Xen-3.1 @@ -1116,7 +968,7 @@ fi - it's pkgconfig not pgkconfig ! * Mon Nov 6 2006 Daniel Veillard 0.1.8-2 -- fixing spec file, added %-dist, -devel requires pkgconfig and xen-devel +- fixing spec file, added %dist, -devel requires pkgconfig and xen-devel - Resolves: rhbz#202320 * Mon Oct 16 2006 Daniel Veillard 0.1.8-1 @@ -1157,7 +1009,7 @@ fi - add patch to address dom0_ops API breakage in Xen 3.0.3 tree * Mon Aug 28 2006 Jeremy Katz - 0.1.4-4 -- add patch to support paravirt framebuffer in Xen +- add patch to support paravirt framebuffer in Xen * Mon Aug 21 2006 Daniel Veillard 0.1.4-3 - another patch to fix network handling in non-HVM guests @@ -1230,7 +1082,7 @@ fi - fixes some problems in 0.0.3 due to the change of names * Wed Feb 8 2006 Daniel Veillard 0.0.3-1 -- changed library name to libvirt from libvir, complete and test the python +- changed library name to libvirt from libvir, complete and test the python bindings * Sun Jan 29 2006 Daniel Veillard 0.0.2-1 From veillard at fedoraproject.org Thu Sep 17 13:30:51 2009 From: veillard at fedoraproject.org (Daniel Veillard) Date: Thu, 17 Sep 2009 13:30:51 +0000 (UTC) Subject: [fedora-virt-maint] rpms/libvirt/devel libvirt.spec,1.177,1.178 Message-ID: <20090917133051.32ABB11C0261@cvs1.fedora.phx.redhat.com> Author: veillard Update of /cvs/pkgs/rpms/libvirt/devel In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv2568 Modified Files: libvirt.spec Log Message: Disable numactl on s390[x], Daniel Index: libvirt.spec =================================================================== RCS file: /cvs/pkgs/rpms/libvirt/devel/libvirt.spec,v retrieving revision 1.177 retrieving revision 1.178 diff -u -p -r1.177 -r1.178 --- libvirt.spec 17 Sep 2009 12:32:32 -0000 1.177 +++ libvirt.spec 17 Sep 2009 13:30:50 -0000 1.178 @@ -69,6 +69,10 @@ %define with_xen 0 %endif +# Numactl is not available on s390[x] +%ifarch s390 s390x +%define with_numactl 0 +%endif # RHEL doesn't ship OpenVZ, VBox, UML, OpenNebula, PowerHypervisor or ESX %if 0%{?rhel} @@ -147,7 +151,7 @@ Summary: Library providing a simple API virtualization Name: libvirt Version: 0.7.1 -Release: 2%{?dist}%{?extra_release} +Release: 3%{?dist}%{?extra_release} License: LGPLv2+ Group: Development/Libraries Source: http://libvirt.org/sources/libvirt-%{version}.tar.gz @@ -759,6 +763,9 @@ fi %endif %changelog +* Thu Sep 17 2009 Daniel Veillard - 0.7.1-3 +- disable numactl on s390[x] + * Thu Sep 17 2009 Daniel Veillard - 0.7.1-2 - revamp of spec file for modularity and RHELs From markmc at fedoraproject.org Thu Sep 17 14:47:54 2009 From: markmc at fedoraproject.org (Mark McLoughlin) Date: Thu, 17 Sep 2009 14:47:54 +0000 (UTC) Subject: [fedora-virt-maint] rpms/libvirt/devel libvirt-fix-net-hotunplug-double-free.patch, NONE, 1.1 libvirt-fix-pci-hostdev-hotunplug-leak.patch, NONE, 1.1 libvirt-0.6.4-svirt-sound.patch, 1.5, 1.6 libvirt.spec, 1.178, 1.179 Message-ID: <20090917144754.2E06E11C00CE@cvs1.fedora.phx.redhat.com> Author: markmc Update of /cvs/pkgs/rpms/libvirt/devel In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv5711 Modified Files: libvirt-0.6.4-svirt-sound.patch libvirt.spec Added Files: libvirt-fix-net-hotunplug-double-free.patch libvirt-fix-pci-hostdev-hotunplug-leak.patch Log Message: * Thu Sep 17 2009 Mark McLoughlin - 0.7.1-4% - A couple of hot-unplug memory handling fixes (#523960) libvirt-fix-net-hotunplug-double-free.patch: qemu_driver.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) --- NEW FILE libvirt-fix-net-hotunplug-double-free.patch --- >From 9b926eb4c485bd81b0b553107dbb037c2188cd23 Mon Sep 17 00:00:00 2001 From: Mark McLoughlin Date: Thu, 17 Sep 2009 15:31:08 +0100 Subject: [PATCH] Fix net/disk hot-unplug segfault When we hot-unplug the last device, we're currently double-freeing the device definition. Reported by Michal Nowak here: https://bugzilla.redhat.com/523960 * src/qemu_driver.c: fix double free Fedora-patch: libvirt-fix-net-hotunplug-double-free.patch --- src/qemu_driver.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/qemu_driver.c b/src/qemu_driver.c index a65334f..de31581 100644 --- a/src/qemu_driver.c +++ b/src/qemu_driver.c @@ -5998,7 +5998,7 @@ try_command: /* ignore, harmless */ } } else { - VIR_FREE(vm->def->disks[0]); + VIR_FREE(vm->def->disks); vm->def->ndisks = 0; } virDomainDiskDefFree(detach); @@ -6100,7 +6100,7 @@ qemudDomainDetachNetDevice(virConnectPtr conn, /* ignore, harmless */ } } else { - VIR_FREE(vm->def->nets[0]); + VIR_FREE(vm->def->nets); vm->def->nnets = 0; } virDomainNetDefFree(detach); -- 1.6.2.5 libvirt-fix-pci-hostdev-hotunplug-leak.patch: qemu_driver.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) --- NEW FILE libvirt-fix-pci-hostdev-hotunplug-leak.patch --- >From 0538387bbdb426de88b54a8c45153c5644209698 Mon Sep 17 00:00:00 2001 From: Mark McLoughlin Date: Thu, 17 Sep 2009 15:32:45 +0100 Subject: [PATCH] Fix leak in PCI hostdev hot-unplug * src/qemu_driver.c: sync the hostdev hot-unplug code with the disk/net code. Fedora-patch: libvirt-fix-pci-hostdev-hotunplug-leak.patch --- src/qemu_driver.c | 20 +++++++++++++------- 1 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/qemu_driver.c b/src/qemu_driver.c index de31581..2ddcdc0 100644 --- a/src/qemu_driver.c +++ b/src/qemu_driver.c @@ -6206,14 +6206,20 @@ static int qemudDomainDetachHostPciDevice(virConnectPtr conn, pciFreeDevice(conn, pci); } - if (i != --vm->def->nhostdevs) - memmove(&vm->def->hostdevs[i], - &vm->def->hostdevs[i+1], - sizeof(*vm->def->hostdevs) * (vm->def->nhostdevs-i)); - if (VIR_REALLOC_N(vm->def->hostdevs, vm->def->nhostdevs) < 0) { - virReportOOMError(conn); - ret = -1; + if (vm->def->nhostdevs > 1) { + memmove(vm->def->hostdevs + i, + vm->def->hostdevs + i + 1, + sizeof(*vm->def->hostdevs) * + (vm->def->nhostdevs - (i + 1))); + vm->def->nhostdevs--; + if (VIR_REALLOC_N(vm->def->hostdevs, vm->def->nhostdevs) < 0) { + /* ignore, harmless */ + } + } else { + VIR_FREE(vm->def->hostdevs); + vm->def->nhostdevs = 0; } + virDomainHostdevDefFree(detach); return ret; } -- 1.6.2.5 libvirt-0.6.4-svirt-sound.patch: qemu_conf.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) Index: libvirt-0.6.4-svirt-sound.patch =================================================================== RCS file: /cvs/pkgs/rpms/libvirt/devel/libvirt-0.6.4-svirt-sound.patch,v retrieving revision 1.5 retrieving revision 1.6 diff -u -p -r1.5 -r1.6 --- libvirt-0.6.4-svirt-sound.patch 14 Sep 2009 18:30:45 -0000 1.5 +++ libvirt-0.6.4-svirt-sound.patch 17 Sep 2009 14:47:51 -0000 1.6 @@ -1,4 +1,4 @@ -From e2106f6db9beb9f48e9f87f8a1eaba821d1a2296 Mon Sep 17 00:00:00 2001 +From 127a39777e9809053bb98a9082e27c73543ccfa2 Mon Sep 17 00:00:00 2001 From: Daniel P. Berrange Date: Mon, 17 Aug 2009 08:32:08 +0100 Subject: [PATCH] Disable sound cards when running sVirt Index: libvirt.spec =================================================================== RCS file: /cvs/pkgs/rpms/libvirt/devel/libvirt.spec,v retrieving revision 1.178 retrieving revision 1.179 diff -u -p -r1.178 -r1.179 --- libvirt.spec 17 Sep 2009 13:30:50 -0000 1.178 +++ libvirt.spec 17 Sep 2009 14:47:52 -0000 1.179 @@ -151,7 +151,7 @@ Summary: Library providing a simple API virtualization Name: libvirt Version: 0.7.1 -Release: 3%{?dist}%{?extra_release} +Release: 4%{?dist}%{?extra_release} License: LGPLv2+ Group: Development/Libraries Source: http://libvirt.org/sources/libvirt-%{version}.tar.gz @@ -160,6 +160,10 @@ Source: http://libvirt.org/sources/libvi # out when SELinux enforcing (bz 486112) Patch00: libvirt-0.6.4-svirt-sound.patch +# A couple of hot-unplug memory handling fixes (#523960) +Patch01: libvirt-fix-net-hotunplug-double-free.patch +Patch02: libvirt-fix-pci-hostdev-hotunplug-leak.patch + BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root URL: http://libvirt.org/ BuildRequires: python-devel @@ -373,6 +377,8 @@ of recent versions of Linux (and other O %setup -q %patch00 -p1 +%patch01 -p1 +%patch02 -p1 %build %if ! %{with_xen} @@ -763,6 +769,9 @@ fi %endif %changelog +* Thu Sep 17 2009 Mark McLoughlin - 0.7.1-4% +- A couple of hot-unplug memory handling fixes (#523960) + * Thu Sep 17 2009 Daniel Veillard - 0.7.1-3 - disable numactl on s390[x] From markmc at fedoraproject.org Thu Sep 17 14:51:06 2009 From: markmc at fedoraproject.org (Mark McLoughlin) Date: Thu, 17 Sep 2009 14:51:06 +0000 (UTC) Subject: [fedora-virt-maint] rpms/libvirt/devel libvirt-fix-net-hotunplug-double-free.patch, 1.1, 1.2 libvirt-fix-pci-hostdev-hotunplug-leak.patch, 1.1, 1.2 libvirt.spec, 1.179, 1.180 Message-ID: <20090917145106.021AA11C00CE@cvs1.fedora.phx.redhat.com> Author: markmc Update of /cvs/pkgs/rpms/libvirt/devel In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv6999 Modified Files: libvirt-fix-net-hotunplug-double-free.patch libvirt-fix-pci-hostdev-hotunplug-leak.patch libvirt.spec Log Message: Got the wrong bug number libvirt-fix-net-hotunplug-double-free.patch: qemu_driver.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) Index: libvirt-fix-net-hotunplug-double-free.patch =================================================================== RCS file: /cvs/pkgs/rpms/libvirt/devel/libvirt-fix-net-hotunplug-double-free.patch,v retrieving revision 1.1 retrieving revision 1.2 diff -u -p -r1.1 -r1.2 --- libvirt-fix-net-hotunplug-double-free.patch 17 Sep 2009 14:47:52 -0000 1.1 +++ libvirt-fix-net-hotunplug-double-free.patch 17 Sep 2009 14:51:05 -0000 1.2 @@ -1,4 +1,4 @@ -From 9b926eb4c485bd81b0b553107dbb037c2188cd23 Mon Sep 17 00:00:00 2001 +From 18067a3cde7183fd17eea199fac2e49edfe1cb22 Mon Sep 17 00:00:00 2001 From: Mark McLoughlin Date: Thu, 17 Sep 2009 15:31:08 +0100 Subject: [PATCH] Fix net/disk hot-unplug segfault @@ -8,7 +8,7 @@ the device definition. Reported by Michal Nowak here: - https://bugzilla.redhat.com/523960 + https://bugzilla.redhat.com/523953 * src/qemu_driver.c: fix double free libvirt-fix-pci-hostdev-hotunplug-leak.patch: qemu_driver.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) Index: libvirt-fix-pci-hostdev-hotunplug-leak.patch =================================================================== RCS file: /cvs/pkgs/rpms/libvirt/devel/libvirt-fix-pci-hostdev-hotunplug-leak.patch,v retrieving revision 1.1 retrieving revision 1.2 diff -u -p -r1.1 -r1.2 --- libvirt-fix-pci-hostdev-hotunplug-leak.patch 17 Sep 2009 14:47:52 -0000 1.1 +++ libvirt-fix-pci-hostdev-hotunplug-leak.patch 17 Sep 2009 14:51:05 -0000 1.2 @@ -1,4 +1,4 @@ -From 0538387bbdb426de88b54a8c45153c5644209698 Mon Sep 17 00:00:00 2001 +From 9ef0cb152e92db1aa87d89529812328935c8535a Mon Sep 17 00:00:00 2001 From: Mark McLoughlin Date: Thu, 17 Sep 2009 15:32:45 +0100 Subject: [PATCH] Fix leak in PCI hostdev hot-unplug Index: libvirt.spec =================================================================== RCS file: /cvs/pkgs/rpms/libvirt/devel/libvirt.spec,v retrieving revision 1.179 retrieving revision 1.180 diff -u -p -r1.179 -r1.180 --- libvirt.spec 17 Sep 2009 14:47:52 -0000 1.179 +++ libvirt.spec 17 Sep 2009 14:51:05 -0000 1.180 @@ -160,7 +160,7 @@ Source: http://libvirt.org/sources/libvi # out when SELinux enforcing (bz 486112) Patch00: libvirt-0.6.4-svirt-sound.patch -# A couple of hot-unplug memory handling fixes (#523960) +# A couple of hot-unplug memory handling fixes (#523953) Patch01: libvirt-fix-net-hotunplug-double-free.patch Patch02: libvirt-fix-pci-hostdev-hotunplug-leak.patch @@ -770,7 +770,7 @@ fi %changelog * Thu Sep 17 2009 Mark McLoughlin - 0.7.1-4% -- A couple of hot-unplug memory handling fixes (#523960) +- A couple of hot-unplug memory handling fixes (#523953) * Thu Sep 17 2009 Daniel Veillard - 0.7.1-3 - disable numactl on s390[x] From markmc at fedoraproject.org Thu Sep 17 14:58:56 2009 From: markmc at fedoraproject.org (Mark McLoughlin) Date: Thu, 17 Sep 2009 14:58:56 +0000 (UTC) Subject: [fedora-virt-maint] rpms/libvirt/devel libvirt.spec,1.180,1.181 Message-ID: <20090917145856.1CFC011C00CE@cvs1.fedora.phx.redhat.com> Author: markmc Update of /cvs/pkgs/rpms/libvirt/devel In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv10728 Modified Files: libvirt.spec Log Message: Fix typo Index: libvirt.spec =================================================================== RCS file: /cvs/pkgs/rpms/libvirt/devel/libvirt.spec,v retrieving revision 1.180 retrieving revision 1.181 diff -u -p -r1.180 -r1.181 --- libvirt.spec 17 Sep 2009 14:51:05 -0000 1.180 +++ libvirt.spec 17 Sep 2009 14:58:55 -0000 1.181 @@ -769,7 +769,7 @@ fi %endif %changelog -* Thu Sep 17 2009 Mark McLoughlin - 0.7.1-4% +* Thu Sep 17 2009 Mark McLoughlin - 0.7.1-4 - A couple of hot-unplug memory handling fixes (#523953) * Thu Sep 17 2009 Daniel Veillard - 0.7.1-3 From crobinso at fedoraproject.org Thu Sep 17 18:42:27 2009 From: crobinso at fedoraproject.org (Cole Robinson) Date: Thu, 17 Sep 2009 18:42:27 +0000 (UTC) Subject: [fedora-virt-maint] rpms/virt-manager/devel state_paused.png, NONE, 1.1 state_running.png, NONE, 1.1 state_shutoff.png, NONE, 1.1 virt-manager-0.8.0-conn-close-exception.patch, NONE, 1.1 virt-manager-0.8.0-manager-ui-tweaks.patch, NONE, 1.1 virt-manager-0.8.0-stats-logging.patch, NONE, 1.1 virt-manager.spec, 1.57, 1.58 Message-ID: <20090917184227.7042811C00CE@cvs1.fedora.phx.redhat.com> Author: crobinso Update of /cvs/pkgs/rpms/virt-manager/devel In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv5881 Modified Files: virt-manager.spec Added Files: state_paused.png state_running.png state_shutoff.png virt-manager-0.8.0-conn-close-exception.patch virt-manager-0.8.0-manager-ui-tweaks.patch virt-manager-0.8.0-stats-logging.patch Log Message: Don't close libvirt connection for non-fatal errors (bz 522168) Manager UI tweaks Generate better errors if disk/net stats polling fails virt-manager-0.8.0-conn-close-exception.patch: connection.py | 10 +++++++++- engine.py | 12 ++++++++---- 2 files changed, 17 insertions(+), 5 deletions(-) --- NEW FILE virt-manager-0.8.0-conn-close-exception.patch --- # HG changeset patch # User Cole Robinson # Date 1253131339 14400 # Node ID 1c886d1863f72e7ddd5fb99050362296be6a9deb # Parent 9242a7fe76b16c6505bdd3d3d328ae8f0c56da10 Don't close connection on all libvirt errors: only if libvirtd goes away. diff -r 9242a7fe76b1 -r 1c886d1863f7 src/virtManager/connection.py --- a/src/virtManager/connection.py Wed Sep 16 16:01:54 2009 -0400 +++ b/src/virtManager/connection.py Wed Sep 16 16:02:19 2009 -0400 @@ -941,7 +941,15 @@ updateVMs = newVMs for uuid in updateVMs: - self.vms[uuid].tick(now) + vm = self.vms[uuid] + try: + vm.tick(now) + except libvirt.libvirtError, e: + if e.get_error_code() == libvirt.VIR_ERR_SYSTEM_ERROR: + raise + logging.exception("Tick for VM '%s' failed" % vm.get_name()) + except Exception, e: + logging.exception("Tick for VM '%s' failed" % vm.get_name()) if not noStatsUpdate: self._recalculate_stats(now) diff -r 9242a7fe76b1 -r 1c886d1863f7 src/virtManager/engine.py --- a/src/virtManager/engine.py Wed Sep 16 16:01:54 2009 -0400 +++ b/src/virtManager/engine.py Wed Sep 16 16:02:19 2009 -0400 @@ -199,10 +199,14 @@ self.connections[uri]["connection"].tick() except KeyboardInterrupt: raise - except: - logging.exception("Could not refresh connection %s." % uri) - logging.debug("Closing connection since refresh failed.") - self.connections[uri]["connection"].close() + except libvirt.libvirtError, e: + if e.get_error_code() == libvirt.VIR_ERR_SYSTEM_ERROR: + logging.exception("Could not refresh connection %s." % uri) + logging.debug("Closing connection since libvirtd " + "appears to have stopped.") + self.connections[uri]["connection"].close() + else: + raise return 1 def change_timer_interval(self,ignore1,ignore2,ignore3,ignore4): virt-manager-0.8.0-manager-ui-tweaks.patch: config.py | 14 +++++++++++++- domain.py | 2 ++ manager.py | 51 ++++++++++++++++++++++++--------------------------- 3 files changed, 39 insertions(+), 28 deletions(-) --- NEW FILE virt-manager-0.8.0-manager-ui-tweaks.patch --- # HG changeset patch # User Cole Robinson # Date 1253201058 14400 # Node ID a6f055361d165bea5fbb3c62ec54a820987a7dde # Parent 1c886d1863f72e7ddd5fb99050362296be6a9deb Update new VM status icons. Previous round didn't convey state very well, and looked too much like buttons. diff -r 1c886d1863f7 -r a6f055361d16 pixmaps/state_paused.png Binary file pixmaps/state_paused.png has changed diff -r 1c886d1863f7 -r a6f055361d16 pixmaps/state_running.png Binary file pixmaps/state_running.png has changed diff -r 1c886d1863f7 -r a6f055361d16 pixmaps/state_shutoff.png Binary file pixmaps/state_shutoff.png has changed diff -r 1c886d1863f7 -r a6f055361d16 src/virtManager/config.py --- a/src/virtManager/config.py Wed Sep 16 16:02:19 2009 -0400 +++ b/src/virtManager/config.py Thu Sep 17 11:24:18 2009 -0400 @@ -90,7 +90,16 @@ libvirt.VIR_DOMAIN_SHUTOFF: gtk.gdk.pixbuf_new_from_file_at_size(self.get_icon_dir() + "/state_shutoff.png", 18, 18), libvirt.VIR_DOMAIN_NOSTATE: gtk.gdk.pixbuf_new_from_file_at_size(self.get_icon_dir() + "/state_running.png", 18, 18), } - #initialize the help stuff + self.status_icons_large = { + libvirt.VIR_DOMAIN_BLOCKED: gtk.gdk.pixbuf_new_from_file_at_size(self.get_icon_dir() + "/state_running.png", 32, 32), + libvirt.VIR_DOMAIN_CRASHED: gtk.gdk.pixbuf_new_from_file_at_size(self.get_icon_dir() + "/state_crashed.png", 32, 32), + libvirt.VIR_DOMAIN_PAUSED: gtk.gdk.pixbuf_new_from_file_at_size(self.get_icon_dir() + "/state_paused.png", 32, 32), + libvirt.VIR_DOMAIN_RUNNING: gtk.gdk.pixbuf_new_from_file_at_size(self.get_icon_dir() + "/state_running.png", 32, 32), + libvirt.VIR_DOMAIN_SHUTDOWN: gtk.gdk.pixbuf_new_from_file_at_size(self.get_icon_dir() + "/state_shutoff.png", 32, 32), + libvirt.VIR_DOMAIN_SHUTOFF: gtk.gdk.pixbuf_new_from_file_at_size(self.get_icon_dir() + "/state_shutoff.png", 32, 32), + libvirt.VIR_DOMAIN_NOSTATE: gtk.gdk.pixbuf_new_from_file_at_size(self.get_icon_dir() + "/state_running.png", 32, 32), + } + props = { gnome.PARAM_APP_DATADIR : self.get_data_dir()} gnome.program_init(self.get_appname(), self.get_appversion(), \ properties=props) @@ -100,6 +109,9 @@ def get_vm_status_icon(self, state): return self.status_icons[state] + def get_vm_status_icon_large(self, state): + return self.status_icons_large[state] + def get_shutdown_icon_name(self): theme = gtk.icon_theme_get_default() if theme.has_icon("system-shutdown"): diff -r 1c886d1863f7 -r a6f055361d16 src/virtManager/domain.py --- a/src/virtManager/domain.py Wed Sep 16 16:02:19 2009 -0400 +++ b/src/virtManager/domain.py Thu Sep 17 11:24:18 2009 -0400 @@ -728,6 +728,8 @@ def run_status_icon(self): return self.config.get_vm_status_icon(self.status()) + def run_status_icon_large(self): + return self.config.get_vm_status_icon_large(self.status()) def _is_serial_console_tty_accessible(self, path): # pty serial scheme doesn't work over remote diff -r 1c886d1863f7 -r a6f055361d16 src/virtManager/manager.py --- a/src/virtManager/manager.py Wed Sep 16 16:02:19 2009 -0400 +++ b/src/virtManager/manager.py Thu Sep 17 11:24:18 2009 -0400 @@ -493,7 +493,7 @@ row.insert(ROW_NAME, vm.get_name()) row.insert(ROW_MARKUP, row[ROW_NAME]) row.insert(ROW_STATUS, vm.run_status()) - row.insert(ROW_STATUS_ICON, vm.run_status_icon()) + row.insert(ROW_STATUS_ICON, vm.run_status_icon_large()) row.insert(ROW_KEY, vm.get_uuid()) row.insert(ROW_HINT, None) row.insert(ROW_IS_CONN, False) @@ -575,7 +575,7 @@ row = self.rows[self.vm_row_key(vm)] row[ROW_STATUS] = vm.run_status() - row[ROW_STATUS_ICON] = vm.run_status_icon() + row[ROW_STATUS_ICON] = vm.run_status_icon_large() row[ROW_IS_VM_RUNNING] = vm.is_active() model.row_changed(row.path, row.iter) @@ -850,7 +850,6 @@ statusCol.add_attribute(status_icon, 'cell-background', ROW_COLOR) statusCol.add_attribute(status_icon, 'pixbuf', ROW_STATUS_ICON) statusCol.add_attribute(status_icon, 'visible', ROW_IS_VM) - statusCol.add_attribute(status_icon, 'sensitive', ROW_IS_VM_RUNNING) name_txt = gtk.CellRendererText() nameCol.pack_start(name_txt, True) # HG changeset patch # User Cole Robinson # Date 1253205341 14400 # Node ID cdbe1da3ce75a5ad06b8e07e891ac35d1b246685 # Parent a6f055361d165bea5fbb3c62ec54a820987a7dde Change VM name text arrangement in manager view. Shrink text size, add a second row that shows the VM status. Fills the display up a bit so it doesn't look so sparse. diff -r a6f055361d16 -r cdbe1da3ce75 src/virtManager/manager.py --- a/src/virtManager/manager.py Thu Sep 17 11:24:18 2009 -0400 +++ b/src/virtManager/manager.py Thu Sep 17 12:35:41 2009 -0400 @@ -486,12 +486,26 @@ else: self.emit("action-refresh-console", uri, vmuuid) + def _build_conn_markup(self, conn, row): + if conn.state == conn.STATE_DISCONNECTED: + markup = ("%s - " + "Not Connected" % row[ROW_NAME]) + else: + markup = ("%s" % row[ROW_NAME]) + return markup + + def _build_vm_markup(self, vm, row): + markup = ("%s\n" + "%s" % + (row[ROW_NAME], row[ROW_STATUS])) + return markup + def _append_vm(self, model, vm, conn): parent = self.rows[conn.get_uri()].iter row = [] row.insert(ROW_HANDLE, vm) row.insert(ROW_NAME, vm.get_name()) - row.insert(ROW_MARKUP, row[ROW_NAME]) + row.insert(ROW_MARKUP, "") row.insert(ROW_STATUS, vm.run_status()) row.insert(ROW_STATUS_ICON, vm.run_status_icon_large()) row.insert(ROW_KEY, vm.get_uuid()) @@ -502,6 +516,8 @@ row.insert(ROW_IS_VM_RUNNING, vm.is_active()) row.insert(ROW_COLOR, "white") + row[ROW_MARKUP] = self._build_vm_markup(vm, row) + _iter = model.append(parent, row) path = model.get_path(_iter) self.rows[self.vm_row_key(vm)] = model[path] @@ -512,12 +528,7 @@ row = [] row.insert(ROW_HANDLE, conn) row.insert(ROW_NAME, conn.get_pretty_desc_inactive(False)) - if conn.state == conn.STATE_DISCONNECTED: - markup = ("%s - " - "Not Connected" % row[ROW_NAME]) - else: - markup = ("%s" % row[ROW_NAME]) - row.insert(ROW_MARKUP, markup) + row.insert(ROW_MARKUP, self._build_conn_markup(conn, row)) row.insert(ROW_STATUS, ("%s" % conn.get_state_text())) row.insert(ROW_STATUS_ICON, None) @@ -589,12 +600,7 @@ model = vmlist.get_model() row = self.rows[conn.get_uri()] - if conn.state == conn.STATE_DISCONNECTED: - markup = ("%s - " - "Not Connected" % row[ROW_NAME]) - else: - markup = ("%s" % row[ROW_NAME]) - row[ROW_MARKUP] = markup + row[ROW_MARKUP] = self._build_conn_markup(conn, row) row[ROW_STATUS] = "%s" % conn.get_state_text() row[ROW_IS_CONN_CONNECTED] = conn.state != conn.STATE_DISCONNECTED # HG changeset patch # User Cole Robinson # Date 1253201111 14400 # Node ID 739a6876af4692d6f86d8813f6dd3aa046bf6a8b # Parent cdbe1da3ce75a5ad06b8e07e891ac35d1b246685 Drop row coloring for managed connection rows. Looks kind of funky with lots of dark colored rows for a user with multiple connections. diff -r cdbe1da3ce75 -r 739a6876af46 src/virtManager/manager.py --- a/src/virtManager/manager.py Thu Sep 17 12:35:41 2009 -0400 +++ b/src/virtManager/manager.py Thu Sep 17 11:25:11 2009 -0400 @@ -49,8 +49,6 @@ ROW_IS_CONN_CONNECTED = 8 ROW_IS_VM = 9 ROW_IS_VM_RUNNING = 10 -ROW_COLOR = 11 -ROW_HEIGHT = 12 # Columns in the tree view COL_NAME = 0 @@ -514,7 +512,6 @@ row.insert(ROW_IS_CONN_CONNECTED, True) row.insert(ROW_IS_VM, True) row.insert(ROW_IS_VM_RUNNING, vm.is_active()) - row.insert(ROW_COLOR, "white") row[ROW_MARKUP] = self._build_vm_markup(vm, row) @@ -539,7 +536,6 @@ conn.state != conn.STATE_DISCONNECTED) row.insert(ROW_IS_VM, False) row.insert(ROW_IS_VM_RUNNING, False) - row.insert(ROW_COLOR, "#d4d2d2") _iter = model.append(None, row) path = model.get_path(_iter) @@ -823,9 +819,9 @@ vmlist = self.window.get_widget("vm-list") # Handle, name, markup, status, status icon, key/uuid, hint, is conn, - # is conn connected, is vm, is vm running, color + # is conn connected, is vm, is vm running model = gtk.TreeStore(object, str, str, str, gtk.gdk.Pixbuf, str, str, - bool, bool, bool, bool, str) + bool, bool, bool, bool) vmlist.set_model(model) util.tooltip_wrapper(vmlist, ROW_HINT, "set_tooltip_column") @@ -834,7 +830,7 @@ nameCol = gtk.TreeViewColumn(_("Name")) nameCol.set_expand(True) - nameCol.set_spacing(12) + nameCol.set_spacing(6) cpuUsageCol = gtk.TreeViewColumn(_("CPU usage")) cpuUsageCol.set_min_width(150) @@ -853,13 +849,11 @@ status_icon = gtk.CellRendererPixbuf() statusCol.pack_start(status_icon, False) - statusCol.add_attribute(status_icon, 'cell-background', ROW_COLOR) statusCol.add_attribute(status_icon, 'pixbuf', ROW_STATUS_ICON) statusCol.add_attribute(status_icon, 'visible', ROW_IS_VM) name_txt = gtk.CellRendererText() nameCol.pack_start(name_txt, True) - nameCol.add_attribute(name_txt, 'cell-background', ROW_COLOR) nameCol.add_attribute(name_txt, 'markup', ROW_MARKUP) nameCol.set_sort_column_id(VMLIST_SORT_NAME) @@ -870,9 +864,7 @@ cpuUsage_img.set_property("reversed", True) cpuUsageCol.pack_start(cpuUsage_img, True) cpuUsageCol.pack_start(cpuUsage_txt, False) - cpuUsageCol.add_attribute(cpuUsage_img, 'cell-background', ROW_COLOR) cpuUsageCol.add_attribute(cpuUsage_img, 'visible', ROW_IS_VM) - cpuUsageCol.add_attribute(cpuUsage_txt, 'cell-background', ROW_COLOR) cpuUsageCol.add_attribute(cpuUsage_txt, 'visible', ROW_IS_CONN) cpuUsageCol.set_sort_column_id(VMLIST_SORT_STATS) self.stats_sparkline = cpuUsage_img virt-manager-0.8.0-stats-logging.patch: domain.py | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) --- NEW FILE virt-manager-0.8.0-stats-logging.patch --- # HG changeset patch # User Cole Robinson # Date 1253131314 14400 # Node ID 9242a7fe76b16c6505bdd3d3d328ae8f0c56da10 # Parent 6aa2dc9ada0c43e19680af5b922cd643e35602d0 Better logging and error avoidance with net/disk stats routines. diff -r 6aa2dc9ada0c -r 9242a7fe76b1 src/virtManager/domain.py --- a/src/virtManager/domain.py Wed Sep 16 16:00:47 2009 -0400 +++ b/src/virtManager/domain.py Wed Sep 16 16:01:54 2009 -0400 @@ -337,8 +337,12 @@ return rx, tx for netdev in self.get_network_devices(refresh_if_necc=False): + dev = netdev[4] + if not dev: + continue + try: - io = self.vm.interfaceStats(netdev[4]) + io = self.vm.interfaceStats(dev) if io: rx += io[0] tx += io[4] @@ -347,7 +351,9 @@ logging.debug("Net stats not supported: %s" % err) self._stats_net_supported = False else: - logging.error("Error reading net stats: %s" % err) + logging.error("Error reading net stats for " + "'%s' dev '%s': %s" % + (self.get_name(), dev, err)) return rx, tx def _sample_disk_io_dummy(self): @@ -360,8 +366,12 @@ return rd, wr for disk in self.get_disk_devices(refresh_if_necc=False): + dev = disk[2] + if not dev: + continue + try: - io = self.vm.blockStats(disk[2]) + io = self.vm.blockStats(dev) if io: rd += io[1] wr += io[3] @@ -370,7 +380,9 @@ logging.debug("Disk stats not supported: %s" % err) self._stats_disk_supported = False else: - logging.error("Error reading disk stats: %s" % err) + logging.error("Error reading disk stats for " + "'%s' dev '%s': %s" % + (self.get_name(), dev, err)) return rd, wr def _get_cur_rate(self, what): Index: virt-manager.spec =================================================================== RCS file: /cvs/pkgs/rpms/virt-manager/devel/virt-manager.spec,v retrieving revision 1.57 retrieving revision 1.58 diff -u -p -r1.57 -r1.58 --- virt-manager.spec 14 Sep 2009 15:05:51 -0000 1.57 +++ virt-manager.spec 17 Sep 2009 18:42:27 -0000 1.58 @@ -8,13 +8,16 @@ Name: virt-manager Version: 0.8.0 -Release: 3%{_extra_release} +Release: 4%{_extra_release} Summary: Virtual Machine Manager Group: Applications/Emulators License: GPLv2+ URL: http://virt-manager.org/ Source0: http://virt-manager.org/download/sources/%{name}/%{name}-%{version}.tar.gz +Source1: state_paused.png +Source2: state_running.png +Source3: state_shutoff.png BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildArch: noarch # Fix disk XML mangling via connect/eject cdrom (bz 516116) @@ -27,6 +30,12 @@ Patch3: %{name}-%{version}-newvm-storage Patch4: %{name}-%{version}-addhw-errmsg-typo.patch # Fixes for pylint script to return nicer results on F11/F12 Patch5: %{name}-%{version}-pylint-tweak.patch +# Don't close libvirt connection for non-fatal errors (bz 522168) +Patch6: /home/boston/crobinso/virt-manager-0.8.0-conn-close-exception.patch +# Manager UI tweaks +Patch7: /home/boston/crobinso/virt-manager-0.8.0-manager-ui-tweaks.patch +# Generate better errors is disk/net stats polling fails +Patch8: /home/boston/crobinso/virt-manager-0.8.0-stats-logging.patch # These two are just the oldest version tested Requires: pygtk2 >= 1.99.12-6 @@ -91,11 +100,17 @@ management API. %prep %setup -q +cp %{SOURCE1} pixmaps +cp %{SOURCE2} pixmaps +cp %{SOURCE3} pixmaps %patch1 -p1 %patch2 -p1 %patch3 -p1 %patch4 -p1 %patch5 -p1 +%patch6 -p1 +%patch7 -p1 +%patch8 -p1 %build %configure @@ -169,6 +184,11 @@ fi %{_datadir}/dbus-1/services/%{name}.service %changelog +* Thu Sep 17 2009 Cole Robinson - 0.8.0-4.fc12 +- Don't close libvirt connection for non-fatal errors (bz 522168) +- Manager UI tweaks +- Generate better errors if disk/net stats polling fails + * Mon Sep 14 2009 Cole Robinson - 0.8.0-3.fc12 - Fix disk XML mangling via connect/eject cdrom (bz 516116) - Fix delete button sensitivity (bz 518536) From crobinso at fedoraproject.org Thu Sep 17 20:44:02 2009 From: crobinso at fedoraproject.org (Cole Robinson) Date: Thu, 17 Sep 2009 20:44:02 +0000 (UTC) Subject: [fedora-virt-maint] rpms/virt-manager/devel virt-manager.spec, 1.58, 1.59 Message-ID: <20090917204402.48F2411C00CE@cvs1.fedora.phx.redhat.com> Author: crobinso Update of /cvs/pkgs/rpms/virt-manager/devel In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv30722 Modified Files: virt-manager.spec Log Message: Fix up spec file patch mangling. Index: virt-manager.spec =================================================================== RCS file: /cvs/pkgs/rpms/virt-manager/devel/virt-manager.spec,v retrieving revision 1.58 retrieving revision 1.59 diff -u -p -r1.58 -r1.59 --- virt-manager.spec 17 Sep 2009 18:42:27 -0000 1.58 +++ virt-manager.spec 17 Sep 2009 20:44:01 -0000 1.59 @@ -31,11 +31,11 @@ Patch4: %{name}-%{version}-addhw-errmsg- # Fixes for pylint script to return nicer results on F11/F12 Patch5: %{name}-%{version}-pylint-tweak.patch # Don't close libvirt connection for non-fatal errors (bz 522168) -Patch6: /home/boston/crobinso/virt-manager-0.8.0-conn-close-exception.patch +Patch6: %{name}-%{version}-conn-close-exception.patch # Manager UI tweaks -Patch7: /home/boston/crobinso/virt-manager-0.8.0-manager-ui-tweaks.patch +Patch7: %{name}-%{version}-manager-ui-tweaks.patch # Generate better errors is disk/net stats polling fails -Patch8: /home/boston/crobinso/virt-manager-0.8.0-stats-logging.patch +Patch8: %{name}-%{version}-stats-logging.patch # These two are just the oldest version tested Requires: pygtk2 >= 1.99.12-6 From crobinso at fedoraproject.org Fri Sep 18 14:50:46 2009 From: crobinso at fedoraproject.org (Cole Robinson) Date: Fri, 18 Sep 2009 14:50:46 +0000 (UTC) Subject: [fedora-virt-maint] rpms/virt-manager/F-11 virt-manager-0.7.0-czech-typo.patch, NONE, 1.1 virt-manager-0.7.0-fix-memory-interaction.patch, NONE, 1.1 virt-manager-0.7.0-fix-sparse-knob.patch, NONE, 1.1 virt-manager-0.7.0-iso-storage-browser.patch, NONE, 1.1 virt-manager-0.7.0-migrate-fixes.patch, NONE, 1.1 virt-manager-0.7.0-pylint-script.patch, NONE, 1.1 virt-manager-0.7.0-vcpu-mem-persistent.patch, NONE, 1.1 virt-manager.spec, 1.52, 1.53 Message-ID: <20090918145046.453CD11C01EA@cvs1.fedora.phx.redhat.com> Author: crobinso Update of /cvs/pkgs/rpms/virt-manager/F-11 In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv18100 Modified Files: virt-manager.spec Added Files: virt-manager-0.7.0-czech-typo.patch virt-manager-0.7.0-fix-memory-interaction.patch virt-manager-0.7.0-fix-sparse-knob.patch virt-manager-0.7.0-iso-storage-browser.patch virt-manager-0.7.0-migrate-fixes.patch virt-manager-0.7.0-pylint-script.patch virt-manager-0.7.0-vcpu-mem-persistent.patch Log Message: Fix migration for qemu/kvm guests (bz 517548) Fix sparse allocation confusion (bz 504605) Czech translation typo (bz 504385) Use storage browser for iso installs (bz 504326) Fix max/current memory spin button interaction (bz 503786) Make memory and vcpu changes unconditionally persistent (bz 503784) Add pylint script virt-manager-0.7.0-czech-typo.patch: cs.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- NEW FILE virt-manager-0.7.0-czech-typo.patch --- diff -rup virt-manager-0.7.0/po/cs.po new/po/cs.po --- virt-manager-0.7.0/po/cs.po 2009-09-17 15:24:54.852374000 -0400 +++ new/po/cs.po 2009-09-17 15:22:11.927742000 -0400 @@ -1809,7 +1809,7 @@ msgstr "Vy?adov?n typ hardware" #: ../src/vmm-add-hardware.glade.h:46 msgid "Hardware type:" -msgstr "Tzp hardware" +msgstr "Typ hardware" #: ../src/vmm-add-hardware.glade.h:47 ../src/vmm-details.glade.h:44 msgid "Keymap:" virt-manager-0.7.0-fix-memory-interaction.patch: .vmm-details.glade.rej.swp |only virtManager/details.py | 69 +++++++++++++++++++++++++++--------------- virtManager/details.py.orig | 72 ++++++++++++++++++++++++++++++++++---------- vmm-details.glade | 9 ++--- vmm-details.glade.orig |only vmm-details.glade.rej |only 6 files changed, 106 insertions(+), 44 deletions(-) --- NEW FILE virt-manager-0.7.0-fix-memory-interaction.patch --- diff -rup old/src/virtManager/details.py virt-manager-0.7.0/src/virtManager/details.py --- old/src/virtManager/details.py 2009-09-17 17:23:42.640307000 -0400 +++ virt-manager-0.7.0/src/virtManager/details.py 2009-09-17 17:24:09.098148000 -0400 @@ -960,11 +960,12 @@ class vmmDetails(gobject.GObject): curmem = self.window.get_widget("config-memory").get_adjustment() maxmem = self.window.get_widget("config-maxmem").get_adjustment() - if self.window.get_widget("config-memory-apply").get_property("sensitive"): - if curmem.value > maxmem.value: - curmem.value = maxmem.value - curmem.upper = maxmem.value + memval = self.config_get_memory() + maxval = self.config_get_maxmem() + if maxval < memval: + maxmem.value = memval + maxmem.lower = memval else: curmem.value = int(round(self.vm.get_memory()/1024.0)) maxmem.value = int(round(self.vm.maximum_memory()/1024.0)) @@ -1504,54 +1505,74 @@ class vmmDetails(gobject.GObject): self.vm.set_vcpu_count(vcpus) self.window.get_widget("config-vcpus-apply").set_sensitive(False) - def config_memory_changed(self, src): - self.window.get_widget("config-memory-apply").set_sensitive(True) + def config_get_maxmem(self): + maxadj = self.window.get_widget("config-maxmem").get_adjustment() + txtmax = self.window.get_widget("config-maxmem").get_text() + try: + maxmem = int(txtmax) + except: + maxmem = maxadj.value + return maxmem + + def config_get_memory(self): + memadj = self.window.get_widget("config-memory").get_adjustment() + txtmem = self.window.get_widget("config-memory").get_text() + try: + mem = int(txtmem) + except: + mem = memadj.value + return mem def config_maxmem_changed(self, src): self.window.get_widget("config-memory-apply").set_sensitive(True) - memory = self.window.get_widget("config-maxmem").get_adjustment().value - memadj = self.window.get_widget("config-memory").get_adjustment() - memadj.upper = memory - if memadj.value > memory: - memadj.value = memory + + def config_memory_changed(self, src): + self.window.get_widget("config-memory-apply").set_sensitive(True) + + maxadj = self.window.get_widget("config-maxmem").get_adjustment() + + mem = self.config_get_memory() + if maxadj.value < mem: + maxadj.value = mem + maxadj.lower = mem def config_memory_apply(self, src): self.refresh_config_memory() exc = None curmem = None - maxmem = self.window.get_widget("config-maxmem").get_adjustment() + maxmem = self.config_get_maxmem() if self.window.get_widget("config-memory").get_property("sensitive"): - curmem = self.window.get_widget("config-memory").get_adjustment() + curmem = self.config_get_memory() - logging.info("Setting max-memory for " + self.vm.get_name() + \ - " to " + str(maxmem.value)) + logging.info("Setting max-memory for " + self.vm.get_name() + + " to " + str(maxmem)) actual_cur = self.vm.get_memory() if curmem is not None: - logging.info("Setting memory for " + self.vm.get_name() + \ - " to " + str(curmem.value)) - if (maxmem.value * 1024) < actual_cur: + logging.info("Setting memory for " + self.vm.get_name() + + " to " + str(curmem)) + if (maxmem * 1024) < actual_cur: # Set current first to avoid error try: - self.vm.set_memory(curmem.value * 1024) - self.vm.set_max_memory(maxmem.value * 1024) + self.vm.set_memory(curmem * 1024) + self.vm.set_max_memory(maxmem * 1024) except Exception, e: exc = e else: try: - self.vm.set_max_memory(maxmem.value * 1024) - self.vm.set_memory(curmem.value * 1024) + self.vm.set_max_memory(maxmem * 1024) + self.vm.set_memory(curmem * 1024) except Exception, e: exc = e else: try: - self.vm.set_max_memory(maxmem.value * 1024) + self.vm.set_max_memory(maxmem * 1024) except Exception, e: exc = e if exc: - self.err.show_err(_("Error changing memory values: %s" % str(e)),\ + self.err.show_err(_("Error changing memory values: %s" % str(e)), "".join(traceback.format_exc())) else: self.window.get_widget("config-memory-apply").set_sensitive(False) diff -rup old/src/virtManager/details.py.orig virt-manager-0.7.0/src/virtManager/details.py.orig --- old/src/virtManager/details.py.orig 2009-09-17 17:23:42.778305000 -0400 +++ virt-manager-0.7.0/src/virtManager/details.py.orig 2009-09-17 17:24:08.925149000 -0400 @@ -501,7 +501,7 @@ class vmmDetails(gobject.GObject): self.update_scaling() def auth_login(self, ignore): - self.set_password() + self.set_credentials() self.activate_viewer_page() def toggle_toolbar(self, src): @@ -1309,23 +1309,44 @@ class vmmDetails(gobject.GObject): traceback.format_exc (stacktrace)) logging.error(details) - def set_password(self, src=None): - txt = self.window.get_widget("console-auth-password") - self.vncViewer.set_credential(gtkvnc.CREDENTIAL_PASSWORD, - txt.get_text()) + def set_credentials(self, src=None): + passwd = self.window.get_widget("console-auth-password") + if passwd.flags() & gtk.VISIBLE: + self.vncViewer.set_credential(gtkvnc.CREDENTIAL_PASSWORD, + passwd.get_text()) + username = self.window.get_widget("console-auth-username") + if username.flags() & gtk.VISIBLE: + self.vncViewer.set_credential(gtkvnc.CREDENTIAL_USERNAME, + username.get_text()) + + if self.window.get_widget("console-auth-remember").get_active(): + self.config.set_console_password(self.vm, passwd.get_text(), username.get_text()) def _vnc_auth_credential(self, src, credList): for i in range(len(credList)): + if credList[i] not in (gtkvnc.CREDENTIAL_PASSWORD, gtkvnc.CREDENTIAL_USERNAME, gtkvnc.CREDENTIAL_CLIENTNAME): + self.err.show_err(summary=_("Unable to provide requested credentials to the VNC server"), + details=_("The credential type %s is not supported") % (str(credList[i])), + title=_("Unable to authenticate"), + async=True) + self.vncViewerRetriesScheduled = 10 + self.vncViewer.close() + self.activate_unavailable_page(_("Unsupported console authentication type")) + return + + withUsername = False + withPassword = False + for i in range(len(credList)): logging.debug("Got credential request %s", str(credList[i])) if credList[i] == gtkvnc.CREDENTIAL_PASSWORD: - self.activate_auth_page() + withPassword = True + elif credList[i] == gtkvnc.CREDENTIAL_USERNAME: + withUsername = True elif credList[i] == gtkvnc.CREDENTIAL_CLIENTNAME: self.vncViewer.set_credential(credList[i], "libvirt-vnc") - else: - # Force it to stop re-trying - self.vncViewerRetriesScheduled = 10 - self.vncViewer.close() - self.activate_unavailable_page(_("Unsupported console authentication type")) + + if withUsername or withPassword: + self.activate_auth_page(withPassword, withUsername) def activate_unavailable_page(self, msg): self.window.get_widget("console-pages").set_current_page(PAGE_UNAVAILABLE) @@ -1336,20 +1357,41 @@ class vmmDetails(gobject.GObject): self.window.get_widget("console-pages").set_current_page(PAGE_SCREENSHOT) self.window.get_widget("details-menu-vm-screenshot").set_sensitive(True) - def activate_auth_page(self): - pw = self.config.get_console_password(self.vm) + def activate_auth_page(self, withPassword=True, withUsername=False): + (pw, username) = self.config.get_console_password(self.vm) self.window.get_widget("details-menu-vm-screenshot").set_sensitive(False) + + if withPassword: + self.window.get_widget("console-auth-password").show() + self.window.get_widget("label-auth-password").show() + else: + self.window.get_widget("console-auth-password").hide() + self.window.get_widget("label-auth-password").hide() + + if withUsername: + self.window.get_widget("console-auth-username").show() + self.window.get_widget("label-auth-username").show() + else: + self.window.get_widget("console-auth-username").hide() + self.window.get_widget("label-auth-username").hide() + + self.window.get_widget("console-auth-username").set_text(username) self.window.get_widget("console-auth-password").set_text(pw) - self.window.get_widget("console-auth-password").grab_focus() + if self.config.has_keyring(): self.window.get_widget("console-auth-remember").set_sensitive(True) - if pw != None and pw != "": + if pw != "" or username != "": self.window.get_widget("console-auth-remember").set_active(True) else: self.window.get_widget("console-auth-remember").set_active(False) else: self.window.get_widget("console-auth-remember").set_sensitive(False) self.window.get_widget("console-pages").set_current_page(PAGE_AUTHENTICATE) + if withUsername: + self.window.get_widget("console-auth-username").grab_focus() + else: + self.window.get_widget("console-auth-password").grab_focus() + def activate_viewer_page(self): self.window.get_widget("console-pages").set_current_page(PAGE_VNCVIEWER) diff -rup old/src/vmm-details.glade virt-manager-0.7.0/src/vmm-details.glade --- old/src/vmm-details.glade 2009-09-17 17:23:42.448302000 -0400 +++ virt-manager-0.7.0/src/vmm-details.glade 2009-09-17 17:25:42.970347000 -0400 @@ -1436,7 +1436,6 @@ I/O: 2 - True @@ -1572,8 +1571,8 @@ I/O: True True - 50 50 32000 5 10 0 - 1 + 50 50 32000 1 25 0 + 2 True GTK_UPDATE_IF_VALID @@ -1610,8 +1609,8 @@ I/O: True True - 50 50 32000 5 10 0 - 1 + 50 50 32000 1 25 0 + 2 True GTK_UPDATE_IF_VALID Only in virt-manager-0.7.0/src: vmm-details.glade.orig Only in virt-manager-0.7.0/src: vmm-details.glade.rej Only in virt-manager-0.7.0/src: .vmm-details.glade.rej.swp virt-manager-0.7.0-fix-sparse-knob.patch: create.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) --- NEW FILE virt-manager-0.7.0-fix-sparse-knob.patch --- # HG changeset patch # User Cole Robinson # Date 1245180678 14400 # Node ID bd26943d4dadf3be993c44ff8401c6426fd94488 # Parent f9ad1d0c29d08bbb0ed94df9878d666904d018a2 Correctly handle non sparse request in VM wizard. (Mark McLoughlin) We currently have it backwards, so a sparse request actually asks for nonsparse. We didn't see this much, since until recently virtinst wasn't allowing nonsparse volume allocation. diff -r f9ad1d0c29d0 -r bd26943d4dad src/virtManager/create.py --- a/src/virtManager/create.py Thu Jun 04 16:28:40 2009 -0400 +++ b/src/virtManager/create.py Tue Jun 16 15:31:18 2009 -0400 @@ -820,14 +820,14 @@ def get_storage_info(self): path = None size = self.window.get_widget("config-storage-size").get_value() - nosparse = self.window.get_widget("config-storage-nosparse").get_active() + sparse = not self.window.get_widget("config-storage-nosparse").get_active() if self.window.get_widget("config-storage-create").get_active(): path = self.get_default_path(self.guest.name) logging.debug("Default storage path is: %s" % path) else: path = self.window.get_widget("config-storage-entry").get_text() - return (path, size, nosparse) + return (path, size, sparse) def get_default_path(self, name): path = "" virt-manager-0.7.0-iso-storage-browser.patch: .create.py.rej.swp |only choosecd.py | 25 +++++++++++++++++-------- create.py | 44 +++++++++++++++++--------------------------- create.py.orig | 4 ++-- create.py.rej |only storagebrowse.py | 6 ++++++ 6 files changed, 42 insertions(+), 37 deletions(-) --- NEW FILE virt-manager-0.7.0-iso-storage-browser.patch --- diff -rup old/src/virtManager/choosecd.py virt-manager-0.7.0/src/virtManager/choosecd.py --- old/src/virtManager/choosecd.py 2009-09-17 17:12:16.317469000 -0400 +++ virt-manager-0.7.0/src/virtManager/choosecd.py 2009-09-17 17:12:26.626644000 -0400 @@ -23,8 +23,8 @@ import logging import virtinst -from virtManager import util from virtManager.opticalhelper import vmmOpticalDriveHelper +from virtManager.storagebrowse import vmmStorageBrowser from virtManager.error import vmmErrorDialog class vmmChooseCD(gobject.GObject): @@ -39,10 +39,13 @@ class vmmChooseCD(gobject.GObject): 0, gtk.MESSAGE_ERROR, gtk.BUTTONS_CLOSE, _("Unexpected Error"), _("An unexpected error occurred")) + self.topwin = self.window.get_widget("vmm-choose-cd") + self.topwin.hide() + self.config = config - self.window.get_widget("vmm-choose-cd").hide() self.dev_id_info = dev_id_info self.conn = connection + self.storage_browser = None self.window.signal_autoconnect({ "on_media_toggled": self.media_toggled, @@ -130,9 +133,7 @@ class vmmChooseCD(gobject.GObject): pass def browse_fv_iso_location(self, ignore1=None, ignore2=None): - filename = self._browse_file(_("Locate ISO Image")) - if filename != None: - self.window.get_widget("iso-path").set_text(filename) + self._browse_file(_("Locate ISO Image")) def populate_opt_media(self): try: @@ -143,9 +144,17 @@ class vmmChooseCD(gobject.GObject): logging.error("Unable to create optical-helper widget: '%s'", e) self.window.get_widget("physical-media").set_sensitive(False) - def _browse_file(self, dialog_name, folder=None, _type=None): - return util.browse_local(self.window.get_widget("vmm-choose-cd"), - dialog_name, folder, _type) + def set_storage_path(self, src, path): + self.window.get_widget("iso-path").set_text(path) + def _browse_file(self, dialog_name): + if self.storage_browser == None: + self.storage_browser = vmmStorageBrowser(self.config, self.conn) + #self.topwin) + self.storage_browser.connect("storage-browse-finish", + self.set_storage_path) + self.storage_browser.local_args = { "dialog_name": dialog_name } + self.storage_browser.show(self.conn) + return None gobject.type_register(vmmChooseCD) diff -rup old/src/virtManager/create.py virt-manager-0.7.0/src/virtManager/create.py --- old/src/virtManager/create.py 2009-09-17 17:12:16.371469000 -0400 +++ virt-manager-0.7.0/src/virtManager/create.py 2009-09-17 17:14:56.395189000 -0400 @@ -997,18 +997,16 @@ class vmmCreate(gobject.GObject): nodetect_label.show() def browse_iso(self, ignore1=None, ignore2=None): - f = self._browse_file(_("Locate ISO Image"), is_media=True) - if f != None: - self.window.get_widget("install-local-entry").set_text(f) + self._browse_file(_("Locate ISO Image"), + self.set_iso_storage_path) self.window.get_widget("install-local-entry").activate() def toggle_enable_storage(self, src): self.window.get_widget("config-storage-box").set_sensitive(src.get_active()) def browse_storage(self, ignore1): - f = self._browse_file(_("Locate existing storage")) - if f != None: - self.window.get_widget("config-storage-entry").set_text(f) + self._browse_file(_("Locate existing storage"), + self.set_disk_storage_path) def toggle_storage_select(self, src): act = src.get_active() @@ -1017,13 +1015,11 @@ class vmmCreate(gobject.GObject): def toggle_macaddr(self, src): self.window.get_widget("config-macaddr").set_sensitive(src.get_active()) - def set_storage_path(self, src, path): - notebook = self.window.get_widget("create-pages") - curpage = notebook.get_current_page() - if curpage == PAGE_INSTALL: - self.window.get_widget("install-local-entry").set_text(path) - elif curpage == PAGE_STORAGE: - self.window.get_widget("config-storage-entry").set_text(path) + def set_iso_storage_path(self, ignore, path): + self.window.get_widget("install-local-entry").set_text(path) + + def set_disk_storage_path(self, ignore, path): + self.window.get_widget("config-storage-entry").set_text(path) # Navigation methods def set_install_page(self): @@ -1655,20 +1651,14 @@ class vmmCreate(gobject.GObject): logging.exception("Error detecting distro.") self.detectedDistro = (None, None) - def _browse_file(self, dialog_name, folder=None, is_media=False): - - if self.conn.is_remote() or not is_media: - if self.storage_browser == None: - self.storage_browser = vmmStorageBrowser(self.config, - self.conn) - self.storage_browser.connect("storage-browse-finish", - self.set_storage_path) - self.storage_browser.local_args = { "dialog_name": dialog_name, - "start_folder": folder} - self.storage_browser.show(self.conn) - return None - - return util.browse_local(self.topwin, dialog_name, folder) + def _browse_file(self, dialog_name, callback, folder=None): + if self.storage_browser == None: + self.storage_browser = vmmStorageBrowser(self.config, self.conn) + + self.storage_browser.set_finish_cb(callback) + self.storage_browser.local_args = { "dialog_name": dialog_name, + "start_folder": folder} + self.storage_browser.show(self.conn) def show_help(self, ignore): # No help available yet. diff -rup old/src/virtManager/create.py.orig virt-manager-0.7.0/src/virtManager/create.py.orig --- old/src/virtManager/create.py.orig 2009-09-17 17:12:16.548472000 -0400 +++ virt-manager-0.7.0/src/virtManager/create.py.orig 2009-09-17 17:12:26.597639000 -0400 @@ -822,14 +822,14 @@ class vmmCreate(gobject.GObject): def get_storage_info(self): path = None size = self.window.get_widget("config-storage-size").get_value() - nosparse = self.window.get_widget("config-storage-nosparse").get_active() + sparse = not self.window.get_widget("config-storage-nosparse").get_active() if self.window.get_widget("config-storage-create").get_active(): path = self.get_default_path(self.guest.name) logging.debug("Default storage path is: %s" % path) else: path = self.window.get_widget("config-storage-entry").get_text() - return (path, size, nosparse) + return (path, size, sparse) def get_default_path(self, name): path = "" Only in virt-manager-0.7.0/src/virtManager: create.py.rej Only in virt-manager-0.7.0/src/virtManager: .create.py.rej.swp diff -rup old/src/virtManager/storagebrowse.py virt-manager-0.7.0/src/virtManager/storagebrowse.py --- old/src/virtManager/storagebrowse.py 2009-09-17 17:12:16.503470000 -0400 +++ virt-manager-0.7.0/src/virtManager/storagebrowse.py 2009-09-17 17:12:26.650639000 -0400 @@ -47,6 +47,7 @@ class vmmStorageBrowser(gobject.GObject) self.config = config self.conn = conn self.conn_signal_ids = [] + self.finish_cb_id = None self.topwin = self.window.get_widget("vmm-storage-browse") self.err = vmmErrorDialog(self.topwin, @@ -83,6 +84,11 @@ class vmmStorageBrowser(gobject.GObject) self.addvol.close() return 1 + def set_finish_cb(self, callback): + if self.finish_cb_id: + self.disconnect(self.finish_cb_id) + self.finish_cb_id = self.connect("storage-browse-finish", callback) + def set_initial_state(self): pool_list = self.window.get_widget("pool-list") virtManager.host.init_pool_list(pool_list, self.pool_selected) virt-manager-0.7.0-migrate-fixes.patch: domain.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) --- NEW FILE virt-manager-0.7.0-migrate-fixes.patch --- # HG changeset patch # User Cole Robinson # Date 1236630113 14400 # Node ID 6126a50801deafa155b17b66cfc3008ffe584b24 # Parent 3f37d0519b1750666e88e7eaef8d5dfaafc34237 Fix conn uri lookup for domain migration. diff -rup virt-manager-0.6.1/src/virtManager/domain.py new/src/virtManager/domain.py --- virt-manager-0.6.1/src/virtManager/domain.py 2009-09-13 20:25:12.000000000 -0400 +++ new/src/virtManager/domain.py 2009-09-13 20:24:29.000000000 -0400 @@ -1293,11 +1293,15 @@ class vmmDomain(gobject.GObject): else: self._disk_io = self._sample_disk_io_dummy - - def migrate(self, dictcon): + def migrate(self, destconn): flags = 0 if self.lastStatus == libvirt.VIR_DOMAIN_RUNNING: flags = libvirt.VIR_MIGRATE_LIVE - self.vm.migrate(self.connection.vmm, flags, None, dictcon.get_short_hostname(), 0) + + newxml = self.get_xml() + + self.vm.migrate(destconn.vmm, flags, None, None, 0) + + destconn.define_domain(newxml) gobject.type_register(vmmDomain) virt-manager-0.7.0-pylint-script.patch: Makefile.am | 2 tests/Makefile.am | 4 + tests/pylint-virt-manager.sh | 115 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 120 insertions(+), 1 deletion(-) --- NEW FILE virt-manager-0.7.0-pylint-script.patch --- diff -rupN virt-manager-0.6.1/tests/Makefile.am new/tests/Makefile.am --- virt-manager-0.6.1/tests/Makefile.am 1969-12-31 19:00:00.000000000 -0500 +++ new/tests/Makefile.am 2009-03-18 13:05:51.516847000 -0400 @@ -0,0 +1,4 @@ +testsdir = $(pkgdatadir)/tests +tests_DATA = $(wildcard $(srcdir)/*.sh) + +EXTRA_DIST = $(tests_DATA) diff -rupN virt-manager-0.6.1/tests/pylint-virt-manager.sh new/tests/pylint-virt-manager.sh --- virt-manager-0.6.1/tests/pylint-virt-manager.sh 1969-12-31 19:00:00.000000000 -0500 +++ new/tests/pylint-virt-manager.sh 2009-03-18 13:05:51.513848000 -0400 @@ -0,0 +1,115 @@ +#!/bin/sh + +# pylint doesn't work well with a file named xxx.py.xxx +cp src/virt-manager.py.in src/_virt-manager + +cd src || exit 1 + +IGNOREFILES="IPy.py" +FILES="virtManager/ _virt-manager" + +# Deliberately ignored warnings: +# Don't print pylint config warning +NO_PYL_CONFIG=".*No config file found.*" + +# The gettext function is installed in the builtin namespace +GETTEXT_VAR="Undefined variable '_'" + +# These all work fine and are legit, just false positives +GOBJECT_VAR="has no '__gobject_init__' member" +EMIT_VAR="has no 'emit' member" +ERROR_VBOX="vmmErrorDialog.__init__.*Class 'vbox' has no 'pack_start' member" +EXCEPTHOOK="no '__excepthook__' member" +CONNECT_VAR="no 'connect' member" +DISCONNECT_VAR="no 'disconnect' member" + +# os._exit is needed for forked processes. +OS_EXIT="protected member _exit of a client class" + +# Avahi API may have requirements on callback argument names, so ignore these +# warnings +BTYPE_LIST="(vmmConnect.add_service|vmmConnect.remove_service|vmmConnect.add_conn_to_list)" +BUILTIN_TYPE="${BTYPE_LIST}.*Redefining built-in 'type'" + + +DMSG="" +addmsg() { + DMSG="${DMSG},$1" +} + +addchecker() { + DCHECKERS="${DCHECKERS},$1" +} + +# Disabled unwanted messages +addmsg "C0103" # C0103: Name doesn't match some style regex +addmsg "C0111" # C0111: No docstring +addmsg "C0301" # C0301: Line too long +addmsg "C0302" # C0302: Too many lines in module +addmsg "C0324" # C0324: *Comma not followed by a space* +addmsg "R0201" # R0201: Method could be a function +addmsg "W0105" # W0105: String statement has no effect +addmsg "W0141" # W0141: Complaining about 'map' and 'filter' +addmsg "W0142" # W0142: *Used * or ** magic* +addmsg "W0403" # W0403: Relative imports +addmsg "W0603" # W0603: Using the global statement +addmsg "W0702" # W0703: No exception type specified +addmsg "W0703" # W0703: Catch 'Exception' +addmsg "W0704" # W0704: Exception doesn't do anything + +# Potentially useful messages, disabled for now +addmsg "C0322" # C0322: *Operator not preceded by a space* +addmsg "C0323" # C0323: *Operator not followed by a space* +addmsg "W0201" # W0201: Defined outside __init__ +addmsg "W0511" # W0511: FIXME and XXX: messages +addmsg "W0613" # W0613: Unused arguments + +# Disabled Checkers: +addchecker "Design" # Things like "Too many func arguments", + # "Too man public methods" +addchecker "Similarities" # Finds duplicate code (enable this later?) + +# May want to enable this in the future +SHOW_REPORT="n" + +AWK=awk +[ `uname -s` = 'SunOS' ] && AWK=nawk + +pylint --ignore=IPy.py $FILES \ + --reports=$SHOW_REPORT \ + --output-format=colorized \ + --dummy-variables-rgx="dummy|ignore*" \ + --disable-msg=${DMSG}\ + --disable-checker=${DCHECKERS} 2>&1 | \ + egrep -ve "$NO_PYL_CONFIG" \ + -ve "$GOBJECT_VAR" \ + -ve "$EMIT_VAR" \ + -ve "$CONNECT_VAR" \ + -ve "$DISCONNECT_VAR" \ + -ve "$GETTEXT_VAR" \ + -ve "$OS_EXIT" \ + -ve "$BUILTIN_TYPE" \ + -ve "$ERROR_VBOX" \ + -ve "$EXCEPTHOOK" | \ +$AWK '\ +# Strip out any "*** Module name" lines if we dont list any errors for them +BEGIN { found=0; cur_line="" } +{ + if (found == 1) { + if ( /\*\*\*/ ) { + prev_line = $0 + } else { + print prev_line + print $0 + found = 0 + } + } else if ( /\*\*\*/ ) { + found = 1 + prev_line = $0 + } else { + print $0 + } +}' + +cd - > /dev/null +rm src/_virt-manager diff -rup virt-manager-0.6.1/Makefile.am new/Makefile.am --- virt-manager-0.6.1/Makefile.am 2009-01-26 14:33:33.000000000 -0500 +++ new/Makefile.am 2009-03-18 13:25:07.912999000 -0400 @@ -11,4 +11,4 @@ rpm: clean $(MAKE) dist && rpmbuild -ta $(distdir).tar.gz check-pylint: - tests/pylint-virt-manager.sh + sh tests/pylint-virt-manager.sh virt-manager-0.7.0-vcpu-mem-persistent.patch: old/src/virtManager/create.py.orig |only old/src/virtManager/delete.py.orig |only old/src/virtManager/details.py.orig |only old/src/virtManager/domain.py.orig |only src/virtManager/util.py | 1 virt-manager-0.7.0/src/virtManager/details.py | 74 ++++++++----- virt-manager-0.7.0/src/virtManager/domain.py | 138 +++++++++++++++++++++----- virt-manager-0.7.0/src/virtManager/util.py | 20 +++ 8 files changed, 178 insertions(+), 55 deletions(-) --- NEW FILE virt-manager-0.7.0-vcpu-mem-persistent.patch --- Only in old/src/virtManager: create.py.orig Only in old/src/virtManager: delete.py.orig diff -rup old/src/virtManager/details.py virt-manager-0.7.0/src/virtManager/details.py --- old/src/virtManager/details.py 2009-09-17 17:31:58.267831000 -0400 +++ virt-manager-0.7.0/src/virtManager/details.py 2009-09-17 17:45:36.638881000 -0400 @@ -1502,7 +1502,27 @@ class vmmDetails(gobject.GObject): def config_vcpus_apply(self, src): vcpus = self.window.get_widget("config-vcpus").get_adjustment().value logging.info("Setting vcpus for " + self.vm.get_uuid() + " to " + str(vcpus)) - self.vm.set_vcpu_count(vcpus) + hotplug_err = False + + try: + if self.vm.is_active(): + self.vm.hotplug_vcpus(vcpus) + except Exception, e: + logging.debug("VCPU hotplug failed: %s" % str(e)) + hotplug_err = True + + # Change persistent config + try: + self.vm.define_vcpus(vcpus) + except Exception, e: + self.err.show_err(_("Error changing vcpu value: %s" % str(e)), + "".join(traceback.format_exc())) + return False + + if hotplug_err: + self.err.show_info(_("These changes will take effect after the " + "next guest reboot. ")) + self.window.get_widget("config-vcpus-apply").set_sensitive(False) def config_get_maxmem(self): @@ -1538,44 +1558,38 @@ class vmmDetails(gobject.GObject): def config_memory_apply(self, src): self.refresh_config_memory() - exc = None + hotplug_err = False + curmem = None maxmem = self.config_get_maxmem() if self.window.get_widget("config-memory").get_property("sensitive"): curmem = self.config_get_memory() - logging.info("Setting max-memory for " + self.vm.get_name() + - " to " + str(maxmem)) - - actual_cur = self.vm.get_memory() - if curmem is not None: - logging.info("Setting memory for " + self.vm.get_name() + - " to " + str(curmem)) - if (maxmem * 1024) < actual_cur: - # Set current first to avoid error - try: - self.vm.set_memory(curmem * 1024) - self.vm.set_max_memory(maxmem * 1024) - except Exception, e: - exc = e - else: - try: - self.vm.set_max_memory(maxmem * 1024) - self.vm.set_memory(curmem * 1024) - except Exception, e: - exc = e + if curmem: + curmem = int(curmem) * 1024 + if maxmem: + maxmem = int(maxmem) * 1024 - else: - try: - self.vm.set_max_memory(maxmem * 1024) - except Exception, e: - exc = e + try: + if self.vm.is_active(): + self.vm.hotplug_both_mem(curmem, maxmem) + except Exception, e: + logging.debug("Memory hotplug failed: %s" % str(e)) + hotplug_err = True - if exc: + # Change persistent config + try: + self.vm.define_both_mem(curmem, maxmem) + except Exception, e: self.err.show_err(_("Error changing memory values: %s" % str(e)), "".join(traceback.format_exc())) - else: - self.window.get_widget("config-memory-apply").set_sensitive(False) + return + + if hotplug_err: + self.err.show_info(_("These changes will take effect after the " + "next guest reboot. ")) + + self.window.get_widget("config-memory-apply").set_sensitive(False) def config_boot_options_changed(self, src): self.window.get_widget("config-boot-options-apply").set_sensitive(True) Only in old/src/virtManager: details.py.orig diff -rup old/src/virtManager/domain.py virt-manager-0.7.0/src/virtManager/domain.py --- old/src/virtManager/domain.py 2009-09-17 17:31:58.276831000 -0400 +++ virt-manager-0.7.0/src/virtManager/domain.py 2009-09-17 17:47:15.693255000 -0400 @@ -23,6 +23,7 @@ import libvirt import libxml2 import os import logging +import difflib from virtManager import util import virtinst.util as vutil @@ -113,6 +114,16 @@ class vmmDomain(gobject.GObject): self.refresh_inactive_xml() return self._orig_inactive_xml + def get_xml_to_define(self): + # FIXME: This isn't sufficient, since we pull stuff like disk targets + # from the active XML. This all needs proper fixing in the long + # term. + if self.is_active(): + return self.get_inactive_xml() + else: + self.update_xml() + return self.get_xml() + def refresh_inactive_xml(self): flags = (libvirt.VIR_DOMAIN_XML_INACTIVE | libvirt.VIR_DOMAIN_XML_SECURE) @@ -124,6 +135,36 @@ class vmmDomain(gobject.GObject): self._orig_inactive_xml = self.vm.XMLDesc(flags) + def redefine(self, xml_func, *args): + """ + Helper function for altering a redefining VM xml + + @param xml_func: Function to alter the running XML. Takes the + original XML as its first argument. + @param args: Extra arguments to pass to xml_func + """ + origxml = self.get_xml_to_define() + # Sanitize origxml to be similar to what we will get back + origxml = util.xml_parse_wrapper(origxml, lambda d, c: d.serialize()) + + newxml = xml_func(origxml, *args) + + if origxml == newxml: + logging.debug("Redefinition requested, but new xml was not" + " different") + return + + diff = "".join(difflib.unified_diff(origxml.splitlines(1), + newxml.splitlines(1), + fromfile="Original XML", + tofile="New XML")) + logging.debug("Redefining '%s' with XML diff:\n%s", + self.get_name(), diff) + self.get_connection().define_domain(newxml) + + # Invalidate cached XML + self.invalidate_xml() + def release_handle(self): del(self.vm) self.vm = None @@ -1126,16 +1167,6 @@ class vmmDomain(gobject.GObject): if doc != None: doc.freeDoc() - def get_xml_to_define(self): - # FIXME: This isn't sufficient, since we pull stuff like disk targets - # from the active XML. This all needs proper fixing in the long - # term. - if self.is_active(): - return self.get_inactive_xml() - else: - self.update_xml() - return self.get_xml() - def attach_device(self, xml): """Hotplug device to running guest""" if self.is_active(): @@ -1232,23 +1263,80 @@ class vmmDomain(gobject.GObject): doc.freeDoc() self._change_cdrom(result, dev_id_info) - def set_vcpu_count(self, vcpus): + def hotplug_vcpu(self, vcpus): + self.vm.setVcpus() + + def hotplug_vcpus(self, vcpus): vcpus = int(vcpus) - self.vm.setVcpus(vcpus) + if vcpus != self.vcpu_count(): + self.vm.setVcpus(vcpus) + + def define_vcpus(self, vcpus): + vcpus = int(vcpus) + + def set_node(doc, ctx, val, xpath): + node = ctx.xpathEval(xpath) + node = (node and node[0] or None) + + if node: + node.setContent(str(val)) + return doc.serialize() + + def change_vcpu_xml(xml, vcpus): + return util.xml_parse_wrapper(xml, set_node, vcpus, + "/domain/vcpu[1]") + + self.redefine(change_vcpu_xml, vcpus) + + def hotplug_memory(self, memory): + if memory != self.get_memory(): + self.vm.setMemory(memory) + + def hotplug_maxmem(self, maxmem): + if maxmem != self.maximum_memory(): + self.vm.setMaxMemory(maxmem) + + def hotplug_both_mem(self, memory, maxmem): + logging.info("Hotplugging curmem=%s maxmem=%s for VM '%s'" % + (memory, maxmem, self.get_name())) + + if self.is_active(): + actual_cur = self.get_memory() + if memory: + if maxmem < actual_cur: + # Set current first to avoid error + self.hotplug_memory(memory) + self.hotplug_maxmem(maxmem) + else: + self.hotplug_maxmem(maxmem) + self.hotplug_memory(memory) + else: + self.hotplug_maxmem(maxmem) + + def define_both_mem(self, memory, maxmem): + # Make sure we correctly define the XML with new values, since + # setMem and setMaxMem don't (or, aren't supposed to) affect + # the persistent config + self.invalidate_xml() + + def set_mem_node(doc, ctx, memval, xpath): + node = ctx.xpathEval(xpath) + node = (node and node[0] or None) + + if node: + node.setContent(str(memval)) + return doc.serialize() + + def change_mem_xml(xml, memory, maxmem): + if memory: + xml = util.xml_parse_wrapper(xml, set_mem_node, memory, + "/domain/currentMemory[1]") + if maxmem: + xml = util.xml_parse_wrapper(xml, set_mem_node, maxmem, + "/domain/memory[1]") + return xml - def set_memory(self, memory): - memory = int(memory) - # capture updated information due to failing to get proper maxmem setting - # if both current & max allocation are set simultaneously - maxmem = self.vm.info() - if (memory > maxmem[1]): - logging.warning("Requested memory " + str(memory) + " over maximum " + str(self.maximum_memory())) - memory = self.maximum_memory() - self.vm.setMemory(memory) - - def set_max_memory(self, memory): - memory = int(memory) - self.vm.setMaxMemory(memory) + self.redefine(change_mem_xml, memory, maxmem) def get_autostart(self): return self.vm.autostart() Only in old/src/virtManager: domain.py.orig diff -rup old/src/virtManager/util.py virt-manager-0.7.0/src/virtManager/util.py --- old/src/virtManager/util.py 2009-09-17 17:52:15.948670000 -0400 +++ virt-manager-0.7.0/src/virtManager/util.py 2009-09-17 17:52:58.963375000 -0400 @@ -140,3 +140,23 @@ def dup_conn(config, conn, libconn=None) newconn.connectThreadEvent.wait() return newconn.vmm + +def xml_parse_wrapper(xml, parse_func, *args, **kwargs): + """ + Parse the passed xml string into an xpath context, which is passed + to parse_func, along with any extra arguments. + """ + + doc = None + ctx = None + ret = None + try: + doc = libxml2.parseDoc(xml) + ctx = doc.xpathNewContext() + ret = parse_func(doc, ctx, *args, **kwargs) + finally: + if ctx != None: + ctx.xpathFreeContext() + if doc != None: + doc.freeDoc() + return ret diff -rup old/src/virtManager/util.py virt-manager-0.7.0/src/virtManager/util.py --- old/src/virtManager/util.py 2009-09-17 17:55:17.930744000 -0400 +++ virt-manager-0.7.0/src/virtManager/util.py 2009-09-17 17:55:31.355655000 -0400 @@ -21,6 +21,7 @@ import logging import gtk +import libxml2 import libvirt import virtManager Index: virt-manager.spec =================================================================== RCS file: /cvs/pkgs/rpms/virt-manager/F-11/virt-manager.spec,v retrieving revision 1.52 retrieving revision 1.53 diff -u -p -r1.52 -r1.53 --- virt-manager.spec 21 May 2009 14:58:14 -0000 1.52 +++ virt-manager.spec 18 Sep 2009 14:50:44 -0000 1.53 @@ -8,7 +8,7 @@ Name: virt-manager Version: 0.7.0 -Release: 5%{_extra_release} +Release: 6%{_extra_release} Summary: Virtual Machine Manager Group: Applications/Emulators @@ -27,6 +27,20 @@ Patch9: %{name}-%{version}-fix-window-re Patch10: %{name}-%{version}-vnc-auth-get-username.patch Patch11: %{name}-%{version}-handle-arch-config.patch Patch12: %{name}-%{version}-log-capabilities-at-startup.patch +# Fix migration for qemu/kvm guests (bz 517548) +Patch13: %{name}-%{version}-migrate-fixes.patch +# Fix sparse allocation confusion (bz 504605) +Patch14: %{name}-%{version}-fix-sparse-knob.patch +# Czech translation typo (bz 504385) +Patch15: %{name}-%{version}-czech-typo.patch +# Use storage browser for iso installs (bz 504326) +Patch16: %{name}-%{version}-iso-storage-browser.patch +# Fix max/current memory spin button interaction (bz 503786) +Patch17: %{name}-%{version}-fix-memory-interaction.patch +# Make memory and vcpu changes unconditionally persistent (bz 503784) +Patch18: %{name}-%{version}-vcpu-mem-persistent.patch +# Add pylint script +Patch19: %{name}-%{version}-pylint-script.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) # These two are just the oldest version tested @@ -111,6 +125,13 @@ management API. %patch10 -p1 %patch11 -p1 %patch12 -p1 +%patch13 -p1 +%patch14 -p1 +%patch15 -p1 +%patch16 -p1 +%patch17 -p1 +%patch18 -p1 +%patch19 -p1 %build %configure @@ -188,6 +209,14 @@ fi %{_datadir}/dbus-1/services/%{name}.service %changelog +* Fri Sep 18 2009 Cole Robinson - 0.7.0-6.fc11 +- Fix migration for qemu/kvm guests (bz 517548) +- Fix sparse allocation confusion (bz 504605) +- Czech translation typo (bz 504385) +- Use storage browser for iso installs (bz 504326) +- Fix max/current memory spin button interaction (bz 503786) +- Make memory and vcpu changes unconditionally persistent (bz 503784) + * Thu May 21 2009 Mark McLoughlin - 0.7.0-5.fc11 - Fix 'opertaing' typo in 'New VM' dialog (#495128) - Allow details window to resize again (#491683) From rjones at fedoraproject.org Fri Sep 18 16:15:02 2009 From: rjones at fedoraproject.org (Richard W.M. Jones) Date: Fri, 18 Sep 2009 16:15:02 +0000 (UTC) Subject: [fedora-virt-maint] rpms/libguestfs/devel libguestfs.spec, 1.97, 1.98 Message-ID: <20090918161502.3C97211C01EA@cvs1.fedora.phx.redhat.com> Author: rjones Update of /cvs/pkgs/rpms/libguestfs/devel In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv15524 Modified Files: libguestfs.spec Log Message: Potential fix for RHBZ#523547 Index: libguestfs.spec =================================================================== RCS file: /cvs/pkgs/rpms/libguestfs/devel/libguestfs.spec,v retrieving revision 1.97 retrieving revision 1.98 diff -u -p -r1.97 -r1.98 --- libguestfs.spec 15 Sep 2009 10:35:21 -0000 1.97 +++ libguestfs.spec 18 Sep 2009 16:15:02 -0000 1.98 @@ -5,7 +5,7 @@ Summary: Access and modify virtual m Name: libguestfs Epoch: 1 Version: 1.0.70 -Release: 1%{?dist} +Release: 2%{?dist} License: LGPLv2+ Group: Development/Libraries URL: http://libguestfs.org/ @@ -218,6 +218,8 @@ Summary: Perl bindings for %{name} Group: Development/Libraries Requires: %{name} = %{epoch}:%{version}-%{release} Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) +# RHBZ#523547 +Requires: perl-XML-XPath %description -n perl-%{name} @@ -537,6 +539,9 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Fri Sep 18 2009 Richard W.M. Jones - 1.0.70-2 +- Perl bindings require perl-XML-XPath (fixed RHBZ#523547). + * Tue Sep 15 2009 Richard W.M. Jones - 1.0.70-1 - New upstream release 1.0.70. - Fixes build problem related to old version of GNU gettext. From rjones at fedoraproject.org Fri Sep 18 16:15:03 2009 From: rjones at fedoraproject.org (Richard W.M. Jones) Date: Fri, 18 Sep 2009 16:15:03 +0000 (UTC) Subject: [fedora-virt-maint] rpms/libguestfs/F-11 libguestfs.spec,1.62,1.63 Message-ID: <20090918161503.F07B311C01EA@cvs1.fedora.phx.redhat.com> Author: rjones Update of /cvs/pkgs/rpms/libguestfs/F-11 In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv15544 Modified Files: libguestfs.spec Log Message: Potential fix for RHBZ#523547 Index: libguestfs.spec =================================================================== RCS file: /cvs/pkgs/rpms/libguestfs/F-11/libguestfs.spec,v retrieving revision 1.62 retrieving revision 1.63 diff -u -p -r1.62 -r1.63 --- libguestfs.spec 15 Sep 2009 10:36:27 -0000 1.62 +++ libguestfs.spec 18 Sep 2009 16:15:03 -0000 1.63 @@ -5,7 +5,7 @@ Summary: Access and modify virtual m Name: libguestfs Epoch: 1 Version: 1.0.70 -Release: 1%{?dist} +Release: 2%{?dist} License: LGPLv2+ Group: Development/Libraries URL: http://libguestfs.org/ @@ -218,6 +218,8 @@ Summary: Perl bindings for %{name} Group: Development/Libraries Requires: %{name} = %{epoch}:%{version}-%{release} Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) +# RHBZ#523547 +Requires: perl-XML-XPath %description -n perl-%{name} @@ -533,6 +535,9 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Fri Sep 18 2009 Richard W.M. Jones - 1.0.70-2 +- Perl bindings require perl-XML-XPath (fixed RHBZ#523547). + * Tue Sep 15 2009 Richard W.M. Jones - 1.0.70-1 - New upstream release 1.0.70. - Fixes build problem related to old version of GNU gettext. From rjones at fedoraproject.org Fri Sep 18 16:15:05 2009 From: rjones at fedoraproject.org (Richard W.M. Jones) Date: Fri, 18 Sep 2009 16:15:05 +0000 (UTC) Subject: [fedora-virt-maint] rpms/libguestfs/EL-5 libguestfs.spec,1.66,1.67 Message-ID: <20090918161505.9056811C01EA@cvs1.fedora.phx.redhat.com> Author: rjones Update of /cvs/pkgs/rpms/libguestfs/EL-5 In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv15564 Modified Files: libguestfs.spec Log Message: Potential fix for RHBZ#523547 Index: libguestfs.spec =================================================================== RCS file: /cvs/pkgs/rpms/libguestfs/EL-5/libguestfs.spec,v retrieving revision 1.66 retrieving revision 1.67 diff -u -p -r1.66 -r1.67 --- libguestfs.spec 15 Sep 2009 10:35:03 -0000 1.66 +++ libguestfs.spec 18 Sep 2009 16:15:05 -0000 1.67 @@ -5,7 +5,7 @@ Summary: Access and modify virtual m Name: libguestfs Epoch: 1 Version: 1.0.70 -Release: 1%{?dist} +Release: 2%{?dist} License: LGPLv2+ Group: Development/Libraries URL: http://libguestfs.org/ @@ -234,6 +234,8 @@ Summary: Perl bindings for %{name} Group: Development/Libraries Requires: %{name} = %{epoch}:%{version}-%{release} Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) +# RHBZ#523547 +Requires: perl-XML-XPath %description -n perl-%{name} @@ -536,6 +538,9 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Fri Sep 18 2009 Richard W.M. Jones - 1.0.70-2 +- Perl bindings require perl-XML-XPath (fixed RHBZ#523547). + * Tue Sep 15 2009 Richard W.M. Jones - 1.0.70-1 - New upstream release 1.0.70. - Fixes build problem related to old version of GNU gettext. From markmc at fedoraproject.org Mon Sep 21 15:32:34 2009 From: markmc at fedoraproject.org (Mark McLoughlin) Date: Mon, 21 Sep 2009 15:32:34 +0000 (UTC) Subject: [fedora-virt-maint] rpms/libvirt/devel libvirt-fix-drv-supports-feature-bogus-error.patch, NONE, 1.1 libvirt-fix-qemu-raw-format-save.patch, NONE, 1.1 libvirt-fix-net-hotunplug-double-free.patch, 1.2, 1.3 libvirt-fix-pci-hostdev-hotunplug-leak.patch, 1.2, 1.3 libvirt.spec, 1.181, 1.182 Message-ID: <20090921153234.ADDCE11C0043@cvs1.fedora.phx.redhat.com> Author: markmc Update of /cvs/pkgs/rpms/libvirt/devel In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv21054 Modified Files: libvirt-fix-net-hotunplug-double-free.patch libvirt-fix-pci-hostdev-hotunplug-leak.patch libvirt.spec Added Files: libvirt-fix-drv-supports-feature-bogus-error.patch libvirt-fix-qemu-raw-format-save.patch Log Message: * Mon Sep 21 2009 Mark McLoughlin - 0.7.1-5 - Don't set a bogus error in virDrvSupportsFeature() - Fix raw save format libvirt-fix-drv-supports-feature-bogus-error.patch: libvirt.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) --- NEW FILE libvirt-fix-drv-supports-feature-bogus-error.patch --- >From 2f6e857ac7d6ed5cd417e684147dd9c98775ab3d Mon Sep 17 00:00:00 2001 From: Chris Lalancette Date: Mon, 21 Sep 2009 14:53:31 +0200 Subject: [PATCH] Don't do virSetConnError when virDrvSupportsFeature is successful. Signed-off-by: Chris Lalancette Fedora-patch: libvirt-fix-drv-supports-feature-bogus-error.patch --- src/libvirt.c | 7 +++++-- 1 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/libvirt.c b/src/libvirt.c index 4a11688..fa59dc7 100644 --- a/src/libvirt.c +++ b/src/libvirt.c @@ -1349,8 +1349,11 @@ virDrvSupportsFeature (virConnectPtr conn, int feature) } ret = VIR_DRV_SUPPORTS_FEATURE (conn->driver, conn, feature); - /* Copy to connection error object for back compatability */ - virSetConnError(conn); + + if (ret < 0) + /* Copy to connection error object for back compatability */ + virSetConnError(conn); + return ret; } -- 1.6.2.5 libvirt-fix-qemu-raw-format-save.patch: qemu_driver.c | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) --- NEW FILE libvirt-fix-qemu-raw-format-save.patch --- >From e50c91fdcea5d81e3eb2051c05f4e51a16c3e692 Mon Sep 17 00:00:00 2001 From: Charles Duffy Date: Fri, 18 Sep 2009 11:32:35 -0500 Subject: [PATCH] Prevent attempt to call cat -c during virDomainSave to raw Fedora-patch: libvirt-fix-qemu-raw-format-save.patch --- src/qemu_driver.c | 28 ++++++++++++++++++---------- 1 files changed, 18 insertions(+), 10 deletions(-) diff --git a/src/qemu_driver.c b/src/qemu_driver.c index 2ddcdc0..7c7b985 100644 --- a/src/qemu_driver.c +++ b/src/qemu_driver.c @@ -3905,17 +3905,25 @@ static int qemudDomainSave(virDomainPtr dom, goto cleanup; } - const char *prog = qemudSaveCompressionTypeToString(header.compressed); - if (prog == NULL) { - qemudReportError(dom->conn, dom, NULL, VIR_ERR_INTERNAL_ERROR, - _("Invalid compress format %d"), header.compressed); - goto cleanup; - } + { + const char *prog = qemudSaveCompressionTypeToString(header.compressed); + const char *args; - if (STREQ (prog, "raw")) - prog = "cat"; - internalret = virAsprintf(&command, "migrate \"exec:" - "%s -c >> '%s' 2>/dev/null\"", prog, safe_path); + if (prog == NULL) { + qemudReportError(dom->conn, dom, NULL, VIR_ERR_INTERNAL_ERROR, + _("Invalid compress format %d"), header.compressed); + goto cleanup; + } + + if (STREQ (prog, "raw")) { + prog = "cat"; + args = ""; + } else { + args = "-c"; + } + internalret = virAsprintf(&command, "migrate \"exec:" + "%s %s >> '%s' 2>/dev/null\"", prog, args, safe_path); + } if (internalret < 0) { virReportOOMError(dom->conn); -- 1.6.2.5 libvirt-fix-net-hotunplug-double-free.patch: qemu_driver.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) Index: libvirt-fix-net-hotunplug-double-free.patch =================================================================== RCS file: /cvs/pkgs/rpms/libvirt/devel/libvirt-fix-net-hotunplug-double-free.patch,v retrieving revision 1.2 retrieving revision 1.3 diff -u -p -r1.2 -r1.3 --- libvirt-fix-net-hotunplug-double-free.patch 17 Sep 2009 14:51:05 -0000 1.2 +++ libvirt-fix-net-hotunplug-double-free.patch 21 Sep 2009 15:32:34 -0000 1.3 @@ -1,4 +1,4 @@ -From 18067a3cde7183fd17eea199fac2e49edfe1cb22 Mon Sep 17 00:00:00 2001 +From d09ff3c35c29d14760d5ea03559042cc024e09ab Mon Sep 17 00:00:00 2001 From: Mark McLoughlin Date: Thu, 17 Sep 2009 15:31:08 +0100 Subject: [PATCH] Fix net/disk hot-unplug segfault @@ -12,6 +12,8 @@ Reported by Michal Nowak here: * src/qemu_driver.c: fix double free +(cherry-picked from commit 8881ae1bf8783006777429403cc543c33187175d) + Fedora-patch: libvirt-fix-net-hotunplug-double-free.patch --- src/qemu_driver.c | 4 ++-- libvirt-fix-pci-hostdev-hotunplug-leak.patch: qemu_driver.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) Index: libvirt-fix-pci-hostdev-hotunplug-leak.patch =================================================================== RCS file: /cvs/pkgs/rpms/libvirt/devel/libvirt-fix-pci-hostdev-hotunplug-leak.patch,v retrieving revision 1.2 retrieving revision 1.3 diff -u -p -r1.2 -r1.3 --- libvirt-fix-pci-hostdev-hotunplug-leak.patch 17 Sep 2009 14:51:05 -0000 1.2 +++ libvirt-fix-pci-hostdev-hotunplug-leak.patch 21 Sep 2009 15:32:34 -0000 1.3 @@ -1,4 +1,4 @@ -From 9ef0cb152e92db1aa87d89529812328935c8535a Mon Sep 17 00:00:00 2001 +From d04ac8624f5fabe7587982796f2e2161220b0fcc Mon Sep 17 00:00:00 2001 From: Mark McLoughlin Date: Thu, 17 Sep 2009 15:32:45 +0100 Subject: [PATCH] Fix leak in PCI hostdev hot-unplug @@ -6,6 +6,8 @@ Subject: [PATCH] Fix leak in PCI hostdev * src/qemu_driver.c: sync the hostdev hot-unplug code with the disk/net code. +(cherry-picked from commit a70da51ff76ed860bfc0cdee2e1d556da997c557) + Fedora-patch: libvirt-fix-pci-hostdev-hotunplug-leak.patch --- src/qemu_driver.c | 20 +++++++++++++------- Index: libvirt.spec =================================================================== RCS file: /cvs/pkgs/rpms/libvirt/devel/libvirt.spec,v retrieving revision 1.181 retrieving revision 1.182 diff -u -p -r1.181 -r1.182 --- libvirt.spec 17 Sep 2009 14:58:55 -0000 1.181 +++ libvirt.spec 21 Sep 2009 15:32:34 -0000 1.182 @@ -151,7 +151,7 @@ Summary: Library providing a simple API virtualization Name: libvirt Version: 0.7.1 -Release: 4%{?dist}%{?extra_release} +Release: 5%{?dist}%{?extra_release} License: LGPLv2+ Group: Development/Libraries Source: http://libvirt.org/sources/libvirt-%{version}.tar.gz @@ -164,6 +164,12 @@ Patch00: libvirt-0.6.4-svirt-sound.patch Patch01: libvirt-fix-net-hotunplug-double-free.patch Patch02: libvirt-fix-pci-hostdev-hotunplug-leak.patch +# Don't set a bogus error in virDrvSupportsFeature() +Patch03: libvirt-fix-drv-supports-feature-bogus-error.patch + +# Fix raw save format +Patch04: libvirt-fix-qemu-raw-format-save.patch + BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root URL: http://libvirt.org/ BuildRequires: python-devel @@ -379,6 +385,8 @@ of recent versions of Linux (and other O %patch00 -p1 %patch01 -p1 %patch02 -p1 +%patch03 -p1 +%patch04 -p1 %build %if ! %{with_xen} @@ -769,6 +777,10 @@ fi %endif %changelog +* Mon Sep 21 2009 Mark McLoughlin - 0.7.1-5 +- Don't set a bogus error in virDrvSupportsFeature() +- Fix raw save format + * Thu Sep 17 2009 Mark McLoughlin - 0.7.1-4 - A couple of hot-unplug memory handling fixes (#523953) From cweyl at fedoraproject.org Tue Sep 22 03:52:07 2009 From: cweyl at fedoraproject.org (Chris Weyl) Date: Tue, 22 Sep 2009 03:52:07 +0000 (UTC) Subject: [fedora-virt-maint] rpms/libvirt/devel libvirt.spec,1.182,1.183 Message-ID: <20090922035207.55C1911C0082@cvs1.fedora.phx.redhat.com> Author: cweyl Update of /cvs/extras/rpms/libvirt/devel In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv8179 Modified Files: libvirt.spec Log Message: * Mon Sep 21 2009 Chris Weyl - 0.7.1-6 - rebuild for libssh2 1.2 Index: libvirt.spec =================================================================== RCS file: /cvs/extras/rpms/libvirt/devel/libvirt.spec,v retrieving revision 1.182 retrieving revision 1.183 diff -u -p -r1.182 -r1.183 --- libvirt.spec 21 Sep 2009 15:32:34 -0000 1.182 +++ libvirt.spec 22 Sep 2009 03:52:07 -0000 1.183 @@ -151,7 +151,7 @@ Summary: Library providing a simple API virtualization Name: libvirt Version: 0.7.1 -Release: 5%{?dist}%{?extra_release} +Release: 6%{?dist}%{?extra_release} License: LGPLv2+ Group: Development/Libraries Source: http://libvirt.org/sources/libvirt-%{version}.tar.gz @@ -777,6 +777,9 @@ fi %endif %changelog +* Mon Sep 21 2009 Chris Weyl - 0.7.1-6 +- rebuild for libssh2 1.2 + * Mon Sep 21 2009 Mark McLoughlin - 0.7.1-5 - Don't set a bogus error in virDrvSupportsFeature() - Fix raw save format From rjones at fedoraproject.org Tue Sep 22 14:09:34 2009 From: rjones at fedoraproject.org (Richard W.M. Jones) Date: Tue, 22 Sep 2009 14:09:34 +0000 (UTC) Subject: [fedora-virt-maint] rpms/libguestfs/EL-5 .cvsignore, 1.30, 1.31 libguestfs.spec, 1.67, 1.68 sources, 1.30, 1.31 Message-ID: <20090922140934.096AE11C00E8@cvs1.fedora.phx.redhat.com> Author: rjones Update of /cvs/pkgs/rpms/libguestfs/EL-5 In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv15743 Modified Files: .cvsignore libguestfs.spec sources Log Message: New upstream release 1.0.71. Index: .cvsignore =================================================================== RCS file: /cvs/pkgs/rpms/libguestfs/EL-5/.cvsignore,v retrieving revision 1.30 retrieving revision 1.31 diff -u -p -r1.30 -r1.31 --- .cvsignore 15 Sep 2009 10:35:03 -0000 1.30 +++ .cvsignore 22 Sep 2009 14:09:30 -0000 1.31 @@ -1 +1 @@ -libguestfs-1.0.70.tar.gz +libguestfs-1.0.71.tar.gz Index: libguestfs.spec =================================================================== RCS file: /cvs/pkgs/rpms/libguestfs/EL-5/libguestfs.spec,v retrieving revision 1.67 retrieving revision 1.68 diff -u -p -r1.67 -r1.68 --- libguestfs.spec 18 Sep 2009 16:15:05 -0000 1.67 +++ libguestfs.spec 22 Sep 2009 14:09:31 -0000 1.68 @@ -4,8 +4,8 @@ Summary: Access and modify virtual machine disk images Name: libguestfs Epoch: 1 -Version: 1.0.70 -Release: 2%{?dist} +Version: 1.0.71 +Release: 1%{?dist} License: LGPLv2+ Group: Development/Libraries URL: http://libguestfs.org/ @@ -538,6 +538,9 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Tue Sep 22 2009 Richard W.M. Jones - 1.0.71-1 +- New upstream release 1.0.71. + * Fri Sep 18 2009 Richard W.M. Jones - 1.0.70-2 - Perl bindings require perl-XML-XPath (fixed RHBZ#523547). Index: sources =================================================================== RCS file: /cvs/pkgs/rpms/libguestfs/EL-5/sources,v retrieving revision 1.30 retrieving revision 1.31 diff -u -p -r1.30 -r1.31 --- sources 15 Sep 2009 10:35:03 -0000 1.30 +++ sources 22 Sep 2009 14:09:31 -0000 1.31 @@ -1 +1 @@ -31de0cb2ac480cbb4a1c7398f2963caf libguestfs-1.0.70.tar.gz +24bf32735f1a259b14b692cf78ae5d74 libguestfs-1.0.71.tar.gz From rjones at fedoraproject.org Tue Sep 22 14:09:48 2009 From: rjones at fedoraproject.org (Richard W.M. Jones) Date: Tue, 22 Sep 2009 14:09:48 +0000 (UTC) Subject: [fedora-virt-maint] rpms/libguestfs/devel .cvsignore, 1.49, 1.50 libguestfs.spec, 1.98, 1.99 sources, 1.49, 1.50 Message-ID: <20090922140948.5D71D11C00E8@cvs1.fedora.phx.redhat.com> Author: rjones Update of /cvs/pkgs/rpms/libguestfs/devel In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv15870 Modified Files: .cvsignore libguestfs.spec sources Log Message: New upstream release 1.0.71. Index: .cvsignore =================================================================== RCS file: /cvs/pkgs/rpms/libguestfs/devel/.cvsignore,v retrieving revision 1.49 retrieving revision 1.50 diff -u -p -r1.49 -r1.50 --- .cvsignore 15 Sep 2009 10:35:21 -0000 1.49 +++ .cvsignore 22 Sep 2009 14:09:44 -0000 1.50 @@ -1 +1 @@ -libguestfs-1.0.70.tar.gz +libguestfs-1.0.71.tar.gz Index: libguestfs.spec =================================================================== RCS file: /cvs/pkgs/rpms/libguestfs/devel/libguestfs.spec,v retrieving revision 1.98 retrieving revision 1.99 diff -u -p -r1.98 -r1.99 --- libguestfs.spec 18 Sep 2009 16:15:02 -0000 1.98 +++ libguestfs.spec 22 Sep 2009 14:09:45 -0000 1.99 @@ -4,8 +4,8 @@ Summary: Access and modify virtual machine disk images Name: libguestfs Epoch: 1 -Version: 1.0.70 -Release: 2%{?dist} +Version: 1.0.71 +Release: 1%{?dist} License: LGPLv2+ Group: Development/Libraries URL: http://libguestfs.org/ @@ -539,6 +539,9 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Tue Sep 22 2009 Richard W.M. Jones - 1.0.71-1 +- New upstream release 1.0.71. + * Fri Sep 18 2009 Richard W.M. Jones - 1.0.70-2 - Perl bindings require perl-XML-XPath (fixed RHBZ#523547). Index: sources =================================================================== RCS file: /cvs/pkgs/rpms/libguestfs/devel/sources,v retrieving revision 1.49 retrieving revision 1.50 diff -u -p -r1.49 -r1.50 --- sources 15 Sep 2009 10:35:21 -0000 1.49 +++ sources 22 Sep 2009 14:09:46 -0000 1.50 @@ -1 +1 @@ -31de0cb2ac480cbb4a1c7398f2963caf libguestfs-1.0.70.tar.gz +24bf32735f1a259b14b692cf78ae5d74 libguestfs-1.0.71.tar.gz From rjones at fedoraproject.org Tue Sep 22 14:29:31 2009 From: rjones at fedoraproject.org (Richard W.M. Jones) Date: Tue, 22 Sep 2009 14:29:31 +0000 (UTC) Subject: [fedora-virt-maint] rpms/libguestfs/F-11 .cvsignore, 1.36, 1.37 libguestfs.spec, 1.63, 1.64 sources, 1.36, 1.37 Message-ID: <20090922142931.8799211C00E8@cvs1.fedora.phx.redhat.com> Author: rjones Update of /cvs/pkgs/rpms/libguestfs/F-11 In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv23554 Modified Files: .cvsignore libguestfs.spec sources Log Message: New upstream release 1.0.71. Index: .cvsignore =================================================================== RCS file: /cvs/pkgs/rpms/libguestfs/F-11/.cvsignore,v retrieving revision 1.36 retrieving revision 1.37 diff -u -p -r1.36 -r1.37 --- .cvsignore 15 Sep 2009 10:35:16 -0000 1.36 +++ .cvsignore 22 Sep 2009 14:29:30 -0000 1.37 @@ -1 +1 @@ -libguestfs-1.0.70.tar.gz +libguestfs-1.0.71.tar.gz Index: libguestfs.spec =================================================================== RCS file: /cvs/pkgs/rpms/libguestfs/F-11/libguestfs.spec,v retrieving revision 1.63 retrieving revision 1.64 diff -u -p -r1.63 -r1.64 --- libguestfs.spec 18 Sep 2009 16:15:03 -0000 1.63 +++ libguestfs.spec 22 Sep 2009 14:29:31 -0000 1.64 @@ -4,8 +4,8 @@ Summary: Access and modify virtual machine disk images Name: libguestfs Epoch: 1 -Version: 1.0.70 -Release: 2%{?dist} +Version: 1.0.71 +Release: 1%{?dist} License: LGPLv2+ Group: Development/Libraries URL: http://libguestfs.org/ @@ -535,6 +535,9 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Tue Sep 22 2009 Richard W.M. Jones - 1.0.71-1 +- New upstream release 1.0.71. + * Fri Sep 18 2009 Richard W.M. Jones - 1.0.70-2 - Perl bindings require perl-XML-XPath (fixed RHBZ#523547). Index: sources =================================================================== RCS file: /cvs/pkgs/rpms/libguestfs/F-11/sources,v retrieving revision 1.36 retrieving revision 1.37 diff -u -p -r1.36 -r1.37 --- sources 15 Sep 2009 10:35:16 -0000 1.36 +++ sources 22 Sep 2009 14:29:31 -0000 1.37 @@ -1 +1 @@ -31de0cb2ac480cbb4a1c7398f2963caf libguestfs-1.0.70.tar.gz +24bf32735f1a259b14b692cf78ae5d74 libguestfs-1.0.71.tar.gz From rjones at fedoraproject.org Tue Sep 22 14:30:30 2009 From: rjones at fedoraproject.org (Richard W.M. Jones) Date: Tue, 22 Sep 2009 14:30:30 +0000 (UTC) Subject: [fedora-virt-maint] rpms/libguestfs/devel libguestfs.spec, 1.99, 1.100 Message-ID: <20090922143030.611C811C0374@cvs1.fedora.phx.redhat.com> Author: rjones Update of /cvs/pkgs/rpms/libguestfs/devel In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv23987 Modified Files: libguestfs.spec Log Message: Bump to force rebuild. Index: libguestfs.spec =================================================================== RCS file: /cvs/pkgs/rpms/libguestfs/devel/libguestfs.spec,v retrieving revision 1.99 retrieving revision 1.100 diff -u -p -r1.99 -r1.100 --- libguestfs.spec 22 Sep 2009 14:09:45 -0000 1.99 +++ libguestfs.spec 22 Sep 2009 14:30:30 -0000 1.100 @@ -5,7 +5,7 @@ Summary: Access and modify virtual m Name: libguestfs Epoch: 1 Version: 1.0.71 -Release: 1%{?dist} +Release: 2%{?dist} License: LGPLv2+ Group: Development/Libraries URL: http://libguestfs.org/ @@ -539,7 +539,7 @@ rm -rf $RPM_BUILD_ROOT %changelog -* Tue Sep 22 2009 Richard W.M. Jones - 1.0.71-1 +* Tue Sep 22 2009 Richard W.M. Jones - 1.0.71-2 - New upstream release 1.0.71. * Fri Sep 18 2009 Richard W.M. Jones - 1.0.70-2 From markmc at fedoraproject.org Wed Sep 23 11:31:33 2009 From: markmc at fedoraproject.org (Mark McLoughlin) Date: Wed, 23 Sep 2009 11:31:33 +0000 (UTC) Subject: [fedora-virt-maint] rpms/qemu/devel qemu-correctly-free-nic-info-structure.patch, NONE, 1.1 qemu.spec, 1.130, 1.131 Message-ID: <20090923113133.E520E11C00E6@cvs1.fedora.phx.redhat.com> Author: markmc Update of /cvs/pkgs/rpms/qemu/devel In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv31800 Modified Files: qemu.spec Added Files: qemu-correctly-free-nic-info-structure.patch Log Message: * Wed Sep 23 2009 Mark McLoughlin - 2:0.10.92-5 - Fix issue causing NIC hotplug confusion when no model is specified (#524022) qemu-correctly-free-nic-info-structure.patch: net.c | 16 +++++++++++----- net.h | 8 ++++---- vl.c | 3 +-- 3 files changed, 16 insertions(+), 11 deletions(-) --- NEW FILE qemu-correctly-free-nic-info-structure.patch --- >From 2b76390876db26fb279d26de86b2c0b8260ff142 Mon Sep 17 00:00:00 2001 From: Glauber Costa Date: Wed, 23 Sep 2009 09:49:43 +0100 Subject: [PATCH] Correctly free nd structure When we "free" a NICInfo structure, we can leak pointers, since we don't do much more than setting used = 0. We free() the model parameter, but we don't set it to NULL. This means that a new user of this structure will see garbage in there. It was not noticed before because reusing a NICInfo is not that common, but it can be, for users of device pci hotplug. A user hit it, described at https://bugzilla.redhat.com/524022 This patch memset's the whole structure, guaranteeing that anyone reusing it will see a fresh NICinfo. Also, we free some other strings that are currently leaking. This codebase is quite old, so this patch should feed all stable trees. Signed-off-by: Glauber Costa Signed-off-by: Mark McLoughlin Fedora-patch: qemu-correctly-free-nic-info-structure.patch --- net.c | 16 +++++++++++----- net.h | 8 ++++---- vl.c | 2 +- 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/net.c b/net.c index 61c9649..b58945f 100644 --- a/net.c +++ b/net.c @@ -2564,7 +2564,7 @@ void qemu_check_nic_model_list(NICInfo *nd, const char * const *models, int i, exit_status = 0; if (!nd->model) - nd->model = strdup(default_model); + nd->model = qemu_strdup(default_model); if (strcmp(nd->model, "?") != 0) { for (i = 0 ; models[i]; i++) @@ -2634,6 +2634,7 @@ int net_client_init(Monitor *mon, const char *device, const char *p) goto out; } nd = &nd_table[idx]; + memset(nd, 0, sizeof(*nd)); macaddr = nd->macaddr; macaddr[0] = 0x52; macaddr[1] = 0x54; @@ -2650,13 +2651,13 @@ int net_client_init(Monitor *mon, const char *device, const char *p) } } if (get_param_value(buf, sizeof(buf), "model", p)) { - nd->model = strdup(buf); + nd->model = qemu_strdup(buf); } if (get_param_value(buf, sizeof(buf), "addr", p)) { - nd->devaddr = strdup(buf); + nd->devaddr = qemu_strdup(buf); } if (get_param_value(buf, sizeof(buf), "id", p)) { - nd->id = strdup(buf); + nd->id = qemu_strdup(buf); } nd->nvectors = NIC_NVECTORS_UNSPECIFIED; if (get_param_value(buf, sizeof(buf), "vectors", p)) { @@ -3003,8 +3004,13 @@ void net_client_uninit(NICInfo *nd) { nd->vlan->nb_guest_devs--; nb_nics--; + + qemu_free(nd->model); + qemu_free(nd->name); + qemu_free(nd->devaddr); + qemu_free(nd->id); + nd->used = 0; - free((void *)nd->model); } static int net_host_check_device(const char *device) diff --git a/net.h b/net.h index b172691..ec78d0a 100644 --- a/net.h +++ b/net.h @@ -100,10 +100,10 @@ enum { struct NICInfo { uint8_t macaddr[6]; - const char *model; - const char *name; - const char *devaddr; - const char *id; + char *model; + char *name; + char *devaddr; + char *id; VLANState *vlan; VLANClientState *vc; void *private; diff --git a/vl.c b/vl.c index 26bced8..d7c7ab1 100644 --- a/vl.c +++ b/vl.c @@ -2594,7 +2594,7 @@ static int usb_device_add(const char *devname, int is_hotplug) if (net_client_init(NULL, "nic", p) < 0) return -1; - nd_table[nic].model = "usb"; + nd_table[nic].model = qemu_strdup("usb"); dev = usb_net_init(&nd_table[nic]); } else if (!strcmp(devname, "bt") || strstart(devname, "bt:", &p)) { dev = usb_bt_init(devname[2] ? hci_init(p) : -- 1.6.2.5 Index: qemu.spec =================================================================== RCS file: /cvs/pkgs/rpms/qemu/devel/qemu.spec,v retrieving revision 1.130 retrieving revision 1.131 diff -u -p -r1.130 -r1.131 --- qemu.spec 16 Sep 2009 22:20:32 -0000 1.130 +++ qemu.spec 23 Sep 2009 11:31:31 -0000 1.131 @@ -3,7 +3,7 @@ Summary: QEMU is a FAST! processor emulator Name: qemu Version: 0.10.92 -Release: 4%{?dist} +Release: 5%{?dist} # Epoch because we pushed a qemu-1.0 package Epoch: 2 License: GPLv2+ and LGPLv2+ and BSD @@ -44,6 +44,9 @@ Patch05: qemu-fix-msix-error-handling-on # Fix segfault when qemu-kvm is invoked inside a VM (bug #516543) Patch06: qemu-fix-no-kvm-segfault.patch +# Fix issue causing NIC hotplug confusion when no model is specified (#524022) +Patch07: qemu-correctly-free-nic-info-structure.patch + BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: SDL-devel zlib-devel which texi2html gnutls-devel cyrus-sasl-devel BuildRequires: rsync dev86 iasl @@ -233,6 +236,7 @@ such as kvmtrace and kvm_stat. %patch04 -p1 %patch05 -p1 %patch06 -p1 +%patch07 -p1 %build # systems like rhel build system does not have a recent enough linker so @@ -526,6 +530,9 @@ fi %{_mandir}/man1/qemu-img.1* %changelog +* Wed Sep 23 2009 Mark McLoughlin - 2:0.10.92-5 +- Fix issue causing NIC hotplug confusion when no model is specified (#524022) + * Wed Sep 16 2009 Mark McLoughlin - 2:0.10.92-4 - Fix for KSM patch from Justin Forbes From rjones at fedoraproject.org Wed Sep 23 13:39:11 2009 From: rjones at fedoraproject.org (Richard W.M. Jones) Date: Wed, 23 Sep 2009 13:39:11 +0000 (UTC) Subject: [fedora-virt-maint] rpms/libguestfs/F-11 .cvsignore, 1.37, 1.38 libguestfs.spec, 1.64, 1.65 sources, 1.37, 1.38 Message-ID: <20090923133911.3995A11C00E6@cvs1.fedora.phx.redhat.com> Author: rjones Update of /cvs/pkgs/rpms/libguestfs/F-11 In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv16011 Modified Files: .cvsignore libguestfs.spec sources Log Message: Version 1.0.72. Index: .cvsignore =================================================================== RCS file: /cvs/pkgs/rpms/libguestfs/F-11/.cvsignore,v retrieving revision 1.37 retrieving revision 1.38 diff -u -p -r1.37 -r1.38 --- .cvsignore 22 Sep 2009 14:29:30 -0000 1.37 +++ .cvsignore 23 Sep 2009 13:39:10 -0000 1.38 @@ -1 +1 @@ -libguestfs-1.0.71.tar.gz +libguestfs-1.0.72.tar.gz Index: libguestfs.spec =================================================================== RCS file: /cvs/pkgs/rpms/libguestfs/F-11/libguestfs.spec,v retrieving revision 1.64 retrieving revision 1.65 diff -u -p -r1.64 -r1.65 --- libguestfs.spec 22 Sep 2009 14:29:31 -0000 1.64 +++ libguestfs.spec 23 Sep 2009 13:39:11 -0000 1.65 @@ -4,7 +4,7 @@ Summary: Access and modify virtual machine disk images Name: libguestfs Epoch: 1 -Version: 1.0.71 +Version: 1.0.72 Release: 1%{?dist} License: LGPLv2+ Group: Development/Libraries @@ -64,7 +64,7 @@ BuildRequires: java >= 1.5.0 BuildRequires: jpackage-utils BuildRequires: java-devel -# For virt-inspector: +# For libguestfs-tools: BuildRequires: perl-Sys-Virt # Runtime requires: @@ -139,54 +139,55 @@ modifying virtual machine disk images fr scripts. -%package -n virt-inspector -Summary: Display OS version, kernel, drivers, etc in a virtual machine +%package tools +Summary: System administration tools for virtual machines Group: Development/Tools License: GPLv2+ Requires: %{name} = %{epoch}:%{version}-%{release} Requires: guestfish Requires: perl-Sys-Virt +# Obsolete and replace earlier packages. +Provides: virt-cat = %{epoch}:%{version}-%{release} +Obsoletes: virt-cat <= %{epoch}:%{version}-%{release} +Provides: virt-df = %{epoch}:%{version}-%{release} +Obsoletes: virt-df <= %{epoch}:%{version}-%{release} +Provides: virt-inspector = %{epoch}:%{version}-%{release} +Obsoletes: virt-inspector <= %{epoch}:%{version}-%{release} -%description -n virt-inspector -Virt-inspector examines a virtual machine and tries to determine the -version of the OS, the kernel version, what drivers are installed, -whether the virtual machine is fully virtualized (FV) or -para-virtualized (PV), what applications are installed and more. - - -%package -n virt-df -Summary: Display free space on virtual filesystems -Group: Development/Tools -License: GPLv2+ -Requires: %{name} = %{epoch}:%{version}-%{release} -Requires: perl-Sys-Virt # RHBZ#514309 Provides: virt-df2 = %{epoch}:%{version}-%{release} Obsoletes: virt-df2 <= %{epoch}:%{version}-%{release} +# These were never packages: +Provides: virt-edit = %{epoch}:%{version}-%{release} +Provides: virt-rescue = %{epoch}:%{version}-%{release} -%description -n virt-df -"virt-df" is a command line tool to display free space on virtual -machine filesystems. Unlike other tools, it doesn?t just display the -amount of space allocated to a virtual machine, but can look inside -the virtual machine to see how much space is really being used. -It is like the df(1) command, but for virtual machines, except that it -also works for Windows virtual machines. +%description tools +This package contains miscellaneous system administrator command line +tools for virtual machines. +Virt-cat is a command line tool to display the contents of a file in a +virtual machine. -%package -n virt-cat -Summary: Display a file in a virtual machine -Group: Development/Tools -License: GPLv2+ -Requires: %{name} = %{epoch}:%{version}-%{release} -Requires: perl-Sys-Virt +Virt-df is a command line tool to display free space on virtual +machine filesystems. Unlike other tools, it doesn?t just display the +amount of space allocated to a virtual machine, but can look inside +the virtual machine to see how much space is really being used. It is +like the df(1) command, but for virtual machines, except that it also +works for Windows virtual machines. + +Virt-edit is a command line tool to edit the contents of a file in a +virtual machine. +Virt-inspector examines a virtual machine and tries to determine the +version of the OS, the kernel version, what drivers are installed, +whether the virtual machine is fully virtualized (FV) or +para-virtualized (PV), what applications are installed and more. -%description -n virt-cat -"virt-cat" is a command line tool to display the contents -of a file in a virtual machine. +Virt-rescue provides a rescue shell for making interactive, +unstructured fixes to virtual machines. %package -n ocaml-%{name} @@ -452,22 +453,18 @@ rm -rf $RPM_BUILD_ROOT %{_mandir}/man1/guestfish.1* -%files -n virt-inspector -%defattr(-,root,root,-) -%{_bindir}/virt-inspector -%{_mandir}/man1/virt-inspector.1* - - -%files -n virt-df -%defattr(-,root,root,-) -%{_bindir}/virt-df -%{_mandir}/man1/virt-df.1* - - -%files -n virt-cat +%files tools %defattr(-,root,root,-) %{_bindir}/virt-cat %{_mandir}/man1/virt-cat.1* +%{_bindir}/virt-df +%{_mandir}/man1/virt-df.1* +%{_bindir}/virt-edit +%{_mandir}/man1/virt-edit.1* +%{_bindir}/virt-inspector +%{_mandir}/man1/virt-inspector.1* +%{_bindir}/virt-rescue +%{_mandir}/man1/virt-rescue.1* %files -n ocaml-%{name} @@ -535,6 +532,12 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Wed Sep 23 2009 Richard W.M. Jones - 1.0.72-1 +- New upstream release 1.0.72. +- New tools: virt-edit, virt-rescue. +- Combine virt-cat, virt-df, virt-edit, virt-inspector and virt-rescue + into a single package called libguestfs-tools. + * Tue Sep 22 2009 Richard W.M. Jones - 1.0.71-1 - New upstream release 1.0.71. Index: sources =================================================================== RCS file: /cvs/pkgs/rpms/libguestfs/F-11/sources,v retrieving revision 1.37 retrieving revision 1.38 diff -u -p -r1.37 -r1.38 --- sources 22 Sep 2009 14:29:31 -0000 1.37 +++ sources 23 Sep 2009 13:39:11 -0000 1.38 @@ -1 +1 @@ -24bf32735f1a259b14b692cf78ae5d74 libguestfs-1.0.71.tar.gz +d6c66e405e34c256c05860cb25801a0d libguestfs-1.0.72.tar.gz From rjones at fedoraproject.org Wed Sep 23 13:39:05 2009 From: rjones at fedoraproject.org (Richard W.M. Jones) Date: Wed, 23 Sep 2009 13:39:05 +0000 (UTC) Subject: [fedora-virt-maint] rpms/libguestfs/devel .cvsignore, 1.50, 1.51 libguestfs.spec, 1.100, 1.101 sources, 1.50, 1.51 Message-ID: <20090923133905.A5E3A11C00E6@cvs1.fedora.phx.redhat.com> Author: rjones Update of /cvs/pkgs/rpms/libguestfs/devel In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv15953 Modified Files: .cvsignore libguestfs.spec sources Log Message: Version 1.0.72. Index: .cvsignore =================================================================== RCS file: /cvs/pkgs/rpms/libguestfs/devel/.cvsignore,v retrieving revision 1.50 retrieving revision 1.51 diff -u -p -r1.50 -r1.51 --- .cvsignore 22 Sep 2009 14:09:44 -0000 1.50 +++ .cvsignore 23 Sep 2009 13:39:05 -0000 1.51 @@ -1 +1 @@ -libguestfs-1.0.71.tar.gz +libguestfs-1.0.72.tar.gz Index: libguestfs.spec =================================================================== RCS file: /cvs/pkgs/rpms/libguestfs/devel/libguestfs.spec,v retrieving revision 1.100 retrieving revision 1.101 diff -u -p -r1.100 -r1.101 --- libguestfs.spec 22 Sep 2009 14:30:30 -0000 1.100 +++ libguestfs.spec 23 Sep 2009 13:39:05 -0000 1.101 @@ -4,8 +4,8 @@ Summary: Access and modify virtual machine disk images Name: libguestfs Epoch: 1 -Version: 1.0.71 -Release: 2%{?dist} +Version: 1.0.72 +Release: 1%{?dist} License: LGPLv2+ Group: Development/Libraries URL: http://libguestfs.org/ @@ -64,7 +64,7 @@ BuildRequires: java >= 1.5.0 BuildRequires: jpackage-utils BuildRequires: java-devel -# For virt-inspector: +# For libguestfs-tools: BuildRequires: perl-Sys-Virt # Runtime requires: @@ -139,54 +139,55 @@ modifying virtual machine disk images fr scripts. -%package -n virt-inspector -Summary: Display OS version, kernel, drivers, etc in a virtual machine +%package tools +Summary: System administration tools for virtual machines Group: Development/Tools License: GPLv2+ Requires: %{name} = %{epoch}:%{version}-%{release} Requires: guestfish Requires: perl-Sys-Virt +# Obsolete and replace earlier packages. +Provides: virt-cat = %{epoch}:%{version}-%{release} +Obsoletes: virt-cat <= %{epoch}:%{version}-%{release} +Provides: virt-df = %{epoch}:%{version}-%{release} +Obsoletes: virt-df <= %{epoch}:%{version}-%{release} +Provides: virt-inspector = %{epoch}:%{version}-%{release} +Obsoletes: virt-inspector <= %{epoch}:%{version}-%{release} -%description -n virt-inspector -Virt-inspector examines a virtual machine and tries to determine the -version of the OS, the kernel version, what drivers are installed, -whether the virtual machine is fully virtualized (FV) or -para-virtualized (PV), what applications are installed and more. - - -%package -n virt-df -Summary: Display free space on virtual filesystems -Group: Development/Tools -License: GPLv2+ -Requires: %{name} = %{epoch}:%{version}-%{release} -Requires: perl-Sys-Virt # RHBZ#514309 Provides: virt-df2 = %{epoch}:%{version}-%{release} Obsoletes: virt-df2 <= %{epoch}:%{version}-%{release} +# These were never packages: +Provides: virt-edit = %{epoch}:%{version}-%{release} +Provides: virt-rescue = %{epoch}:%{version}-%{release} -%description -n virt-df -"virt-df" is a command line tool to display free space on virtual -machine filesystems. Unlike other tools, it doesn?t just display the -amount of space allocated to a virtual machine, but can look inside -the virtual machine to see how much space is really being used. -It is like the df(1) command, but for virtual machines, except that it -also works for Windows virtual machines. +%description tools +This package contains miscellaneous system administrator command line +tools for virtual machines. +Virt-cat is a command line tool to display the contents of a file in a +virtual machine. -%package -n virt-cat -Summary: Display a file in a virtual machine -Group: Development/Tools -License: GPLv2+ -Requires: %{name} = %{epoch}:%{version}-%{release} -Requires: perl-Sys-Virt +Virt-df is a command line tool to display free space on virtual +machine filesystems. Unlike other tools, it doesn?t just display the +amount of space allocated to a virtual machine, but can look inside +the virtual machine to see how much space is really being used. It is +like the df(1) command, but for virtual machines, except that it also +works for Windows virtual machines. + +Virt-edit is a command line tool to edit the contents of a file in a +virtual machine. +Virt-inspector examines a virtual machine and tries to determine the +version of the OS, the kernel version, what drivers are installed, +whether the virtual machine is fully virtualized (FV) or +para-virtualized (PV), what applications are installed and more. -%description -n virt-cat -"virt-cat" is a command line tool to display the contents -of a file in a virtual machine. +Virt-rescue provides a rescue shell for making interactive, +unstructured fixes to virtual machines. %package -n ocaml-%{name} @@ -456,22 +457,18 @@ rm -rf $RPM_BUILD_ROOT %{_mandir}/man1/guestfish.1* -%files -n virt-inspector -%defattr(-,root,root,-) -%{_bindir}/virt-inspector -%{_mandir}/man1/virt-inspector.1* - - -%files -n virt-df -%defattr(-,root,root,-) -%{_bindir}/virt-df -%{_mandir}/man1/virt-df.1* - - -%files -n virt-cat +%files tools %defattr(-,root,root,-) %{_bindir}/virt-cat %{_mandir}/man1/virt-cat.1* +%{_bindir}/virt-df +%{_mandir}/man1/virt-df.1* +%{_bindir}/virt-edit +%{_mandir}/man1/virt-edit.1* +%{_bindir}/virt-inspector +%{_mandir}/man1/virt-inspector.1* +%{_bindir}/virt-rescue +%{_mandir}/man1/virt-rescue.1* %files -n ocaml-%{name} @@ -539,6 +536,12 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Wed Sep 23 2009 Richard W.M. Jones - 1.0.72-1 +- New upstream release 1.0.72. +- New tools: virt-edit, virt-rescue. +- Combine virt-cat, virt-df, virt-edit, virt-inspector and virt-rescue + into a single package called libguestfs-tools. + * Tue Sep 22 2009 Richard W.M. Jones - 1.0.71-2 - New upstream release 1.0.71. Index: sources =================================================================== RCS file: /cvs/pkgs/rpms/libguestfs/devel/sources,v retrieving revision 1.50 retrieving revision 1.51 diff -u -p -r1.50 -r1.51 --- sources 22 Sep 2009 14:09:46 -0000 1.50 +++ sources 23 Sep 2009 13:39:05 -0000 1.51 @@ -1 +1 @@ -24bf32735f1a259b14b692cf78ae5d74 libguestfs-1.0.71.tar.gz +d6c66e405e34c256c05860cb25801a0d libguestfs-1.0.72.tar.gz From rjones at fedoraproject.org Wed Sep 23 13:39:12 2009 From: rjones at fedoraproject.org (Richard W.M. Jones) Date: Wed, 23 Sep 2009 13:39:12 +0000 (UTC) Subject: [fedora-virt-maint] rpms/libguestfs/EL-5 .cvsignore, 1.31, 1.32 libguestfs.spec, 1.68, 1.69 sources, 1.31, 1.32 Message-ID: <20090923133912.E55B611C00E6@cvs1.fedora.phx.redhat.com> Author: rjones Update of /cvs/pkgs/rpms/libguestfs/EL-5 In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv16032 Modified Files: .cvsignore libguestfs.spec sources Log Message: Version 1.0.72. Index: .cvsignore =================================================================== RCS file: /cvs/pkgs/rpms/libguestfs/EL-5/.cvsignore,v retrieving revision 1.31 retrieving revision 1.32 diff -u -p -r1.31 -r1.32 --- .cvsignore 22 Sep 2009 14:09:30 -0000 1.31 +++ .cvsignore 23 Sep 2009 13:39:12 -0000 1.32 @@ -1 +1 @@ -libguestfs-1.0.71.tar.gz +libguestfs-1.0.72.tar.gz Index: libguestfs.spec =================================================================== RCS file: /cvs/pkgs/rpms/libguestfs/EL-5/libguestfs.spec,v retrieving revision 1.68 retrieving revision 1.69 diff -u -p -r1.68 -r1.69 --- libguestfs.spec 22 Sep 2009 14:09:31 -0000 1.68 +++ libguestfs.spec 23 Sep 2009 13:39:12 -0000 1.69 @@ -4,7 +4,7 @@ Summary: Access and modify virtual machine disk images Name: libguestfs Epoch: 1 -Version: 1.0.71 +Version: 1.0.72 Release: 1%{?dist} License: LGPLv2+ Group: Development/Libraries @@ -78,7 +78,7 @@ BuildRequires: java >= 1.5.0 BuildRequires: jpackage-utils BuildRequires: java-devel -# For virt-inspector: +# For libguestfs-tools: #BuildRequires: perl-Sys-Virt # Runtime requires: @@ -158,51 +158,55 @@ modifying virtual machine disk images fr scripts. -#%package -n virt-inspector -#Summary: Display OS version, kernel, drivers, etc in a virtual machine -#Group: Development/Tools -#License: GPLv2+ -#Requires: %{name} = %{epoch}:%{version}-%{release} -#Requires: guestfish -#Requires: perl-Sys-Virt -# -# -#%description -n virt-inspector -#Virt-inspector examines a virtual machine and tries to determine the -#version of the OS, the kernel version, what drivers are installed, -#whether the virtual machine is fully virtualized (FV) or -#para-virtualized (PV), what applications are installed and more. - - -#%package -n virt-df -#Summary: Display free space on virtual filesystems -#Group: Development/Tools -#License: GPLv2+ -#Requires: %{name} = %{epoch}:%{version}-%{release} -#Requires: perl-Sys-Virt -# -# -#%description -n virt-df -#"virt-df" is a command line tool to display free space on virtual -#machine filesystems. Unlike other tools, it doesn?t just display the -#amount of space allocated to a virtual machine, but can look inside -#the virtual machine to see how much space is really being used. -# -#It is like the df(1) command, but for virtual machines, except that it -#also works for Windows virtual machines. - - -#%package -n virt-cat -#Summary: Display a file in a virtual machine -#Group: Development/Tools -#License: GPLv2+ -#Requires: %{name} = %{epoch}:%{version}-%{release} -#Requires: perl-Sys-Virt -# -# -#%description -n virt-cat -#"virt-cat" is a command line tool to display the contents -#of a file in a virtual machine. +# %package tools +# Summary: System administration tools for virtual machines +# Group: Development/Tools +# License: GPLv2+ +# Requires: %{name} = %{epoch}:%{version}-%{release} +# Requires: guestfish +# Requires: perl-Sys-Virt + +# # Obsolete and replace earlier packages. +# Provides: virt-cat = %{epoch}:%{version}-%{release} +# Obsoletes: virt-cat <= %{epoch}:%{version}-%{release} +# Provides: virt-df = %{epoch}:%{version}-%{release} +# Obsoletes: virt-df <= %{epoch}:%{version}-%{release} +# Provides: virt-inspector = %{epoch}:%{version}-%{release} +# Obsoletes: virt-inspector <= %{epoch}:%{version}-%{release} + +# # RHBZ#514309 +# Provides: virt-df2 = %{epoch}:%{version}-%{release} +# Obsoletes: virt-df2 <= %{epoch}:%{version}-%{release} + +# # These were never packages: +# Provides: virt-edit = %{epoch}:%{version}-%{release} +# Provides: virt-rescue = %{epoch}:%{version}-%{release} + + +# %description tools +# This package contains miscellaneous system administrator command line +# tools for virtual machines. + +# Virt-cat is a command line tool to display the contents of a file in a +# virtual machine. + +# Virt-df is a command line tool to display free space on virtual +# machine filesystems. Unlike other tools, it doesn?t just display the +# amount of space allocated to a virtual machine, but can look inside +# the virtual machine to see how much space is really being used. It is +# like the df(1) command, but for virtual machines, except that it also +# works for Windows virtual machines. + +# Virt-edit is a command line tool to edit the contents of a file in a +# virtual machine. + +# Virt-inspector examines a virtual machine and tries to determine the +# version of the OS, the kernel version, what drivers are installed, +# whether the virtual machine is fully virtualized (FV) or +# para-virtualized (PV), what applications are installed and more. + +# Virt-rescue provides a rescue shell for making interactive, +# unstructured fixes to virtual machines. %package -n ocaml-%{name} @@ -455,22 +459,18 @@ rm -rf $RPM_BUILD_ROOT %{_mandir}/man1/guestfish.1* -#%files -n virt-inspector -#%defattr(-,root,root,-) -#%{_bindir}/virt-inspector -#%{_mandir}/man1/virt-inspector.1* - - -#%files -n virt-df -#%defattr(-,root,root,-) -#%{_bindir}/virt-df -#%{_mandir}/man1/virt-df.1* - - -#%files -n virt-cat -#%defattr(-,root,root,-) -#%{_bindir}/virt-cat -#%{_mandir}/man1/virt-cat.1* +# %files tools +# %defattr(-,root,root,-) +# %{_bindir}/virt-cat +# %{_mandir}/man1/virt-cat.1* +# %{_bindir}/virt-df +# %{_mandir}/man1/virt-df.1* +# %{_bindir}/virt-edit +# %{_mandir}/man1/virt-edit.1* +# %{_bindir}/virt-inspector +# %{_mandir}/man1/virt-inspector.1* +# %{_bindir}/virt-rescue +# %{_mandir}/man1/virt-rescue.1* %files -n ocaml-%{name} @@ -538,6 +538,14 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Wed Sep 23 2009 Richard W.M. Jones - 1.0.72-1 +- New upstream release 1.0.72. +- New tools: virt-edit, virt-rescue. +- Combine virt-cat, virt-df, virt-edit, virt-inspector and virt-rescue + into a single package called libguestfs-tools. +- libguestfs-tools is still disabled on EPEL because we are + waiting for perl(Sys::Virt) to go into RHEL (in 5.4). + * Tue Sep 22 2009 Richard W.M. Jones - 1.0.71-1 - New upstream release 1.0.71. Index: sources =================================================================== RCS file: /cvs/pkgs/rpms/libguestfs/EL-5/sources,v retrieving revision 1.31 retrieving revision 1.32 diff -u -p -r1.31 -r1.32 --- sources 22 Sep 2009 14:09:31 -0000 1.31 +++ sources 23 Sep 2009 13:39:12 -0000 1.32 @@ -1 +1 @@ -24bf32735f1a259b14b692cf78ae5d74 libguestfs-1.0.71.tar.gz +d6c66e405e34c256c05860cb25801a0d libguestfs-1.0.72.tar.gz From rjones at fedoraproject.org Wed Sep 23 15:31:15 2009 From: rjones at fedoraproject.org (Richard W.M. Jones) Date: Wed, 23 Sep 2009 15:31:15 +0000 (UTC) Subject: [fedora-virt-maint] rpms/libguestfs/devel libguestfs.spec, 1.101, 1.102 Message-ID: <20090923153115.326CB11C00E6@cvs1.fedora.phx.redhat.com> Author: rjones Update of /cvs/pkgs/rpms/libguestfs/devel In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv26913 Modified Files: libguestfs.spec Log Message: Fix net builds. Index: libguestfs.spec =================================================================== RCS file: /cvs/pkgs/rpms/libguestfs/devel/libguestfs.spec,v retrieving revision 1.101 retrieving revision 1.102 diff -u -p -r1.101 -r1.102 --- libguestfs.spec 23 Sep 2009 13:39:05 -0000 1.101 +++ libguestfs.spec 23 Sep 2009 15:31:14 -0000 1.102 @@ -304,7 +304,7 @@ find /var/cache/yum -type f -name '*.rpm createrepo repo %define extra --with-mirror=file://$(pwd)/repo --with-repo=fedora-12 --with-updates=none %else -%define extra %nil +%define extra --with-mirror=http://download.fedora.redhat.com/pub/fedora/linux/development/x86_64/os/ %endif ./configure \ From crobinso at fedoraproject.org Thu Sep 24 13:55:17 2009 From: crobinso at fedoraproject.org (Cole Robinson) Date: Thu, 24 Sep 2009 13:55:17 +0000 (UTC) Subject: [fedora-virt-maint] rpms/python-virtinst/devel virtinst-0.500.0-change-path-perms.patch, NONE, 1.1 virtinst-0.500.0-no-iso-driver.patch, NONE, 1.1 virtinst-0.500.0-nonroot-qemu-net.patch, NONE, 1.1 python-virtinst.spec, 1.72, 1.73 Message-ID: <20090924135517.A764811C00DB@cvs1.fedora.phx.redhat.com> Author: crobinso Update of /cvs/pkgs/rpms/python-virtinst/devel In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv12769 Modified Files: python-virtinst.spec Added Files: virtinst-0.500.0-change-path-perms.patch virtinst-0.500.0-no-iso-driver.patch virtinst-0.500.0-nonroot-qemu-net.patch Log Message: Don't use usermode net for non-root qemu:///system via virt-install Fix cdrom installs where the iso is a storage volume (bz 524109) Fix path permissions for kernel/initrd download location (bz 523960) virtinst-0.500.0-change-path-perms.patch: Installer.py | 20 +++++++--- VirtualDisk.py | 108 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 120 insertions(+), 8 deletions(-) --- NEW FILE virtinst-0.500.0-change-path-perms.patch --- # HG changeset patch # User Cole Robinson # Date 1253738317 14400 # Node ID 53cd275974ab35a790b4c4bf1424d0950d5b095e # Parent aff98f0152935ad7cd57e86c4172a6683e6306c5 VirtualDisk: Add methods for checking/changing path perms for username. Since libvirtd can now run qemu processes as non-root, the tools need to try to check directory permissions and make sure they are at least searchable by a specific username. This simply implements the functions to make that happen. diff -r aff98f015293 -r 53cd275974ab virtinst/VirtualDisk.py --- a/virtinst/VirtualDisk.py Mon Sep 21 15:52:04 2009 -0400 +++ b/virtinst/VirtualDisk.py Wed Sep 23 16:38:37 2009 -0400 @@ -19,9 +19,11 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301 USA. -import os, statvfs +import os, stat, pwd, statvfs import subprocess import logging +import re + import urlgrabber.progress as progress import libvirt @@ -69,6 +71,46 @@ return fmt +def _name_uid(user): + """ + Return UID for string username + """ + pwdinfo = pwd.getpwnam(user) + return pwdinfo[2] + +def _is_dir_searchable(uid, username, path): + """ + Check if passed directory is searchable by uid + """ + try: + statinfo = os.stat(path) + except OSError: + return False + + if uid == statinfo.st_uid: + flag = stat.S_IXUSR + elif uid == statinfo.st_gid: + flag = stat.S_IXGRP + else: + flag = stat.S_IXOTH + + if bool(statinfo.st_mode & flag): + return True + + # Check POSIX ACL (since that is what we use to 'fix' access) + cmd = ["getfacl", path] + proc = subprocess.Popen(cmd, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE) + out, err = proc.communicate() + + if proc.returncode != 0: + logging.debug("Cmd '%s' failed: %s" % (cmd, err)) + return False + + return bool(re.search("user:%s:..x" % username, out)) + + class VirtualDisk(VirtualDevice): """ Builds a libvirt domain disk xml description @@ -156,6 +198,63 @@ return False + @staticmethod + def check_path_search_for_user(conn, path, username): + """ + Check if the passed user has search permissions for all the + directories in the disk path. + + @return: List of the directories the user cannot search, or empty list + @rtype : C{list} + """ + if _util.is_uri_remote(conn.getURI()): + return [] + + uid = _name_uid(username) + fixlist = [] + + dirname, base = os.path.split(path) + while base: + if not _is_dir_searchable(uid, username, dirname): + fixlist.append(dirname) + + dirname, base = os.path.split(dirname) + + return fixlist + + @staticmethod + def fix_path_search_for_user(conn, path, username): + """ + Try to fix any permission problems found by check_path_search_for_user + + @return: Return a dictionary of entries { broken path : error msg } + @rtype : C{dict} + """ + fixlist = VirtualDisk.check_path_search_for_user(conn, path, username) + if not fixlist: + return [] + + fixlist.reverse() + errdict = {} + + for dirname in fixlist: + try: + cmd = ["setfacl", "--modify", "user:%s:x" % username, dirname] + proc = subprocess.Popen(cmd, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE) + out, err = proc.communicate() + + logging.debug("Cmd '%s' output: \nout=%s, \nerr=%s" % + (cmd, out, err)) + if proc.returncode != 0: + raise ValueError(err) + except Exception, e: + errdict[dirname] = str(e) + + return errdict + + def __init__(self, path=None, size=None, transient=False, type=None, device=DEVICE_DISK, driverName=None, driverType=None, readOnly=False, sparse=True, conn=None, volObject=None, # HG changeset patch # User Cole Robinson # Date 1253741935 14400 # Node ID a523260ac56eb90e1eda067c2bbd5fc726bb0165 # Parent 53cd275974ab35a790b4c4bf1424d0950d5b095e VirtualDisk: Teach perms changing functions about a target directory. diff -r 53cd275974ab -r a523260ac56e virtinst/VirtualDisk.py --- a/virtinst/VirtualDisk.py Wed Sep 23 16:38:37 2009 -0400 +++ b/virtinst/VirtualDisk.py Wed Sep 23 17:38:55 2009 -0400 @@ -213,7 +213,12 @@ uid = _name_uid(username) fixlist = [] - dirname, base = os.path.split(path) + if os.path.isdir(path): + dirname = path + base = "-" + else: + dirname, base = os.path.split(path) + while base: if not _is_dir_searchable(uid, username, dirname): fixlist.append(dirname) diff -r 53cd275974ab virtinst/Installer.py --- a/virtinst/Installer.py Wed Sep 23 16:38:37 2009 -0400 +++ b/virtinst/Installer.py Wed Sep 23 17:32:14 2009 -0400 @@ -141,12 +141,20 @@ return XEN_SCRATCH if os.path.exists(LIBVIRT_SCRATCH): return LIBVIRT_SCRATCH - else: - scratch = os.path.expanduser("~/.virtinst/boot") - if not os.path.exists(scratch): - os.makedirs(scratch, 0750) - _util.selinux_restorecon(scratch) - return scratch + + scratch = os.path.expanduser("~/.virtinst/boot") + if not os.path.exists(scratch): + os.makedirs(scratch, 0751) + + if (self.conn and + not _util.is_uri_remote(self.conn.getURI()) and + _util.is_qemu_system(self.conn.getURI())): + # If we are using local qemu:///system, try to make sure the + # download location is searchable by the 'qemu' user + VirtualDisk.fix_path_search_for_user(self.conn, scratch, "qemu") + + _util.selinux_restorecon(scratch) + return scratch scratchdir = property(get_scratchdir) def get_cdrom(self): virtinst-0.500.0-no-iso-driver.patch: b/tests/xmlconfig-xml/misc-qemu-iso-disk.xml | 36 ++++++++++++++++++++++++ tests/testdriver.xml | 16 ++++++++++ tests/xmlconfig.py | 6 ++++ virtinst/VirtualDisk.py | 40 ++++++++++++++++----------- 4 files changed, 82 insertions(+), 16 deletions(-) --- NEW FILE virtinst-0.500.0-no-iso-driver.patch --- # HG changeset patch # User Cole Robinson # Date 1253562724 14400 # Node ID aff98f0152935ad7cd57e86c4172a6683e6306c5 # Parent 143b09da8bccc3b6b2069c29073ea5a6ef9ce69b VirtualDisk: Don't use 'iso' as a qemu driver name (bz 524109) diff -r 143b09da8bcc -r aff98f015293 tests/testdriver.xml --- a/tests/testdriver.xml Mon Sep 21 15:47:33 2009 -0400 +++ b/tests/testdriver.xml Mon Sep 21 15:52:04 2009 -0400 @@ -67,6 +67,22 @@ + iso-vol + 1000000 + 50000 + + + + + + bochs-vol + 1000000 + 50000 + + + + + testvol1.img 1000000 50000 diff -r 143b09da8bcc -r aff98f015293 tests/xmlconfig-xml/misc-qemu-iso-disk.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/xmlconfig-xml/misc-qemu-iso-disk.xml Mon Sep 21 15:52:04 2009 -0400 @@ -0,0 +1,36 @@ + + TestGuest + 204800 + 409600 + 12345678-1234-1234-1234-123456789012 + + hvm + /usr/lib/xen/boot/hvmloader + + + + + + + destroy + destroy + destroy + 5 + + /usr/lib/xen/bin/qemu-dm + + + + + + + + + + + + + + + + diff -r 143b09da8bcc -r aff98f015293 tests/xmlconfig.py --- a/tests/xmlconfig.py Mon Sep 21 15:47:33 2009 -0400 +++ b/tests/xmlconfig.py Mon Sep 21 15:52:04 2009 -0400 @@ -302,9 +302,15 @@ g.disks.append(get_blkdisk()) self._compare(g, "misc-qemu-driver-name", True) + VirtualDisk._get_uri = new_get_uri g = get_basic_fullyvirt_guest() g.disks.append(get_filedisk()) self._compare(g, "misc-qemu-driver-type", True) + + VirtualDisk._get_uri = new_get_uri + g = get_basic_fullyvirt_guest() + g.disks.append(get_filedisk("/default-pool/iso-vol")) + self._compare(g, "misc-qemu-iso-disk", True) finally: VirtualDisk._get_uri = oldgetdriver diff -r 143b09da8bcc -r aff98f015293 virtinst/VirtualDisk.py --- a/virtinst/VirtualDisk.py Mon Sep 21 15:47:33 2009 -0400 +++ b/virtinst/VirtualDisk.py Mon Sep 21 15:52:04 2009 -0400 @@ -55,6 +55,20 @@ except OSError: return False +def _qemu_sanitize_drvtype(phystype, fmt): + """ + Sanitize libvirt storage volume format to a valid qemu driver type + """ + raw_list = [ "iso" ] + + if phystype == VirtualDisk.TYPE_BLOCK: + return VirtualDisk.DRIVER_QEMU_RAW + + if fmt in raw_list: + return VirtualDisk.DRIVER_QEMU_RAW + + return fmt + class VirtualDisk(VirtualDevice): """ Builds a libvirt domain disk xml description @@ -490,8 +504,8 @@ http://lists.gnu.org/archive/html/qemu-devel/2008-04/msg00675.html """ - drvname = None - drvtype = None + drvname = self._driverName + drvtype = self._driverType if self.conn: driver = _util.get_uri_driver(self._get_uri()) @@ -499,15 +513,15 @@ drvname = self.DRIVER_QEMU if self.vol_object: - drvtype = _util.get_xml_path(self.vol_object.XMLDesc(0), - "/volume/target/format/@type") + fmt = _util.get_xml_path(self.vol_object.XMLDesc(0), + "/volume/target/format/@type") + if drvname == self.DRIVER_QEMU: + drvtype = _qemu_sanitize_drvtype(self.type, fmt) elif self.vol_install: if drvname == self.DRIVER_QEMU: - if self.vol_install.file_type == libvirt.VIR_STORAGE_VOL_FILE: - drvtype = self.vol_install.format - else: - drvtype = self.DRIVER_QEMU_RAW + drvtype = _qemu_sanitize_drvtype(self.type, + self.vol_install.format) elif self.__creating_storage(): if drvname == self.DRIVER_QEMU: @@ -729,8 +743,10 @@ managed_storage = self.__storage_specified() create_media = self.__creating_storage() + self.__set_dev_type() self.__set_size() self.__set_format() + self.__set_driver() if not self.selinux_label: # If we are using existing storage, pull the label from it @@ -745,9 +761,6 @@ self._selinux_label = context or "" - # Set driverName + driverType - self.__set_driver() - # If not creating the storage, our job is easy if not create_media: # Make sure we have access to the local path @@ -757,7 +770,6 @@ raise ValueError(_("The path '%s' must be a file or a " "device, not a directory") % self.path) - self.__set_dev_type() return True @@ -770,7 +782,6 @@ if self.type is self.TYPE_BLOCK: raise ValueError, _("Local block device path '%s' must " "exist.") % self.path - self.set_type(self.TYPE_FILE, validate=False) # Path doesn't exist: make sure we have write access to dir if not os.access(os.path.dirname(self.path), os.R_OK): @@ -782,9 +793,6 @@ if not os.access(os.path.dirname(self.path), os.W_OK): raise ValueError, _("No write access to directory '%s'") % \ os.path.dirname(self.path) - else: - # Set dev type from existing storage - self.__set_dev_type() # Applicable for managed or local storage ret = self.is_size_conflict() virtinst-0.500.0-nonroot-qemu-net.patch: User.py | 4 ++++ __init__.py | 2 +- _util.py | 10 ++++++++++ cli.py | 4 ++-- util.py | 4 ++-- 5 files changed, 19 insertions(+), 5 deletions(-) --- NEW FILE virtinst-0.500.0-nonroot-qemu-net.patch --- # HG changeset patch # User Cole Robinson # Date 1253130900 14400 # Node ID 761714f08589587d6d24d4564664561d660becd6 # Parent be36b376adad1d7a57eff536aacae769c432f4c0 Use virtual networking (not user) if we are non-root on qemu:///system. Since virt-install can use policykit now, we can be non-root and still use qemu:///system. diff -r be36b376adad -r 761714f08589 virtinst/User.py --- a/virtinst/User.py Wed Sep 16 15:51:31 2009 -0400 +++ b/virtinst/User.py Wed Sep 16 15:55:00 2009 -0400 @@ -19,6 +19,7 @@ import platform import os +import _util class User(object): """Defines a particular user account.""" @@ -50,6 +51,9 @@ if priv == self.PRIV_QEMU_SYSTEM: return self._euid == 0 + if priv == self.PRIV_CREATE_NETWORK: + return (self._euid == 0) or _util.is_qemu_system(conn) + if platform.system() != 'SunOS': is_xen = not conn or conn.lower()[0:3] == 'xen' if priv in [ self.PRIV_CLONE, self.PRIV_CREATE_DOMAIN ]: diff -r be36b376adad -r 761714f08589 virtinst/__init__.py --- a/virtinst/__init__.py Wed Sep 16 15:51:31 2009 -0400 +++ b/virtinst/__init__.py Wed Sep 16 15:55:00 2009 -0400 @@ -24,7 +24,6 @@ def _virtinst(msg): return gettext.dgettext(gettext_app, msg) -import util import Storage from Guest import Guest, XenGuest from VirtualDevice import VirtualDevice @@ -47,6 +46,7 @@ from ImageManager import ImageInstaller from CloneManager import CloneDesign from User import User +import util # This represents the PUBLIC API. Any changes to these classes (or 'util.py') # must be mindful of this fact. diff -r be36b376adad -r 761714f08589 virtinst/_util.py --- a/virtinst/_util.py Wed Sep 16 15:51:31 2009 -0400 +++ b/virtinst/_util.py Wed Sep 16 15:55:00 2009 -0400 @@ -374,6 +374,16 @@ return None +def is_qemu_system(conn): + if not conn: + return False + + (scheme, ignore, ignore, + path, ignore, ignore) = uri_split(conn) + if path == "/system" and scheme.startswith("qemu"): + return True + return False + # # These functions accidentally ended up in the API under virtinst.util # diff -r be36b376adad -r 761714f08589 virtinst/cli.py --- a/virtinst/cli.py Wed Sep 16 15:51:31 2009 -0400 +++ b/virtinst/cli.py Wed Sep 16 15:55:00 2009 -0400 @@ -638,7 +638,7 @@ net = _util.default_network(conn) networks.append(net[0] + ":" + net[1]) else: - networks.append("user") + networks.append(VirtualNetworkInterface.TYPE_USER) # ensure we have less macs then networks, otherwise autofill the mac list if len(macs) > len(networks): @@ -654,7 +654,7 @@ net = _util.default_network(conn) networks.append(net[0] + ":" + net[1]) else: - networks.append("user") + networks.append(VirtualNetworkInterface.TYPE_USER) macs.append(None) net_init_dicts = [] diff -r be36b376adad -r 761714f08589 virtinst/util.py --- a/virtinst/util.py Wed Sep 16 15:51:31 2009 -0400 +++ b/virtinst/util.py Wed Sep 16 15:55:00 2009 -0400 @@ -40,7 +40,7 @@ from virtinst import _virtinst as _ import virtinst import CapabilitiesParser -from User import User +import User KEYBOARD_DIR = "/etc/sysconfig/keyboard" XORG_CONF = "/etc/X11/xorg.conf" @@ -107,7 +107,7 @@ os.path.exists("/usr/bin/qemu-kvm") or \ os.path.exists("/usr/bin/kvm") or \ os.path.exists("/usr/bin/xenner"): - if User.current().has_priv(User.PRIV_QEMU_SYSTEM): + if User.User.current().has_priv(User.User.PRIV_QEMU_SYSTEM): return "qemu:///system" else: return "qemu:///session" Index: python-virtinst.spec =================================================================== RCS file: /cvs/pkgs/rpms/python-virtinst/devel/python-virtinst.spec,v retrieving revision 1.72 retrieving revision 1.73 diff -u -p -r1.72 -r1.73 --- python-virtinst.spec 16 Sep 2009 17:33:00 -0000 1.72 +++ python-virtinst.spec 24 Sep 2009 13:55:17 -0000 1.73 @@ -17,7 +17,7 @@ Summary: Python modules and utilities for installing virtual machines Name: python-%{appname} Version: 0.500.0 -Release: 3%{_extra_release} +Release: 4%{_extra_release} Source0: http://virt-manager.org/download/sources/%{appname}/%{appname}-%{version}.tar.gz # Don't erroneously set limit for amount of virtio devices (bz 499654) Patch1: %{appname}-%{version}-virtio-dev-limit.patch @@ -33,6 +33,12 @@ Patch5: /home/boston/crobinso/virtinst-0 Patch6: /home/boston/crobinso/virtinst-0.500.0-disk-format.patch # Add Fedora12 to os dictionary Patch7: /home/boston/crobinso/virtinst-0.500.0-f12-distro.patch +# Don't use usermode net for non-root qemu:///system via virt-install +Patch8: %{appname}-%{version}-nonroot-qemu-net.patch +# Fix cdrom installs where the iso is a storage volume (bz 524109) +Patch9: %{appname}-%{version}-no-iso-driver.patch +# Fix path permissions for kernel/initrd download location (bz 523960) +Patch10: %{appname}-%{version}-change-path-perms.patch License: GPLv2+ Group: Development/Libraries @@ -67,6 +73,9 @@ and install new VMs) and virt-clone (clo %patch5 -p1 %patch6 -p1 %patch7 -p1 +%patch8 -p1 +%patch9 -p1 +%patch10 -p1 %build python setup.py build @@ -102,6 +111,11 @@ rm -rf $RPM_BUILD_ROOT %{_bindir}/virt-convert %changelog +* Thu Sep 24 2009 Cole Robinson - 0.500.0-4.fc12 +- Don't use usermode net for non-root qemu:///system via virt-install +- Fix cdrom installs where the iso is a storage volume (bz 524109) +- Fix path permissions for kernel/initrd download location (bz 523960) + * Wed Sep 16 2009 Cole Robinson - 0.500.0-3.fc12 - Don't generate bogus disk driver XML. - Add '--disk format=' for specifying format (qcow2, ...) when provisioning From crobinso at fedoraproject.org Thu Sep 24 15:47:36 2009 From: crobinso at fedoraproject.org (Cole Robinson) Date: Thu, 24 Sep 2009 15:47:36 +0000 (UTC) Subject: [fedora-virt-maint] rpms/virt-manager/devel virt-manager-0.8.0-fix-path-perms.patch, NONE, 1.1 virt-manager-0.8.0-refresh-disk-space.patch, NONE, 1.1 virtinst-0.500.0-change-path-perms.patch, NONE, 1.1 virtinst-0.500.0-no-iso-driver.patch, NONE, 1.1 virt-manager.spec, 1.59, 1.60 Message-ID: <20090924154736.4E9A411C00DB@cvs1.fedora.phx.redhat.com> Author: crobinso Update of /cvs/pkgs/rpms/virt-manager/devel In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv11358 Modified Files: virt-manager.spec Added Files: virt-manager-0.8.0-fix-path-perms.patch virt-manager-0.8.0-refresh-disk-space.patch virtinst-0.500.0-change-path-perms.patch virtinst-0.500.0-no-iso-driver.patch Log Message: Fix cdrom installs where the iso is a storage volume (bz 524109) Fix path permissions for kernel/initrd download location (bz 523960) virt-manager-0.8.0-fix-path-perms.patch: addhardware.py | 7 ++++ choosecd.py | 5 +++ config.py | 12 +++++++ connection.py | 7 ++++ create.py | 90 +++++++++++++++++++++++++++++++++++++++++++++++---------- error.py | 58 ++++++++++++++++++++++++++++++++++++ 6 files changed, 164 insertions(+), 15 deletions(-) --- NEW FILE virt-manager-0.8.0-fix-path-perms.patch --- # HG changeset patch # User Cole Robinson # Date 1253738576 14400 # Node ID e7ee75a8f1353f2c42df93b5090b05fbdf89720a # Parent 292a065aad7e4e5e5d50a71337efab2361378313 Add dialog-with-checkbox helper functions. Useful for things like "Don't show this again'. diff -r 292a065aad7e -r e7ee75a8f135 src/virtManager/error.py --- a/src/virtManager/error.py Wed Sep 23 11:49:35 2009 -0400 +++ b/src/virtManager/error.py Wed Sep 23 16:42:56 2009 -0400 @@ -131,3 +131,61 @@ def ok_cancel(self, text1, text2=None): return self._show_warning(gtk.BUTTONS_OK_CANCEL, text1, text2) + def warn_chkbox(self, text1, text2=None, chktext=None): + chkbox = vmmCheckDialog(self.parent, gtk.MESSAGE_WARNING) + return chkbox.show_chkbox(text1, text2, chktext) + + def err_chkbox(self, text1, text2=None, chktext=None): + chkbox = vmmCheckDialog(self.parent, gtk.MESSAGE_ERROR) + return chkbox.show_chkbox(text1, text2, chktext) + +class vmmCheckDialog (gtk.MessageDialog): + def __init__ (self, parent=None, typ=gtk.MESSAGE_INFO): + if typ == gtk.MESSAGE_WARNING: + buttons = gtk.BUTTONS_OK_CANCEL + else: + buttons = gtk.BUTTONS_OK + + gtk.MessageDialog.__init__ (self, parent, 0, typ, buttons) + + self.connect("response", self.response_cb) + self.connect("delete-event", self.hide_on_delete) + self.set_title("") + + self.chk_vbox = gtk.VBox(False, False) + self.chk_vbox.set_spacing(0) + + self.chk_align = gtk.Alignment() + self.chk_align.set_padding(0, 0, 62, 0) + self.chk_align.add(self.chk_vbox) + + self.chk_align.show_all() + self.vbox.pack_start(self.chk_align) + + def response_cb(self, src, ignore): + src.hide() + + def show_chkbox(self, text1, text2=None, chktext=None): + chkbox = None + res = None + chkres = None + + self.hide() + for c in self.chk_vbox.get_children(): + self.chk_vbox.remove(c) + + self.set_property("text", text1) + + if text2: + self.format_secondary_text(text2) + + if chktext: + chkbox = gtk.CheckButton(chktext) + self.chk_vbox.add(chkbox) + chkbox.show() + + res = self.run() in [ gtk.RESPONSE_YES, gtk.RESPONSE_OK ] + if chktext: + res = [res, chkbox.get_active()] + + return res # HG changeset patch # User Cole Robinson # Date 1253738620 14400 # Node ID f5f3ff4f8942d631234f8e008d806bd502c58bc3 # Parent e7ee75a8f1353f2c42df93b5090b05fbdf89720a connection: Add is_qemu_system helper. diff -r e7ee75a8f135 -r f5f3ff4f8942 src/virtManager/connection.py --- a/src/virtManager/connection.py Wed Sep 23 16:42:56 2009 -0400 +++ b/src/virtManager/connection.py Wed Sep 23 16:43:40 2009 -0400 @@ -201,6 +201,13 @@ def is_nodedev_capable(self): return virtinst.NodeDeviceParser.is_nodedev_capable(self.vmm) + def is_qemu_system(self): + (scheme, ignore, ignore, + path, ignore, ignore) = virtinst.util.uri_split(self.uri) + if path == "/system" and scheme.startswith("qemu"): + return True + return False + def is_qemu_session(self): (scheme, ignore, ignore, path, ignore, ignore) = virtinst.util.uri_split(self.uri) # HG changeset patch # User Cole Robinson # Date 1253806909 14400 # Node ID cfcd19d057ddc973a129e7816cd4ea39f0d4365a # Parent f5f3ff4f8942d631234f8e008d806bd502c58bc3 create: Don't prompt with same dialog multiple times. diff -r f5f3ff4f8942 -r cfcd19d057dd src/virtManager/create.py --- a/src/virtManager/create.py Wed Sep 23 16:43:40 2009 -0400 +++ b/src/virtManager/create.py Thu Sep 24 11:41:49 2009 -0400 @@ -1122,7 +1122,7 @@ if pagenum == PAGE_NAME: return self.validate_name_page() elif pagenum == PAGE_INSTALL: - return self.validate_install_page() + return self.validate_install_page(revalidate=False) elif pagenum == PAGE_MEM: return self.validate_mem_page() elif pagenum == PAGE_STORAGE: @@ -1135,7 +1135,7 @@ return False elif not self.validate_mem_page(): return False - return self.validate_storage_page() + return self.validate_storage_page(revalidate=False) elif pagenum == PAGE_FINISH: # Since we allow the user to change to change HV type + arch @@ -1169,7 +1169,7 @@ return True - def validate_install_page(self): + def validate_install_page(self, revalidate=True): instmethod = self.get_config_install_page() installer = None location = None @@ -1270,7 +1270,7 @@ return True - def validate_storage_page(self): + def validate_storage_page(self, revalidate=True): use_storage = self.window.get_widget("enable-storage").get_active() self.guest.disks = [] @@ -1296,19 +1296,21 @@ return self.verr(_("Storage parameter error."), str(e)) isfatal, errmsg = disk.is_size_conflict() - if not isfatal and errmsg: + if not revalidate and not isfatal and errmsg: # Fatal errors are reported when setting 'size' res = self.err.ok_cancel(_("Not Enough Free Space"), errmsg) if not res: return False # Disk collision - if disk.is_conflict_disk(self.guest.conn): - return self.err.yes_no(_('Disk "%s" is already in use by another ' - 'guest!' % disk.path), - _("Do you really want to use the disk?")) - else: - return True + if not revalidate and disk.is_conflict_disk(self.guest.conn): + res = self.err.yes_no(_('Disk "%s" is already in use by another ' + 'guest!' % disk.path), + _("Do you really want to use the disk?")) + if not res: + return False + + return True def validate_final_page(self): nettype, devname, macaddr = self.get_config_network_info() diff -r 343b42ebee5b src/virtManager/addhardware.py --- a/src/virtManager/addhardware.py Thu Sep 24 11:41:49 2009 -0400 +++ b/src/virtManager/addhardware.py Thu Sep 24 11:44:49 2009 -0400 @@ -31,6 +31,7 @@ import virtinst from virtinst import VirtualCharDevice, VirtualDevice, VirtualVideoDevice +import virtManager.create import virtManager.util as vmmutil from virtManager.asyncjob import vmmAsyncJob from virtManager.error import vmmErrorDialog @@ -1054,6 +1055,7 @@ return self.err.val_err(_("Hardware Type Required"), \ _("You must specify what type of hardware to add.")) self._dev = None + elif page_num == PAGE_DISK: path = self.get_config_disk_image() if path == None or len(path) == 0: @@ -1102,6 +1104,11 @@ _("Do you really want to use the disk?")) return res + # Make sure qemu can access path + virtManager.create.check_path_search_for_qemu(self, + self.vm.connection, + self._dev.path) + elif page_num == PAGE_NETWORK: net = self.get_config_network() if self.window.get_widget("net-type-network").get_active(): diff -r 343b42ebee5b src/virtManager/choosecd.py --- a/src/virtManager/choosecd.py Thu Sep 24 11:41:49 2009 -0400 +++ b/src/virtManager/choosecd.py Thu Sep 24 11:44:49 2009 -0400 @@ -24,6 +24,7 @@ import virtinst import virtManager.opticalhelper +import virtManager.create from virtManager.storagebrowse import vmmStorageBrowser from virtManager.error import vmmErrorDialog @@ -108,6 +109,10 @@ except Exception, e: return self.err.val_err(_("Invalid Media Path"), str(e)) + # Make sure qemu can access the path + virtManager.create.check_path_search_for_qemu(self, self.conn, + disk.path) + self.emit("cdrom-chosen", disk.type, disk.path, self.dev_id_info) self.cancel() diff -r 343b42ebee5b src/virtManager/config.py --- a/src/virtManager/config.py Thu Sep 24 11:41:49 2009 -0400 +++ b/src/virtManager/config.py Thu Sep 24 11:44:49 2009 -0400 @@ -558,3 +558,15 @@ else: return os.getcwd() + def add_perms_fix_ignore(self, pathlist): + current_list = self.get_perms_fix_ignore() or [] + for path in pathlist: + if path in current_list: + continue + current_list.append(path) + self.conf.set_list(self.conf_dir + "/paths/perms_fix_ignore", + gconf.VALUE_STRING, + current_list) + def get_perms_fix_ignore(self): + return self.conf.get_list(self.conf_dir + "/paths/perms_fix_ignore", + gconf.VALUE_STRING) diff -r 343b42ebee5b src/virtManager/create.py --- a/src/virtManager/create.py Thu Sep 24 11:41:49 2009 -0400 +++ b/src/virtManager/create.py Thu Sep 24 11:44:49 2009 -0400 @@ -30,6 +30,7 @@ import virtinst from virtinst import VirtualNetworkInterface +from virtinst import VirtualDisk import virtManager.opticalhelper from virtManager import util @@ -53,6 +54,54 @@ INSTALL_PAGE_URL = 1 INSTALL_PAGE_PXE = 2 +def check_path_search_for_qemu(vmm_obj, conn, path): + if conn.is_remote() or not conn.is_qemu_system(): + return + + user = "qemu" + + skip_paths = vmm_obj.config.get_perms_fix_ignore() + broken_paths = VirtualDisk.check_path_search_for_user(conn.vmm, path, user) + for p in broken_paths: + if p in skip_paths: + broken_paths.remove(p) + + if not broken_paths: + return + + logging.debug("No search access for dirs: %s" % broken_paths) + resp, chkres = vmm_obj.err.warn_chkbox( + _("The emulator may not have search permissions " + "for the path '%s'.") % path, + _("Do you want to correct this now?"), + _("Don't ask about these directories again.")) + + if chkres: + vmm_obj.config.add_perms_fix_ignore(broken_paths) + if not resp: + return + + logging.debug("Attempting to correct permission issues.") + errors = VirtualDisk.fix_path_search_for_user(conn.vmm, path, user) + if not errors: + return + + errmsg = _("Errors were encountered changing permissions for the " + "following directories:") + details = "" + for path, error in errors.items(): + if path not in broken_paths: + continue + details += "%s : %s\n" % (path, error) + + logging.debug("Permission errors:\n%s" % details) + + ignore, chkres = vmm_obj.err.err_chkbox(errmsg, details, + _("Don't ask about these directories again.")) + + if chkres: + vmm_obj.config.add_perms_fix_ignore(errors.keys()) + class vmmCreate(gobject.GObject): __gsignals__ = { "action-show-console": (gobject.SIGNAL_RUN_FIRST, @@ -1245,6 +1294,11 @@ return self.err.val_err(_("Error setting OS information."), str(e)) + if instmethod == INSTALL_PAGE_ISO and not revalidate: + # Check if 'qemu' user can access disk + check_path_search_for_qemu(self, self.conn, + self.guest.installer.location) + # Validation passed, store the install path (if there is one) in # gconf self.get_config_local_media(store_media=True) @@ -1286,10 +1340,10 @@ if not diskpath: return self.verr(_("A storage path must be specified.")) - disk = virtinst.VirtualDisk(conn = self.conn.vmm, - path = diskpath, - size = disksize, - sparse = sparse) + disk = VirtualDisk(conn = self.conn.vmm, + path = diskpath, + size = disksize, + sparse = sparse) self.guest.disks.append(disk) except Exception, e: @@ -1310,6 +1364,10 @@ if not res: return False + if not revalidate: + # Check if 'qemu' user can access disk + check_path_search_for_qemu(self, self.conn, disk.path) + return True def validate_final_page(self): virt-manager-0.8.0-refresh-disk-space.patch: create.py | 40 +++++++++++++++++++++++++++++++++------- 1 file changed, 33 insertions(+), 7 deletions(-) --- NEW FILE virt-manager-0.8.0-refresh-disk-space.patch --- # HG changeset patch # User Cole Robinson # Date 1253563791 14400 # Node ID f75237b0a84e73552a55ef0121215633c4530879 # Parent d3b377306a994f66cd1c03f3bcbef17c4b060720 Use timer to refresh available disk space in 'New VM' wizard (bz 502777) diff -r d3b377306a99 -r f75237b0a84e src/virtManager/create.py --- a/src/virtManager/create.py Thu Sep 17 13:45:53 2009 -0400 +++ b/src/virtManager/create.py Mon Sep 21 16:09:51 2009 -0400 @@ -93,6 +93,10 @@ # 'Guest' class from the previous failed install self.failed_guest = None + # Host space polling + self.host_storage_timer = None + self.host_storage = None + self.window.signal_autoconnect({ "on_vmm_newcreate_delete_event" : self.close, @@ -136,8 +140,18 @@ def close(self, ignore1=None, ignore2=None): self.topwin.hide() + self.remove_timers() + return 1 + def remove_timers(self): + try: + if self.host_storage_timer: + gobject.source_remote(self.host_storage_timer) + self.host_storage_timer = None + except: + pass + def set_conn(self, newconn): if self.conn == newconn: return @@ -303,9 +317,11 @@ self.window.get_widget("config-cpus").set_value(1) # Storage + if not self.host_storage_timer: + self.host_storage_timer = gobject.timeout_add(3 * 1000, + self.host_space_tick) self.window.get_widget("enable-storage").set_active(True) self.window.get_widget("config-storage-create").set_active(True) - # FIXME: Make sure this doesn't exceed host? self.window.get_widget("config-storage-size").set_value(8) self.window.get_widget("config-storage-entry").set_text("") self.window.get_widget("config-storage-nosparse").set_active(True) @@ -437,11 +453,6 @@ # Storage have_storage = (is_local or is_storage_capable) storage_tooltip = None - max_storage = self.host_disk_space() - hd_label = "%s available on the host" % self.pretty_storage(max_storage) - hd_label = ("%s" % hd_label) - self.window.get_widget("phys-hd-label").set_markup(hd_label) - self.window.get_widget("config-storage-size").set_range(1, max_storage) use_storage = self.window.get_widget("config-storage-select") storage_area = self.window.get_widget("config-storage-area") @@ -863,6 +874,7 @@ # FIXME: use a conn specific function after we send pool-added pool = virtinst.util.lookup_pool_by_path(self.conn.vmm, path) if pool: + pool.refresh(0) avail = int(virtinst.util.get_xml_path(pool.XMLDesc(0), "/pool/available")) @@ -870,7 +882,21 @@ vfs = os.statvfs(os.path.dirname(path)) avail = vfs[statvfs.F_FRSIZE] * vfs[statvfs.F_BAVAIL] - return int(avail / 1024.0 / 1024.0 / 1024.0) + return float(avail / 1024.0 / 1024.0 / 1024.0) + + def host_space_tick(self): + max_storage = self.host_disk_space() + if self.host_storage == max_storage: + return 1 + self.host_storage = max_storage + + hd_label = ("%s available in the default location" % + self.pretty_storage(max_storage)) + hd_label = ("%s" % hd_label) + self.window.get_widget("phys-hd-label").set_markup(hd_label) + self.window.get_widget("config-storage-size").set_range(1, self.host_storage) + + return 1 def get_config_network_info(self): netidx = self.window.get_widget("config-netdev").get_active() virtinst-0.500.0-change-path-perms.patch: Installer.py | 20 +++++++--- VirtualDisk.py | 108 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 120 insertions(+), 8 deletions(-) --- NEW FILE virtinst-0.500.0-change-path-perms.patch --- # HG changeset patch # User Cole Robinson # Date 1253738317 14400 # Node ID 53cd275974ab35a790b4c4bf1424d0950d5b095e # Parent aff98f0152935ad7cd57e86c4172a6683e6306c5 VirtualDisk: Add methods for checking/changing path perms for username. Since libvirtd can now run qemu processes as non-root, the tools need to try to check directory permissions and make sure they are at least searchable by a specific username. This simply implements the functions to make that happen. diff -r aff98f015293 -r 53cd275974ab virtinst/VirtualDisk.py --- a/virtinst/VirtualDisk.py Mon Sep 21 15:52:04 2009 -0400 +++ b/virtinst/VirtualDisk.py Wed Sep 23 16:38:37 2009 -0400 @@ -19,9 +19,11 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301 USA. -import os, statvfs +import os, stat, pwd, statvfs import subprocess import logging +import re + import urlgrabber.progress as progress import libvirt @@ -69,6 +71,46 @@ return fmt +def _name_uid(user): + """ + Return UID for string username + """ + pwdinfo = pwd.getpwnam(user) + return pwdinfo[2] + +def _is_dir_searchable(uid, username, path): + """ + Check if passed directory is searchable by uid + """ + try: + statinfo = os.stat(path) + except OSError: + return False + + if uid == statinfo.st_uid: + flag = stat.S_IXUSR + elif uid == statinfo.st_gid: + flag = stat.S_IXGRP + else: + flag = stat.S_IXOTH + + if bool(statinfo.st_mode & flag): + return True + + # Check POSIX ACL (since that is what we use to 'fix' access) + cmd = ["getfacl", path] + proc = subprocess.Popen(cmd, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE) + out, err = proc.communicate() + + if proc.returncode != 0: + logging.debug("Cmd '%s' failed: %s" % (cmd, err)) + return False + + return bool(re.search("user:%s:..x" % username, out)) + + class VirtualDisk(VirtualDevice): """ Builds a libvirt domain disk xml description @@ -156,6 +198,63 @@ return False + @staticmethod + def check_path_search_for_user(conn, path, username): + """ + Check if the passed user has search permissions for all the + directories in the disk path. + + @return: List of the directories the user cannot search, or empty list + @rtype : C{list} + """ + if _util.is_uri_remote(conn.getURI()): + return [] + + uid = _name_uid(username) + fixlist = [] + + dirname, base = os.path.split(path) + while base: + if not _is_dir_searchable(uid, username, dirname): + fixlist.append(dirname) + + dirname, base = os.path.split(dirname) + + return fixlist + + @staticmethod + def fix_path_search_for_user(conn, path, username): + """ + Try to fix any permission problems found by check_path_search_for_user + + @return: Return a dictionary of entries { broken path : error msg } + @rtype : C{dict} + """ + fixlist = VirtualDisk.check_path_search_for_user(conn, path, username) + if not fixlist: + return [] + + fixlist.reverse() + errdict = {} + + for dirname in fixlist: + try: + cmd = ["setfacl", "--modify", "user:%s:x" % username, dirname] + proc = subprocess.Popen(cmd, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE) + out, err = proc.communicate() + + logging.debug("Cmd '%s' output: \nout=%s, \nerr=%s" % + (cmd, out, err)) + if proc.returncode != 0: + raise ValueError(err) + except Exception, e: + errdict[dirname] = str(e) + + return errdict + + def __init__(self, path=None, size=None, transient=False, type=None, device=DEVICE_DISK, driverName=None, driverType=None, readOnly=False, sparse=True, conn=None, volObject=None, # HG changeset patch # User Cole Robinson # Date 1253741935 14400 # Node ID a523260ac56eb90e1eda067c2bbd5fc726bb0165 # Parent 53cd275974ab35a790b4c4bf1424d0950d5b095e VirtualDisk: Teach perms changing functions about a target directory. diff -r 53cd275974ab -r a523260ac56e virtinst/VirtualDisk.py --- a/virtinst/VirtualDisk.py Wed Sep 23 16:38:37 2009 -0400 +++ b/virtinst/VirtualDisk.py Wed Sep 23 17:38:55 2009 -0400 @@ -213,7 +213,12 @@ uid = _name_uid(username) fixlist = [] - dirname, base = os.path.split(path) + if os.path.isdir(path): + dirname = path + base = "-" + else: + dirname, base = os.path.split(path) + while base: if not _is_dir_searchable(uid, username, dirname): fixlist.append(dirname) diff -r 53cd275974ab virtinst/Installer.py --- a/virtinst/Installer.py Wed Sep 23 16:38:37 2009 -0400 +++ b/virtinst/Installer.py Wed Sep 23 17:32:14 2009 -0400 @@ -141,12 +141,20 @@ return XEN_SCRATCH if os.path.exists(LIBVIRT_SCRATCH): return LIBVIRT_SCRATCH - else: - scratch = os.path.expanduser("~/.virtinst/boot") - if not os.path.exists(scratch): - os.makedirs(scratch, 0750) - _util.selinux_restorecon(scratch) - return scratch + + scratch = os.path.expanduser("~/.virtinst/boot") + if not os.path.exists(scratch): + os.makedirs(scratch, 0751) + + if (self.conn and + not _util.is_uri_remote(self.conn.getURI()) and + _util.is_qemu_system(self.conn.getURI())): + # If we are using local qemu:///system, try to make sure the + # download location is searchable by the 'qemu' user + VirtualDisk.fix_path_search_for_user(self.conn, scratch, "qemu") + + _util.selinux_restorecon(scratch) + return scratch scratchdir = property(get_scratchdir) def get_cdrom(self): virtinst-0.500.0-no-iso-driver.patch: b/tests/xmlconfig-xml/misc-qemu-iso-disk.xml | 36 ++++++++++++++++++++++++ tests/testdriver.xml | 16 ++++++++++ tests/xmlconfig.py | 6 ++++ virtinst/VirtualDisk.py | 40 ++++++++++++++++----------- 4 files changed, 82 insertions(+), 16 deletions(-) --- NEW FILE virtinst-0.500.0-no-iso-driver.patch --- # HG changeset patch # User Cole Robinson # Date 1253562724 14400 # Node ID aff98f0152935ad7cd57e86c4172a6683e6306c5 # Parent 143b09da8bccc3b6b2069c29073ea5a6ef9ce69b VirtualDisk: Don't use 'iso' as a qemu driver name (bz 524109) diff -r 143b09da8bcc -r aff98f015293 tests/testdriver.xml --- a/tests/testdriver.xml Mon Sep 21 15:47:33 2009 -0400 +++ b/tests/testdriver.xml Mon Sep 21 15:52:04 2009 -0400 @@ -67,6 +67,22 @@ + iso-vol + 1000000 + 50000 + + + + + + bochs-vol + 1000000 + 50000 + + + + + testvol1.img 1000000 50000 diff -r 143b09da8bcc -r aff98f015293 tests/xmlconfig-xml/misc-qemu-iso-disk.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/xmlconfig-xml/misc-qemu-iso-disk.xml Mon Sep 21 15:52:04 2009 -0400 @@ -0,0 +1,36 @@ + + TestGuest + 204800 + 409600 + 12345678-1234-1234-1234-123456789012 + + hvm + /usr/lib/xen/boot/hvmloader + + + + + + + destroy + destroy + destroy + 5 + + /usr/lib/xen/bin/qemu-dm + + + + + + + + + + + + + + + + diff -r 143b09da8bcc -r aff98f015293 tests/xmlconfig.py --- a/tests/xmlconfig.py Mon Sep 21 15:47:33 2009 -0400 +++ b/tests/xmlconfig.py Mon Sep 21 15:52:04 2009 -0400 @@ -302,9 +302,15 @@ g.disks.append(get_blkdisk()) self._compare(g, "misc-qemu-driver-name", True) + VirtualDisk._get_uri = new_get_uri g = get_basic_fullyvirt_guest() g.disks.append(get_filedisk()) self._compare(g, "misc-qemu-driver-type", True) + + VirtualDisk._get_uri = new_get_uri + g = get_basic_fullyvirt_guest() + g.disks.append(get_filedisk("/default-pool/iso-vol")) + self._compare(g, "misc-qemu-iso-disk", True) finally: VirtualDisk._get_uri = oldgetdriver diff -r 143b09da8bcc -r aff98f015293 virtinst/VirtualDisk.py --- a/virtinst/VirtualDisk.py Mon Sep 21 15:47:33 2009 -0400 +++ b/virtinst/VirtualDisk.py Mon Sep 21 15:52:04 2009 -0400 @@ -55,6 +55,20 @@ except OSError: return False +def _qemu_sanitize_drvtype(phystype, fmt): + """ + Sanitize libvirt storage volume format to a valid qemu driver type + """ + raw_list = [ "iso" ] + + if phystype == VirtualDisk.TYPE_BLOCK: + return VirtualDisk.DRIVER_QEMU_RAW + + if fmt in raw_list: + return VirtualDisk.DRIVER_QEMU_RAW + + return fmt + class VirtualDisk(VirtualDevice): """ Builds a libvirt domain disk xml description @@ -490,8 +504,8 @@ http://lists.gnu.org/archive/html/qemu-devel/2008-04/msg00675.html """ - drvname = None - drvtype = None + drvname = self._driverName + drvtype = self._driverType if self.conn: driver = _util.get_uri_driver(self._get_uri()) @@ -499,15 +513,15 @@ drvname = self.DRIVER_QEMU if self.vol_object: - drvtype = _util.get_xml_path(self.vol_object.XMLDesc(0), - "/volume/target/format/@type") + fmt = _util.get_xml_path(self.vol_object.XMLDesc(0), + "/volume/target/format/@type") + if drvname == self.DRIVER_QEMU: + drvtype = _qemu_sanitize_drvtype(self.type, fmt) elif self.vol_install: if drvname == self.DRIVER_QEMU: - if self.vol_install.file_type == libvirt.VIR_STORAGE_VOL_FILE: - drvtype = self.vol_install.format - else: - drvtype = self.DRIVER_QEMU_RAW + drvtype = _qemu_sanitize_drvtype(self.type, + self.vol_install.format) elif self.__creating_storage(): if drvname == self.DRIVER_QEMU: @@ -729,8 +743,10 @@ managed_storage = self.__storage_specified() create_media = self.__creating_storage() + self.__set_dev_type() self.__set_size() self.__set_format() + self.__set_driver() if not self.selinux_label: # If we are using existing storage, pull the label from it @@ -745,9 +761,6 @@ self._selinux_label = context or "" - # Set driverName + driverType - self.__set_driver() - # If not creating the storage, our job is easy if not create_media: # Make sure we have access to the local path @@ -757,7 +770,6 @@ raise ValueError(_("The path '%s' must be a file or a " "device, not a directory") % self.path) - self.__set_dev_type() return True @@ -770,7 +782,6 @@ if self.type is self.TYPE_BLOCK: raise ValueError, _("Local block device path '%s' must " "exist.") % self.path - self.set_type(self.TYPE_FILE, validate=False) # Path doesn't exist: make sure we have write access to dir if not os.access(os.path.dirname(self.path), os.R_OK): @@ -782,9 +793,6 @@ if not os.access(os.path.dirname(self.path), os.W_OK): raise ValueError, _("No write access to directory '%s'") % \ os.path.dirname(self.path) - else: - # Set dev type from existing storage - self.__set_dev_type() # Applicable for managed or local storage ret = self.is_size_conflict() Index: virt-manager.spec =================================================================== RCS file: /cvs/pkgs/rpms/virt-manager/devel/virt-manager.spec,v retrieving revision 1.59 retrieving revision 1.60 diff -u -p -r1.59 -r1.60 --- virt-manager.spec 17 Sep 2009 20:44:01 -0000 1.59 +++ virt-manager.spec 24 Sep 2009 15:47:35 -0000 1.60 @@ -8,7 +8,7 @@ Name: virt-manager Version: 0.8.0 -Release: 4%{_extra_release} +Release: 5%{_extra_release} Summary: Virtual Machine Manager Group: Applications/Emulators @@ -36,6 +36,10 @@ Patch6: %{name}-%{version}-conn-close-ex Patch7: %{name}-%{version}-manager-ui-tweaks.patch # Generate better errors is disk/net stats polling fails Patch8: %{name}-%{version}-stats-logging.patch +# Refresh host disk space in create wizard (bz 502777) +Patch9: %{name}-%{version}-refresh-disk-space.patch +# Offer to fix disk permission issues (bz 517379) +Patch10: %{name}-%{version}-fix-path-perms.patch # These two are just the oldest version tested Requires: pygtk2 >= 1.99.12-6 @@ -61,7 +65,7 @@ Requires: gnome-python2-gnome # Minimum we've tested with Requires: libxml2-python >= 2.6.23 # Required to install Xen & QEMU guests -Requires: python-virtinst >= 0.500.0 +Requires: python-virtinst >= 0.500.0-4 # Required for loading the glade UI Requires: pygtk2-libglade # Required for our graphics which are currently SVG format @@ -111,6 +115,8 @@ cp %{SOURCE3} pixmaps %patch6 -p1 %patch7 -p1 %patch8 -p1 +%patch9 -p1 +%patch10 -p1 %build %configure @@ -184,6 +190,10 @@ fi %{_datadir}/dbus-1/services/%{name}.service %changelog +* Thu Sep 24 2009 Cole Robinson - 0.8.0-5.fc12 +- Refresh host disk space in create wizard (bz 502777) +- Offer to fix disk permission issues (bz 517379) + * Thu Sep 17 2009 Cole Robinson - 0.8.0-4.fc12 - Don't close libvirt connection for non-fatal errors (bz 522168) - Manager UI tweaks From pkgdb at fedoraproject.org Thu Sep 24 16:49:44 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Thu, 24 Sep 2009 16:49:44 +0000 Subject: [fedora-virt-maint] [pkgdb] virt-manager ownership updated Message-ID: <20090924164944.66CA010F89A@bastion2.fedora.phx.redhat.com> Package virt-manager in Fedora 10 is now owned by crobinso To make changes to this package see: https://admin.fedoraproject.org/packages/name/virt-manager From pkgdb at fedoraproject.org Thu Sep 24 16:49:51 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Thu, 24 Sep 2009 16:49:51 +0000 Subject: [fedora-virt-maint] [pkgdb] virt-manager ownership updated Message-ID: <20090924164952.6B54D10F8AD@bastion2.fedora.phx.redhat.com> Package virt-manager in Fedora 11 is now owned by crobinso To make changes to this package see: https://admin.fedoraproject.org/packages/name/virt-manager From pkgdb at fedoraproject.org Thu Sep 24 16:50:35 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Thu, 24 Sep 2009 16:50:35 +0000 Subject: [fedora-virt-maint] [pkgdb] virt-manager ownership updated Message-ID: <20090924165035.E567D10F8A8@bastion2.fedora.phx.redhat.com> Package virt-manager in Fedora 9 is now owned by hbrock To make changes to this package see: https://admin.fedoraproject.org/packages/name/virt-manager From pkgdb at fedoraproject.org Thu Sep 24 16:51:09 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Thu, 24 Sep 2009 16:51:09 +0000 Subject: [fedora-virt-maint] [pkgdb] virt-manager ownership updated Message-ID: <20090924165109.F416710F8C0@bastion2.fedora.phx.redhat.com> Package virt-manager in Fedora devel is now owned by hbrock To make changes to this package see: https://admin.fedoraproject.org/packages/name/virt-manager From pkgdb at fedoraproject.org Thu Sep 24 16:51:49 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Thu, 24 Sep 2009 16:51:49 +0000 Subject: [fedora-virt-maint] [pkgdb] virt-manager ownership updated Message-ID: <20090924165150.8611B10F884@bastion2.fedora.phx.redhat.com> Package virt-manager in Fedora 8 is now owned by hbrock To make changes to this package see: https://admin.fedoraproject.org/packages/name/virt-manager From pkgdb at fedoraproject.org Thu Sep 24 16:52:07 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Thu, 24 Sep 2009 16:52:07 +0000 Subject: [fedora-virt-maint] [pkgdb] virt-manager ownership updated Message-ID: <20090924165207.E4B7C10F89C@bastion2.fedora.phx.redhat.com> Package virt-manager in Fedora 7 is now owned by hbrock To make changes to this package see: https://admin.fedoraproject.org/packages/name/virt-manager From pkgdb at fedoraproject.org Thu Sep 24 16:52:52 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Thu, 24 Sep 2009 16:52:52 +0000 Subject: [fedora-virt-maint] [pkgdb] python-virtinst ownership updated Message-ID: <20090924165252.BAB5B10F8B8@bastion2.fedora.phx.redhat.com> Package python-virtinst in Fedora devel is now owned by crobinso To make changes to this package see: https://admin.fedoraproject.org/packages/name/python-virtinst From pkgdb at fedoraproject.org Thu Sep 24 16:53:15 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Thu, 24 Sep 2009 16:53:15 +0000 Subject: [fedora-virt-maint] [pkgdb] python-virtinst ownership updated Message-ID: <20090924165316.CA30210F8A4@bastion2.fedora.phx.redhat.com> Package python-virtinst in Fedora 7 is now owned by crobinso To make changes to this package see: https://admin.fedoraproject.org/packages/name/python-virtinst From pkgdb at fedoraproject.org Thu Sep 24 16:53:33 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Thu, 24 Sep 2009 16:53:33 +0000 Subject: [fedora-virt-maint] [pkgdb] python-virtinst ownership updated Message-ID: <20090924165333.291DA10F8F2@bastion2.fedora.phx.redhat.com> Package python-virtinst in Fedora 8 is now owned by crobinso To make changes to this package see: https://admin.fedoraproject.org/packages/name/python-virtinst From pkgdb at fedoraproject.org Thu Sep 24 16:53:49 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Thu, 24 Sep 2009 16:53:49 +0000 Subject: [fedora-virt-maint] [pkgdb] python-virtinst ownership updated Message-ID: <20090924165350.5CC8810F897@bastion2.fedora.phx.redhat.com> Package python-virtinst in Fedora 9 is now owned by crobinso To make changes to this package see: https://admin.fedoraproject.org/packages/name/python-virtinst From pkgdb at fedoraproject.org Thu Sep 24 16:54:04 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Thu, 24 Sep 2009 16:54:04 +0000 Subject: [fedora-virt-maint] [pkgdb] python-virtinst ownership updated Message-ID: <20090924165404.960BB10F8C7@bastion2.fedora.phx.redhat.com> Package python-virtinst in Fedora 10 is now owned by crobinso To make changes to this package see: https://admin.fedoraproject.org/packages/name/python-virtinst From pkgdb at fedoraproject.org Thu Sep 24 16:54:27 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Thu, 24 Sep 2009 16:54:27 +0000 Subject: [fedora-virt-maint] [pkgdb] python-virtinst ownership updated Message-ID: <20090924165427.89A4010F91C@bastion2.fedora.phx.redhat.com> Package python-virtinst in Fedora 11 is now owned by crobinso To make changes to this package see: https://admin.fedoraproject.org/packages/name/python-virtinst From pkgdb at fedoraproject.org Thu Sep 24 17:05:53 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Thu, 24 Sep 2009 17:05:53 +0000 Subject: [fedora-virt-maint] [pkgdb] virt-manager had acl change status Message-ID: <20090924170553.2E16B10F8C9@bastion2.fedora.phx.redhat.com> crobinso has set the approveacls acl on virt-manager (Fedora 10) to Obsolete for virtmaint To make changes to this package see: https://admin.fedoraproject.org/packages/name/virt-manager From pkgdb at fedoraproject.org Thu Sep 24 17:06:04 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Thu, 24 Sep 2009 17:06:04 +0000 Subject: [fedora-virt-maint] [pkgdb] virt-manager had acl change status Message-ID: <20090924170604.519F210F8A2@bastion2.fedora.phx.redhat.com> crobinso has set the commit acl on virt-manager (Fedora 10) to Obsolete for virtmaint To make changes to this package see: https://admin.fedoraproject.org/packages/name/virt-manager From pkgdb at fedoraproject.org Thu Sep 24 17:06:07 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Thu, 24 Sep 2009 17:06:07 +0000 Subject: [fedora-virt-maint] [pkgdb] virt-manager had acl change status Message-ID: <20090924170607.D846910F8A5@bastion2.fedora.phx.redhat.com> crobinso has set the watchcommits acl on virt-manager (Fedora 10) to Approved for virtmaint To make changes to this package see: https://admin.fedoraproject.org/packages/name/virt-manager From pkgdb at fedoraproject.org Thu Sep 24 17:06:30 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Thu, 24 Sep 2009 17:06:30 +0000 Subject: [fedora-virt-maint] [pkgdb] virt-manager ownership updated Message-ID: <20090924170630.9B96D10F8AD@bastion2.fedora.phx.redhat.com> Package virt-manager in Fedora devel is now owned by hbrock To make changes to this package see: https://admin.fedoraproject.org/packages/name/virt-manager From pkgdb at fedoraproject.org Thu Sep 24 17:06:52 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Thu, 24 Sep 2009 17:06:52 +0000 Subject: [fedora-virt-maint] [pkgdb] virt-manager ownership updated Message-ID: <20090924170653.01C3C10F8B6@bastion2.fedora.phx.redhat.com> Package virt-manager in Fedora devel is now owned by hbrock To make changes to this package see: https://admin.fedoraproject.org/packages/name/virt-manager From pkgdb at fedoraproject.org Thu Sep 24 17:06:57 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Thu, 24 Sep 2009 17:06:57 +0000 Subject: [fedora-virt-maint] [pkgdb] virt-manager ownership updated Message-ID: <20090924170658.16C5F10F889@bastion2.fedora.phx.redhat.com> Package virt-manager in Fedora 7 is now owned by hbrock To make changes to this package see: https://admin.fedoraproject.org/packages/name/virt-manager From pkgdb at fedoraproject.org Thu Sep 24 17:07:01 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Thu, 24 Sep 2009 17:07:01 +0000 Subject: [fedora-virt-maint] [pkgdb] virt-manager ownership updated Message-ID: <20090924170701.1699810F908@bastion2.fedora.phx.redhat.com> Package virt-manager in Fedora 7 is now owned by hbrock To make changes to this package see: https://admin.fedoraproject.org/packages/name/virt-manager From pkgdb at fedoraproject.org Thu Sep 24 17:07:09 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Thu, 24 Sep 2009 17:07:09 +0000 Subject: [fedora-virt-maint] [pkgdb] virt-manager had acl change status Message-ID: <20090924170710.DB31410F8BC@bastion2.fedora.phx.redhat.com> crobinso has set the watchbugzilla acl on virt-manager (Fedora 10) to Approved for virtmaint To make changes to this package see: https://admin.fedoraproject.org/packages/name/virt-manager From pkgdb at fedoraproject.org Thu Sep 24 17:07:11 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Thu, 24 Sep 2009 17:07:11 +0000 Subject: [fedora-virt-maint] [pkgdb] virt-manager ownership updated Message-ID: <20090924170711.EC67610F914@bastion2.fedora.phx.redhat.com> Package virt-manager in Fedora 9 is now owned by hbrock To make changes to this package see: https://admin.fedoraproject.org/packages/name/virt-manager From pkgdb at fedoraproject.org Thu Sep 24 17:07:22 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Thu, 24 Sep 2009 17:07:22 +0000 Subject: [fedora-virt-maint] [pkgdb] virt-manager ownership updated Message-ID: <20090924170722.C22A110F91F@bastion2.fedora.phx.redhat.com> Package virt-manager in Fedora 8 is now owned by hbrock To make changes to this package see: https://admin.fedoraproject.org/packages/name/virt-manager From pkgdb at fedoraproject.org Thu Sep 24 17:07:25 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Thu, 24 Sep 2009 17:07:25 +0000 Subject: [fedora-virt-maint] [pkgdb] virt-manager ownership updated Message-ID: <20090924170726.3527710F927@bastion2.fedora.phx.redhat.com> Package virt-manager in Fedora 8 is now owned by hbrock To make changes to this package see: https://admin.fedoraproject.org/packages/name/virt-manager From pkgdb at fedoraproject.org Thu Sep 24 17:07:29 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Thu, 24 Sep 2009 17:07:29 +0000 Subject: [fedora-virt-maint] [pkgdb] virt-manager ownership updated Message-ID: <20090924170729.663C110F8C4@bastion2.fedora.phx.redhat.com> Package virt-manager in Fedora 8 is now owned by hbrock To make changes to this package see: https://admin.fedoraproject.org/packages/name/virt-manager From pkgdb at fedoraproject.org Thu Sep 24 17:08:31 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Thu, 24 Sep 2009 17:08:31 +0000 Subject: [fedora-virt-maint] [pkgdb] virt-manager ownership updated Message-ID: <20090924170832.517ED10F8A3@bastion2.fedora.phx.redhat.com> Package virt-manager in Fedora devel is now owned by hbrock To make changes to this package see: https://admin.fedoraproject.org/packages/name/virt-manager From pkgdb at fedoraproject.org Thu Sep 24 17:08:49 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Thu, 24 Sep 2009 17:08:49 +0000 Subject: [fedora-virt-maint] [pkgdb] virt-manager ownership updated Message-ID: <20090924170850.084FB10F8CF@bastion2.fedora.phx.redhat.com> Package virt-manager in Fedora devel is now owned by hbrock To make changes to this package see: https://admin.fedoraproject.org/packages/name/virt-manager From pkgdb at fedoraproject.org Thu Sep 24 17:09:20 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Thu, 24 Sep 2009 17:09:20 +0000 Subject: [fedora-virt-maint] [pkgdb] virt-manager ownership updated Message-ID: <20090924170920.3BD6510F8AD@bastion2.fedora.phx.redhat.com> Package virt-manager in Fedora devel is now owned by hbrock To make changes to this package see: https://admin.fedoraproject.org/packages/name/virt-manager From pkgdb at fedoraproject.org Thu Sep 24 17:11:32 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Thu, 24 Sep 2009 17:11:32 +0000 Subject: [fedora-virt-maint] [pkgdb] virt-manager ownership updated Message-ID: <20090924171133.1A35610F8BD@bastion2.fedora.phx.redhat.com> Package virt-manager in Fedora devel is now owned by crobinso To make changes to this package see: https://admin.fedoraproject.org/packages/name/virt-manager From pkgdb at fedoraproject.org Thu Sep 24 17:11:40 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Thu, 24 Sep 2009 17:11:40 +0000 Subject: [fedora-virt-maint] [pkgdb] virt-manager ownership updated Message-ID: <20090924171140.315CD10F8DA@bastion2.fedora.phx.redhat.com> Package virt-manager in Fedora 7 is now owned by crobinso To make changes to this package see: https://admin.fedoraproject.org/packages/name/virt-manager From pkgdb at fedoraproject.org Thu Sep 24 17:11:47 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Thu, 24 Sep 2009 17:11:47 +0000 Subject: [fedora-virt-maint] [pkgdb] virt-manager ownership updated Message-ID: <20090924171148.9D3B410F8E1@bastion2.fedora.phx.redhat.com> Package virt-manager in Fedora 8 is now owned by crobinso To make changes to this package see: https://admin.fedoraproject.org/packages/name/virt-manager From pkgdb at fedoraproject.org Thu Sep 24 17:11:55 2009 From: pkgdb at fedoraproject.org (Fedora PackageDB) Date: Thu, 24 Sep 2009 17:11:55 +0000 Subject: [fedora-virt-maint] [pkgdb] virt-manager ownership updated Message-ID: <20090924171155.E751010F904@bastion2.fedora.phx.redhat.com> Package virt-manager in Fedora 9 is now owned by crobinso To make changes to this package see: https://admin.fedoraproject.org/packages/name/virt-manager From markmc at fedoraproject.org Mon Sep 28 07:30:15 2009 From: markmc at fedoraproject.org (Mark McLoughlin) Date: Mon, 28 Sep 2009 07:30:15 +0000 (UTC) Subject: [fedora-virt-maint] rpms/qemu/devel qemu-add-ksm-support.patch, 1.4, 1.5 qemu-allow-pulseaudio-to-be-the-default.patch, 1.2, 1.3 qemu-bios-bigger-roms.patch, 1.11, 1.12 qemu-correctly-free-nic-info-structure.patch, 1.1, 1.2 qemu-fix-linux-user-build-on-ppc.patch, 1.7, 1.8 qemu.spec, 1.131, 1.132 sources, 1.21, 1.22 qemu-fix-msix-error-handling-on-older-kernels.patch, 1.3, NONE qemu-fix-no-kvm-segfault.patch, 1.4, NONE Message-ID: <20090928073015.F1BDD11C0424@cvs1.fedora.phx.redhat.com> Author: markmc Update of /cvs/pkgs/rpms/qemu/devel In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv21108 Modified Files: qemu-add-ksm-support.patch qemu-allow-pulseaudio-to-be-the-default.patch qemu-bios-bigger-roms.patch qemu-correctly-free-nic-info-structure.patch qemu-fix-linux-user-build-on-ppc.patch qemu.spec sources Removed Files: qemu-fix-msix-error-handling-on-older-kernels.patch qemu-fix-no-kvm-segfault.patch Log Message: * Mon Sep 28 2009 Mark McLoughlin - 2:0.11.0-1 - Update to 0.11.0 release - Drop a couple of upstreamed patches qemu-add-ksm-support.patch: exec.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) Index: qemu-add-ksm-support.patch =================================================================== RCS file: /cvs/pkgs/rpms/qemu/devel/qemu-add-ksm-support.patch,v retrieving revision 1.4 retrieving revision 1.5 diff -u -p -r1.4 -r1.5 --- qemu-add-ksm-support.patch 16 Sep 2009 22:20:32 -0000 1.4 +++ qemu-add-ksm-support.patch 28 Sep 2009 07:30:15 -0000 1.5 @@ -1,4 +1,4 @@ -From ef44e9475ab38ec73b30e83241279170fac06b22 Mon Sep 17 00:00:00 2001 +From c6c94b043e8b3593d0beb52966dce43069233840 Mon Sep 17 00:00:00 2001 From: Izik Eidus Date: Tue, 28 Jul 2009 19:14:26 +0300 Subject: [PATCH] kvm userspace: ksm support qemu-allow-pulseaudio-to-be-the-default.patch: paaudio.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) Index: qemu-allow-pulseaudio-to-be-the-default.patch =================================================================== RCS file: /cvs/pkgs/rpms/qemu/devel/qemu-allow-pulseaudio-to-be-the-default.patch,v retrieving revision 1.2 retrieving revision 1.3 diff -u -p -r1.2 -r1.3 --- qemu-allow-pulseaudio-to-be-the-default.patch 7 Sep 2009 14:22:20 -0000 1.2 +++ qemu-allow-pulseaudio-to-be-the-default.patch 28 Sep 2009 07:30:15 -0000 1.3 @@ -1,4 +1,4 @@ -From 4f5019c88e710be0aa597c81017b683d494c532d Mon Sep 17 00:00:00 2001 +From 8ab0d97572264051176ff45171484fa463d1287f Mon Sep 17 00:00:00 2001 From: Mark McLoughlin Date: Fri, 4 Sep 2009 11:24:03 +0100 Subject: [PATCH] Allow pulseaudio backend to be the default qemu-bios-bigger-roms.patch: rombios.c | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) Index: qemu-bios-bigger-roms.patch =================================================================== RCS file: /cvs/pkgs/rpms/qemu/devel/qemu-bios-bigger-roms.patch,v retrieving revision 1.11 retrieving revision 1.12 diff -u -p -r1.11 -r1.12 --- qemu-bios-bigger-roms.patch 7 Sep 2009 14:22:20 -0000 1.11 +++ qemu-bios-bigger-roms.patch 28 Sep 2009 07:30:15 -0000 1.12 @@ -1,4 +1,4 @@ -From f751c8937a81116469149357359c767a71ee8ebd Mon Sep 17 00:00:00 2001 +From b5c99e96655e8dc938f801e1ac0dbdf2d6dfba37 Mon Sep 17 00:00:00 2001 From: Glauber Costa Date: Wed, 24 Jun 2009 14:31:41 +0100 Subject: [PATCH] compute checksum for roms bigger than a segment qemu-correctly-free-nic-info-structure.patch: net.c | 16 +++++++++++----- net.h | 8 ++++---- vl.c | 3 +-- 3 files changed, 16 insertions(+), 11 deletions(-) Index: qemu-correctly-free-nic-info-structure.patch =================================================================== RCS file: /cvs/pkgs/rpms/qemu/devel/qemu-correctly-free-nic-info-structure.patch,v retrieving revision 1.1 retrieving revision 1.2 diff -u -p -r1.1 -r1.2 --- qemu-correctly-free-nic-info-structure.patch 23 Sep 2009 11:31:31 -0000 1.1 +++ qemu-correctly-free-nic-info-structure.patch 28 Sep 2009 07:30:15 -0000 1.2 @@ -1,4 +1,4 @@ -From 2b76390876db26fb279d26de86b2c0b8260ff142 Mon Sep 17 00:00:00 2001 +From 3675a0dde74f890404f392e194f1adc6b24285f7 Mon Sep 17 00:00:00 2001 From: Glauber Costa Date: Wed, 23 Sep 2009 09:49:43 +0100 Subject: [PATCH] Correctly free nd structure @@ -29,10 +29,10 @@ Fedora-patch: qemu-correctly-free-nic-in 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/net.c b/net.c -index 61c9649..b58945f 100644 +index a1c1111..da2f428 100644 --- a/net.c +++ b/net.c -@@ -2564,7 +2564,7 @@ void qemu_check_nic_model_list(NICInfo *nd, const char * const *models, +@@ -2559,7 +2559,7 @@ void qemu_check_nic_model_list(NICInfo *nd, const char * const *models, int i, exit_status = 0; if (!nd->model) @@ -41,7 +41,7 @@ index 61c9649..b58945f 100644 if (strcmp(nd->model, "?") != 0) { for (i = 0 ; models[i]; i++) -@@ -2634,6 +2634,7 @@ int net_client_init(Monitor *mon, const char *device, const char *p) +@@ -2629,6 +2629,7 @@ int net_client_init(Monitor *mon, const char *device, const char *p) goto out; } nd = &nd_table[idx]; @@ -49,7 +49,7 @@ index 61c9649..b58945f 100644 macaddr = nd->macaddr; macaddr[0] = 0x52; macaddr[1] = 0x54; -@@ -2650,13 +2651,13 @@ int net_client_init(Monitor *mon, const char *device, const char *p) +@@ -2645,13 +2646,13 @@ int net_client_init(Monitor *mon, const char *device, const char *p) } } if (get_param_value(buf, sizeof(buf), "model", p)) { @@ -66,7 +66,7 @@ index 61c9649..b58945f 100644 } nd->nvectors = NIC_NVECTORS_UNSPECIFIED; if (get_param_value(buf, sizeof(buf), "vectors", p)) { -@@ -3003,8 +3004,13 @@ void net_client_uninit(NICInfo *nd) +@@ -2998,8 +2999,13 @@ void net_client_uninit(NICInfo *nd) { nd->vlan->nb_guest_devs--; nb_nics--; @@ -82,10 +82,10 @@ index 61c9649..b58945f 100644 static int net_host_check_device(const char *device) diff --git a/net.h b/net.h -index b172691..ec78d0a 100644 +index 57ab031..94db0d7 100644 --- a/net.h +++ b/net.h -@@ -100,10 +100,10 @@ enum { +@@ -101,10 +101,10 @@ enum { struct NICInfo { uint8_t macaddr[6]; qemu-fix-linux-user-build-on-ppc.patch: elf.h | 2 ++ linux-user/elfload.c | 11 ++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) Index: qemu-fix-linux-user-build-on-ppc.patch =================================================================== RCS file: /cvs/pkgs/rpms/qemu/devel/qemu-fix-linux-user-build-on-ppc.patch,v retrieving revision 1.7 retrieving revision 1.8 diff -u -p -r1.7 -r1.8 --- qemu-fix-linux-user-build-on-ppc.patch 7 Sep 2009 14:22:20 -0000 1.7 +++ qemu-fix-linux-user-build-on-ppc.patch 28 Sep 2009 07:30:15 -0000 1.8 @@ -1,4 +1,4 @@ -From 22c6c8c5dfe66a5e7f81dd4a296e1b2b245c5d28 Mon Sep 17 00:00:00 2001 +From 8f4d4cb4e4e73d0533aa2cb421c14210c75f6edc Mon Sep 17 00:00:00 2001 From: Mark McLoughlin Date: Mon, 29 Jun 2009 14:49:03 +0100 Subject: [PATCH] Fix linux-user build on ppc Index: qemu.spec =================================================================== RCS file: /cvs/pkgs/rpms/qemu/devel/qemu.spec,v retrieving revision 1.131 retrieving revision 1.132 diff -u -p -r1.131 -r1.132 --- qemu.spec 23 Sep 2009 11:31:31 -0000 1.131 +++ qemu.spec 28 Sep 2009 07:30:15 -0000 1.132 @@ -1,16 +1,14 @@ -%define kvmverfull kvm-0.11.0-rc2 - Summary: QEMU is a FAST! processor emulator Name: qemu -Version: 0.10.92 -Release: 5%{?dist} +Version: 0.11.0 +Release: 1%{?dist} # Epoch because we pushed a qemu-1.0 package Epoch: 2 License: GPLv2+ and LGPLv2+ and BSD Group: Development/Tools URL: http://www.qemu.org/ -Source0: http://downloads.sourceforge.net/sourceforge/kvm/qemu-%{kvmverfull}.tar.gz +Source0: http://downloads.sourceforge.net/sourceforge/kvm/qemu-kvm-%{version}.tar.gz Source1: qemu.init # Loads kvm kernel modules at boot @@ -38,14 +36,8 @@ Patch03: qemu-allow-pulseaudio-to-be-the # Add KSM support - see https://fedoraproject.org/wiki/Features/KSM Patch04: qemu-add-ksm-support.patch -# Fix MSI-X error handling on older kernels (#519787) -Patch05: qemu-fix-msix-error-handling-on-older-kernels.patch - -# Fix segfault when qemu-kvm is invoked inside a VM (bug #516543) -Patch06: qemu-fix-no-kvm-segfault.patch - # Fix issue causing NIC hotplug confusion when no model is specified (#524022) -Patch07: qemu-correctly-free-nic-info-structure.patch +Patch05: qemu-correctly-free-nic-info-structure.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: SDL-devel zlib-devel which texi2html gnutls-devel cyrus-sasl-devel @@ -235,8 +227,6 @@ such as kvmtrace and kvm_stat. %patch03 -p1 %patch04 -p1 %patch05 -p1 -%patch06 -p1 -%patch07 -p1 %build # systems like rhel build system does not have a recent enough linker so @@ -530,6 +520,10 @@ fi %{_mandir}/man1/qemu-img.1* %changelog +* Mon Sep 28 2009 Mark McLoughlin - 2:0.11.0-1 +- Update to 0.11.0 release +- Drop a couple of upstreamed patches + * Wed Sep 23 2009 Mark McLoughlin - 2:0.10.92-5 - Fix issue causing NIC hotplug confusion when no model is specified (#524022) Index: sources =================================================================== RCS file: /cvs/pkgs/rpms/qemu/devel/sources,v retrieving revision 1.21 retrieving revision 1.22 diff -u -p -r1.21 -r1.22 --- sources 7 Sep 2009 14:22:20 -0000 1.21 +++ sources 28 Sep 2009 07:30:15 -0000 1.22 @@ -1 +1 @@ -35294f8c77250eae6ef48c713fe92803 qemu-kvm-0.11.0-rc2.tar.gz +440837a062967102a68e634d57eaf719 qemu-kvm-0.11.0.tar.gz --- qemu-fix-msix-error-handling-on-older-kernels.patch DELETED --- --- qemu-fix-no-kvm-segfault.patch DELETED --- From markmc at fedoraproject.org Mon Sep 28 07:39:30 2009 From: markmc at fedoraproject.org (Mark McLoughlin) Date: Mon, 28 Sep 2009 07:39:30 +0000 (UTC) Subject: [fedora-virt-maint] rpms/qemu/devel qemu.spec,1.132,1.133 Message-ID: <20090928073930.BC63411C00E4@cvs1.fedora.phx.redhat.com> Author: markmc Update of /cvs/pkgs/rpms/qemu/devel In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv22863 Modified Files: qemu.spec Log Message: Remove another use of %{kvmverfull} Index: qemu.spec =================================================================== RCS file: /cvs/pkgs/rpms/qemu/devel/qemu.spec,v retrieving revision 1.132 retrieving revision 1.133 diff -u -p -r1.132 -r1.133 --- qemu.spec 28 Sep 2009 07:30:15 -0000 1.132 +++ qemu.spec 28 Sep 2009 07:39:30 -0000 1.133 @@ -220,7 +220,7 @@ such as kvmtrace and kvm_stat. %endif %prep -%setup -q -n qemu-%{kvmverfull} +%setup -q -n qemu-kvm-%{version} %patch01 -p1 %patch02 -p1 From markmc at fedoraproject.org Mon Sep 28 16:42:19 2009 From: markmc at fedoraproject.org (Mark McLoughlin) Date: Mon, 28 Sep 2009 16:42:19 +0000 (UTC) Subject: [fedora-virt-maint] rpms/qemu/devel qemu-do-not-exit-on-pci-hotplug-invalid-nic1.patch, NONE, 1.1 qemu-do-not-exit-on-pci-hotplug-invalid-nic2.patch, NONE, 1.1 qemu.spec, 1.133, 1.134 Message-ID: <20090928164219.EBD9A11C00E4@cvs1.fedora.phx.redhat.com> Author: markmc Update of /cvs/pkgs/rpms/qemu/devel In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv1253 Modified Files: qemu.spec Added Files: qemu-do-not-exit-on-pci-hotplug-invalid-nic1.patch qemu-do-not-exit-on-pci-hotplug-invalid-nic2.patch Log Message: * Mon Sep 28 2009 Mark McLoughlin - 2:0.11.0-2 - Fix pci hotplug to not exit if supplied an invalid NIC model (#524022) qemu-do-not-exit-on-pci-hotplug-invalid-nic1.patch: hw/pci.c | 25 +++++++++---------------- net.c | 6 +++--- net.h | 5 ++--- 3 files changed, 14 insertions(+), 22 deletions(-) --- NEW FILE qemu-do-not-exit-on-pci-hotplug-invalid-nic1.patch --- >From 0ce1af6e7d4b1e2ffa4dedf6d415c4d86a1af490 Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Fri, 25 Sep 2009 03:53:50 +0200 Subject: [PATCH] Make it obvious that pci_nic_init() can't fail Before this patch, pci_nic_init() returns NULL when it can't find the model in pci_nic_models[]. Except this can't happen, because qemu_check_nic_model_list() just searched for model in pci_nic_models[], and terminated the program on failure. Repeating the search here is pointless. Instead, change qemu_check_nic_model_list() to return the model's array index. Signed-off-by: Markus Armbruster Signed-off-by: Mark McLoughlin model, pci_nic_models[i]) == 0) { - pci_dev = pci_create(pci_nic_names[i], devaddr); - dev = &pci_dev->qdev; - if (nd->id) - dev->id = qemu_strdup(nd->id); - dev->nd = nd; - qdev_init(dev); - nd->private = dev; - return pci_dev; - } - } - - return NULL; + i = qemu_check_nic_model_list(nd, pci_nic_models, default_model); + pci_dev = pci_create(pci_nic_names[i], devaddr); + dev = &pci_dev->qdev; + if (nd->id) + dev->id = qemu_strdup(nd->id); + dev->nd = nd; + qdev_init(dev); + nd->private = dev; + return pci_dev; } typedef struct { diff --git a/net.c b/net.c index da2f428..047e72e 100644 --- a/net.c +++ b/net.c @@ -2553,8 +2553,8 @@ void qemu_check_nic_model(NICInfo *nd, const char *model) qemu_check_nic_model_list(nd, models, model); } -void qemu_check_nic_model_list(NICInfo *nd, const char * const *models, - const char *default_model) +int qemu_check_nic_model_list(NICInfo *nd, const char * const *models, + const char *default_model) { int i, exit_status = 0; @@ -2564,7 +2564,7 @@ void qemu_check_nic_model_list(NICInfo *nd, const char * const *models, if (strcmp(nd->model, "?") != 0) { for (i = 0 ; models[i]; i++) if (strcmp(nd->model, models[i]) == 0) - return; + return i; fprintf(stderr, "qemu: Unsupported NIC model: %s\n", nd->model); exit_status = 1; diff --git a/net.h b/net.h index 94db0d7..9662988 100644 --- a/net.h +++ b/net.h @@ -80,8 +80,8 @@ void qemu_purge_queued_packets(VLANClientState *vc); void qemu_flush_queued_packets(VLANClientState *vc); void qemu_format_nic_info_str(VLANClientState *vc, uint8_t macaddr[6]); void qemu_check_nic_model(NICInfo *nd, const char *model); -void qemu_check_nic_model_list(NICInfo *nd, const char * const *models, - const char *default_model); +int qemu_check_nic_model_list(NICInfo *nd, const char * const *models, + const char *default_model); void qemu_handler_true(void *opaque); void do_info_network(Monitor *mon); -- 1.6.2.5 qemu-do-not-exit-on-pci-hotplug-invalid-nic2.patch: hw/mips_malta.c | 2 +- hw/pc.c | 2 +- hw/pci.c | 19 ++++++++++++++++++- hw/pci.h | 2 ++ hw/ppc440_bamboo.c | 2 +- hw/ppc_newworld.c | 2 +- hw/ppc_oldworld.c | 2 +- hw/ppc_prep.c | 2 +- hw/ppce500_mpc8544ds.c | 2 +- hw/r2d.c | 2 +- hw/realview.c | 2 +- hw/sun4u.c | 2 +- hw/versatilepb.c | 2 +- net.c | 41 +++++++++++++++++++++++++---------------- net.h | 6 +++--- 15 files changed, 59 insertions(+), 31 deletions(-) --- NEW FILE qemu-do-not-exit-on-pci-hotplug-invalid-nic2.patch --- >From 0ba615f4e6ecf13839b7688c762961aa1d092504 Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Fri, 25 Sep 2009 03:53:51 +0200 Subject: [PATCH] Fix pci_add nic not to exit on bad model Monitor command "pci_add ADDR nic model=MODEL" uses pci_nic_init() to create the NIC. When MODEL is unknown or "?", this prints to stderr and terminates the program. Change pci_nic_init() not to treat "?" specially, and to return NULL on failure. Switch uses during startup to new convenience wrapper pci_nic_init_nofail(), which behaves just like pci_nic_init() used to do. [markmc: - rebase to stable-0.11 - drop qemu_error() usage - go back to pci_create() in pci_nic_init - qdev_init() doesn't have an error return ] Signed-off-by: Markus Armbruster Signed-off-by: Mark McLoughlin Fedora-patch: qemu-do-not-exit-on-pci-hotplug-invalid-nic2.patch --- hw/mips_malta.c | 2 +- hw/pc.c | 2 +- hw/pci.c | 19 ++++++++++++++++++- hw/pci.h | 2 ++ hw/ppc440_bamboo.c | 2 +- hw/ppc_newworld.c | 2 +- hw/ppc_oldworld.c | 2 +- hw/ppc_prep.c | 2 +- hw/ppce500_mpc8544ds.c | 2 +- hw/r2d.c | 2 +- hw/realview.c | 2 +- hw/sun4u.c | 2 +- hw/versatilepb.c | 2 +- net.c | 41 +++++++++++++++++++++++++---------------- net.h | 5 +++-- 15 files changed, 59 insertions(+), 30 deletions(-) diff --git a/hw/mips_malta.c b/hw/mips_malta.c index 7728e58..ed86d4b 100644 --- a/hw/mips_malta.c +++ b/hw/mips_malta.c @@ -486,7 +486,7 @@ static void network_init(void) /* The malta board has a PCNet card using PCI SLOT 11 */ default_devaddr = "0b"; - pci_nic_init(nd, "pcnet", default_devaddr); + pci_nic_init_nofail(nd, "pcnet", default_devaddr); } } diff --git a/hw/pc.c b/hw/pc.c index bcd2989..3b226f4 100644 --- a/hw/pc.c +++ b/hw/pc.c @@ -1360,7 +1360,7 @@ static void pc_init1(ram_addr_t ram_size, if (!pci_enabled || (nd->model && strcmp(nd->model, "ne2k_isa") == 0)) pc_init_ne2k_isa(nd, i8259); else - pci_nic_init(nd, "rtl8139", NULL); + pci_nic_init_nofail(nd, "rtl8139", NULL); } piix4_acpi_system_hot_add_init(cpu_model); diff --git a/hw/pci.c b/hw/pci.c index eb990f9..9bcf49d 100644 --- a/hw/pci.c +++ b/hw/pci.c @@ -937,7 +937,10 @@ PCIDevice *pci_nic_init(NICInfo *nd, const char *default_model, DeviceState *dev; int i; - i = qemu_check_nic_model_list(nd, pci_nic_models, default_model); + i = qemu_find_nic_model(nd, pci_nic_models, default_model); + if (i < 0) + return NULL; + pci_dev = pci_create(pci_nic_names[i], devaddr); dev = &pci_dev->qdev; if (nd->id) @@ -948,6 +951,20 @@ PCIDevice *pci_nic_init(NICInfo *nd, const char *default_model, return pci_dev; } +PCIDevice *pci_nic_init_nofail(NICInfo *nd, const char *default_model, + const char *default_devaddr) +{ + PCIDevice *res; + + if (qemu_show_nic_models(nd->model, pci_nic_models)) + exit(0); + + res = pci_nic_init(nd, default_model, default_devaddr); + if (!res) + exit(1); + return res; +} + typedef struct { PCIDevice dev; PCIBus *bus; diff --git a/hw/pci.h b/hw/pci.h index 7ca3ba9..18a05f5 100644 --- a/hw/pci.h +++ b/hw/pci.h @@ -291,6 +291,8 @@ PCIBus *pci_register_bus(DeviceState *parent, const char *name, PCIDevice *pci_nic_init(NICInfo *nd, const char *default_model, const char *default_devaddr); +PCIDevice *pci_nic_init_nofail(NICInfo *nd, const char *default_model, + const char *default_devaddr); void pci_data_write(void *opaque, uint32_t addr, uint32_t val, int len); uint32_t pci_data_read(void *opaque, uint32_t addr, int len); int pci_bus_num(PCIBus *s); diff --git a/hw/ppc440_bamboo.c b/hw/ppc440_bamboo.c index c74aa2f..9f22623 100644 --- a/hw/ppc440_bamboo.c +++ b/hw/ppc440_bamboo.c @@ -128,7 +128,7 @@ static void bamboo_init(ram_addr_t ram_size, for (i = 0; i < nb_nics; i++) { /* There are no PCI NICs on the Bamboo board, but there are * PCI slots, so we can pick whatever default model we want. */ - pci_nic_init(&nd_table[i], "e1000", NULL); + pci_nic_init_nofail(&nd_table[i], "e1000", NULL); } } diff --git a/hw/ppc_newworld.c b/hw/ppc_newworld.c index 45480ea..5fa9e82 100644 --- a/hw/ppc_newworld.c +++ b/hw/ppc_newworld.c @@ -304,7 +304,7 @@ static void ppc_core99_init (ram_addr_t ram_size, serial_hds[0], serial_hds[1], ESCC_CLOCK, 4); for(i = 0; i < nb_nics; i++) - pci_nic_init(&nd_table[i], "ne2k_pci", NULL); + pci_nic_init_nofail(&nd_table[i], "ne2k_pci", NULL); if (drive_get_max_bus(IF_IDE) >= MAX_IDE_BUS) { fprintf(stderr, "qemu: too many IDE bus\n"); diff --git a/hw/ppc_oldworld.c b/hw/ppc_oldworld.c index 5c745a0..49c8a00 100644 --- a/hw/ppc_oldworld.c +++ b/hw/ppc_oldworld.c @@ -315,7 +315,7 @@ static void ppc_heathrow_init (ram_addr_t ram_size, serial_hds[1], ESCC_CLOCK, 4); for(i = 0; i < nb_nics; i++) - pci_nic_init(&nd_table[i], "ne2k_pci", NULL); + pci_nic_init_nofail(&nd_table[i], "ne2k_pci", NULL); if (drive_get_max_bus(IF_IDE) >= MAX_IDE_BUS) { diff --git a/hw/ppc_prep.c b/hw/ppc_prep.c index 7a21977..a8f0002 100644 --- a/hw/ppc_prep.c +++ b/hw/ppc_prep.c @@ -681,7 +681,7 @@ static void ppc_prep_init (ram_addr_t ram_size, if (strcmp(nd_table[i].model, "ne2k_isa") == 0) { isa_ne2000_init(ne2000_io[i], i8259[ne2000_irq[i]], &nd_table[i]); } else { - pci_nic_init(&nd_table[i], "ne2k_pci", NULL); + pci_nic_init_nofail(&nd_table[i], "ne2k_pci", NULL); } } diff --git a/hw/ppce500_mpc8544ds.c b/hw/ppce500_mpc8544ds.c index db52cdd..5f2b526 100644 --- a/hw/ppce500_mpc8544ds.c +++ b/hw/ppce500_mpc8544ds.c @@ -228,7 +228,7 @@ static void mpc8544ds_init(ram_addr_t ram_size, /* Register network interfaces. */ for (i = 0; i < nb_nics; i++) { - pci_nic_init(&nd_table[i], "virtio", NULL); + pci_nic_init_nofail(&nd_table[i], "virtio", NULL); } } diff --git a/hw/r2d.c b/hw/r2d.c index 8ce6832..af229d4 100644 --- a/hw/r2d.c +++ b/hw/r2d.c @@ -231,7 +231,7 @@ static void r2d_init(ram_addr_t ram_size, /* NIC: rtl8139 on-board, and 2 slots. */ for (i = 0; i < nb_nics; i++) - pci_nic_init(&nd_table[i], "rtl8139", i==0 ? "2" : NULL); + pci_nic_init_nofail(&nd_table[i], "rtl8139", i==0 ? "2" : NULL); /* Todo: register on board registers */ if (kernel_filename) { diff --git a/hw/realview.c b/hw/realview.c index 8e176b9..70c129b 100644 --- a/hw/realview.c +++ b/hw/realview.c @@ -125,7 +125,7 @@ static void realview_init(ram_addr_t ram_size, smc91c111_init(nd, 0x4e000000, pic[28]); done_smc = 1; } else { - pci_nic_init(nd, "rtl8139", NULL); + pci_nic_init_nofail(nd, "rtl8139", NULL); } } diff --git a/hw/sun4u.c b/hw/sun4u.c index 9d2a7f5..9fb5dcd 100644 --- a/hw/sun4u.c +++ b/hw/sun4u.c @@ -497,7 +497,7 @@ static void sun4uv_init(ram_addr_t RAM_size, } for(i = 0; i < nb_nics; i++) - pci_nic_init(&nd_table[i], "ne2k_pci", NULL); + pci_nic_init_nofail(&nd_table[i], "ne2k_pci", NULL); if (drive_get_max_bus(IF_IDE) >= MAX_IDE_BUS) { fprintf(stderr, "qemu: too many IDE bus\n"); diff --git a/hw/versatilepb.c b/hw/versatilepb.c index 3371121..8e06c31 100644 --- a/hw/versatilepb.c +++ b/hw/versatilepb.c @@ -212,7 +212,7 @@ static void versatile_init(ram_addr_t ram_size, smc91c111_init(nd, 0x10010000, sic[25]); done_smc = 1; } else { - pci_nic_init(nd, "rtl8139", NULL); + pci_nic_init_nofail(nd, "rtl8139", NULL); } } if (usb_enabled) { diff --git a/net.c b/net.c index 047e72e..3572c48 100644 --- a/net.c +++ b/net.c @@ -2543,6 +2543,19 @@ static int nic_get_free_idx(void) return -1; } +int qemu_show_nic_models(const char *arg, const char *const *models) +{ + int i; + + if (!arg || strcmp(arg, "?")) + return 0; + + fprintf(stderr, "qemu: Supported NIC models: "); + for (i = 0 ; models[i]; i++) + fprintf(stderr, "%s%c", models[i], models[i+1] ? ',' : '\n'); + return 1; +} + void qemu_check_nic_model(NICInfo *nd, const char *model) { const char *models[2]; @@ -2550,31 +2563,27 @@ void qemu_check_nic_model(NICInfo *nd, const char *model) models[0] = model; models[1] = NULL; - qemu_check_nic_model_list(nd, models, model); + if (qemu_show_nic_models(nd->model, models)) + exit(0); + if (qemu_find_nic_model(nd, models, model) < 0) + exit(1); } -int qemu_check_nic_model_list(NICInfo *nd, const char * const *models, - const char *default_model) +int qemu_find_nic_model(NICInfo *nd, const char * const *models, + const char *default_model) { - int i, exit_status = 0; + int i; if (!nd->model) nd->model = qemu_strdup(default_model); - if (strcmp(nd->model, "?") != 0) { - for (i = 0 ; models[i]; i++) - if (strcmp(nd->model, models[i]) == 0) - return i; - - fprintf(stderr, "qemu: Unsupported NIC model: %s\n", nd->model); - exit_status = 1; + for (i = 0 ; models[i]; i++) { + if (strcmp(nd->model, models[i]) == 0) + return i; } - fprintf(stderr, "qemu: Supported NIC models: "); - for (i = 0 ; models[i]; i++) - fprintf(stderr, "%s%c", models[i], models[i+1] ? ',' : '\n'); - - exit(exit_status); + fprintf(stderr, "qemu: Unsupported NIC model: %s\n", nd->model); + return -1; } static int net_handle_fd_param(Monitor *mon, const char *param) diff --git a/net.h b/net.h index 9662988..07b4c9a 100644 --- a/net.h +++ b/net.h @@ -79,9 +79,10 @@ ssize_t qemu_send_packet_async(VLANClientState *vc, const uint8_t *buf, void qemu_purge_queued_packets(VLANClientState *vc); void qemu_flush_queued_packets(VLANClientState *vc); void qemu_format_nic_info_str(VLANClientState *vc, uint8_t macaddr[6]); +int qemu_show_nic_models(const char *arg, const char *const *models); void qemu_check_nic_model(NICInfo *nd, const char *model); -int qemu_check_nic_model_list(NICInfo *nd, const char * const *models, - const char *default_model); +int qemu_find_nic_model(NICInfo *nd, const char * const *models, + const char *default_model); void qemu_handler_true(void *opaque); void do_info_network(Monitor *mon); -- 1.6.2.5 Index: qemu.spec =================================================================== RCS file: /cvs/pkgs/rpms/qemu/devel/qemu.spec,v retrieving revision 1.133 retrieving revision 1.134 diff -u -p -r1.133 -r1.134 --- qemu.spec 28 Sep 2009 07:39:30 -0000 1.133 +++ qemu.spec 28 Sep 2009 16:42:19 -0000 1.134 @@ -1,7 +1,7 @@ Summary: QEMU is a FAST! processor emulator Name: qemu Version: 0.11.0 -Release: 1%{?dist} +Release: 2%{?dist} # Epoch because we pushed a qemu-1.0 package Epoch: 2 License: GPLv2+ and LGPLv2+ and BSD @@ -39,6 +39,10 @@ Patch04: qemu-add-ksm-support.patch # Fix issue causing NIC hotplug confusion when no model is specified (#524022) Patch05: qemu-correctly-free-nic-info-structure.patch +# Do not exit during PCI hotplug when an invalid NIC model is passed (#524022) +Patch06: qemu-do-not-exit-on-pci-hotplug-invalid-nic1.patch +Patch07: qemu-do-not-exit-on-pci-hotplug-invalid-nic1.patch + BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: SDL-devel zlib-devel which texi2html gnutls-devel cyrus-sasl-devel BuildRequires: rsync dev86 iasl @@ -227,6 +231,8 @@ such as kvmtrace and kvm_stat. %patch03 -p1 %patch04 -p1 %patch05 -p1 +%patch06 -p1 +%patch07 -p1 %build # systems like rhel build system does not have a recent enough linker so @@ -520,6 +526,9 @@ fi %{_mandir}/man1/qemu-img.1* %changelog +* Mon Sep 28 2009 Mark McLoughlin - 2:0.11.0-2 +- Fix pci hotplug to not exit if supplied an invalid NIC model (#524022) + * Mon Sep 28 2009 Mark McLoughlin - 2:0.11.0-1 - Update to 0.11.0 release - Drop a couple of upstreamed patches From markmc at fedoraproject.org Mon Sep 28 17:13:52 2009 From: markmc at fedoraproject.org (Mark McLoughlin) Date: Mon, 28 Sep 2009 17:13:52 +0000 (UTC) Subject: [fedora-virt-maint] rpms/qemu/devel qemu.spec,1.134,1.135 Message-ID: <20090928171352.473EE11C00E4@cvs1.fedora.phx.redhat.com> Author: markmc Update of /cvs/pkgs/rpms/qemu/devel In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv14375 Modified Files: qemu.spec Log Message: typo Index: qemu.spec =================================================================== RCS file: /cvs/pkgs/rpms/qemu/devel/qemu.spec,v retrieving revision 1.134 retrieving revision 1.135 diff -u -p -r1.134 -r1.135 --- qemu.spec 28 Sep 2009 16:42:19 -0000 1.134 +++ qemu.spec 28 Sep 2009 17:13:52 -0000 1.135 @@ -41,7 +41,7 @@ Patch05: qemu-correctly-free-nic-info-st # Do not exit during PCI hotplug when an invalid NIC model is passed (#524022) Patch06: qemu-do-not-exit-on-pci-hotplug-invalid-nic1.patch -Patch07: qemu-do-not-exit-on-pci-hotplug-invalid-nic1.patch +Patch07: qemu-do-not-exit-on-pci-hotplug-invalid-nic2.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: SDL-devel zlib-devel which texi2html gnutls-devel cyrus-sasl-devel From rjones at fedoraproject.org Tue Sep 29 08:12:31 2009 From: rjones at fedoraproject.org (Richard W.M. Jones) Date: Tue, 29 Sep 2009 08:12:31 +0000 (UTC) Subject: [fedora-virt-maint] rpms/libguestfs/devel libguestfs.spec, 1.102, 1.103 Message-ID: <20090929081231.BFF3911C00C1@cvs1.fedora.phx.redhat.com> Author: rjones Update of /cvs/pkgs/rpms/libguestfs/devel In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv487 Modified Files: libguestfs.spec Log Message: Force rebuild. Index: libguestfs.spec =================================================================== RCS file: /cvs/pkgs/rpms/libguestfs/devel/libguestfs.spec,v retrieving revision 1.102 retrieving revision 1.103 diff -u -p -r1.102 -r1.103 --- libguestfs.spec 23 Sep 2009 15:31:14 -0000 1.102 +++ libguestfs.spec 29 Sep 2009 08:12:31 -0000 1.103 @@ -5,7 +5,7 @@ Summary: Access and modify virtual m Name: libguestfs Epoch: 1 Version: 1.0.72 -Release: 1%{?dist} +Release: 2%{?dist} License: LGPLv2+ Group: Development/Libraries URL: http://libguestfs.org/ @@ -536,6 +536,9 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Tue Sep 29 2009 Richard W.M. Jones - 1.0.72-2 +- Force rebuild. + * Wed Sep 23 2009 Richard W.M. Jones - 1.0.72-1 - New upstream release 1.0.72. - New tools: virt-edit, virt-rescue. From rjones at fedoraproject.org Tue Sep 29 10:25:14 2009 From: rjones at fedoraproject.org (Richard W.M. Jones) Date: Tue, 29 Sep 2009 10:25:14 +0000 (UTC) Subject: [fedora-virt-maint] rpms/libguestfs/F-12 libguestfs.spec, 1.102, 1.103 Message-ID: <20090929102514.C79A611C00C1@cvs1.fedora.phx.redhat.com> Author: rjones Update of /cvs/pkgs/rpms/libguestfs/F-12 In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv20104 Modified Files: libguestfs.spec Log Message: Force rebuild. Index: libguestfs.spec =================================================================== RCS file: /cvs/pkgs/rpms/libguestfs/F-12/libguestfs.spec,v retrieving revision 1.102 retrieving revision 1.103 diff -u -p -r1.102 -r1.103 --- libguestfs.spec 23 Sep 2009 15:31:14 -0000 1.102 +++ libguestfs.spec 29 Sep 2009 10:25:14 -0000 1.103 @@ -5,7 +5,7 @@ Summary: Access and modify virtual m Name: libguestfs Epoch: 1 Version: 1.0.72 -Release: 1%{?dist} +Release: 2%{?dist} License: LGPLv2+ Group: Development/Libraries URL: http://libguestfs.org/ @@ -536,6 +536,9 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Tue Sep 29 2009 Richard W.M. Jones - 1.0.72-2 +- Force rebuild. + * Wed Sep 23 2009 Richard W.M. Jones - 1.0.72-1 - New upstream release 1.0.72. - New tools: virt-edit, virt-rescue. From crobinso at fedoraproject.org Tue Sep 29 19:24:29 2009 From: crobinso at fedoraproject.org (Cole Robinson) Date: Tue, 29 Sep 2009 19:24:29 +0000 (UTC) Subject: [fedora-virt-maint] rpms/virt-manager/F-12 virt-manager-0.8.0-fix-vcpu-hotplug.patch, NONE, 1.1 virt-manager-0.8.0-hide-help-docs.patch, NONE, 1.1 virt-manager-0.8.0-update-translations.patch, NONE, 1.1 virt-manager-0.8.0-update-vm-state.patch, NONE, 1.1 virt-manager.spec, 1.60, 1.61 virtinst-0.500.0-change-path-perms.patch, 1.1, NONE virtinst-0.500.0-no-iso-driver.patch, 1.1, NONE Message-ID: <20090929192429.372FF11C00C1@cvs1.fedora.phx.redhat.com> Author: crobinso Update of /cvs/pkgs/rpms/virt-manager/F-12 In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv9465 Modified Files: virt-manager.spec Added Files: virt-manager-0.8.0-fix-vcpu-hotplug.patch virt-manager-0.8.0-hide-help-docs.patch virt-manager-0.8.0-update-translations.patch virt-manager-0.8.0-update-vm-state.patch Removed Files: virtinst-0.500.0-change-path-perms.patch virtinst-0.500.0-no-iso-driver.patch Log Message: Fix VCPU hotplug Remove access to outdated docs (bz 522823, bz 524805) Update VM state text in manager view (bz 526182) Update translations (bz 493795) virt-manager-0.8.0-fix-vcpu-hotplug.patch: domain.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- NEW FILE virt-manager-0.8.0-fix-vcpu-hotplug.patch --- # HG changeset patch # User Cole Robinson # Date 1253823268 14400 # Node ID d78b7e7131439dc9f22c8e7391e82c5f29888fe8 # Parent cfcd19d057ddc973a129e7816cd4ea39f0d4365a Fix vcpu hotplug. diff -r cfcd19d057dd -r d78b7e713143 src/virtManager/domain.py --- a/src/virtManager/domain.py Thu Sep 24 11:41:49 2009 -0400 +++ b/src/virtManager/domain.py Thu Sep 24 16:14:28 2009 -0400 @@ -1355,7 +1355,7 @@ self._change_cdrom(result, dev_id_info) def hotplug_vcpu(self, vcpus): - self.vm.setVcpus() + self.vm.setVcpus(int(vcpus)) def hotplug_vcpus(self, vcpus): vcpus = int(vcpus) virt-manager-0.8.0-hide-help-docs.patch: addhardware.py | 3 +++ clone.py | 3 +++ createnet.py | 3 +++ createpool.py | 3 +++ createvol.py | 4 ++++ details.py | 5 ++++- host.py | 3 +++ manager.py | 7 ++++++- preferences.py | 3 +++ 9 files changed, 32 insertions(+), 2 deletions(-) --- NEW FILE virt-manager-0.8.0-hide-help-docs.patch --- # HG changeset patch # User Cole Robinson # Date 1254248737 14400 # Node ID 65951459abe9efb9fc5f58a243ddcfd49deba0a5 # Parent 59f3d7a2ec289145c41437b7f12bcd730e17f340 Hide access to help docs: they are out of date to the point of uselessness. diff -r 59f3d7a2ec28 -r 65951459abe9 src/virtManager/addhardware.py --- a/src/virtManager/addhardware.py Tue Sep 29 14:02:28 2009 -0400 +++ b/src/virtManager/addhardware.py Tue Sep 29 14:25:37 2009 -0400 @@ -115,6 +115,9 @@ "char_telnet_focus_in": (self.update_doc, "protocol"), }) + # XXX: Help docs useless/out of date + self.window.get_widget("create-help").hide() + self.set_initial_state() def update_doc(self, ignore1, ignore2, param): diff -r 59f3d7a2ec28 -r 65951459abe9 src/virtManager/clone.py --- a/src/virtManager/clone.py Tue Sep 29 14:02:28 2009 -0400 +++ b/src/virtManager/clone.py Tue Sep 29 14:25:37 2009 -0400 @@ -129,6 +129,9 @@ "on_clone_help_clicked" : self.show_help, }) + # XXX: Help docs useless/out of date + self.window.get_widget("clone-help").hide() + self.set_initial_state() def show(self): diff -r 59f3d7a2ec28 -r 65951459abe9 src/virtManager/createnet.py --- a/src/virtManager/createnet.py Tue Sep 29 14:02:28 2009 -0400 +++ b/src/virtManager/createnet.py Tue Sep 29 14:25:37 2009 -0400 @@ -68,6 +68,9 @@ "on_create_help_clicked": self.show_help, }) + # XXX: Help docs useless/out of date + self.window.get_widget("create-help").hide() + self.set_initial_state() def show(self): diff -r 59f3d7a2ec28 -r 65951459abe9 src/virtManager/createpool.py --- a/src/virtManager/createpool.py Tue Sep 29 14:02:28 2009 -0400 +++ b/src/virtManager/createpool.py Tue Sep 29 14:25:37 2009 -0400 @@ -88,6 +88,9 @@ "on_pool_build_focus_in_event": (self.update_build_doc) }) + # XXX: Help docs useless/out of date + self.window.get_widget("pool-help").hide() + self.set_initial_state() def show(self): diff -r 59f3d7a2ec28 -r 65951459abe9 src/virtManager/createvol.py --- a/src/virtManager/createvol.py Tue Sep 29 14:02:28 2009 -0400 +++ b/src/virtManager/createvol.py Tue Sep 29 14:25:37 2009 -0400 @@ -72,6 +72,10 @@ format_list.add_attribute(text2, 'text', 1) self.window.get_widget("vol-info-view").modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse("grey")) + + # XXX: Help docs useless/out of date + self.window.get_widget("pool-help").hide() + self.reset_state() diff -r 59f3d7a2ec28 -r 65951459abe9 src/virtManager/details.py --- a/src/virtManager/details.py Tue Sep 29 14:02:28 2009 -0400 +++ b/src/virtManager/details.py Tue Sep 29 14:25:37 2009 -0400 @@ -313,6 +313,9 @@ "on_security_model_changed": self.security_model_changed, }) + # XXX: Help docs useless/out of date + self.window.get_widget("help1").hide() + self.vm.connect("status-changed", self.update_widget_states) self.vm.connect("resources-sampled", self.refresh_resources) self.vm.connect("config-changed", self.refresh_vm_info) @@ -575,7 +578,7 @@ if self.is_visible(): self.topwin.present() return - self.topwin.show_all() + self.topwin.show() self.topwin.present() self.engine.increment_window_counter() diff -r 59f3d7a2ec28 -r 65951459abe9 src/virtManager/host.py --- a/src/virtManager/host.py Tue Sep 29 14:02:28 2009 -0400 +++ b/src/virtManager/host.py Tue Sep 29 14:25:37 2009 -0400 @@ -169,6 +169,9 @@ "on_config_autoconnect_toggled": self.toggle_autoconnect, }) + # XXX: Help docs useless/out of date + self.window.get_widget("help1").hide() + self.conn.connect("resources-sampled", self.refresh_resources) self.reset_state() diff -r 59f3d7a2ec28 -r 65951459abe9 src/virtManager/manager.py --- a/src/virtManager/manager.py Tue Sep 29 14:02:28 2009 -0400 +++ b/src/virtManager/manager.py Tue Sep 29 14:25:37 2009 -0400 @@ -188,6 +188,7 @@ filename = self.config.get_icon_dir() + "/%s" % iconfile pixbuf = gtk.gdk.pixbuf_new_from_file_at_size(filename, l, w) image = gtk.image_new_from_pixbuf(pixbuf) + image.show_all() self.window.get_widget(widget).set_icon_widget(image) set_toolbar_image("vm-new", "vm_new_wizard.png", 28, 28) @@ -356,6 +357,9 @@ "on_menu_help_activate": self.show_help, }) + # XXX: Help docs useless/out of date + self.window.get_widget("menu_help").hide() + self.vm_selected(None) self.window.get_widget("vm-list").get_selection().connect("changed", self.vm_selected) @@ -391,7 +395,8 @@ if self.is_visible(): win.present() return - win.show_all() + win.show() + win.present() self.engine.increment_window_counter() if self.startup_error: diff -r 59f3d7a2ec28 -r 65951459abe9 src/virtManager/preferences.py --- a/src/virtManager/preferences.py Tue Sep 29 14:02:28 2009 -0400 +++ b/src/virtManager/preferences.py Tue Sep 29 14:25:37 2009 -0400 @@ -75,6 +75,9 @@ "on_prefs_stats_enable_net_toggled": self.change_net_poll, }) + # XXX: Help docs useless/out of date + self.window.get_widget("prefs-help").hide() + def close(self, ignore1=None, ignore2=None): self.topwin.hide() return 1 virt-manager-0.8.0-update-translations.patch: as.po | 1847 ++--- bg.po | 918 +- bn_IN.po | 2250 ++---- bs.po | 917 +- ca.po | 921 +- cs.po | 917 +- da.po | 917 +- de.po | 8692 ++++++++++++-------------- es.po | 1187 +-- fi.po | 921 +- fr.po |19894 +++++++++++++++++++++++++++++------------------------------- gu.po | 1492 +--- hi.po | 1495 +--- hr.po | 918 +- hu.po | 2958 ++++---- is.po | 914 +- it.po | 929 +- ja.po | 1169 +-- kn.po | 1502 +--- ko.po | 2197 +----- ml.po | 2798 +++----- mr.po | 1514 +--- ms.po | 923 +- nb.po | 918 +- nl.po | 1144 +-- or.po | 1479 +--- pa.po | 1496 +--- pl.po | 1500 +--- pt.po | 924 +- pt_BR.po | 933 +- ro.po | 917 +- ru.po | 918 +- sr.po | 918 +- sr at latin.po | 918 +- sv.po | 926 +- ta.po | 1504 +--- te.po | 1506 +--- tr.po | 911 +- uk.po | 917 +- zh_CN.po | 1165 +-- zh_TW.po | 929 +- 41 files changed, 36406 insertions(+), 41707 deletions(-) --- NEW FILE virt-manager-0.8.0-update-translations.patch --- # HG changeset patch # User Laurent L?onard # Date 1249496263 14400 # Node ID 5195fe3509bc3a3938c607240f215c9921af8f2c # Parent 18e673ca4e148a3e023f56353412d259aea487c2 Updated french translation. diff -r 18e673ca4e14 -r 5195fe3509bc po/fr.po --- a/po/fr.po Tue Jul 28 22:25:13 2009 -0400 +++ b/po/fr.po Wed Aug 05 14:17:43 2009 -0400 @@ -1,5099 +1,4131 @@ -# translation of virt-manager.tip.po to french -# Copyright (C) 2006 Virt-Manager -# This file is distributed under the same license as the Virt-Manager package. -# -# Damien Durand , 2006. -# Thomas Canniot , 2006, 2007. -# Alain PORTAL , 2006, 2007. -# Decroux Fabien , 2006. -# Gauthier Ancelin , 2007, 2008. -msgid "" -msgstr "" -"Project-Id-Version: virt-manager.tip\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-07-28 20:55-0400\n" -"PO-Revision-Date: 2008-01-31 20:53+0100\n" -"Last-Translator: Gauthier Ancelin \n" -"Language-Team: french \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.11.4\n" - -#: ../src/virt-manager.desktop.in.in.h:1 -msgid "Manage virtual machines" -msgstr "G?rer les machines virtuelles" - -#: ../src/virt-manager.desktop.in.in.h:2 ../src/virtManager/systray.py:101 -#: ../src/vmm-manager.glade.h:11 -msgid "Virtual Machine Manager" -msgstr "Gestionnaire de machine virtuelle" - -#: ../src/virt-manager.py.in:55 -#, fuzzy -msgid "Error starting Virtual Machine Manager" -msgstr "Gestionnaire de machine virtuelle" - -#. ...the risk is we catch too much though -#. Damned if we do, damned if we dont :-)( -#: ../src/virt-manager.py.in:288 -#, fuzzy, python-format -msgid "Unable to initialize GTK: %s" -msgstr "Impossible d'initialiser GTK : " - -#: ../src/virt-manager.schemas.in.h:1 -msgid "Default image path" -msgstr "" - -#: ../src/virt-manager.schemas.in.h:2 -#, fuzzy -msgid "Default media path" -msgstr "Param?tre de r?seau invalide" - -#: ../src/virt-manager.schemas.in.h:3 -msgid "Default path for choosing VM images" -msgstr "" - -#: ../src/virt-manager.schemas.in.h:4 -msgid "Default path for choosing media" -msgstr "" - -#: ../src/virt-manager.schemas.in.h:5 -msgid "Default path for saving VM snaphots" -msgstr "" - -#: ../src/virt-manager.schemas.in.h:6 -msgid "Default path for saving screenshots from VMs" -msgstr "" - -#: ../src/virt-manager.schemas.in.h:7 -msgid "Default path for stored VM snapshots" -msgstr "" - -#: ../src/virt-manager.schemas.in.h:8 -msgid "Default restore path" -msgstr "" - -#: ../src/virt-manager.schemas.in.h:9 -msgid "Default save domain path" -msgstr "" - -#: ../src/virt-manager.schemas.in.h:10 -msgid "Default screenshot path" -msgstr "" - -#: ../src/virt-manager.schemas.in.h:11 -msgid "Install sound device for local VM" -msgstr "" - -#: ../src/virt-manager.schemas.in.h:12 -msgid "Install sound device for remote VM" -msgstr "" - -#: ../src/virt-manager.schemas.in.h:13 -msgid "Poll disk i/o stats" -msgstr "" - -#: ../src/virt-manager.schemas.in.h:14 -msgid "Poll net i/o stats" -msgstr "" - -#: ../src/virt-manager.schemas.in.h:15 -msgid "Show system tray icon" -msgstr "" - -#: ../src/virt-manager.schemas.in.h:16 -msgid "Show system tray icon while app is running" -msgstr "" - -#: ../src/virt-manager.schemas.in.h:17 -msgid "Stats type in manager view" -msgstr "" - -#: ../src/virt-manager.schemas.in.h:18 -msgid "The length of the list of URLs" -msgstr "La longueur de la liste d'URL" - -#: ../src/virt-manager.schemas.in.h:19 -msgid "The number of samples to keep in the statistics history" -msgstr "" -"Le nombre d'?chantillons ? conserver dans l'historique des statistiques" - -#: ../src/virt-manager.schemas.in.h:20 -msgid "" -"The number of urls to keep in the history for the install media address page." -msgstr "" -"Le nombre d'URL ? conserver dans l'historique pour la page des adresses de " -"media d'installation." - -#: ../src/virt-manager.schemas.in.h:21 -msgid "The statistics history length" -msgstr "La longueur de l'historique de statistiques" - -#: ../src/virt-manager.schemas.in.h:22 -msgid "The statistics update interval" -msgstr "L'intervalle de rafra?chissement des statistiques" - -#: ../src/virt-manager.schemas.in.h:23 -msgid "The statistics update interval in seconds" -msgstr "L'intervalle de rafra?chissement des statistiques en secondes" - -#: ../src/virt-manager.schemas.in.h:24 -msgid "Type of stats to graph (cpu, disk, net) in manager view" -msgstr "" - -#: ../src/virt-manager.schemas.in.h:25 -msgid "When to grab keyboard input for the console" -msgstr "Quand la console peut s'approprier le clavier" - -#: ../src/virt-manager.schemas.in.h:26 -msgid "When to pop up a console for a guest" -msgstr "Quand pr?senter une console pour un invit?" - -#: ../src/virt-manager.schemas.in.h:27 -msgid "When to scale the VM graphical console" -msgstr "" - -#: ../src/virt-manager.schemas.in.h:28 -#, fuzzy -msgid "" -"When to scale the VM graphical console. 0 = never, 1 = only when in full " -"screen mode, 2 = Always" -msgstr "" -"Quand une console d'invit? peut s'approprier le clavier. ? 0 ? = jamais, ? 1 ? " -"= seulement en mode plein ?cran, ? 2 ? = lorsque la souris est au-dessus de " -"la console" - -#: ../src/virt-manager.schemas.in.h:29 -msgid "Whether or not the app will poll VM disk i/o statistics" -msgstr "" - -#: ../src/virt-manager.schemas.in.h:30 -msgid "Whether or not the app will poll VM network i/o statistics" -msgstr "" - -#: ../src/virt-manager.schemas.in.h:31 -msgid "" -"Whether to grab keyboard input for a guest console. 0 = never, 1 = only when " -"in full screen mode, 2 = when mouse is over console" -msgstr "" -"Quand une console d'invit? peut s'approprier le clavier. ? 0 ? = jamais, ? 1 ? " -"= seulement en mode plein ?cran, ? 2 ? = lorsque la souris est au-dessus de " -"la console" - -#: ../src/virt-manager.schemas.in.h:32 -msgid "Whether to install a sound device for local VMs or not" -msgstr "" - -#: ../src/virt-manager.schemas.in.h:33 [...148040 lines suppressed...] msgstr "" -#: ../src/vmm-create.glade.h:44 +#: ../src/vmm-create.glade.h:45 msgid "URL:" msgstr "" -#: ../src/vmm-create.glade.h:45 +#: ../src/vmm-create.glade.h:46 #, fuzzy msgid "Use CDROM or DVD" msgstr "???? DVD ???(_C)" -#: ../src/vmm-create.glade.h:46 +#: ../src/vmm-create.glade.h:47 #, fuzzy msgid "Use ISO image:" msgstr "?? ISO ???" -#: ../src/vmm-create.glade.h:47 +#: ../src/vmm-create.glade.h:48 #, fuzzy msgid "Version:" msgstr "???" -#: ../src/vmm-create.glade.h:48 +#: ../src/vmm-create.glade.h:49 #, fuzzy msgid "Virt Type:" msgstr "???" @@ -3076,10 +3074,6 @@ msgid "Delete associated storage files" msgstr "" -#: ../src/vmm-delete.glade.h:4 -msgid "gtk-delete" -msgstr "" - #: ../src/vmm-details.glade.h:1 msgid "" "0 KBytes/s\n" @@ -3229,7 +3223,7 @@ msgid "Device virtual machine will boot from:" msgstr "?????????????" -#: ../src/vmm-details.glade.h:40 ../src/vmm-manager.glade.h:4 +#: ../src/vmm-details.glade.h:40 ../src/vmm-manager.glade.h:2 msgid "Disk" msgstr "??" @@ -3431,10 +3425,6 @@ msgid "Stats" msgstr "??" -#: ../src/vmm-details.glade.h:100 -msgid "Status:" -msgstr "???" - #: ../src/vmm-details.glade.h:101 msgid "Target Port:" msgstr "??????" @@ -3508,29 +3498,24 @@ msgstr "??(_B)..." #: ../src/vmm-details.glade.h:119 ../src/vmm-host.glade.h:41 -#: ../src/vmm-manager.glade.h:12 -msgid "_Contents" -msgstr "??(_C)" - -#: ../src/vmm-details.glade.h:120 ../src/vmm-host.glade.h:42 -#: ../src/vmm-manager.glade.h:14 +#: ../src/vmm-manager.glade.h:9 msgid "_File" msgstr "??(_F)" -#: ../src/vmm-details.glade.h:121 ../src/vmm-host.glade.h:43 -#: ../src/vmm-manager.glade.h:15 +#: ../src/vmm-details.glade.h:120 ../src/vmm-host.glade.h:42 +#: ../src/vmm-manager.glade.h:10 msgid "_Help" msgstr "??(_H)" -#: ../src/vmm-details.glade.h:125 +#: ../src/vmm-details.glade.h:124 msgid "_Save" msgstr "??(_S)" -#: ../src/vmm-details.glade.h:126 +#: ../src/vmm-details.glade.h:125 msgid "_Take Screenshot" msgstr "????(_T)" -#: ../src/vmm-details.glade.h:127 ../src/vmm-manager.glade.h:21 +#: ../src/vmm-details.glade.h:126 ../src/vmm-manager.glade.h:16 msgid "_View" msgstr "??(_V)" @@ -3590,7 +3575,7 @@ msgid "Forwarding:" msgstr "???" -#: ../src/vmm-host.glade.h:21 ../src/vmm-manager.glade.h:6 +#: ../src/vmm-host.glade.h:21 ../src/vmm-manager.glade.h:4 msgid "Host Details" msgstr "??????" @@ -3651,50 +3636,32 @@ msgstr "????" #: ../src/vmm-manager.glade.h:1 -msgid "Add Connection..." -msgstr "????..." - -#: ../src/vmm-manager.glade.h:2 #, fuzzy msgid "CPU" msgstr "VCPU" #: ../src/vmm-manager.glade.h:3 -#, fuzzy -msgid "Delete Virtual Machine" -msgstr "??????" - -#: ../src/vmm-manager.glade.h:5 msgid "Graph" msgstr "" -#: ../src/vmm-manager.glade.h:8 +#: ../src/vmm-manager.glade.h:6 msgid "Restore a saved machine from a filesystem image" msgstr "???????????????????" -#: ../src/vmm-manager.glade.h:9 -msgid "Restore saved machine..." -msgstr "????????..." - -#: ../src/vmm-manager.glade.h:10 -#, fuzzy -msgid "Virtual Machine Details" -msgstr "????" - -#: ../src/vmm-manager.glade.h:13 +#: ../src/vmm-manager.glade.h:8 msgid "_Edit" msgstr "??(_E)" -#: ../src/vmm-manager.glade.h:16 +#: ../src/vmm-manager.glade.h:11 #, fuzzy msgid "_New" msgstr "??(_V)" -#: ../src/vmm-manager.glade.h:17 +#: ../src/vmm-manager.glade.h:12 msgid "_Open" msgstr "" -#: ../src/vmm-manager.glade.h:20 +#: ../src/vmm-manager.glade.h:15 #, fuzzy msgid "_Shutdown" msgstr "??" @@ -3879,6 +3846,26 @@ msgid "_New Volume" msgstr "???" +#~ msgid "Create _Volume" +#~ msgstr "????(_V)" + +#~ msgid "_Contents" +#~ msgstr "??(_C)" + +#~ msgid "Add Connection..." +#~ msgstr "????..." + +#, fuzzy +#~ msgid "Delete Virtual Machine" +#~ msgstr "??????" + +#~ msgid "Restore saved machine..." +#~ msgstr "????????..." + +#, fuzzy +#~ msgid "Virtual Machine Details" +#~ msgstr "????" + #, fuzzy #~ msgid "Poll memory usage stats" #~ msgstr "????????????" @@ -4239,10 +4226,6 @@ #~ msgstr "CPU ???" #, fuzzy -#~ msgid "Enable audio:" -#~ msgstr "?????" - -#, fuzzy #~ msgid "F_ully virtualized:" #~ msgstr "?????(_u)?" virt-manager-0.8.0-update-vm-state.patch: manager.py | 1 + 1 file changed, 1 insertion(+) --- NEW FILE virt-manager-0.8.0-update-vm-state.patch --- # HG changeset patch # User Cole Robinson # Date 1254247348 14400 # Node ID 59f3d7a2ec289145c41437b7f12bcd730e17f340 # Parent 6d219a6db4fbcb343d41a959dac7a8623f3dcbb3 manager: Actually update VM state text when state changes diff -r 6d219a6db4fb -r 59f3d7a2ec28 src/virtManager/manager.py --- a/src/virtManager/manager.py Tue Sep 29 14:00:50 2009 -0400 +++ b/src/virtManager/manager.py Tue Sep 29 14:02:28 2009 -0400 @@ -584,6 +584,7 @@ row[ROW_STATUS] = vm.run_status() row[ROW_STATUS_ICON] = vm.run_status_icon_large() row[ROW_IS_VM_RUNNING] = vm.is_active() + row[ROW_MARKUP] = self._build_vm_markup(vm, row) model.row_changed(row.path, row.iter) Index: virt-manager.spec =================================================================== RCS file: /cvs/pkgs/rpms/virt-manager/F-12/virt-manager.spec,v retrieving revision 1.60 retrieving revision 1.61 diff -u -p -r1.60 -r1.61 --- virt-manager.spec 24 Sep 2009 15:47:35 -0000 1.60 +++ virt-manager.spec 29 Sep 2009 19:24:28 -0000 1.61 @@ -8,7 +8,7 @@ Name: virt-manager Version: 0.8.0 -Release: 5%{_extra_release} +Release: 6%{_extra_release} Summary: Virtual Machine Manager Group: Applications/Emulators @@ -40,6 +40,14 @@ Patch8: %{name}-%{version}-stats-logging Patch9: %{name}-%{version}-refresh-disk-space.patch # Offer to fix disk permission issues (bz 517379) Patch10: %{name}-%{version}-fix-path-perms.patch +# Fix VCPU hotplug +Patch11: %{name}-%{version}-fix-vcpu-hotplug.patch +# Remove access to outdated docs (bz 522823, bz 524805) +Patch12: %{name}-%{version}-hide-help-docs.patch +# Update VM state text in manager view (bz 526182) +Patch13: %{name}-%{version}-update-vm-state.patch +# Update translations (bz 493795) +Patch14: %{name}-%{version}-update-translations.patch # These two are just the oldest version tested Requires: pygtk2 >= 1.99.12-6 @@ -117,6 +125,10 @@ cp %{SOURCE3} pixmaps %patch8 -p1 %patch9 -p1 %patch10 -p1 +%patch11 -p1 +%patch12 -p1 +%patch13 -p1 +%patch14 -p1 %build %configure @@ -190,6 +202,12 @@ fi %{_datadir}/dbus-1/services/%{name}.service %changelog +* Tue Sep 29 2009 Cole Robinson - 0.8.0-6.fc12 +- Fix VCPU hotplug +- Remove access to outdated docs (bz 522823, bz 524805) +- Update VM state text in manager view (bz 526182) +- Update translations (bz 493795) + * Thu Sep 24 2009 Cole Robinson - 0.8.0-5.fc12 - Refresh host disk space in create wizard (bz 502777) - Offer to fix disk permission issues (bz 517379) --- virtinst-0.500.0-change-path-perms.patch DELETED --- --- virtinst-0.500.0-no-iso-driver.patch DELETED --- From crobinso at fedoraproject.org Tue Sep 29 19:37:26 2009 From: crobinso at fedoraproject.org (Cole Robinson) Date: Tue, 29 Sep 2009 19:37:26 +0000 (UTC) Subject: [fedora-virt-maint] rpms/virt-manager/devel virt-manager-0.8.0-fix-vcpu-hotplug.patch, NONE, 1.1 virt-manager-0.8.0-hide-help-docs.patch, NONE, 1.1 virt-manager-0.8.0-update-translations.patch, NONE, 1.1 virt-manager-0.8.0-update-vm-state.patch, NONE, 1.1 virt-manager.spec, 1.60, 1.61 virtinst-0.500.0-change-path-perms.patch, 1.1, NONE virtinst-0.500.0-no-iso-driver.patch, 1.1, NONE Message-ID: <20090929193726.AE45F11C00C1@cvs1.fedora.phx.redhat.com> Author: crobinso Update of /cvs/pkgs/rpms/virt-manager/devel In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv13807 Modified Files: virt-manager.spec Added Files: virt-manager-0.8.0-fix-vcpu-hotplug.patch virt-manager-0.8.0-hide-help-docs.patch virt-manager-0.8.0-update-translations.patch virt-manager-0.8.0-update-vm-state.patch Removed Files: virtinst-0.500.0-change-path-perms.patch virtinst-0.500.0-no-iso-driver.patch Log Message: Fix VCPU hotplug Remove access to outdated docs (bz 522823, bz 524805) Update VM state text in manager view (bz 526182) Update translations (bz 493795) virt-manager-0.8.0-fix-vcpu-hotplug.patch: domain.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- NEW FILE virt-manager-0.8.0-fix-vcpu-hotplug.patch --- # HG changeset patch # User Cole Robinson # Date 1253823268 14400 # Node ID d78b7e7131439dc9f22c8e7391e82c5f29888fe8 # Parent cfcd19d057ddc973a129e7816cd4ea39f0d4365a Fix vcpu hotplug. diff -r cfcd19d057dd -r d78b7e713143 src/virtManager/domain.py --- a/src/virtManager/domain.py Thu Sep 24 11:41:49 2009 -0400 +++ b/src/virtManager/domain.py Thu Sep 24 16:14:28 2009 -0400 @@ -1355,7 +1355,7 @@ self._change_cdrom(result, dev_id_info) def hotplug_vcpu(self, vcpus): - self.vm.setVcpus() + self.vm.setVcpus(int(vcpus)) def hotplug_vcpus(self, vcpus): vcpus = int(vcpus) virt-manager-0.8.0-hide-help-docs.patch: addhardware.py | 3 +++ clone.py | 3 +++ createnet.py | 3 +++ createpool.py | 3 +++ createvol.py | 4 ++++ details.py | 5 ++++- host.py | 3 +++ manager.py | 7 ++++++- preferences.py | 3 +++ 9 files changed, 32 insertions(+), 2 deletions(-) --- NEW FILE virt-manager-0.8.0-hide-help-docs.patch --- # HG changeset patch # User Cole Robinson # Date 1254248737 14400 # Node ID 65951459abe9efb9fc5f58a243ddcfd49deba0a5 # Parent 59f3d7a2ec289145c41437b7f12bcd730e17f340 Hide access to help docs: they are out of date to the point of uselessness. diff -r 59f3d7a2ec28 -r 65951459abe9 src/virtManager/addhardware.py --- a/src/virtManager/addhardware.py Tue Sep 29 14:02:28 2009 -0400 +++ b/src/virtManager/addhardware.py Tue Sep 29 14:25:37 2009 -0400 @@ -115,6 +115,9 @@ "char_telnet_focus_in": (self.update_doc, "protocol"), }) + # XXX: Help docs useless/out of date + self.window.get_widget("create-help").hide() + self.set_initial_state() def update_doc(self, ignore1, ignore2, param): diff -r 59f3d7a2ec28 -r 65951459abe9 src/virtManager/clone.py --- a/src/virtManager/clone.py Tue Sep 29 14:02:28 2009 -0400 +++ b/src/virtManager/clone.py Tue Sep 29 14:25:37 2009 -0400 @@ -129,6 +129,9 @@ "on_clone_help_clicked" : self.show_help, }) + # XXX: Help docs useless/out of date + self.window.get_widget("clone-help").hide() + self.set_initial_state() def show(self): diff -r 59f3d7a2ec28 -r 65951459abe9 src/virtManager/createnet.py --- a/src/virtManager/createnet.py Tue Sep 29 14:02:28 2009 -0400 +++ b/src/virtManager/createnet.py Tue Sep 29 14:25:37 2009 -0400 @@ -68,6 +68,9 @@ "on_create_help_clicked": self.show_help, }) + # XXX: Help docs useless/out of date + self.window.get_widget("create-help").hide() + self.set_initial_state() def show(self): diff -r 59f3d7a2ec28 -r 65951459abe9 src/virtManager/createpool.py --- a/src/virtManager/createpool.py Tue Sep 29 14:02:28 2009 -0400 +++ b/src/virtManager/createpool.py Tue Sep 29 14:25:37 2009 -0400 @@ -88,6 +88,9 @@ "on_pool_build_focus_in_event": (self.update_build_doc) }) + # XXX: Help docs useless/out of date + self.window.get_widget("pool-help").hide() + self.set_initial_state() def show(self): diff -r 59f3d7a2ec28 -r 65951459abe9 src/virtManager/createvol.py --- a/src/virtManager/createvol.py Tue Sep 29 14:02:28 2009 -0400 +++ b/src/virtManager/createvol.py Tue Sep 29 14:25:37 2009 -0400 @@ -72,6 +72,10 @@ format_list.add_attribute(text2, 'text', 1) self.window.get_widget("vol-info-view").modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse("grey")) + + # XXX: Help docs useless/out of date + self.window.get_widget("pool-help").hide() + self.reset_state() diff -r 59f3d7a2ec28 -r 65951459abe9 src/virtManager/details.py --- a/src/virtManager/details.py Tue Sep 29 14:02:28 2009 -0400 +++ b/src/virtManager/details.py Tue Sep 29 14:25:37 2009 -0400 @@ -313,6 +313,9 @@ "on_security_model_changed": self.security_model_changed, }) + # XXX: Help docs useless/out of date + self.window.get_widget("help1").hide() + self.vm.connect("status-changed", self.update_widget_states) self.vm.connect("resources-sampled", self.refresh_resources) self.vm.connect("config-changed", self.refresh_vm_info) @@ -575,7 +578,7 @@ if self.is_visible(): self.topwin.present() return - self.topwin.show_all() + self.topwin.show() self.topwin.present() self.engine.increment_window_counter() diff -r 59f3d7a2ec28 -r 65951459abe9 src/virtManager/host.py --- a/src/virtManager/host.py Tue Sep 29 14:02:28 2009 -0400 +++ b/src/virtManager/host.py Tue Sep 29 14:25:37 2009 -0400 @@ -169,6 +169,9 @@ "on_config_autoconnect_toggled": self.toggle_autoconnect, }) + # XXX: Help docs useless/out of date + self.window.get_widget("help1").hide() + self.conn.connect("resources-sampled", self.refresh_resources) self.reset_state() diff -r 59f3d7a2ec28 -r 65951459abe9 src/virtManager/manager.py --- a/src/virtManager/manager.py Tue Sep 29 14:02:28 2009 -0400 +++ b/src/virtManager/manager.py Tue Sep 29 14:25:37 2009 -0400 @@ -188,6 +188,7 @@ filename = self.config.get_icon_dir() + "/%s" % iconfile pixbuf = gtk.gdk.pixbuf_new_from_file_at_size(filename, l, w) image = gtk.image_new_from_pixbuf(pixbuf) + image.show_all() self.window.get_widget(widget).set_icon_widget(image) set_toolbar_image("vm-new", "vm_new_wizard.png", 28, 28) @@ -356,6 +357,9 @@ "on_menu_help_activate": self.show_help, }) + # XXX: Help docs useless/out of date + self.window.get_widget("menu_help").hide() + self.vm_selected(None) self.window.get_widget("vm-list").get_selection().connect("changed", self.vm_selected) @@ -391,7 +395,8 @@ if self.is_visible(): win.present() return - win.show_all() + win.show() + win.present() self.engine.increment_window_counter() if self.startup_error: diff -r 59f3d7a2ec28 -r 65951459abe9 src/virtManager/preferences.py --- a/src/virtManager/preferences.py Tue Sep 29 14:02:28 2009 -0400 +++ b/src/virtManager/preferences.py Tue Sep 29 14:25:37 2009 -0400 @@ -75,6 +75,9 @@ "on_prefs_stats_enable_net_toggled": self.change_net_poll, }) + # XXX: Help docs useless/out of date + self.window.get_widget("prefs-help").hide() + def close(self, ignore1=None, ignore2=None): self.topwin.hide() return 1 virt-manager-0.8.0-update-translations.patch: as.po | 1847 ++--- bg.po | 918 +- bn_IN.po | 2250 ++---- bs.po | 917 +- ca.po | 921 +- cs.po | 917 +- da.po | 917 +- de.po | 8692 ++++++++++++-------------- es.po | 1187 +-- fi.po | 921 +- fr.po |19894 +++++++++++++++++++++++++++++------------------------------- gu.po | 1492 +--- hi.po | 1495 +--- hr.po | 918 +- hu.po | 2958 ++++---- is.po | 914 +- it.po | 929 +- ja.po | 1169 +-- kn.po | 1502 +--- ko.po | 2197 +----- ml.po | 2798 +++----- mr.po | 1514 +--- ms.po | 923 +- nb.po | 918 +- nl.po | 1144 +-- or.po | 1479 +--- pa.po | 1496 +--- pl.po | 1500 +--- pt.po | 924 +- pt_BR.po | 933 +- ro.po | 917 +- ru.po | 918 +- sr.po | 918 +- sr at latin.po | 918 +- sv.po | 926 +- ta.po | 1504 +--- te.po | 1506 +--- tr.po | 911 +- uk.po | 917 +- zh_CN.po | 1165 +-- zh_TW.po | 929 +- 41 files changed, 36406 insertions(+), 41707 deletions(-) --- NEW FILE virt-manager-0.8.0-update-translations.patch --- # HG changeset patch # User Laurent L?onard # Date 1249496263 14400 # Node ID 5195fe3509bc3a3938c607240f215c9921af8f2c # Parent 18e673ca4e148a3e023f56353412d259aea487c2 Updated french translation. diff -r 18e673ca4e14 -r 5195fe3509bc po/fr.po --- a/po/fr.po Tue Jul 28 22:25:13 2009 -0400 +++ b/po/fr.po Wed Aug 05 14:17:43 2009 -0400 @@ -1,5099 +1,4131 @@ -# translation of virt-manager.tip.po to french -# Copyright (C) 2006 Virt-Manager -# This file is distributed under the same license as the Virt-Manager package. -# -# Damien Durand , 2006. -# Thomas Canniot , 2006, 2007. -# Alain PORTAL , 2006, 2007. -# Decroux Fabien , 2006. -# Gauthier Ancelin , 2007, 2008. -msgid "" -msgstr "" -"Project-Id-Version: virt-manager.tip\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-07-28 20:55-0400\n" -"PO-Revision-Date: 2008-01-31 20:53+0100\n" -"Last-Translator: Gauthier Ancelin \n" -"Language-Team: french \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.11.4\n" - -#: ../src/virt-manager.desktop.in.in.h:1 -msgid "Manage virtual machines" -msgstr "G?rer les machines virtuelles" - -#: ../src/virt-manager.desktop.in.in.h:2 ../src/virtManager/systray.py:101 -#: ../src/vmm-manager.glade.h:11 -msgid "Virtual Machine Manager" -msgstr "Gestionnaire de machine virtuelle" - -#: ../src/virt-manager.py.in:55 -#, fuzzy -msgid "Error starting Virtual Machine Manager" -msgstr "Gestionnaire de machine virtuelle" - -#. ...the risk is we catch too much though -#. Damned if we do, damned if we dont :-)( -#: ../src/virt-manager.py.in:288 -#, fuzzy, python-format -msgid "Unable to initialize GTK: %s" -msgstr "Impossible d'initialiser GTK : " - -#: ../src/virt-manager.schemas.in.h:1 -msgid "Default image path" -msgstr "" - -#: ../src/virt-manager.schemas.in.h:2 -#, fuzzy -msgid "Default media path" -msgstr "Param?tre de r?seau invalide" - -#: ../src/virt-manager.schemas.in.h:3 -msgid "Default path for choosing VM images" -msgstr "" - -#: ../src/virt-manager.schemas.in.h:4 -msgid "Default path for choosing media" -msgstr "" - -#: ../src/virt-manager.schemas.in.h:5 -msgid "Default path for saving VM snaphots" -msgstr "" - -#: ../src/virt-manager.schemas.in.h:6 -msgid "Default path for saving screenshots from VMs" -msgstr "" - -#: ../src/virt-manager.schemas.in.h:7 -msgid "Default path for stored VM snapshots" -msgstr "" - -#: ../src/virt-manager.schemas.in.h:8 -msgid "Default restore path" -msgstr "" - -#: ../src/virt-manager.schemas.in.h:9 -msgid "Default save domain path" -msgstr "" - -#: ../src/virt-manager.schemas.in.h:10 -msgid "Default screenshot path" -msgstr "" - -#: ../src/virt-manager.schemas.in.h:11 -msgid "Install sound device for local VM" -msgstr "" - -#: ../src/virt-manager.schemas.in.h:12 -msgid "Install sound device for remote VM" -msgstr "" - -#: ../src/virt-manager.schemas.in.h:13 -msgid "Poll disk i/o stats" -msgstr "" - -#: ../src/virt-manager.schemas.in.h:14 -msgid "Poll net i/o stats" -msgstr "" - -#: ../src/virt-manager.schemas.in.h:15 -msgid "Show system tray icon" -msgstr "" - -#: ../src/virt-manager.schemas.in.h:16 -msgid "Show system tray icon while app is running" -msgstr "" - -#: ../src/virt-manager.schemas.in.h:17 -msgid "Stats type in manager view" -msgstr "" - -#: ../src/virt-manager.schemas.in.h:18 -msgid "The length of the list of URLs" -msgstr "La longueur de la liste d'URL" - -#: ../src/virt-manager.schemas.in.h:19 -msgid "The number of samples to keep in the statistics history" -msgstr "" -"Le nombre d'?chantillons ? conserver dans l'historique des statistiques" - -#: ../src/virt-manager.schemas.in.h:20 -msgid "" -"The number of urls to keep in the history for the install media address page." -msgstr "" -"Le nombre d'URL ? conserver dans l'historique pour la page des adresses de " -"media d'installation." - -#: ../src/virt-manager.schemas.in.h:21 -msgid "The statistics history length" -msgstr "La longueur de l'historique de statistiques" - -#: ../src/virt-manager.schemas.in.h:22 -msgid "The statistics update interval" -msgstr "L'intervalle de rafra?chissement des statistiques" - -#: ../src/virt-manager.schemas.in.h:23 -msgid "The statistics update interval in seconds" -msgstr "L'intervalle de rafra?chissement des statistiques en secondes" - -#: ../src/virt-manager.schemas.in.h:24 -msgid "Type of stats to graph (cpu, disk, net) in manager view" -msgstr "" - -#: ../src/virt-manager.schemas.in.h:25 -msgid "When to grab keyboard input for the console" -msgstr "Quand la console peut s'approprier le clavier" - -#: ../src/virt-manager.schemas.in.h:26 -msgid "When to pop up a console for a guest" -msgstr "Quand pr?senter une console pour un invit?" - -#: ../src/virt-manager.schemas.in.h:27 -msgid "When to scale the VM graphical console" -msgstr "" - -#: ../src/virt-manager.schemas.in.h:28 -#, fuzzy -msgid "" -"When to scale the VM graphical console. 0 = never, 1 = only when in full " -"screen mode, 2 = Always" -msgstr "" -"Quand une console d'invit? peut s'approprier le clavier. ? 0 ? = jamais, ? 1 ? " -"= seulement en mode plein ?cran, ? 2 ? = lorsque la souris est au-dessus de " -"la console" - -#: ../src/virt-manager.schemas.in.h:29 -msgid "Whether or not the app will poll VM disk i/o statistics" -msgstr "" - -#: ../src/virt-manager.schemas.in.h:30 -msgid "Whether or not the app will poll VM network i/o statistics" -msgstr "" - -#: ../src/virt-manager.schemas.in.h:31 -msgid "" -"Whether to grab keyboard input for a guest console. 0 = never, 1 = only when " -"in full screen mode, 2 = when mouse is over console" -msgstr "" -"Quand une console d'invit? peut s'approprier le clavier. ? 0 ? = jamais, ? 1 ? " -"= seulement en mode plein ?cran, ? 2 ? = lorsque la souris est au-dessus de " -"la console" - -#: ../src/virt-manager.schemas.in.h:32 -msgid "Whether to install a sound device for local VMs or not" -msgstr "" - -#: ../src/virt-manager.schemas.in.h:33 [...148040 lines suppressed...] msgstr "" -#: ../src/vmm-create.glade.h:44 +#: ../src/vmm-create.glade.h:45 msgid "URL:" msgstr "" -#: ../src/vmm-create.glade.h:45 +#: ../src/vmm-create.glade.h:46 #, fuzzy msgid "Use CDROM or DVD" msgstr "???? DVD ???(_C)" -#: ../src/vmm-create.glade.h:46 +#: ../src/vmm-create.glade.h:47 #, fuzzy msgid "Use ISO image:" msgstr "?? ISO ???" -#: ../src/vmm-create.glade.h:47 +#: ../src/vmm-create.glade.h:48 #, fuzzy msgid "Version:" msgstr "???" -#: ../src/vmm-create.glade.h:48 +#: ../src/vmm-create.glade.h:49 #, fuzzy msgid "Virt Type:" msgstr "???" @@ -3076,10 +3074,6 @@ msgid "Delete associated storage files" msgstr "" -#: ../src/vmm-delete.glade.h:4 -msgid "gtk-delete" -msgstr "" - #: ../src/vmm-details.glade.h:1 msgid "" "0 KBytes/s\n" @@ -3229,7 +3223,7 @@ msgid "Device virtual machine will boot from:" msgstr "?????????????" -#: ../src/vmm-details.glade.h:40 ../src/vmm-manager.glade.h:4 +#: ../src/vmm-details.glade.h:40 ../src/vmm-manager.glade.h:2 msgid "Disk" msgstr "??" @@ -3431,10 +3425,6 @@ msgid "Stats" msgstr "??" -#: ../src/vmm-details.glade.h:100 -msgid "Status:" -msgstr "???" - #: ../src/vmm-details.glade.h:101 msgid "Target Port:" msgstr "??????" @@ -3508,29 +3498,24 @@ msgstr "??(_B)..." #: ../src/vmm-details.glade.h:119 ../src/vmm-host.glade.h:41 -#: ../src/vmm-manager.glade.h:12 -msgid "_Contents" -msgstr "??(_C)" - -#: ../src/vmm-details.glade.h:120 ../src/vmm-host.glade.h:42 -#: ../src/vmm-manager.glade.h:14 +#: ../src/vmm-manager.glade.h:9 msgid "_File" msgstr "??(_F)" -#: ../src/vmm-details.glade.h:121 ../src/vmm-host.glade.h:43 -#: ../src/vmm-manager.glade.h:15 +#: ../src/vmm-details.glade.h:120 ../src/vmm-host.glade.h:42 +#: ../src/vmm-manager.glade.h:10 msgid "_Help" msgstr "??(_H)" -#: ../src/vmm-details.glade.h:125 +#: ../src/vmm-details.glade.h:124 msgid "_Save" msgstr "??(_S)" -#: ../src/vmm-details.glade.h:126 +#: ../src/vmm-details.glade.h:125 msgid "_Take Screenshot" msgstr "????(_T)" -#: ../src/vmm-details.glade.h:127 ../src/vmm-manager.glade.h:21 +#: ../src/vmm-details.glade.h:126 ../src/vmm-manager.glade.h:16 msgid "_View" msgstr "??(_V)" @@ -3590,7 +3575,7 @@ msgid "Forwarding:" msgstr "???" -#: ../src/vmm-host.glade.h:21 ../src/vmm-manager.glade.h:6 +#: ../src/vmm-host.glade.h:21 ../src/vmm-manager.glade.h:4 msgid "Host Details" msgstr "??????" @@ -3651,50 +3636,32 @@ msgstr "????" #: ../src/vmm-manager.glade.h:1 -msgid "Add Connection..." -msgstr "????..." - -#: ../src/vmm-manager.glade.h:2 #, fuzzy msgid "CPU" msgstr "VCPU" #: ../src/vmm-manager.glade.h:3 -#, fuzzy -msgid "Delete Virtual Machine" -msgstr "??????" - -#: ../src/vmm-manager.glade.h:5 msgid "Graph" msgstr "" -#: ../src/vmm-manager.glade.h:8 +#: ../src/vmm-manager.glade.h:6 msgid "Restore a saved machine from a filesystem image" msgstr "???????????????????" -#: ../src/vmm-manager.glade.h:9 -msgid "Restore saved machine..." -msgstr "????????..." - -#: ../src/vmm-manager.glade.h:10 -#, fuzzy -msgid "Virtual Machine Details" -msgstr "????" - -#: ../src/vmm-manager.glade.h:13 +#: ../src/vmm-manager.glade.h:8 msgid "_Edit" msgstr "??(_E)" -#: ../src/vmm-manager.glade.h:16 +#: ../src/vmm-manager.glade.h:11 #, fuzzy msgid "_New" msgstr "??(_V)" -#: ../src/vmm-manager.glade.h:17 +#: ../src/vmm-manager.glade.h:12 msgid "_Open" msgstr "" -#: ../src/vmm-manager.glade.h:20 +#: ../src/vmm-manager.glade.h:15 #, fuzzy msgid "_Shutdown" msgstr "??" @@ -3879,6 +3846,26 @@ msgid "_New Volume" msgstr "???" +#~ msgid "Create _Volume" +#~ msgstr "????(_V)" + +#~ msgid "_Contents" +#~ msgstr "??(_C)" + +#~ msgid "Add Connection..." +#~ msgstr "????..." + +#, fuzzy +#~ msgid "Delete Virtual Machine" +#~ msgstr "??????" + +#~ msgid "Restore saved machine..." +#~ msgstr "????????..." + +#, fuzzy +#~ msgid "Virtual Machine Details" +#~ msgstr "????" + #, fuzzy #~ msgid "Poll memory usage stats" #~ msgstr "????????????" @@ -4239,10 +4226,6 @@ #~ msgstr "CPU ???" #, fuzzy -#~ msgid "Enable audio:" -#~ msgstr "?????" - -#, fuzzy #~ msgid "F_ully virtualized:" #~ msgstr "?????(_u)?" virt-manager-0.8.0-update-vm-state.patch: manager.py | 1 + 1 file changed, 1 insertion(+) --- NEW FILE virt-manager-0.8.0-update-vm-state.patch --- # HG changeset patch # User Cole Robinson # Date 1254247348 14400 # Node ID 59f3d7a2ec289145c41437b7f12bcd730e17f340 # Parent 6d219a6db4fbcb343d41a959dac7a8623f3dcbb3 manager: Actually update VM state text when state changes diff -r 6d219a6db4fb -r 59f3d7a2ec28 src/virtManager/manager.py --- a/src/virtManager/manager.py Tue Sep 29 14:00:50 2009 -0400 +++ b/src/virtManager/manager.py Tue Sep 29 14:02:28 2009 -0400 @@ -584,6 +584,7 @@ row[ROW_STATUS] = vm.run_status() row[ROW_STATUS_ICON] = vm.run_status_icon_large() row[ROW_IS_VM_RUNNING] = vm.is_active() + row[ROW_MARKUP] = self._build_vm_markup(vm, row) model.row_changed(row.path, row.iter) Index: virt-manager.spec =================================================================== RCS file: /cvs/pkgs/rpms/virt-manager/devel/virt-manager.spec,v retrieving revision 1.60 retrieving revision 1.61 diff -u -p -r1.60 -r1.61 --- virt-manager.spec 24 Sep 2009 15:47:35 -0000 1.60 +++ virt-manager.spec 29 Sep 2009 19:37:26 -0000 1.61 @@ -8,7 +8,7 @@ Name: virt-manager Version: 0.8.0 -Release: 5%{_extra_release} +Release: 6%{_extra_release} Summary: Virtual Machine Manager Group: Applications/Emulators @@ -40,6 +40,14 @@ Patch8: %{name}-%{version}-stats-logging Patch9: %{name}-%{version}-refresh-disk-space.patch # Offer to fix disk permission issues (bz 517379) Patch10: %{name}-%{version}-fix-path-perms.patch +# Fix VCPU hotplug +Patch11: %{name}-%{version}-fix-vcpu-hotplug.patch +# Remove access to outdated docs (bz 522823, bz 524805) +Patch12: %{name}-%{version}-hide-help-docs.patch +# Update VM state text in manager view (bz 526182) +Patch13: %{name}-%{version}-update-vm-state.patch +# Update translations (bz 493795) +Patch14: %{name}-%{version}-update-translations.patch # These two are just the oldest version tested Requires: pygtk2 >= 1.99.12-6 @@ -117,6 +125,10 @@ cp %{SOURCE3} pixmaps %patch8 -p1 %patch9 -p1 %patch10 -p1 +%patch11 -p1 +%patch12 -p1 +%patch13 -p1 +%patch14 -p1 %build %configure @@ -190,6 +202,12 @@ fi %{_datadir}/dbus-1/services/%{name}.service %changelog +* Tue Sep 29 2009 Cole Robinson - 0.8.0-6.fc13 +- Fix VCPU hotplug +- Remove access to outdated docs (bz 522823, bz 524805) +- Update VM state text in manager view (bz 526182) +- Update translations (bz 493795) + * Thu Sep 24 2009 Cole Robinson - 0.8.0-5.fc12 - Refresh host disk space in create wizard (bz 502777) - Offer to fix disk permission issues (bz 517379) --- virtinst-0.500.0-change-path-perms.patch DELETED --- --- virtinst-0.500.0-no-iso-driver.patch DELETED --- From markmc at fedoraproject.org Tue Sep 29 20:53:23 2009 From: markmc at fedoraproject.org (Mark McLoughlin) Date: Tue, 29 Sep 2009 20:53:23 +0000 (UTC) Subject: [fedora-virt-maint] rpms/qemu/F-11 qemu-fix-virtio-net-gso-support.patch, NONE, 1.1 qemu.spec, 1.104, 1.105 Message-ID: <20090929205323.749CC11C00C1@cvs1.fedora.phx.redhat.com> Author: markmc Update of /cvs/pkgs/rpms/qemu/F-11 In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv15069 Modified Files: qemu.spec Added Files: qemu-fix-virtio-net-gso-support.patch Log Message: * Tue Sep 29 2009 Mark McLoughlin - 2:0.10.6-6 - Fix broken virtio-net with 2.6.30 guests (#522994) qemu-fix-virtio-net-gso-support.patch: virtio-net.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) --- NEW FILE qemu-fix-virtio-net-gso-support.patch --- >From 0a662a2983f1afeb5dce338d7dbe906d5c4c91a7 Mon Sep 17 00:00:00 2001 From: Mark McLoughlin Date: Tue, 5 May 2009 09:56:25 +0100 Subject: [PATCH] virtio-net: Re-instate GSO code removed upstream This commit: commit 559a8f45f34cc50d1a60b4f67a06614d506b2e01 Subject: Remove stray GSO code from virtio_net (Mark McLoughlin) Removed some GSO code from upstream qemu.git, but it needs to be re-instated in qemu-kvm.git. (cherry picked from commit 6e57bb9a636cefdaba7decbd5ac10f1508ff64c0) Reported-by: Sridhar Samudrala Signed-off-by: Mark McLoughlin Signed-off-by: Avi Kivity Fedora-patch: qemu-fix-virtio-net-gso-support.patch --- hw/virtio-net.c | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-) diff --git a/hw/virtio-net.c b/hw/virtio-net.c index f65ecd7..aaab83b 100644 --- a/hw/virtio-net.c +++ b/hw/virtio-net.c @@ -424,6 +424,11 @@ static int receive_filter(VirtIONet *n, const uint8_t *buf, int size) if (n->promisc) return 1; +#ifdef TAP_VNET_HDR + if (tap_has_vnet_hdr(n->vc->vlan->first_client)) + ptr += sizeof(struct virtio_net_hdr); +#endif + if (!memcmp(&ptr[12], vlan, sizeof(vlan))) { int vid = be16_to_cpup((uint16_t *)(ptr + 14)) & 0xfff; if (!(n->vlans[vid >> 5] & (1U << (vid & 0x1f)))) -- 1.6.2.5 Index: qemu.spec =================================================================== RCS file: /cvs/pkgs/rpms/qemu/F-11/qemu.spec,v retrieving revision 1.104 retrieving revision 1.105 diff -u -p -r1.104 -r1.105 --- qemu.spec 11 Sep 2009 11:16:05 -0000 1.104 +++ qemu.spec 29 Sep 2009 20:53:23 -0000 1.105 @@ -1,7 +1,7 @@ Summary: QEMU is a FAST! processor emulator Name: qemu Version: 0.10.6 -Release: 5%{?dist} +Release: 6%{?dist} # Epoch because we pushed a qemu-1.0 package Epoch: 2 License: GPLv2+ and LGPLv2+ and BSD @@ -36,6 +36,7 @@ Patch15: qemu-avoid-harmless-msr-warning Patch16: qemu-ppc-on-ppc.patch Patch17: qemu-use-statfs-to-determine-huge-page-size.patch Patch18: qemu-allow-pulseaudio-to-be-the-default.patch +Patch19: qemu-fix-virtio-net-gso-support.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: SDL-devel zlib-devel which texi2html gnutls-devel cyrus-sasl-devel @@ -237,6 +238,7 @@ such as kvmtrace and kvm_stat. %patch16 -p1 %patch17 -p1 %patch18 -p1 +%patch19 -p1 %build # systems like rhel build system does not have a recent enough linker so @@ -479,6 +481,9 @@ fi %{_mandir}/man1/qemu-img.1* %changelog +* Tue Sep 29 2009 Mark McLoughlin - 2:0.10.6-6 +- Fix broken virtio-net with 2.6.30 guests (#522994) + * Fri Sep 11 2009 Mark McLoughlin - 2:0.10.6-5 - Fix vnc segfault on disconnect (#501131) - Fix vnc screen corruption with e.g. xterm (#503156) From markmc at fedoraproject.org Wed Sep 30 14:20:16 2009 From: markmc at fedoraproject.org (Mark McLoughlin) Date: Wed, 30 Sep 2009 14:20:16 +0000 (UTC) Subject: [fedora-virt-maint] rpms/libvirt/F-11 libvirt-0.6.2-detect-newer-qemu-kvm-versions.patch, NONE, 1.1 libvirt-0.6.2-refactor-qemu-version-parsing.patch, NONE, 1.1 libvirt-0.6.2-svirt-sound.patch, 1.4, 1.5 libvirt.spec, 1.141, 1.142 Message-ID: <20090930142016.E88E911C048A@cvs1.fedora.phx.redhat.com> Author: markmc Update of /cvs/pkgs/rpms/libvirt/F-11 In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv25702 Modified Files: libvirt-0.6.2-svirt-sound.patch libvirt.spec Added Files: libvirt-0.6.2-detect-newer-qemu-kvm-versions.patch libvirt-0.6.2-refactor-qemu-version-parsing.patch Log Message: * Wed Sep 30 2009 Mark McLoughlin - 0.6.2-18 - Fix qemu-kvm version detection so GSO is enabled for virtio_net (#526472) libvirt-0.6.2-detect-newer-qemu-kvm-versions.patch: qemu_conf.c | 45 +++++++++++++++++++++++++++++++-------------- 1 file changed, 31 insertions(+), 14 deletions(-) --- NEW FILE libvirt-0.6.2-detect-newer-qemu-kvm-versions.patch --- >From fe3cb2edefceacc76d0dc9c98b8d3b677a495c32 Mon Sep 17 00:00:00 2001 From: Mark McLoughlin Date: Thu, 11 Jun 2009 14:15:49 +0000 Subject: [PATCH] Detect newer qemu-kvm versions The KVM version string can be one of the following: - qemu-kvm-x.y.z in stable releases - kvm-XX for kvm versions up to kvm-85 - qemu-kvm-devel-XX for kvm version kvm-86 and later There are only a few of places where we need to detect differences between KVM versions based on 0.9.1: 1) VNET_HDR introduced in kvm-74 2) -incoming tcp introduced in kvm-79 3) -incoming exec introduced in kvm-80 4) -incoming stdio in all earlier kvm versions With qemu-kvm-0.10.x, we can now assume that (1) is available if it's a KVM release, (2) and (3) is always available and (4) is never available. So, from now on we should only need to check the qemu version number and the "is_kvm" flag for detecting feature availability. We only need the KVM version number for older releases. (cherry picked from commit 04cbe687974b3b46c96fa20180bbb07ffeff69da) Signed-off-by: Mark McLoughlin Fedora-patch: libvirt-0.6.2-detect-newer-qemu-kvm-versions.patch --- src/qemu_conf.c | 44 +++++++++++++++++++++++++++++++------------- 1 files changed, 31 insertions(+), 13 deletions(-) diff --git a/src/qemu_conf.c b/src/qemu_conf.c index e488d74..d76b2b6 100644 --- a/src/qemu_conf.c +++ b/src/qemu_conf.c @@ -416,6 +416,7 @@ virCapsPtr qemudCapsInit(void) { static unsigned int qemudComputeCmdFlags(const char *help, unsigned int version, + unsigned int is_kvm, unsigned int kvm_version) { unsigned int flags = 0; @@ -441,7 +442,8 @@ static unsigned int qemudComputeCmdFlags(const char *help, flags |= QEMUD_CMD_FLAG_DRIVE_BOOT; if (version >= 9000) flags |= QEMUD_CMD_FLAG_VNC_COLON; - if (kvm_version >= 74) + + if (is_kvm && (version >= 10000 || kvm_version >= 74)) flags |= QEMUD_CMD_FLAG_VNET_HDR; /* @@ -454,15 +456,15 @@ static unsigned int qemudComputeCmdFlags(const char *help, * was broken, because it blocked the monitor console * while waiting for data, so pretend it doesn't exist */ - if (kvm_version >= 79) { + if (version >= 10000) { + flags |= QEMUD_CMD_FLAG_MIGRATE_QEMU_TCP; + flags |= QEMUD_CMD_FLAG_MIGRATE_QEMU_EXEC; + } else if (kvm_version >= 79) { flags |= QEMUD_CMD_FLAG_MIGRATE_QEMU_TCP; if (kvm_version >= 80) flags |= QEMUD_CMD_FLAG_MIGRATE_QEMU_EXEC; } else if (kvm_version > 0) { flags |= QEMUD_CMD_FLAG_MIGRATE_KVM_STDIO; - } else if (version >= 10000) { - flags |= QEMUD_CMD_FLAG_MIGRATE_QEMU_TCP; - flags |= QEMUD_CMD_FLAG_MIGRATE_QEMU_EXEC; } return flags; @@ -472,10 +474,19 @@ static unsigned int qemudComputeCmdFlags(const char *help, * version number. The first bit is easy, just parse * 'QEMU PC emulator version x.y.z'. * - * With qemu-kvm, however, that is followed by a kvm-XX - * string in parenthesis. + * With qemu-kvm, however, that is followed by a string + * in parenthesis as follows: + * - qemu-kvm-x.y.z in stable releases + * - kvm-XX for kvm versions up to kvm-85 + * - qemu-kvm-devel-XX for kvm version kvm-86 and later + * + * For qemu-kvm versions before 0.10.z, we need to detect + * the KVM version number for some features. With 0.10.z + * and later, we just need the QEMU version number and + * whether it is KVM QEMU or mainline QEMU. */ #define QEMU_VERSION_STR "QEMU PC emulator version" +#define QEMU_KVM_VER_PREFIX "(qemu-kvm-" #define KVM_VER_PREFIX "(kvm-" #define SKIP_BLANKS(p) do { while ((*(p) == ' ') || (*(p) == '\t')) (p)++; } while (0) @@ -483,12 +494,13 @@ static unsigned int qemudComputeCmdFlags(const char *help, static int qemudParseHelpStr(const char *help, unsigned int *flags, unsigned int *version, + unsigned int *is_kvm, unsigned int *kvm_version) { unsigned major, minor, micro; const char *p = help; - *flags = *version = *kvm_version = 0; + *flags = *version = *is_kvm = *kvm_version = 0; if (!STRPREFIX(p, QEMU_VERSION_STR)) goto fail; @@ -515,9 +527,13 @@ static int qemudParseHelpStr(const char *help, SKIP_BLANKS(p); - if (STRPREFIX(p, KVM_VER_PREFIX)) { + if (STRPREFIX(p, QEMU_KVM_VER_PREFIX)) { + *is_kvm = 1; + p += strlen(QEMU_KVM_VER_PREFIX); + } else if (STRPREFIX(p, KVM_VER_PREFIX)) { int ret; + *is_kvm = 1; p += strlen(KVM_VER_PREFIX); ret = virParseNumber(&p); @@ -529,12 +545,14 @@ static int qemudParseHelpStr(const char *help, *version = (major * 1000 * 1000) + (minor * 1000) + micro; - *flags = qemudComputeCmdFlags(help, *version, *kvm_version); + *flags = qemudComputeCmdFlags(help, *version, *is_kvm, *kvm_version); qemudDebug("Version %u.%u.%u, cooked version %u, flags %u", major, minor, micro, *version, *flags); if (*kvm_version) - qemudDebug("KVM version %u detected", *kvm_version); + qemudDebug("KVM version %d detected", *kvm_version); + else if (*is_kvm) + qemudDebug("qemu-kvm version %u.%u.%u detected", major, minor, micro); return 0; @@ -560,7 +578,7 @@ int qemudExtractVersionInfo(const char *qemu, pid_t child; int newstdout = -1; int ret = -1, status; - unsigned int version, kvm_version; + unsigned int version, is_kvm, kvm_version; unsigned int flags = 0; if (retflags) @@ -581,7 +599,7 @@ int qemudExtractVersionInfo(const char *qemu, goto cleanup2; } - if (qemudParseHelpStr(help, &flags, &version, &kvm_version) == -1) + if (qemudParseHelpStr(help, &flags, &version, &is_kvm, &kvm_version) == -1) goto cleanup2; if (retversion) -- 1.6.2.5 libvirt-0.6.2-refactor-qemu-version-parsing.patch: qemu_conf.c | 175 ++++++++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 123 insertions(+), 52 deletions(-) --- NEW FILE libvirt-0.6.2-refactor-qemu-version-parsing.patch --- >From 266df161bfd87220bac68918613a2ce9323c8238 Mon Sep 17 00:00:00 2001 From: Mark McLoughlin Date: Thu, 11 Jun 2009 14:12:30 +0000 Subject: [PATCH] Re-factor qemu version parsing This patch is purely re-factoring without any functional changes to make way for the next patch. The main thing achieved by the refactoring is that we now have easier access to the parenthesised string that KVM folks seem to delight in changing. (cherry picked from commit 56ecebf22dd5a235503028e20bf936229037664b) Signed-off-by: Mark McLoughlin Fedora-patch: libvirt-0.6.2-refactor-qemu-version-parsing.patch --- src/qemu_conf.c | 174 +++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 123 insertions(+), 51 deletions(-) diff --git a/src/qemu_conf.c b/src/qemu_conf.c index 1194e36..e488d74 100644 --- a/src/qemu_conf.c +++ b/src/qemu_conf.c @@ -414,54 +414,12 @@ virCapsPtr qemudCapsInit(void) { return NULL; } - -int qemudExtractVersionInfo(const char *qemu, - unsigned int *retversion, - unsigned int *retflags) { - const char *const qemuarg[] = { qemu, "-help", NULL }; - const char *const qemuenv[] = { "LC_ALL=C", NULL }; - pid_t child; - int newstdout = -1; - int ret = -1, status; - unsigned int major, minor, micro; - unsigned int version, kvm_version; +static unsigned int qemudComputeCmdFlags(const char *help, + unsigned int version, + unsigned int kvm_version) +{ unsigned int flags = 0; - if (retflags) - *retflags = 0; - if (retversion) - *retversion = 0; - - if (virExec(NULL, qemuarg, qemuenv, NULL, - &child, -1, &newstdout, NULL, VIR_EXEC_NONE) < 0) - return -1; - - char *help = NULL; - enum { MAX_HELP_OUTPUT_SIZE = 1024*64 }; - int len = virFileReadLimFD(newstdout, MAX_HELP_OUTPUT_SIZE, &help); - if (len < 0) { - virReportSystemError(NULL, errno, "%s", - _("Unable to read QEMU help output")); - goto cleanup2; - } - - if (sscanf(help, "QEMU PC emulator version %u.%u.%u (kvm-%u)", - &major, &minor, µ, &kvm_version) != 4) - kvm_version = 0; - - if (!kvm_version && - sscanf(help, "QEMU PC emulator version %u.%u.%u", - &major, &minor, µ) != 3) { - char *eol = strchr(help, '\n'); - if (eol) *eol = '\0'; - qemudReportError(NULL, NULL, NULL, VIR_ERR_INTERNAL_ERROR, - _("cannot parse QEMU version number in '%s'"), - help); - goto cleanup2; - } - - version = (major * 1000 * 1000) + (minor * 1000) + micro; - if (strstr(help, "-no-kqemu")) flags |= QEMUD_CMD_FLAG_KQEMU; if (strstr(help, "-no-kvm")) @@ -507,6 +465,125 @@ int qemudExtractVersionInfo(const char *qemu, flags |= QEMUD_CMD_FLAG_MIGRATE_QEMU_EXEC; } + return flags; +} + +/* We parse the output of 'qemu -help' to get the QEMU + * version number. The first bit is easy, just parse + * 'QEMU PC emulator version x.y.z'. + * + * With qemu-kvm, however, that is followed by a kvm-XX + * string in parenthesis. + */ +#define QEMU_VERSION_STR "QEMU PC emulator version" +#define KVM_VER_PREFIX "(kvm-" + +#define SKIP_BLANKS(p) do { while ((*(p) == ' ') || (*(p) == '\t')) (p)++; } while (0) + +static int qemudParseHelpStr(const char *help, + unsigned int *flags, + unsigned int *version, + unsigned int *kvm_version) +{ + unsigned major, minor, micro; + const char *p = help; + + *flags = *version = *kvm_version = 0; + + if (!STRPREFIX(p, QEMU_VERSION_STR)) + goto fail; + + p += strlen(QEMU_VERSION_STR); + + SKIP_BLANKS(p); + + major = virParseNumber(&p); + if (major == -1 || *p != '.') + goto fail; + + ++p; + + minor = virParseNumber(&p); + if (major == -1 || *p != '.') + goto fail; + + ++p; + + micro = virParseNumber(&p); + if (major == -1) + goto fail; + + SKIP_BLANKS(p); + + if (STRPREFIX(p, KVM_VER_PREFIX)) { + int ret; + + p += strlen(KVM_VER_PREFIX); + + ret = virParseNumber(&p); + if (ret == -1) + goto fail; + + *kvm_version = ret; + } + + *version = (major * 1000 * 1000) + (minor * 1000) + micro; + + *flags = qemudComputeCmdFlags(help, *version, *kvm_version); + + qemudDebug("Version %u.%u.%u, cooked version %u, flags %u", + major, minor, micro, *version, *flags); + if (*kvm_version) + qemudDebug("KVM version %u detected", *kvm_version); + + return 0; + +fail: + p = strchr(help, '\n'); + if (p) + p = strndup(help, p - help); + + qemudReportError(NULL, NULL, NULL, VIR_ERR_INTERNAL_ERROR, + _("cannot parse QEMU version number in '%s'"), + p ? p : help); + + VIR_FREE(p); + + return -1; +} + +int qemudExtractVersionInfo(const char *qemu, + unsigned int *retversion, + unsigned int *retflags) { + const char *const qemuarg[] = { qemu, "-help", NULL }; + const char *const qemuenv[] = { "LC_ALL=C", NULL }; + pid_t child; + int newstdout = -1; + int ret = -1, status; + unsigned int version, kvm_version; + unsigned int flags = 0; + + if (retflags) + *retflags = 0; + if (retversion) + *retversion = 0; + + if (virExec(NULL, qemuarg, qemuenv, NULL, + &child, -1, &newstdout, NULL, VIR_EXEC_NONE) < 0) + return -1; + + char *help = NULL; + enum { MAX_HELP_OUTPUT_SIZE = 1024*64 }; + int len = virFileReadLimFD(newstdout, MAX_HELP_OUTPUT_SIZE, &help); + if (len < 0) { + virReportSystemError(NULL, errno, "%s", + _("Unable to read QEMU help output")); + goto cleanup2; + } + + if (qemudParseHelpStr(help, &flags, &version, &kvm_version) == -1) + goto cleanup2; + if (retversion) *retversion = version; if (retflags) @@ -514,11 +591,6 @@ int qemudExtractVersionInfo(const char *qemu, ret = 0; - qemudDebug("Version %d %d %d Cooked version: %d, with flags ? %d", - major, minor, micro, version, flags); - if (kvm_version) - qemudDebug("KVM version %d detected", kvm_version); - cleanup2: VIR_FREE(help); if (close(newstdout) < 0) -- 1.6.2.5 libvirt-0.6.2-svirt-sound.patch: qemu_conf.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) Index: libvirt-0.6.2-svirt-sound.patch =================================================================== RCS file: /cvs/pkgs/rpms/libvirt/F-11/libvirt-0.6.2-svirt-sound.patch,v retrieving revision 1.4 retrieving revision 1.5 diff -u -p -r1.4 -r1.5 --- libvirt-0.6.2-svirt-sound.patch 19 Aug 2009 17:08:59 -0000 1.4 +++ libvirt-0.6.2-svirt-sound.patch 30 Sep 2009 14:20:16 -0000 1.5 @@ -1,4 +1,4 @@ -From 0d72b6fb7d4aa5e55294eb3222e7156d3d75a9e7 Mon Sep 17 00:00:00 2001 +From 6096cb19d6b05707ca32f52b905c53818ecfc84b Mon Sep 17 00:00:00 2001 From: Daniel P. Berrange Date: Mon, 17 Aug 2009 08:52:30 +0100 Subject: [PATCH] Disable sound cards when running sVirt @@ -12,10 +12,10 @@ Fedora-patch: libvirt-0.6.2-svirt-sound. 1 files changed, 16 insertions(+), 1 deletions(-) diff --git a/src/qemu_conf.c b/src/qemu_conf.c -index 1194e36..f42aeaa 100644 +index d76b2b6..22c5363 100644 --- a/src/qemu_conf.c +++ b/src/qemu_conf.c -@@ -795,6 +795,20 @@ int qemudBuildCommandLine(virConnectPtr conn, +@@ -885,6 +885,20 @@ int qemudBuildCommandLine(virConnectPtr conn, char domid[50]; char *pidfile; const char *cpu = NULL; @@ -36,7 +36,7 @@ index 1194e36..f42aeaa 100644 uname_normalize(&ut); -@@ -1441,7 +1455,8 @@ int qemudBuildCommandLine(virConnectPtr conn, +@@ -1531,7 +1545,8 @@ int qemudBuildCommandLine(virConnectPtr conn, } /* Add sound hardware */ Index: libvirt.spec =================================================================== RCS file: /cvs/pkgs/rpms/libvirt/F-11/libvirt.spec,v retrieving revision 1.141 retrieving revision 1.142 diff -u -p -r1.141 -r1.142 --- libvirt.spec 21 Aug 2009 10:20:12 -0000 1.141 +++ libvirt.spec 30 Sep 2009 14:20:16 -0000 1.142 @@ -66,7 +66,7 @@ Summary: Library providing a simple API virtualization Name: libvirt Version: 0.6.2 -Release: 17%{?dist}%{?extra_release} +Release: 18%{?dist}%{?extra_release} License: LGPLv2+ Group: Development/Libraries Source: http://libvirt.org/sources/libvirt-%{version}.tar.gz @@ -134,6 +134,9 @@ Patch29: libvirt-allow-pci-hostdev-reset Patch30: libvirt-fix-migration-completion-with-newer-qemu.patch # Fix dumpxml segfault with newer versions of Xen (#518091) Patch31: libvirt-fix-xen-driver-segfault-with-newer-xen.patch +# Fix qemu-kvm version detection so GSO is enabled +Patch32: libvirt-0.6.2-refactor-qemu-version-parsing.patch +Patch33: libvirt-0.6.2-detect-newer-qemu-kvm-versions.patch # Not for upstream. Temporary hack till PulseAudio autostart # problems are sorted out when SELinux enforcing @@ -317,6 +320,8 @@ of recent versions of Linux (and other O %patch29 -p1 %patch30 -p1 %patch31 -p1 +%patch32 -p1 +%patch33 -p1 %patch200 -p1 @@ -640,6 +645,9 @@ fi %endif %changelog +* Wed Sep 30 2009 Mark McLoughlin - 0.6.2-18 +- Fix qemu-kvm version detection so GSO is enabled for virtio_net (#526472) + * Wed Aug 19 2009 Mark McLoughlin - 0.6.2-17 - Fix migration completion with newer versions of qemu (#516187) - Fix dumpxml segfault with newer versions of Xen (#518091) From markmc at fedoraproject.org Wed Sep 30 17:57:51 2009 From: markmc at fedoraproject.org (Mark McLoughlin) Date: Wed, 30 Sep 2009 17:57:51 +0000 (UTC) Subject: [fedora-virt-maint] rpms/libvirt/F-12 libvirt-fix-usb-device-passthrough.patch, NONE, 1.1 libvirt.spec, 1.183, 1.184 Message-ID: <20090930175751.0711D11C00E6@cvs1.fedora.phx.redhat.com> Author: markmc Update of /cvs/pkgs/rpms/libvirt/F-12 In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv18124 Modified Files: libvirt.spec Added Files: libvirt-fix-usb-device-passthrough.patch Log Message: * Wed Sep 30 2009 Mark McLoughlin - 0.7.1-7 - Fix USB device passthrough (#522683) libvirt-fix-usb-device-passthrough.patch: security_selinux.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) --- NEW FILE libvirt-fix-usb-device-passthrough.patch --- >From 16f20706f8d2f113bb6a49f56e415c16d438183e Mon Sep 17 00:00:00 2001 From: Mark McLoughlin Date: Wed, 30 Sep 2009 18:37:03 +0100 Subject: [PATCH] Fix USB device re-labelling A simple misplaced break out of a switch results in: libvir: error : Failed to open file '/sys/bus/pci/devices/0000:00:54c./vendor': No such file or directory libvir: error : Failed to open file '/sys/bus/pci/devices/0000:00:54c./device': No such file or directory libvir: error : this function is not supported by the hypervisor: Failed to read product/vendor ID for 0000:00:54c. when trying to passthrough a USB host device to qemu. * src/security_selinux.c: fix a switch/break thinko Fedora-patch: libvirt-fix-usb-device-passthrough.patch --- src/security_selinux.c | 3 +-- 1 files changed, 1 insertions(+), 2 deletions(-) diff --git a/src/security_selinux.c b/src/security_selinux.c index bc295b1..b4dc153 100644 --- a/src/security_selinux.c +++ b/src/security_selinux.c @@ -464,12 +464,11 @@ SELinuxSetSecurityHostdevLabel(virConnectPtr conn, ret = usbDeviceFileIterate(conn, usb, SELinuxSetSecurityUSBLabel, vm); usbFreeDevice(conn, usb); - - break; } else { /* XXX deal with product/vendor better */ ret = 0; } + break; } case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI: { -- 1.6.4.4 Index: libvirt.spec =================================================================== RCS file: /cvs/pkgs/rpms/libvirt/F-12/libvirt.spec,v retrieving revision 1.183 retrieving revision 1.184 diff -u -p -r1.183 -r1.184 --- libvirt.spec 22 Sep 2009 03:52:07 -0000 1.183 +++ libvirt.spec 30 Sep 2009 17:57:50 -0000 1.184 @@ -151,7 +151,7 @@ Summary: Library providing a simple API virtualization Name: libvirt Version: 0.7.1 -Release: 6%{?dist}%{?extra_release} +Release: 7%{?dist}%{?extra_release} License: LGPLv2+ Group: Development/Libraries Source: http://libvirt.org/sources/libvirt-%{version}.tar.gz @@ -170,6 +170,9 @@ Patch03: libvirt-fix-drv-supports-featur # Fix raw save format Patch04: libvirt-fix-qemu-raw-format-save.patch +# Fix USB device passthrough (#422683) +Patch05: libvirt-fix-usb-device-passthrough.patch + BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root URL: http://libvirt.org/ BuildRequires: python-devel @@ -387,6 +390,7 @@ of recent versions of Linux (and other O %patch02 -p1 %patch03 -p1 %patch04 -p1 +%patch05 -p1 %build %if ! %{with_xen} @@ -777,6 +781,9 @@ fi %endif %changelog +* Wed Sep 30 2009 Mark McLoughlin - 0.7.1-7 +- Fix USB device passthrough (#522683) + * Mon Sep 21 2009 Chris Weyl - 0.7.1-6 - rebuild for libssh2 1.2 From markmc at fedoraproject.org Wed Sep 30 17:58:52 2009 From: markmc at fedoraproject.org (Mark McLoughlin) Date: Wed, 30 Sep 2009 17:58:52 +0000 (UTC) Subject: [fedora-virt-maint] rpms/libvirt/devel libvirt-fix-usb-device-passthrough.patch, NONE, 1.1 libvirt.spec, 1.183, 1.184 Message-ID: <20090930175852.56BF911C00E6@cvs1.fedora.phx.redhat.com> Author: markmc Update of /cvs/pkgs/rpms/libvirt/devel In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv18610 Modified Files: libvirt.spec Added Files: libvirt-fix-usb-device-passthrough.patch Log Message: * Wed Sep 30 2009 Mark McLoughlin - 0.7.1-7 - Fix USB device passthrough (#522683) libvirt-fix-usb-device-passthrough.patch: security_selinux.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) --- NEW FILE libvirt-fix-usb-device-passthrough.patch --- >From 16f20706f8d2f113bb6a49f56e415c16d438183e Mon Sep 17 00:00:00 2001 From: Mark McLoughlin Date: Wed, 30 Sep 2009 18:37:03 +0100 Subject: [PATCH] Fix USB device re-labelling A simple misplaced break out of a switch results in: libvir: error : Failed to open file '/sys/bus/pci/devices/0000:00:54c./vendor': No such file or directory libvir: error : Failed to open file '/sys/bus/pci/devices/0000:00:54c./device': No such file or directory libvir: error : this function is not supported by the hypervisor: Failed to read product/vendor ID for 0000:00:54c. when trying to passthrough a USB host device to qemu. * src/security_selinux.c: fix a switch/break thinko Fedora-patch: libvirt-fix-usb-device-passthrough.patch --- src/security_selinux.c | 3 +-- 1 files changed, 1 insertions(+), 2 deletions(-) diff --git a/src/security_selinux.c b/src/security_selinux.c index bc295b1..b4dc153 100644 --- a/src/security_selinux.c +++ b/src/security_selinux.c @@ -464,12 +464,11 @@ SELinuxSetSecurityHostdevLabel(virConnectPtr conn, ret = usbDeviceFileIterate(conn, usb, SELinuxSetSecurityUSBLabel, vm); usbFreeDevice(conn, usb); - - break; } else { /* XXX deal with product/vendor better */ ret = 0; } + break; } case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI: { -- 1.6.4.4 Index: libvirt.spec =================================================================== RCS file: /cvs/pkgs/rpms/libvirt/devel/libvirt.spec,v retrieving revision 1.183 retrieving revision 1.184 diff -u -p -r1.183 -r1.184 --- libvirt.spec 22 Sep 2009 03:52:07 -0000 1.183 +++ libvirt.spec 30 Sep 2009 17:58:52 -0000 1.184 @@ -151,7 +151,7 @@ Summary: Library providing a simple API virtualization Name: libvirt Version: 0.7.1 -Release: 6%{?dist}%{?extra_release} +Release: 7%{?dist}%{?extra_release} License: LGPLv2+ Group: Development/Libraries Source: http://libvirt.org/sources/libvirt-%{version}.tar.gz @@ -170,6 +170,9 @@ Patch03: libvirt-fix-drv-supports-featur # Fix raw save format Patch04: libvirt-fix-qemu-raw-format-save.patch +# Fix USB device passthrough (#422683) +Patch05: libvirt-fix-usb-device-passthrough.patch + BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root URL: http://libvirt.org/ BuildRequires: python-devel @@ -387,6 +390,7 @@ of recent versions of Linux (and other O %patch02 -p1 %patch03 -p1 %patch04 -p1 +%patch05 -p1 %build %if ! %{with_xen} @@ -777,6 +781,9 @@ fi %endif %changelog +* Wed Sep 30 2009 Mark McLoughlin - 0.7.1-7 +- Fix USB device passthrough (#522683) + * Mon Sep 21 2009 Chris Weyl - 0.7.1-6 - rebuild for libssh2 1.2 From rel-eng at fedoraproject.org Wed Sep 30 18:19:39 2009 From: rel-eng at fedoraproject.org (Fedora Release Engineering) Date: Wed, 30 Sep 2009 18:19:39 -0000 Subject: [fedora-virt-maint] #2241: please tag libvirt-0.7.1-7.fc12 into f12-beta Message-ID: <049.e3fd598a957413a954888967e2dacaea@fedoraproject.org> #2241: please tag libvirt-0.7.1-7.fc12 into f12-beta ----------------------------+----------------------------------------------- Reporter: markmc | Owner: rel-eng at lists.fedoraproject.org Type: task | Status: new Milestone: Fedora 12 Beta | Component: koji Keywords: | ----------------------------+----------------------------------------------- Fixes an issue preventing USB passthrough from working: https://bugzilla.redhat.com/522683 Trivial, obvious fix; tested by me -- Ticket URL: Fedora Release Engineering Release Engineering for the Fedora Project From rel-eng at fedoraproject.org Wed Sep 30 18:24:45 2009 From: rel-eng at fedoraproject.org (Fedora Release Engineering) Date: Wed, 30 Sep 2009 18:24:45 -0000 Subject: [fedora-virt-maint] Re: #2241: please tag libvirt-0.7.1-7.fc12 into f12-beta In-Reply-To: <049.e3fd598a957413a954888967e2dacaea@fedoraproject.org> References: <049.e3fd598a957413a954888967e2dacaea@fedoraproject.org> Message-ID: <058.ec1f3fce10aba73b4c52141e4be29b56@fedoraproject.org> #2241: please tag libvirt-0.7.1-7.fc12 into f12-beta -----------------------------+---------------------------------------------- Reporter: markmc | Owner: rel-eng at lists.fedoraproject.org Type: task | Status: new Milestone: Fedora 12 Beta | Component: koji Resolution: | Keywords: -----------------------------+---------------------------------------------- Comment (by rdieter): +1 -- Ticket URL: Fedora Release Engineering Release Engineering for the Fedora Project From rel-eng at fedoraproject.org Wed Sep 30 21:32:49 2009 From: rel-eng at fedoraproject.org (Fedora Release Engineering) Date: Wed, 30 Sep 2009 21:32:49 -0000 Subject: [fedora-virt-maint] Re: #2241: please tag libvirt-0.7.1-7.fc12 into f12-beta In-Reply-To: <049.e3fd598a957413a954888967e2dacaea@fedoraproject.org> References: <049.e3fd598a957413a954888967e2dacaea@fedoraproject.org> Message-ID: <058.7ce8b2f333adfeb2999367787bf47ff3@fedoraproject.org> #2241: please tag libvirt-0.7.1-7.fc12 into f12-beta -----------------------------+---------------------------------------------- Reporter: markmc | Owner: rel-eng at lists.fedoraproject.org Type: task | Status: closed Milestone: Fedora 12 Beta | Component: koji Resolution: fixed | Keywords: -----------------------------+---------------------------------------------- Changes (by jkeating): * status: new => closed * resolution: => fixed Comment: Tagged. -- Ticket URL: Fedora Release Engineering Release Engineering for the Fedora Project