From 78d83468f16fef879a5be30c62b929b15f4e2aca96f6172a7b595f0f50f3c5aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20F=C3=A4rber?= Date: Fri, 13 Sep 2013 21:59:15 +0000 Subject: [PATCH] Accepting request 199020 from home:bfrogers:branches:Virtualization Build x86 firmware from the tarball. Add 4 qemu-* firmware subpackages. (bnc#830002) OBS-URL: https://build.opensuse.org/request/show/199020 OBS-URL: https://build.opensuse.org/package/show/Virtualization/qemu?expand=0&rev=162 --- ...-XXX-dont-dump-core-on-sigabort.patc.patch | 4 +- ...-XXX-work-around-SA_RESTART-race-wit.patch | 8 +- 0003-qemu-0.9.0.cvs-binfmt.patch.patch | 4 +- 0004-qemu-cvs-alsa_bitfield.patch.patch | 6 +- 0005-qemu-cvs-alsa_ioctl.patch.patch | 2 +- 0006-qemu-cvs-alsa_mmap.patch.patch | 4 +- 0007-qemu-cvs-gettimeofday.patch.patch | 4 +- 0008-qemu-cvs-ioctl_debug.patch.patch | 4 +- 0009-qemu-cvs-ioctl_nodirection.patch.patch | 4 +- ...-block-vmdk-Support-creation-of-SCSI.patch | 8 +- ...-linux-user-add-binfmt-wrapper-for-a.patch | 8 +- ...-linux-user-Ignore-timer_create-sysc.patch | 4 +- ...-linux-user-be-silent-about-capget-f.patch | 4 +- ...-PPC-KVM-Disable-mmu-notifier-check..patch | 4 +- ...-linux-user-fix-segfault-deadlock.pa.patch | 6 +- ...-linux-user-binfmt-support-host-bina.patch | 4 +- ...-linux-user-arm-no-tb_flush-on-reset.patch | 4 +- ...-linux-user-Ignore-broken-loop-ioctl.patch | 10 +- 0019-linux-user-lock-tcg.patch.patch | 6 +- ...-linux-user-Run-multi-threaded-code-.patch | 4 +- ...-linux-user-lock-tb-flushing-too.pat.patch | 4 +- 0022-linux-user-Fake-proc-cpuinfo.patch.patch | 4 +- ...-linux-user-implement-FS_IOC_GETFLAG.patch | 6 +- ...-linux-user-implement-FS_IOC_SETFLAG.patch | 6 +- ...-linux-user-XXX-disable-fiemap.patch.patch | 4 +- 0026-slirp-nooutgoing.patch.patch | 10 +- ...-vnc-password-file-and-incoming-conn.patch | 4 +- ...-linux-user-add-more-blk-ioctls.patc.patch | 8 +- 0029-linux-user-use-target_ulong.patch.patch | 4 +- ...-Add-support-for-DictZip-enabled-gzi.patch | 6 +- 0031-Add-tar-container-format.patch.patch | 6 +- ...-Legacy-Patch-kvm-qemu-preXX-dictzip.patch | 4 +- ...-Legacy-Patch-kvm-qemu-preXX-report-.patch | 4 +- ...-console-add-question-mark-escape-op.patch | 4 +- ...-Make-char-muxer-more-robust-wrt-sma.patch | 4 +- ...-linux-user-lseek-explicitly-cast-no.patch | 4 +- ...-virtfs-proxy-helper-Provide-__u64-f.patch | 4 +- build_and_copy_vgabios_bin.patch | 17 +++ ipxe-build-Work-around-bug-in-gcc-4.8.patch | 55 +++++++ ...-zbin-Fix-size-used-for-memset-in-al.patch | 41 ++++++ qemu.changes | 12 ++ qemu.spec | 136 ++++++++++++++++++ qemu.spec.in | 136 ++++++++++++++++++ 43 files changed, 491 insertions(+), 94 deletions(-) create mode 100644 build_and_copy_vgabios_bin.patch create mode 100644 ipxe-build-Work-around-bug-in-gcc-4.8.patch create mode 100644 ipxe-zbin-Fix-size-used-for-memset-in-al.patch diff --git a/0001-XXX-dont-dump-core-on-sigabort.patc.patch b/0001-XXX-dont-dump-core-on-sigabort.patc.patch index b93ea6b8..a0cea3e4 100644 --- a/0001-XXX-dont-dump-core-on-sigabort.patc.patch +++ b/0001-XXX-dont-dump-core-on-sigabort.patc.patch @@ -4,8 +4,8 @@ Date: Mon, 21 Nov 2011 23:50:36 +0100 Subject: [PATCH] XXX dont dump core on sigabort --- - linux-user/signal.c | 6 ++++++ - 1 file changed, 6 insertions(+) + linux-user/signal.c | 6 ++++++ + 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/linux-user/signal.c b/linux-user/signal.c index 23d65da..c6f9968 100644 diff --git a/0002-XXX-work-around-SA_RESTART-race-wit.patch b/0002-XXX-work-around-SA_RESTART-race-wit.patch index 49ba6b7a..25d991c6 100644 --- a/0002-XXX-work-around-SA_RESTART-race-wit.patch +++ b/0002-XXX-work-around-SA_RESTART-race-wit.patch @@ -5,10 +5,10 @@ Subject: [PATCH] XXX work around SA_RESTART race with boehm-gc (ARM only) [AF: CPUState -> CPUArchState, adapt to reindentation] --- - linux-user/main.c | 25 +++++++++------ - linux-user/qemu.h | 3 ++ - linux-user/signal.c | 22 +++++++++++++ - linux-user/syscall.c | 90 +++++++++++++++++++++++++++++++++++++++++++++++++++- + linux-user/main.c | 25 +++++++++----- + linux-user/qemu.h | 3 ++ + linux-user/signal.c | 22 ++++++++++++ + linux-user/syscall.c | 90 +++++++++++++++++++++++++++++++++++++++++++++++++- 4 files changed, 130 insertions(+), 10 deletions(-) diff --git a/linux-user/main.c b/linux-user/main.c diff --git a/0003-qemu-0.9.0.cvs-binfmt.patch.patch b/0003-qemu-0.9.0.cvs-binfmt.patch.patch index 5dacd34f..c230bac2 100644 --- a/0003-qemu-0.9.0.cvs-binfmt.patch.patch +++ b/0003-qemu-0.9.0.cvs-binfmt.patch.patch @@ -10,8 +10,8 @@ Fixes binfmt_misc setup script: Signed-off-by: Ulrich Hecht --- - scripts/qemu-binfmt-conf.sh | 37 ++++++++++++++++++++----------------- - 1 file changed, 20 insertions(+), 17 deletions(-) + scripts/qemu-binfmt-conf.sh | 37 ++++++++++++++++++++----------------- + 1 files changed, 20 insertions(+), 17 deletions(-) diff --git a/scripts/qemu-binfmt-conf.sh b/scripts/qemu-binfmt-conf.sh index 0da2618..dc652f0 100644 diff --git a/0004-qemu-cvs-alsa_bitfield.patch.patch b/0004-qemu-cvs-alsa_bitfield.patch.patch index 1df35189..61cc2a31 100644 --- a/0004-qemu-cvs-alsa_bitfield.patch.patch +++ b/0004-qemu-cvs-alsa_bitfield.patch.patch @@ -8,9 +8,9 @@ Implements TYPE_INTBITFIELD partially. (required for ALSA support) Signed-off-by: Alexander Graf Signed-off-by: Ulrich Hecht --- - include/exec/user/thunk.h | 3 +++ - thunk.c | 21 +++++++++++++++++++++ - 2 files changed, 24 insertions(+) + include/exec/user/thunk.h | 3 +++ + thunk.c | 21 +++++++++++++++++++++ + 2 files changed, 24 insertions(+), 0 deletions(-) diff --git a/include/exec/user/thunk.h b/include/exec/user/thunk.h index 87025c3..6c35e64 100644 diff --git a/0005-qemu-cvs-alsa_ioctl.patch.patch b/0005-qemu-cvs-alsa_ioctl.patch.patch index 024c9f42..aa60e5c3 100644 --- a/0005-qemu-cvs-alsa_ioctl.patch.patch +++ b/0005-qemu-cvs-alsa_ioctl.patch.patch @@ -14,7 +14,7 @@ Signed-off-by: Ulrich Hecht linux-user/syscall_defs.h | 2 + linux-user/syscall_types.h | 5 + linux-user/syscall_types_alsa.h | 1336 +++++++++++++++++++++++++++++ - 6 files changed, 3555 insertions(+) + 6 files changed, 3555 insertions(+), 0 deletions(-) create mode 100644 linux-user/ioctls_alsa.h create mode 100644 linux-user/ioctls_alsa_structs.h create mode 100644 linux-user/syscall_types_alsa.h diff --git a/0006-qemu-cvs-alsa_mmap.patch.patch b/0006-qemu-cvs-alsa_mmap.patch.patch index cb855a26..d6505736 100644 --- a/0006-qemu-cvs-alsa_mmap.patch.patch +++ b/0006-qemu-cvs-alsa_mmap.patch.patch @@ -8,8 +8,8 @@ Hack to prevent ALSA from using mmap() interface to simplify emulation. Signed-off-by: Alexander Graf Signed-off-by: Ulrich Hecht --- - linux-user/mmap.c | 14 ++++++++++++++ - 1 file changed, 14 insertions(+) + linux-user/mmap.c | 14 ++++++++++++++ + 1 files changed, 14 insertions(+), 0 deletions(-) diff --git a/linux-user/mmap.c b/linux-user/mmap.c index a249f0c..34a5615 100644 diff --git a/0007-qemu-cvs-gettimeofday.patch.patch b/0007-qemu-cvs-gettimeofday.patch.patch index d81a9d80..5ce9d0b5 100644 --- a/0007-qemu-cvs-gettimeofday.patch.patch +++ b/0007-qemu-cvs-gettimeofday.patch.patch @@ -5,8 +5,8 @@ Subject: [PATCH] qemu-cvs-gettimeofday No clue what this is for. --- - linux-user/syscall.c | 2 ++ - 1 file changed, 2 insertions(+) + linux-user/syscall.c | 2 ++ + 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/linux-user/syscall.c b/linux-user/syscall.c index 23954c1..709c167 100644 diff --git a/0008-qemu-cvs-ioctl_debug.patch.patch b/0008-qemu-cvs-ioctl_debug.patch.patch index c713c5da..73d5cdd7 100644 --- a/0008-qemu-cvs-ioctl_debug.patch.patch +++ b/0008-qemu-cvs-ioctl_debug.patch.patch @@ -8,8 +8,8 @@ Extends unsupported ioctl debug output. Signed-off-by: Alexander Graf Signed-off-by: Ulrich Hecht --- - linux-user/syscall.c | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) + linux-user/syscall.c | 7 ++++++- + 1 files changed, 6 insertions(+), 1 deletions(-) diff --git a/linux-user/syscall.c b/linux-user/syscall.c index 709c167..7453ff5 100644 diff --git a/0009-qemu-cvs-ioctl_nodirection.patch.patch b/0009-qemu-cvs-ioctl_nodirection.patch.patch index 9be6ab11..f8fa0e15 100644 --- a/0009-qemu-cvs-ioctl_nodirection.patch.patch +++ b/0009-qemu-cvs-ioctl_nodirection.patch.patch @@ -11,8 +11,8 @@ IOC_RW. Signed-off-by: Alexander Graf Signed-off-by: Ulrich Hecht --- - linux-user/syscall.c | 6 ++++++ - 1 file changed, 6 insertions(+) + linux-user/syscall.c | 6 ++++++ + 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/linux-user/syscall.c b/linux-user/syscall.c index 7453ff5..18ec182 100644 diff --git a/0010-block-vmdk-Support-creation-of-SCSI.patch b/0010-block-vmdk-Support-creation-of-SCSI.patch index 80390fcb..6808c224 100644 --- a/0010-block-vmdk-Support-creation-of-SCSI.patch +++ b/0010-block-vmdk-Support-creation-of-SCSI.patch @@ -11,10 +11,10 @@ Signed-off-by: Ulrich Hecht [AF: Rebased onto upstream VMDK SCSI support] Signed-off-by: Andreas Färber --- - block.c | 6 +++++- - block/vmdk.c | 9 ++++++++- - include/block/block_int.h | 2 ++ - qemu-img.c | 8 +++++++- + block.c | 6 +++++- + block/vmdk.c | 9 ++++++++- + include/block/block_int.h | 2 ++ + qemu-img.c | 8 +++++++- 4 files changed, 22 insertions(+), 3 deletions(-) diff --git a/block.c b/block.c diff --git a/0011-linux-user-add-binfmt-wrapper-for-a.patch b/0011-linux-user-add-binfmt-wrapper-for-a.patch index 530e2ef5..6c2ef5c9 100644 --- a/0011-linux-user-add-binfmt-wrapper-for-a.patch +++ b/0011-linux-user-add-binfmt-wrapper-for-a.patch @@ -27,10 +27,10 @@ Signed-off-by: Alexander Graf [AF: Rebased onto new Makefile infrastructure] Signed-off-by: Andreas Färber --- - Makefile.target | 12 ++++++++++++ - linux-user/Makefile.objs | 2 ++ - linux-user/binfmt.c | 42 ++++++++++++++++++++++++++++++++++++++++++ - scripts/qemu-binfmt-conf.sh | 34 +++++++++++++++++----------------- + Makefile.target | 12 ++++++++++++ + linux-user/Makefile.objs | 2 ++ + linux-user/binfmt.c | 42 ++++++++++++++++++++++++++++++++++++++++++ + scripts/qemu-binfmt-conf.sh | 34 +++++++++++++++++----------------- 4 files changed, 73 insertions(+), 17 deletions(-) create mode 100644 linux-user/binfmt.c diff --git a/0012-linux-user-Ignore-timer_create-sysc.patch b/0012-linux-user-Ignore-timer_create-sysc.patch index 3ec46824..c1a64aad 100644 --- a/0012-linux-user-Ignore-timer_create-sysc.patch +++ b/0012-linux-user-Ignore-timer_create-sysc.patch @@ -8,8 +8,8 @@ about it breaks some %check tests in OBS, so better ignore it silently. Signed-off-by: Alexander Graf --- - linux-user/syscall.c | 5 +++++ - 1 file changed, 5 insertions(+) + linux-user/syscall.c | 5 +++++ + 1 files changed, 5 insertions(+), 0 deletions(-) diff --git a/linux-user/syscall.c b/linux-user/syscall.c index 18ec182..eda4455 100644 diff --git a/0013-linux-user-be-silent-about-capget-f.patch b/0013-linux-user-be-silent-about-capget-f.patch index 2dc99bbe..49abb4e3 100644 --- a/0013-linux-user-be-silent-about-capget-f.patch +++ b/0013-linux-user-be-silent-about-capget-f.patch @@ -9,8 +9,8 @@ implementation and go on with life :) Signed-off-by: Alexander Graf --- - linux-user/syscall.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) + linux-user/syscall.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/linux-user/syscall.c b/linux-user/syscall.c index eda4455..628fe66 100644 diff --git a/0014-PPC-KVM-Disable-mmu-notifier-check..patch b/0014-PPC-KVM-Disable-mmu-notifier-check..patch index 71ecb590..6dae25f6 100644 --- a/0014-PPC-KVM-Disable-mmu-notifier-check..patch +++ b/0014-PPC-KVM-Disable-mmu-notifier-check..patch @@ -9,8 +9,8 @@ check for MMU notifiers that on 970 can not be implemented properly. So disable the check for mmu notifiers on PowerPC guests, making KVM guests work there, even if possibly racy in some odd circumstances. --- - exec.c | 2 ++ - 1 file changed, 2 insertions(+) + exec.c | 2 ++ + 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/exec.c b/exec.c index 3ca9381..e4d92d7 100644 diff --git a/0015-linux-user-fix-segfault-deadlock.pa.patch b/0015-linux-user-fix-segfault-deadlock.pa.patch index 1904f944..de4c838f 100644 --- a/0015-linux-user-fix-segfault-deadlock.pa.patch +++ b/0015-linux-user-fix-segfault-deadlock.pa.patch @@ -21,9 +21,9 @@ Reported-by: Fabio Erculiani Signed-off-by: Alexander Graf Signed-off-by: Andreas Färber --- - include/exec/spinlock.h | 10 ++++++++++ - user-exec.c | 4 ++++ - 2 files changed, 14 insertions(+) + include/exec/spinlock.h | 10 ++++++++++ + user-exec.c | 4 ++++ + 2 files changed, 14 insertions(+), 0 deletions(-) diff --git a/include/exec/spinlock.h b/include/exec/spinlock.h index a72edda..e460e12 100644 diff --git a/0016-linux-user-binfmt-support-host-bina.patch b/0016-linux-user-binfmt-support-host-bina.patch index bc7a3cb6..6dc0ba98 100644 --- a/0016-linux-user-binfmt-support-host-bina.patch +++ b/0016-linux-user-binfmt-support-host-bina.patch @@ -8,8 +8,8 @@ trying to run, let's just use that instead as it will be a lot faster. Signed-off-by: Alexander Graf --- - linux-user/binfmt.c | 25 +++++++++++++++++++++++++ - 1 file changed, 25 insertions(+) + linux-user/binfmt.c | 25 +++++++++++++++++++++++++ + 1 files changed, 25 insertions(+), 0 deletions(-) diff --git a/linux-user/binfmt.c b/linux-user/binfmt.c index cd1f513..87dc4c6 100644 diff --git a/0017-linux-user-arm-no-tb_flush-on-reset.patch b/0017-linux-user-arm-no-tb_flush-on-reset.patch index ab9a56ca..4b3428a3 100644 --- a/0017-linux-user-arm-no-tb_flush-on-reset.patch +++ b/0017-linux-user-arm-no-tb_flush-on-reset.patch @@ -10,8 +10,8 @@ tb_flush on reset. So something in our thread creation is broken. But for now, let's revert the change to at least get a working build again. --- - target-arm/cpu.c | 4 ++++ - 1 file changed, 4 insertions(+) + target-arm/cpu.c | 4 ++++ + 1 files changed, 4 insertions(+), 0 deletions(-) diff --git a/target-arm/cpu.c b/target-arm/cpu.c index 5a7566b..40bddc3 100644 diff --git a/0018-linux-user-Ignore-broken-loop-ioctl.patch b/0018-linux-user-Ignore-broken-loop-ioctl.patch index 037904a8..b121fa08 100644 --- a/0018-linux-user-Ignore-broken-loop-ioctl.patch +++ b/0018-linux-user-Ignore-broken-loop-ioctl.patch @@ -11,11 +11,11 @@ So let's silently ignore that bogus ioctl. Signed-off-by: Alexander Graf --- - linux-user/ioctls.h | 1 + - linux-user/linux_loop.h | 1 + - linux-user/syscall.c | 7 +++++++ - linux-user/syscall_defs.h | 1 + - 4 files changed, 10 insertions(+) + linux-user/ioctls.h | 1 + + linux-user/linux_loop.h | 1 + + linux-user/syscall.c | 7 +++++++ + linux-user/syscall_defs.h | 1 + + 4 files changed, 10 insertions(+), 0 deletions(-) diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h index 28dc0b2..da4f12c 100644 diff --git a/0019-linux-user-lock-tcg.patch.patch b/0019-linux-user-lock-tcg.patch.patch index 7d6cd2a5..ab0346cf 100644 --- a/0019-linux-user-lock-tcg.patch.patch +++ b/0019-linux-user-lock-tcg.patch.patch @@ -13,9 +13,9 @@ Signed-off-by: Alexander Graf [AF: Rebased onto exec.c/translate-all.c split for 1.4] Signed-off-by: Andreas Färber --- - linux-user/mmap.c | 3 +++ - tcg/tcg.c | 36 ++++++++++++++++++++++++++++++++++-- - tcg/tcg.h | 6 ++++++ + linux-user/mmap.c | 3 +++ + tcg/tcg.c | 36 ++++++++++++++++++++++++++++++++++-- + tcg/tcg.h | 6 ++++++ 3 files changed, 43 insertions(+), 2 deletions(-) diff --git a/linux-user/mmap.c b/linux-user/mmap.c diff --git a/0020-linux-user-Run-multi-threaded-code-.patch b/0020-linux-user-Run-multi-threaded-code-.patch index d8d1b3fc..68816bd3 100644 --- a/0020-linux-user-Run-multi-threaded-code-.patch +++ b/0020-linux-user-Run-multi-threaded-code-.patch @@ -15,8 +15,8 @@ This gets Java 1.7 working for me again on my test box. Signed-off-by: Alexander Graf --- - linux-user/syscall.c | 9 +++++++++ - 1 file changed, 9 insertions(+) + linux-user/syscall.c | 9 +++++++++ + 1 files changed, 9 insertions(+), 0 deletions(-) diff --git a/linux-user/syscall.c b/linux-user/syscall.c index 38ca7af..8aef3e8 100644 diff --git a/0021-linux-user-lock-tb-flushing-too.pat.patch b/0021-linux-user-lock-tb-flushing-too.pat.patch index 958d609f..4881ad29 100644 --- a/0021-linux-user-lock-tb-flushing-too.pat.patch +++ b/0021-linux-user-lock-tb-flushing-too.pat.patch @@ -10,8 +10,8 @@ Signed-off-by: Alexander Graf [AF: Rebased onto exec.c/translate-all.c split for 1.4] Signed-off-by: Andreas Färber --- - translate-all.c | 20 ++++++++++++++++++-- - 1 file changed, 18 insertions(+), 2 deletions(-) + translate-all.c | 20 ++++++++++++++++++-- + 1 files changed, 18 insertions(+), 2 deletions(-) diff --git a/translate-all.c b/translate-all.c index 3b5fc7c..165a63e 100644 diff --git a/0022-linux-user-Fake-proc-cpuinfo.patch.patch b/0022-linux-user-Fake-proc-cpuinfo.patch.patch index 1d782c26..154dde06 100644 --- a/0022-linux-user-Fake-proc-cpuinfo.patch.patch +++ b/0022-linux-user-Fake-proc-cpuinfo.patch.patch @@ -18,8 +18,8 @@ Signed-off-by: Alexander Graf [AF: Rebased for v1.6] Signed-off-by: Andreas Färber --- - linux-user/syscall.c | 20 ++++++++++++++++++++ - 1 file changed, 20 insertions(+) + linux-user/syscall.c | 20 ++++++++++++++++++++ + 1 files changed, 20 insertions(+), 0 deletions(-) diff --git a/linux-user/syscall.c b/linux-user/syscall.c index 8aef3e8..429ab3a 100644 diff --git a/0023-linux-user-implement-FS_IOC_GETFLAG.patch b/0023-linux-user-implement-FS_IOC_GETFLAG.patch index 79a94fbf..9eaa9f53 100644 --- a/0023-linux-user-implement-FS_IOC_GETFLAG.patch +++ b/0023-linux-user-implement-FS_IOC_GETFLAG.patch @@ -11,9 +11,9 @@ v1 -> v2: - use TYPE_LONG instead of TYPE_INT --- - linux-user/ioctls.h | 1 + - linux-user/syscall_defs.h | 2 ++ - 2 files changed, 3 insertions(+) + linux-user/ioctls.h | 1 + + linux-user/syscall_defs.h | 2 ++ + 2 files changed, 3 insertions(+), 0 deletions(-) diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h index da4f12c..17b67af 100644 diff --git a/0024-linux-user-implement-FS_IOC_SETFLAG.patch b/0024-linux-user-implement-FS_IOC_SETFLAG.patch index 134efdea..d7d2e351 100644 --- a/0024-linux-user-implement-FS_IOC_SETFLAG.patch +++ b/0024-linux-user-implement-FS_IOC_SETFLAG.patch @@ -11,9 +11,9 @@ v1 -> v2 - use TYPE_LONG instead of TYPE_INT --- - linux-user/ioctls.h | 1 + - linux-user/syscall_defs.h | 1 + - 2 files changed, 2 insertions(+) + linux-user/ioctls.h | 1 + + linux-user/syscall_defs.h | 1 + + 2 files changed, 2 insertions(+), 0 deletions(-) diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h index 17b67af..a77b72c 100644 diff --git a/0025-linux-user-XXX-disable-fiemap.patch.patch b/0025-linux-user-XXX-disable-fiemap.patch.patch index cb5f14be..55deb776 100644 --- a/0025-linux-user-XXX-disable-fiemap.patch.patch +++ b/0025-linux-user-XXX-disable-fiemap.patch.patch @@ -5,8 +5,8 @@ Subject: [PATCH] linux-user: XXX disable fiemap agraf: fiemap breaks in libarchive. Disable it for now. --- - linux-user/syscall.c | 5 +++++ - 1 file changed, 5 insertions(+) + linux-user/syscall.c | 5 +++++ + 1 files changed, 5 insertions(+), 0 deletions(-) diff --git a/linux-user/syscall.c b/linux-user/syscall.c index 429ab3a..5c42bc9 100644 diff --git a/0026-slirp-nooutgoing.patch.patch b/0026-slirp-nooutgoing.patch.patch index 4e29595b..5d3f628e 100644 --- a/0026-slirp-nooutgoing.patch.patch +++ b/0026-slirp-nooutgoing.patch.patch @@ -5,11 +5,11 @@ Subject: [PATCH] slirp: -nooutgoing TBD (from SUSE Studio team) --- - qemu-options.hx | 10 ++++++++++ - slirp/socket.c | 8 ++++++++ - slirp/tcp_subr.c | 13 +++++++++++++ - vl.c | 9 +++++++++ - 4 files changed, 40 insertions(+) + qemu-options.hx | 10 ++++++++++ + slirp/socket.c | 8 ++++++++ + slirp/tcp_subr.c | 13 +++++++++++++ + vl.c | 9 +++++++++ + 4 files changed, 40 insertions(+), 0 deletions(-) diff --git a/qemu-options.hx b/qemu-options.hx index d15338e..e8097ac 100644 diff --git a/0027-vnc-password-file-and-incoming-conn.patch b/0027-vnc-password-file-and-incoming-conn.patch index 12082be1..b635188b 100644 --- a/0027-vnc-password-file-and-incoming-conn.patch +++ b/0027-vnc-password-file-and-incoming-conn.patch @@ -5,8 +5,8 @@ Subject: [PATCH] vnc: password-file= and incoming-connections= TBD (from SUSE Studio team) --- - ui/vnc.c | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 71 insertions(+) + ui/vnc.c | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 files changed, 71 insertions(+), 0 deletions(-) diff --git a/ui/vnc.c b/ui/vnc.c index 5601cc3..d5796e6 100644 diff --git a/0028-linux-user-add-more-blk-ioctls.patc.patch b/0028-linux-user-add-more-blk-ioctls.patc.patch index a0a5bc5a..5428b590 100644 --- a/0028-linux-user-add-more-blk-ioctls.patc.patch +++ b/0028-linux-user-add-more-blk-ioctls.patc.patch @@ -7,10 +7,10 @@ Implement a few more ioctls that operate on block devices. Signed-off-by: Alexander Graf --- - linux-user/ioctls.h | 18 ++++++++++++++++++ - linux-user/syscall_defs.h | 6 ++++++ - linux-user/syscall_types.h | 3 +++ - 3 files changed, 27 insertions(+) + linux-user/ioctls.h | 18 ++++++++++++++++++ + linux-user/syscall_defs.h | 6 ++++++ + linux-user/syscall_types.h | 3 +++ + 3 files changed, 27 insertions(+), 0 deletions(-) diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h index a77b72c..4c6d2ee 100644 diff --git a/0029-linux-user-use-target_ulong.patch.patch b/0029-linux-user-use-target_ulong.patch.patch index 6e1cb26b..a87b145f 100644 --- a/0029-linux-user-use-target_ulong.patch.patch +++ b/0029-linux-user-use-target_ulong.patch.patch @@ -12,8 +12,8 @@ Pass syscall arguments as ulong always. Signed-off-by: Alexander Graf --- - linux-user/qemu.h | 8 ++++---- - linux-user/syscall.c | 8 ++++---- + linux-user/qemu.h | 8 ++++---- + linux-user/syscall.c | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/linux-user/qemu.h b/linux-user/qemu.h diff --git a/0030-Add-support-for-DictZip-enabled-gzi.patch b/0030-Add-support-for-DictZip-enabled-gzi.patch index dc3fcab3..d4883314 100644 --- a/0030-Add-support-for-DictZip-enabled-gzi.patch +++ b/0030-Add-support-for-DictZip-enabled-gzi.patch @@ -27,9 +27,9 @@ Signed-off-by: Andreas Färber Signed-off-by: Tim Hardeck Signed-off-by: Andreas Färber --- - block/Makefile.objs | 1 + - block/dictzip.c | 596 ++++++++++++++++++++++++++++++++++++++++++++++++++++ - 2 files changed, 597 insertions(+) + block/Makefile.objs | 1 + + block/dictzip.c | 596 +++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 597 insertions(+), 0 deletions(-) create mode 100644 block/dictzip.c diff --git a/block/Makefile.objs b/block/Makefile.objs diff --git a/0031-Add-tar-container-format.patch.patch b/0031-Add-tar-container-format.patch.patch index 6a251560..519b9c34 100644 --- a/0031-Add-tar-container-format.patch.patch +++ b/0031-Add-tar-container-format.patch.patch @@ -28,9 +28,9 @@ Signed-off-by: Andreas Färber Signed-off-by: Tim Hardeck Signed-off-by: Andreas Färber --- - block/Makefile.objs | 1 + - block/tar.c | 386 ++++++++++++++++++++++++++++++++++++++++++++++++++++ - 2 files changed, 387 insertions(+) + block/Makefile.objs | 1 + + block/tar.c | 386 +++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 387 insertions(+), 0 deletions(-) create mode 100644 block/tar.c diff --git a/block/Makefile.objs b/block/Makefile.objs diff --git a/0032-Legacy-Patch-kvm-qemu-preXX-dictzip.patch b/0032-Legacy-Patch-kvm-qemu-preXX-dictzip.patch index 232b832d..ebbc2f75 100644 --- a/0032-Legacy-Patch-kvm-qemu-preXX-dictzip.patch +++ b/0032-Legacy-Patch-kvm-qemu-preXX-dictzip.patch @@ -4,8 +4,8 @@ Date: Wed, 12 Dec 2012 19:11:30 +0100 Subject: [PATCH] Legacy Patch kvm-qemu-preXX-dictzip3.patch --- - block/tar.c | 13 +++++++++++-- - 1 file changed, 11 insertions(+), 2 deletions(-) + block/tar.c | 13 +++++++++++-- + 1 files changed, 11 insertions(+), 2 deletions(-) diff --git a/block/tar.c b/block/tar.c index 87bf552..bf24c98 100644 diff --git a/0033-Legacy-Patch-kvm-qemu-preXX-report-.patch b/0033-Legacy-Patch-kvm-qemu-preXX-report-.patch index 04158741..96a7a0ad 100644 --- a/0033-Legacy-Patch-kvm-qemu-preXX-report-.patch +++ b/0033-Legacy-Patch-kvm-qemu-preXX-report-.patch @@ -4,8 +4,8 @@ Date: Wed, 12 Dec 2012 19:11:31 +0100 Subject: [PATCH] Legacy Patch kvm-qemu-preXX-report-default-mac-used.patch --- - net/net.c | 22 ++++++++++++++++++++++ - 1 file changed, 22 insertions(+) + net/net.c | 22 ++++++++++++++++++++++ + 1 files changed, 22 insertions(+), 0 deletions(-) diff --git a/net/net.c b/net/net.c index c0d61bf..adc389f 100644 diff --git a/0034-console-add-question-mark-escape-op.patch b/0034-console-add-question-mark-escape-op.patch index 6d55883f..545a2314 100644 --- a/0034-console-add-question-mark-escape-op.patch +++ b/0034-console-add-question-mark-escape-op.patch @@ -12,8 +12,8 @@ outputting guest serial consoles to the graphical console emulator. Signed-off-by: Alexander Graf --- - ui/console.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) + ui/console.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/ui/console.c b/ui/console.c index e3e8297..8784cd0 100644 diff --git a/0035-Make-char-muxer-more-robust-wrt-sma.patch b/0035-Make-char-muxer-more-robust-wrt-sma.patch index 5afa6c53..c56e3818 100644 --- a/0035-Make-char-muxer-more-robust-wrt-sma.patch +++ b/0035-Make-char-muxer-more-robust-wrt-sma.patch @@ -18,8 +18,8 @@ it polls again after a while to check if the guest is now receiving input. This patch fixes input when using -nographic on s390 for me. --- - qemu-char.c | 16 ++++++++++++++++ - 1 file changed, 16 insertions(+) + qemu-char.c | 16 ++++++++++++++++ + 1 files changed, 16 insertions(+), 0 deletions(-) diff --git a/qemu-char.c b/qemu-char.c index 1be1cf6..ad7c8fd 100644 diff --git a/0036-linux-user-lseek-explicitly-cast-no.patch b/0036-linux-user-lseek-explicitly-cast-no.patch index bf627a9e..3933778c 100644 --- a/0036-linux-user-lseek-explicitly-cast-no.patch +++ b/0036-linux-user-lseek-explicitly-cast-no.patch @@ -12,8 +12,8 @@ absolute positioned which we need to maintain as unsigned. Signed-off-by: Alexander Graf --- - linux-user/syscall.c | 9 +++++++-- - 1 file changed, 7 insertions(+), 2 deletions(-) + linux-user/syscall.c | 9 +++++++-- + 1 files changed, 7 insertions(+), 2 deletions(-) diff --git a/linux-user/syscall.c b/linux-user/syscall.c index ab30b58..4136873 100644 diff --git a/0037-virtfs-proxy-helper-Provide-__u64-f.patch b/0037-virtfs-proxy-helper-Provide-__u64-f.patch index 8c0d05a5..72fe2aed 100644 --- a/0037-virtfs-proxy-helper-Provide-__u64-f.patch +++ b/0037-virtfs-proxy-helper-Provide-__u64-f.patch @@ -8,8 +8,8 @@ Fixes the build on SLE 11 SP2. [AF: Extend to ppc64] --- - fsdev/virtfs-proxy-helper.c | 7 +++++++ - 1 file changed, 7 insertions(+) + fsdev/virtfs-proxy-helper.c | 7 +++++++ + 1 files changed, 7 insertions(+), 0 deletions(-) diff --git a/fsdev/virtfs-proxy-helper.c b/fsdev/virtfs-proxy-helper.c index 713a7b2..b8da77d 100644 diff --git a/build_and_copy_vgabios_bin.patch b/build_and_copy_vgabios_bin.patch new file mode 100644 index 00000000..dd3b901e --- /dev/null +++ b/build_and_copy_vgabios_bin.patch @@ -0,0 +1,17 @@ +--- + roms/Makefile | 2 ++ + 1 file changed, 2 insertions(+) + +Index: b/roms/Makefile +=================================================================== +--- a/roms/Makefile ++++ b/roms/Makefile +@@ -50,6 +50,8 @@ seavgabios-%: config.vga.% + cp seabios/out/vgabios.bin ../pc-bios/vgabios-$*.bin + + lgplvgabios: $(patsubst %,lgplvgabios-%,$(vgabios_variants)) ++ make -C vgabios vgabios.bin ++ cp vgabios/VGABIOS-lgpl-latest.bin ../pc-bios/vgabios.bin + + lgplvgabios-%: + make -C vgabios vgabios-$*.bin diff --git a/ipxe-build-Work-around-bug-in-gcc-4.8.patch b/ipxe-build-Work-around-bug-in-gcc-4.8.patch new file mode 100644 index 00000000..8b40973e --- /dev/null +++ b/ipxe-build-Work-around-bug-in-gcc-4.8.patch @@ -0,0 +1,55 @@ +From 238050dfd46e3c4a87329da1d48b4d8dde5af8a1 Mon Sep 17 00:00:00 2001 +From: Michael Brown +Date: Fri, 7 Jun 2013 13:46:27 +0100 +Subject: [PATCH] [build] Work around bug in gcc >= 4.8 + +gcc 4.8 and 4.9 fail to compile pxe_call.c with the error "bp cannot +be used in asm here". Other points in the codebase which use "ebp" in +the asm clobber list do not seem to be affected. + +Unfortunately gcc provides no way to specify %ebp as an output +register, so we cannot use this as a workaround. The only viable +solution is to explicitly push/pop %ebp within the asm itself. This +is ugly for two reasons: firstly, it may be unnecessary; secondly, it +may cause gcc to generate invalid %esp-relative addresses if the asm +happens to use memory operands. This specific block of asm uses no +memory operands and so will not generate invalid code. + +Reported-by: Daniel P. Berrange +Reported-by: Christian Hesse +Originally-fixed-by: Christian Hesse +Signed-off-by: Michael Brown +--- + roms/ipxe/src/arch/i386/interface/pxe/pxe_call.c | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +Index: b/roms/ipxe/src/arch/i386/interface/pxe/pxe_call.c +=================================================================== +--- a/roms/ipxe/src/arch/i386/interface/pxe/pxe_call.c ++++ b/roms/ipxe/src/arch/i386/interface/pxe/pxe_call.c +@@ -265,12 +265,14 @@ int pxe_start_nbp ( void ) { + DBG ( "Restarting NBP (%x)\n", jmp ); + + /* Far call to PXE NBP */ +- __asm__ __volatile__ ( REAL_CODE ( "movw %%cx, %%es\n\t" ++ __asm__ __volatile__ ( REAL_CODE ( "pushl %%ebp\n\t" /* gcc bug */ ++ "movw %%cx, %%es\n\t" + "pushw %%es\n\t" + "pushw %%di\n\t" + "sti\n\t" + "lcall $0, $0x7c00\n\t" +- "addw $4, %%sp\n\t" ) ++ "popl %%ebp\n\t" /* discard */ ++ "popl %%ebp\n\t" /* gcc bug */ ) + : "=a" ( rc ), "=b" ( discard_b ), + "=c" ( discard_c ), "=d" ( discard_d ), + "=D" ( discard_D ) +@@ -278,7 +280,7 @@ int pxe_start_nbp ( void ) { + "c" ( rm_cs ), + "d" ( virt_to_phys ( &pxenv ) ), + "D" ( __from_text16 ( &ppxe ) ) +- : "esi", "ebp", "memory" ); ++ : "esi", "memory" ); + + return rc; + } diff --git a/ipxe-zbin-Fix-size-used-for-memset-in-al.patch b/ipxe-zbin-Fix-size-used-for-memset-in-al.patch new file mode 100644 index 00000000..ee67d2b7 --- /dev/null +++ b/ipxe-zbin-Fix-size-used-for-memset-in-al.patch @@ -0,0 +1,41 @@ +From eb5a2ba5962579e514b377f5fdab7292be0fb2a7 Mon Sep 17 00:00:00 2001 +From: "Daniel P. Berrange" +Date: Tue, 5 Mar 2013 15:18:20 +0000 +Subject: [PATCH] [zbin] Fix size used for memset in alloc_output_file +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The output->buf field is a pointer, not an array, so sizeof() is not +applicable. We must use the allocated string length instead. + +Identified by gcc: + + util/zbin.c: In function ‘alloc_output_file’: + util/zbin.c:146:37: warning: argument to ‘sizeof’ in ‘memset’ call + is the same expression as the destination; did you mean to + dereference it? [-Wsizeof-pointer-memaccess] + memset ( output->buf, 0xff, sizeof ( output->buf ) ); + +Signed-off-by: Daniel P. Berrange +Signed-off-by: Michael Brown +--- + src/util/zbin.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/roms/ipxe/src/util/zbin.c b/roms/ipxe/src/util/zbin.c +index 0dabaf1..3b7cf95 100644 +--- a/roms/ipxe/src/util/zbin.c ++++ b/roms/ipxe/src/util/zbin.c +@@ -143,7 +143,7 @@ static int alloc_output_file ( size_t max_len, struct output_file *output ) { + max_len ); + return -1; + } +- memset ( output->buf, 0xff, sizeof ( output->buf ) ); ++ memset ( output->buf, 0xff, max_len ); + return 0; + } + +-- +1.7.7 + diff --git a/qemu.changes b/qemu.changes index 10c30ac4..11a61a1e 100644 --- a/qemu.changes +++ b/qemu.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Fri Sep 13 11:14:45 UTC 2013 - brogers@suse.com + +- Build x86 firmware from tarball source. The firmware components + produced are equivalent to the upstream provided binary blobs + currently being used. They are delivered in noarch subpackages as + follows (addresses bnc#830002): +* qemu-seabios v1.7.2.2 +* qemu-vgabios v0.6c +* qemu-sgabios v8 (svn rev 8) +* qemu-ipxe v1.0.0 + ------------------------------------------------------------------- Mon Aug 26 06:40:22 UTC 2013 - rob.verduijn@gmail.com diff --git a/qemu.spec b/qemu.spec index 6b58e5bb..3a5597f8 100644 --- a/qemu.spec +++ b/qemu.spec @@ -16,6 +16,13 @@ # +%ifarch %ix86 x86_64 +# choice of building all from source or using provided binary x86 blobs +%define build_x86_fw_from_source 1 +%else +%define build_x86_fw_from_source 0 +%endif + Name: qemu Url: http://www.qemu.org/ Summary: Universal CPU emulator @@ -64,6 +71,11 @@ Patch0036: 0036-linux-user-lseek-explicitly-cast-no.patch Patch0037: 0037-virtfs-proxy-helper-Provide-__u64-f.patch Patch0038: 0038-gdbstub-Fix-gdb_register_coprocesso.patch # Please do not add patches manually here, run update_git.sh. + +Patch1000: ipxe-build-Work-around-bug-in-gcc-4.8.patch +Patch1001: ipxe-zbin-Fix-size-used-for-memset-in-al.patch +Patch1002: build_and_copy_vgabios_bin.patch + # this is to make lint happy Source300: rpmlintrc Source302: bridge.conf @@ -77,6 +89,14 @@ BuildRequires: brlapi-devel %endif BuildRequires: curl-devel BuildRequires: cyrus-sasl-devel +%if %{build_x86_fw_from_source} +%if 0%{?suse_version} > 1110 +BuildRequires: iasl +%else +BuildRequires: pmtools +%endif +BuildRequires: dev86 +%endif BuildRequires: e2fsprogs-devel BuildRequires: fdupes BuildRequires: glib2-devel @@ -126,8 +146,14 @@ BuildRequires: spice-protocol-devel Requires: /usr/sbin/groupadd Requires: pwdutils Requires: timezone +Requires: qemu-ipxe +Requires: qemu-seabios +Requires: qemu-sgabios +Requires: qemu-vgabios Recommends: qemu-tools +%define firmware_files {acpi-dsdt.aml bios.bin q35-acpi-dsdt.aml sgabios.bin vgabios.bin vgabios-cirrus.bin vgabios-stdvga.bin vgabios-vmware.bin vgabios-qxl.bin optionrom/linuxboot.bin optionrom/multiboot.bin optionrom/kvmvapic.bin pxe-e1000.rom pxe-pcnet.rom pxe-ne2k_pci.rom pxe-rtl8139.rom pxe-eepro100.rom pxe-virtio.rom} + %description QEMU is an extremely well-performing CPU emulator that allows you to choose between simulating an entire system and running userspace @@ -150,6 +176,52 @@ as PC and PowerMac systems. This sub-package contains translations. %endif +%package seabios +Summary: x86 BIOS for QEMU +Group: System/Emulators/PC +Version: 1.7.2.2 +Release: 0 +BuildArch: noarch + +%description seabios +SeaBIOS is an open source implementation of a 16bit x86 BIOS. SeaBIOS +is the default BIOS for QEMU. + +%package vgabios +Summary: VGA BIOSes for QEMU +Group: System/Emulators/PC +Version: 0.6c +Release: 0 +BuildArch: noarch + +%description vgabios +VGABIOS provides the video ROM BIOSes for the following variants of VGA +emulated devices: Std VGA, QXL, Cirrus CLGD 5446 and VMware emulated +video card. + +%package sgabios +Summary: Serial Graphics Adapter BIOS for QEMU +Group: System/Emulators/PC +Version: 8 +Release: 0 +BuildArch: noarch + +%description sgabios +The Google Serial Graphics Adapter BIOS or SGABIOS provides a means for legacy +x86 software to communicate with an attached serial console as if a video card +were attached. + +%package ipxe +Summary: PXE ROMs for QEMU NICs +Group: System/Emulators/PC +Version: 1.0.0 +Release: 0 +BuildArch: noarch + +%description ipxe +Preboot Execution Environment (PXE) ROM support for various emulated network +adapters available with QEMU. + %package tools Summary: Universal CPU emulator -- Tools Group: System/Emulators/PC @@ -220,6 +292,18 @@ This sub-package contains the guest agent. %patch0037 -p1 %patch0038 -p1 +%patch1000 -p1 +%patch1001 -p1 +%patch1002 -p1 + +%if %{build_x86_fw_from_source} +# as a safeguard, delete the firmware files that we intend to build +for i in %firmware_files +do + rm -f pc-bios/$i +done +%endif + %build ./configure --prefix=%_prefix --sysconfdir=%_sysconfdir \ --libexecdir=%_libexecdir \ @@ -265,6 +349,15 @@ This sub-package contains the guest agent. make %{?_smp_mflags} V=1 +# Firmware +%if %{build_x86_fw_from_source} +make -C roms bios +make -C roms lgplvgabios +make -C roms pxerom +make -C roms/sgabios +cp roms/sgabios/sgabios.bin pc-bios/sgabios.bin +%endif + %install make install DESTDIR=$RPM_BUILD_ROOT rm -fr $RPM_BUILD_ROOT/%_datadir/doc @@ -297,7 +390,23 @@ rm -rf ${RPM_BUILD_ROOT} %doc COPYING COPYING.LIB Changelog README VERSION qemu-doc.html qemu-tech.html %_bindir/qemu-system-* %doc %_mandir/man1/qemu.1.gz +%dir %_datadir/%name %_datadir/%name +%exclude %_datadir/%name/bios.bin +%exclude %_datadir/%name/acpi-dsdt.aml +%exclude %_datadir/%name/q35-acpi-dsdt.aml +%exclude %_datadir/%name/vgabios.bin +%exclude %_datadir/%name/vgabios-cirrus.bin +%exclude %_datadir/%name/vgabios-qxl.bin +%exclude %_datadir/%name/vgabios-stdvga.bin +%exclude %_datadir/%name/vgabios-vmware.bin +%exclude %_datadir/%name/sgabios.bin +%exclude %_datadir/%name/pxe-e1000.rom +%exclude %_datadir/%name/pxe-eepro100.rom +%exclude %_datadir/%name/pxe-pcnet.rom +%exclude %_datadir/%name/pxe-ne2k_pci.rom +%exclude %_datadir/%name/pxe-rtl8139.rom +%exclude %_datadir/%name/pxe-virtio.rom %dir %_sysconfdir/%name %config %_sysconfdir/%name/target-x86_64.conf @@ -306,6 +415,33 @@ rm -rf ${RPM_BUILD_ROOT} %defattr(-, root, root) %endif +%files seabios +%defattr(-, root, root) +%_datadir/%name/bios.bin +%_datadir/%name/acpi-dsdt.aml +%_datadir/%name/q35-acpi-dsdt.aml + +%files vgabios +%defattr(-, root, root) +%_datadir/%name/vgabios.bin +%_datadir/%name/vgabios-cirrus.bin +%_datadir/%name/vgabios-qxl.bin +%_datadir/%name/vgabios-stdvga.bin +%_datadir/%name/vgabios-vmware.bin + +%files sgabios +%defattr(-, root, root) +%_datadir/%name/sgabios.bin + +%files ipxe +%defattr(-, root, root) +%_datadir/%name/pxe-e1000.rom +%_datadir/%name/pxe-eepro100.rom +%_datadir/%name/pxe-pcnet.rom +%_datadir/%name/pxe-ne2k_pci.rom +%_datadir/%name/pxe-rtl8139.rom +%_datadir/%name/pxe-virtio.rom + %files tools %defattr(-, root, root) %doc %_mandir/man1/qemu-img.1.gz diff --git a/qemu.spec.in b/qemu.spec.in index edee7eea..1b3b3f9a 100644 --- a/qemu.spec.in +++ b/qemu.spec.in @@ -16,6 +16,13 @@ # +%ifarch %ix86 x86_64 +# choice of building all from source or using provided binary x86 blobs +%define build_x86_fw_from_source 1 +%else +%define build_x86_fw_from_source 0 +%endif + Name: qemu Url: http://www.qemu.org/ Summary: Universal CPU emulator @@ -27,6 +34,11 @@ Source: %name-1.6.0.tar.bz2 # This patch queue is auto-generated from https://github.com/openSUSE/qemu PATCH_FILES # Please do not add patches manually here, run update_git.sh. + +Patch1000: ipxe-build-Work-around-bug-in-gcc-4.8.patch +Patch1001: ipxe-zbin-Fix-size-used-for-memset-in-al.patch +Patch1002: build_and_copy_vgabios_bin.patch + # this is to make lint happy Source300: rpmlintrc Source302: bridge.conf @@ -40,6 +52,14 @@ BuildRequires: brlapi-devel %endif BuildRequires: curl-devel BuildRequires: cyrus-sasl-devel +%if %{build_x86_fw_from_source} +%if 0%{?suse_version} > 1110 +BuildRequires: iasl +%else +BuildRequires: pmtools +%endif +BuildRequires: dev86 +%endif BuildRequires: e2fsprogs-devel BuildRequires: fdupes BuildRequires: glib2-devel @@ -89,8 +109,14 @@ BuildRequires: spice-protocol-devel Requires: /usr/sbin/groupadd Requires: pwdutils Requires: timezone +Requires: qemu-ipxe +Requires: qemu-seabios +Requires: qemu-sgabios +Requires: qemu-vgabios Recommends: qemu-tools +%define firmware_files {acpi-dsdt.aml bios.bin q35-acpi-dsdt.aml sgabios.bin vgabios.bin vgabios-cirrus.bin vgabios-stdvga.bin vgabios-vmware.bin vgabios-qxl.bin optionrom/linuxboot.bin optionrom/multiboot.bin optionrom/kvmvapic.bin pxe-e1000.rom pxe-pcnet.rom pxe-ne2k_pci.rom pxe-rtl8139.rom pxe-eepro100.rom pxe-virtio.rom} + %description QEMU is an extremely well-performing CPU emulator that allows you to choose between simulating an entire system and running userspace @@ -113,6 +139,52 @@ as PC and PowerMac systems. This sub-package contains translations. %endif +%package seabios +Summary: x86 BIOS for QEMU +Group: System/Emulators/PC +Version: 1.7.2.2 +Release: 0 +BuildArch: noarch + +%description seabios +SeaBIOS is an open source implementation of a 16bit x86 BIOS. SeaBIOS +is the default BIOS for QEMU. + +%package vgabios +Summary: VGA BIOSes for QEMU +Group: System/Emulators/PC +Version: 0.6c +Release: 0 +BuildArch: noarch + +%description vgabios +VGABIOS provides the video ROM BIOSes for the following variants of VGA +emulated devices: Std VGA, QXL, Cirrus CLGD 5446 and VMware emulated +video card. + +%package sgabios +Summary: Serial Graphics Adapter BIOS for QEMU +Group: System/Emulators/PC +Version: 8 +Release: 0 +BuildArch: noarch + +%description sgabios +The Google Serial Graphics Adapter BIOS or SGABIOS provides a means for legacy +x86 software to communicate with an attached serial console as if a video card +were attached. + +%package ipxe +Summary: PXE ROMs for QEMU NICs +Group: System/Emulators/PC +Version: 1.0.0 +Release: 0 +BuildArch: noarch + +%description ipxe +Preboot Execution Environment (PXE) ROM support for various emulated network +adapters available with QEMU. + %package tools Summary: Universal CPU emulator -- Tools Group: System/Emulators/PC @@ -146,6 +218,18 @@ This sub-package contains the guest agent. %setup -q #-n %name-1.6.0-rc3 PATCH_EXEC +%patch1000 -p1 +%patch1001 -p1 +%patch1002 -p1 + +%if %{build_x86_fw_from_source} +# as a safeguard, delete the firmware files that we intend to build +for i in %firmware_files +do + rm -f pc-bios/$i +done +%endif + %build ./configure --prefix=%_prefix --sysconfdir=%_sysconfdir \ --libexecdir=%_libexecdir \ @@ -191,6 +275,15 @@ PATCH_EXEC make %{?_smp_mflags} V=1 +# Firmware +%if %{build_x86_fw_from_source} +make -C roms bios +make -C roms lgplvgabios +make -C roms pxerom +make -C roms/sgabios +cp roms/sgabios/sgabios.bin pc-bios/sgabios.bin +%endif + %install make install DESTDIR=$RPM_BUILD_ROOT rm -fr $RPM_BUILD_ROOT/%_datadir/doc @@ -223,7 +316,23 @@ rm -rf ${RPM_BUILD_ROOT} %doc COPYING COPYING.LIB Changelog README VERSION qemu-doc.html qemu-tech.html %_bindir/qemu-system-* %doc %_mandir/man1/qemu.1.gz +%dir %_datadir/%name %_datadir/%name +%exclude %_datadir/%name/bios.bin +%exclude %_datadir/%name/acpi-dsdt.aml +%exclude %_datadir/%name/q35-acpi-dsdt.aml +%exclude %_datadir/%name/vgabios.bin +%exclude %_datadir/%name/vgabios-cirrus.bin +%exclude %_datadir/%name/vgabios-qxl.bin +%exclude %_datadir/%name/vgabios-stdvga.bin +%exclude %_datadir/%name/vgabios-vmware.bin +%exclude %_datadir/%name/sgabios.bin +%exclude %_datadir/%name/pxe-e1000.rom +%exclude %_datadir/%name/pxe-eepro100.rom +%exclude %_datadir/%name/pxe-pcnet.rom +%exclude %_datadir/%name/pxe-ne2k_pci.rom +%exclude %_datadir/%name/pxe-rtl8139.rom +%exclude %_datadir/%name/pxe-virtio.rom %dir %_sysconfdir/%name %config %_sysconfdir/%name/target-x86_64.conf @@ -232,6 +341,33 @@ rm -rf ${RPM_BUILD_ROOT} %defattr(-, root, root) %endif +%files seabios +%defattr(-, root, root) +%_datadir/%name/bios.bin +%_datadir/%name/acpi-dsdt.aml +%_datadir/%name/q35-acpi-dsdt.aml + +%files vgabios +%defattr(-, root, root) +%_datadir/%name/vgabios.bin +%_datadir/%name/vgabios-cirrus.bin +%_datadir/%name/vgabios-qxl.bin +%_datadir/%name/vgabios-stdvga.bin +%_datadir/%name/vgabios-vmware.bin + +%files sgabios +%defattr(-, root, root) +%_datadir/%name/sgabios.bin + +%files ipxe +%defattr(-, root, root) +%_datadir/%name/pxe-e1000.rom +%_datadir/%name/pxe-eepro100.rom +%_datadir/%name/pxe-pcnet.rom +%_datadir/%name/pxe-ne2k_pci.rom +%_datadir/%name/pxe-rtl8139.rom +%_datadir/%name/pxe-virtio.rom + %files tools %defattr(-, root, root) %doc %_mandir/man1/qemu-img.1.gz