Hello community, here is the log from the commit of package kvm for openSUSE:Factory checked in at 2012-12-12 13:27:35 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kvm (Old) and /work/SRC/openSUSE:Factory/.kvm.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kvm", Maintainer is "[email protected]" Changes: -------- --- /work/SRC/openSUSE:Factory/kvm/kvm.changes 2012-09-06 08:55:58.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.kvm.new/kvm.changes 2012-12-12 13:27:36.000000000 +0100 @@ -1,0 +2,57 @@ +Mon Dec 10 03:46:19 UTC 2012 - [email protected] + +- Update to qemu-kvm v1.3.0. For changes see: + http://wiki.qemu.org/ChangeLog/1.3 + Some select features include: + - all remaining differences between qemu-kvm.git and qemu.git + have been merged into qemu.git (tarball source) + - QEMU can now use the Linux VFIO driver for guest PCI devices + - USB3 has been vastly improved, including support for USB mass + storage devices and MSI/MSI-X support for the XHCI controller + - New paravirtualized hardware random number generator device + - New block jobs: live block commit (a.k.a. snapshot deletion) + and live disk mirroring (a.k.a "storage migration") + - New CPU models: "Haswell" and "Opteron_G5" + - USB redirection now supports live migration + - NBD block devices can now be specified using URI syntax + - QEMU embeds an NBD server, accessible via the monitor + - Improved support for sandboxing using seccomp mode 2 +- Update to latest seabios sources (git id: 8b73b83) +- Update to latest ipxe sources (git id: 717279a) + +------------------------------------------------------------------- +Sat Nov 17 10:43:21 UTC 2012 - [email protected] + +- Fix build with glibc 2.17 (add patch kvm-glibc217.patch). + +------------------------------------------------------------------- +Fri Nov 9 14:23:54 UTC 2012 - [email protected] + +- Revert serial retry logic (bnc#779727) + +------------------------------------------------------------------- +Tue Sep 18 10:04:09 UTC 2012 - [email protected] + +- Don't strip binaries + +------------------------------------------------------------------- +Thu Sep 13 23:45:51 UTC 2012 - [email protected] + +- Fix build issues for i586 SLE_11_SP2 + +------------------------------------------------------------------- +Thu Sep 6 18:52:07 UTC 2012 - [email protected] + +- Update to qemu-kvm v1.2.0. For changes see: + http://wiki.qemu.org/ChangeLog/1.2 +- Update seabios to v1.7.1. For changes see: seabios.org/Releases +- Update to current ipxe (git id e6427b7) + +------------------------------------------------------------------- +Wed Sep 5 16:15:43 UTC 2012 - [email protected] + +- Add libjpeg-devel and libpng-devel BuildRequires and remove + --disable-vnc-jpeg and --disable-vnc-png configure flags in order + to enable VNC jpeg and png support. + +------------------------------------------------------------------- Old: ---- S390-hp-0001--S390-Add-hotplug-support.patch S390-hp-0002-Compile-device-hotplug-on-all-targets.patch S390-hp-0003-Add-generic-drive-hotplugging.patch S390-hp-0004-Expose-drive_add-on-all-architectures.patch S390-no-tpr.patch ipxe-git-a05871d.tar.bz2 kvm-qemu-madvise-hugepages.patch kvm-qemu-preXX-configure-avoid-compiler-warning-in-pipe2-detection.patch kvm-qemu-preXX-console-bounds-check-whenever-changing-the-cursor-du.patch kvm-qemu-preXX-use--libexecdir-instead-of-ignoring.patch qemu-kvm-1.2.rc1.tar.bz2 seabios-Makefile-fix-iasl-option-detection.patch seabios-git-7a39e72.tar.bz2 New: ---- ipxe-717279a.tar.bz2 kvm-glibc217.patch kvm-qemu-avoid-redunant-declaration-error.patch kvm-qemu-enable-kvm-acceleration.patch kvm-qemu-make-rtl8139-default-nic.patch kvm-qemu-preXX-serial-retry-revert.patch kvm-qemu-provide-__u64-for-broken-sys-capability-h.patch qemu-1.3.0.tar.bz2 seabios-8b73b83.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kvm.spec ++++++ --- /var/tmp/diff_new_pack.39AHzx/_old 2012-12-12 13:27:39.000000000 +0100 +++ /var/tmp/diff_new_pack.39AHzx/_new 2012-12-12 13:27:39.000000000 +0100 @@ -19,11 +19,11 @@ %bcond_without spice -%define package_true_version 1.2.rc1 -%define package_base_version 1.2.0 -%define bios_id seabios-git-7a39e72 -# (this is post v1.7.0 upstream seabios code) -%define pxe_rom_id ipxe-git-a05871d +%define package_true_version 1.3.0 +%define package_base_version 1.3.0 +%define bios_id seabios-8b73b83 +# (this is post v1.7.1 upstream seabios code) +%define pxe_rom_id ipxe-717279a # (this is post v1.0.0 upstream ipxe code) %define vgabios_id vgabios-0.6c # sgabios comes from: http://sgabios.googlecode.com/svn/trunk, Rev 8 @@ -59,6 +59,8 @@ BuildRequires: libcap-devel BuildRequires: libcap-ng-devel BuildRequires: libcurl-devel +BuildRequires: libjpeg-devel +BuildRequires: libpng-devel BuildRequires: libpulse-devel BuildRequires: ncurses-devel BuildRequires: pciutils-devel @@ -88,13 +90,10 @@ %if %{with spice} # Spice support requires pixman > 0.17, which does not included in older suse versions %if 0%{?suse_version} >= 1130 -# Spice support does not currently build with -Werror on 32-bit platforms -%ifnarch %ix86 BuildRequires: libspice-server-devel BuildRequires: spice-protocol-devel %endif %endif -%endif %if 0%{?suse_version} >= 1220 BuildRequires: usbredir-devel >= 0.3.4 %endif @@ -107,12 +106,12 @@ Recommends: qemu-tools Recommends: virt-utils Summary: Kernel-based Virtual Machine -License: BSD-3-Clause ; GPL-2.0 ; GPL-2.0+ ; LGPL-2.1+ ; MIT +License: BSD-3-Clause and GPL-2.0 and GPL-2.0+ and LGPL-2.1+ and MIT Group: System/Kernel Url: http://www.linux-kvm.org Version: %{package_true_version} Release: 0 -Source0: qemu-%{name}-%{package_true_version}.tar.bz2 +Source0: qemu-%{package_true_version}.tar.bz2 Source1: 60-kvm.rules Source2: qemu-ifup Source3: kvm-supported.txt @@ -130,7 +129,6 @@ # seabios patches Patch20: seabios-sanitize-version.patch -Patch21: seabios-Makefile-fix-iasl-option-detection.patch # vgabios patches Patch40: vgabios-bcc-paths.patch @@ -141,17 +139,19 @@ Patch61: kvm-qemu-default-memsize.patch Patch62: kvm-qemu-madvise-DONTFORK-for-tight-memory-migration.patch Patch63: kvm-qemu-avoid-deprecated-gnutls-types.patch +Patch64: kvm-qemu-provide-__u64-for-broken-sys-capability-h.patch +Patch65: kvm-glibc217.patch +Patch66: kvm-qemu-avoid-redunant-declaration-error.patch +Patch67: kvm-qemu-enable-kvm-acceleration.patch +Patch68: kvm-qemu-make-rtl8139-default-nic.patch # Post-release upstream patches Patch100: kvm-qemu-preXX-dictzip1.patch Patch101: kvm-qemu-preXX-dictzip2.patch -Patch102: kvm-qemu-preXX-report-default-mac-used.patch -Patch103: kvm-qemu-preXX-console.patch -Patch104: kvm-qemu-madvise-hugepages.patch -Patch105: kvm-qemu-preXX-dictzip3.patch -Patch106: kvm-qemu-preXX-use--libexecdir-instead-of-ignoring.patch -Patch107: kvm-qemu-preXX-configure-avoid-compiler-warning-in-pipe2-detection.patch -Patch108: kvm-qemu-preXX-console-bounds-check-whenever-changing-the-cursor-du.patch +Patch102: kvm-qemu-preXX-dictzip3.patch +Patch103: kvm-qemu-preXX-report-default-mac-used.patch +Patch104: kvm-qemu-preXX-console.patch +Patch105: kvm-qemu-preXX-serial-retry-revert.patch Patch200: kvm-studio-slirp-nooutgoing.patch Patch201: kvm-studio-vnc.patch @@ -162,13 +162,8 @@ Patch501: IA64-compile-fix-suse.patch # for S390 -Patch700: S390-no-tpr.patch -Patch701: S390-qemu-early-printk.patch -Patch702: S390-0003-Make-char-muxer-more-robust-wrt-small-FIFOs.patch -Patch703: S390-hp-0001--S390-Add-hotplug-support.patch -Patch704: S390-hp-0002-Compile-device-hotplug-on-all-targets.patch -Patch705: S390-hp-0003-Add-generic-drive-hotplugging.patch -Patch706: S390-hp-0004-Expose-drive_add-on-all-architectures.patch +Patch700: S390-qemu-early-printk.patch +Patch701: S390-0003-Make-char-muxer-more-robust-wrt-small-FIFOs.patch # For upstream patches: @@ -216,7 +211,8 @@ %patch01 -p1 %patch02 -p1 %endif -%setup -q -n qemu-%{name}-%{package_true_version} -a 6 -a 9 -a 10 +%setup -q -n qemu-%{package_true_version} -a 6 -a 9 -a 10 +#BFR%setup -q -n qemu-%{name}-%{package_true_version} -a 6 -a 9 -a 10 %if %{build_fw_from_source} #ensure that we only end up with the ones we built for i in %firmware_files @@ -225,17 +221,22 @@ done # seabios patches %patch20 -p1 -%patch21 -p1 # vgabios patches %patch40 -p1 %endif +# convert qemu into qemu-kvm patches # qemu-kvm patches %patch60 -p1 %patch61 -p1 %patch62 -p1 %patch63 -p1 +%patch64 -p1 +%patch65 -p1 +%patch66 -p1 +%patch67 -p1 +%patch68 -p1 # Post-release patches %patch100 -p1 @@ -244,9 +245,6 @@ %patch103 -p1 %patch104 -p1 %patch105 -p1 -%patch106 -p1 -%patch107 -p1 -%patch108 -p1 # Studio addons %patch200 -p1 @@ -258,15 +256,8 @@ %patch501 -p1 %endif # S390 support -%ifarch s390x %patch700 -p1 %patch701 -p1 -%patch702 -p1 -%patch703 -p1 -%patch704 -p1 -%patch705 -p1 -%patch706 -p1 -%endif cp %{SOURCE3} . @@ -279,9 +270,11 @@ --sysconfdir=%{_sysconfdir} \ --libexecdir=%{_libexecdir} \ --with-confsuffix=/qemu-kvm \ + --with-pkgversion="kvm-%{version}-%{release}" \ --extra-cflags="%{optflags}" \ --disable-debug-tcg \ --disable-sparse \ + --disable-strip \ --enable-werror \ --enable-sdl \ %if 0%{?suse_version} >= 1100 @@ -302,8 +295,8 @@ --disable-xen \ --enable-vnc-tls \ --disable-vnc-sasl \ - --disable-vnc-jpeg \ - --disable-vnc-png \ + --enable-vnc-jpeg \ + --enable-vnc-png \ --enable-curses \ --enable-curl \ --disable-fdt \ @@ -325,10 +318,8 @@ %if 0%{?suse_version} >= 1130 --enable-brlapi \ %if %{with spice} -%ifnarch %ix86 --enable-spice %endif -%endif %else --disable-brlapi \ --disable-spice @@ -355,6 +346,12 @@ cp roms/vgabios/VGABIOS-lgpl-latest.vmware.bin pc-bios/vgabios-vmware.bin cp roms/vgabios/VGABIOS-lgpl-latest.qxl.bin pc-bios/vgabios-qxl.bin cd ../%{pxe_rom_id}/src +# work around bogus aliasing warning in 32 bit v4.3 gcc compiler +%if 0%{?suse_version} == 1110 +%ifarch %ix86 +make NO_WERROR=1 bin/byteswap_test.o %{?_smp_mflags} +%endif +%endif make bin/blib.a %{?_smp_mflags} make bin/8086100e.rom %{?_smp_mflags} make bin/10222000.rom %{?_smp_mflags} @@ -396,6 +393,8 @@ %endif %ifarch ia64 s390x rm .%_datadir/qemu-kvm/bios.bin +mv %{buildroot}%{_sysconfdir}/qemu-kvm/target-x86_64.conf \ + %{buildroot}%{_sysconfdir}/qemu-kvm/target-s390x.conf %endif rm -r .%_mandir/man1/qemu-img.1 rm -r .%_mandir/man1/virtfs-proxy-helper.1 @@ -427,7 +426,11 @@ %attr(755,root,kvm) %{_bindir}/kvm_stat %{_datadir}/qemu-kvm %dir %attr(0755,root,kvm) %{_sysconfdir}/qemu-kvm/ +%ifarch s390x +%config %attr(644,root,kvm) %{_sysconfdir}/qemu-kvm/target-s390x.conf +%else %config %attr(644,root,kvm) %{_sysconfdir}/qemu-kvm/target-x86_64.conf +%endif %config %{_sysconfdir}/udev/rules.d/60-kvm.rules %_mandir/man1/qemu-kvm.1.gz ++++++ S390-0003-Make-char-muxer-more-robust-wrt-small-FIFOs.patch ++++++ --- /var/tmp/diff_new_pack.39AHzx/_old 2012-12-12 13:27:39.000000000 +0100 +++ /var/tmp/diff_new_pack.39AHzx/_new 2012-12-12 13:27:39.000000000 +0100 @@ -25,41 +25,44 @@ qemu-char.c | 10 ++++++++++ 1 files changed, 10 insertions(+), 0 deletions(-) -diff --git a/qemu-char.c b/qemu-char.c -index 048da3f..6ad6609 100644 ---- a/qemu-char.c -+++ b/qemu-char.c -@@ -219,6 +219,7 @@ typedef struct { +Index: qemu-1.3.0/qemu-char.c +=================================================================== +--- qemu-1.3.0.orig/qemu-char.c ++++ qemu-1.3.0/qemu-char.c +@@ -241,6 +241,9 @@ typedef struct { IOEventHandler *chr_event[MAX_MUX]; void *ext_opaque[MAX_MUX]; CharDriverState *drv; ++#if defined(TARGET_S390X) + QEMUTimer *accept_timer; ++#endif int focus; int mux_cnt; int term_got_escape; -@@ -380,6 +381,13 @@ static void mux_chr_accept_input(CharDriverState *chr) +@@ -397,6 +400,15 @@ static void mux_chr_accept_input(CharDri d->chr_read[m](d->ext_opaque[m], &d->buffer[m][d->cons[m]++ & MUX_BUFFER_MASK], 1); } + ++#if defined(TARGET_S390X) + /* We're still not able to sync producer and consumer, so let's wait a bit + and try again by then. */ + if (d->prod[m] != d->cons[m]) { + qemu_mod_timer(d->accept_timer, qemu_get_clock_ns(vm_clock) + + (int64_t)100000); + } ++#endif } static int mux_chr_can_read(void *opaque) -@@ -462,6 +470,8 @@ static CharDriverState *qemu_chr_open_mux(CharDriverState *drv) +@@ -479,6 +491,10 @@ static CharDriverState *qemu_chr_open_mu chr->opaque = d; d->drv = drv; d->focus = -1; ++#if defined(TARGET_S390X) + d->accept_timer = qemu_new_timer_ns(vm_clock, + (QEMUTimerCB*)mux_chr_accept_input, chr); ++#endif chr->chr_write = mux_chr_write; chr->chr_update_read_handler = mux_chr_update_read_handler; chr->chr_accept_input = mux_chr_accept_input; --- -1.6.0.2 - ++++++ S390-qemu-early-printk.patch ++++++ --- /var/tmp/diff_new_pack.39AHzx/_old 2012-12-12 13:27:39.000000000 +0100 +++ /var/tmp/diff_new_pack.39AHzx/_new 2012-12-12 13:27:39.000000000 +0100 @@ -16,11 +16,11 @@ hw/virtio-console.h | 2 ++ 3 files changed, 12 insertions(+), 0 deletions(-) -Index: qemu-kvm-0.14.50/hw/s390-virtio.c +Index: qemu-1.3.rc0/hw/s390-virtio.c =================================================================== ---- qemu-kvm-0.14.50.orig/hw/s390-virtio.c -+++ qemu-kvm-0.14.50/hw/s390-virtio.c -@@ -99,6 +99,9 @@ int s390_virtio_hypercall(CPUState *env, +--- qemu-1.3.rc0.orig/hw/s390-virtio.c ++++ qemu-1.3.rc0/hw/s390-virtio.c +@@ -90,6 +90,9 @@ int s390_virtio_hypercall(CPUS390XState } } else { /* Early printk */ @@ -30,11 +30,11 @@ } break; case KVM_S390_VIRTIO_RESET: -Index: qemu-kvm-0.14.50/hw/virtio-console.c +Index: qemu-1.3.rc0/hw/virtio-console.c =================================================================== ---- qemu-kvm-0.14.50.orig/hw/virtio-console.c -+++ qemu-kvm-0.14.50/hw/virtio-console.c -@@ -19,6 +19,14 @@ typedef struct VirtConsole { +--- qemu-1.3.rc0.orig/hw/virtio-console.c ++++ qemu-1.3.rc0/hw/virtio-console.c +@@ -20,6 +20,14 @@ typedef struct VirtConsole { CharDriverState *chr; } VirtConsole; @@ -44,16 +44,16 @@ + VirtIOSerialPort *port = find_port_by_id(vser, 0); + VirtConsole *vcon = DO_UPCAST(VirtConsole, port, port); + -+ qemu_chr_write(vcon->chr, buf, strlen((char*)buf)); ++ qemu_chr_fe_write(vcon->chr, buf, strlen((char*)buf)); +} /* Callback function that's called when the guest sends us data */ static ssize_t flush_buf(VirtIOSerialPort *port, const uint8_t *buf, size_t len) -Index: qemu-kvm-0.14.50/hw/virtio-serial.h +Index: qemu-1.3.rc0/hw/virtio-serial.h =================================================================== ---- qemu-kvm-0.14.50.orig/hw/virtio-serial.h -+++ qemu-kvm-0.14.50/hw/virtio-serial.h -@@ -204,4 +204,7 @@ size_t virtio_serial_guest_ready(VirtIOS +--- qemu-1.3.rc0.orig/hw/virtio-serial.h ++++ qemu-1.3.rc0/hw/virtio-serial.h +@@ -205,4 +205,7 @@ size_t virtio_serial_guest_ready(VirtIOS */ void virtio_serial_throttle_port(VirtIOSerialPort *port, bool throttle); @@ -61,12 +61,12 @@ +VirtIOSerialPort *find_port_by_id(VirtIOSerial *vser, uint32_t id); + #endif -Index: qemu-kvm-0.14.50/hw/virtio-serial-bus.c +Index: qemu-1.3.rc0/hw/virtio-serial-bus.c =================================================================== ---- qemu-kvm-0.14.50.orig/hw/virtio-serial-bus.c -+++ qemu-kvm-0.14.50/hw/virtio-serial-bus.c -@@ -51,7 +51,7 @@ struct VirtIOSerial { - struct virtio_console_config config; +--- qemu-1.3.rc0.orig/hw/virtio-serial-bus.c ++++ qemu-1.3.rc0/hw/virtio-serial-bus.c +@@ -64,7 +64,7 @@ struct VirtIOSerial { + } post_load; }; -static VirtIOSerialPort *find_port_by_id(VirtIOSerial *vser, uint32_t id) ++++++ ipxe-git-a05871d.tar.bz2 -> ipxe-717279a.tar.bz2 ++++++ ++++ 10417 lines of diff (skipped) ++++++ kvm-glibc217.patch ++++++ Index: qemu-kvm-1.2.0/fsdev/virtfs-proxy-helper.c =================================================================== --- qemu-kvm-1.2.0.orig/fsdev/virtfs-proxy-helper.c +++ qemu-kvm-1.2.0/fsdev/virtfs-proxy-helper.c @@ -294,8 +294,10 @@ static int setfsugid(int uid, int gid) CAP_DAC_OVERRIDE, }; - setfsgid(gid); - setfsuid(uid); + if (setfsgid(gid) < 0) + return -1; + if (setfsuid(uid) < 0) + return -1; if (uid != 0 || gid != 0) { return do_cap_set(cap_list, ARRAY_SIZE(cap_list), 0); ++++++ kvm-qemu-avoid-redunant-declaration-error.patch ++++++ Index: qemu-kvm-1.3.prerc0.0.git.f5022a1/configure =================================================================== --- qemu-kvm-1.3.prerc0.0.git.f5022a1.orig/configure +++ qemu-kvm-1.3.prerc0.0.git.f5022a1/configure @@ -267,7 +267,7 @@ sdl_config="${SDL_CONFIG-${cross_prefix} # default flags for all hosts QEMU_CFLAGS="-fno-strict-aliasing $QEMU_CFLAGS" QEMU_CFLAGS="-Wall -Wundef -Wwrite-strings -Wmissing-prototypes $QEMU_CFLAGS" -QEMU_CFLAGS="-Wstrict-prototypes -Wredundant-decls $QEMU_CFLAGS" +QEMU_CFLAGS="-Wstrict-prototypes $QEMU_CFLAGS" QEMU_CFLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE $QEMU_CFLAGS" QEMU_INCLUDES="-I. -I\$(SRC_PATH) -I\$(SRC_PATH)/fpu" if test "$debug_info" = "yes"; then ++++++ kvm-qemu-enable-kvm-acceleration.patch ++++++ Index: qemu-1.3.0/sysconfigs/target/target-x86_64.conf =================================================================== --- /dev/null +++ qemu-1.3.0/sysconfigs/target/target-x86_64.conf @@ -0,0 +1,2 @@ +[machine] + accel = "kvm" ++++++ kvm-qemu-madvise-DONTFORK-for-tight-memory-migration.patch ++++++ --- /var/tmp/diff_new_pack.39AHzx/_old 2012-12-12 13:27:41.000000000 +0100 +++ /var/tmp/diff_new_pack.39AHzx/_new 2012-12-12 13:27:41.000000000 +0100 @@ -1,20 +1,12 @@ -Index: qemu-kvm-1.2.rc0/exec.c +Index: qemu-kvm-1.3.prerc0.0.git.f5022a1/exec.c =================================================================== ---- qemu-kvm-1.2.rc0.orig/exec.c -+++ qemu-kvm-1.2.rc0/exec.c -@@ -2527,6 +2527,7 @@ ram_addr_t qemu_ram_alloc_from_ptr(ram_a - if (!new_block->host) { - new_block->host = qemu_vmalloc(size); - qemu_madvise(new_block->host, size, QEMU_MADV_MERGEABLE); -+ qemu_madvise(new_block->host, size, QEMU_MADV_DONTFORK); - } - #else - fprintf(stderr, "-mem-path option unsupported\n"); -@@ -2542,6 +2543,7 @@ ram_addr_t qemu_ram_alloc_from_ptr(ram_a - new_block->host = qemu_vmalloc(size); - } - qemu_madvise(new_block->host, size, QEMU_MADV_MERGEABLE); -+ qemu_madvise(new_block->host, size, QEMU_MADV_DONTFORK); - } - } - new_block->length = size; +--- qemu-kvm-1.3.prerc0.0.git.f5022a1.orig/exec.c ++++ qemu-kvm-1.3.prerc0.0.git.f5022a1/exec.c +@@ -2590,6 +2590,7 @@ ram_addr_t qemu_ram_alloc_from_ptr(ram_a + + qemu_ram_setup_dump(new_block->host, size); + qemu_madvise(new_block->host, size, QEMU_MADV_HUGEPAGE); ++ qemu_madvise(new_block->host, size, QEMU_MADV_DONTFORK); + + if (kvm_enabled()) + kvm_setup_guest_memory(new_block->host, size); ++++++ kvm-qemu-make-rtl8139-default-nic.patch ++++++ We need this, but perhaps we can drop in SLES 12. Index: qemu-1.3.rc1/hw/pc.c =================================================================== --- qemu-1.3.rc1.orig/hw/pc.c +++ qemu-1.3.rc1/hw/pc.c @@ -1068,7 +1068,7 @@ void pc_nic_init(ISABus *isa_bus, PCIBus if (!pci_bus || (nd->model && strcmp(nd->model, "ne2k_isa") == 0)) { pc_init_ne2k_isa(isa_bus, nd); } else { - pci_nic_init_nofail(nd, "e1000", NULL); + pci_nic_init_nofail(nd, "rtl8139", NULL); } } } ++++++ kvm-qemu-preXX-console.patch ++++++ --- /var/tmp/diff_new_pack.39AHzx/_old 2012-12-12 13:27:41.000000000 +0100 +++ /var/tmp/diff_new_pack.39AHzx/_new 2012-12-12 13:27:41.000000000 +0100 @@ -13,21 +13,18 @@ Signed-off-by: Alexander Graf <[email protected]> --- console.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) + 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/console.c b/console.c -index 871c1d4..5e8e35d 100644 ---- a/console.c -+++ b/console.c -@@ -905,7 +905,7 @@ static void console_putchar(TextConsole *s, int ch) - } +Index: qemu-kvm-1.2.0/console.c +=================================================================== +--- qemu-kvm-1.2.0.orig/console.c ++++ qemu-kvm-1.2.0/console.c +@@ -943,7 +943,7 @@ static void console_putchar(TextConsole } else { - s->nb_esc_params++; + if (s->nb_esc_params < MAX_ESC_PARAMS) + s->nb_esc_params++; - if (ch == ';') + if (ch == ';' || ch == '?') break; #ifdef DEBUG_CONSOLE fprintf(stderr, "escape sequence CSI%d;%d%c, %d parameters\n", --- -1.6.0.2 - ++++++ kvm-qemu-preXX-dictzip1.patch ++++++ --- /var/tmp/diff_new_pack.39AHzx/_old 2012-12-12 13:27:41.000000000 +0100 +++ /var/tmp/diff_new_pack.39AHzx/_new 2012-12-12 13:27:41.000000000 +0100 @@ -24,10 +24,10 @@ 2 files changed, 502 insertions(+), 1 deletions(-) create mode 100644 block/dictzip.c -Index: qemu-kvm-1.2.rc0/block/dictzip.c +Index: qemu-kvm-1.3.prerc0.0.git.f5022a1/block/dictzip.c =================================================================== --- /dev/null -+++ qemu-kvm-1.2.rc0/block/dictzip.c ++++ qemu-kvm-1.3.prerc0.0.git.f5022a1/block/dictzip.c @@ -0,0 +1,566 @@ +/* + * DictZip Block driver for dictzip enabled gzip files @@ -436,7 +436,7 @@ +{ +} + -+static AIOPool dictzip_aio_pool = { ++static const AIOCBInfo dictzip_aiocb_info = { + .aiocb_size = sizeof(DictZipAIOCB), + .cancel = dictzip_aio_cancel, +}; @@ -462,7 +462,7 @@ + int first_offset; + int i; + -+ acb = qemu_aio_get(&dictzip_aio_pool, bs, cb, opaque); ++ acb = qemu_aio_get(&dictzip_aiocb_info, bs, cb, opaque); + if (!acb) + return NULL; + @@ -595,15 +595,12 @@ +} + +block_init(dictzip_block_init); -Index: qemu-kvm-1.2.rc0/block/Makefile.objs +Index: qemu-kvm-1.3.prerc0.0.git.f5022a1/block/Makefile.objs =================================================================== ---- qemu-kvm-1.2.rc0.orig/block/Makefile.objs -+++ qemu-kvm-1.2.rc0/block/Makefile.objs -@@ -4,6 +4,7 @@ block-obj-y += qed.o qed-gencb.o qed-l2- - block-obj-y += qed-check.o - block-obj-y += parallels.o nbd.o blkdebug.o sheepdog.o blkverify.o - block-obj-y += stream.o -+block-obj-y += dictzip.o - block-obj-$(CONFIG_WIN32) += raw-win32.o - block-obj-$(CONFIG_POSIX) += raw-posix.o - block-obj-$(CONFIG_LIBISCSI) += iscsi.o +--- qemu-kvm-1.3.prerc0.0.git.f5022a1.orig/block/Makefile.objs ++++ qemu-kvm-1.3.prerc0.0.git.f5022a1/block/Makefile.objs +@@ -18,3 +18,4 @@ endif + common-obj-y += stream.o + common-obj-y += commit.o + common-obj-y += mirror.o ++common-obj-y += dictzip.o ++++++ kvm-qemu-preXX-dictzip2.patch ++++++ --- /var/tmp/diff_new_pack.39AHzx/_old 2012-12-12 13:27:41.000000000 +0100 +++ /var/tmp/diff_new_pack.39AHzx/_new 2012-12-12 13:27:41.000000000 +0100 @@ -25,10 +25,10 @@ 2 files changed, 334 insertions(+), 1 deletions(-) create mode 100644 block/tar.c -Index: qemu-kvm-1.2.rc0/block/tar.c +Index: qemu-kvm-1.3.prerc0.0.git.f5022a1/block/tar.c =================================================================== --- /dev/null -+++ qemu-kvm-1.2.rc0/block/tar.c ++++ qemu-kvm-1.3.prerc0.0.git.f5022a1/block/tar.c @@ -0,0 +1,356 @@ +/* + * Tar block driver @@ -292,7 +292,7 @@ +{ +} + -+static AIOPool tar_aio_pool = { ++static AIOCBInfo tar_aiocb_info = { + .aiocb_size = sizeof(TarAIOCB), + .cancel = tar_aio_cancel, +}; @@ -322,7 +322,7 @@ + /* all our sectors are sparse */ + char *buf = g_malloc0(nb_sectors * SECTOR_SIZE); + -+ acb = qemu_aio_get(&tar_aio_pool, bs, cb, opaque); ++ acb = qemu_aio_get(&tar_aiocb_info, bs, cb, opaque); + qemu_iovec_from_buf(qiov, 0, buf, nb_sectors * SECTOR_SIZE); + g_free(buf); + acb->bh = qemu_bh_new(tar_sparse_cb, acb); @@ -343,7 +343,7 @@ + } + + qemu_iovec_from_buf(qiov, 0, buf, nb_sectors * SECTOR_SIZE); -+ acb = qemu_aio_get(&tar_aio_pool, bs, cb, opaque); ++ acb = qemu_aio_get(&tar_aiocb_info, bs, cb, opaque); + acb->bh = qemu_bh_new(tar_sparse_cb, acb); + qemu_bh_schedule(acb->bh); + @@ -386,16 +386,12 @@ +} + +block_init(tar_block_init); -Index: qemu-kvm-1.2.rc0/block/Makefile.objs +Index: qemu-kvm-1.3.prerc0.0.git.f5022a1/block/Makefile.objs =================================================================== ---- qemu-kvm-1.2.rc0.orig/block/Makefile.objs -+++ qemu-kvm-1.2.rc0/block/Makefile.objs -@@ -4,7 +4,7 @@ block-obj-y += qed.o qed-gencb.o qed-l2- - block-obj-y += qed-check.o - block-obj-y += parallels.o nbd.o blkdebug.o sheepdog.o blkverify.o - block-obj-y += stream.o --block-obj-y += dictzip.o -+block-obj-y += dictzip.o tar.o - block-obj-$(CONFIG_WIN32) += raw-win32.o - block-obj-$(CONFIG_POSIX) += raw-posix.o - block-obj-$(CONFIG_LIBISCSI) += iscsi.o +--- qemu-kvm-1.3.prerc0.0.git.f5022a1.orig/block/Makefile.objs ++++ qemu-kvm-1.3.prerc0.0.git.f5022a1/block/Makefile.objs +@@ -19,3 +19,4 @@ common-obj-y += stream.o + common-obj-y += commit.o + common-obj-y += mirror.o + common-obj-y += dictzip.o ++common-obj-y += tar.o ++++++ kvm-qemu-preXX-serial-retry-revert.patch ++++++ >From 364b4a642c3a3d30c882c6e59b13b1bf74bcb7b2 Mon Sep 17 00:00:00 2001 From: Michael Tokarev <[email protected]> Date: Wed, 19 Sep 2012 12:08:31 +0400 Subject: [PATCH] Revert "serial: fix retry logic" This reverts commit 67c5322d7000fd105a926eec44bc1765b7d70bdd: I'm not sure if the retry logic has ever worked when not using FIFO mode. I found this while writing a test case although code inspection confirms it is definitely broken. The TSR retry logic will never actually happen because it is guarded by an 'if (s->tsr_rety > 0)' but this is the only place that can ever make the variable greater than zero. That effectively makes the retry logic an 'if (0) I believe this is a typo and the intention was >= 0. Once this is fixed thoug I see double transmits with my test case. This is because in the non FIFO case, serial_xmit may get invoked while LSR.THRE is still high because the character was processed but the retransmit timer was still active. We can handle this by simply checking for LSR.THRE and returning early. It's possible that the FIFO paths also need some attention. Cc: Stefano Stabellini <[email protected]> Signed-off-by: Anthony Liguori <[email protected]> Even if the previous logic was never worked, new logic breaks stuff - namely, qemu -enable-kvm -nographic -kernel /boot/vmlinuz-$(uname -r) -append console=ttyS0 -serial pty the above command will cause the virtual machine to stuck at startup using 100% CPU till one connects to the pty and sends any char to it. Note this is rather typical invocation for various headless virtual machines by libvirt. So revert this change for now, till a better solution will be found. Signed-off-by: Michael Tokarev <[email protected]> Tested-by: Bernhard M. Wiedemann <[email protected]> Signed-off-by: Andreas Färber <[email protected]> --- hw/serial.c | 4 +--- 1 Datei geändert, 1 Zeile hinzugefügt(+), 3 Zeilen entfernt(-) diff --git a/hw/serial.c b/hw/serial.c index 60283ea..f59ff53 100644 --- a/hw/serial.c +++ b/hw/serial.c @@ -266,8 +266,6 @@ static void serial_xmit(void *opaque) s->tsr = fifo_get(s,XMIT_FIFO); if (!s->xmit_fifo.count) s->lsr |= UART_LSR_THRE; - } else if ((s->lsr & UART_LSR_THRE)) { - return; } else { s->tsr = s->thr; s->lsr |= UART_LSR_THRE; @@ -279,7 +277,7 @@ static void serial_xmit(void *opaque) /* in loopback mode, say that we just received a char */ serial_receive1(s, &s->tsr, 1); } else if (qemu_chr_fe_write(s->chr, &s->tsr, 1) != 1) { - if ((s->tsr_retry >= 0) && (s->tsr_retry <= MAX_XMIT_RETRY)) { + if ((s->tsr_retry > 0) && (s->tsr_retry <= MAX_XMIT_RETRY)) { s->tsr_retry++; qemu_mod_timer(s->transmit_timer, new_xmit_ts + s->char_transmit_time); return; -- 1.7.10.4 ++++++ kvm-qemu-provide-__u64-for-broken-sys-capability-h.patch ++++++ Index: qemu-kvm-1.2.0/fsdev/virtfs-proxy-helper.c =================================================================== --- qemu-kvm-1.2.0.orig/fsdev/virtfs-proxy-helper.c +++ qemu-kvm-1.2.0/fsdev/virtfs-proxy-helper.c @@ -9,6 +9,10 @@ * the COPYING file in the top-level directory. */ +/* work around a broken sys/capability.h */ +#if defined(__i386__) +typedef unsigned long long __u64; +#endif #include <sys/resource.h> #include <getopt.h> #include <syslog.h> ++++++ kvm-studio-slirp-nooutgoing.patch ++++++ --- /var/tmp/diff_new_pack.39AHzx/_old 2012-12-12 13:27:41.000000000 +0100 +++ /var/tmp/diff_new_pack.39AHzx/_new 2012-12-12 13:27:41.000000000 +0100 @@ -1,16 +1,16 @@ -Index: qemu-kvm-1.2.rc0/vl.c +Index: qemu-kvm-1.3.prerc0.0.git.f5022a1/vl.c =================================================================== ---- qemu-kvm-1.2.rc0.orig/vl.c -+++ qemu-kvm-1.2.rc0/vl.c -@@ -210,6 +210,7 @@ const char *vnc_display; +--- qemu-kvm-1.3.prerc0.0.git.f5022a1.orig/vl.c ++++ qemu-kvm-1.3.prerc0.0.git.f5022a1/vl.c +@@ -214,6 +214,7 @@ const char *vnc_display; int acpi_enabled = 1; int no_hpet = 0; int fd_bootchk = 1; +int slirp_nooutgoing = 0; - int no_reboot = 0; + static int no_reboot; int no_shutdown = 0; int cursor_hide = 1; -@@ -2745,6 +2746,14 @@ int main(int argc, char **argv, char **e +@@ -2930,6 +2931,14 @@ int main(int argc, char **argv, char **e case QEMU_OPTION_singlestep: singlestep = 1; break; @@ -25,10 +25,10 @@ case QEMU_OPTION_S: autostart = 0; break; -Index: qemu-kvm-1.2.rc0/slirp/tcp_subr.c +Index: qemu-kvm-1.3.prerc0.0.git.f5022a1/slirp/tcp_subr.c =================================================================== ---- qemu-kvm-1.2.rc0.orig/slirp/tcp_subr.c -+++ qemu-kvm-1.2.rc0/slirp/tcp_subr.c +--- qemu-kvm-1.3.prerc0.0.git.f5022a1.orig/slirp/tcp_subr.c ++++ qemu-kvm-1.3.prerc0.0.git.f5022a1/slirp/tcp_subr.c @@ -324,6 +324,9 @@ tcp_sockclosed(struct tcpcb *tp) * nonblocking. Connect returns after the SYN is sent, and does * not wait for ACK+SYN. @@ -73,10 +73,10 @@ /* Translate connections from localhost to the real hostname */ if (so->so_faddr.s_addr == 0 || (so->so_faddr.s_addr & loopback_mask) == -Index: qemu-kvm-1.2.rc0/slirp/socket.c +Index: qemu-kvm-1.3.prerc0.0.git.f5022a1/slirp/socket.c =================================================================== ---- qemu-kvm-1.2.rc0.orig/slirp/socket.c -+++ qemu-kvm-1.2.rc0/slirp/socket.c +--- qemu-kvm-1.3.prerc0.0.git.f5022a1.orig/slirp/socket.c ++++ qemu-kvm-1.3.prerc0.0.git.f5022a1/slirp/socket.c @@ -531,6 +531,8 @@ sorecvfrom(struct socket *so) } /* if ping packet */ } @@ -99,11 +99,11 @@ /* Don't care what port we get */ ret = sendto(so->s, m->m_data, m->m_len, 0, (struct sockaddr *)&addr, sizeof (struct sockaddr)); -Index: qemu-kvm-1.2.rc0/qemu-options.hx +Index: qemu-kvm-1.3.prerc0.0.git.f5022a1/qemu-options.hx =================================================================== ---- qemu-kvm-1.2.rc0.orig/qemu-options.hx -+++ qemu-kvm-1.2.rc0/qemu-options.hx -@@ -2316,6 +2316,16 @@ Store the QEMU process PID in @var{file} +--- qemu-kvm-1.3.prerc0.0.git.f5022a1.orig/qemu-options.hx ++++ qemu-kvm-1.3.prerc0.0.git.f5022a1/qemu-options.hx +@@ -2388,6 +2388,16 @@ Store the QEMU process PID in @var{file} from a script. ETEXI ++++++ kvm-studio-vnc.patch ++++++ --- /var/tmp/diff_new_pack.39AHzx/_old 2012-12-12 13:27:41.000000000 +0100 +++ /var/tmp/diff_new_pack.39AHzx/_new 2012-12-12 13:27:41.000000000 +0100 @@ -1,7 +1,7 @@ -Index: qemu-kvm-1.2.rc0/ui/vnc.c +Index: qemu-kvm-1.3.prerc0.0.git.f5022a1/ui/vnc.c =================================================================== ---- qemu-kvm-1.2.rc0.orig/ui/vnc.c -+++ qemu-kvm-1.2.rc0/ui/vnc.c +--- qemu-kvm-1.3.prerc0.0.git.f5022a1.orig/ui/vnc.c ++++ qemu-kvm-1.3.prerc0.0.git.f5022a1/ui/vnc.c @@ -45,6 +45,7 @@ static const struct timeval VNC_REFRESH_ static VncDisplay *vnc_display; /* needed for info vnc */ @@ -10,7 +10,7 @@ static int vnc_cursor_define(VncState *vs); static void vnc_release_modifiers(VncState *vs); -@@ -1018,6 +1019,7 @@ static void vnc_disconnect_start(VncStat +@@ -1019,6 +1020,7 @@ static void vnc_disconnect_start(VncStat static void vnc_disconnect_finish(VncState *vs) { int i; @@ -18,7 +18,7 @@ vnc_jobs_join(vs); /* Wait encoding jobs */ -@@ -1063,6 +1065,13 @@ static void vnc_disconnect_finish(VncSta +@@ -1064,6 +1066,13 @@ static void vnc_disconnect_finish(VncSta } g_free(vs->lossy_rect); g_free(vs); @@ -32,24 +32,24 @@ } int vnc_client_io_error(VncState *vs, int ret, int last_errno) -@@ -2844,6 +2853,39 @@ char *vnc_display_local_addr(DisplayStat +@@ -2861,6 +2870,39 @@ char *vnc_display_local_addr(DisplayStat return vnc_socket_local_addr("%s:%s", vs->lsock); } -+static void read_file_password(DisplayState *ds, char *filename) ++static void read_file_password(DisplayState *ds, char *filename, Error **errp) +{ + FILE *pfile = NULL; + char *passwd = NULL; + int start = 0, length = 0, rc = 0; + + if(strlen(filename) == 0) { -+ printf("No file supplied\n"); ++ error_setg(errp, "No file supplied"); + return; + } + + pfile = fopen(filename, "r"); + if(pfile == NULL) { -+ printf("Could not read from %s\n", filename); ++ error_setg(errp, "Could not read from %s", filename); + return; + } + @@ -58,7 +58,7 @@ + length = ftell(pfile); + fseek(pfile, 0L, start); + -+ passwd = malloc(length+1); ++ passwd = g_malloc(length+1); + rc = fread(passwd, 1, length, pfile); + fclose(pfile); + @@ -66,13 +66,13 @@ + vnc_display_password(ds, passwd); + } + -+ free(passwd); ++ g_free(passwd); +} + - int vnc_display_open(DisplayState *ds, const char *display) + void vnc_display_open(DisplayState *ds, const char *display, Error **errp) { VncDisplay *vs = ds ? (VncDisplay *)ds->opaque : vnc_display; -@@ -2876,6 +2918,9 @@ int vnc_display_open(DisplayState *ds, c +@@ -2894,6 +2936,9 @@ void vnc_display_open(DisplayState *ds, while ((options = strchr(options, ','))) { options++; if (strncmp(options, "password", 8) == 0) { @@ -80,10 +80,10 @@ + start = strchr(options, '='); + end = strchr(options, ','); if (fips_get_state()) { - fprintf(stderr, - "VNC password auth disabled due to FIPS mode, " -@@ -2886,6 +2931,32 @@ int vnc_display_open(DisplayState *ds, c - return -1; + error_setg(errp, + "VNC password auth disabled due to FIPS mode, " +@@ -2902,6 +2947,33 @@ void vnc_display_open(DisplayState *ds, + goto fail; } password = 1; /* Require password auth */ + if (start && (!end || (start < end))) { @@ -93,12 +93,12 @@ + text[len] = '\0'; + + if (strncmp(options, "password-file=", 14) == 0) { -+ read_file_password(ds, text); ++ read_file_password(ds, text, errp); + } else { + vnc_display_password(ds, text); + } + -+ free(text); ++ g_free(text); + } + } else if (strncmp(options, "allowed-connections=", 20) == 0) { + char *start, *end; @@ -111,6 +111,7 @@ + text[len] = '\0'; + VNC_DEBUG("Maximum number of disconnects: %s\n", text); + allowed_connections = atoi(text); ++ g_free(text); + } } else if (strncmp(options, "reverse", 7) == 0) { reverse = 1; ++++++ qemu-kvm-1.2.rc1.tar.bz2 -> qemu-1.3.0.tar.bz2 ++++++ ++++ 188372 lines of diff (skipped) ++++++ seabios-git-7a39e72.tar.bz2 -> seabios-8b73b83.tar.bz2 ++++++ ++++ 2775 lines of diff (skipped) -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
