From 8571d0673756c4288ebdc79313ed0da596117545 Mon Sep 17 00:00:00 2001 From: Glauber Costa Date: Mar 03 2009 23:57:07 +0000 Subject: - Set Epoch to 1 - Build KVM (basic build, no tools yet) - Set ppc in ExcludeArch. This is temporary, just to fix one issue at a time. ppc users (IBM ? ;-)) please wait a little bit. --- diff --git a/.cvsignore b/.cvsignore index 3e16177..d7cbda4 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -qemu-1.0.tar.gz +kvm-84.git-snapshot-20090303.tar.gz diff --git a/kvm-fix-strayR.patch b/kvm-fix-strayR.patch new file mode 100644 index 0000000..a2d3f85 --- /dev/null +++ b/kvm-fix-strayR.patch @@ -0,0 +1,87 @@ +Newer gcc versions support a R"..." construct, so we can't use +"abc"R"def" constructs without any space between R and the quotes, +when using -std=gnu99 (that is used by the user/test code). + +This fixes this error: + + test/x86/vmexit.c:34:26: error: invalid character ' ' in raw string + delimiter + test/x86/vmexit.c: In function ‘main’: + test/x86/vmexit.c:34: error: stray ‘R’ in program + test/x86/vmexit.c:34:46: error: invalid character ' + ' in raw string delimiter + test/x86/vmexit.c:34: error: expected ‘:’ or ‘)’ before string constant + test/x86/vmexit.c:34: error: stray ‘R’ in program + +Signed-off-by: Eduardo Habkost +--- + user/test/x86/apic.c | 32 ++++++++++++++++---------------- + user/test/x86/vmexit.c | 2 +- + 2 files changed, 17 insertions(+), 17 deletions(-) + +diff --git a/user/test/x86/apic.c b/user/test/x86/apic.c +index 9c6205b..2d963dc 100644 +--- a/user/test/x86/apic.c ++++ b/user/test/x86/apic.c +@@ -54,14 +54,14 @@ asm ( + "push %r9 \n\t" + "push %r8 \n\t" + #endif +- "push %"R"di \n\t" +- "push %"R"si \n\t" +- "push %"R"bp \n\t" +- "push %"R"sp \n\t" +- "push %"R"bx \n\t" +- "push %"R"dx \n\t" +- "push %"R"cx \n\t" +- "push %"R"ax \n\t" ++ "push %" R "di \n\t" ++ "push %" R "si \n\t" ++ "push %" R "bp \n\t" ++ "push %" R "sp \n\t" ++ "push %" R "bx \n\t" ++ "push %" R "dx \n\t" ++ "push %" R "cx \n\t" ++ "push %" R "ax \n\t" + #ifdef __x86_64__ + "mov %rsp, %rdi \n\t" + "callq *8*16(%rsp) \n\t" +@@ -70,14 +70,14 @@ asm ( + "calll *4+4*8(%esp) \n\t" + "add $4, %esp \n\t" + #endif +- "pop %"R"ax \n\t" +- "pop %"R"cx \n\t" +- "pop %"R"dx \n\t" +- "pop %"R"bx \n\t" +- "pop %"R"bp \n\t" +- "pop %"R"bp \n\t" +- "pop %"R"si \n\t" +- "pop %"R"di \n\t" ++ "pop %" R "ax \n\t" ++ "pop %" R "cx \n\t" ++ "pop %" R "dx \n\t" ++ "pop %" R "bx \n\t" ++ "pop %" R "bp \n\t" ++ "pop %" R "bp \n\t" ++ "pop %" R "si \n\t" ++ "pop %" R "di \n\t" + #ifdef __x86_64__ + "pop %r8 \n\t" + "pop %r9 \n\t" +diff --git a/user/test/x86/vmexit.c b/user/test/x86/vmexit.c +index bd57bfa..7339e2b 100644 +--- a/user/test/x86/vmexit.c ++++ b/user/test/x86/vmexit.c +@@ -31,7 +31,7 @@ int main() + + t1 = rdtsc(); + for (i = 0; i < N; ++i) +- asm volatile ("push %%"R"bx; cpuid; pop %%"R"bx" ++ asm volatile ("push %%" R "bx; cpuid; pop %%" R "bx" + : : : "eax", "ecx", "edx"); + t2 = rdtsc(); + printf("vmexit latency: %d\n", (int)((t2 - t1) / N)); +-- +1.6.0.2.GIT + diff --git a/kvm-upstream-ppc.patch b/kvm-upstream-ppc.patch new file mode 100644 index 0000000..723999a --- /dev/null +++ b/kvm-upstream-ppc.patch @@ -0,0 +1,58 @@ +From 1efd319579c8f34974d654b0a5ac5144424e693e Mon Sep 17 00:00:00 2001 +From: Glauber Costa +Date: Fri, 13 Feb 2009 13:00:31 -0500 +Subject: [PATCH] use KVM_UPSTREAM for ppc. + +ppc should compile with upstream qemu code, so, put these +defines in ppc specific code that references kvm functions. + +We don put them in config.h in this case, since there are +files (like vl.c) that includes both kvm.h and qemu-kvm.h, +and would break compilation. + +Signed-off-by: Glauber Costa +--- + qemu/hw/ppc440.c | 1 + + qemu/hw/ppc440_bamboo.c | 1 + + qemu/target-ppc/helper.c | 1 + + 3 files changed, 3 insertions(+), 0 deletions(-) + +diff --git a/qemu/hw/ppc440.c b/qemu/hw/ppc440.c +index 00d82e4..164c326 100644 +--- a/qemu/hw/ppc440.c ++++ b/qemu/hw/ppc440.c +@@ -18,6 +18,7 @@ + #include "ppc440.h" + #include "ppc405.h" + #include "sysemu.h" ++#define KVM_UPSTREAM + #include "kvm.h" + + #define PPC440EP_PCI_CONFIG 0xeec00000 +diff --git a/qemu/hw/ppc440_bamboo.c b/qemu/hw/ppc440_bamboo.c +index fbd447c..60ddaf4 100644 +--- a/qemu/hw/ppc440_bamboo.c ++++ b/qemu/hw/ppc440_bamboo.c +@@ -21,6 +21,7 @@ + #include "boards.h" + #include "sysemu.h" + #include "ppc440.h" ++#define KVM_UPSTREAM + #include "kvm.h" + #include "kvm_ppc.h" + #include "device_tree.h" +diff --git a/qemu/target-ppc/helper.c b/qemu/target-ppc/helper.c +index fc62a63..d49acaf 100644 +--- a/qemu/target-ppc/helper.c ++++ b/qemu/target-ppc/helper.c +@@ -29,6 +29,7 @@ + #include "exec-all.h" + #include "helper_regs.h" + #include "qemu-common.h" ++#define KVM_UPSTREAM + #include "kvm.h" + + //#define DEBUG_MMU +-- +1.5.6.5 + diff --git a/qemu-sasl-01-tls-handshake-fix.patch b/qemu-sasl-01-tls-handshake-fix.patch index 6cc39c9..ded8e4d 100644 --- a/qemu-sasl-01-tls-handshake-fix.patch +++ b/qemu-sasl-01-tls-handshake-fix.patch @@ -22,9 +22,10 @@ this patch. Signed-off-by: Daniel P. Berrange -diff -r ff004fb525e7 vnc.c ---- a/vnc.c Thu Feb 19 11:26:55 2009 +0000 -+++ b/vnc.c Thu Feb 19 11:27:44 2009 +0000 +Index: kvm-84.git-snapshot-20090303/qemu/vnc.c +=================================================================== +--- kvm-84.git-snapshot-20090303.orig/qemu/vnc.c ++++ kvm-84.git-snapshot-20090303/qemu/vnc.c @@ -2096,14 +2096,6 @@ static int protocol_client_vencrypt_auth VNC_DEBUG("Failed to complete TLS\n"); return 0; diff --git a/qemu-sasl-02-vnc-monitor-info.patch b/qemu-sasl-02-vnc-monitor-info.patch index a5dd517..3af5b99 100644 --- a/qemu-sasl-02-vnc-monitor-info.patch +++ b/qemu-sasl-02-vnc-monitor-info.patch @@ -38,9 +38,10 @@ important. Signed-off-by: Daniel P. Berrange -diff -r 4dbf24b567c4 vnc.c ---- a/vnc.c Thu Feb 19 11:27:44 2009 +0000 -+++ b/vnc.c Thu Feb 19 11:53:31 2009 +0000 +Index: kvm-84.git-snapshot-20090303/qemu/vnc.c +=================================================================== +--- kvm-84.git-snapshot-20090303.orig/qemu/vnc.c ++++ kvm-84.git-snapshot-20090303/qemu/vnc.c @@ -166,19 +166,136 @@ struct VncState static VncDisplay *vnc_display; /* needed for info vnc */ static DisplayChangeListener *dcl; @@ -158,16 +159,17 @@ diff -r 4dbf24b567c4 vnc.c - term_printf("VNC server active on: "); - term_print_filename(vnc_display->display); - term_printf("\n"); +- +- if (vnc_display->clients == NULL) +- term_printf("No client connected\n"); +- else +- term_printf("Client connected\n"); + if (vnc_display == NULL || vnc_display->display == NULL) { + term_printf("Server: disabled\n"); + } else { + char *serverAddr = vnc_socket_local_addr(" address: %s:%s\n", + vnc_display->lsock); - -- if (vnc_display->clients == NULL) -- term_printf("No client connected\n"); -- else -- term_printf("Client connected\n"); ++ + if (!serverAddr) + return; + diff --git a/qemu-sasl-03-display-keymaps.patch b/qemu-sasl-03-display-keymaps.patch index 4303760..250deee 100644 --- a/qemu-sasl-03-display-keymaps.patch +++ b/qemu-sasl-03-display-keymaps.patch @@ -20,10 +20,11 @@ causing clashing definitions. Signed-off-by: Daniel P. Berrange -diff -r 9ccd7a5b0382 Makefile ---- a/Makefile Thu Feb 19 11:54:21 2009 +0000 -+++ b/Makefile Thu Feb 19 13:15:19 2009 +0000 -@@ -137,6 +137,7 @@ endif +Index: kvm-84.git-snapshot-20090303/qemu/Makefile +=================================================================== +--- kvm-84.git-snapshot-20090303.orig/qemu/Makefile ++++ kvm-84.git-snapshot-20090303/qemu/Makefile +@@ -141,6 +141,7 @@ endif AUDIO_OBJS+= wavcapture.o OBJS+=$(addprefix audio/, $(AUDIO_OBJS)) @@ -31,7 +32,7 @@ diff -r 9ccd7a5b0382 Makefile ifdef CONFIG_SDL OBJS+=sdl.o x_keymap.o endif -@@ -161,15 +162,17 @@ LIBS+=$(VDE_LIBS) +@@ -165,15 +166,17 @@ LIBS+=$(VDE_LIBS) cocoa.o: cocoa.m @@ -52,9 +53,10 @@ diff -r 9ccd7a5b0382 Makefile bt-host.o: CFLAGS += $(CONFIG_BLUEZ_CFLAGS) -diff -r 9ccd7a5b0382 curses.c ---- a/curses.c Thu Feb 19 11:54:21 2009 +0000 -+++ b/curses.c Thu Feb 19 13:15:19 2009 +0000 +Index: kvm-84.git-snapshot-20090303/qemu/curses.c +=================================================================== +--- kvm-84.git-snapshot-20090303.orig/qemu/curses.c ++++ kvm-84.git-snapshot-20090303/qemu/curses.c @@ -158,7 +158,6 @@ static void curses_cursor_position(Displ /* generic keyboard conversion */ @@ -72,9 +74,10 @@ diff -r 9ccd7a5b0382 curses.c if (!kbd_layout) exit(1); } -diff -r 9ccd7a5b0382 curses_keys.h ---- a/curses_keys.h Thu Feb 19 11:54:21 2009 +0000 -+++ b/curses_keys.h Thu Feb 19 13:15:19 2009 +0000 +Index: kvm-84.git-snapshot-20090303/qemu/curses_keys.h +=================================================================== +--- kvm-84.git-snapshot-20090303.orig/qemu/curses_keys.h ++++ kvm-84.git-snapshot-20090303/qemu/curses_keys.h @@ -21,6 +21,10 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. @@ -98,9 +101,10 @@ diff -r 9ccd7a5b0382 curses_keys.h static const name2keysym_t name2keysym[] = { /* Plain ASCII */ { "space", 0x020 }, -diff -r 9ccd7a5b0382 keymaps.c ---- a/keymaps.c Thu Feb 19 11:54:21 2009 +0000 -+++ b/keymaps.c Thu Feb 19 13:15:19 2009 +0000 +Index: kvm-84.git-snapshot-20090303/qemu/keymaps.c +=================================================================== +--- kvm-84.git-snapshot-20090303.orig/qemu/keymaps.c ++++ kvm-84.git-snapshot-20090303/qemu/keymaps.c @@ -22,34 +22,20 @@ * THE SOFTWARE. */ @@ -206,9 +210,10 @@ diff -r 9ccd7a5b0382 keymaps.c { kbd_layout_t *k = kbd_layout; struct key_range *kr; -diff -r 9ccd7a5b0382 keymaps.h ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ b/keymaps.h Thu Feb 19 13:15:19 2009 +0000 +Index: kvm-84.git-snapshot-20090303/qemu/keymaps.h +=================================================================== +--- /dev/null ++++ kvm-84.git-snapshot-20090303/qemu/keymaps.h @@ -0,0 +1,60 @@ +/* + * QEMU keysym to keycode conversion using rdesktop keymaps @@ -270,9 +275,10 @@ diff -r 9ccd7a5b0382 keymaps.h +int keysym_is_numlock(void *kbd_layout, int keysym); + +#endif /* __QEMU_KEYMAPS_H__ */ -diff -r 9ccd7a5b0382 sdl.c ---- a/sdl.c Thu Feb 19 11:54:21 2009 +0000 -+++ b/sdl.c Thu Feb 19 13:15:19 2009 +0000 +Index: kvm-84.git-snapshot-20090303/qemu/sdl.c +=================================================================== +--- kvm-84.git-snapshot-20090303.orig/qemu/sdl.c ++++ kvm-84.git-snapshot-20090303/qemu/sdl.c @@ -107,7 +107,6 @@ static void sdl_resize(DisplayState *ds) /* generic keyboard conversion */ @@ -290,9 +296,10 @@ diff -r 9ccd7a5b0382 sdl.c if (!kbd_layout) exit(1); } -diff -r 9ccd7a5b0382 sdl_keysym.h ---- a/sdl_keysym.h Thu Feb 19 11:54:21 2009 +0000 -+++ b/sdl_keysym.h Thu Feb 19 13:15:19 2009 +0000 +Index: kvm-84.git-snapshot-20090303/qemu/sdl_keysym.h +=================================================================== +--- kvm-84.git-snapshot-20090303.orig/qemu/sdl_keysym.h ++++ kvm-84.git-snapshot-20090303/qemu/sdl_keysym.h @@ -1,7 +1,6 @@ -typedef struct { - const char* name; @@ -304,9 +311,10 @@ diff -r 9ccd7a5b0382 sdl_keysym.h static const name2keysym_t name2keysym[]={ /* ascii */ { "space", 0x020}, -diff -r 9ccd7a5b0382 vnc.c ---- a/vnc.c Thu Feb 19 11:54:21 2009 +0000 -+++ b/vnc.c Thu Feb 19 13:15:19 2009 +0000 +Index: kvm-84.git-snapshot-20090303/qemu/vnc.c +=================================================================== +--- kvm-84.git-snapshot-20090303.orig/qemu/vnc.c ++++ kvm-84.git-snapshot-20090303/qemu/vnc.c @@ -35,7 +35,6 @@ #include "vnc.h" @@ -327,9 +335,10 @@ diff -r 9ccd7a5b0382 vnc.c if (!vs->kbd_layout) exit(1); -diff -r 9ccd7a5b0382 vnc_keysym.h ---- a/vnc_keysym.h Thu Feb 19 11:54:21 2009 +0000 -+++ b/vnc_keysym.h Thu Feb 19 13:15:19 2009 +0000 +Index: kvm-84.git-snapshot-20090303/qemu/vnc_keysym.h +=================================================================== +--- kvm-84.git-snapshot-20090303.orig/qemu/vnc_keysym.h ++++ kvm-84.git-snapshot-20090303/qemu/vnc_keysym.h @@ -1,7 +1,6 @@ -typedef struct { - const char* name; diff --git a/qemu-sasl-04-vnc-struct.patch b/qemu-sasl-04-vnc-struct.patch index a5937c6..0863596 100644 --- a/qemu-sasl-04-vnc-struct.patch +++ b/qemu-sasl-04-vnc-struct.patch @@ -9,9 +9,10 @@ and SASL auth mechanisms to be moved out of the main vnc.c file. Signed-off-by: Daniel P. Berrange -diff -r 216ec7d1e30f vnc.c ---- a/vnc.c Thu Feb 19 13:15:19 2009 +0000 -+++ b/vnc.c Thu Feb 19 13:25:09 2009 +0000 +Index: kvm-84.git-snapshot-20090303/qemu/vnc.c +=================================================================== +--- kvm-84.git-snapshot-20090303.orig/qemu/vnc.c ++++ kvm-84.git-snapshot-20090303/qemu/vnc.c @@ -3,6 +3,7 @@ * * Copyright (C) 2006 Anthony Liguori @@ -151,9 +152,10 @@ diff -r 216ec7d1e30f vnc.c static VncDisplay *vnc_display; /* needed for info vnc */ static DisplayChangeListener *dcl; -diff -r 216ec7d1e30f vnc.h ---- a/vnc.h Thu Feb 19 13:15:19 2009 +0000 -+++ b/vnc.h Thu Feb 19 13:25:09 2009 +0000 +Index: kvm-84.git-snapshot-20090303/qemu/vnc.h +=================================================================== +--- kvm-84.git-snapshot-20090303.orig/qemu/vnc.h ++++ kvm-84.git-snapshot-20090303/qemu/vnc.h @@ -1,5 +1,148 @@ -#ifndef __VNCTIGHT_H -#define __VNCTIGHT_H diff --git a/qemu-sasl-05-vnc-tls-vencrypt.patch b/qemu-sasl-05-vnc-tls-vencrypt.patch index ab110c4..c9fadea 100644 --- a/qemu-sasl-05-vnc-tls-vencrypt.patch +++ b/qemu-sasl-05-vnc-tls-vencrypt.patch @@ -35,10 +35,11 @@ gnutls_send/recv. Signed-off-by: Daniel P. Berrange -diff -r dfa890dd7417 Makefile ---- a/Makefile Mon Feb 23 13:05:49 2009 +0000 -+++ b/Makefile Mon Feb 23 13:06:22 2009 +0000 -@@ -145,6 +145,9 @@ ifdef CONFIG_CURSES +Index: kvm-84.git-snapshot-20090303/qemu/Makefile +=================================================================== +--- kvm-84.git-snapshot-20090303.orig/qemu/Makefile ++++ kvm-84.git-snapshot-20090303/qemu/Makefile +@@ -149,6 +149,9 @@ ifdef CONFIG_CURSES OBJS+=curses.o endif OBJS+=vnc.o d3des.o @@ -48,7 +49,7 @@ diff -r dfa890dd7417 Makefile ifdef CONFIG_COCOA OBJS+=cocoa.o -@@ -168,10 +171,16 @@ sdl.o: sdl.c keymaps.h sdl_keysym.h +@@ -172,10 +175,16 @@ sdl.o: sdl.c keymaps.h sdl_keysym.h sdl.o audio/sdlaudio.o: CFLAGS += $(SDL_CFLAGS) @@ -66,9 +67,10 @@ diff -r dfa890dd7417 Makefile curses.o: curses.c keymaps.h curses_keys.h bt-host.o: CFLAGS += $(CONFIG_BLUEZ_CFLAGS) -diff -r dfa890dd7417 vnc-auth-vencrypt.c ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ b/vnc-auth-vencrypt.c Mon Feb 23 13:06:22 2009 +0000 +Index: kvm-84.git-snapshot-20090303/qemu/vnc-auth-vencrypt.c +=================================================================== +--- /dev/null ++++ kvm-84.git-snapshot-20090303/qemu/vnc-auth-vencrypt.c @@ -0,0 +1,167 @@ +/* + * QEMU VNC display driver: VeNCrypt authentication setup @@ -237,9 +239,10 @@ diff -r dfa890dd7417 vnc-auth-vencrypt.c + vnc_read_when(vs, protocol_client_vencrypt_init, 2); +} + -diff -r dfa890dd7417 vnc-auth-vencrypt.h ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ b/vnc-auth-vencrypt.h Mon Feb 23 13:06:22 2009 +0000 +Index: kvm-84.git-snapshot-20090303/qemu/vnc-auth-vencrypt.h +=================================================================== +--- /dev/null ++++ kvm-84.git-snapshot-20090303/qemu/vnc-auth-vencrypt.h @@ -0,0 +1,33 @@ +/* + * QEMU VNC display driver @@ -274,9 +277,10 @@ diff -r dfa890dd7417 vnc-auth-vencrypt.h +void start_auth_vencrypt(VncState *vs); + +#endif /* __QEMU_VNC_AUTH_VENCRYPT_H__ */ -diff -r dfa890dd7417 vnc-tls.c ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ b/vnc-tls.c Mon Feb 23 13:06:22 2009 +0000 +Index: kvm-84.git-snapshot-20090303/qemu/vnc-tls.c +=================================================================== +--- /dev/null ++++ kvm-84.git-snapshot-20090303/qemu/vnc-tls.c @@ -0,0 +1,414 @@ +/* + * QEMU VNC display driver: TLS helpers @@ -692,9 +696,10 @@ diff -r dfa890dd7417 vnc-tls.c + return -1; +} + -diff -r dfa890dd7417 vnc-tls.h ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ b/vnc-tls.h Mon Feb 23 13:06:22 2009 +0000 +Index: kvm-84.git-snapshot-20090303/qemu/vnc-tls.h +=================================================================== +--- /dev/null ++++ kvm-84.git-snapshot-20090303/qemu/vnc-tls.h @@ -0,0 +1,70 @@ +/* + * QEMU VNC display driver. TLS helpers @@ -766,9 +771,10 @@ diff -r dfa890dd7417 vnc-tls.h + +#endif /* __QEMU_VNC_TLS_H__ */ + -diff -r dfa890dd7417 vnc.c ---- a/vnc.c Mon Feb 23 13:05:49 2009 +0000 -+++ b/vnc.c Mon Feb 23 13:06:22 2009 +0000 +Index: kvm-84.git-snapshot-20090303/qemu/vnc.c +=================================================================== +--- kvm-84.git-snapshot-20090303.orig/qemu/vnc.c ++++ kvm-84.git-snapshot-20090303/qemu/vnc.c @@ -34,21 +34,6 @@ #include "vnc_keysym.h" #include "d3des.h" @@ -1016,9 +1022,9 @@ diff -r dfa890dd7417 vnc.c vnc_read_when(vs, protocol_client_auth_vnc, sizeof(vs->challenge)); - return 0; - } - - +-} +- +- -#ifdef CONFIG_VNC_TLS -#define DH_BITS 1024 -static gnutls_dh_params_t dh_params; @@ -1062,9 +1068,9 @@ diff -r dfa890dd7417 vnc.c - gnutls_anon_set_server_dh_params(anon_cred, dh_params); - - return anon_cred; --} -- -- + } + + -static gnutls_certificate_credentials_t vnc_tls_initialize_x509_cred(VncState *vs) -{ - gnutls_certificate_credentials_t x509_cred; @@ -1544,10 +1550,11 @@ diff -r dfa890dd7417 vnc.c fprintf(stderr, "Failed to find x509 certificates/keys in %s\n", path); qemu_free(path); qemu_free(vs->display); -diff -r dfa890dd7417 vnc.h ---- a/vnc.h Mon Feb 23 13:05:49 2009 +0000 -+++ b/vnc.h Mon Feb 23 13:06:22 2009 +0000 -@@ -32,12 +32,15 @@ +Index: kvm-84.git-snapshot-20090303/qemu/vnc.h +=================================================================== +--- kvm-84.git-snapshot-20090303.orig/qemu/vnc.h ++++ kvm-84.git-snapshot-20090303/qemu/vnc.h +@@ -32,13 +32,16 @@ #include "audio/audio.h" #include @@ -1555,9 +1562,9 @@ diff -r dfa890dd7417 vnc.h -#include -#include -#endif /* CONFIG_VNC_TLS */ -+#include "keymaps.h" +- + #include "keymaps.h" --#include "keymaps.h" +// #define _VNC_DEBUG 1 + +#ifdef _VNC_DEBUG @@ -1565,9 +1572,10 @@ diff -r dfa890dd7417 vnc.h +#else +#define VNC_DEBUG(fmt, ...) do { } while (0) +#endif - ++ /***************************************************************************** * + * Core data structures @@ -72,6 +75,11 @@ typedef void VncSendHextileTile(VncState typedef struct VncDisplay VncDisplay; diff --git a/qemu-sasl-06-vnc-sasl.patch b/qemu-sasl-06-vnc-sasl.patch index 23fe780..388d6c6 100644 --- a/qemu-sasl-06-vnc-sasl.patch +++ b/qemu-sasl-06-vnc-sasl.patch @@ -75,10 +75,11 @@ if found, unless --disable-vnc-sasl was given to override it. Signed-off-by: Daniel P. Berrange -diff -r 6981d4d832a9 Makefile ---- a/Makefile Mon Mar 02 11:13:33 2009 +0000 -+++ b/Makefile Mon Mar 02 11:13:38 2009 +0000 -@@ -148,6 +148,9 @@ OBJS+=vnc.o d3des.o +Index: kvm-84.git-snapshot-20090303/qemu/Makefile +=================================================================== +--- kvm-84.git-snapshot-20090303.orig/qemu/Makefile ++++ kvm-84.git-snapshot-20090303/qemu/Makefile +@@ -152,6 +152,9 @@ OBJS+=vnc.o d3des.o ifdef CONFIG_VNC_TLS OBJS+=vnc-tls.o vnc-auth-vencrypt.o endif @@ -88,7 +89,7 @@ diff -r 6981d4d832a9 Makefile ifdef CONFIG_COCOA OBJS+=cocoa.o -@@ -171,7 +174,7 @@ sdl.o: sdl.c keymaps.h sdl_keysym.h +@@ -175,7 +178,7 @@ sdl.o: sdl.c keymaps.h sdl_keysym.h sdl.o audio/sdlaudio.o: CFLAGS += $(SDL_CFLAGS) @@ -97,7 +98,7 @@ diff -r 6981d4d832a9 Makefile vnc.o: vnc.c vnc.h vnc_keysym.h vnchextile.h d3des.c d3des.h -@@ -181,6 +184,8 @@ vnc-tls.o: vnc-tls.c vnc.h +@@ -185,6 +188,8 @@ vnc-tls.o: vnc-tls.c vnc.h vnc-auth-vencrypt.o: vnc-auth-vencrypt.c vnc.h @@ -106,10 +107,11 @@ diff -r 6981d4d832a9 Makefile curses.o: curses.c keymaps.h curses_keys.h bt-host.o: CFLAGS += $(CONFIG_BLUEZ_CFLAGS) -diff -r 6981d4d832a9 Makefile.target ---- a/Makefile.target Mon Mar 02 11:13:33 2009 +0000 -+++ b/Makefile.target Mon Mar 02 11:13:38 2009 +0000 -@@ -554,6 +554,11 @@ CPPFLAGS += $(CONFIG_VNC_TLS_CFLAGS) +Index: kvm-84.git-snapshot-20090303/qemu/Makefile.target +=================================================================== +--- kvm-84.git-snapshot-20090303.orig/qemu/Makefile.target ++++ kvm-84.git-snapshot-20090303/qemu/Makefile.target +@@ -613,6 +613,11 @@ CPPFLAGS += $(CONFIG_VNC_TLS_CFLAGS) LIBS += $(CONFIG_VNC_TLS_LIBS) endif @@ -121,9 +123,10 @@ diff -r 6981d4d832a9 Makefile.target ifdef CONFIG_BLUEZ LIBS += $(CONFIG_BLUEZ_LIBS) endif -diff -r 6981d4d832a9 configure ---- a/configure Mon Mar 02 11:13:33 2009 +0000 -+++ b/configure Mon Mar 02 11:13:38 2009 +0000 +Index: kvm-84.git-snapshot-20090303/qemu/configure +=================================================================== +--- kvm-84.git-snapshot-20090303.orig/qemu/configure ++++ kvm-84.git-snapshot-20090303/qemu/configure @@ -164,6 +164,7 @@ fmod_lib="" fmod_inc="" oss_lib="" @@ -132,7 +135,7 @@ diff -r 6981d4d832a9 configure bsd="no" linux="no" solaris="no" -@@ -387,6 +388,8 @@ for opt do +@@ -403,6 +404,8 @@ for opt do ;; --disable-vnc-tls) vnc_tls="no" ;; @@ -141,7 +144,7 @@ diff -r 6981d4d832a9 configure --disable-slirp) slirp="no" ;; --disable-vde) vde="no" -@@ -544,6 +547,7 @@ echo " Availab +@@ -562,6 +565,7 @@ echo " Availab echo " --enable-mixemu enable mixer emulation" echo " --disable-brlapi disable BrlAPI" echo " --disable-vnc-tls disable TLS encryption for VNC server" @@ -149,7 +152,7 @@ diff -r 6981d4d832a9 configure echo " --disable-curses disable curses output" echo " --disable-bluez disable bluez stack connectivity" echo " --disable-kvm disable KVM acceleration support" -@@ -823,6 +827,25 @@ EOF +@@ -874,6 +878,25 @@ EOF fi ########################################## @@ -175,7 +178,7 @@ diff -r 6981d4d832a9 configure # vde libraries probe if test "$vde" = "yes" ; then cat > $TMPC << EOF -@@ -1130,6 +1153,11 @@ if test "$vnc_tls" = "yes" ; then +@@ -1208,6 +1231,11 @@ if test "$vnc_tls" = "yes" ; then echo " TLS CFLAGS $vnc_tls_cflags" echo " TLS LIBS $vnc_tls_libs" fi @@ -187,7 +190,7 @@ diff -r 6981d4d832a9 configure if test -n "$sparc_cpu"; then echo "Target Sparc Arch $sparc_cpu" fi -@@ -1371,6 +1399,12 @@ if test "$vnc_tls" = "yes" ; then +@@ -1451,6 +1479,12 @@ if test "$vnc_tls" = "yes" ; then echo "CONFIG_VNC_TLS_LIBS=$vnc_tls_libs" >> $config_mak echo "#define CONFIG_VNC_TLS 1" >> $config_h fi @@ -200,10 +203,11 @@ diff -r 6981d4d832a9 configure qemu_version=`head $source_path/VERSION` echo "VERSION=$qemu_version" >>$config_mak echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h -diff -r 6981d4d832a9 qemu-doc.texi ---- a/qemu-doc.texi Mon Mar 02 11:13:33 2009 +0000 -+++ b/qemu-doc.texi Mon Mar 02 11:13:38 2009 +0000 -@@ -616,6 +616,21 @@ path following this option specifies whe +Index: kvm-84.git-snapshot-20090303/qemu/qemu-doc.texi +=================================================================== +--- kvm-84.git-snapshot-20090303.orig/qemu/qemu-doc.texi ++++ kvm-84.git-snapshot-20090303/qemu/qemu-doc.texi +@@ -624,6 +624,21 @@ path following this option specifies whe be loaded from. See the @ref{vnc_security} section for details on generating certificates. @@ -225,7 +229,7 @@ diff -r 6981d4d832a9 qemu-doc.texi @end table @end table -@@ -2061,7 +2076,10 @@ considerations depending on the deployme +@@ -2058,7 +2073,10 @@ considerations depending on the deployme * vnc_sec_certificate:: * vnc_sec_certificate_verify:: * vnc_sec_certificate_pw:: @@ -236,7 +240,7 @@ diff -r 6981d4d832a9 qemu-doc.texi @end menu @node vnc_sec_none @subsection Without passwords -@@ -2144,6 +2162,41 @@ Password: ******** +@@ -2141,6 +2159,41 @@ Password: ******** (qemu) @end example @@ -278,7 +282,7 @@ diff -r 6981d4d832a9 qemu-doc.texi @node vnc_generate_cert @subsection Generating certificates for VNC -@@ -2255,6 +2308,50 @@ EOF +@@ -2252,6 +2305,50 @@ EOF The @code{client-key.pem} and @code{client-cert.pem} files should now be securely copied to the client for which they were generated. @@ -329,9 +333,10 @@ diff -r 6981d4d832a9 qemu-doc.texi @node gdb_usage @section GDB usage -diff -r 6981d4d832a9 qemu.sasl ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ b/qemu.sasl Mon Mar 02 11:13:38 2009 +0000 +Index: kvm-84.git-snapshot-20090303/qemu/qemu.sasl +=================================================================== +--- /dev/null ++++ kvm-84.git-snapshot-20090303/qemu/qemu.sasl @@ -0,0 +1,34 @@ +# If you want to use the non-TLS socket, then you *must* include +# the GSSAPI or DIGEST-MD5 mechanisms, because they are the only @@ -367,9 +372,10 @@ diff -r 6981d4d832a9 qemu.sasl + +auxprop_plugin: sasldb + -diff -r 6981d4d832a9 vnc-auth-sasl.c ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ b/vnc-auth-sasl.c Mon Mar 02 11:13:38 2009 +0000 +Index: kvm-84.git-snapshot-20090303/qemu/vnc-auth-sasl.c +=================================================================== +--- /dev/null ++++ kvm-84.git-snapshot-20090303/qemu/vnc-auth-sasl.c @@ -0,0 +1,626 @@ +/* + * QEMU VNC display driver: SASL auth protocol @@ -997,9 +1003,10 @@ diff -r 6981d4d832a9 vnc-auth-sasl.c +} + + -diff -r 6981d4d832a9 vnc-auth-sasl.h ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ b/vnc-auth-sasl.h Mon Mar 02 11:13:38 2009 +0000 +Index: kvm-84.git-snapshot-20090303/qemu/vnc-auth-sasl.h +=================================================================== +--- /dev/null ++++ kvm-84.git-snapshot-20090303/qemu/vnc-auth-sasl.h @@ -0,0 +1,67 @@ +/* + * QEMU VNC display driver: SASL auth protocol @@ -1068,9 +1075,10 @@ diff -r 6981d4d832a9 vnc-auth-sasl.h + +#endif /* __QEMU_VNC_AUTH_SASL_H__ */ + -diff -r 6981d4d832a9 vnc-auth-vencrypt.c ---- a/vnc-auth-vencrypt.c Mon Mar 02 11:13:33 2009 +0000 -+++ b/vnc-auth-vencrypt.c Mon Mar 02 11:13:38 2009 +0000 +Index: kvm-84.git-snapshot-20090303/qemu/vnc-auth-vencrypt.c +=================================================================== +--- kvm-84.git-snapshot-20090303.orig/qemu/vnc-auth-vencrypt.c ++++ kvm-84.git-snapshot-20090303/qemu/vnc-auth-vencrypt.c @@ -43,8 +43,15 @@ static void start_auth_vencrypt_subauth( start_auth_vnc(vs); break; @@ -1098,9 +1106,10 @@ diff -r 6981d4d832a9 vnc-auth-vencrypt.c static int protocol_client_vencrypt_auth(VncState *vs, uint8_t *data, size_t len) -diff -r 6981d4d832a9 vnc.c ---- a/vnc.c Mon Mar 02 11:13:33 2009 +0000 -+++ b/vnc.c Mon Mar 02 11:13:38 2009 +0000 +Index: kvm-84.git-snapshot-20090303/qemu/vnc.c +=================================================================== +--- kvm-84.git-snapshot-20090303.orig/qemu/vnc.c ++++ kvm-84.git-snapshot-20090303/qemu/vnc.c @@ -68,7 +68,8 @@ static char *addr_to_string(const char * return addr; } @@ -1340,17 +1349,19 @@ diff -r 6981d4d832a9 vnc.c if (ret < 0) { if (ret == GNUTLS_E_AGAIN) errno = EAGAIN; -@@ -932,13 +1025,53 @@ void vnc_client_read(void *opaque) +@@ -932,12 +1025,52 @@ void vnc_client_read(void *opaque) } } else #endif /* CONFIG_VNC_TLS */ - ret = recv(vs->csock, buffer_end(&vs->input), 4096, 0); - ret = vnc_client_io_error(vs, ret, socket_error()); +- if (!ret) +- return; + ret = recv(vs->csock, data, datalen, 0); + VNC_DEBUG("Read wire %p %d -> %ld\n", data, datalen, ret); + return vnc_client_io_error(vs, ret, socket_error()); +} -+ + + +/* + * Called to read data from the client socket to the input buffer, @@ -1369,7 +1380,7 @@ diff -r 6981d4d832a9 vnc.c + ret = vnc_client_read_buf(vs, buffer_end(&vs->input), 4096); + if (!ret) + return 0; -+ vs->input.offset += ret; + vs->input.offset += ret; + return ret; +} + @@ -1390,14 +1401,11 @@ diff -r 6981d4d832a9 vnc.c + else +#endif /* CONFIG_VNC_SASL */ + ret = vnc_client_read_plain(vs); - if (!ret) - return; ++ if (!ret) ++ return; -- vs->input.offset += ret; -- while (vs->read_handler && vs->input.offset >= vs->read_handler_expect) { size_t len = vs->read_handler_expect; - int ret; @@ -1722,6 +1855,13 @@ static int protocol_client_auth(VncState break; #endif /* CONFIG_VNC_TLS */ @@ -1511,9 +1519,10 @@ diff -r 6981d4d832a9 vnc.c if (reverse) { /* connect to viewer */ if (strncmp(display, "unix:", 5) == 0) -diff -r 6981d4d832a9 vnc.h ---- a/vnc.h Mon Mar 02 11:13:33 2009 +0000 -+++ b/vnc.h Mon Mar 02 11:13:38 2009 +0000 +Index: kvm-84.git-snapshot-20090303/qemu/vnc.h +=================================================================== +--- kvm-84.git-snapshot-20090303.orig/qemu/vnc.h ++++ kvm-84.git-snapshot-20090303/qemu/vnc.h @@ -79,6 +79,10 @@ typedef struct VncDisplay VncDisplay; #include "vnc-tls.h" #include "vnc-auth-vencrypt.h" diff --git a/qemu-sasl-07-vnc-monitor-authinfo.patch b/qemu-sasl-07-vnc-monitor-authinfo.patch index be053e2..2c80faa 100644 --- a/qemu-sasl-07-vnc-monitor-authinfo.patch +++ b/qemu-sasl-07-vnc-monitor-authinfo.patch @@ -29,9 +29,10 @@ Auth can be stacked, so both username & x509 dname may be shown. Signed-off-by: Daniel P. Berrange -diff -r 440be37a35ea vnc-tls.c ---- a/vnc-tls.c Fri Feb 20 11:46:26 2009 +0000 -+++ b/vnc-tls.c Fri Feb 20 11:47:52 2009 +0000 +Index: kvm-84.git-snapshot-20090303/qemu/vnc-tls.c +=================================================================== +--- kvm-84.git-snapshot-20090303.orig/qemu/vnc-tls.c ++++ kvm-84.git-snapshot-20090303/qemu/vnc-tls.c @@ -241,6 +241,22 @@ int vnc_tls_validate_certificate(struct return -1; } @@ -63,9 +64,10 @@ diff -r 440be37a35ea vnc-tls.c } -diff -r 440be37a35ea vnc-tls.h ---- a/vnc-tls.h Fri Feb 20 11:46:26 2009 +0000 -+++ b/vnc-tls.h Fri Feb 20 11:47:52 2009 +0000 +Index: kvm-84.git-snapshot-20090303/qemu/vnc-tls.h +=================================================================== +--- kvm-84.git-snapshot-20090303.orig/qemu/vnc-tls.h ++++ kvm-84.git-snapshot-20090303/qemu/vnc-tls.h @@ -55,6 +55,9 @@ struct VncStateTLS { /* Whether data is being TLS encrypted yet */ int wiremode; @@ -76,9 +78,10 @@ diff -r 440be37a35ea vnc-tls.h }; int vnc_tls_client_setup(VncState *vs, int x509Creds); -diff -r 440be37a35ea vnc.c ---- a/vnc.c Fri Feb 20 11:46:26 2009 +0000 -+++ b/vnc.c Fri Feb 20 11:47:52 2009 +0000 +Index: kvm-84.git-snapshot-20090303/qemu/vnc.c +=================================================================== +--- kvm-84.git-snapshot-20090303.orig/qemu/vnc.c ++++ kvm-84.git-snapshot-20090303/qemu/vnc.c @@ -156,6 +156,21 @@ static void do_info_vnc_client(VncState term_puts("Client:\n"); term_puts(clientAddr); diff --git a/qemu-sasl-08-vnc-acl-mgmt.patch b/qemu-sasl-08-vnc-acl-mgmt.patch index f02aae6..271925f 100644 --- a/qemu-sasl-08-vnc-acl-mgmt.patch +++ b/qemu-sasl-08-vnc-acl-mgmt.patch @@ -78,10 +78,11 @@ starting up Signed-off-by: Daniel P. Berrange -diff -r b1008c5c6c16 Makefile ---- a/Makefile Mon Mar 02 11:13:40 2009 +0000 -+++ b/Makefile Mon Mar 02 12:11:04 2009 +0000 -@@ -144,7 +144,7 @@ endif +Index: kvm-84.git-snapshot-20090303/qemu/Makefile +=================================================================== +--- kvm-84.git-snapshot-20090303.orig/qemu/Makefile ++++ kvm-84.git-snapshot-20090303/qemu/Makefile +@@ -148,7 +148,7 @@ endif ifdef CONFIG_CURSES OBJS+=curses.o endif @@ -90,7 +91,7 @@ diff -r b1008c5c6c16 Makefile ifdef CONFIG_VNC_TLS OBJS+=vnc-tls.o vnc-auth-vencrypt.o endif -@@ -174,9 +174,11 @@ sdl.o: sdl.c keymaps.h sdl_keysym.h +@@ -178,9 +178,11 @@ sdl.o: sdl.c keymaps.h sdl_keysym.h sdl.o audio/sdlaudio.o: CFLAGS += $(SDL_CFLAGS) @@ -103,9 +104,10 @@ diff -r b1008c5c6c16 Makefile vnc.o: CFLAGS += $(CONFIG_VNC_TLS_CFLAGS) -diff -r b1008c5c6c16 acl.c ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ b/acl.c Mon Mar 02 12:11:04 2009 +0000 +Index: kvm-84.git-snapshot-20090303/qemu/acl.c +=================================================================== +--- /dev/null ++++ kvm-84.git-snapshot-20090303/qemu/acl.c @@ -0,0 +1,185 @@ +/* + * QEMU access control list management @@ -292,9 +294,10 @@ diff -r b1008c5c6c16 acl.c + * tab-width: 8 + * End: + */ -diff -r b1008c5c6c16 acl.h ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ b/acl.h Mon Mar 02 12:11:04 2009 +0000 +Index: kvm-84.git-snapshot-20090303/qemu/acl.h +=================================================================== +--- /dev/null ++++ kvm-84.git-snapshot-20090303/qemu/acl.h @@ -0,0 +1,74 @@ +/* + * QEMU access control list management @@ -370,10 +373,11 @@ diff -r b1008c5c6c16 acl.h + * tab-width: 8 + * End: + */ -diff -r b1008c5c6c16 configure ---- a/configure Mon Mar 02 11:13:40 2009 +0000 -+++ b/configure Mon Mar 02 12:11:04 2009 +0000 -@@ -846,6 +846,21 @@ EOF +Index: kvm-84.git-snapshot-20090303/qemu/configure +=================================================================== +--- kvm-84.git-snapshot-20090303.orig/qemu/configure ++++ kvm-84.git-snapshot-20090303/qemu/configure +@@ -897,6 +897,21 @@ EOF fi ########################################## @@ -395,7 +399,7 @@ diff -r b1008c5c6c16 configure # vde libraries probe if test "$vde" = "yes" ; then cat > $TMPC << EOF -@@ -1405,6 +1420,9 @@ if test "$vnc_sasl" = "yes" ; then +@@ -1485,6 +1500,9 @@ if test "$vnc_sasl" = "yes" ; then echo "CONFIG_VNC_SASL_LIBS=$vnc_sasl_libs" >> $config_mak echo "#define CONFIG_VNC_SASL 1" >> $config_h fi @@ -405,18 +409,19 @@ diff -r b1008c5c6c16 configure qemu_version=`head $source_path/VERSION` echo "VERSION=$qemu_version" >>$config_mak echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h -diff -r b1008c5c6c16 monitor.c ---- a/monitor.c Mon Mar 02 11:13:40 2009 +0000 -+++ b/monitor.c Mon Mar 02 12:11:04 2009 +0000 +Index: kvm-84.git-snapshot-20090303/qemu/monitor.c +=================================================================== +--- kvm-84.git-snapshot-20090303.orig/qemu/monitor.c ++++ kvm-84.git-snapshot-20090303/qemu/monitor.c @@ -39,6 +39,7 @@ #include "qemu-timer.h" #include "migration.h" #include "kvm.h" +#include "acl.h" - //#define DEBUG - //#define DEBUG_COMPLETION -@@ -1425,6 +1426,85 @@ static void do_info_balloon(void) + #include "qemu-kvm.h" + +@@ -1452,6 +1453,85 @@ static void do_info_balloon(void) term_printf("balloon: actual=%d\n", (int)(actual >> 20)); } @@ -502,20 +507,20 @@ diff -r b1008c5c6c16 monitor.c /* Please update qemu-doc.texi when adding or changing commands */ static const term_cmd_t term_cmds[] = { { "help|?", "s?", do_help, -@@ -1529,6 +1609,12 @@ static const term_cmd_t term_cmds[] = { - "target", "request VM to change it's memory allocation (in MB)" }, +@@ -1557,6 +1637,12 @@ static const term_cmd_t term_cmds[] = { { "set_link", "ss", do_set_link, "name [up|down]", "change the link status of a network adapter" }, + { "set_link", "ss", do_set_link, "name [up|down]" }, + { "acl", "sss?i?", do_acl, " [] []\n", + "acl show vnc.username\n" + "acl policy vnc.username deny\n" + "acl allow vnc.username fred\n" + "acl deny vnc.username bob\n" + "acl reset vnc.username\n" }, - { NULL, NULL, }, - }; - -@@ -2891,3 +2977,12 @@ void monitor_readline(const char *prompt + { "cpu_set", "is", do_cpu_set_nr, "cpu [online|offline]", "change cpu state" }, + #if defined(TARGET_I386) || defined(TARGET_X86_64) + { "drive_add", "iss", drive_hot_add, "pcibus pcidevfn [file=file][,if=type][,bus=n]\n" +@@ -2927,3 +3013,12 @@ void monitor_readline(const char *prompt monitor_hd[i]->focus = old_focus[i]; } } @@ -528,10 +533,11 @@ diff -r b1008c5c6c16 monitor.c + * tab-width: 8 + * End: + */ -diff -r b1008c5c6c16 qemu-doc.texi ---- a/qemu-doc.texi Mon Mar 02 11:13:40 2009 +0000 -+++ b/qemu-doc.texi Mon Mar 02 12:11:04 2009 +0000 -@@ -631,6 +631,19 @@ ensures a data encryption preventing com +Index: kvm-84.git-snapshot-20090303/qemu/qemu-doc.texi +=================================================================== +--- kvm-84.git-snapshot-20090303.orig/qemu/qemu-doc.texi ++++ kvm-84.git-snapshot-20090303/qemu/qemu-doc.texi +@@ -639,6 +639,19 @@ ensures a data encryption preventing com credentials. See the @ref{vnc_security} section for details on using SASL authentication. @@ -551,7 +557,7 @@ diff -r b1008c5c6c16 qemu-doc.texi @end table @end table -@@ -1392,6 +1405,42 @@ Password: ******** +@@ -1389,6 +1402,42 @@ Password: ******** @end table @@ -594,9 +600,10 @@ diff -r b1008c5c6c16 qemu-doc.texi @item screendump @var{filename} Save screen into PPM image @var{filename}. -diff -r b1008c5c6c16 vnc-auth-sasl.c ---- a/vnc-auth-sasl.c Mon Mar 02 11:13:40 2009 +0000 -+++ b/vnc-auth-sasl.c Mon Mar 02 12:11:04 2009 +0000 +Index: kvm-84.git-snapshot-20090303/qemu/vnc-auth-sasl.c +=================================================================== +--- kvm-84.git-snapshot-20090303.orig/qemu/vnc-auth-sasl.c ++++ kvm-84.git-snapshot-20090303/qemu/vnc-auth-sasl.c @@ -120,22 +120,32 @@ static int vnc_auth_sasl_check_access(Vn { const void *val; @@ -633,9 +640,10 @@ diff -r b1008c5c6c16 vnc-auth-sasl.c } static int vnc_auth_sasl_check_ssf(VncState *vs) -diff -r b1008c5c6c16 vnc-auth-sasl.h ---- a/vnc-auth-sasl.h Mon Mar 02 11:13:40 2009 +0000 -+++ b/vnc-auth-sasl.h Mon Mar 02 12:11:04 2009 +0000 +Index: kvm-84.git-snapshot-20090303/qemu/vnc-auth-sasl.h +=================================================================== +--- kvm-84.git-snapshot-20090303.orig/qemu/vnc-auth-sasl.h ++++ kvm-84.git-snapshot-20090303/qemu/vnc-auth-sasl.h @@ -30,6 +30,9 @@ #include @@ -657,9 +665,10 @@ diff -r b1008c5c6c16 vnc-auth-sasl.h void vnc_sasl_client_cleanup(VncState *vs); long vnc_client_read_sasl(VncState *vs); -diff -r b1008c5c6c16 vnc-tls.c ---- a/vnc-tls.c Mon Mar 02 11:13:40 2009 +0000 -+++ b/vnc-tls.c Mon Mar 02 12:11:04 2009 +0000 +Index: kvm-84.git-snapshot-20090303/qemu/vnc-tls.c +=================================================================== +--- kvm-84.git-snapshot-20090303.orig/qemu/vnc-tls.c ++++ kvm-84.git-snapshot-20090303/qemu/vnc-tls.c @@ -255,6 +255,25 @@ int vnc_tls_validate_certificate(struct gnutls_strerror (ret)); return -1; @@ -686,9 +695,10 @@ diff -r b1008c5c6c16 vnc-tls.c } gnutls_x509_crt_deinit (cert); -diff -r b1008c5c6c16 vnc-tls.h ---- a/vnc-tls.h Mon Mar 02 11:13:40 2009 +0000 -+++ b/vnc-tls.h Mon Mar 02 12:11:04 2009 +0000 +Index: kvm-84.git-snapshot-20090303/qemu/vnc-tls.h +=================================================================== +--- kvm-84.git-snapshot-20090303.orig/qemu/vnc-tls.h ++++ kvm-84.git-snapshot-20090303/qemu/vnc-tls.h @@ -31,6 +31,8 @@ #include #include @@ -706,9 +716,10 @@ diff -r b1008c5c6c16 vnc-tls.h /* Paths to x509 certs/keys */ char *x509cacert; -diff -r b1008c5c6c16 vnc.c ---- a/vnc.c Mon Mar 02 11:13:40 2009 +0000 -+++ b/vnc.c Mon Mar 02 12:11:04 2009 +0000 +Index: kvm-84.git-snapshot-20090303/qemu/vnc.c +=================================================================== +--- kvm-84.git-snapshot-20090303.orig/qemu/vnc.c ++++ kvm-84.git-snapshot-20090303/qemu/vnc.c @@ -28,6 +28,7 @@ #include "sysemu.h" #include "qemu_socket.h" @@ -754,9 +765,10 @@ diff -r b1008c5c6c16 vnc.c /* * Combinations we support here: * -diff -r b1008c5c6c16 vnc.h ---- a/vnc.h Mon Mar 02 11:13:40 2009 +0000 -+++ b/vnc.h Mon Mar 02 12:11:04 2009 +0000 +Index: kvm-84.git-snapshot-20090303/qemu/vnc.h +=================================================================== +--- kvm-84.git-snapshot-20090303.orig/qemu/vnc.h ++++ kvm-84.git-snapshot-20090303/qemu/vnc.h @@ -98,6 +98,9 @@ struct VncDisplay int subauth; /* Used by VeNCrypt */ VncDisplayTLS tls; diff --git a/qemu.spec b/qemu.spec index e2eabe8..bf014da 100644 --- a/qemu.spec +++ b/qemu.spec @@ -1,12 +1,18 @@ Summary: QEMU is a FAST! processor emulator Name: qemu -Version: 1.0 -Release: 0.5.svn6666%{?dist} +Version: 0.10 +Release: 0.1.kvm20090303git%{?dist} +# I have mistakenly thought the revision name would be 1.0. +# So 0.10 series get Epoch = 1 +Epoch: 1 License: GPLv2+ and LGPLv2+ Group: Development/Tools URL: http://www.qemu.org/ -Source0: http://www.qemu.org/%{name}-%{version}.tar.gz +#Source0: http://www.qemu.org/%{name}-%{version}.tar.gz +# FIXME: Say how to get the sources +Source0: kvm-84.git-snapshot-20090303.tar.gz Source1: qemu.init +Source2: kvm.modules # VNC SASL authentication support # Not upstream yet, but approved for commit immediately @@ -19,11 +25,14 @@ Patch5: qemu-sasl-05-vnc-tls-vencrypt.patch Patch6: qemu-sasl-06-vnc-sasl.patch Patch7: qemu-sasl-07-vnc-monitor-authinfo.patch Patch8: qemu-sasl-08-vnc-acl-mgmt.patch +Patch9: kvm-upstream-ppc.patch +Patch10: kvm-fix-strayR.patch # NB, delibrately not including patch 09 which is not # intended for commit BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: SDL-devel zlib-devel which texi2html gnutls-devel cyrus-sasl-devel +BuildRequires: rsync Requires: %{name}-user = %{version}-%{release} Requires: %{name}-system-x86 = %{version}-%{release} Requires: %{name}-system-sparc = %{version}-%{release} @@ -35,6 +44,9 @@ Requires: %{name}-system-mips = %{version}-%{release} Requires: %{name}-system-ppc = %{version}-%{release} Requires: %{name}-img = %{version}-%{release} +# sorry dudes, one step at a time +ExcludeArch: ppc ppc64 + #ExclusiveArch: %{ix86} x86_64 ppc alpha sparcv9 sparc64 armv4l %define qemudocdir %{_docdir}/%{name}-%{version} @@ -107,7 +119,7 @@ Requires: bochs-bios-data %qemupkgdesc system-sh4 {system emulator for sh4} %prep -%setup -q +%setup -q -n kvm-84.git-snapshot-20090303 # 01-tls-handshake-fix %patch1 -p1 # 02-vnc-monitor-info @@ -124,6 +136,8 @@ Requires: bochs-bios-data %patch7 -p1 # 08-vnc-acl-mgmt %patch8 -p1 +%patch9 -p1 +%patch10 -p1 %build # systems like rhel build system does not have a recent enough linker so @@ -135,19 +149,43 @@ build_id_available() { } if build_id_available; then - extraldflags="--extra-ldflags=-Wl,--build-id" + extraldflags="-Wl,--build-id"; buildldflags="VL_LDFLAGS=-Wl,--build-id" else extraldflags="" buildldflags="" fi +%ifarch %{ix86} x86_64 +# build kvm +echo "%{name}-%{version}" > $(pwd)/kernel/.kernelrelease +./configure --with-patched-kernel --target-list=x86_64-softmmu \ + --kerneldir=$(pwd)/kernel --prefix=%{_prefix} \ + --qemu-ldflags=$extraldflags + +make %{?_smp_mflags} $buildldflags +cp qemu/x86_64-softmmu/qemu-system-x86_64 qemu-kvm +make clean +%endif + +echo "%{name}-%{version}" > $(pwd)/kernel/.kernelrelease +cd qemu ./configure \ + --target-list="i386-softmmu x86_64-softmmu arm-softmmu cris-softmmu m68k-softmmu \ + mips-softmmu mipsel-softmmu mips64-softmmu mips64el-softmmu ppc-softmmu \ + ppcemb-softmmu ppc64-softmmu sh4-softmmu sh4eb-softmmu sparc-softmmu \ + i386-linux-user x86_64-linux-user alpha-linux-user arm-linux-user \ + armeb-linux-user cris-linux-user m68k-linux-user mips-linux-user \ + mipsel-linux-user ppc-linux-user ppc64-linux-user ppc64abi32-linux-user \ + sh4-linux-user sh4eb-linux-user sparc-linux-user sparc64-linux-user \ + sparc32plus-linux-user" \ --prefix=%{_prefix} \ --interp-prefix=%{_prefix}/qemu-%%M \ - $extraldflags; -make %{?_smp_mflags} $buildldflags + --kerneldir=$(pwd)/../kernel --prefix=%{_prefix} \ + --disable-kvm \ + --extra-ldflags=$extraldflags +make %{?_smp_mflags} $buildldflags %install rm -rf $RPM_BUILD_ROOT @@ -160,7 +198,14 @@ make prefix="${RPM_BUILD_ROOT}%{_prefix}" \ datadir="${RPM_BUILD_ROOT}%{_prefix}/share/qemu" install chmod -x ${RPM_BUILD_ROOT}%{_mandir}/man1/* +%ifarch %{ix86} x86_64 +mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig/modules +install -m 0755 %{SOURCE1} $RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig/modules/kvm.modules +%endif + +cd qemu install -D -p -m 0755 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/qemu +install -D -p -m 0755 ../qemu-kvm $RPM_BUILD_ROOT%{_bindir}/ install -D -p -m 0644 -t ${RPM_BUILD_ROOT}/%{qemudocdir} Changelog README TODO COPYING COPYING.LIB LICENSE install -D -p -m 0644 qemu.sasl $RPM_BUILD_ROOT%{_sysconfdir}/sasl2/qemu.conf @@ -188,6 +233,13 @@ ln -s ../bochs/BIOS-bochs-latest %{buildroot}/usr/share/qemu/bios.bin %clean rm -rf $RPM_BUILD_ROOT +%post system-x86 +%ifarch %{ix86} +# load kvm modules now, so we can make sure no reboot is needed. +# If there's already a kvm module installed, we don't mess with it +sh /%{_sysconfdir}/sysconfig/modules/kvm.modules +%endif + %post /sbin/chkconfig --add qemu @@ -245,6 +297,10 @@ fi %defattr(-,root,root) %{_bindir}/qemu %{_bindir}/qemu-system-x86_64 +%ifarch %{ix86} x86_64 +%{_bindir}/qemu-kvm +%{_sysconfdir}/sysconfig/modules/kvm.modules +%endif %{_prefix}/share/qemu/bios.bin %{_prefix}/share/qemu/vgabios.bin %{_prefix}/share/qemu/vgabios-cirrus.bin @@ -284,6 +340,12 @@ fi %{_mandir}/man1/qemu-img.1* %changelog +* Tue Mar 03 2009 Glauber Costa - 0.10-0.1.kvm20090303git +- Set Epoch to 1 +- Build KVM (basic build, no tools yet) +- Set ppc in ExcludeArch. This is temporary, just to fix one issue at a time. + ppc users (IBM ? ;-)) please wait a little bit. + * Tue Mar 3 2009 Daniel P. Berrange - 1.0-0.5.svn6666 - Support VNC SASL authentication protocol - Fix dep on bochs-bios-data diff --git a/sources b/sources index acefb0d..0877184 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -8394aa871af278efcdec46c37f913533 qemu-1.0.tar.gz +b81c0982015b21e01fe93a1d9405def8 kvm-84.git-snapshot-20090303.tar.gz