Hello community,
here is the log from the commit of package xorg-x11-server for openSUSE:Factory
checked in at Fri Jul 3 16:28:55 CEST 2009.
--------
--- xorg-x11-server/xorg-x11-server.changes 2009-06-24 19:06:23.000000000 +0200
+++ /mounts/work_src_done/STABLE/xorg-x11-server/xorg-x11-server.changes 2009-07-02 16:12:21.000000000 +0200
@@ -1,0 +2,6 @@
+Thu Jul 2 15:51:47 CEST 2009 - mhopf@novell.com
+
+- Adapt vnc patches to changes in input infrastructure
+ (fixes bnc #508553)
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
New:
----
xorg-server-xf4vnc-fix.diff
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xorg-x11-server.spec ++++++
--- /var/tmp/diff_new_pack.Hd4742/_old 2009-07-03 16:28:39.000000000 +0200
+++ /var/tmp/diff_new_pack.Hd4742/_new 2009-07-03 16:28:39.000000000 +0200
@@ -23,7 +23,7 @@
%define dirsuffix 1.6.1
%define fglrx_driver_hack 0
### FIXME
-%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-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
### HAL/evdev support
BuildRequires: hal-devel
@@ -33,7 +33,7 @@
Url: http://xorg.freedesktop.org/
%define EXPERIMENTAL 0
Version: 7.4
-Release: 44
+Release: 45
License: GPL v2 or later ; MIT License (or similar)
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Group: System/X11/Servers/XF86_4
@@ -85,6 +85,7 @@
Patch44: xorg-server-xf4vnc-cutpaste.diff
Patch46: xorg-server-xf4vnc-busyloop.diff
Patch47: xorg-server-xf4vnc-clientTimeout.diff
+Patch48: xorg-server-xf4vnc-fix.diff
%endif
Patch41: loadmod-bug197195.diff
Patch45: bug-197858_dpms.diff
@@ -164,7 +165,7 @@
%if %vnc
%package -n xorg-x11-Xvnc
-License: GPL v2 or later; X11/MIT
+License: GPL v2 or later ; MIT License (or similar)
Summary: VNC Server for the X Window System
Group: System/X11/Servers/XF86_4
Requires: xorg-x11-fonts-core xorg-x11
@@ -211,6 +212,7 @@
%patch44
%patch46 -p1
%patch47 -p1
+%patch48 -p1
chmod 755 hw/vnc/symlink-vnc.sh
%endif
%patch41 -p1
@@ -273,7 +275,7 @@
autoreconf -fi
# DRI2 disabled for Xserver 1.5 as libdrm 2.3.1 doesn't have the
# drmBO functionality.
-./configure CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" \
+./configure CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -O0 -g" \
%if %fglrx_driver_hack
--with-release-major=7 \
--with-release-minor=2 \
++++++ xorg-server-xf4vnc-fix.diff ++++++
Index: xorg-server-1.6.1/hw/vnc/cutpaste.c
===================================================================
--- xorg-server-1.6.1.orig/hw/vnc/cutpaste.c
+++ xorg-server-1.6.1/hw/vnc/cutpaste.c
@@ -66,7 +66,7 @@ rfbSetXCutText(char *str, int len)
event.u.selectionClear.time = GetTimeInMillis();
event.u.selectionClear.window = pSel->window;
event.u.selectionClear.atom = pSel->selection;
- (void) TryClientEvents (pSel->client, &event, 1,
+ (void) TryClientEvents (pSel->client, NULL, &event, 1,
NoEventMask, NoEventMask /* CantBeFiltered */,
NullGrab);
}
Index: xorg-server-1.6.1/hw/vnc/kbdptr.c
===================================================================
--- xorg-server-1.6.1.orig/hw/vnc/kbdptr.c
+++ xorg-server-1.6.1/hw/vnc/kbdptr.c
@@ -74,19 +74,26 @@ vncSetPointerDevice(DeviceIntPtr ptr)
static void
EnqueueMotion(DeviceIntPtr ptrDev, int x, int y)
{
- xEvent *events = (xEvent*) calloc(sizeof(xEvent), GetMaximumEventsNum());
+ int maxEventsNum = GetMaximumEventsNum();
+ xEvent *events = (xEvent*) calloc(sizeof(xEvent), maxEventsNum);
+ EventListPtr evls= calloc(sizeof(EventList), maxEventsNum);
int detail = 0, valuators[2], nevents, i;
valuators[0] = x;
valuators[1] = y;
+ for (i = 0; i < maxEventsNum; i++) {
+ evls[i].event = &events[i];
+ evls[i].evlen = sizeof(xEvent);
+ }
if (!ptrDev) {
ErrorF("VNC: In EnqueueMotion() ptrDev=NULL\n");
return;
}
- nevents = GetPointerEvents(events, ptrDev, MotionNotify, detail,
+ nevents = GetPointerEvents(evls, ptrDev, MotionNotify, detail,
POINTER_ABSOLUTE, 0, 2, valuators);
for (i = 0; i < nevents; i++)
mieqEnqueue(ptrDev, events + i);
free(events);
+ free(evls);
}
#endif
@@ -94,33 +101,47 @@ EnqueueMotion(DeviceIntPtr ptrDev, int x
static void
EnqueueButton(DeviceIntPtr ptrDev, int type, int detail)
{
- xEvent *events = (xEvent*) calloc(sizeof(xEvent), GetMaximumEventsNum());
+ int maxEventsNum = GetMaximumEventsNum();
+ xEvent *events = (xEvent*) calloc(sizeof(xEvent), maxEventsNum);
+ EventListPtr evls= calloc(sizeof(EventList), maxEventsNum);
int nevents, i;
+ for (i = 0; i < maxEventsNum; i++) {
+ evls[i].event = &events[i];
+ evls[i].evlen = sizeof(xEvent);
+ }
if (!ptrDev) {
ErrorF("VNC: In EnqueueButton() ptrDev=NULL\n");
return;
}
- nevents = GetPointerEvents(events, ptrDev, type, detail,
+ nevents = GetPointerEvents(evls, ptrDev, type, detail,
POINTER_ABSOLUTE, 0, 0, NULL/*valuators*/);
for (i = 0; i < nevents; i++)
mieqEnqueue(ptrDev, events + i);
free(events);
+ free(evls);
}
static void
EnqueueKey(DeviceIntPtr kbdDev, int type, int detail)
{
- xEvent *events = (xEvent*) calloc(sizeof(xEvent), GetMaximumEventsNum());
+ int maxEventsNum = GetMaximumEventsNum();
+ xEvent *events = (xEvent*) calloc(sizeof(xEvent), maxEventsNum);
+ EventListPtr evls= calloc(sizeof(EventList), maxEventsNum);
int nevents, i;
+ for (i = 0; i < maxEventsNum; i++) {
+ evls[i].event = &events[i];
+ evls[i].evlen = sizeof(xEvent);
+ }
if (!kbdDev) {
ErrorF("VNC: In EnqueueKey() kbdDev=NULL\n");
return;
}
- nevents = GetKeyboardEvents(events, kbdDev, type, detail);
+ nevents = GetKeyboardEvents(evls, kbdDev, type, detail);
for (i = 0; i < nevents; i++)
mieqEnqueue(kbdDev, events + i);
free(events);
+ free(evls);
}
@@ -256,7 +277,7 @@ KbdAddEvent(Bool down, KeySym keySym, rf
shiftMustBePressed = TRUE;
}
- SendMappingNotify(MappingKeyboard, keyCode, 1, serverClient);
+ SendMappingNotify(kbdDevice, MappingKeyboard, keyCode, 1, serverClient);
ErrorF("KbdAddEvent: unknown KeySym 0x%x - allocating KeyCode %d\n",
(int)keySym, keyCode);
Index: xorg-server-1.6.1/hw/vnc/rfbkeyb.c
===================================================================
--- xorg-server-1.6.1.orig/hw/vnc/rfbkeyb.c
+++ xorg-server-1.6.1/hw/vnc/rfbkeyb.c
@@ -388,7 +388,7 @@ static XF86ModuleVersionInfo xf86rfbKeyb
"xf4vnc Project, see http://xf4vnc.sf.net",
MODINFOSTRING1,
MODINFOSTRING2,
- XF86_VERSION_CURRENT,
+ XORG_VERSION_CURRENT,
1, 0, 0,
ABI_CLASS_XINPUT,
ABI_XINPUT_VERSION,
Index: xorg-server-1.6.1/hw/vnc/rfbmouse.c
===================================================================
--- xorg-server-1.6.1.orig/hw/vnc/rfbmouse.c
+++ xorg-server-1.6.1/hw/vnc/rfbmouse.c
@@ -98,10 +98,12 @@ xf86rfbMouseControlProc(DeviceIntPtr dev
void *func1;
int (*func2)(void);
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 3
if (LoaderSymbol("GetMotionHistory"))
func1 = LoaderSymbol("GetMotionHistory");
else
func1 = LoaderSymbol("miPointerGetMotionEvents");
+#endif
if (LoaderSymbol("GetMotionHistorySize"))
func2 = LoaderSymbol("GetMotionHistorySize");
@@ -120,7 +122,9 @@ xf86rfbMouseControlProc(DeviceIntPtr dev
map[4] = 4;
map[5] = 5;
InitPointerDeviceStruct(pDev, map, 5,
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 3
func1,
+#endif
PtrDeviceControl,
(*func2)(), 2);
break;
@@ -243,7 +247,7 @@ static XF86ModuleVersionInfo xf86rfbMous
"xf4vnc Project, see http://xf4vnc.sf.net",
MODINFOSTRING1,
MODINFOSTRING2,
- XF86_VERSION_CURRENT,
+ XORG_VERSION_CURRENT,
1, 0, 0,
ABI_CLASS_XINPUT,
ABI_XINPUT_VERSION,
Index: xorg-server-1.6.1/hw/vnc/rfbserver.c
===================================================================
--- xorg-server-1.6.1.orig/hw/vnc/rfbserver.c
+++ xorg-server-1.6.1/hw/vnc/rfbserver.c
@@ -1122,8 +1122,8 @@ rfbProcessClientNormalMessage(cl)
{
int x, y;
- miPointerPosition(&x, &y); /*XXX deprecated*/
- (*pVNC->spriteFuncs->SetCursor)(cl->pScreen, pVNC->pCurs, x, y);
+ miPointerGetPosition(inputInfo.pointer, &x, &y);
+ (*pVNC->spriteFuncs->SetCursor)(inputInfo.pointer, cl->pScreen, pVNC->pCurs, x, y);
}
#endif
Index: xorg-server-1.6.1/hw/vnc/sprite.c
===================================================================
--- xorg-server-1.6.1.orig/hw/vnc/sprite.c
+++ xorg-server-1.6.1/hw/vnc/sprite.c
@@ -112,7 +112,8 @@ static void rfbSpriteSaveDoomedAreas
static RegionPtr rfbSpriteRestoreAreas(WindowPtr pWin, RegionPtr pRgnExposed);
static void rfbSpriteComputeSaved(ScreenPtr pScreen);
-static DevPrivateKey rfbSpriteScreenKey = &rfbSpriteScreenKey;
+static int rfbSpriteScreenKeyStore;
+static DevPrivateKey rfbSpriteScreenKey = &rfbSpriteScreenKeyStore;
#define SCREEN_PROLOGUE(pScreen, field) ((pScreen)->field = \
((rfbSpriteScreenPtr)dixLookupPrivate(&(pScreen)->devPrivates, \
@@ -144,7 +145,8 @@ static GCFuncs rfbSpriteGCFuncs = {
rfbSpriteCopyClip,
};
-static DevPrivateKey rfbSpriteGCKey = &rfbSpriteGCKey;
+static int rfbSpriteGCKeyStore;
+static DevPrivateKey rfbSpriteGCKey = &rfbSpriteGCKeyStore;
#define GC_FUNC_PROLOGUE(pGC) \
rfbSpriteGCPtr pGCPriv = \
@@ -289,23 +291,27 @@ static GCOps rfbSpriteGCOps = {
* pointer-sprite method table
*/
-static Bool rfbSpriteRealizeCursor (ScreenPtr pScreen, CursorPtr pCursor);
-static Bool rfbSpriteUnrealizeCursor (ScreenPtr pScreen, CursorPtr pCursor);
-static void rfbSpriteSetCursor (ScreenPtr pScreen, CursorPtr pCursor, int x, int y);
-static void rfbSpriteMoveCursor (ScreenPtr pScreen, int x, int y);
+static Bool rfbSpriteRealizeCursor (DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor);
+static Bool rfbSpriteUnrealizeCursor (DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor);
+static void rfbSpriteSetCursor (DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor, int x, int y);
+static void rfbSpriteMoveCursor (DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y);
+static Bool rfbSpriteInitializeCursor (DeviceIntPtr pDev, ScreenPtr pScreen);
+static void rfbSpriteCleanupCursor (DeviceIntPtr pDev, ScreenPtr pScreen);
miPointerSpriteFuncRec rfbSpritePointerFuncs = {
rfbSpriteRealizeCursor,
rfbSpriteUnrealizeCursor,
rfbSpriteSetCursor,
rfbSpriteMoveCursor,
+ rfbSpriteInitializeCursor,
+ rfbSpriteCleanupCursor,
};
/*
* other misc functions
*/
-static Bool rfbDisplayCursor (ScreenPtr pScreen, CursorPtr pCursor);
+static Bool rfbDisplayCursor (DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor);
/*
@@ -1963,7 +1969,7 @@ rfbSpriteLineHelper()
#define SPRITE_PAD 8
static Bool
-rfbSpriteRealizeCursor (ScreenPtr pScreen, CursorPtr pCursor)
+rfbSpriteRealizeCursor (DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor)
{
rfbSpriteScreenPtr pScreenPriv;
@@ -1975,7 +1981,7 @@ rfbSpriteRealizeCursor (ScreenPtr pScree
}
static Bool
-rfbSpriteUnrealizeCursor (ScreenPtr pScreen, CursorPtr pCursor)
+rfbSpriteUnrealizeCursor (DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor)
{
rfbSpriteScreenPtr pScreenPriv;
@@ -1985,7 +1991,7 @@ rfbSpriteUnrealizeCursor (ScreenPtr pScr
}
static void
-rfbSpriteSetCursor (ScreenPtr pScreen, CursorPtr pCursor, int x, int y)
+rfbSpriteSetCursor (DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor, int x, int y)
{
rfbSpriteScreenPtr pScreenPriv;
rfbClientPtr cl, nextCl;
@@ -2101,13 +2107,24 @@ rfbSpriteSetCursor (ScreenPtr pScreen, C
}
static void
-rfbSpriteMoveCursor (ScreenPtr pScreen, int x, int y)
+rfbSpriteMoveCursor (DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y)
{
rfbSpriteScreenPtr pScreenPriv;
pScreenPriv = (rfbSpriteScreenPtr)dixLookupPrivate(&pScreen->devPrivates,
rfbSpriteScreenKey);
- rfbSpriteSetCursor (pScreen, pScreenPriv->pCursor, x, y);
+ rfbSpriteSetCursor (pDev, pScreen, pScreenPriv->pCursor, x, y);
+}
+
+static Bool
+rfbSpriteInitializeCursor (DeviceIntPtr pDev, ScreenPtr pScreen)
+{
+ return TRUE;
+}
+
+static void
+rfbSpriteCleanupCursor (DeviceIntPtr pDev, ScreenPtr pScreen)
+{
}
/*
@@ -2215,9 +2232,7 @@ rfbSpriteComputeSaved (pScreen)
*/
static Bool
-rfbDisplayCursor(pScreen, pCursor)
- ScreenPtr pScreen;
- CursorPtr pCursor;
+rfbDisplayCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor)
{
rfbClientPtr cl;
rfbSpriteScreenPtr pPriv;
@@ -2230,7 +2245,7 @@ rfbDisplayCursor(pScreen, pCursor)
pPriv = (rfbSpriteScreenPtr)dixLookupPrivate(&pScreen->devPrivates,
rfbSpriteScreenKey);
- status = (*pPriv->DisplayCursor)(pScreen, pCursor);
+ status = (*pPriv->DisplayCursor)(pDev, pScreen, pCursor);
/* send new cursor shape to interested viewers */
for (cl = rfbClientHead; cl ; cl = cl->next) {
Index: xorg-server-1.6.1/hw/xfree86/vnc/vncInit.c
===================================================================
--- xorg-server-1.6.1.orig/hw/xfree86/vnc/vncInit.c
+++ xorg-server-1.6.1/hw/xfree86/vnc/vncInit.c
@@ -35,7 +35,7 @@
#include "xf86.h"
#include "xf86_OSproc.h"
#include "xf86Resources.h"
-#include "xf86Version.h"
+#include "xorgVersion.h"
int vncScreenPrivateIndex = -1;
int inetdSock = -1;
@@ -56,11 +56,11 @@ static unsigned long VNCGeneration = 0;
static const OptionInfoRec *VNCAvailableOptions(void *unused);
static void rfbWakeupHandler (int i, pointer blockData, unsigned long err, pointer pReadmask);
-static Bool vncCursorRealizeCursor(ScreenPtr, CursorPtr);
-static Bool vncCursorUnrealizeCursor(ScreenPtr, CursorPtr);
-static void vncCursorSetCursor(ScreenPtr, CursorPtr, int, int);
-static void vncCursorMoveCursor(ScreenPtr, int, int);
-static Bool vncDisplayCursor(ScreenPtr, CursorPtr);
+static Bool vncCursorRealizeCursor(DeviceIntPtr, ScreenPtr, CursorPtr);
+static Bool vncCursorUnrealizeCursor(DeviceIntPtr, ScreenPtr, CursorPtr);
+static void vncCursorSetCursor(DeviceIntPtr, ScreenPtr, CursorPtr, int, int);
+static void vncCursorMoveCursor(DeviceIntPtr, ScreenPtr, int, int);
+static Bool vncDisplayCursor(DeviceIntPtr, ScreenPtr, CursorPtr);
static miPointerSpriteFuncRec vncCursorSpriteFuncs = {
vncCursorRealizeCursor,
@@ -389,23 +389,23 @@ VNCInit(ScreenPtr pScreen, unsigned char
/****** miPointerSpriteFunctions *******/
static Bool
-vncCursorRealizeCursor(ScreenPtr pScreen, CursorPtr pCurs)
+vncCursorRealizeCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCurs)
{
vncScreenPtr pScreenPriv = VNCPTR(pScreen);
- return (*pScreenPriv->spriteFuncs->RealizeCursor)(pScreen, pCurs);
+ return (*pScreenPriv->spriteFuncs->RealizeCursor)(pDev, pScreen, pCurs);
}
static Bool
-vncCursorUnrealizeCursor(ScreenPtr pScreen, CursorPtr pCurs)
+vncCursorUnrealizeCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCurs)
{
vncScreenPtr pScreenPriv = VNCPTR(pScreen);
- return (*pScreenPriv->spriteFuncs->UnrealizeCursor)(pScreen, pCurs);
+ return (*pScreenPriv->spriteFuncs->UnrealizeCursor)(pDev, pScreen, pCurs);
}
static void
-vncCursorSetCursor(ScreenPtr pScreen, CursorPtr pCurs, int x, int y)
+vncCursorSetCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCurs, int x, int y)
{
vncScreenPtr pScreenPriv = VNCPTR(pScreen);
@@ -426,11 +426,11 @@ vncCursorSetCursor(ScreenPtr pScreen, Cu
pScreenPriv->cursorIsDrawn = TRUE;
#endif
- (*pScreenPriv->spriteFuncs->SetCursor)(pScreen, pCurs, x, y);
+ (*pScreenPriv->spriteFuncs->SetCursor)(pDev, pScreen, pCurs, x, y);
}
static void
-vncCursorMoveCursor(ScreenPtr pScreen, int x, int y)
+vncCursorMoveCursor(DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y)
{
vncScreenPtr pScreenPriv = VNCPTR(pScreen);
rfbClientPtr cl;
@@ -440,7 +440,7 @@ vncCursorMoveCursor(ScreenPtr pScreen, i
cl->cursorWasMoved = TRUE;
}
- (*pScreenPriv->spriteFuncs->MoveCursor)(pScreen, x, y);
+ (*pScreenPriv->spriteFuncs->MoveCursor)(pDev, pScreen, x, y);
}
Bool
@@ -505,9 +505,7 @@ vncUseHWCursorARGB(pScreen, pCursor)
#endif
static Bool
-vncDisplayCursor(pScreen, pCursor)
- ScreenPtr pScreen;
- CursorPtr pCursor;
+vncDisplayCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor)
{
vncScreenPtr pScreenPriv = VNCPTR(pScreen);
rfbClientPtr cl;
@@ -520,7 +518,7 @@ vncDisplayCursor(pScreen, pCursor)
cl->cursorWasChanged = TRUE;
}
- ret = (*pScreen->DisplayCursor)(pScreen, pCursor);
+ ret = (*pScreen->DisplayCursor)(pDev, pScreen, pCursor);
pScreen->DisplayCursor = vncDisplayCursor;
Index: xorg-server-1.6.1/hw/vnc/vncext.c
===================================================================
--- xorg-server-1.6.1.orig/hw/vnc/vncext.c
+++ xorg-server-1.6.1/hw/vnc/vncext.c
@@ -36,8 +36,9 @@
#include