forked from pool/xorg-x11-server
- xorg-server-xf4vnc-fix-crash-on-193.diff
Fix vnc startup crashes (bnc #631994). Reenabled build of Xvnc. Massive rendering errors, still. OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/xorg-x11-server?expand=0&rev=316
This commit is contained in:
parent
d467ccc7e1
commit
3d8b0bc070
25
xorg-server-xf4vnc-bug605015-vnc-umlauts.diff
Normal file
25
xorg-server-xf4vnc-bug605015-vnc-umlauts.diff
Normal file
@ -0,0 +1,25 @@
|
||||
Index: xorg-server-1.6.5/hw/vnc/kbdptr.c
|
||||
===================================================================
|
||||
--- xorg-server-1.6.5.orig/hw/vnc/kbdptr.c
|
||||
+++ xorg-server-1.6.5/hw/vnc/kbdptr.c
|
||||
@@ -166,7 +166,9 @@ KbdAddEvent(Bool down, KeySym keySym, rf
|
||||
if (!kbdDevice)
|
||||
return;
|
||||
|
||||
- keySyms = &kbdDevice->key->curKeySyms;
|
||||
+ /* Use virtual core keyboard for keysyms - see discussion on
|
||||
+ * https://defect.opensolaris.org/bz/show_bug.cgi?id=8687 */
|
||||
+ keySyms = &inputInfo.keyboard->key->curKeySyms;
|
||||
|
||||
#ifdef CORBA
|
||||
if (cl) {
|
||||
@@ -277,7 +279,8 @@ KbdAddEvent(Bool down, KeySym keySym, rf
|
||||
shiftMustBePressed = TRUE;
|
||||
}
|
||||
|
||||
- SendMappingNotify(kbdDevice, MappingKeyboard, keyCode, 1, serverClient);
|
||||
+ /* Use virtual core keyboard for keysyms */
|
||||
+ SendMappingNotify(inputInfo.keyboard, MappingKeyboard, keyCode, 1, serverClient);
|
||||
|
||||
ErrorF("KbdAddEvent: unknown KeySym 0x%x - allocating KeyCode %d\n",
|
||||
(int)keySym, keyCode);
|
110
xorg-server-xf4vnc-fix-crash-on-193.diff
Normal file
110
xorg-server-xf4vnc-fix-crash-on-193.diff
Normal file
@ -0,0 +1,110 @@
|
||||
diff -urp xorg-server-1.9.3.orig//hw/vnc/dispcur.c xorg-server-1.9.3/hw/vnc/dispcur.c
|
||||
--- xorg-server-1.9.3.orig//hw/vnc/dispcur.c 2010-12-21 16:51:38.000000000 +0100
|
||||
+++ xorg-server-1.9.3/hw/vnc/dispcur.c 2010-12-21 18:23:02.000000000 +0100
|
||||
@@ -74,10 +74,10 @@ in this Software without prior written a
|
||||
|
||||
/* per-screen private data */
|
||||
|
||||
-static int rfbDCScreenKeyStore;
|
||||
-static DevPrivateKey rfbDCScreenKey = &rfbDCScreenKeyStore;
|
||||
-static int rfbScreenKeyStore;
|
||||
-static DevPrivateKey rfbScreenKey = &rfbScreenKeyStore;
|
||||
+static DevPrivateKeyRec rfbDCScreenKeyRec;
|
||||
+#define rfbDCScreenKey (&rfbDCScreenKeyRec)
|
||||
+static DevPrivateKeyRec rfbScreenKeyRec;
|
||||
+#define rfbScreenKey (&rfbScreenKeyRec)
|
||||
|
||||
static Bool rfbDCCloseScreen(int index, ScreenPtr pScreen);
|
||||
|
||||
@@ -137,6 +137,12 @@ rfbDCInitialize (ScreenPtr pScreen, miPo
|
||||
{
|
||||
rfbDCScreenPtr pScreenPriv;
|
||||
|
||||
+ if (!dixRegisterPrivateKey(rfbDCScreenKey, PRIVATE_SCREEN, 0))
|
||||
+ return FALSE;
|
||||
+
|
||||
+ if (!dixRegisterPrivateKey(rfbScreenKey, PRIVATE_CURSOR_BITS, 0))
|
||||
+ return FALSE;
|
||||
+
|
||||
pScreenPriv = (rfbDCScreenPtr) xalloc (sizeof (rfbDCScreenRec));
|
||||
if (!pScreenPriv)
|
||||
return FALSE;
|
||||
diff -urp xorg-server-1.9.3.orig//hw/vnc/draw.c xorg-server-1.9.3/hw/vnc/draw.c
|
||||
--- xorg-server-1.9.3.orig//hw/vnc/draw.c 2010-12-21 16:51:38.000000000 +0100
|
||||
+++ xorg-server-1.9.3/hw/vnc/draw.c 2010-12-21 18:30:00.000000000 +0100
|
||||
@@ -61,6 +61,10 @@ in this Software without prior written a
|
||||
|
||||
int rfbDeferUpdateTime = 40; /* ms */
|
||||
|
||||
+extern DevPrivateKeyRec rfbGCKeyRec;
|
||||
+#define rfbGCKey (&rfbGCKeyRec)
|
||||
+
|
||||
+
|
||||
|
||||
/****************************************************************************/
|
||||
/*
|
||||
diff -urp xorg-server-1.9.3.orig//hw/vnc/sprite.c xorg-server-1.9.3/hw/vnc/sprite.c
|
||||
--- xorg-server-1.9.3.orig//hw/vnc/sprite.c 2010-12-21 16:51:38.000000000 +0100
|
||||
+++ xorg-server-1.9.3/hw/vnc/sprite.c 2010-12-21 18:21:32.000000000 +0100
|
||||
@@ -114,8 +114,9 @@ static void rfbSpriteSaveDoomedAreas
|
||||
static RegionPtr rfbSpriteRestoreAreas(WindowPtr pWin, RegionPtr pRgnExposed);
|
||||
static void rfbSpriteComputeSaved(ScreenPtr pScreen);
|
||||
|
||||
-static int rfbSpriteScreenKeyStore;
|
||||
-static DevPrivateKey rfbSpriteScreenKey = &rfbSpriteScreenKeyStore;
|
||||
+static DevPrivateKeyRec rfbSpriteScreenKeyRec;
|
||||
+#define rfbSpriteScreenKey (&rfbSpriteScreenKeyRec)
|
||||
+
|
||||
|
||||
#define SCREEN_PROLOGUE(pScreen, field) ((pScreen)->field = \
|
||||
((rfbSpriteScreenPtr)dixLookupPrivate(&(pScreen)->devPrivates, \
|
||||
@@ -147,8 +148,8 @@ static GCFuncs rfbSpriteGCFuncs = {
|
||||
rfbSpriteCopyClip,
|
||||
};
|
||||
|
||||
-static int rfbSpriteGCKeyStore;
|
||||
-static DevPrivateKey rfbSpriteGCKey = &rfbSpriteGCKeyStore;
|
||||
+static DevPrivateKeyRec rfbSpriteGCKeyRec;
|
||||
+#define rfbSpriteGCKey (&rfbSpriteGCKeyRec)
|
||||
|
||||
#define GC_FUNC_PROLOGUE(pGC) \
|
||||
rfbSpriteGCPtr pGCPriv = \
|
||||
@@ -331,6 +332,9 @@ rfbSpriteInitialize (pScreen, cursorFunc
|
||||
rfbSpriteScreenPtr pPriv;
|
||||
VisualPtr pVisual;
|
||||
|
||||
+ if (!dixRegisterPrivateKey(rfbSpriteScreenKey, PRIVATE_SCREEN, 0))
|
||||
+ return FALSE;
|
||||
+
|
||||
if (!dixRegisterPrivateKey(rfbSpriteGCKey, PRIVATE_CLIENT, sizeof(rfbSpriteGCRec)))
|
||||
return FALSE;
|
||||
|
||||
diff -urp xorg-server-1.9.3.orig//hw/vnc/vncext.c xorg-server-1.9.3/hw/vnc/vncext.c
|
||||
--- xorg-server-1.9.3.orig//hw/vnc/vncext.c 2010-12-21 16:51:38.000000000 +0100
|
||||
+++ xorg-server-1.9.3/hw/vnc/vncext.c 2010-12-21 18:29:54.000000000 +0100
|
||||
@@ -36,9 +36,10 @@
|
||||
#include <arpa/inet.h>
|
||||
#include <netdb.h>
|
||||
|
||||
-static int vncCreateScreenResourcesKeyStore, rfbGCKeyStore;
|
||||
-DevPrivateKey vncCreateScreenResourcesKey = &vncCreateScreenResourcesKeyStore;
|
||||
-DevPrivateKey rfbGCKey = &rfbGCKeyStore;
|
||||
+static DevPrivateKeyRec vncCreateScreenResourcesKeyRec;
|
||||
+#define vncCreateScreenResourcesKey (&vncCreateScreenResourcesKeyRec)
|
||||
+DevPrivateKeyRec rfbGCKeyRec;
|
||||
+#define rfbGCKey (&rfbGCKeyRec)
|
||||
|
||||
int VncSelectNotify(ClientPtr client, BOOL onoff);
|
||||
void VncExtensionInit(void);
|
||||
@@ -762,7 +763,11 @@ VncExtensionInit(void)
|
||||
|
||||
vncExtGeneration = serverGeneration;
|
||||
|
||||
+ // doesn't seem to be valid any more - mhopf 21.12.2010
|
||||
// no allocation needed for screen privates
|
||||
+ if (!dixRegisterPrivateKey(vncCreateScreenResourcesKey, PRIVATE_SCREEN, 0))
|
||||
+ return;
|
||||
+
|
||||
if (!dixRegisterPrivateKey(rfbGCKey, PRIVATE_CLIENT, sizeof(rfbGCRec)))
|
||||
return;
|
||||
|
@ -1,3 +1,10 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Dec 21 18:08:15 UTC 2010 - mhopf@novell.com
|
||||
|
||||
- xorg-server-xf4vnc-fix-crash-on-193.diff
|
||||
Fix vnc startup crashes (bnc #660208).
|
||||
Reenabled build of Xvnc. Massive rendering errors, still.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Dec 21 02:51:19 UTC 2010 - sndirsch@novell.com
|
||||
|
||||
|
@ -21,7 +21,7 @@
|
||||
|
||||
Name: xorg-x11-server
|
||||
%define dirsuffix 1.9.3
|
||||
%define vnc 0
|
||||
%define vnc 1
|
||||
BuildRequires: Mesa-devel bison flex fontconfig-devel freetype2-devel ghostscript-library libdrm-devel libopenssl-devel pkgconfig xorg-x11 xorg-x11-devel xorg-x11-fonts-devel xorg-x11-libICE-devel xorg-x11-libSM-devel xorg-x11-libX11-devel xorg-x11-libXau-devel xorg-x11-libXdmcp-devel xorg-x11-libXext-devel xorg-x11-libXfixes-devel xorg-x11-libXmu-devel xorg-x11-libXp-devel xorg-x11-libXpm-devel xorg-x11-libXprintUtil-devel xorg-x11-libXrender-devel xorg-x11-libXt-devel xorg-x11-libXv-devel xorg-x11-libfontenc-devel xorg-x11-libxkbfile-devel xorg-x11-proto-devel xorg-x11-xtrans-devel
|
||||
### udev support (broken on openSUSE 11.2, see also bnc #589997)
|
||||
%if %suse_version > 1120
|
||||
@ -80,6 +80,7 @@ Patch48: xorg-server-xf4vnc-fix.diff
|
||||
Patch49: xorg-server-xf4vnc-fixes_1_8.diff
|
||||
Patch50: xorg-server-xf4vnc-fixes_1_9.diff
|
||||
#Patch51: xorg-server-xf4vnc-bug605015-vnc-umlauts.diff
|
||||
Patch52: xorg-server-xf4vnc-fix-crash-on-193.diff
|
||||
%endif
|
||||
Patch45: bug-197858_dpms.diff
|
||||
Patch67: xorg-docs.diff
|
||||
@ -204,6 +205,7 @@ An X Window System server for Virtual Network Computing (VNC).
|
||||
%patch49 -p0
|
||||
%patch50 -p1
|
||||
#%patch51 -p1
|
||||
%patch52 -p1
|
||||
chmod 755 hw/vnc/symlink-vnc.sh
|
||||
%endif
|
||||
%patch45 -p0
|
||||
|
Loading…
Reference in New Issue
Block a user