- 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.
This commit is contained in:
parent
42af21203a
commit
8571d06737
@ -1 +1 @@
|
||||
qemu-1.0.tar.gz
|
||||
kvm-84.git-snapshot-20090303.tar.gz
|
||||
|
87
kvm-fix-strayR.patch
Normal file
87
kvm-fix-strayR.patch
Normal file
@ -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 <ehabkost@redhat.com>
|
||||
---
|
||||
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
|
||||
|
58
kvm-upstream-ppc.patch
Normal file
58
kvm-upstream-ppc.patch
Normal file
@ -0,0 +1,58 @@
|
||||
From 1efd319579c8f34974d654b0a5ac5144424e693e Mon Sep 17 00:00:00 2001
|
||||
From: Glauber Costa <glommer@redhat.com>
|
||||
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 <glommer@redhat.com>
|
||||
---
|
||||
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
|
||||
|
@ -22,9 +22,10 @@ this patch.
|
||||
|
||||
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
|
||||
|
||||
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;
|
||||
|
@ -38,9 +38,10 @@ important.
|
||||
|
||||
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
|
||||
|
||||
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;
|
||||
+
|
||||
|
@ -20,10 +20,11 @@ causing clashing definitions.
|
||||
|
||||
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
|
||||
|
||||
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;
|
||||
|
@ -9,9 +9,10 @@ and SASL auth mechanisms to be moved out of the main vnc.c file.
|
||||
|
||||
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
|
||||
|
||||
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 <anthony@codemonkey.ws>
|
||||
@ -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
|
||||
|
@ -35,10 +35,11 @@ gnutls_send/recv.
|
||||
|
||||
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
|
||||
|
||||
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 <zlib.h>
|
||||
|
||||
@ -1555,9 +1562,9 @@ diff -r dfa890dd7417 vnc.h
|
||||
-#include <gnutls/gnutls.h>
|
||||
-#include <gnutls/x509.h>
|
||||
-#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;
|
||||
|
@ -75,10 +75,11 @@ if found, unless --disable-vnc-sasl was given to override it.
|
||||
|
||||
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
|
||||
|
||||
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"
|
||||
|
@ -29,9 +29,10 @@ Auth can be stacked, so both username & x509 dname may be shown.
|
||||
|
||||
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
|
||||
|
||||
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);
|
||||
|
@ -78,10 +78,11 @@ starting up
|
||||
|
||||
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
|
||||
|
||||
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, "<command> <aclname> [<match>] [<index>]\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 <sasl/sasl.h>
|
||||
|
||||
@ -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 <gnutls/gnutls.h>
|
||||
#include <gnutls/x509.h>
|
||||
@ -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;
|
||||
|
76
qemu.spec
76
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 <glommer@redhat.com> - 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 <berrange@redhat.com> - 1.0-0.5.svn6666
|
||||
- Support VNC SASL authentication protocol
|
||||
- Fix dep on bochs-bios-data
|
||||
|
Loading…
Reference in New Issue
Block a user