Accepting request 487699 from home:bfrogers:branches:Virtualization

Update to rc4 of v2.9.0. Also includes a few other fixes, and a number of tweaks to the spec files. I'd be happy to answer any questions about all those spec file changes, I believe they were all in the direction of a more correct and maintainable spec file. Since this is still in rc phase, let's keep it in devel project. Final release should appear in time for Beta2 of SLE12SP3. Delta from previous: Added Alex's patch for keyboard empty event.

OBS-URL: https://build.opensuse.org/request/show/487699
OBS-URL: https://build.opensuse.org/package/show/Virtualization/qemu?expand=0&rev=334
This commit is contained in:
Andreas Färber 2017-04-12 19:10:15 +00:00 committed by Git OBS Bridge
parent ee573b94ab
commit 724a14a256
66 changed files with 1216 additions and 882 deletions

View File

@ -1,4 +1,4 @@
From 9a439be9ee06d6d254e5350551e7159a31a90aa4 Mon Sep 17 00:00:00 2001
From 82c6cbb1f23954476a1bfc5f7d2e4601daeab35b Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Mon, 21 Nov 2011 23:50:36 +0100
Subject: [PATCH] XXX dont dump core on sigabort
@ -8,7 +8,7 @@ Subject: [PATCH] XXX dont dump core on sigabort
1 file changed, 6 insertions(+)
diff --git a/linux-user/signal.c b/linux-user/signal.c
index a67db04..a11728f 100644
index a67db04e1a..a11728f6e0 100644
--- a/linux-user/signal.c
+++ b/linux-user/signal.c
@@ -560,6 +560,10 @@ static void QEMU_NORETURN dump_core_and_abort(int target_sig)

View File

@ -1,4 +1,4 @@
From 5805a02046a5e706406c29b7e595cb5aa54b4a2c Mon Sep 17 00:00:00 2001
From fdfe99fea22a42069fbcab6146568e017e8b5b0c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20F=C3=A4rber?= <afaerber@suse.de>
Date: Wed, 10 Aug 2016 19:00:24 +0200
Subject: [PATCH] qemu-binfmt-conf: Modify default path
@ -14,7 +14,7 @@ Signed-off-by: Andreas Färber <afaerber@suse.de>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/scripts/qemu-binfmt-conf.sh b/scripts/qemu-binfmt-conf.sh
index 0f1aa63..9fcd95a 100755
index 0f1aa63872..9fcd95a435 100755
--- a/scripts/qemu-binfmt-conf.sh
+++ b/scripts/qemu-binfmt-conf.sh
@@ -264,7 +264,7 @@ BINFMT_SET=qemu_register_interpreter

View File

@ -1,4 +1,4 @@
From 0d14edc19f2112a2d61f835c9664c388cbf14246 Mon Sep 17 00:00:00 2001
From ee895d40c6978168921fb4306e60c0db21e801da Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Tue, 14 Apr 2009 16:20:50 +0200
Subject: [PATCH] qemu-cvs-alsa_bitfield
@ -13,7 +13,7 @@ Signed-off-by: Ulrich Hecht <uli@suse.de>
2 files changed, 24 insertions(+)
diff --git a/include/exec/user/thunk.h b/include/exec/user/thunk.h
index f19ef4b..b2659e0 100644
index f19ef4b230..b2659e0def 100644
--- a/include/exec/user/thunk.h
+++ b/include/exec/user/thunk.h
@@ -37,6 +37,7 @@ typedef enum argtype {
@ -41,7 +41,7 @@ index f19ef4b..b2659e0 100644
case TYPE_LONGLONG:
case TYPE_ULONGLONG:
diff --git a/thunk.c b/thunk.c
index 2dac366..0eb7286 100644
index 2dac36666d..0eb72861fe 100644
--- a/thunk.c
+++ b/thunk.c
@@ -37,6 +37,7 @@ static inline const argtype *thunk_type_next(const argtype *type_ptr)

View File

@ -1,4 +1,4 @@
From 2764219a17c0d494f2dd66e7b4c1c5b3dd75e5be Mon Sep 17 00:00:00 2001
From 0b2db023e1c9dba46cc86234b5a232f84b699519 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Tue, 14 Apr 2009 16:23:27 +0200
Subject: [PATCH] qemu-cvs-alsa_ioctl
@ -27,7 +27,7 @@ Signed-off-by: Bruce Rogers <brogers@suse.com>
create mode 100644 linux-user/syscall_types_alsa.h
diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h
index e6997ff..ea335de 100644
index e6997ff230..ea335de680 100644
--- a/linux-user/ioctls.h
+++ b/linux-user/ioctls.h
@@ -359,6 +359,11 @@
@ -44,7 +44,7 @@ index e6997ff..ea335de 100644
IOCTL(LOOP_SET_STATUS, IOC_W, MK_PTR(MK_STRUCT(STRUCT_loop_info)))
diff --git a/linux-user/ioctls_alsa.h b/linux-user/ioctls_alsa.h
new file mode 100644
index 0000000..c2aa542
index 0000000000..c2aa542c3b
--- /dev/null
+++ b/linux-user/ioctls_alsa.h
@@ -0,0 +1,467 @@
@ -517,7 +517,7 @@ index 0000000..c2aa542
+IOCTL( SND_SSCAPE_LOAD_MCODE , IOC_W, MK_PTR(MK_STRUCT(STRUCT_sscape_microcode)) )
diff --git a/linux-user/ioctls_alsa_structs.h b/linux-user/ioctls_alsa_structs.h
new file mode 100644
index 0000000..e09a30d
index 0000000000..e09a30defb
--- /dev/null
+++ b/linux-user/ioctls_alsa_structs.h
@@ -0,0 +1,1740 @@
@ -2262,7 +2262,7 @@ index 0000000..e09a30d
+ unsigned char *code;
+};
diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
index 40c5027..a34551d 100644
index 40c5027e93..a34551debc 100644
--- a/linux-user/syscall_defs.h
+++ b/linux-user/syscall_defs.h
@@ -2802,6 +2802,8 @@ struct target_ucred {
@ -2275,7 +2275,7 @@ index 40c5027..a34551d 100644
#define TARGET_SIGEV_MAX_SIZE 64
diff --git a/linux-user/syscall_types.h b/linux-user/syscall_types.h
index 24631b0..80ac53a 100644
index 24631b09be..80ac53a8ed 100644
--- a/linux-user/syscall_types.h
+++ b/linux-user/syscall_types.h
@@ -89,6 +89,11 @@ STRUCT(buffmem_desc,
@ -2292,7 +2292,7 @@ index 24631b0..80ac53a 100644
TYPE_INT, /* lo_number */
diff --git a/linux-user/syscall_types_alsa.h b/linux-user/syscall_types_alsa.h
new file mode 100644
index 0000000..fa7a18d
index 0000000000..fa7a18d755
--- /dev/null
+++ b/linux-user/syscall_types_alsa.h
@@ -0,0 +1,1330 @@

View File

@ -1,4 +1,4 @@
From 0262c673779795a2284e961df4c174578385dbe9 Mon Sep 17 00:00:00 2001
From d7bdbb6c509224e3d281789c8c70a30f6755cc82 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Tue, 14 Apr 2009 16:24:15 +0200
Subject: [PATCH] qemu-cvs-alsa_mmap
@ -12,7 +12,7 @@ Signed-off-by: Ulrich Hecht <uli@suse.de>
1 file changed, 14 insertions(+)
diff --git a/linux-user/mmap.c b/linux-user/mmap.c
index 4888f53..a3fcea2 100644
index 4888f53139..a3fcea263f 100644
--- a/linux-user/mmap.c
+++ b/linux-user/mmap.c
@@ -357,6 +357,9 @@ abi_ulong mmap_find_vma(abi_ulong start, abi_ulong size)

View File

@ -1,4 +1,4 @@
From 269c7c470e1f6202ed68556ac10c743b5d4e1e8c Mon Sep 17 00:00:00 2001
From 2771136c1ace89dd22934fbb7ba26323aad7ecfd Mon Sep 17 00:00:00 2001
From: Ulrich Hecht <uli@suse.de>
Date: Tue, 14 Apr 2009 16:25:41 +0200
Subject: [PATCH] qemu-cvs-gettimeofday
@ -9,7 +9,7 @@ No clue what this is for.
1 file changed, 2 insertions(+)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index cec8428..03c3576 100644
index cec8428589..03c3576dab 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -8914,6 +8914,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,

View File

@ -1,4 +1,4 @@
From c3db48bec691ea5dea3d7d08208964ae7c5beb10 Mon Sep 17 00:00:00 2001
From 053f8332b7efff944f2ef44e09cb895216a1a194 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Tue, 14 Apr 2009 16:26:33 +0200
Subject: [PATCH] qemu-cvs-ioctl_debug
@ -12,7 +12,7 @@ Signed-off-by: Ulrich Hecht <uli@suse.de>
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 03c3576..891ee1c 100644
index 03c3576dab..891ee1c6ea 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -5611,7 +5611,12 @@ static abi_long do_ioctl(int fd, int cmd, abi_long arg)

View File

@ -1,4 +1,4 @@
From 8744f4873ee2eda65d9914c2c5f83bb094220808 Mon Sep 17 00:00:00 2001
From 551aca5f7e7a604d202dab434140804e5d6ac6eb Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Tue, 14 Apr 2009 16:27:36 +0200
Subject: [PATCH] qemu-cvs-ioctl_nodirection
@ -15,7 +15,7 @@ Signed-off-by: Ulrich Hecht <uli@suse.de>
1 file changed, 6 insertions(+)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 891ee1c..2f82a7d 100644
index 891ee1c6ea..2f82a7d1a6 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -5648,6 +5648,11 @@ static abi_long do_ioctl(int fd, int cmd, abi_long arg)

View File

@ -1,4 +1,4 @@
From 7cb4f5e2f3a0f9dc7b988dda01fb73aaf306b476 Mon Sep 17 00:00:00 2001
From 87ff6f499e7dbfa9f059703bcebf4a09d1c65578 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Fri, 30 Sep 2011 19:40:36 +0200
Subject: [PATCH] linux-user: add binfmt wrapper for argv[0] handling
@ -37,7 +37,7 @@ Signed-off-by: Andreas Färber <afaerber@suse.de>
create mode 100644 linux-user/binfmt.c
diff --git a/Makefile.target b/Makefile.target
index 7df2b8c..85ae084 100644
index 7df2b8c149..85ae084545 100644
--- a/Makefile.target
+++ b/Makefile.target
@@ -36,6 +36,10 @@ endif
@ -83,7 +83,7 @@ index 7df2b8c..85ae084 100644
$(call quiet-command,rm -f $@ && $(SHELL) $(SRC_PATH)/scripts/feature_to_c.sh $@ $(TARGET_XML_FILES),"GEN","$(TARGET_DIR)$@")
diff --git a/linux-user/Makefile.objs b/linux-user/Makefile.objs
index 8c93058..607ca2d 100644
index 8c93058100..607ca2dc92 100644
--- a/linux-user/Makefile.objs
+++ b/linux-user/Makefile.objs
@@ -6,3 +6,5 @@ obj-$(TARGET_HAS_BFLT) += flatload.o
@ -94,7 +94,7 @@ index 8c93058..607ca2d 100644
+obj-binfmt-y = binfmt.o
diff --git a/linux-user/binfmt.c b/linux-user/binfmt.c
new file mode 100644
index 0000000..cd1f513
index 0000000000..cd1f513b33
--- /dev/null
+++ b/linux-user/binfmt.c
@@ -0,0 +1,42 @@

View File

@ -1,4 +1,4 @@
From ec63fe3f838d5c9937ff99aff30d2d18a3e24688 Mon Sep 17 00:00:00 2001
From e2b7bb58389b436d0c4627ff246abeab14cf02a2 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Fri, 6 Jan 2012 01:05:55 +0100
Subject: [PATCH] PPC: KVM: Disable mmu notifier check
@ -13,7 +13,7 @@ KVM guests work there, even if possibly racy in some odd circumstances.
1 file changed, 2 insertions(+)
diff --git a/exec.c b/exec.c
index e57a8a2..ab5f669 100644
index c97ef4a8da..b47b3f9096 100644
--- a/exec.c
+++ b/exec.c
@@ -1362,11 +1362,13 @@ static void *file_ram_alloc(RAMBlock *block,

View File

@ -1,4 +1,4 @@
From 5537031543a234dba1fdfe7b3b535b9860b2c7db Mon Sep 17 00:00:00 2001
From 08ad46a51cbf155d68047b4dad660687aff9996b Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Fri, 13 Jan 2012 17:05:41 +0100
Subject: [PATCH] linux-user: fix segfault deadlock
@ -26,7 +26,7 @@ Signed-off-by: Andreas Färber <afaerber@suse.de>
1 file changed, 4 insertions(+)
diff --git a/user-exec.c b/user-exec.c
index a8f95fa..c262653 100644
index a8f95fa1e1..c262653604 100644
--- a/user-exec.c
+++ b/user-exec.c
@@ -78,6 +78,10 @@ static inline int handle_cpu_signal(uintptr_t pc, unsigned long address,

View File

@ -1,4 +1,4 @@
From 5ab2bfcf900a3c7edaf643680c20004e5d6a8b88 Mon Sep 17 00:00:00 2001
From de4c78727b69b2aa7c2db3ff8cd50c8ae08c1dc5 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Thu, 2 Feb 2012 18:02:33 +0100
Subject: [PATCH] linux-user: binfmt: support host binaries
@ -12,7 +12,7 @@ Signed-off-by: Alexander Graf <agraf@suse.de>
1 file changed, 26 insertions(+)
diff --git a/linux-user/binfmt.c b/linux-user/binfmt.c
index cd1f513..458f136 100644
index cd1f513b33..458f136fb4 100644
--- a/linux-user/binfmt.c
+++ b/linux-user/binfmt.c
@@ -5,6 +5,9 @@

View File

@ -1,4 +1,4 @@
From 24f3dfda51d8aefb4dfa4324427e93c8151b952c Mon Sep 17 00:00:00 2001
From 41932af364763d6df4add286120a76a0744e9a70 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Mon, 23 Jul 2012 10:24:14 +0200
Subject: [PATCH] linux-user: Fake /proc/cpuinfo
@ -22,7 +22,7 @@ Signed-off-by: Andreas Färber <afaerber@suse.de>
1 file changed, 20 insertions(+)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 2f82a7d..37b49bd 100644
index 2f82a7d1a6..37b49bd406 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -7503,6 +7503,25 @@ static int open_self_stat(void *cpu_env, int fd)

View File

@ -1,4 +1,4 @@
From 95225537f8eb894d41321962740a0703b6fd5770 Mon Sep 17 00:00:00 2001
From fae8f01d48b0d07e07d230e0c775e1e8b385966b Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Tue, 21 Aug 2012 14:20:40 +0200
Subject: [PATCH] linux-user: XXX disable fiemap
@ -9,7 +9,7 @@ agraf: fiemap breaks in libarchive. Disable it for now.
1 file changed, 5 insertions(+)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 37b49bd..983475a 100644
index 37b49bd406..983475a0b9 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -5076,6 +5076,11 @@ static abi_long do_ioctl_fs_ioc_fiemap(const IOCTLEntry *ie, uint8_t *buf_temp,

View File

@ -1,4 +1,4 @@
From f79d37417fbd003ab5f0b8d35043fd05f80cf940 Mon Sep 17 00:00:00 2001
From 789139fbc94dee4839b29c511816c6e3398407b5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20F=C3=A4rber?= <afaerber@suse.de>
Date: Wed, 29 Aug 2012 18:42:56 +0200
Subject: [PATCH] slirp: -nooutgoing
@ -12,7 +12,7 @@ TBD (from SUSE Studio team)
4 files changed, 39 insertions(+)
diff --git a/qemu-options.hx b/qemu-options.hx
index 99af8ed..4712277 100644
index 99af8edf5f..4712277d7c 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -3215,6 +3215,16 @@ Store the QEMU process PID in @var{file}. It is useful if you launch QEMU
@ -33,7 +33,7 @@ index 99af8ed..4712277 100644
"-singlestep always run in singlestep mode\n", QEMU_ARCH_ALL)
STEXI
diff --git a/slirp/socket.c b/slirp/socket.c
index 8692772..5c89064 100644
index 86927722e1..5c89064e15 100644
--- a/slirp/socket.c
+++ b/slirp/socket.c
@@ -625,6 +625,8 @@ sorecvfrom(struct socket *so)
@ -59,7 +59,7 @@ index 8692772..5c89064 100644
ret = sendto(so->s, m->m_data, m->m_len, 0,
(struct sockaddr *)&addr, sockaddr_size(&addr));
diff --git a/slirp/tcp_subr.c b/slirp/tcp_subr.c
index ed16e18..b2c7a8c 100644
index ed16e1807f..b2c7a8cba0 100644
--- a/slirp/tcp_subr.c
+++ b/slirp/tcp_subr.c
@@ -391,6 +391,8 @@ tcp_sockclosed(struct tcpcb *tp)
@ -96,7 +96,7 @@ index ed16e18..b2c7a8c 100644
socket_set_fast_reuse(s);
opt = 1;
diff --git a/vl.c b/vl.c
index 0b4ed52..e0f2ec8 100644
index 0b4ed5241c..e0f2ec86a9 100644
--- a/vl.c
+++ b/vl.c
@@ -168,6 +168,7 @@ int smp_threads = 1;

View File

@ -1,4 +1,4 @@
From 2c5e7c494f9650874da430015a2a99c68efc28fb Mon Sep 17 00:00:00 2001
From e73fd05e787ed513b2a25629ba2f446c7769a406 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20F=C3=A4rber?= <afaerber@suse.de>
Date: Wed, 29 Aug 2012 20:06:01 +0200
Subject: [PATCH] vnc: password-file= and incoming-connections=
@ -9,7 +9,7 @@ TBD (from SUSE Studio team)
1 file changed, 55 insertions(+)
diff --git a/ui/vnc.c b/ui/vnc.c
index 821acdd..5e0189a 100644
index 349cfc9d86..486d2759e4 100644
--- a/ui/vnc.c
+++ b/ui/vnc.c
@@ -59,6 +59,8 @@ static const struct timeval VNC_REFRESH_LOSSY = { 2, 0 };
@ -21,7 +21,7 @@ index 821acdd..5e0189a 100644
static int vnc_cursor_define(VncState *vs);
static void vnc_release_modifiers(VncState *vs);
@@ -1124,6 +1126,7 @@ static void vnc_disconnect_start(VncState *vs)
@@ -1130,6 +1132,7 @@ static void vnc_disconnect_start(VncState *vs)
void vnc_disconnect_finish(VncState *vs)
{
int i;
@ -29,7 +29,7 @@ index 821acdd..5e0189a 100644
vnc_jobs_join(vs); /* Wait encoding jobs */
@@ -1172,6 +1175,13 @@ void vnc_disconnect_finish(VncState *vs)
@@ -1178,6 +1181,13 @@ void vnc_disconnect_finish(VncState *vs)
object_unref(OBJECT(vs->sioc));
vs->sioc = NULL;
g_free(vs);
@ -43,7 +43,7 @@ index 821acdd..5e0189a 100644
}
ssize_t vnc_client_io_error(VncState *vs, ssize_t ret, Error **errp)
@@ -3165,6 +3175,39 @@ static void vnc_display_print_local_addr(VncDisplay *vd)
@@ -3171,6 +3181,39 @@ static void vnc_display_print_local_addr(VncDisplay *vd)
qapi_free_SocketAddress(addr);
}
@ -83,7 +83,7 @@ index 821acdd..5e0189a 100644
static QemuOptsList qemu_vnc_opts = {
.name = "vnc",
.head = QTAILQ_HEAD_INITIALIZER(qemu_vnc_opts.head),
@@ -3196,6 +3239,9 @@ static QemuOptsList qemu_vnc_opts = {
@@ -3202,6 +3245,9 @@ static QemuOptsList qemu_vnc_opts = {
.name = "connections",
.type = QEMU_OPT_NUMBER,
},{
@ -93,7 +93,7 @@ index 821acdd..5e0189a 100644
.name = "to",
.type = QEMU_OPT_NUMBER,
},{
@@ -3208,6 +3254,9 @@ static QemuOptsList qemu_vnc_opts = {
@@ -3214,6 +3260,9 @@ static QemuOptsList qemu_vnc_opts = {
.name = "password",
.type = QEMU_OPT_BOOL,
},{
@ -103,7 +103,7 @@ index 821acdd..5e0189a 100644
.name = "reverse",
.type = QEMU_OPT_BOOL,
},{
@@ -3759,6 +3808,7 @@ void vnc_display_open(const char *id, Error **errp)
@@ -3766,6 +3815,7 @@ void vnc_display_open(const char *id, Error **errp)
const char *share, *device_id;
QemuConsole *con;
bool password = false;
@ -111,7 +111,7 @@ index 821acdd..5e0189a 100644
bool reverse = false;
const char *credid;
bool sasl = false;
@@ -3806,6 +3856,10 @@ void vnc_display_open(const char *id, Error **errp)
@@ -3809,6 +3859,10 @@ void vnc_display_open(const char *id, Error **errp)
goto fail;
}
}
@ -122,7 +122,7 @@ index 821acdd..5e0189a 100644
lock_key_sync = qemu_opt_get_bool(opts, "lock-key-sync", true);
key_delay_ms = qemu_opt_get_number(opts, "key-delay-ms", 1);
@@ -3894,6 +3948,7 @@ void vnc_display_open(const char *id, Error **errp)
@@ -3897,6 +3951,7 @@ void vnc_display_open(const char *id, Error **errp)
vd->share_policy = VNC_SHARE_POLICY_ALLOW_EXCLUSIVE;
}
vd->connections_limit = qemu_opt_get_number(opts, "connections", 32);

View File

@ -1,4 +1,4 @@
From 0e87373394b75fd3db927367b4b456d412f9f9c0 Mon Sep 17 00:00:00 2001
From 49263ce643d817546f7ee05969eca1795f748bb2 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Tue, 9 Oct 2012 09:06:49 +0200
Subject: [PATCH] linux-user: use target_ulong
@ -17,7 +17,7 @@ Signed-off-by: Alexander Graf <agraf@suse.de>
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/linux-user/qemu.h b/linux-user/qemu.h
index 4edd7d0..2520864 100644
index 4edd7d0c08..25208645e9 100644
--- a/linux-user/qemu.h
+++ b/linux-user/qemu.h
@@ -196,10 +196,10 @@ abi_long memcpy_to_target(abi_ulong dest, const void *src,
@ -36,7 +36,7 @@ index 4edd7d0..2520864 100644
extern THREAD CPUState *thread_cpu;
void cpu_loop(CPUArchState *env);
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 983475a..1472d72 100644
index 983475a0b9..1472d72f27 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -7710,10 +7710,10 @@ static target_timer_t get_timer_id(abi_long arg)

View File

@ -1,4 +1,4 @@
From d899092fe4f00c7f9fe922940a8244b4557c9729 Mon Sep 17 00:00:00 2001
From 77135d9465aa36c6701fddebde13bed0f94a3be4 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Wed, 5 Aug 2009 09:49:37 +0200
Subject: [PATCH] block: Add support for DictZip enabled gzip files
@ -47,7 +47,7 @@ Signed-off-by: Andreas Färber <afaerber@suse.de>
create mode 100644 block/dictzip.c
diff --git a/block/Makefile.objs b/block/Makefile.objs
index de96f8e..bab24da 100644
index de96f8ee80..bab24da2fb 100644
--- a/block/Makefile.objs
+++ b/block/Makefile.objs
@@ -21,6 +21,7 @@ block-obj-$(CONFIG_RBD) += rbd.o
@ -60,7 +60,7 @@ index de96f8e..bab24da 100644
block-obj-$(CONFIG_REPLICATION) += replication.o
diff --git a/block/dictzip.c b/block/dictzip.c
new file mode 100644
index 0000000..4b7e2db
index 0000000000..4b7e2db817
--- /dev/null
+++ b/block/dictzip.c
@@ -0,0 +1,580 @@

View File

@ -1,4 +1,4 @@
From db57917e50e35b24d8a281429436155725eb1da9 Mon Sep 17 00:00:00 2001
From b047b8fdd9bebe7d4b80f1c1f9b00d6b8403dc7b Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Wed, 5 Aug 2009 17:28:38 +0200
Subject: [PATCH] block: Add tar container format
@ -48,7 +48,7 @@ Signed-off-by: Andreas Färber <afaerber@suse.de>
create mode 100644 block/tar.c
diff --git a/block/Makefile.objs b/block/Makefile.objs
index bab24da..73c7b55 100644
index bab24da2fb..73c7b55871 100644
--- a/block/Makefile.objs
+++ b/block/Makefile.objs
@@ -22,6 +22,7 @@ block-obj-$(CONFIG_GLUSTERFS) += gluster.o
@ -61,7 +61,7 @@ index bab24da..73c7b55 100644
block-obj-$(CONFIG_REPLICATION) += replication.o
diff --git a/block/tar.c b/block/tar.c
new file mode 100644
index 0000000..508265e
index 0000000000..508265ed5e
--- /dev/null
+++ b/block/tar.c
@@ -0,0 +1,370 @@

View File

@ -1,4 +1,4 @@
From 1a949de28ecc6685d9b4e6090caf5f927dd1b6a5 Mon Sep 17 00:00:00 2001
From b3371af8655024f15d9f56cc2726aeab5931f419 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Wed, 12 Dec 2012 19:11:30 +0100
Subject: [PATCH] Legacy Patch kvm-qemu-preXX-dictzip3.patch
@ -8,7 +8,7 @@ Subject: [PATCH] Legacy Patch kvm-qemu-preXX-dictzip3.patch
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/block/tar.c b/block/tar.c
index 508265e..734082a 100644
index 508265ed5e..734082a011 100644
--- a/block/tar.c
+++ b/block/tar.c
@@ -73,7 +73,8 @@ static int str_ends(char *str, const char *end)

View File

@ -1,4 +1,4 @@
From b5506d1f37450b29113776120dfe0c17b7e264bc Mon Sep 17 00:00:00 2001
From f66f06c7e12e09fcaee258f6ca95b878d3fd4402 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Mon, 6 Jun 2011 06:53:52 +0200
Subject: [PATCH] console: add question-mark escape operator
@ -16,7 +16,7 @@ Signed-off-by: Alexander Graf <agraf@suse.de>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/ui/console.c b/ui/console.c
index 419b098..9688457 100644
index 419b098c11..9688457480 100644
--- a/ui/console.c
+++ b/ui/console.c
@@ -880,7 +880,7 @@ static void console_putchar(QemuConsole *s, int ch)

View File

@ -1,4 +1,4 @@
From a1893eb93c3e6a59108e3b2d6db315323b44bb39 Mon Sep 17 00:00:00 2001
From be14c29dd7ad4fdad5b19583d9264e26536aebd1 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Thu, 1 Apr 2010 17:36:23 +0200
Subject: [PATCH] Make char muxer more robust wrt small FIFOs
@ -25,7 +25,7 @@ This patch fixes input when using -nographic on s390 for me.
2 files changed, 16 insertions(+)
diff --git a/chardev/char-mux.c b/chardev/char-mux.c
index 5547a36..7b80dc8 100644
index 5547a36a0a..7b80dc8ad7 100644
--- a/chardev/char-mux.c
+++ b/chardev/char-mux.c
@@ -179,6 +179,15 @@ static void mux_chr_accept_input(Chardev *chr)
@ -56,7 +56,7 @@ index 5547a36..7b80dc8 100644
* set of muxes
*/
diff --git a/chardev/char-mux.h b/chardev/char-mux.h
index 9a2fffc..d5f419c 100644
index 9a2fffce91..d5f419c8a9 100644
--- a/chardev/char-mux.h
+++ b/chardev/char-mux.h
@@ -35,6 +35,9 @@ typedef struct MuxChardev {

View File

@ -1,4 +1,4 @@
From a69c5a8d473c9a59f3059279171781752b6cc968 Mon Sep 17 00:00:00 2001
From 0fbc227da772ac6f19bba6812311f2855a1d7a11 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Thu, 13 Dec 2012 14:29:22 +0100
Subject: [PATCH] linux-user: lseek: explicitly cast non-set offsets to signed
@ -16,7 +16,7 @@ Signed-off-by: Alexander Graf <agraf@suse.de>
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 1472d72..71d4f06 100644
index 1472d72f27..71d4f06bdb 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -8076,9 +8076,14 @@ abi_long do_syscall(void *cpu_env, int num, abi_ulong arg1,

View File

@ -1,4 +1,4 @@
From 9553c9a4140d8fe2140806cb082e19b225cdc88f Mon Sep 17 00:00:00 2001
From e1fd61d6c95957d1901059c8ce81c71c08a0e072 Mon Sep 17 00:00:00 2001
From: Dinar Valeev <k0da@opensuse.org>
Date: Wed, 2 Oct 2013 17:56:03 +0200
Subject: [PATCH] configure: Enable PIE for ppc and ppc64 hosts
@ -14,10 +14,10 @@ Signed-off-by: Andreas Färber <afaerber@suse.de>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure b/configure
index d1ce33b..64b31aa 100755
index be4d326ae0..3308560f78 100755
--- a/configure
+++ b/configure
@@ -1587,7 +1587,7 @@ fi
@@ -1600,7 +1600,7 @@ fi
if test "$pie" = ""; then
case "$cpu-$targetos" in

View File

@ -1,4 +1,4 @@
From ad45d67741788641e8be04db71d364c0f46b5d73 Mon Sep 17 00:00:00 2001
From a511e713d55d924531525a332170c10c12a53ec8 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Wed, 14 Jan 2015 01:32:11 +0100
Subject: [PATCH] AIO: Reduce number of threads for 32bit hosts
@ -21,7 +21,7 @@ Signed-off-by: Alexander Graf <agraf@suse.de>
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/util/thread-pool.c b/util/thread-pool.c
index 610646d..2e34e98 100644
index 610646d131..2e34e9846d 100644
--- a/util/thread-pool.c
+++ b/util/thread-pool.c
@@ -308,7 +308,12 @@ static void thread_pool_init_one(ThreadPool *pool, AioContext *ctx)

View File

@ -1,4 +1,4 @@
From 2a737b7666622c49e849172a57e66e9ffe33fe31 Mon Sep 17 00:00:00 2001
From 8c5d2cbc8d285a2f094383b61184385da29b2952 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Mon, 15 Jun 2015 17:36:32 +0200
Subject: [PATCH] dictzip: Fix on big endian systems
@ -21,7 +21,7 @@ Signed-off-by: Andreas Färber <afaerber@suse.de>
1 file changed, 28 insertions(+), 22 deletions(-)
diff --git a/block/dictzip.c b/block/dictzip.c
index 4b7e2db..3235337 100644
index 4b7e2db817..3235337164 100644
--- a/block/dictzip.c
+++ b/block/dictzip.c
@@ -156,6 +156,7 @@ static int dictzip_open(BlockDriverState *bs, QDict *options, int flags, Error *

View File

@ -1,4 +1,4 @@
From 2d8f077b0bc869de923029f7a789486091b6b00c Mon Sep 17 00:00:00 2001
From 057006621bae63e016910d0125366faa3792eaeb Mon Sep 17 00:00:00 2001
From: Bruce Rogers <brogers@suse.com>
Date: Wed, 9 Mar 2016 15:18:11 -0700
Subject: [PATCH] xen_disk: Add suse specific flush disable handling and map to
@ -17,7 +17,7 @@ Signed-off-by: Olaf Hering <olaf@aepfle.de>
1 file changed, 15 insertions(+)
diff --git a/hw/block/xen_disk.c b/hw/block/xen_disk.c
index 456a2d5..94e755d 100644
index 456a2d5694..94e755d3e8 100644
--- a/hw/block/xen_disk.c
+++ b/hw/block/xen_disk.c
@@ -111,6 +111,7 @@ struct XenBlkDev {

View File

@ -1,4 +1,4 @@
From 582bf7659533dde0ba3274bd5fbc239dcb2341af Mon Sep 17 00:00:00 2001
From 24a2a58f20802a36f06bd2e74339714b4f1831fb Mon Sep 17 00:00:00 2001
From: Bruce Rogers <brogers@suse.com>
Date: Tue, 2 Aug 2016 11:36:02 -0600
Subject: [PATCH] qemu-bridge-helper: reduce security profile
@ -19,7 +19,7 @@ Signed-off-by: Andreas Färber <afaerber@suse.de>
1 file changed, 24 insertions(+), 3 deletions(-)
diff --git a/qemu-bridge-helper.c b/qemu-bridge-helper.c
index 5396fbf..f3710b8 100644
index 5396fbfbb6..f3710b80a3 100644
--- a/qemu-bridge-helper.c
+++ b/qemu-bridge-helper.c
@@ -110,7 +110,12 @@ static int parse_acl_file(const char *filename, ACLList *acl_list)

View File

@ -1,4 +1,4 @@
From ef8a949c37e62b108c00b028f2e24652cf4a1391 Mon Sep 17 00:00:00 2001
From 2ba93a896d205d50e70dbf548ed7716b3b7c598d Mon Sep 17 00:00:00 2001
From: Andreas Schwab <schwab@suse.de>
Date: Fri, 12 Aug 2016 18:20:49 +0200
Subject: [PATCH] qemu-binfmt-conf: use qemu-ARCH-binfmt
@ -13,7 +13,7 @@ Signed-off-by: Andreas Färber <afaerber@suse.de>
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/scripts/qemu-binfmt-conf.sh b/scripts/qemu-binfmt-conf.sh
index 9fcd95a..f14a6ef 100755
index 9fcd95a435..f14a6ef37b 100755
--- a/scripts/qemu-binfmt-conf.sh
+++ b/scripts/qemu-binfmt-conf.sh
@@ -206,7 +206,7 @@ qemu_check_systemd() {

View File

@ -1,4 +1,4 @@
From b1730d9bde196e25b803bc3d5eab4eff946b0afe Mon Sep 17 00:00:00 2001
From 7d69d701785cfae12d0151836062e5a2876978a0 Mon Sep 17 00:00:00 2001
From: markkp <mpost@suse.com>
Date: Thu, 11 Aug 2016 16:28:39 -0400
Subject: [PATCH] configure: Fix detection of seccomp on s390x
@ -13,10 +13,10 @@ Signed-off-by: Andreas Färber <afaerber@suse.de>
1 file changed, 3 insertions(+)
diff --git a/configure b/configure
index 64b31aa..866cd15 100755
index 3308560f78..cb7589a8e7 100755
--- a/configure
+++ b/configure
@@ -1948,6 +1948,9 @@ if test "$seccomp" != "no" ; then
@@ -1961,6 +1961,9 @@ if test "$seccomp" != "no" ; then
ppc|ppc64)
libseccomp_minver="2.3.0"
;;

View File

@ -1,4 +1,4 @@
From acf69d83c150761a8016e2f68a642b781808a6c6 Mon Sep 17 00:00:00 2001
From b2984b260fcfb17f1552677de75609c149bda521 Mon Sep 17 00:00:00 2001
From: Andreas Schwab <schwab@linux-m68k.org>
Date: Thu, 8 Sep 2016 11:21:05 +0200
Subject: [PATCH] linux-user: properly test for infinite timeout in poll (#8)
@ -16,7 +16,7 @@ Signed-off-by: Andreas Schwab <schwab@suse.de>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 71d4f06..78f0ea4 100644
index 71d4f06bdb..78f0ea4c58 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -10204,7 +10204,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_ulong arg1,

View File

@ -1,4 +1,4 @@
From 4503b8396f04c12152cb1249a4d4254af8b39fd5 Mon Sep 17 00:00:00 2001
From d7fe454d33bbf1c7b37715677de9071eddb7daa6 Mon Sep 17 00:00:00 2001
From: Andreas Schwab <schwab@suse.de>
Date: Wed, 28 Sep 2016 16:36:40 +0200
Subject: [PATCH] linux-user: remove all traces of qemu from /proc/self/cmdline
@ -17,7 +17,7 @@ Signed-off-by: Andreas Färber <afaerber@suse.de>
1 file changed, 7 insertions(+), 40 deletions(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 78f0ea4..1e56583 100644
index 78f0ea4c58..1e56583d63 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -7374,52 +7374,19 @@ int host_to_target_waitstatus(int status)

View File

@ -1,4 +1,4 @@
From af6206af2b2f64af4bc0cb371387ec3bfb9db51f Mon Sep 17 00:00:00 2001
From d6c8e580b22d96a84b4239c197fff42bb74a8cf8 Mon Sep 17 00:00:00 2001
From: Bruce Rogers <brogers@suse.com>
Date: Sat, 19 Nov 2016 08:06:30 -0700
Subject: [PATCH] roms/Makefile: pass a packaging timestamp to subpackages with
@ -20,7 +20,7 @@ Signed-off-by: Bruce Rogers <brogers@suse.com>
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/roms/Makefile b/roms/Makefile
index b5e5a69..89d69eb 100644
index b5e5a69e91..89d69eb350 100644
--- a/roms/Makefile
+++ b/roms/Makefile
@@ -52,6 +52,12 @@ SEABIOS_EXTRAVERSION="-prebuilt.qemu-project.org"

View File

@ -1,4 +1,4 @@
From 78ee8131d8c9e60b92f4799d8732bd47f6ed2d18 Mon Sep 17 00:00:00 2001
From 09045d68d919c0cabd36e0313b6d83ed57d328b3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20F=C3=A4rber?= <afaerber@suse.de>
Date: Sun, 15 Jan 2012 19:53:49 +0100
Subject: [PATCH] Raise soft address space limit to hard limit
@ -17,7 +17,7 @@ Signed-off-by: Bruce Rogers <brogers@suse.com>
1 file changed, 12 insertions(+)
diff --git a/vl.c b/vl.c
index e0f2ec8..caad3f9 100644
index e0f2ec86a9..caad3f93b3 100644
--- a/vl.c
+++ b/vl.c
@@ -26,6 +26,7 @@

View File

@ -1,4 +1,4 @@
From 60a200a500b0e3875cae15343e5ccac88ad07c7d Mon Sep 17 00:00:00 2001
From 82f178c9113e267811a081aa958fb9718cc9bf2c Mon Sep 17 00:00:00 2001
From: Bruce Rogers <brogers@suse.com>
Date: Fri, 17 May 2013 16:49:58 -0600
Subject: [PATCH] increase x86_64 physical bits to 42
@ -19,10 +19,10 @@ Signed-off-by: Andreas Färber <afaerber@suse.de>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/target/i386/cpu.h b/target/i386/cpu.h
index 07401ad..64545b2 100644
index c4602ca80d..81c02c5a3b 100644
--- a/target/i386/cpu.h
+++ b/target/i386/cpu.h
@@ -1486,7 +1486,7 @@ uint64_t cpu_get_tsc(CPUX86State *env);
@@ -1488,7 +1488,7 @@ uint64_t cpu_get_tsc(CPUX86State *env);
/* XXX: This value should match the one returned by CPUID
* and in exec.c */
# if defined(TARGET_X86_64)

View File

@ -1,4 +1,4 @@
From 5732f064b36dc13cf47bc25e2dd1d96e9e68e5ff Mon Sep 17 00:00:00 2001
From c413dbffc09cf5383e64d4829ff7c94a37e89739 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20F=C3=A4rber?= <afaerber@suse.de>
Date: Wed, 12 Jun 2013 19:26:37 +0200
Subject: [PATCH] vga: Raise VRAM to 16 MiB for pc-0.15 and below
@ -25,7 +25,7 @@ Signed-off-by: Bruce Rogers <brogers@suse.com>
1 file changed, 26 insertions(+), 1 deletion(-)
diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
index 9f102aa..1c09005 100644
index 9f102aa388..1c09005293 100644
--- a/hw/i386/pc_piix.c
+++ b/hw/i386/pc_piix.c
@@ -779,7 +779,32 @@ DEFINE_I440FX_MACHINE(v1_0, "pc-1.0", pc_compat_1_2,

View File

@ -1,4 +1,4 @@
From 27917a0843c1130a9caeb15e43fabf7c728e1f21 Mon Sep 17 00:00:00 2001
From 740d7f465e36577043b568971faaefa511474524 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20F=C3=A4rber?= <afaerber@suse.de>
Date: Wed, 31 Jul 2013 17:05:29 +0200
Subject: [PATCH] i8254: Fix migration from SLE11 SP2
@ -17,7 +17,7 @@ Signed-off-by: Andreas Färber <afaerber@suse.de>
1 file changed, 7 insertions(+)
diff --git a/hw/timer/i8254_common.c b/hw/timer/i8254_common.c
index e18299a..bc676c4 100644
index e18299a482..bc676c4664 100644
--- a/hw/timer/i8254_common.c
+++ b/hw/timer/i8254_common.c
@@ -258,6 +258,12 @@ static int pit_dispatch_post_load(void *opaque, int version_id)

View File

@ -1,4 +1,4 @@
From d4005dc15370486a71c28c3e9b7c933feff84fd7 Mon Sep 17 00:00:00 2001
From dfed13951b3cf32679ce13f54132707466bf62c5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20F=C3=A4rber?= <afaerber@suse.de>
Date: Wed, 31 Jul 2013 17:32:35 +0200
Subject: [PATCH] acpi_piix4: Fix migration from SLE11 SP2
@ -17,7 +17,7 @@ Signed-off-by: Andreas Färber <afaerber@suse.de>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/acpi/piix4.c b/hw/acpi/piix4.c
index a553a7e..c34f761 100644
index a553a7e110..c34f761175 100644
--- a/hw/acpi/piix4.c
+++ b/hw/acpi/piix4.c
@@ -311,7 +311,7 @@ static const VMStateDescription vmstate_cpuhp_state = {

View File

@ -1,4 +1,4 @@
From 59470109fd7b6d5f8e9c5dd62d49f68061fa1756 Mon Sep 17 00:00:00 2001
From f39de4c31131d5380aa53bbd7462c1f2c1eb1578 Mon Sep 17 00:00:00 2001
From: Chunyan Liu <cyliu@suse.com>
Date: Thu, 3 Mar 2016 16:48:17 +0800
Subject: [PATCH] Fix tigervnc long press issue
@ -24,10 +24,10 @@ Signed-off-by: Chunyan Liu <cyliu@suse.com>
1 file changed, 19 insertions(+)
diff --git a/ui/vnc.c b/ui/vnc.c
index 5e0189a..a18ccf4 100644
index 486d2759e4..51d6f2353f 100644
--- a/ui/vnc.c
+++ b/ui/vnc.c
@@ -1662,6 +1662,25 @@ static void do_key_event(VncState *vs, int down, int keycode, int sym)
@@ -1668,6 +1668,25 @@ static void do_key_event(VncState *vs, int down, int keycode, int sym)
if (down)
vs->modifiers_state[keycode] ^= 1;
break;

View File

@ -1,4 +1,4 @@
From 3373827d428eee5350a210e14b8ba8fda8fc83f4 Mon Sep 17 00:00:00 2001
From 7af74a9c07beeef705f3ac4eb9506edbfae3e074 Mon Sep 17 00:00:00 2001
From: Chunyan Liu <cyliu@suse.com>
Date: Fri, 29 Apr 2016 11:17:08 +0800
Subject: [PATCH] fix xen hvm direct kernel boot
@ -29,7 +29,7 @@ Signed-off-by: Chunyan Liu <cyliu@suse.com>
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/hw/core/loader.c b/hw/core/loader.c
index bf17b42..14dc6e1 100644
index bf17b42cbe..14dc6e116f 100644
--- a/hw/core/loader.c
+++ b/hw/core/loader.c
@@ -55,6 +55,7 @@

View File

@ -1,236 +0,0 @@
From afc51239827b010f266a7411981dd3c99014ea49 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Mon, 19 Sep 2016 10:02:55 +0200
Subject: [PATCH] ARM: KVM: Enable in-kernel timers with user space gic
When running with KVM enabled, you can choose between emulating the
gic in kernel or user space. If the kernel supports in-kernel virtualization
of the interrupt controller, it will default to that. If not, if will
default to user space emulation.
Unfortunately when running in user mode gic emulation, we miss out on
timer events which are only available from kernel space. This patch leverages
the new kernel/user space notification mechanism for those timer events.
Signed-off-by: Alexander Graf <agraf@suse.de>
---
hw/arm/virt.c | 18 ++++++++++++++++++
hw/intc/Makefile.objs | 2 +-
hw/intc/arm_gic.c | 16 ++++++++++++++++
linux-headers/linux/kvm.h | 14 ++++++++++++++
target/arm/kvm.c | 29 ++++++++++++++++++++++++++++-
target/arm/kvm_arm.h | 11 +++++++++++
6 files changed, 88 insertions(+), 2 deletions(-)
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index 5f62a03..44e1170 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -609,6 +609,24 @@ static void create_gic(VirtMachineState *vms, qemu_irq *pic)
} else if (type == 2) {
create_v2m(vms, pic);
}
+
+#ifdef CONFIG_KVM
+ if (kvm_enabled() && !kvm_irqchip_in_kernel()) {
+ for (i = 0; i < smp_cpus; i++) {
+ CPUState *cs = qemu_get_cpu(i);
+ int ret;
+
+ ret = kvm_vcpu_enable_cap(cs, KVM_CAP_ARM_TIMER, 0,
+ KVM_ARM_TIMER_VTIMER);
+
+ if (ret) {
+ error_report("KVM with user space irqchip only works when the "
+ "host kernel supports KVM_CAP_ARM_TIMER");
+ exit(1);
+ }
+ }
+ }
+#endif
}
static void create_uart(const VirtMachineState *vms, qemu_irq *pic, int uart,
diff --git a/hw/intc/Makefile.objs b/hw/intc/Makefile.objs
index adedd0d..6434f2c 100644
--- a/hw/intc/Makefile.objs
+++ b/hw/intc/Makefile.objs
@@ -10,7 +10,6 @@ common-obj-$(CONFIG_REALVIEW) += realview_gic.o
common-obj-$(CONFIG_SLAVIO) += slavio_intctl.o
common-obj-$(CONFIG_IOAPIC) += ioapic_common.o
common-obj-$(CONFIG_ARM_GIC) += arm_gic_common.o
-common-obj-$(CONFIG_ARM_GIC) += arm_gic.o
common-obj-$(CONFIG_ARM_GIC) += arm_gicv2m.o
common-obj-$(CONFIG_ARM_GIC) += arm_gicv3_common.o
common-obj-$(CONFIG_ARM_GIC) += arm_gicv3.o
@@ -21,6 +20,7 @@ common-obj-$(CONFIG_OPENPIC) += openpic.o
common-obj-y += intc.o
obj-$(CONFIG_APIC) += apic.o apic_common.o
+obj-$(CONFIG_ARM_GIC) += arm_gic.o
obj-$(CONFIG_ARM_GIC_KVM) += arm_gic_kvm.o
obj-$(call land,$(CONFIG_ARM_GIC_KVM),$(TARGET_AARCH64)) += arm_gicv3_kvm.o
obj-$(call land,$(CONFIG_ARM_GIC_KVM),$(TARGET_AARCH64)) += arm_gicv3_its_kvm.o
diff --git a/hw/intc/arm_gic.c b/hw/intc/arm_gic.c
index b305d90..396bfab 100644
--- a/hw/intc/arm_gic.c
+++ b/hw/intc/arm_gic.c
@@ -25,6 +25,7 @@
#include "qom/cpu.h"
#include "qemu/log.h"
#include "trace.h"
+#include "kvm_arm.h"
/* #define DEBUG_GIC */
@@ -549,6 +550,11 @@ static void gic_deactivate_irq(GICState *s, int cpu, int irq, MemTxAttrs attrs)
return;
}
+ /* Tell KVM that we want to know about timer IRQs again */
+ if (kvm_enabled()) {
+ kvm_arm_eoi_notify(cpu);
+ }
+
GIC_CLEAR_ACTIVE(irq, cm);
}
@@ -558,6 +564,12 @@ void gic_complete_irq(GICState *s, int cpu, int irq, MemTxAttrs attrs)
int group;
DPRINTF("EOI %d\n", irq);
+
+ /* Tell KVM that we want to know about timer IRQs again */
+ if (kvm_enabled()) {
+ kvm_arm_eoi_notify(cpu);
+ }
+
if (irq >= s->num_irq) {
/* This handles two cases:
* 1. If software writes the ID of a spurious interrupt [ie 1023]
@@ -899,6 +911,10 @@ static void gic_dist_writeb(void *opaque, hwaddr offset,
trace_gic_enable_irq(irq + i);
}
GIC_SET_ENABLED(irq + i, cm);
+ /* Tell KVM that we want to know about timer IRQs again */
+ if (kvm_enabled()) {
+ kvm_arm_eoi_notify(cpu);
+ }
/* If a raised level triggered IRQ enabled then mark
is as pending. */
if (GIC_TEST_LEVEL(irq + i, mask)
diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h
index 4e082a8..41b6296 100644
--- a/linux-headers/linux/kvm.h
+++ b/linux-headers/linux/kvm.h
@@ -205,6 +205,7 @@ struct kvm_hyperv_exit {
#define KVM_EXIT_S390_STSI 25
#define KVM_EXIT_IOAPIC_EOI 26
#define KVM_EXIT_HYPERV 27
+#define KVM_EXIT_ARM_TIMER 28
/* For KVM_EXIT_INTERNAL_ERROR */
/* Emulate instruction failed. */
@@ -362,6 +363,10 @@ struct kvm_run {
} eoi;
/* KVM_EXIT_HYPERV */
struct kvm_hyperv_exit hyperv;
+ /* KVM_EXIT_ARM_TIMER */
+ struct {
+ __u8 timesource;
+ } arm_timer;
/* Fix the size of the union. */
char padding[256];
};
@@ -883,6 +888,7 @@ struct kvm_ppc_resize_hpt {
#define KVM_CAP_PPC_MMU_RADIX 134
#define KVM_CAP_PPC_MMU_HASH_V3 135
#define KVM_CAP_IMMEDIATE_EXIT 136
+#define KVM_CAP_ARM_TIMER 137
#ifdef KVM_CAP_IRQ_ROUTING
@@ -1354,4 +1360,12 @@ struct kvm_assigned_msix_entry {
#define KVM_X2APIC_API_USE_32BIT_IDS (1ULL << 0)
#define KVM_X2APIC_API_DISABLE_BROADCAST_QUIRK (1ULL << 1)
+/* Available with KVM_CAP_ARM_TIMER */
+
+/* Bits for run->request_interrupt_window */
+#define KVM_IRQWINDOW_VTIMER (1 << 0)
+
+/* Bits for run->arm_timer.timesource */
+#define KVM_ARM_TIMER_VTIMER (1 << 0)
+
#endif /* __LINUX_KVM_H */
diff --git a/target/arm/kvm.c b/target/arm/kvm.c
index 4555468..15d157c 100644
--- a/target/arm/kvm.c
+++ b/target/arm/kvm.c
@@ -531,7 +531,6 @@ MemTxAttrs kvm_arch_post_run(CPUState *cs, struct kvm_run *run)
return MEMTXATTRS_UNSPECIFIED;
}
-
int kvm_arch_handle_exit(CPUState *cs, struct kvm_run *run)
{
int ret = 0;
@@ -542,6 +541,23 @@ int kvm_arch_handle_exit(CPUState *cs, struct kvm_run *run)
ret = EXCP_DEBUG;
} /* otherwise return to guest */
break;
+ case KVM_EXIT_ARM_TIMER:
+ /* We only support the vtimer today */
+ if (run->arm_timer.timesource != KVM_ARM_TIMER_VTIMER) {
+ return -EINVAL;
+ }
+
+ /*
+ * We ask the kernel to not tell us about pending virtual timer irqs,
+ * so that we can process the IRQ until we get an EOI for it. Once the
+ * EOI hits, we unset and unmask the interrupt again and if it is still
+ * pending, we set the line high again
+ */
+ run->request_interrupt_window = KVM_IRQWINDOW_VTIMER;
+
+ /* Internally trigger virtual timer IRQ */
+ qemu_set_irq(ARM_CPU(cs)->gt_timer_outputs[GTIMER_VIRT], 1);
+ break;
default:
qemu_log_mask(LOG_UNIMP, "%s: un-handled exit reason %d\n",
__func__, run->exit_reason);
@@ -629,3 +645,14 @@ int kvm_arch_msi_data_to_gsi(uint32_t data)
{
return (data - 32) & 0xffff;
}
+
+void kvm_arm_eoi_notify(int cpu)
+{
+ CPUState *cs;
+
+ cs = qemu_get_cpu(cpu);
+
+ /* Disable vtimer - if it's still pending we get notified again */
+ cs->kvm_run->request_interrupt_window &= ~KVM_ARM_TIMER_VTIMER;
+ qemu_set_irq(ARM_CPU(cs)->gt_timer_outputs[GTIMER_VIRT], 0);
+}
diff --git a/target/arm/kvm_arm.h b/target/arm/kvm_arm.h
index 633d088..eeec8c5 100644
--- a/target/arm/kvm_arm.h
+++ b/target/arm/kvm_arm.h
@@ -288,4 +288,15 @@ static inline const char *its_class_name(void)
}
}
+/**
+ * kvm_arm_eoi_notify:
+ *
+ * @cpu: CPU index the EOI is for
+ *
+ * Notify KVM that we're done processing an interrupt. This is
+ * used to unmask any pending timer interrupts and potentially
+ * learn about the fact that the level is still high.
+ */
+void kvm_arm_eoi_notify(int cpu);
+
#endif

View File

@ -1,4 +1,4 @@
From 5c82643987fdf900c8fb679e89d5b2807685946a Mon Sep 17 00:00:00 2001
From 75fb607cbe540bcd522adf7ac69429d3faadb9ca Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20F=C3=A4rber?= <afaerber@suse.de>
Date: Thu, 24 Sep 2015 19:21:11 +0200
Subject: [PATCH] string-input-visitor: Fix uint64 parsing
@ -22,7 +22,7 @@ Signed-off-by: Andreas Färber <afaerber@suse.de>
1 file changed, 50 insertions(+), 13 deletions(-)
diff --git a/qapi/string-input-visitor.c b/qapi/string-input-visitor.c
index c089491..fedbda7 100644
index c089491c24..fedbda7895 100644
--- a/qapi/string-input-visitor.c
+++ b/qapi/string-input-visitor.c
@@ -43,7 +43,8 @@ static void free_range(void *range, void *dummy)

View File

@ -1,4 +1,4 @@
From ff8c69fadd0e7eb8a941d0822ce31e8a0ac257a0 Mon Sep 17 00:00:00 2001
From e3f1fee454cdb89288a37583fc4b28a62121dd0f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20F=C3=A4rber?= <afaerber@suse.de>
Date: Thu, 24 Sep 2015 19:23:50 +0200
Subject: [PATCH] test-string-input-visitor: Add int test case
@ -14,7 +14,7 @@ Signed-off-by: Andreas Färber <afaerber@suse.de>
1 file changed, 8 insertions(+)
diff --git a/tests/test-string-input-visitor.c b/tests/test-string-input-visitor.c
index 79313a7..e00194a 100644
index 79313a7f7a..e00194a649 100644
--- a/tests/test-string-input-visitor.c
+++ b/tests/test-string-input-visitor.c
@@ -58,6 +58,14 @@ static void test_visitor_in_int(TestInputVisitorData *data,

View File

@ -1,4 +1,4 @@
From 18b870e802add854c6e43f5e8cb1312dad449b89 Mon Sep 17 00:00:00 2001
From 3b37e7faad7964e52ccc9f802c1d387d1edfad6f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20F=C3=A4rber?= <afaerber@suse.de>
Date: Thu, 24 Sep 2015 19:24:23 +0200
Subject: [PATCH] test-string-input-visitor: Add uint64 test
@ -15,7 +15,7 @@ Signed-off-by: Andreas Färber <afaerber@suse.de>
1 file changed, 23 insertions(+)
diff --git a/tests/test-string-input-visitor.c b/tests/test-string-input-visitor.c
index e00194a..5587827 100644
index e00194a649..558782796a 100644
--- a/tests/test-string-input-visitor.c
+++ b/tests/test-string-input-visitor.c
@@ -78,6 +78,27 @@ static void test_visitor_in_int(TestInputVisitorData *data,

View File

@ -1,4 +1,4 @@
From 42e6f0ded433ad82d1d5e816d36e03be247e1daa Mon Sep 17 00:00:00 2001
From 23bd9ec4751967ba949157f00f1e35de1a8b712c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20F=C3=A4rber?= <afaerber@suse.de>
Date: Sun, 6 Sep 2015 20:12:42 +0200
Subject: [PATCH] tests: Add QOM property unit tests
@ -17,7 +17,7 @@ Signed-off-by: Andreas Färber <afaerber@suse.de>
create mode 100644 tests/check-qom-props.c
diff --git a/MAINTAINERS b/MAINTAINERS
index c60235e..a023f5d 100644
index c60235eaf6..a023f5d70e 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1419,6 +1419,7 @@ F: qom/
@ -29,7 +29,7 @@ index c60235e..a023f5d 100644
QMP
diff --git a/tests/Makefile.include b/tests/Makefile.include
index f3de81f..ca8f859 100644
index f3de81fcfb..ca8f859f79 100644
--- a/tests/Makefile.include
+++ b/tests/Makefile.include
@@ -92,6 +92,8 @@ check-unit-y += tests/check-qom-interface$(EXESUF)
@ -51,7 +51,7 @@ index f3de81f..ca8f859 100644
tests/test-coroutine$(EXESUF): tests/test-coroutine.o $(test-block-obj-y)
diff --git a/tests/check-qom-props.c b/tests/check-qom-props.c
new file mode 100644
index 0000000..681e121
index 0000000000..681e121c07
--- /dev/null
+++ b/tests/check-qom-props.c
@@ -0,0 +1,122 @@

View File

@ -1,4 +1,4 @@
From 99cd029413e71606d3cc099ef2edbb2137c988e0 Mon Sep 17 00:00:00 2001
From f398179d2713f9622308636c99a8ac433cac3300 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20F=C3=A4rber?= <afaerber@suse.de>
Date: Fri, 25 Sep 2015 12:31:11 +0200
Subject: [PATCH] tests: Add scsi-disk test
@ -20,7 +20,7 @@ Signed-off-by: Andreas Färber <afaerber@suse.de>
create mode 100644 tests/scsi-disk-test.c
diff --git a/MAINTAINERS b/MAINTAINERS
index a023f5d..9840d5b 100644
index a023f5d70e..9840d5bb68 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -957,6 +957,7 @@ M: Paolo Bonzini <pbonzini@redhat.com>
@ -32,7 +32,7 @@ index a023f5d..9840d5b 100644
T: git git://github.com/bonzini/qemu.git scsi-next
diff --git a/tests/Makefile.include b/tests/Makefile.include
index ca8f859..85187d4 100644
index ca8f859f79..85187d4b8c 100644
--- a/tests/Makefile.include
+++ b/tests/Makefile.include
@@ -161,6 +161,8 @@ check-qtest-virtio-y += tests/virtio-rng-test$(EXESUF)
@ -54,7 +54,7 @@ index ca8f859..85187d4 100644
tests/test-keyval$(EXESUF): tests/test-keyval.o $(test-util-obj-y) $(test-qapi-obj-y)
diff --git a/tests/scsi-disk-test.c b/tests/scsi-disk-test.c
new file mode 100644
index 0000000..f19f93d
index 0000000000..f19f93d97a
--- /dev/null
+++ b/tests/scsi-disk-test.c
@@ -0,0 +1,82 @@

View File

@ -0,0 +1,66 @@
From 2b83bb94e1c4d3bcfa14a632f5f89da50e40c50a Mon Sep 17 00:00:00 2001
From: Christoffer Dall <cdall@linaro.org>
Date: Tue, 28 Mar 2017 16:12:03 +0200
Subject: [PATCH] RFC: update Linux headers from irqs-to-user-v3
Get ioctl number and definitions for KVM_CAP_ARM_USER_IRQ.
Signed-off-by: Christoffer Dall <cdall@linaro.org>
[agraf: change cap to indicate downstream status]
Signed-off-by: Alexander Graf <agraf@suse.de>
---
linux-headers/asm-arm/kvm.h | 2 ++
linux-headers/asm-arm64/kvm.h | 2 ++
linux-headers/linux/kvm.h | 8 ++++++++
3 files changed, 12 insertions(+)
diff --git a/linux-headers/asm-arm/kvm.h b/linux-headers/asm-arm/kvm.h
index 1101d55d2f..8a1654a55b 100644
--- a/linux-headers/asm-arm/kvm.h
+++ b/linux-headers/asm-arm/kvm.h
@@ -114,6 +114,8 @@ struct kvm_debug_exit_arch {
};
struct kvm_sync_regs {
+ /* Used with KVM_CAP_ARM_USER_IRQ */
+ __u64 device_irq_level;
};
struct kvm_arch_memory_slot {
diff --git a/linux-headers/asm-arm64/kvm.h b/linux-headers/asm-arm64/kvm.h
index 651ec30040..1bc8346f0d 100644
--- a/linux-headers/asm-arm64/kvm.h
+++ b/linux-headers/asm-arm64/kvm.h
@@ -143,6 +143,8 @@ struct kvm_debug_exit_arch {
#define KVM_GUESTDBG_USE_HW (1 << 17)
struct kvm_sync_regs {
+ /* Used with KVM_CAP_ARM_USER_IRQ */
+ __u64 device_irq_level;
};
struct kvm_arch_memory_slot {
diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h
index 4e082a81b4..72f0d21103 100644
--- a/linux-headers/linux/kvm.h
+++ b/linux-headers/linux/kvm.h
@@ -883,6 +883,7 @@ struct kvm_ppc_resize_hpt {
#define KVM_CAP_PPC_MMU_RADIX 134
#define KVM_CAP_PPC_MMU_HASH_V3 135
#define KVM_CAP_IMMEDIATE_EXIT 136
+#define KVM_CAP_ARM_USER_IRQ (0x1000 | 137)
#ifdef KVM_CAP_IRQ_ROUTING
@@ -1354,4 +1355,11 @@ struct kvm_assigned_msix_entry {
#define KVM_X2APIC_API_USE_32BIT_IDS (1ULL << 0)
#define KVM_X2APIC_API_DISABLE_BROADCAST_QUIRK (1ULL << 1)
+/* Available with KVM_CAP_ARM_USER_IRQ */
+
+/* Bits for run->s.regs.device_irq_level */
+#define KVM_ARM_DEV_EL1_VTIMER (1 << 0)
+#define KVM_ARM_DEV_EL1_PTIMER (1 << 1)
+#define KVM_ARM_DEV_PMU (1 << 2)
+
#endif /* __LINUX_KVM_H */

View File

@ -0,0 +1,108 @@
From 000ea43f23d170f09ad71d0c7353ceb201789607 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Mon, 19 Sep 2016 10:02:55 +0200
Subject: [PATCH] ARM: KVM: Enable in-kernel timers with user space gic
When running with KVM enabled, you can choose between emulating the
gic in kernel or user space. If the kernel supports in-kernel virtualization
of the interrupt controller, it will default to that. If not, if will
default to user space emulation.
Unfortunately when running in user mode gic emulation, we miss out on
timer events which are only available from kernel space. This patch leverages
the new kernel/user space pending line synchronization for those timer events.
Signed-off-by: Alexander Graf <agraf@suse.de>
---
hw/arm/virt.c | 10 ++++++++++
target/arm/cpu.h | 3 +++
target/arm/kvm.c | 31 ++++++++++++++++++++++++++++++-
3 files changed, 43 insertions(+), 1 deletion(-)
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index 5f62a0321e..a1d24a4db6 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -609,6 +609,16 @@ static void create_gic(VirtMachineState *vms, qemu_irq *pic)
} else if (type == 2) {
create_v2m(vms, pic);
}
+
+#ifdef CONFIG_KVM
+ if (kvm_enabled() && !kvm_irqchip_in_kernel()) {
+ if (!kvm_check_extension(kvm_state, KVM_CAP_ARM_USER_IRQ)) {
+ error_report("KVM with user space irqchip only works when the "
+ "host kernel supports KVM_CAP_ARM_USER_IRQ");
+ exit(1);
+ }
+ }
+#endif
}
static void create_uart(const VirtMachineState *vms, qemu_irq *pic, int uart,
diff --git a/target/arm/cpu.h b/target/arm/cpu.h
index a8aabce7dd..19cb596449 100644
--- a/target/arm/cpu.h
+++ b/target/arm/cpu.h
@@ -702,6 +702,9 @@ struct ARMCPU {
ARMELChangeHook *el_change_hook;
void *el_change_hook_opaque;
+
+ /* Used to synchronize KVM and QEMU timer levels */
+ uint64_t device_irq_level;
};
static inline ARMCPU *arm_env_get_cpu(CPUARMState *env)
diff --git a/target/arm/kvm.c b/target/arm/kvm.c
index 45554682f2..dccb326615 100644
--- a/target/arm/kvm.c
+++ b/target/arm/kvm.c
@@ -174,6 +174,12 @@ int kvm_arch_init(MachineState *ms, KVMState *s)
*/
kvm_async_interrupts_allowed = true;
+ /*
+ * PSCI wakes up secondary cores, so we always need to
+ * have vCPUs waiting in kernel space
+ */
+ kvm_halt_in_kernel_allowed = true;
+
cap_has_mp_state = kvm_check_extension(s, KVM_CAP_MP_STATE);
type_register_static(&host_arm_cpu_type_info);
@@ -528,10 +534,33 @@ void kvm_arch_pre_run(CPUState *cs, struct kvm_run *run)
MemTxAttrs kvm_arch_post_run(CPUState *cs, struct kvm_run *run)
{
+ ARMCPU *cpu;
+
+ if (kvm_irqchip_in_kernel()) {
+ /*
+ * We only need to sync timer states with user-space interrupt
+ * controllers, so return early and save cycles if we don't.
+ */
+ return MEMTXATTRS_UNSPECIFIED;
+ }
+
+ cpu = ARM_CPU(cs);
+
+ /* Synchronize our internal vtimer irq line with the kvm one */
+ if (run->s.regs.device_irq_level != cpu->device_irq_level) {
+ qemu_mutex_lock_iothread();
+ qemu_set_irq(cpu->gt_timer_outputs[GTIMER_VIRT],
+ run->s.regs.device_irq_level & KVM_ARM_DEV_EL1_VTIMER);
+ qemu_set_irq(cpu->gt_timer_outputs[GTIMER_PHYS],
+ run->s.regs.device_irq_level & KVM_ARM_DEV_EL1_PTIMER);
+ /* TODO: Handle changes in PMU as well */
+ cpu->device_irq_level = run->s.regs.device_irq_level;
+ qemu_mutex_unlock_iothread();
+ }
+
return MEMTXATTRS_UNSPECIFIED;
}
-
int kvm_arch_handle_exit(CPUState *cs, struct kvm_run *run)
{
int ret = 0;

View File

@ -1,54 +0,0 @@
From e46f223e5fadfeaeecc7a4744733184130b5dd0d Mon Sep 17 00:00:00 2001
From: Eric Auger <eric.auger@redhat.com>
Date: Tue, 28 Mar 2017 19:20:40 +0200
Subject: [PATCH] hw/intc/arm_gicv3_kvm: Check KVM_DEV_ARM_VGIC_GRP_CPU_SYSREGS
in reset
KVM_DEV_ARM_VGIC_GRP_CPU_SYSREGS needs to be checked before
attempting to read ICC_CTLR_EL1; otherwise kernel versions not
exposing this kvm device group will be incompatible with qemu 2.9.
Fixes: 07a5628 ("hw/intc/arm_gicv3_kvm: Reset GICv3 cpu interface registers")
Signed-off-by: Eric Auger <eric.auger@redhat.com>
Reported-by: Prakash B <bjsprakash.linux@gmail.com>
(agraf: Fixes gicv3 KVM on SP2 kernel)
Signed-off-by: Alexander Graf <agraf@suse.de>
---
hw/intc/arm_gicv3_kvm.c | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)
diff --git a/hw/intc/arm_gicv3_kvm.c b/hw/intc/arm_gicv3_kvm.c
index 81f0403..19aab56 100644
--- a/hw/intc/arm_gicv3_kvm.c
+++ b/hw/intc/arm_gicv3_kvm.c
@@ -614,12 +614,6 @@ static void arm_gicv3_icc_reset(CPUARMState *env, const ARMCPRegInfo *ri)
s = c->gic;
cpu = ARM_CPU(c->cpu);
- /* Initialize to actual HW supported configuration */
- kvm_device_access(s->dev_fd, KVM_DEV_ARM_VGIC_GRP_CPU_SYSREGS,
- KVM_VGIC_ATTR(ICC_CTLR_EL1, cpu->mp_affinity),
- &c->icc_ctlr_el1[GICV3_NS], false);
-
- c->icc_ctlr_el1[GICV3_S] = c->icc_ctlr_el1[GICV3_NS];
c->icc_pmr_el1 = 0;
c->icc_bpr[GICV3_G0] = GIC_MIN_BPR;
c->icc_bpr[GICV3_G1] = GIC_MIN_BPR;
@@ -628,6 +622,17 @@ static void arm_gicv3_icc_reset(CPUARMState *env, const ARMCPRegInfo *ri)
c->icc_sre_el1 = 0x7;
memset(c->icc_apr, 0, sizeof(c->icc_apr));
memset(c->icc_igrpen, 0, sizeof(c->icc_igrpen));
+
+ if (s->migration_blocker) {
+ return;
+ }
+
+ /* Initialize to actual HW supported configuration */
+ kvm_device_access(s->dev_fd, KVM_DEV_ARM_VGIC_GRP_CPU_SYSREGS,
+ KVM_VGIC_ATTR(ICC_CTLR_EL1, cpu->mp_affinity),
+ &c->icc_ctlr_el1[GICV3_NS], false);
+
+ c->icc_ctlr_el1[GICV3_S] = c->icc_ctlr_el1[GICV3_NS];
}
static void kvm_arm_gicv3_reset(DeviceState *dev)

View File

@ -1,99 +0,0 @@
From d6b04856c99c5c9f896e324214643566ba35ed9a Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost@redhat.com>
Date: Mon, 27 Mar 2017 11:48:14 -0300
Subject: [PATCH] i386: Replace uint32_t* with FeatureWord on feature
getter/setter
Instead of passing a pointer to the feature property getter and
setter functions, pass a FeatureWord enum so they can perform
other actions related to the feature flag.
This will be used to add a new "user_features" field to keep
track of features that were explicitly set by the user.
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Message-Id: <20170327144815.8043-2-ehabkost@redhat.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Tested-by: Jiri Denemark <jdenemar@redhat.com>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Signed-off-by: Bruce Rogers <brogers@suse.com>
---
target/i386/cpu.c | 19 +++++++++++--------
1 file changed, 11 insertions(+), 8 deletions(-)
diff --git a/target/i386/cpu.c b/target/i386/cpu.c
index 7aa7622..feefa5b 100644
--- a/target/i386/cpu.c
+++ b/target/i386/cpu.c
@@ -3692,15 +3692,17 @@ static void x86_cpu_unrealizefn(DeviceState *dev, Error **errp)
}
typedef struct BitProperty {
- uint32_t *ptr;
+ FeatureWord w;
uint32_t mask;
} BitProperty;
static void x86_cpu_get_bit_prop(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp)
{
+ X86CPU *cpu = X86_CPU(obj);
BitProperty *fp = opaque;
- bool value = (*fp->ptr & fp->mask) == fp->mask;
+ uint32_t f = cpu->env.features[fp->w];
+ bool value = (f & fp->mask) == fp->mask;
visit_type_bool(v, name, &value, errp);
}
@@ -3708,6 +3710,7 @@ static void x86_cpu_set_bit_prop(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp)
{
DeviceState *dev = DEVICE(obj);
+ X86CPU *cpu = X86_CPU(obj);
BitProperty *fp = opaque;
Error *local_err = NULL;
bool value;
@@ -3724,9 +3727,9 @@ static void x86_cpu_set_bit_prop(Object *obj, Visitor *v, const char *name,
}
if (value) {
- *fp->ptr |= fp->mask;
+ cpu->env.features[fp->w] |= fp->mask;
} else {
- *fp->ptr &= ~fp->mask;
+ cpu->env.features[fp->w] &= ~fp->mask;
}
}
@@ -3745,7 +3748,7 @@ static void x86_cpu_release_bit_prop(Object *obj, const char *name,
*/
static void x86_cpu_register_bit_prop(X86CPU *cpu,
const char *prop_name,
- uint32_t *field,
+ FeatureWord w,
int bitnr)
{
BitProperty *fp;
@@ -3755,11 +3758,11 @@ static void x86_cpu_register_bit_prop(X86CPU *cpu,
op = object_property_find(OBJECT(cpu), prop_name, NULL);
if (op) {
fp = op->opaque;
- assert(fp->ptr == field);
+ assert(fp->w == w);
fp->mask |= mask;
} else {
fp = g_new0(BitProperty, 1);
- fp->ptr = field;
+ fp->w = w;
fp->mask = mask;
object_property_add(OBJECT(cpu), prop_name, "bool",
x86_cpu_get_bit_prop,
@@ -3787,7 +3790,7 @@ static void x86_cpu_register_feature_bit_props(X86CPU *cpu,
/* aliases don't use "|" delimiters anymore, they are registered
* manually using object_property_add_alias() */
assert(!strchr(name, '|'));
- x86_cpu_register_bit_prop(cpu, name, &cpu->env.features[w], bitnr);
+ x86_cpu_register_bit_prop(cpu, name, w, bitnr);
}
static GuestPanicInformation *x86_cpu_get_crash_info(CPUState *cs)

View File

@ -0,0 +1,48 @@
From 1337d5da71ac778f2eff10554d2de12c95d5e30e Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Thu, 30 Mar 2017 15:32:08 +0200
Subject: [PATCH] input: Add trace event for empty keyboard queue
When driving QEMU from the outside, we have basically no chance to
determine how quickly the guest OS picks up key events, so we usually
have to limit ourselves to very slow keyboard presses to make sure
the guest always has enough chance to pick them up.
This patch adds a trace events when the keyboarde queue is drained.
An external driver can use that as hint that new keys can be pressed.
Signed-off-by: Alexander Graf <agraf@suse.de>
[BR: BSC#1031692]
Signed-off-by: Bruce Rogers <brogers@suse.com>
---
hw/input/hid.c | 4 ++++
hw/input/trace-events | 1 +
2 files changed, 5 insertions(+)
diff --git a/hw/input/hid.c b/hw/input/hid.c
index fa9cc4c616..93887ecc43 100644
--- a/hw/input/hid.c
+++ b/hw/input/hid.c
@@ -256,6 +256,10 @@ static void hid_keyboard_process_keycode(HIDState *hs)
slot = hs->head & QUEUE_MASK; QUEUE_INCR(hs->head); hs->n--;
keycode = hs->kbd.keycodes[slot];
+ if (!hs->n) {
+ trace_hid_kbd_queue_empty();
+ }
+
key = keycode & 0x7f;
index = key | ((hs->kbd.modifiers & (1 << 8)) >> 1);
hid_code = hid_usage_keys[index];
diff --git a/hw/input/trace-events b/hw/input/trace-events
index f3bfbede5c..5a87818b49 100644
--- a/hw/input/trace-events
+++ b/hw/input/trace-events
@@ -24,6 +24,7 @@ milkymist_softusb_pulse_irq(void) "Pulse IRQ"
# hw/input/hid.c
hid_kbd_queue_full(void) "queue full"
+hid_kbd_queue_empty(void) "queue empty"
# hw/input/virtio
virtio_input_queue_full(void) "queue full"

View File

@ -1,91 +0,0 @@
From f29ffe6356b02ac5af7089e63b11ce22fd3313ed Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost@redhat.com>
Date: Mon, 27 Mar 2017 11:48:15 -0300
Subject: [PATCH] i386: Don't override -cpu options on -cpu host/max
The existing code for "host" and "max" CPU models overrides every
single feature in the CPU object at realize time, even the ones
that were explicitly enabled or disabled by the user using
"feat=on" or "feat=off", while features set using +feat/-feat are
kept.
This means "-cpu host,+invtsc" works as expected, while
"-cpu host,invtsc=on" doesn't.
This was a known bug, already documented in a comment inside
x86_cpu_expand_features(). What makes this bug worse now is that
libvirt 3.0.0 and newer now use "feat=on|off" instead of
+feat/-feat when it detects a QEMU version that supports it (see
libvirt commit d47db7b16dd5422c7e487c8c8ee5b181a2f9cd66).
Change the feature property getter/setter to set a
env->user_features field, to keep track of features that were
explicitly changed using QOM properties. Then make the
max_features code not override user features when handling "-cpu
host" and "-cpu max".
This will also allow us to remove the plus_features/minus_features
hack in the future, but I plan to do that after 2.9.0 is
released.
Reported-by: Jiri Denemark <jdenemar@redhat.com>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Message-Id: <20170327144815.8043-3-ehabkost@redhat.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Tested-by: Jiri Denemark <jdenemar@redhat.com>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Signed-off-by: Bruce Rogers <brogers@suse.com>
---
target/i386/cpu.c | 13 +++++++++----
target/i386/cpu.h | 2 ++
2 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/target/i386/cpu.c b/target/i386/cpu.c
index feefa5b..13c0985 100644
--- a/target/i386/cpu.c
+++ b/target/i386/cpu.c
@@ -3373,15 +3373,19 @@ static void x86_cpu_expand_features(X86CPU *cpu, Error **errp)
GList *l;
Error *local_err = NULL;
- /*TODO: cpu->max_features incorrectly overwrites features
- * set using "feat=on|off". Once we fix this, we can convert
+ /*TODO: Now cpu->max_features doesn't overwrite features
+ * set using QOM properties, and we can convert
* plus_features & minus_features to global properties
* inside x86_cpu_parse_featurestr() too.
*/
if (cpu->max_features) {
for (w = 0; w < FEATURE_WORDS; w++) {
- env->features[w] =
- x86_cpu_get_supported_feature_word(w, cpu->migratable);
+ /* Override only features that weren't set explicitly
+ * by the user.
+ */
+ env->features[w] |=
+ x86_cpu_get_supported_feature_word(w, cpu->migratable) &
+ ~env->user_features[w];
}
}
@@ -3731,6 +3735,7 @@ static void x86_cpu_set_bit_prop(Object *obj, Visitor *v, const char *name,
} else {
cpu->env.features[fp->w] &= ~fp->mask;
}
+ cpu->env.user_features[fp->w] |= fp->mask;
}
static void x86_cpu_release_bit_prop(Object *obj, const char *name,
diff --git a/target/i386/cpu.h b/target/i386/cpu.h
index 64545b2..81c02c5 100644
--- a/target/i386/cpu.h
+++ b/target/i386/cpu.h
@@ -1147,6 +1147,8 @@ typedef struct CPUX86State {
uint32_t cpuid_vendor3;
uint32_t cpuid_version;
FeatureWordArray features;
+ /* Features that were explicitly enabled/disabled */
+ FeatureWordArray user_features;
uint32_t cpuid_model[12];
/* MTRRs */

View File

@ -0,0 +1,168 @@
From 5f85cbb9ee1c00cec81a848a9e871ad5d1e7f53f Mon Sep 17 00:00:00 2001
From: Michael Brown <mcb30@ipxe.org>
Date: Wed, 29 Mar 2017 10:36:03 +0300
Subject: [PATCH] [build] Avoid implicit-fallthrough warnings on GCC 7
Reported-by: Vinson Lee <vlee@freedesktop.org>
Reported-by: Liang Yan <lyan@suse.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
[BR: BSC#1031340]
Signed-off-by: Bruce Rogers <brogers@suse.com>
---
src/arch/x86/image/bzimage.c | 2 ++
src/drivers/infiniband/golan.c | 1 +
src/drivers/net/ath/ath9k/ath9k_ar5008_phy.c | 2 ++
src/drivers/net/ath/ath9k/ath9k_ar9002_phy.c | 1 +
src/drivers/net/ath/ath9k/ath9k_ar9003_phy.c | 1 +
src/drivers/net/igbvf/igbvf_vf.c | 1 +
src/drivers/net/tg3/tg3_hw.c | 12 ++++++++++++
src/tests/setjmp_test.c | 5 +++--
8 files changed, 23 insertions(+), 2 deletions(-)
diff --git a/src/arch/x86/image/bzimage.c b/src/arch/x86/image/bzimage.c
index e3c4cb83..51498bf9 100644
--- a/src/arch/x86/image/bzimage.c
+++ b/src/arch/x86/image/bzimage.c
@@ -282,9 +282,11 @@ static int bzimage_parse_cmdline ( struct image *image,
case 'G':
case 'g':
bzimg->mem_limit <<= 10;
+ /* Fall through */
case 'M':
case 'm':
bzimg->mem_limit <<= 10;
+ /* Fall through */
case 'K':
case 'k':
bzimg->mem_limit <<= 10;
diff --git a/src/drivers/infiniband/golan.c b/src/drivers/infiniband/golan.c
index 30eaabab..61331d4c 100755
--- a/src/drivers/infiniband/golan.c
+++ b/src/drivers/infiniband/golan.c
@@ -1956,6 +1956,7 @@ static inline void golan_handle_port_event(struct golan *golan, struct golan_eqe
case GOLAN_PORT_CHANGE_SUBTYPE_CLIENT_REREG:
case GOLAN_PORT_CHANGE_SUBTYPE_ACTIVE:
golan_ib_update ( ibdev );
+ /* Fall through */
case GOLAN_PORT_CHANGE_SUBTYPE_DOWN:
case GOLAN_PORT_CHANGE_SUBTYPE_LID:
case GOLAN_PORT_CHANGE_SUBTYPE_PKEY:
diff --git a/src/drivers/net/ath/ath9k/ath9k_ar5008_phy.c b/src/drivers/net/ath/ath9k/ath9k_ar5008_phy.c
index 2b6c133c..a98e4bb6 100644
--- a/src/drivers/net/ath/ath9k/ath9k_ar5008_phy.c
+++ b/src/drivers/net/ath/ath9k/ath9k_ar5008_phy.c
@@ -640,12 +640,14 @@ static void ar5008_hw_init_chain_masks(struct ath_hw *ah)
case 0x5:
REG_SET_BIT(ah, AR_PHY_ANALOG_SWAP,
AR_PHY_SWAP_ALT_CHAIN);
+ /* Fall through */
case 0x3:
if (ah->hw_version.macVersion == AR_SREV_REVISION_5416_10) {
REG_WRITE(ah, AR_PHY_RX_CHAINMASK, 0x7);
REG_WRITE(ah, AR_PHY_CAL_CHAINMASK, 0x7);
break;
}
+ /* Fall through */
case 0x1:
case 0x2:
case 0x7:
diff --git a/src/drivers/net/ath/ath9k/ath9k_ar9002_phy.c b/src/drivers/net/ath/ath9k/ath9k_ar9002_phy.c
index 72203ba4..65cfad59 100644
--- a/src/drivers/net/ath/ath9k/ath9k_ar9002_phy.c
+++ b/src/drivers/net/ath/ath9k/ath9k_ar9002_phy.c
@@ -122,6 +122,7 @@ static int ar9002_hw_set_channel(struct ath_hw *ah, struct ath9k_channel *chan)
aModeRefSel = 2;
if (aModeRefSel)
break;
+ /* Fall through */
case 1:
default:
aModeRefSel = 0;
diff --git a/src/drivers/net/ath/ath9k/ath9k_ar9003_phy.c b/src/drivers/net/ath/ath9k/ath9k_ar9003_phy.c
index 2244b775..b66358b9 100644
--- a/src/drivers/net/ath/ath9k/ath9k_ar9003_phy.c
+++ b/src/drivers/net/ath/ath9k/ath9k_ar9003_phy.c
@@ -539,6 +539,7 @@ void ar9003_hw_set_chain_masks(struct ath_hw *ah, u8 rx, u8 tx)
case 0x5:
REG_SET_BIT(ah, AR_PHY_ANALOG_SWAP,
AR_PHY_SWAP_ALT_CHAIN);
+ /* Fall through */
case 0x3:
case 0x1:
case 0x2:
diff --git a/src/drivers/net/igbvf/igbvf_vf.c b/src/drivers/net/igbvf/igbvf_vf.c
index f2dac8be..f841d5e3 100644
--- a/src/drivers/net/igbvf/igbvf_vf.c
+++ b/src/drivers/net/igbvf/igbvf_vf.c
@@ -357,6 +357,7 @@ s32 igbvf_promisc_set_vf(struct e1000_hw *hw, enum e1000_promisc_type type)
break;
case e1000_promisc_enabled:
msgbuf |= E1000_VF_SET_PROMISC_MULTICAST;
+ /* Fall through */
case e1000_promisc_unicast:
msgbuf |= E1000_VF_SET_PROMISC_UNICAST;
case e1000_promisc_disabled:
diff --git a/src/drivers/net/tg3/tg3_hw.c b/src/drivers/net/tg3/tg3_hw.c
index 50353cf3..798f8519 100644
--- a/src/drivers/net/tg3/tg3_hw.c
+++ b/src/drivers/net/tg3/tg3_hw.c
@@ -2518,28 +2518,40 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
switch (limit) {
case 16:
tw32(MAC_RCV_RULE_15, 0); tw32(MAC_RCV_VALUE_15, 0);
+ /* Fall through */
case 15:
tw32(MAC_RCV_RULE_14, 0); tw32(MAC_RCV_VALUE_14, 0);
+ /* Fall through */
case 14:
tw32(MAC_RCV_RULE_13, 0); tw32(MAC_RCV_VALUE_13, 0);
+ /* Fall through */
case 13:
tw32(MAC_RCV_RULE_12, 0); tw32(MAC_RCV_VALUE_12, 0);
+ /* Fall through */
case 12:
tw32(MAC_RCV_RULE_11, 0); tw32(MAC_RCV_VALUE_11, 0);
+ /* Fall through */
case 11:
tw32(MAC_RCV_RULE_10, 0); tw32(MAC_RCV_VALUE_10, 0);
+ /* Fall through */
case 10:
tw32(MAC_RCV_RULE_9, 0); tw32(MAC_RCV_VALUE_9, 0);
+ /* Fall through */
case 9:
tw32(MAC_RCV_RULE_8, 0); tw32(MAC_RCV_VALUE_8, 0);
+ /* Fall through */
case 8:
tw32(MAC_RCV_RULE_7, 0); tw32(MAC_RCV_VALUE_7, 0);
+ /* Fall through */
case 7:
tw32(MAC_RCV_RULE_6, 0); tw32(MAC_RCV_VALUE_6, 0);
+ /* Fall through */
case 6:
tw32(MAC_RCV_RULE_5, 0); tw32(MAC_RCV_VALUE_5, 0);
+ /* Fall through */
case 5:
tw32(MAC_RCV_RULE_4, 0); tw32(MAC_RCV_VALUE_4, 0);
+ /* Fall through */
case 4:
/* tw32(MAC_RCV_RULE_3, 0); tw32(MAC_RCV_VALUE_3, 0); */
case 3:
diff --git a/src/tests/setjmp_test.c b/src/tests/setjmp_test.c
index 50ad13f3..deafcee0 100644
--- a/src/tests/setjmp_test.c
+++ b/src/tests/setjmp_test.c
@@ -111,8 +111,9 @@ static void setjmp_return_ok ( struct setjmp_test *test, int value ) {
* @v file Test code file
* @v line Test code line
*/
-static void longjmp_okx ( struct setjmp_test *test, int value,
- const char *file, unsigned int line ) {
+static void __attribute__ (( noreturn ))
+longjmp_okx ( struct setjmp_test *test, int value,
+ const char *file, unsigned int line ) {
/* Record expected value. A zero passed to longjmp() should
* result in setjmp() returning a value of one.
--
2.12.2

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1c3e72b6b0aeca5c7dd9b5a788b676e7dfb6486f1256224cd2bda01fae0eace4
size 22821160

Binary file not shown.

3
qemu-2.9.0-rc4.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f7001d2f3d9be087345bca403bda63272917870901a1a9cdd57eb96cb93f60d4
size 22828764

BIN
qemu-2.9.0-rc4.tar.xz.sig Normal file

Binary file not shown.

View File

@ -1,3 +1,36 @@
-------------------------------------------------------------------
Wed Apr 12 15:15:28 UTC 2017 - brogers@suse.com
- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.9
* Patches added:
0048-input-Add-trace-event-for-empty-key.patch
-------------------------------------------------------------------
Tue Apr 11 19:32:00 UTC 2017 - brogers@suse.com
- Updated to v2.9.0-rc4: See http://wiki.qemu-project.org/ChangeLog/2.9
* Patches renamed:
0041-ARM-KVM-Enable-in-kernel-timers-wit.patch -> 0047-ARM-KVM-Enable-in-kernel-timers-wit.patch
0042-string-input-visitor-Fix-uint64-par.patch -> 0041-string-input-visitor-Fix-uint64-par.patch
0043-test-string-input-visitor-Add-int-t.patch -> 0042-test-string-input-visitor-Add-int-t.patch
0044-test-string-input-visitor-Add-uint6.patch -> 0043-test-string-input-visitor-Add-uint6.patch
0045-tests-Add-QOM-property-unit-tests.patch -> 0044-tests-Add-QOM-property-unit-tests.patch
0046-tests-Add-scsi-disk-test.patch -> 0045-tests-Add-scsi-disk-test.patch
* Patches added:
0046-RFC-update-Linux-headers-from-irqs-.patch
- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.9
-------------------------------------------------------------------
Wed Apr 5 16:50:51 UTC 2017 - brogers@suse.com
- Updated to v2.9.0-rc3: See http://wiki.qemu-project.org/ChangeLog/2.9
* Patches dropped:
0047-hw-intc-arm_gicv3_kvm-Check-KVM_DEV.patch
0048-i386-Replace-uint32_t-with-FeatureW.patch
0049-i386-Don-t-override-cpu-options-on-.patch
- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.9
- Made miscellaneous spec file refinements
-------------------------------------------------------------------
Thu Mar 30 22:46:47 UTC 2017 - brogers@suse.com
@ -9,11 +42,12 @@ Thu Mar 30 22:46:47 UTC 2017 - brogers@suse.com
-------------------------------------------------------------------
Tue Mar 28 22:12:56 UTC 2017 - brogers@suse.com
- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.9
- Updated to v2.9.0-rc2: See http://wiki.qemu-project.org/ChangeLog/2.9
* Patches dropped:
0047-linux-user-exclude-cpu-model-code-w.patch
* Patches added:
0047-hw-intc-arm_gicv3_kvm-Check-KVM_DEV.patch
- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.9
-------------------------------------------------------------------
Tue Mar 21 20:53:50 UTC 2017 - brogers@suse.com

View File

@ -21,9 +21,9 @@ Url: http://www.qemu.org/
Summary: Universal CPU emulator
License: BSD-3-Clause and GPL-2.0 and GPL-2.0+ and LGPL-2.1+ and MIT
Group: System/Emulators/PC
Version: 2.8.92
Version: 2.8.94
Release: 0
Source: qemu-2.9.0-rc2.tar.xz
Source: qemu-2.9.0-rc4.tar.xz
# Upstream First -- http://wiki.qemu-project.org/Contribute/SubmitAPatch
# This patch queue is auto-generated from https://github.com/openSUSE/qemu
Patch0001: 0001-XXX-dont-dump-core-on-sigabort.patch
@ -66,15 +66,14 @@ Patch0037: 0037-i8254-Fix-migration-from-SLE11-SP2.patch
Patch0038: 0038-acpi_piix4-Fix-migration-from-SLE11.patch
Patch0039: 0039-Fix-tigervnc-long-press-issue.patch
Patch0040: 0040-fix-xen-hvm-direct-kernel-boot.patch
Patch0041: 0041-ARM-KVM-Enable-in-kernel-timers-wit.patch
Patch0042: 0042-string-input-visitor-Fix-uint64-par.patch
Patch0043: 0043-test-string-input-visitor-Add-int-t.patch
Patch0044: 0044-test-string-input-visitor-Add-uint6.patch
Patch0045: 0045-tests-Add-QOM-property-unit-tests.patch
Patch0046: 0046-tests-Add-scsi-disk-test.patch
Patch0047: 0047-hw-intc-arm_gicv3_kvm-Check-KVM_DEV.patch
Patch0048: 0048-i386-Replace-uint32_t-with-FeatureW.patch
Patch0049: 0049-i386-Don-t-override-cpu-options-on-.patch
Patch0041: 0041-string-input-visitor-Fix-uint64-par.patch
Patch0042: 0042-test-string-input-visitor-Add-int-t.patch
Patch0043: 0043-test-string-input-visitor-Add-uint6.patch
Patch0044: 0044-tests-Add-QOM-property-unit-tests.patch
Patch0045: 0045-tests-Add-scsi-disk-test.patch
Patch0046: 0046-RFC-update-Linux-headers-from-irqs-.patch
Patch0047: 0047-ARM-KVM-Enable-in-kernel-timers-wit.patch
Patch0048: 0048-input-Add-trace-event-for-empty-key.patch
# Please do not add QEMU patches manually here.
# Run update_git.sh to regenerate this queue.
Source400: update_git.sh
@ -100,7 +99,6 @@ BuildRequires: libattr-devel
%if 0%{?suse_version} > 1220
BuildRequires: makeinfo
%endif
BuildRequires: ncurses-devel
%if 0%{?suse_version} >= 1220
BuildRequires: pcre-devel-static
%endif
@ -128,7 +126,7 @@ emulations. This can be used together with the OBS build script to
run cross-architecture builds.
%prep
%setup -q -n qemu-2.9.0-rc2
%setup -q -n qemu-2.9.0-rc4
%patch0001 -p1
%patch0002 -p1
%patch0003 -p1
@ -177,22 +175,74 @@ run cross-architecture builds.
%patch0046 -p1
%patch0047 -p1
%patch0048 -p1
%patch0049 -p1
%build
./configure --prefix=%_prefix --sysconfdir=%_sysconfdir \
./configure \
--prefix=%_prefix \
--sysconfdir=%_sysconfdir \
--libdir=%_libdir \
--libexecdir=%_libexecdir \
--enable-linux-user \
--localstatedir=%_localstatedir \
--extra-cflags="%{optflags}" \
--disable-stack-protector \
--disable-system \
--disable-tools \
--disable-guest-agent \
--static --disable-linux-aio \
--disable-fdt \
--without-pixman \
--disable-blobs \
--disable-strip \
--extra-cflags="%{optflags}"
--disable-system --enable-linux-user \
--disable-tools --disable-guest-agent \
--static \
--disable-modules \
--disable-pie \
--disable-docs \
--audio-drv-list="" \
--enable-attr \
--disable-blobs \
--disable-bluez \
--disable-brlapi \
--disable-bzip2 \
--disable-cap-ng \
--enable-coroutine-pool \
--disable-curl \
--disable-curses \
--disable-fdt \
--disable-gcrypt \
--disable-glusterfs \
--disable-gnutls \
--disable-gtk \
--disable-hax \
--disable-jemalloc \
--disable-kvm \
--disable-libiscsi \
--disable-linux-aio \
--disable-lzo \
--disable-netmap \
--disable-nettle \
--disable-numa \
--disable-opengl \
--without-pixman \
--disable-rbd \
--disable-rdma \
--disable-replication \
--disable-sdl \
--disable-seccomp \
--disable-smartcard \
--disable-snappy \
--disable-spice \
--disable-tcmalloc \
--disable-tpm \
--disable-usb-redir \
--disable-vde \
--disable-vhost-net \
--disable-virglrenderer \
--disable-virtfs \
--disable-vnc \
--disable-vnc-jpeg \
--disable-vnc-png \
--disable-vnc-sasl \
--disable-vte \
--disable-xen \
--disable-xen-pci-passthrough \
--disable-xen-pv-domain-build \
--disable-xfsctl \
%if 0%{?suse_version} == 1140
# -lrt needs to come after -lglib-2.0 to avoid undefined clock_gettime
sed -i "s/-lglib-2.0/-lglib-2.0 -lrt/" config-host.mak
@ -233,26 +283,19 @@ make %{?_smp_mflags} V=1
%install
make install DESTDIR=%{buildroot}
%{__rm} -rf %{buildroot}%_datadir/doc
%{__rm} -rf %{buildroot}%_mandir/man1/qemu.1
%{__rm} -rf %{buildroot}%_mandir/man1/qemu-img.1
%{__rm} -rf %{buildroot}%_mandir/man8/qemu-nbd.8
%{__rm} -rf %{buildroot}%_datadir/qemu/keymaps
%{__rm} -rf %{buildroot}%_datadir/qemu/trace-events-all
%{__rm} -rf %{buildroot}%_sysconfdir/qemu/target-x86_64.conf
%{__rm} -rf %{buildroot}%_libexecdir/qemu-bridge-helper
%{__install} -d -m 755 %{buildroot}%_sbindir
%{__install} -m 755 scripts/qemu-binfmt-conf.sh %{buildroot}%_sbindir
rm -rf %{buildroot}%_datadir/qemu/keymaps
unlink %{buildroot}%_datadir/qemu/trace-events-all
unlink %{buildroot}%_libexecdir/qemu-bridge-helper
install -d -m 755 %{buildroot}%_sbindir
install -m 755 scripts/qemu-binfmt-conf.sh %{buildroot}%_sbindir
%ifnarch %ix86 x86_64
ln -sf ../../../emul/ia32-linux %{buildroot}%_datadir/qemu/qemu-i386
%endif
%ifnarch ia64
%{__mkdir} -p %{buildroot}/emul/ia32-linux
%endif
mkdir -p %{buildroot}/emul/ia32-linux
%fdupes -s %{buildroot}
%clean
%{__rm} -rf %{buildroot}
rm -rf %{buildroot}
%files
%defattr(-, root, root)
@ -288,13 +331,10 @@ ln -sf ../../../emul/ia32-linux %{buildroot}%_datadir/qemu/qemu-i386
%_bindir/qemu-x86_64
%_bindir/qemu-*-binfmt
%_sbindir/qemu-binfmt-conf.sh
%ifnarch %ix86 x86_64 ia64
%dir /emul/ia32-linux
%endif
%ifnarch %ix86 x86_64
%dir /emul/ia32-linux
%dir %_datadir/qemu
%_datadir/qemu/qemu-i386
%endif
%doc %_mandir/man7/qemu-qmp-ref.7.gz
%changelog

View File

@ -1,7 +1,7 @@
#
# spec file for package qemu-linux-user
#
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -23,7 +23,7 @@ License: BSD-3-Clause and GPL-2.0 and GPL-2.0+ and LGPL-2.1+ and MIT
Group: System/Emulators/PC
QEMU_VERSION
Release: 0
Source: qemu-2.9.0-rc2.tar.xz
Source: qemu-2.9.0-rc4.tar.xz
# Upstream First -- http://wiki.qemu-project.org/Contribute/SubmitAPatch
# This patch queue is auto-generated from https://github.com/openSUSE/qemu
PATCH_FILES
@ -52,7 +52,6 @@ BuildRequires: libattr-devel
%if 0%{?suse_version} > 1220
BuildRequires: makeinfo
%endif
BuildRequires: ncurses-devel
%if 0%{?suse_version} >= 1220
BuildRequires: pcre-devel-static
%endif
@ -80,23 +79,76 @@ emulations. This can be used together with the OBS build script to
run cross-architecture builds.
%prep
%setup -q -n qemu-2.9.0-rc2
%setup -q -n qemu-2.9.0-rc4
PATCH_EXEC
%build
./configure --prefix=%_prefix --sysconfdir=%_sysconfdir \
./configure \
--prefix=%_prefix \
--sysconfdir=%_sysconfdir \
--libdir=%_libdir \
--libexecdir=%_libexecdir \
--enable-linux-user \
--localstatedir=%_localstatedir \
--extra-cflags="%{optflags}" \
--disable-stack-protector \
--disable-system \
--disable-tools \
--disable-guest-agent \
--static --disable-linux-aio \
--disable-fdt \
--without-pixman \
--disable-blobs \
--disable-strip \
--extra-cflags="%{optflags}"
--disable-system --enable-linux-user \
--disable-tools --disable-guest-agent \
--static \
--disable-modules \
--disable-pie \
--disable-docs \
--audio-drv-list="" \
--enable-attr \
--disable-blobs \
--disable-bluez \
--disable-brlapi \
--disable-bzip2 \
--disable-cap-ng \
--enable-coroutine-pool \
--disable-curl \
--disable-curses \
--disable-fdt \
--disable-gcrypt \
--disable-glusterfs \
--disable-gnutls \
--disable-gtk \
--disable-hax \
--disable-jemalloc \
--disable-kvm \
--disable-libiscsi \
--disable-linux-aio \
--disable-lzo \
--disable-netmap \
--disable-nettle \
--disable-numa \
--disable-opengl \
--without-pixman \
--disable-rbd \
--disable-rdma \
--disable-replication \
--disable-sdl \
--disable-seccomp \
--disable-smartcard \
--disable-snappy \
--disable-spice \
--disable-tcmalloc \
--disable-tpm \
--disable-usb-redir \
--disable-vde \
--disable-vhost-net \
--disable-virglrenderer \
--disable-virtfs \
--disable-vnc \
--disable-vnc-jpeg \
--disable-vnc-png \
--disable-vnc-sasl \
--disable-vte \
--disable-xen \
--disable-xen-pci-passthrough \
--disable-xen-pv-domain-build \
--disable-xfsctl \
%if 0%{?suse_version} == 1140
# -lrt needs to come after -lglib-2.0 to avoid undefined clock_gettime
sed -i "s/-lglib-2.0/-lglib-2.0 -lrt/" config-host.mak
@ -137,26 +189,19 @@ make %{?_smp_mflags} V=1
%install
make install DESTDIR=%{buildroot}
%{__rm} -rf %{buildroot}%_datadir/doc
%{__rm} -rf %{buildroot}%_mandir/man1/qemu.1
%{__rm} -rf %{buildroot}%_mandir/man1/qemu-img.1
%{__rm} -rf %{buildroot}%_mandir/man8/qemu-nbd.8
%{__rm} -rf %{buildroot}%_datadir/qemu/keymaps
%{__rm} -rf %{buildroot}%_datadir/qemu/trace-events-all
%{__rm} -rf %{buildroot}%_sysconfdir/qemu/target-x86_64.conf
%{__rm} -rf %{buildroot}%_libexecdir/qemu-bridge-helper
%{__install} -d -m 755 %{buildroot}%_sbindir
%{__install} -m 755 scripts/qemu-binfmt-conf.sh %{buildroot}%_sbindir
rm -rf %{buildroot}%_datadir/qemu/keymaps
unlink %{buildroot}%_datadir/qemu/trace-events-all
unlink %{buildroot}%_libexecdir/qemu-bridge-helper
install -d -m 755 %{buildroot}%_sbindir
install -m 755 scripts/qemu-binfmt-conf.sh %{buildroot}%_sbindir
%ifnarch %ix86 x86_64
ln -sf ../../../emul/ia32-linux %{buildroot}%_datadir/qemu/qemu-i386
%endif
%ifnarch ia64
%{__mkdir} -p %{buildroot}/emul/ia32-linux
%endif
mkdir -p %{buildroot}/emul/ia32-linux
%fdupes -s %{buildroot}
%clean
%{__rm} -rf %{buildroot}
rm -rf %{buildroot}
%files
%defattr(-, root, root)
@ -192,13 +237,10 @@ ln -sf ../../../emul/ia32-linux %{buildroot}%_datadir/qemu/qemu-i386
%_bindir/qemu-x86_64
%_bindir/qemu-*-binfmt
%_sbindir/qemu-binfmt-conf.sh
%ifnarch %ix86 x86_64 ia64
%dir /emul/ia32-linux
%endif
%ifnarch %ix86 x86_64
%dir /emul/ia32-linux
%dir %_datadir/qemu
%_datadir/qemu/qemu-i386
%endif
%doc %_mandir/man7/qemu-qmp-ref.7.gz
%changelog

View File

@ -1,3 +1,43 @@
-------------------------------------------------------------------
Wed Apr 12 15:15:25 UTC 2017 - brogers@suse.com
- Add empty keyboard queue tracepoint to help openQA testing work
better (bsc#1031692)
0048-input-Add-trace-event-for-empty-key.patch
- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.9
-------------------------------------------------------------------
Tue Apr 11 19:32:00 UTC 2017 - brogers@suse.com
- Updated to v2.9.0-rc4: See http://wiki.qemu-project.org/ChangeLog/2.9
- Enable ceph/rbd support for s390x (bsc#1030068)
- Enable ceph/rbd support for ppc* as available
- Update ARM in-kernel-timers patch (bsc#1033416)
* Patches renamed:
0041-ARM-KVM-Enable-in-kernel-timers-wit.patch -> 0047-ARM-KVM-Enable-in-kernel-timers-wit.patch
0042-string-input-visitor-Fix-uint64-par.patch -> 0041-string-input-visitor-Fix-uint64-par.patch
0043-test-string-input-visitor-Add-int-t.patch -> 0042-test-string-input-visitor-Add-int-t.patch
0044-test-string-input-visitor-Add-uint6.patch -> 0043-test-string-input-visitor-Add-uint6.patch
0045-tests-Add-QOM-property-unit-tests.patch -> 0044-tests-Add-QOM-property-unit-tests.patch
0046-tests-Add-scsi-disk-test.patch -> 0045-tests-Add-scsi-disk-test.patch
* Patches added (support patch):
0046-RFC-update-Linux-headers-from-irqs-.patch
- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.9
-------------------------------------------------------------------
Wed Apr 5 16:50:48 UTC 2017 - brogers@suse.com
- Updated to v2.9.0-rc3: See http://wiki.qemu-project.org/ChangeLog/2.9
* Patches dropped (included in upstream source archive):
0047-hw-intc-arm_gicv3_kvm-Check-KVM_DEV.patch
0048-i386-Replace-uint32_t-with-FeatureW.patch
0049-i386-Don-t-override-cpu-options-on-.patch
- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.9
- Added additional documentation provided with v2.9.0
- Fix build failure with gcc7 (bsc#1031340)
ipxe-build-Avoid-implicit-fallthrough-warnings-on-GCC-7.patch
- Made miscellaneous spec file refinements
-------------------------------------------------------------------
Thu Mar 30 22:46:43 UTC 2017 - brogers@suse.com

View File

@ -18,7 +18,7 @@
%define noarch_supported 1110
%define build_x86_fw_from_source 0
%define build_x86_firmware_from_source 0
%define build_slof_from_source 0
%define kvm_available 0
%define legacy_qemu_kvm 0
@ -26,7 +26,7 @@
%ifarch %ix86 x86_64
# choice of building all from source or using provided binary x86 blobs
%if 0%{?suse_version} >= 1310
%define build_x86_fw_from_source 1
%define build_x86_firmware_from_source 1
%endif
%endif
@ -64,6 +64,24 @@
%endif
%endif
%ifarch ppc64le
%if 0%{?suse_version} > 1320 || ( 0%{?is_opensuse} == 0 && 0%{?sle_version} > 120200 )
%define with_rbd 1
%endif
%endif
%ifarch s390x
%if 0%{?is_opensuse} == 0 && 0%{?sle_version} > 120200
%define with_rbd 1
%endif
%endif
%ifarch ppc64
%if 0%{?is_opensuse} && 0%{?sle_version} > 120200
%define with_rbd 1
%endif
%endif
%if 0%{?suse_version} > 1320
%define with_seccomp 1
%endif
@ -91,10 +109,10 @@ Url: http://www.qemu.org/
Summary: Universal CPU emulator
License: BSD-3-Clause and GPL-2.0 and GPL-2.0+ and LGPL-2.1+ and MIT
Group: System/Emulators/PC
Version: 2.8.92
Version: 2.8.94
Release: 0
Source: http://wiki.qemu.org/download/qemu-2.9.0-rc2.tar.xz
Source99: http://wiki.qemu.org/download/qemu-2.9.0-rc2.tar.xz.sig
Source: http://wiki.qemu.org/download/qemu-2.9.0-rc4.tar.xz
Source99: http://wiki.qemu.org/download/qemu-2.9.0-rc4.tar.xz.sig
Source1: 80-kvm.rules
Source2: qemu-ifup
Source3: kvm_stat
@ -152,34 +170,30 @@ Patch0037: 0037-i8254-Fix-migration-from-SLE11-SP2.patch
Patch0038: 0038-acpi_piix4-Fix-migration-from-SLE11.patch
Patch0039: 0039-Fix-tigervnc-long-press-issue.patch
Patch0040: 0040-fix-xen-hvm-direct-kernel-boot.patch
Patch0041: 0041-ARM-KVM-Enable-in-kernel-timers-wit.patch
Patch0042: 0042-string-input-visitor-Fix-uint64-par.patch
Patch0043: 0043-test-string-input-visitor-Add-int-t.patch
Patch0044: 0044-test-string-input-visitor-Add-uint6.patch
Patch0045: 0045-tests-Add-QOM-property-unit-tests.patch
Patch0046: 0046-tests-Add-scsi-disk-test.patch
Patch0047: 0047-hw-intc-arm_gicv3_kvm-Check-KVM_DEV.patch
Patch0048: 0048-i386-Replace-uint32_t-with-FeatureW.patch
Patch0049: 0049-i386-Don-t-override-cpu-options-on-.patch
Patch0041: 0041-string-input-visitor-Fix-uint64-par.patch
Patch0042: 0042-test-string-input-visitor-Add-int-t.patch
Patch0043: 0043-test-string-input-visitor-Add-uint6.patch
Patch0044: 0044-tests-Add-QOM-property-unit-tests.patch
Patch0045: 0045-tests-Add-scsi-disk-test.patch
Patch0046: 0046-RFC-update-Linux-headers-from-irqs-.patch
Patch0047: 0047-ARM-KVM-Enable-in-kernel-timers-wit.patch
Patch0048: 0048-input-Add-trace-event-for-empty-key.patch
# Please do not add QEMU patches manually here.
# Run update_git.sh to regenerate this queue.
%if %{build_x86_fw_from_source}
# SeaBIOS / SeaVGABIOS (Currently no patches)
# ipxe
# PATCH-FIX-OPENSUSE ipxe-stable-buildid.patch brogers@suse.com -- reproducible builds
Patch1100: ipxe-stable-buildid.patch
Patch1101: ipxe-use-gcc6-for-more-compact-code.patch
Patch1102: ipxe-build-Avoid-implicit-fallthrough-warnings-on-GCC-7.patch
# sgabios
# PATCH-FIX-OPENSUSE sgabios-stable-buildid.patch brogers@suse.com -- reproducible builds
Patch1200: sgabios-stable-buildid.patch
%endif
%if %{build_slof_from_source}
# SLOF (Currently no patches)
%endif
# this is to make lint happy
Source300: qemu-rpmlintrc
@ -196,7 +210,7 @@ BuildRequires: SDL-devel
BuildRequires: SDL2-devel
%endif
BuildRequires: alsa-devel
%if %{?build_x86_fw_from_source}
%if %{build_x86_firmware_from_source}
BuildRequires: binutils-devel
%endif
BuildRequires: bluez-devel
@ -205,13 +219,13 @@ BuildRequires: brlapi-devel
%endif
BuildRequires: curl-devel
BuildRequires: cyrus-sasl-devel
%if %{build_x86_fw_from_source}
%if %{build_x86_firmware_from_source}
BuildRequires: iasl
%endif
BuildRequires: e2fsprogs-devel
BuildRequires: fdupes
BuildRequires: gcc-c++
%if %{build_x86_fw_from_source}
%if %{build_x86_firmware_from_source}
BuildRequires: gcc6
%endif
BuildRequires: glib2-devel
@ -299,7 +313,7 @@ BuildRequires: makeinfo
%endif
BuildRequires: Mesa-devel
BuildRequires: ncurses-devel
%if %{?build_x86_fw_from_source}
%if %{build_x86_firmware_from_source}
BuildRequires: ovmf-tools
%endif
BuildRequires: pkgconfig
@ -333,19 +347,33 @@ BuildRequires: vte2-devel
BuildRequires: xen-devel
%endif
BuildRequires: xfsprogs-devel
%if %{build_x86_fw_from_source}
%if %{build_x86_firmware_from_source}
BuildRequires: xz-devel
%endif
BuildRequires: zlib-devel
%if "%{name}" == "qemu-testsuite"
BuildRequires: bc
BuildRequires: qemu-arm = %version
BuildRequires: qemu-block-curl = %version
BuildRequires: qemu-block-dmg = %version
BuildRequires: qemu-extra = %version
BuildRequires: qemu-guest-agent = %version
BuildRequires: qemu-ppc = %version
BuildRequires: qemu-s390 = %version
BuildRequires: qemu-tools = %version
BuildRequires: qemu-x86 = %version
%if 0%{?suse_version} >= 1310 && 0%{?suse_version} != 1315
BuildRequires: qemu-block-gluster = %version
%endif
%if 0%{?suse_version} > 1320 || ( 0%{?suse_version} == 1315 && 0%{?sle_version} > 120100 )
BuildRequires: qemu-block-iscsi = %version
%endif
%if 0%{?with_rbd}
BuildRequires: qemu-block-rbd = %version
%endif
%if 0%{?suse_version} > 1140
BuildRequires: qemu-block-ssh = %version
%endif
%endif
Requires(pre): pwdutils
Requires(post): coreutils
@ -397,16 +425,50 @@ Suggests: qemu-lang
Recommends: qemu-ksm = %{version}
%endif
%ifarch x86_64
%define x86_64_only_b_f_f {efi-e1000.rom efi-e1000e.rom efi-eepro100.rom \
efi-pcnet.rom efi-ne2k_pci.rom efi-rtl8139.rom efi-virtio.rom efi-vmxnet3.rom}
%if %{build_slof_from_source}
%define ppc_default_built_firmware {%nil}
%define ppc_extra_built_firmware {slof.bin}
%endif
%define built_firmware_files {bios.bin bios-256k.bin sgabios.bin vgabios.bin \
vgabios-cirrus.bin vgabios-stdvga.bin vgabios-virtio.bin vgabios-vmware.bin \
vgabios-qxl.bin optionrom/linuxboot.bin optionrom/linuxboot_dma.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 \
%{?x86_64_only_b_f_f}}
%ifarch ppc64
%define ppc64_only_default_built_firmware {spapr-rtas.bin}
%define ppc64_only_extra_built_firmware {%nil}
%endif
%ifarch s390x
%define s390x_default_built_firmware {s390-ccw.img}
%define s390x_extra_built_firmware {%nil}
%endif
%ifarch %ix86 x86_64
%define x86_default_built_firmware {linuxboot.bin linuxboot_dma.bin \
multiboot.bin kvmvapic.bin}
%ifarch x86_64
%define x86_64_only_default_built_firmware {%nil}
%endif
%endif
%define x86_extra_built_firmware_list {bios.bin bios-256k.bin sgabios.bin \
vgabios.bin vgabios-cirrus.bin vgabios-stdvga.bin vgabios-virtio.bin \
vgabios-vmware.bin vgabios-qxl.bin pxe-e1000.rom pxe-pcnet.rom \
pxe-ne2k_pci.rom pxe-rtl8139.rom pxe-eepro100.rom pxe-virtio.rom}
%define x86_64_only_extra_built_firmware_list {efi-e1000.rom efi-e1000e.rom \
efi-eepro100.rom efi-pcnet.rom efi-ne2k_pci.rom efi-rtl8139.rom efi-virtio.rom \
efi-vmxnet3.rom}
%if %{build_x86_firmware_from_source}
%define x86_extra_built_firmware %{x86_extra_built_firmware_list}
%ifarch x86_64
%define x86_64_only_extra_built_firmware %{x86_64_only_extra_built_firmware_list}
%endif
%endif
%define built_firmware { \
%{?ppc_default_built_firmware} %{?ppc_extra_built_firmware} \
%{?ppc64_only_default_built_firmware} %{?ppc64_only_extra_built_firmware} \
%{?s390x_default_built_firmware} %{?s390x_extra_built_firmware} \
%{?x86_default_built_firmware} %{?x86_extra_built_firmware} \
%{?x86_64_only_default_built_firmware} %{?x86_64_only_extra_built_firmware} }
%description
QEMU is an extremely well-performing CPU emulator that allows you to
@ -755,7 +817,7 @@ This package provides a service file for starting and stopping KSM.
%endif # !qemu-testsuite
%prep
%setup -q -n qemu-2.9.0-rc2
%setup -q -n qemu-2.9.0-rc4
%patch0001 -p1
%patch0002 -p1
%patch0003 -p1
@ -804,29 +866,25 @@ This package provides a service file for starting and stopping KSM.
%patch0046 -p1
%patch0047 -p1
%patch0048 -p1
%patch0049 -p1
%if %{build_x86_fw_from_source}
pushd roms/ipxe
%patch1100 -p1
%patch1101 -p1
%patch1102 -p1
popd
pushd roms/sgabios
%patch1200 -p1
popd
# as a safeguard, delete the firmware files that we intend to build
for i in %built_firmware_files
do
rm -f pc-bios/$i
done
%endif
%if %{build_slof_from_source}
pushd roms/SLOF
popd
rm -f pc-bios/slof.bin
%endif
# as a safeguard, delete the firmware files that we intend to build
for i in %built_firmware
do
unlink pc-bios/$i
done
%build
echo '%{version}' > roms/seabios/.version
@ -836,6 +894,7 @@ echo '%{version}' > roms/seabios/.version
--libdir=%_libdir \
--libexecdir=%_libexecdir \
--localstatedir=%_localstatedir \
--docdir=%_docdir/qemu \
--extra-cflags="%{optflags}" \
--disable-stack-protector \
--disable-strip \
@ -918,6 +977,7 @@ echo '%{version}' > roms/seabios/.version
%if 0%{?suse_version} >= 1320 || ( 0%{?suse_version} == 1315 && 0%{?sle_version} > 120100 )
--enable-opengl \
%endif
--with-system-pixman \
%if 0%{?with_rbd}
--enable-rbd \
%else
@ -987,8 +1047,19 @@ echo '%{version}' > roms/seabios/.version
make %{?_smp_mflags} V=1
# Firmware
%if %{build_x86_fw_from_source}
%ifarch s390x
cp pc-bios/s390-ccw/s390-ccw.img pc-bios/
%endif
%ifarch ppc64
cp pc-bios/spapr-rtas/spapr-rtas.bin pc-bios/
%endif
%if %{build_x86_firmware_from_source}
cp pc-bios/optionrom/{multiboot.bin,linuxboot.bin,linuxboot_dma.bin,kvmvapic.bin} pc-bios/
make %{?_smp_mflags} -C roms bios
make %{?_smp_mflags} -C roms seavgabios
make %{?_smp_mflags} -C roms pxerom
%ifarch x86_64
@ -1022,24 +1093,21 @@ for i in %supported_nics_small
fi
done
%endif
%if %{build_slof_from_source}
make %{?_smp_mflags} -C roms slof
%endif
%ifarch s390x
cp pc-bios/s390-ccw/s390-ccw.img pc-bios/s390-ccw.img
%endif
%else # qemu-testsuite
ln -s %{_bindir}/qemu-img qemu-img
ln -s %{_bindir}/qemu-ga qemu-ga
ln -s %{_bindir}/qemu-io qemu-io
%if %{build_x86_fw_from_source}
for i in %built_firmware_files
for i in %built_firmware
do
ln -s %{_datadir}/qemu/$i pc-bios/$i
done
%endif
for conf in default-configs/*-softmmu.mak; do
arch=`echo "$conf" | sed -e 's|default-configs/\(.*\)-softmmu.mak|\1|g'`
@ -1047,7 +1115,10 @@ for conf in default-configs/*-softmmu.mak; do
done
# Compile the QOM test binary first, so that ...
touch -r config-host.mak pc-bios
make tests/qom-test %{?_smp_mflags} V=1
# Firmware
# ... make comes in fresh and has lots of address space (needed for 32bit, bsc#957379)
%if 0%{?suse_version} >= 1310
make check-report.html V=1
@ -1094,16 +1165,14 @@ format=`qemu-img info test.tar | grep "file format:" | cut -d ':' -f 2 | tr -d '
%install
%if "%{name}" != "qemu-testsuite"
touch -r config-host.mak pc-bios
make install DESTDIR=%{buildroot}
rm -fr %{buildroot}%{_datadir}/doc
%if ! %{build_x86_fw_from_source}
for f in acpi-dsdt.aml bios-256k.bin bios.bin efi-*.rom pxe-*.rom sgabios.bin \
vgabios-cirrus.bin vgabios-qxl.bin vgabios-stdvga.bin vgabios-virtio.bin vgabios-vmware.bin \
vgabios.bin; do
rm %{buildroot}%{_datadir}/%name/$f
%ifnarch %ix86 x86_64
for f in acpi-dsdt.aml %{x86_extra_built_firmware_list} \
%{x86_64_only_extra_built_firmware_list}; do
unlink %{buildroot}%{_datadir}/%name/$f
done
%endif
# rm -f %{buildroot}%{_datadir}/%{name}/u-boot.e500
%find_lang %name
install -D -m 644 %{SOURCE302} %{buildroot}%{_sysconfdir}/qemu/bridge.conf
install -D -m 755 %{SOURCE2} %{buildroot}/usr/share/qemu/qemu-ifup
@ -1257,10 +1326,16 @@ fi
%files
%defattr(-, root, root)
%if "%{name}" != "qemu-testsuite"
%doc COPYING COPYING.LIB Changelog README VERSION qemu-doc.html
%doc %_mandir/man1/qemu.1.gz
%doc %_mandir/man7/qemu-qmp-ref.7.gz
%doc %_mandir/man7/qemu-ga-ref.7.gz
%doc COPYING COPYING.LIB Changelog README VERSION
%_docdir/%name/qemu-doc.txt
%_docdir/%name/qemu-doc.html
%_docdir/%name/qemu-qmp-ref.txt
%_docdir/%name/qemu-qmp-ref.html
%_docdir/%name/qemu-ga-ref.txt
%_docdir/%name/qemu-ga-ref.html
%_mandir/man1/qemu.1.gz
%_mandir/man7/qemu-qmp-ref.7.gz
%_mandir/man7/qemu-ga-ref.7.gz
%dir %_datadir/%name
%_datadir/%name/keymaps
%_datadir/%name/trace-events-all
@ -1369,7 +1444,7 @@ fi
%files kvm
%defattr(-,root,root)
%_bindir/qemu-kvm
%doc %_mandir/man1/qemu-kvm.1.gz
%_mandir/man1/qemu-kvm.1.gz
%if 0%{?is_opensuse} == 0
%dir %_docdir/qemu-kvm
%_docdir/qemu-kvm/kvm-supported.txt
@ -1417,7 +1492,7 @@ fi
%files lang -f %name.lang
%defattr(-, root, root)
%if %{build_x86_fw_from_source}
%if %{build_x86_firmware_from_source}
%files seabios
%defattr(-, root, root)
%dir %_datadir/%name
@ -1461,9 +1536,9 @@ fi
%files tools
%defattr(-, root, root)
%doc %_mandir/man1/qemu-img.1.gz
%doc %_mandir/man1/virtfs-proxy-helper.1.gz
%doc %_mandir/man8/qemu-nbd.8.gz
%_mandir/man1/qemu-img.1.gz
%_mandir/man1/virtfs-proxy-helper.1.gz
%_mandir/man8/qemu-nbd.8.gz
%_bindir/ivshmem-client
%_bindir/ivshmem-server
%_bindir/qemu-io
@ -1477,7 +1552,7 @@ fi
%files guest-agent
%defattr(-, root, root)
%doc %_mandir/man8/qemu-ga.8.gz
%_mandir/man8/qemu-ga.8.gz
%attr(755,root,kvm) %_bindir/qemu-ga
%if 0%{?with_systemd}
%{_unitdir}/qemu-ga.service
@ -1491,9 +1566,9 @@ fi
%endif
%else # qemu-testsuite
%doc %_datadir/qemu/check-report.xml
%_datadir/qemu/check-report.xml
%if 0%{?suse_version} >= 1310
%doc %_datadir/qemu/check-report.html
%_datadir/qemu/check-report.html
%endif
%endif

View File

@ -1,3 +1,43 @@
-------------------------------------------------------------------
Wed Apr 12 15:15:25 UTC 2017 - brogers@suse.com
- Add empty keyboard queue tracepoint to help openQA testing work
better (bsc#1031692)
0048-input-Add-trace-event-for-empty-key.patch
- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.9
-------------------------------------------------------------------
Tue Apr 11 19:32:00 UTC 2017 - brogers@suse.com
- Updated to v2.9.0-rc4: See http://wiki.qemu-project.org/ChangeLog/2.9
- Enable ceph/rbd support for s390x (bsc#1030068)
- Enable ceph/rbd support for ppc* as available
- Update ARM in-kernel-timers patch (bsc#1033416)
* Patches renamed:
0041-ARM-KVM-Enable-in-kernel-timers-wit.patch -> 0047-ARM-KVM-Enable-in-kernel-timers-wit.patch
0042-string-input-visitor-Fix-uint64-par.patch -> 0041-string-input-visitor-Fix-uint64-par.patch
0043-test-string-input-visitor-Add-int-t.patch -> 0042-test-string-input-visitor-Add-int-t.patch
0044-test-string-input-visitor-Add-uint6.patch -> 0043-test-string-input-visitor-Add-uint6.patch
0045-tests-Add-QOM-property-unit-tests.patch -> 0044-tests-Add-QOM-property-unit-tests.patch
0046-tests-Add-scsi-disk-test.patch -> 0045-tests-Add-scsi-disk-test.patch
* Patches added (support patch):
0046-RFC-update-Linux-headers-from-irqs-.patch
- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.9
-------------------------------------------------------------------
Wed Apr 5 16:50:48 UTC 2017 - brogers@suse.com
- Updated to v2.9.0-rc3: See http://wiki.qemu-project.org/ChangeLog/2.9
* Patches dropped (included in upstream source archive):
0047-hw-intc-arm_gicv3_kvm-Check-KVM_DEV.patch
0048-i386-Replace-uint32_t-with-FeatureW.patch
0049-i386-Don-t-override-cpu-options-on-.patch
- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.9
- Added additional documentation provided with v2.9.0
- Fix build failure with gcc7 (bsc#1031340)
ipxe-build-Avoid-implicit-fallthrough-warnings-on-GCC-7.patch
- Made miscellaneous spec file refinements
-------------------------------------------------------------------
Thu Mar 30 22:46:43 UTC 2017 - brogers@suse.com

217
qemu.spec
View File

@ -18,7 +18,7 @@
%define noarch_supported 1110
%define build_x86_fw_from_source 0
%define build_x86_firmware_from_source 0
%define build_slof_from_source 0
%define kvm_available 0
%define legacy_qemu_kvm 0
@ -26,7 +26,7 @@
%ifarch %ix86 x86_64
# choice of building all from source or using provided binary x86 blobs
%if 0%{?suse_version} >= 1310
%define build_x86_fw_from_source 1
%define build_x86_firmware_from_source 1
%endif
%endif
@ -64,6 +64,24 @@
%endif
%endif
%ifarch ppc64le
%if 0%{?suse_version} > 1320 || ( 0%{?is_opensuse} == 0 && 0%{?sle_version} > 120200 )
%define with_rbd 1
%endif
%endif
%ifarch s390x
%if 0%{?is_opensuse} == 0 && 0%{?sle_version} > 120200
%define with_rbd 1
%endif
%endif
%ifarch ppc64
%if 0%{?is_opensuse} && 0%{?sle_version} > 120200
%define with_rbd 1
%endif
%endif
%if 0%{?suse_version} > 1320
%define with_seccomp 1
%endif
@ -91,10 +109,10 @@ Url: http://www.qemu.org/
Summary: Universal CPU emulator
License: BSD-3-Clause and GPL-2.0 and GPL-2.0+ and LGPL-2.1+ and MIT
Group: System/Emulators/PC
Version: 2.8.92
Version: 2.8.94
Release: 0
Source: http://wiki.qemu.org/download/qemu-2.9.0-rc2.tar.xz
Source99: http://wiki.qemu.org/download/qemu-2.9.0-rc2.tar.xz.sig
Source: http://wiki.qemu.org/download/qemu-2.9.0-rc4.tar.xz
Source99: http://wiki.qemu.org/download/qemu-2.9.0-rc4.tar.xz.sig
Source1: 80-kvm.rules
Source2: qemu-ifup
Source3: kvm_stat
@ -152,34 +170,30 @@ Patch0037: 0037-i8254-Fix-migration-from-SLE11-SP2.patch
Patch0038: 0038-acpi_piix4-Fix-migration-from-SLE11.patch
Patch0039: 0039-Fix-tigervnc-long-press-issue.patch
Patch0040: 0040-fix-xen-hvm-direct-kernel-boot.patch
Patch0041: 0041-ARM-KVM-Enable-in-kernel-timers-wit.patch
Patch0042: 0042-string-input-visitor-Fix-uint64-par.patch
Patch0043: 0043-test-string-input-visitor-Add-int-t.patch
Patch0044: 0044-test-string-input-visitor-Add-uint6.patch
Patch0045: 0045-tests-Add-QOM-property-unit-tests.patch
Patch0046: 0046-tests-Add-scsi-disk-test.patch
Patch0047: 0047-hw-intc-arm_gicv3_kvm-Check-KVM_DEV.patch
Patch0048: 0048-i386-Replace-uint32_t-with-FeatureW.patch
Patch0049: 0049-i386-Don-t-override-cpu-options-on-.patch
Patch0041: 0041-string-input-visitor-Fix-uint64-par.patch
Patch0042: 0042-test-string-input-visitor-Add-int-t.patch
Patch0043: 0043-test-string-input-visitor-Add-uint6.patch
Patch0044: 0044-tests-Add-QOM-property-unit-tests.patch
Patch0045: 0045-tests-Add-scsi-disk-test.patch
Patch0046: 0046-RFC-update-Linux-headers-from-irqs-.patch
Patch0047: 0047-ARM-KVM-Enable-in-kernel-timers-wit.patch
Patch0048: 0048-input-Add-trace-event-for-empty-key.patch
# Please do not add QEMU patches manually here.
# Run update_git.sh to regenerate this queue.
%if %{build_x86_fw_from_source}
# SeaBIOS / SeaVGABIOS (Currently no patches)
# ipxe
# PATCH-FIX-OPENSUSE ipxe-stable-buildid.patch brogers@suse.com -- reproducible builds
Patch1100: ipxe-stable-buildid.patch
Patch1101: ipxe-use-gcc6-for-more-compact-code.patch
Patch1102: ipxe-build-Avoid-implicit-fallthrough-warnings-on-GCC-7.patch
# sgabios
# PATCH-FIX-OPENSUSE sgabios-stable-buildid.patch brogers@suse.com -- reproducible builds
Patch1200: sgabios-stable-buildid.patch
%endif
%if %{build_slof_from_source}
# SLOF (Currently no patches)
%endif
# this is to make lint happy
Source300: qemu-rpmlintrc
@ -196,7 +210,7 @@ BuildRequires: SDL-devel
BuildRequires: SDL2-devel
%endif
BuildRequires: alsa-devel
%if %{?build_x86_fw_from_source}
%if %{build_x86_firmware_from_source}
BuildRequires: binutils-devel
%endif
BuildRequires: bluez-devel
@ -205,13 +219,13 @@ BuildRequires: brlapi-devel
%endif
BuildRequires: curl-devel
BuildRequires: cyrus-sasl-devel
%if %{build_x86_fw_from_source}
%if %{build_x86_firmware_from_source}
BuildRequires: iasl
%endif
BuildRequires: e2fsprogs-devel
BuildRequires: fdupes
BuildRequires: gcc-c++
%if %{build_x86_fw_from_source}
%if %{build_x86_firmware_from_source}
BuildRequires: gcc6
%endif
BuildRequires: glib2-devel
@ -299,7 +313,7 @@ BuildRequires: makeinfo
%endif
BuildRequires: Mesa-devel
BuildRequires: ncurses-devel
%if %{?build_x86_fw_from_source}
%if %{build_x86_firmware_from_source}
BuildRequires: ovmf-tools
%endif
BuildRequires: pkgconfig
@ -333,19 +347,33 @@ BuildRequires: vte2-devel
BuildRequires: xen-devel
%endif
BuildRequires: xfsprogs-devel
%if %{build_x86_fw_from_source}
%if %{build_x86_firmware_from_source}
BuildRequires: xz-devel
%endif
BuildRequires: zlib-devel
%if "%{name}" == "qemu-testsuite"
BuildRequires: bc
BuildRequires: qemu-arm = %version
BuildRequires: qemu-block-curl = %version
BuildRequires: qemu-block-dmg = %version
BuildRequires: qemu-extra = %version
BuildRequires: qemu-guest-agent = %version
BuildRequires: qemu-ppc = %version
BuildRequires: qemu-s390 = %version
BuildRequires: qemu-tools = %version
BuildRequires: qemu-x86 = %version
%if 0%{?suse_version} >= 1310 && 0%{?suse_version} != 1315
BuildRequires: qemu-block-gluster = %version
%endif
%if 0%{?suse_version} > 1320 || ( 0%{?suse_version} == 1315 && 0%{?sle_version} > 120100 )
BuildRequires: qemu-block-iscsi = %version
%endif
%if 0%{?with_rbd}
BuildRequires: qemu-block-rbd = %version
%endif
%if 0%{?suse_version} > 1140
BuildRequires: qemu-block-ssh = %version
%endif
%endif
Requires(pre): pwdutils
Requires(post): coreutils
@ -397,16 +425,50 @@ Suggests: qemu-lang
Recommends: qemu-ksm = %{version}
%endif
%ifarch x86_64
%define x86_64_only_b_f_f {efi-e1000.rom efi-e1000e.rom efi-eepro100.rom \
efi-pcnet.rom efi-ne2k_pci.rom efi-rtl8139.rom efi-virtio.rom efi-vmxnet3.rom}
%if %{build_slof_from_source}
%define ppc_default_built_firmware {%nil}
%define ppc_extra_built_firmware {slof.bin}
%endif
%define built_firmware_files {bios.bin bios-256k.bin sgabios.bin vgabios.bin \
vgabios-cirrus.bin vgabios-stdvga.bin vgabios-virtio.bin vgabios-vmware.bin \
vgabios-qxl.bin optionrom/linuxboot.bin optionrom/linuxboot_dma.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 \
%{?x86_64_only_b_f_f}}
%ifarch ppc64
%define ppc64_only_default_built_firmware {spapr-rtas.bin}
%define ppc64_only_extra_built_firmware {%nil}
%endif
%ifarch s390x
%define s390x_default_built_firmware {s390-ccw.img}
%define s390x_extra_built_firmware {%nil}
%endif
%ifarch %ix86 x86_64
%define x86_default_built_firmware {linuxboot.bin linuxboot_dma.bin \
multiboot.bin kvmvapic.bin}
%ifarch x86_64
%define x86_64_only_default_built_firmware {%nil}
%endif
%endif
%define x86_extra_built_firmware_list {bios.bin bios-256k.bin sgabios.bin \
vgabios.bin vgabios-cirrus.bin vgabios-stdvga.bin vgabios-virtio.bin \
vgabios-vmware.bin vgabios-qxl.bin pxe-e1000.rom pxe-pcnet.rom \
pxe-ne2k_pci.rom pxe-rtl8139.rom pxe-eepro100.rom pxe-virtio.rom}
%define x86_64_only_extra_built_firmware_list {efi-e1000.rom efi-e1000e.rom \
efi-eepro100.rom efi-pcnet.rom efi-ne2k_pci.rom efi-rtl8139.rom efi-virtio.rom \
efi-vmxnet3.rom}
%if %{build_x86_firmware_from_source}
%define x86_extra_built_firmware %{x86_extra_built_firmware_list}
%ifarch x86_64
%define x86_64_only_extra_built_firmware %{x86_64_only_extra_built_firmware_list}
%endif
%endif
%define built_firmware { \
%{?ppc_default_built_firmware} %{?ppc_extra_built_firmware} \
%{?ppc64_only_default_built_firmware} %{?ppc64_only_extra_built_firmware} \
%{?s390x_default_built_firmware} %{?s390x_extra_built_firmware} \
%{?x86_default_built_firmware} %{?x86_extra_built_firmware} \
%{?x86_64_only_default_built_firmware} %{?x86_64_only_extra_built_firmware} }
%description
QEMU is an extremely well-performing CPU emulator that allows you to
@ -755,7 +817,7 @@ This package provides a service file for starting and stopping KSM.
%endif # !qemu-testsuite
%prep
%setup -q -n qemu-2.9.0-rc2
%setup -q -n qemu-2.9.0-rc4
%patch0001 -p1
%patch0002 -p1
%patch0003 -p1
@ -804,29 +866,25 @@ This package provides a service file for starting and stopping KSM.
%patch0046 -p1
%patch0047 -p1
%patch0048 -p1
%patch0049 -p1
%if %{build_x86_fw_from_source}
pushd roms/ipxe
%patch1100 -p1
%patch1101 -p1
%patch1102 -p1
popd
pushd roms/sgabios
%patch1200 -p1
popd
# as a safeguard, delete the firmware files that we intend to build
for i in %built_firmware_files
do
rm -f pc-bios/$i
done
%endif
%if %{build_slof_from_source}
pushd roms/SLOF
popd
rm -f pc-bios/slof.bin
%endif
# as a safeguard, delete the firmware files that we intend to build
for i in %built_firmware
do
unlink pc-bios/$i
done
%build
echo '%{version}' > roms/seabios/.version
@ -836,6 +894,7 @@ echo '%{version}' > roms/seabios/.version
--libdir=%_libdir \
--libexecdir=%_libexecdir \
--localstatedir=%_localstatedir \
--docdir=%_docdir/qemu \
--extra-cflags="%{optflags}" \
--disable-stack-protector \
--disable-strip \
@ -918,6 +977,7 @@ echo '%{version}' > roms/seabios/.version
%if 0%{?suse_version} >= 1320 || ( 0%{?suse_version} == 1315 && 0%{?sle_version} > 120100 )
--enable-opengl \
%endif
--with-system-pixman \
%if 0%{?with_rbd}
--enable-rbd \
%else
@ -987,8 +1047,19 @@ echo '%{version}' > roms/seabios/.version
make %{?_smp_mflags} V=1
# Firmware
%if %{build_x86_fw_from_source}
%ifarch s390x
cp pc-bios/s390-ccw/s390-ccw.img pc-bios/
%endif
%ifarch ppc64
cp pc-bios/spapr-rtas/spapr-rtas.bin pc-bios/
%endif
%if %{build_x86_firmware_from_source}
cp pc-bios/optionrom/{multiboot.bin,linuxboot.bin,linuxboot_dma.bin,kvmvapic.bin} pc-bios/
make %{?_smp_mflags} -C roms bios
make %{?_smp_mflags} -C roms seavgabios
make %{?_smp_mflags} -C roms pxerom
%ifarch x86_64
@ -1022,24 +1093,21 @@ for i in %supported_nics_small
fi
done
%endif
%if %{build_slof_from_source}
make %{?_smp_mflags} -C roms slof
%endif
%ifarch s390x
cp pc-bios/s390-ccw/s390-ccw.img pc-bios/s390-ccw.img
%endif
%else # qemu-testsuite
ln -s %{_bindir}/qemu-img qemu-img
ln -s %{_bindir}/qemu-ga qemu-ga
ln -s %{_bindir}/qemu-io qemu-io
%if %{build_x86_fw_from_source}
for i in %built_firmware_files
for i in %built_firmware
do
ln -s %{_datadir}/qemu/$i pc-bios/$i
done
%endif
for conf in default-configs/*-softmmu.mak; do
arch=`echo "$conf" | sed -e 's|default-configs/\(.*\)-softmmu.mak|\1|g'`
@ -1047,7 +1115,10 @@ for conf in default-configs/*-softmmu.mak; do
done
# Compile the QOM test binary first, so that ...
touch -r config-host.mak pc-bios
make tests/qom-test %{?_smp_mflags} V=1
# Firmware
# ... make comes in fresh and has lots of address space (needed for 32bit, bsc#957379)
%if 0%{?suse_version} >= 1310
make check-report.html V=1
@ -1094,16 +1165,14 @@ format=`qemu-img info test.tar | grep "file format:" | cut -d ':' -f 2 | tr -d '
%install
%if "%{name}" != "qemu-testsuite"
touch -r config-host.mak pc-bios
make install DESTDIR=%{buildroot}
rm -fr %{buildroot}%{_datadir}/doc
%if ! %{build_x86_fw_from_source}
for f in acpi-dsdt.aml bios-256k.bin bios.bin efi-*.rom pxe-*.rom sgabios.bin \
vgabios-cirrus.bin vgabios-qxl.bin vgabios-stdvga.bin vgabios-virtio.bin vgabios-vmware.bin \
vgabios.bin; do
rm %{buildroot}%{_datadir}/%name/$f
%ifnarch %ix86 x86_64
for f in acpi-dsdt.aml %{x86_extra_built_firmware_list} \
%{x86_64_only_extra_built_firmware_list}; do
unlink %{buildroot}%{_datadir}/%name/$f
done
%endif
# rm -f %{buildroot}%{_datadir}/%{name}/u-boot.e500
%find_lang %name
install -D -m 644 %{SOURCE302} %{buildroot}%{_sysconfdir}/qemu/bridge.conf
install -D -m 755 %{SOURCE2} %{buildroot}/usr/share/qemu/qemu-ifup
@ -1257,10 +1326,16 @@ fi
%files
%defattr(-, root, root)
%if "%{name}" != "qemu-testsuite"
%doc COPYING COPYING.LIB Changelog README VERSION qemu-doc.html
%doc %_mandir/man1/qemu.1.gz
%doc %_mandir/man7/qemu-qmp-ref.7.gz
%doc %_mandir/man7/qemu-ga-ref.7.gz
%doc COPYING COPYING.LIB Changelog README VERSION
%_docdir/%name/qemu-doc.txt
%_docdir/%name/qemu-doc.html
%_docdir/%name/qemu-qmp-ref.txt
%_docdir/%name/qemu-qmp-ref.html
%_docdir/%name/qemu-ga-ref.txt
%_docdir/%name/qemu-ga-ref.html
%_mandir/man1/qemu.1.gz
%_mandir/man7/qemu-qmp-ref.7.gz
%_mandir/man7/qemu-ga-ref.7.gz
%dir %_datadir/%name
%_datadir/%name/keymaps
%_datadir/%name/trace-events-all
@ -1369,7 +1444,7 @@ fi
%files kvm
%defattr(-,root,root)
%_bindir/qemu-kvm
%doc %_mandir/man1/qemu-kvm.1.gz
%_mandir/man1/qemu-kvm.1.gz
%if 0%{?is_opensuse} == 0
%dir %_docdir/qemu-kvm
%_docdir/qemu-kvm/kvm-supported.txt
@ -1417,7 +1492,7 @@ fi
%files lang -f %name.lang
%defattr(-, root, root)
%if %{build_x86_fw_from_source}
%if %{build_x86_firmware_from_source}
%files seabios
%defattr(-, root, root)
%dir %_datadir/%name
@ -1461,9 +1536,9 @@ fi
%files tools
%defattr(-, root, root)
%doc %_mandir/man1/qemu-img.1.gz
%doc %_mandir/man1/virtfs-proxy-helper.1.gz
%doc %_mandir/man8/qemu-nbd.8.gz
%_mandir/man1/qemu-img.1.gz
%_mandir/man1/virtfs-proxy-helper.1.gz
%_mandir/man8/qemu-nbd.8.gz
%_bindir/ivshmem-client
%_bindir/ivshmem-server
%_bindir/qemu-io
@ -1477,7 +1552,7 @@ fi
%files guest-agent
%defattr(-, root, root)
%doc %_mandir/man8/qemu-ga.8.gz
%_mandir/man8/qemu-ga.8.gz
%attr(755,root,kvm) %_bindir/qemu-ga
%if 0%{?with_systemd}
%{_unitdir}/qemu-ga.service
@ -1491,9 +1566,9 @@ fi
%endif
%else # qemu-testsuite
%doc %_datadir/qemu/check-report.xml
%_datadir/qemu/check-report.xml
%if 0%{?suse_version} >= 1310
%doc %_datadir/qemu/check-report.html
%_datadir/qemu/check-report.html
%endif
%endif

View File

@ -17,7 +17,7 @@
%define noarch_supported 1110
%define build_x86_fw_from_source 0
%define build_x86_firmware_from_source 0
%define build_slof_from_source 0
%define kvm_available 0
%define legacy_qemu_kvm 0
@ -25,7 +25,7 @@
%ifarch %ix86 x86_64
# choice of building all from source or using provided binary x86 blobs
%if 0%{?suse_version} >= 1310
%define build_x86_fw_from_source 1
%define build_x86_firmware_from_source 1
%endif
%endif
@ -63,6 +63,25 @@
%endif
%endif
%ifarch ppc64le
%if 0%{?suse_version} > 1320 || ( 0%{?is_opensuse} == 0 && 0%{?sle_version} > 120200 )
%define with_rbd 1
%endif
%endif
%ifarch s390x
%if 0%{?is_opensuse} == 0 && 0%{?sle_version} > 120200
%define with_rbd 1
%endif
%endif
%ifarch ppc64
%if 0%{?is_opensuse} && 0%{?sle_version} > 120200
%define with_rbd 1
%endif
%endif
%if 0%{?suse_version} > 1320
%define with_seccomp 1
%endif
@ -92,8 +111,8 @@ License: BSD-3-Clause and GPL-2.0 and GPL-2.0+ and LGPL-2.1+ and MIT
Group: System/Emulators/PC
QEMU_VERSION
Release: 0
Source: http://wiki.qemu.org/download/qemu-2.9.0-rc2.tar.xz
Source99: http://wiki.qemu.org/download/qemu-2.9.0-rc2.tar.xz.sig
Source: http://wiki.qemu.org/download/qemu-2.9.0-rc4.tar.xz
Source99: http://wiki.qemu.org/download/qemu-2.9.0-rc4.tar.xz.sig
Source1: 80-kvm.rules
Source2: qemu-ifup
Source3: kvm_stat
@ -115,22 +134,19 @@ PATCH_FILES
# Please do not add QEMU patches manually here.
# Run update_git.sh to regenerate this queue.
%if %{build_x86_fw_from_source}
# SeaBIOS / SeaVGABIOS (Currently no patches)
# ipxe
# PATCH-FIX-OPENSUSE ipxe-stable-buildid.patch brogers@suse.com -- reproducible builds
Patch1100: ipxe-stable-buildid.patch
Patch1101: ipxe-use-gcc6-for-more-compact-code.patch
Patch1102: ipxe-build-Avoid-implicit-fallthrough-warnings-on-GCC-7.patch
# sgabios
# PATCH-FIX-OPENSUSE sgabios-stable-buildid.patch brogers@suse.com -- reproducible builds
Patch1200: sgabios-stable-buildid.patch
%endif
%if %{build_slof_from_source}
# SLOF (Currently no patches)
%endif
# this is to make lint happy
Source300: qemu-rpmlintrc
@ -147,7 +163,7 @@ BuildRequires: SDL-devel
BuildRequires: SDL2-devel
%endif
BuildRequires: alsa-devel
%if %{?build_x86_fw_from_source}
%if %{build_x86_firmware_from_source}
BuildRequires: binutils-devel
%endif
BuildRequires: bluez-devel
@ -156,13 +172,13 @@ BuildRequires: brlapi-devel
%endif
BuildRequires: curl-devel
BuildRequires: cyrus-sasl-devel
%if %{build_x86_fw_from_source}
%if %{build_x86_firmware_from_source}
BuildRequires: iasl
%endif
BuildRequires: e2fsprogs-devel
BuildRequires: fdupes
BuildRequires: gcc-c++
%if %{build_x86_fw_from_source}
%if %{build_x86_firmware_from_source}
BuildRequires: gcc6
%endif
BuildRequires: glib2-devel
@ -250,7 +266,7 @@ BuildRequires: makeinfo
%endif
BuildRequires: Mesa-devel
BuildRequires: ncurses-devel
%if %{?build_x86_fw_from_source}
%if %{build_x86_firmware_from_source}
BuildRequires: ovmf-tools
%endif
BuildRequires: pkgconfig
@ -284,7 +300,7 @@ BuildRequires: vte2-devel
BuildRequires: xen-devel
%endif
BuildRequires: xfsprogs-devel
%if %{build_x86_fw_from_source}
%if %{build_x86_firmware_from_source}
BuildRequires: xz-devel
%endif
BuildRequires: zlib-devel
@ -297,6 +313,20 @@ BuildRequires: qemu-ppc = %version
BuildRequires: qemu-s390 = %version
BuildRequires: qemu-tools = %version
BuildRequires: qemu-x86 = %version
BuildRequires: qemu-block-curl = %version
BuildRequires: qemu-block-dmg = %version
%if 0%{?suse_version} >= 1310 && 0%{?suse_version} != 1315
BuildRequires: qemu-block-gluster = %version
%endif
%if 0%{?suse_version} > 1320 || ( 0%{?suse_version} == 1315 && 0%{?sle_version} > 120100 )
BuildRequires: qemu-block-iscsi = %version
%endif
%if 0%{?with_rbd}
BuildRequires: qemu-block-rbd = %version
%endif
%if 0%{?suse_version} > 1140
BuildRequires: qemu-block-ssh = %version
%endif
%endif
Requires(pre): pwdutils
Requires(post): coreutils
@ -348,16 +378,50 @@ Suggests: qemu-lang
Recommends: qemu-ksm = %{version}
%endif
%ifarch x86_64
%define x86_64_only_b_f_f {efi-e1000.rom efi-e1000e.rom efi-eepro100.rom \
efi-pcnet.rom efi-ne2k_pci.rom efi-rtl8139.rom efi-virtio.rom efi-vmxnet3.rom}
%if %{build_slof_from_source}
%define ppc_default_built_firmware {%nil}
%define ppc_extra_built_firmware {slof.bin}
%endif
%define built_firmware_files {bios.bin bios-256k.bin sgabios.bin vgabios.bin \
vgabios-cirrus.bin vgabios-stdvga.bin vgabios-virtio.bin vgabios-vmware.bin \
vgabios-qxl.bin optionrom/linuxboot.bin optionrom/linuxboot_dma.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 \
%{?x86_64_only_b_f_f}}
%ifarch ppc64
%define ppc64_only_default_built_firmware {spapr-rtas.bin}
%define ppc64_only_extra_built_firmware {%nil}
%endif
%ifarch s390x
%define s390x_default_built_firmware {s390-ccw.img}
%define s390x_extra_built_firmware {%nil}
%endif
%ifarch %ix86 x86_64
%define x86_default_built_firmware {linuxboot.bin linuxboot_dma.bin \
multiboot.bin kvmvapic.bin}
%ifarch x86_64
%define x86_64_only_default_built_firmware {%nil}
%endif
%endif
%define x86_extra_built_firmware_list {bios.bin bios-256k.bin sgabios.bin \
vgabios.bin vgabios-cirrus.bin vgabios-stdvga.bin vgabios-virtio.bin \
vgabios-vmware.bin vgabios-qxl.bin pxe-e1000.rom pxe-pcnet.rom \
pxe-ne2k_pci.rom pxe-rtl8139.rom pxe-eepro100.rom pxe-virtio.rom}
%define x86_64_only_extra_built_firmware_list {efi-e1000.rom efi-e1000e.rom \
efi-eepro100.rom efi-pcnet.rom efi-ne2k_pci.rom efi-rtl8139.rom efi-virtio.rom \
efi-vmxnet3.rom}
%if %{build_x86_firmware_from_source}
%define x86_extra_built_firmware %{x86_extra_built_firmware_list}
%ifarch x86_64
%define x86_64_only_extra_built_firmware %{x86_64_only_extra_built_firmware_list}
%endif
%endif
%define built_firmware { \
%{?ppc_default_built_firmware} %{?ppc_extra_built_firmware} \
%{?ppc64_only_default_built_firmware} %{?ppc64_only_extra_built_firmware} \
%{?s390x_default_built_firmware} %{?s390x_extra_built_firmware} \
%{?x86_default_built_firmware} %{?x86_extra_built_firmware} \
%{?x86_64_only_default_built_firmware} %{?x86_64_only_extra_built_firmware} }
%description
QEMU is an extremely well-performing CPU emulator that allows you to
@ -706,30 +770,27 @@ This package provides a service file for starting and stopping KSM.
%endif # !qemu-testsuite
%prep
%setup -q -n qemu-2.9.0-rc2
%setup -q -n qemu-2.9.0-rc4
PATCH_EXEC
%if %{build_x86_fw_from_source}
pushd roms/ipxe
%patch1100 -p1
%patch1101 -p1
%patch1102 -p1
popd
pushd roms/sgabios
%patch1200 -p1
popd
# as a safeguard, delete the firmware files that we intend to build
for i in %built_firmware_files
do
rm -f pc-bios/$i
done
%endif
%if %{build_slof_from_source}
pushd roms/SLOF
popd
rm -f pc-bios/slof.bin
%endif
# as a safeguard, delete the firmware files that we intend to build
for i in %built_firmware
do
unlink pc-bios/$i
done
%build
echo '%{version}' > roms/seabios/.version
@ -739,6 +800,7 @@ echo '%{version}' > roms/seabios/.version
--libdir=%_libdir \
--libexecdir=%_libexecdir \
--localstatedir=%_localstatedir \
--docdir=%_docdir/qemu \
--extra-cflags="%{optflags}" \
--disable-stack-protector \
--disable-strip \
@ -821,6 +883,7 @@ echo '%{version}' > roms/seabios/.version
%if 0%{?suse_version} >= 1320 || ( 0%{?suse_version} == 1315 && 0%{?sle_version} > 120100 )
--enable-opengl \
%endif
--with-system-pixman \
%if 0%{?with_rbd}
--enable-rbd \
%else
@ -890,8 +953,19 @@ echo '%{version}' > roms/seabios/.version
make %{?_smp_mflags} V=1
# Firmware
%if %{build_x86_fw_from_source}
%ifarch s390x
cp pc-bios/s390-ccw/s390-ccw.img pc-bios/
%endif
%ifarch ppc64
cp pc-bios/spapr-rtas/spapr-rtas.bin pc-bios/
%endif
%if %{build_x86_firmware_from_source}
cp pc-bios/optionrom/{multiboot.bin,linuxboot.bin,linuxboot_dma.bin,kvmvapic.bin} pc-bios/
make %{?_smp_mflags} -C roms bios
make %{?_smp_mflags} -C roms seavgabios
make %{?_smp_mflags} -C roms pxerom
%ifarch x86_64
@ -925,24 +999,21 @@ for i in %supported_nics_small
fi
done
%endif
%if %{build_slof_from_source}
make %{?_smp_mflags} -C roms slof
%endif
%ifarch s390x
cp pc-bios/s390-ccw/s390-ccw.img pc-bios/s390-ccw.img
%endif
%else # qemu-testsuite
ln -s %{_bindir}/qemu-img qemu-img
ln -s %{_bindir}/qemu-ga qemu-ga
ln -s %{_bindir}/qemu-io qemu-io
%if %{build_x86_fw_from_source}
for i in %built_firmware_files
for i in %built_firmware
do
ln -s %{_datadir}/qemu/$i pc-bios/$i
done
%endif
for conf in default-configs/*-softmmu.mak; do
arch=`echo "$conf" | sed -e 's|default-configs/\(.*\)-softmmu.mak|\1|g'`
@ -950,7 +1021,10 @@ for conf in default-configs/*-softmmu.mak; do
done
# Compile the QOM test binary first, so that ...
touch -r config-host.mak pc-bios
make tests/qom-test %{?_smp_mflags} V=1
# Firmware
# ... make comes in fresh and has lots of address space (needed for 32bit, bsc#957379)
%if 0%{?suse_version} >= 1310
make check-report.html V=1
@ -997,16 +1071,14 @@ format=`qemu-img info test.tar | grep "file format:" | cut -d ':' -f 2 | tr -d '
%install
%if "%{name}" != "qemu-testsuite"
touch -r config-host.mak pc-bios
make install DESTDIR=%{buildroot}
rm -fr %{buildroot}%{_datadir}/doc
%if ! %{build_x86_fw_from_source}
for f in acpi-dsdt.aml bios-256k.bin bios.bin efi-*.rom pxe-*.rom sgabios.bin \
vgabios-cirrus.bin vgabios-qxl.bin vgabios-stdvga.bin vgabios-virtio.bin vgabios-vmware.bin \
vgabios.bin; do
rm %{buildroot}%{_datadir}/%name/$f
%ifnarch %ix86 x86_64
for f in acpi-dsdt.aml %{x86_extra_built_firmware_list} \
%{x86_64_only_extra_built_firmware_list}; do
unlink %{buildroot}%{_datadir}/%name/$f
done
%endif
# rm -f %{buildroot}%{_datadir}/%{name}/u-boot.e500
%find_lang %name
install -D -m 644 %{SOURCE302} %{buildroot}%{_sysconfdir}/qemu/bridge.conf
install -D -m 755 %{SOURCE2} %{buildroot}/usr/share/qemu/qemu-ifup
@ -1160,10 +1232,16 @@ fi
%files
%defattr(-, root, root)
%if "%{name}" != "qemu-testsuite"
%doc COPYING COPYING.LIB Changelog README VERSION qemu-doc.html
%doc %_mandir/man1/qemu.1.gz
%doc %_mandir/man7/qemu-qmp-ref.7.gz
%doc %_mandir/man7/qemu-ga-ref.7.gz
%doc COPYING COPYING.LIB Changelog README VERSION
%_docdir/%name/qemu-doc.txt
%_docdir/%name/qemu-doc.html
%_docdir/%name/qemu-qmp-ref.txt
%_docdir/%name/qemu-qmp-ref.html
%_docdir/%name/qemu-ga-ref.txt
%_docdir/%name/qemu-ga-ref.html
%_mandir/man1/qemu.1.gz
%_mandir/man7/qemu-qmp-ref.7.gz
%_mandir/man7/qemu-ga-ref.7.gz
%dir %_datadir/%name
%_datadir/%name/keymaps
%_datadir/%name/trace-events-all
@ -1272,7 +1350,7 @@ fi
%files kvm
%defattr(-,root,root)
%_bindir/qemu-kvm
%doc %_mandir/man1/qemu-kvm.1.gz
%_mandir/man1/qemu-kvm.1.gz
%if 0%{?is_opensuse} == 0
%dir %_docdir/qemu-kvm
%_docdir/qemu-kvm/kvm-supported.txt
@ -1320,7 +1398,7 @@ fi
%files lang -f %name.lang
%defattr(-, root, root)
%if %{build_x86_fw_from_source}
%if %{build_x86_firmware_from_source}
%files seabios
%defattr(-, root, root)
%dir %_datadir/%name
@ -1364,9 +1442,9 @@ fi
%files tools
%defattr(-, root, root)
%doc %_mandir/man1/qemu-img.1.gz
%doc %_mandir/man1/virtfs-proxy-helper.1.gz
%doc %_mandir/man8/qemu-nbd.8.gz
%_mandir/man1/qemu-img.1.gz
%_mandir/man1/virtfs-proxy-helper.1.gz
%_mandir/man8/qemu-nbd.8.gz
%_bindir/ivshmem-client
%_bindir/ivshmem-server
%_bindir/qemu-io
@ -1380,7 +1458,7 @@ fi
%files guest-agent
%defattr(-, root, root)
%doc %_mandir/man8/qemu-ga.8.gz
%_mandir/man8/qemu-ga.8.gz
%attr(755,root,kvm) %_bindir/qemu-ga
%if 0%{?with_systemd}
%{_unitdir}/qemu-ga.service
@ -1394,9 +1472,9 @@ fi
%endif
%else # qemu-testsuite
%doc %_datadir/qemu/check-report.xml
%_datadir/qemu/check-report.xml
%if 0%{?suse_version} >= 1310
%doc %_datadir/qemu/check-report.html
%_datadir/qemu/check-report.html
%endif
%endif

View File

@ -14,7 +14,7 @@ set -e
GIT_TREE=git://github.com/openSUSE/qemu.git
GIT_LOCAL_TREE=~/git/qemu-opensuse
GIT_BRANCH=opensuse-2.9
GIT_UPSTREAM_TAG=v2.9.0-rc2
GIT_UPSTREAM_TAG=v2.9.0-rc4
GIT_DIR=/dev/shm/qemu-factory-git-dir
CMP_DIR=/dev/shm/qemu-factory-cmp-dir