Update to 1.2.80

- remove deprecated patches
  - tigervnc-102434.patch
  - tigervnc-viewer-reparent.patch
  - tigervnc11-java7.patch
- patches merged
  - tigervnc11-xorg111.patch
  - tigervnc11-xorg112.patch

Signed-off-by: Adam Tkac <atkac@redhat.com>
This commit is contained in:
Adam Tkac 2012-09-05 17:11:20 +02:00
parent 9dada1da81
commit 5e164de8bf
11 changed files with 39 additions and 996 deletions

1
.gitignore vendored
View File

@ -4,3 +4,4 @@ tigervnc-1.0.90-20100721svn4113.tar.bz2
/tigervnc-1.0.90-20110117svn4237.tar.bz2
/tigervnc-1.0.90.tar.gz
/tigervnc-1.1.0.tar.gz
/tigervnc-1.2.80-20120905svn4996.tar.bz2

View File

@ -1 +1 @@
1a5598b4a2ac530fb51411438959e11e tigervnc-1.1.0.tar.gz
ff71586fdd126885dd695516a7771720 tigervnc-1.2.80-20120905svn4996.tar.bz2

View File

@ -1,66 +0,0 @@
diff -up tigervnc-1.0.90-20101208svn4225/unix/vncviewer/CConn.cxx.102434 tigervnc-1.0.90-20101208svn4225/unix/vncviewer/CConn.cxx
--- tigervnc-1.0.90-20101208svn4225/unix/vncviewer/CConn.cxx.102434 2010-12-08 15:42:16.000000000 +0100
+++ tigervnc-1.0.90-20101208svn4225/unix/vncviewer/CConn.cxx 2010-12-08 17:35:37.898546362 +0100
@@ -38,6 +38,8 @@
#include <network/TcpSocket.h>
#include <cassert>
#include <list>
+#include <string>
+#include <iostream>
#include "TXViewport.h"
#include "DesktopWindow.h"
@@ -232,6 +234,15 @@ void CConn::getUserPasswd(char** user, c
return;
}
+ /* XXX Who wrote this code? Yes, it is really ugly */
+ if (passwdInput) {
+ std::string s;
+ std::cin >> s;
+ *password = strdup(s.c_str());
+ if (user) *user = 0;
+ return;
+ }
+
const char* secType = secTypeName(csecurity->getType());
const char* titlePrefix = _("VNC authentication");
unsigned int titleLen = strlen(titlePrefix) + strlen(secType) + 4;
diff -up tigervnc-1.0.90-20101208svn4225/unix/vncviewer/parameters.h.102434 tigervnc-1.0.90-20101208svn4225/unix/vncviewer/parameters.h
--- tigervnc-1.0.90-20101208svn4225/unix/vncviewer/parameters.h.102434 2009-03-23 17:49:47.000000000 +0100
+++ tigervnc-1.0.90-20101208svn4225/unix/vncviewer/parameters.h 2010-12-08 17:34:44.138568781 +0100
@@ -42,6 +42,7 @@ extern rfb::BoolParameter customCompress
extern rfb::IntParameter compressLevel;
extern rfb::BoolParameter noJpeg;
extern rfb::IntParameter qualityLevel;
+extern rfb::BoolParameter passwdInput;
extern char aboutText[];
extern char* programName;
diff -up tigervnc-1.0.90-20101208svn4225/unix/vncviewer/vncviewer.cxx.102434 tigervnc-1.0.90-20101208svn4225/unix/vncviewer/vncviewer.cxx
--- tigervnc-1.0.90-20101208svn4225/unix/vncviewer/vncviewer.cxx.102434 2010-11-18 14:33:57.000000000 +0100
+++ tigervnc-1.0.90-20101208svn4225/unix/vncviewer/vncviewer.cxx 2010-12-08 17:34:44.138568781 +0100
@@ -61,7 +61,7 @@ IntParameter wmDecorationHeight("WMDecor
StringParameter passwordFile("PasswordFile",
"Password file for VNC authentication", "");
AliasParameter passwd("passwd", "Alias for PasswordFile", &passwordFile);
-
+BoolParameter passwdInput("passwdInput", "Gets password from stdin", false);
BoolParameter useLocalCursor("UseLocalCursor",
"Render the mouse cursor locally", true);
BoolParameter dotWhenNoCursor("DotWhenNoCursor",
diff -up tigervnc-1.0.90-20101208svn4225/unix/vncviewer/vncviewer.man.102434 tigervnc-1.0.90-20101208svn4225/unix/vncviewer/vncviewer.man
--- tigervnc-1.0.90-20101208svn4225/unix/vncviewer/vncviewer.man.102434 2009-10-07 17:13:00.000000000 +0200
+++ tigervnc-1.0.90-20101208svn4225/unix/vncviewer/vncviewer.man 2010-12-08 17:34:44.138568781 +0100
@@ -119,6 +119,11 @@ the server, you can specify it here to a
"~/.vnc/passwd".
.TP
+.B \-passwdInput \fItrue, false\fP
+Force standard vnc dialog to getting password and reads password from stdin.
+Default is false(shows dialog window)
+
+.TP
.B \-Shared
When you make a connection to a VNC server, all other existing connections are
normally closed. This option requests that they be left open, allowing you to

View File

@ -1,121 +0,0 @@
diff -up tightvnc-1.5.0-20081015svn3022/unix/tx/TXViewport.cxx.viewer-reparent tightvnc-1.5.0-20081015svn3022/unix/tx/TXViewport.cxx
--- tightvnc-1.5.0-20081015svn3022/unix/tx/TXViewport.cxx.viewer-reparent 2008-03-14 14:37:09.000000000 +0100
+++ tightvnc-1.5.0-20081015svn3022/unix/tx/TXViewport.cxx 2008-10-23 13:11:39.000000000 +0200
@@ -44,6 +44,21 @@ TXViewport::~TXViewport()
delete vScrollbar;
}
+void TXViewport::reparent(long embed_window)
+{
+ XReparentWindow(dpy, win(), (Window)embed_window, 0, 0);
+ XSelectInput(dpy, embed_window, child->eventMask);
+ if (!eventHandler)
+ this->setEventHandler(this);
+}
+
+void TXViewport::handleEvent(TXWindow* w, XEvent* ev)
+{
+ if (child && child->eventHandler)
+ ((TXEventHandler *)child->eventHandler)->handleEvent(child, ev);
+}
+
+
void TXViewport::setChild(TXWindow* child_)
{
child = child_;
diff -up tightvnc-1.5.0-20081015svn3022/unix/tx/TXViewport.h.viewer-reparent tightvnc-1.5.0-20081015svn3022/unix/tx/TXViewport.h
--- tightvnc-1.5.0-20081015svn3022/unix/tx/TXViewport.h.viewer-reparent 2008-03-14 14:37:09.000000000 +0100
+++ tightvnc-1.5.0-20081015svn3022/unix/tx/TXViewport.h 2008-10-23 13:11:39.000000000 +0200
@@ -32,8 +32,8 @@
#include "TXWindow.h"
#include "TXScrollbar.h"
-class TXViewport : public TXWindow, public TXScrollbarCallback,
- public rfb::Timer::Callback {
+class TXViewport : public TXWindow, public TXScrollbarCallback,
+ public TXEventHandler, public rfb::Timer::Callback {
public:
TXViewport(Display* dpy_, int width, int height, TXWindow* parent_=0);
virtual ~TXViewport();
@@ -59,6 +59,12 @@ public:
// normally.
bool bumpScrollEvent(XMotionEvent* ev);
+ // reparent the viewport into a new window
+ void reparent(long embed_window);
+
+ // event handler
+ void handleEvent(TXWindow* w, XEvent* ev);
+
private:
virtual void resizeNotify();
virtual void scrollbarPos(int x, int y, TXScrollbar* sb);
diff -up tightvnc-1.5.0-20081015svn3022/unix/tx/TXWindow.h.viewer-reparent tightvnc-1.5.0-20081015svn3022/unix/tx/TXWindow.h
--- tightvnc-1.5.0-20081015svn3022/unix/tx/TXWindow.h.viewer-reparent 2006-05-18 13:08:21.000000000 +0200
+++ tightvnc-1.5.0-20081015svn3022/unix/tx/TXWindow.h 2008-10-23 13:11:39.000000000 +0200
@@ -183,6 +183,9 @@ public:
Display* const dpy;
+ TXEventHandler* eventHandler;
+ long eventMask;
+
int xPad, yPad, bevel;
private:
@@ -195,9 +198,7 @@ private:
TXWindow* parent;
Window win_;
int width_, height_;
- TXEventHandler* eventHandler;
TXDeleteWindowCallback* dwc;
- long eventMask;
XSizeHints sizeHints;
std::map<Atom,Time> selectionOwnTime;
std::map<Atom,bool> selectionOwner_;
diff -up tightvnc-1.5.0-20081015svn3022/unix/vncviewer/CConn.cxx.viewer-reparent tightvnc-1.5.0-20081015svn3022/unix/vncviewer/CConn.cxx
--- tightvnc-1.5.0-20081015svn3022/unix/vncviewer/CConn.cxx.viewer-reparent 2008-10-23 13:11:39.000000000 +0200
+++ tightvnc-1.5.0-20081015svn3022/unix/vncviewer/CConn.cxx 2008-10-23 13:11:39.000000000 +0200
@@ -647,10 +647,18 @@ void CConn::recreateViewport()
void CConn::reconfigureViewport()
{
+ const char * par = embedParent.getValueStr();
viewport->setMaxSize(cp.width, cp.height);
if (fullScreen) {
viewport->resize(DisplayWidth(dpy,DefaultScreen(dpy)),
DisplayHeight(dpy,DefaultScreen(dpy)));
+ } else if (strlen(par) != 0) {
+ XWindowAttributes win_attr;
+ Window w = strtol(par, (char **)NULL, 0);
+
+ XGetWindowAttributes(dpy, w, &win_attr);
+ viewport->reparent(w);
+ viewport->resize(win_attr.width, win_attr.height);
} else {
int w = cp.width;
int h = cp.height;
diff -up tightvnc-1.5.0-20081015svn3022/unix/vncviewer/parameters.h.viewer-reparent tightvnc-1.5.0-20081015svn3022/unix/vncviewer/parameters.h
--- tightvnc-1.5.0-20081015svn3022/unix/vncviewer/parameters.h.viewer-reparent 2008-10-23 13:11:39.000000000 +0200
+++ tightvnc-1.5.0-20081015svn3022/unix/vncviewer/parameters.h 2008-10-23 13:12:41.000000000 +0200
@@ -42,6 +42,7 @@ extern rfb::IntParameter compressLevel;
extern rfb::BoolParameter noJpeg;
extern rfb::IntParameter qualityLevel;
extern rfb::BoolParameter passwdInput;
+extern rfb::StringParameter embedParent;
extern char aboutText[];
extern char* programName;
diff -up tightvnc-1.5.0-20081015svn3022/unix/vncviewer/vncviewer.cxx.viewer-reparent tightvnc-1.5.0-20081015svn3022/unix/vncviewer/vncviewer.cxx
--- tightvnc-1.5.0-20081015svn3022/unix/vncviewer/vncviewer.cxx.viewer-reparent 2008-10-23 13:11:39.000000000 +0200
+++ tightvnc-1.5.0-20081015svn3022/unix/vncviewer/vncviewer.cxx 2008-10-23 13:12:59.000000000 +0200
@@ -106,6 +106,9 @@ StringParameter displayname("display", "
StringParameter via("via", "Gateway to tunnel via", "");
+/* Support for reparenting */
+StringParameter embedParent("Parent", "X Window to use as a parent", "");
+
BoolParameter customCompressLevel("CustomCompressLevel",
"Use custom compression level. "
"Default if CompressLevel is specified.", false);

View File

@ -1,17 +1,18 @@
%global snap 20120905svn4996
Name: tigervnc
Version: 1.1.0
Release: 6%{?dist}
Version: 1.2.80
Release: 0.1.%{snap}%{?dist}
Summary: A TigerVNC remote display system
Group: User Interface/Desktops
License: GPLv2+
URL: http://www.tigervnc.com
Source0: %{name}-%{version}.tar.gz
Source0: %{name}-%{version}-%{snap}.tar.bz2
Source1: vncserver.service
Source2: vncserver.sysconfig
Source6: vncviewer.desktop
Source7: xserver110.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: libX11-devel, automake, autoconf, libtool, gettext, gettext-autopoint
@ -23,7 +24,7 @@ BuildRequires: mesa-libGL-devel, libXinerama-devel, ImageMagick
BuildRequires: freetype-devel, libXdmcp-devel
BuildRequires: desktop-file-utils, java-devel, jpackage-utils
BuildRequires: libjpeg-turbo-devel, gnutls-devel, pam-devel
BuildRequires: systemd-units
BuildRequires: systemd-units, cmake, fltk-devel
Requires(post): systemd-units systemd-sysv chkconfig coreutils
Requires(preun):systemd-units
@ -36,15 +37,10 @@ Obsoletes: vnc < 4.1.3-2, vnc-libs < 4.1.3-2
Provides: tightvnc = 1.5.0-0.15.20090204svn3586
Obsoletes: tightvnc < 1.5.0-0.15.20090204svn3586
Patch0: tigervnc-102434.patch
Patch4: tigervnc-cookie.patch
Patch8: tigervnc-viewer-reparent.patch
Patch10: tigervnc11-ldnow.patch
Patch11: tigervnc11-gethomedir.patch
Patch13: tigervnc11-rh692048.patch
Patch16: tigervnc11-xorg111.patch
Patch17: tigervnc11-xorg112.patch
Patch18: tigervnc11-java7.patch
%description
Virtual Network Computing (VNC) is a remote display system which
@ -124,38 +120,26 @@ BuildArch: noarch
This package contains license of the TigerVNC suite
%prep
%setup -q -n %{name}-%{version}
%setup -q -n %{name}-%{version}-%{snap}
%patch0 -p1 -b .102434
%patch4 -p1 -b .cookie
%patch8 -p1 -b .viewer-reparent
%patch10 -p1 -b .ldnow
%patch11 -p1 -b .gethomedir
%patch13 -p1 -b .rh692048
cp -r /usr/share/xorg-x11-server-source/* unix/xserver
%patch16 -p1 -b .xorg111
pushd unix/xserver
for all in `find . -type f -perm -001`; do
chmod -x "$all"
done
patch -p1 -b --suffix .vnc < %{SOURCE7}
%patch17 -p1 -b .xorg112
patch -p1 -b --suffix .vnc < ../xserver113.patch
popd
%patch18 -p1 -b .java7
# Use newer gettext
sed -i 's/AM_GNU_GETTEXT_VERSION.*/AM_GNU_GETTEXT_VERSION([0.18.1])/' \
configure.ac
%build
export CFLAGS="$RPM_OPT_FLAGS"
export CXXFLAGS="$CFLAGS"
autoreconf -fiv
%configure --disable-static --with-system-jpeg --without-simd
%{cmake} .
make %{?_smp_mflags}
pushd unix/xserver
@ -176,7 +160,8 @@ autoreconf -fiv
--with-dri-driver-path=%{_libdir}/dri \
--without-dtrace \
--disable-unit-tests \
--disable-devel-docs
--disable-devel-docs \
--disable-selective-werror
make %{?_smp_mflags}
popd
@ -187,7 +172,8 @@ make
popd
# Build Java applet
pushd java/src/com/tigervnc/vncviewer/
pushd java
%{cmake} .
make
popd
@ -222,10 +208,10 @@ desktop-file-install \
%{SOURCE6}
# Install Java applet
pushd java/src/com/tigervnc/vncviewer/
pushd java
mkdir -p $RPM_BUILD_ROOT%{_datadir}/vnc/classes
install -m755 VncViewer.jar $RPM_BUILD_ROOT%{_datadir}/vnc/classes
install -m644 index.vnc $RPM_BUILD_ROOT%{_datadir}/vnc/classes
install -m644 com/tigervnc/vncviewer/index.vnc $RPM_BUILD_ROOT%{_datadir}/vnc/classes
popd
%find_lang %{name} %{name}.lang
@ -293,13 +279,23 @@ fi
%files server-applet
%defattr(-,root,root,-)
%doc java/src/com/tigervnc/vncviewer/README
%doc java/com/tigervnc/vncviewer/README
%{_datadir}/vnc/classes/*
%files license
%doc LICENCE.TXT
%changelog
* Fri Aug 17 2012 Adam Tkac <atkac redhat com> 1.2.80-0.1.20120905svn4996
- update to 1.2.80
- remove deprecated patches
- tigervnc-102434.patch
- tigervnc-viewer-reparent.patch
- tigervnc11-java7.patch
- patches merged
- tigervnc11-xorg111.patch
- tigervnc11-xorg112.patch
* Wed Apr 04 2012 Adam Jackson <ajax@redhat.com> 1.1.0-6
- RHEL exclusion for -server-module on ppc* too

View File

@ -1,15 +1,15 @@
diff -up tigervnc-1.0.90/unix/xserver/hw/vnc/Makefile.am.gethomedir tigervnc-1.0.90/unix/xserver/hw/vnc/Makefile.am
--- tigervnc-1.0.90/unix/xserver/hw/vnc/Makefile.am.gethomedir 2011-03-22 10:53:05.206429397 +0100
+++ tigervnc-1.0.90/unix/xserver/hw/vnc/Makefile.am 2011-03-22 10:53:30.550388457 +0100
diff -up tigervnc-1.2.0/unix/xserver/hw/vnc/Makefile.am.gethomedir tigervnc-1.2.0/unix/xserver/hw/vnc/Makefile.am
--- tigervnc-1.2.0/unix/xserver/hw/vnc/Makefile.am.gethomedir 2012-08-22 15:52:01.876216608 +0200
+++ tigervnc-1.2.0/unix/xserver/hw/vnc/Makefile.am 2012-08-22 15:52:45.973143684 +0200
@@ -5,6 +5,7 @@ RFB_LIB=$(LIB_DIR)/rfb/librfb.la
RDR_LIB=$(LIB_DIR)/rdr/librdr.la $(GNUTLS_LDFLAGS)
RDR_LIB=$(LIB_DIR)/rdr/librdr.la
NETWORK_LIB=$(LIB_DIR)/network/libnetwork.la
XREGION_LIB=$(LIB_DIR)/Xregion/libXregion.la
+OS_LIB=$(LIB_DIR)/os/libos.la
COMMON_LIBS=$(NETWORK_LIB) $(RFB_LIB) $(RDR_LIB) $(XREGION_LIB)
noinst_LTLIBRARIES = libvnccommon.la
@@ -52,7 +53,7 @@ libvnc_la_CPPFLAGS = $(XVNC_CPPFLAGS) -I
@@ -55,7 +56,7 @@ libvnc_la_CPPFLAGS = $(XVNC_CPPFLAGS) -I
libvnc_la_LDFLAGS = -module -avoid-version -Wl,-z,now

View File

@ -1,12 +0,0 @@
diff -up tigervnc-1.1.0/java/src/com/tigervnc/vncviewer/Makefile.java7 tigervnc-1.1.0/java/src/com/tigervnc/vncviewer/Makefile
--- tigervnc-1.1.0/java/src/com/tigervnc/vncviewer/Makefile.java7 2012-03-27 14:20:20.107009796 +0200
+++ tigervnc-1.1.0/java/src/com/tigervnc/vncviewer/Makefile 2012-03-27 14:20:25.959966078 +0200
@@ -4,7 +4,7 @@
CP = cp
JC = javac
-JCFLAGS = -target 1.5 -classpath ../../../
+JCFLAGS = -target 1.7 -classpath ../../../
JAR = jar
ARCHIVE = VncViewer.jar
MANIFEST = MANIFEST.MF

View File

@ -1,9 +1,9 @@
diff -up tigervnc-1.0.90-20100721svn4113/unix/xserver/hw/vnc/Makefile.am.ldnow tigervnc-1.0.90-20100721svn4113/unix/xserver/hw/vnc/Makefile.am
--- tigervnc-1.0.90-20100721svn4113/unix/xserver/hw/vnc/Makefile.am.ldnow 2010-05-18 15:48:02.000000000 +0200
+++ tigervnc-1.0.90-20100721svn4113/unix/xserver/hw/vnc/Makefile.am 2010-07-21 17:05:45.242942531 +0200
@@ -50,7 +50,7 @@ libvnc_la_CPPFLAGS = $(XVNC_CPPFLAGS) -I
-I$(top_srcdir)/hw/xfree86/os-support/bus \
-I$(includedir)/pixman-1 -I$(includedir)
diff -up tigervnc-1.2.0/unix/xserver/hw/vnc/Makefile.am.ldnow tigervnc-1.2.0/unix/xserver/hw/vnc/Makefile.am
--- tigervnc-1.2.0/unix/xserver/hw/vnc/Makefile.am.ldnow 2011-10-31 09:14:40.000000000 +0100
+++ tigervnc-1.2.0/unix/xserver/hw/vnc/Makefile.am 2012-08-22 15:51:47.013241342 +0200
@@ -53,7 +53,7 @@ libvnc_la_CPPFLAGS = $(XVNC_CPPFLAGS) -I
-I$(top_srcdir)/include \
${XSERVERLIBS_CFLAGS} -I$(includedir)
-libvnc_la_LDFLAGS = -module -avoid-version
+libvnc_la_LDFLAGS = -module -avoid-version -Wl,-z,now

View File

@ -1,235 +0,0 @@
diff -up tigervnc-1.1.0/unix/xserver/hw/vnc/Input.cc.xorg111 tigervnc-1.1.0/unix/xserver/hw/vnc/Input.cc
--- tigervnc-1.1.0/unix/xserver/hw/vnc/Input.cc.xorg111 2011-08-09 23:16:36.000000000 +0200
+++ tigervnc-1.1.0/unix/xserver/hw/vnc/Input.cc 2011-11-11 11:59:14.226819903 +0100
@@ -82,10 +82,11 @@ static KeyCode KeysymToKeycode(KeySymsPt
/* Event queue is shared between all devices. */
#if XORG == 15
static xEvent *eventq = NULL;
-#else
+#elif XORG < 111
static EventList *eventq = NULL;
#endif
+#if XORG < 111
static void initEventq(void)
{
/* eventq is never free()-ed because it exists during server life. */
@@ -100,7 +101,9 @@ static void initEventq(void)
#endif
}
}
+#endif /* XORG < 111 */
+#if XORG < 111
static void enqueueEvents(DeviceIntPtr dev, int n)
{
int i;
@@ -122,6 +125,7 @@ static void enqueueEvents(DeviceIntPtr d
);
}
}
+#endif /* XORG < 111 */
InputDevice::InputDevice(rfb::VNCServerST *_server)
: server(_server), oldButtonMask(0)
@@ -141,12 +145,17 @@ InputDevice::InputDevice(rfb::VNCServerS
keyboardProc, TRUE);
RegisterKeyboardDevice(keyboardDev);
#endif
+#if XORG < 111
initEventq();
+#endif
}
void InputDevice::PointerButtonAction(int buttonMask)
{
- int i, n;
+ int i;
+#if XORG < 111
+ int n;
+#endif
#if XORG >= 110
ValuatorMask mask;
#endif
@@ -160,13 +169,17 @@ void InputDevice::PointerButtonAction(in
#if XORG < 110
n = GetPointerEvents(eventq, pointerDev, action, i + 1,
POINTER_RELATIVE, 0, 0, NULL);
-#else
+ enqueueEvents(pointerDev, n);
+#elif XORG < 111
valuator_mask_set_range(&mask, 0, 0, NULL);
n = GetPointerEvents(eventq, pointerDev, action, i + 1,
POINTER_RELATIVE, &mask);
-#endif
enqueueEvents(pointerDev, n);
-
+#else
+ valuator_mask_set_range(&mask, 0, 0, NULL);
+ QueuePointerEvents(pointerDev, action, i + 1,
+ POINTER_RELATIVE, &mask);
+#endif
}
}
@@ -175,7 +188,10 @@ void InputDevice::PointerButtonAction(in
void InputDevice::PointerMove(const rfb::Point &pos)
{
- int n, valuators[2];
+ int valuators[2];
+#if XORG < 111
+ int n;
+#endif
#if XORG >= 110
ValuatorMask mask;
#endif
@@ -190,12 +206,16 @@ void InputDevice::PointerMove(const rfb:
#if XORG < 110
n = GetPointerEvents(eventq, pointerDev, MotionNotify, 0, POINTER_ABSOLUTE, 0,
2, valuators);
-#else
+ enqueueEvents(pointerDev, n);
+#elif XORG < 111
valuator_mask_set_range(&mask, 0, 2, valuators);
n = GetPointerEvents(eventq, pointerDev, MotionNotify, 0, POINTER_ABSOLUTE,
&mask);
-#endif
enqueueEvents(pointerDev, n);
+#else
+ valuator_mask_set_range(&mask, 0, 2, valuators);
+ QueuePointerEvents(pointerDev, MotionNotify, 0, POINTER_ABSOLUTE, &mask);
+#endif
cursorPos = pos;
}
@@ -299,14 +319,20 @@ void InputDevice::initInputDevice(void)
static inline void pressKey(DeviceIntPtr dev, int kc, bool down, const char *msg)
{
int action;
+#if XORG < 111
unsigned int n;
+#endif
if (msg != NULL)
vlog.debug("%s %d %s", msg, kc, down ? "down" : "up");
action = down ? KeyPress : KeyRelease;
- n = GetKeyboardEvents(eventq, dev, action, kc);
+#if XORG < 111
+ n = GetKeyboardEvents(eventq, dev, action, kc, NULL);
enqueueEvents(dev, n);
+#else
+ QueueKeyboardEvents(dev, action, kc, NULL);
+#endif
}
#define IS_PRESSED(keyc, keycode) \
@@ -341,8 +367,11 @@ public:
int state, maxKeysPerMod, keycode;
#if XORG >= 17
KeyCode *modmap = NULL;
-
+#if XORG >= 111
+ state = XkbStateFieldFromRec(&dev->master->key->xkbInfo->state);
+#else /* XORG >= 111 */
state = XkbStateFieldFromRec(&dev->u.master->key->xkbInfo->state);
+#endif /* XORG >= 111 */
#else
KeyClassPtr keyc = dev->key;
state = keyc->state;
@@ -380,7 +409,11 @@ public:
#if XORG >= 17
KeyCode *modmap = NULL;
+#if XORG >= 111
+ keyc = dev->master->key;
+#else /* XORG >= 111 */
keyc = dev->u.master->key;
+#endif /* XORG >= 111 */
state = XkbStateFieldFromRec(&keyc->xkbInfo->state);
#else
keyc = dev->key;
@@ -596,7 +629,11 @@ void InputDevice::keyEvent(rdr::U32 keys
}
#if XORG >= 17
+#if XORG >= 111
+ keyc = keyboardDev->master->key;
+#else /* XORG >= 111 */
keyc = keyboardDev->u.master->key;
+#endif /* XORG >= 111 */
keymap = XkbGetCoreMap(keyboardDev);
if (!keymap) {
@@ -753,7 +790,11 @@ ModeSwitchFound:
XkbApplyMappingChange(keyboardDev, keymap, minKeyCode,
maxKeyCode - minKeyCode + 1,
NULL, serverClient);
+#if XORG >= 111
+ XkbCopyDeviceKeymap(keyboardDev->master, keyboardDev);
+#else
XkbCopyDeviceKeymap(keyboardDev->u.master, keyboardDev);
+#endif
#endif /* XORG < 17 */
break;
}
diff -up tigervnc-1.1.0/unix/xserver/hw/vnc/xorg-version.h.xorg111 tigervnc-1.1.0/unix/xserver/hw/vnc/xorg-version.h
--- tigervnc-1.1.0/unix/xserver/hw/vnc/xorg-version.h.xorg111 2011-08-09 23:16:36.000000000 +0200
+++ tigervnc-1.1.0/unix/xserver/hw/vnc/xorg-version.h 2011-11-11 11:55:32.255835319 +0100
@@ -36,6 +36,8 @@
#define XORG 19
#elif XORG_VERSION_CURRENT < ((1 * 10000000) + (10 * 100000) + (99 * 1000))
#define XORG 110
+#elif XORG_VERSION_CURRENT < ((1 * 10000000) + (11 * 100000) + (99 * 1000))
+#define XORG 111
#else
#error "X.Org newer than 1.10 is not supported"
#endif
diff -up tigervnc-1.1.0/unix/xserver/hw/vnc/xvnc.cc.xorg111 tigervnc-1.1.0/unix/xserver/hw/vnc/xvnc.cc
--- tigervnc-1.1.0/unix/xserver/hw/vnc/xvnc.cc.xorg111 2011-08-09 23:16:36.000000000 +0200
+++ tigervnc-1.1.0/unix/xserver/hw/vnc/xvnc.cc 2011-11-11 11:55:32.256835319 +0100
@@ -211,7 +211,11 @@ static void vfbFreeFramebufferMemory(vfb
extern "C" {
+#if XORG < 111
void ddxGiveUp()
+#else
+void ddxGiveUp(enum ExitCode error)
+#endif
{
int i;
@@ -221,9 +225,17 @@ void ddxGiveUp()
}
void
+#if XORG < 111
AbortDDX()
+#else
+AbortDDX(enum ExitCode error)
+#endif
{
+#if XORG < 111
ddxGiveUp();
+#else
+ ddxGiveUp(error);
+#endif
}
#ifdef __DARWIN__
@@ -668,8 +680,13 @@ vfbUninstallColormap(ColormapPtr pmap)
{
if (pmap->mid != pmap->pScreen->defColormap)
{
+#if XORG < 111
curpmap = (ColormapPtr) LookupIDByType(pmap->pScreen->defColormap,
RT_COLORMAP);
+#else
+ dixLookupResourceByType((pointer *) &curpmap, pmap->pScreen->defColormap,
+ RT_COLORMAP, serverClient, DixUnknownAccess);
+#endif
(*pmap->pScreen->InstallColormap)(curpmap);
}
}

View File

@ -1,429 +0,0 @@
diff -up xserver/hw/vnc/vncExtInit.cc.xorg112 xserver/hw/vnc/vncExtInit.cc
--- xserver/hw/vnc/vncExtInit.cc.xorg112 2011-08-09 23:16:36.000000000 +0200
+++ xserver/hw/vnc/vncExtInit.cc 2012-03-27 12:54:56.937271323 +0200
@@ -56,6 +56,7 @@ extern "C" {
#include "XserverDesktop.h"
#include "vncHooks.h"
#include "vncExtInit.h"
+#include "xorg-version.h"
extern "C" {
@@ -360,10 +361,16 @@ void vncClientCutText(const char* str, i
ev.window = cur->window;
ev.time = GetTimeInMillis();
if (cur->client->swapped) {
+#if XORG < 112
int n;
swaps(&ev.sequenceNumber, n);
swapl(&ev.window, n);
swapl(&ev.time, n);
+#else
+ swaps(&ev.sequenceNumber);
+ swapl(&ev.window);
+ swapl(&ev.time);
+#endif
}
WriteToClient(cur->client, sizeof(xVncExtClientCutTextNotifyEvent),
(char *)&ev);
@@ -406,9 +413,14 @@ void vncQueryConnect(XserverDesktop* des
ev.sequenceNumber = cur->client->sequence;
ev.window = cur->window;
if (cur->client->swapped) {
+#if XORG < 112
int n;
swaps(&ev.sequenceNumber, n);
swapl(&ev.window, n);
+#else
+ swaps(&ev.sequenceNumber);
+ swapl(&ev.window);
+#endif
}
WriteToClient(cur->client, sizeof(xVncExtQueryConnectNotifyEvent),
(char *)&ev);
@@ -449,10 +461,16 @@ static void SendSelectionChangeEvent(Ato
ev.window = cur->window;
ev.selection = selection;
if (cur->client->swapped) {
+#if XORG < 112
int n;
swaps(&ev.sequenceNumber, n);
swapl(&ev.window, n);
swapl(&ev.selection, n);
+#else
+ swaps(&ev.sequenceNumber);
+ swapl(&ev.window);
+ swapl(&ev.selection);
+#endif
}
WriteToClient(cur->client, sizeof(xVncExtSelectionChangeNotifyEvent),
(char *)&ev);
@@ -473,7 +491,6 @@ static int ProcVncExtSetParam(ClientPtr
param.buf[stuff->paramLen] = 0;
xVncExtSetParamReply rep;
- int n;
rep.type = X_Reply;
rep.length = 0;
rep.success = 0;
@@ -514,8 +531,14 @@ static int ProcVncExtSetParam(ClientPtr
deny:
if (client->swapped) {
+#if XORG < 112
+ int n;
swaps(&rep.sequenceNumber, n);
swapl(&rep.length, n);
+#else
+ swaps(&rep.sequenceNumber);
+ swapl(&rep.length);
+#endif
}
WriteToClient(client, sizeof(xVncExtSetParamReply), (char *)&rep);
return (client->noClientException);
@@ -523,9 +546,13 @@ deny:
static int SProcVncExtSetParam(ClientPtr client)
{
- register char n;
REQUEST(xVncExtSetParamReq);
+#if XORG < 112
+ register char n;
swaps(&stuff->length, n);
+#else
+ swaps(&stuff->length);
+#endif
REQUEST_AT_LEAST_SIZE(xVncExtSetParamReq);
return ProcVncExtSetParam(client);
}
@@ -539,7 +566,6 @@ static int ProcVncExtGetParam(ClientPtr
param.buf[stuff->paramLen] = 0;
xVncExtGetParamReply rep;
- int n;
rep.type = X_Reply;
rep.sequenceNumber = client->sequence;
rep.success = 0;
@@ -557,9 +583,16 @@ static int ProcVncExtGetParam(ClientPtr
rep.length = (len + 3) >> 2;
rep.valueLen = len;
if (client->swapped) {
+#if XORG < 112
+ int n;
swaps(&rep.sequenceNumber, n);
swapl(&rep.length, n);
swaps(&rep.valueLen, n);
+#else
+ swaps(&rep.sequenceNumber);
+ swapl(&rep.length);
+ swaps(&rep.valueLen);
+#endif
}
WriteToClient(client, sizeof(xVncExtGetParamReply), (char *)&rep);
if (value)
@@ -570,9 +603,13 @@ static int ProcVncExtGetParam(ClientPtr
static int SProcVncExtGetParam(ClientPtr client)
{
- register char n;
REQUEST(xVncExtGetParamReq);
+#if XORG < 112
+ register char n;
swaps(&stuff->length, n);
+#else
+ swaps(&stuff->length);
+#endif
REQUEST_AT_LEAST_SIZE(xVncExtGetParamReq);
return ProcVncExtGetParam(client);
}
@@ -586,7 +623,6 @@ static int ProcVncExtGetParamDesc(Client
param.buf[stuff->paramLen] = 0;
xVncExtGetParamDescReply rep;
- int n;
rep.type = X_Reply;
rep.sequenceNumber = client->sequence;
rep.success = 0;
@@ -601,9 +637,16 @@ static int ProcVncExtGetParamDesc(Client
rep.length = (len + 3) >> 2;
rep.descLen = len;
if (client->swapped) {
+#if XORG < 112
+ int n;
swaps(&rep.sequenceNumber, n);
swapl(&rep.length, n);
swaps(&rep.descLen, n);
+#else
+ swaps(&rep.sequenceNumber);
+ swapl(&rep.length);
+ swaps(&rep.descLen);
+#endif
}
WriteToClient(client, sizeof(xVncExtGetParamDescReply), (char *)&rep);
if (desc)
@@ -613,9 +656,13 @@ static int ProcVncExtGetParamDesc(Client
static int SProcVncExtGetParamDesc(ClientPtr client)
{
- register char n;
REQUEST(xVncExtGetParamDescReq);
+#if XORG < 112
+ register char n;
swaps(&stuff->length, n);
+#else
+ swaps(&stuff->length);
+#endif
REQUEST_AT_LEAST_SIZE(xVncExtGetParamDescReq);
return ProcVncExtGetParamDesc(client);
}
@@ -626,7 +673,6 @@ static int ProcVncExtListParams(ClientPt
REQUEST_SIZE_MATCH(xVncExtListParamsReq);
xVncExtListParamsReply rep;
- int n;
rep.type = X_Reply;
rep.sequenceNumber = client->sequence;
@@ -642,9 +688,16 @@ static int ProcVncExtListParams(ClientPt
rep.length = (len + 3) >> 2;
rep.nParams = nParams;
if (client->swapped) {
+#if XORG < 112
+ int n;
swaps(&rep.sequenceNumber, n);
swapl(&rep.length, n);
swaps(&rep.nParams, n);
+#else
+ swaps(&rep.sequenceNumber);
+ swapl(&rep.length);
+ swaps(&rep.nParams);
+#endif
}
WriteToClient(client, sizeof(xVncExtListParamsReply), (char *)&rep);
rdr::U8* data = new rdr::U8[len];
@@ -664,9 +717,13 @@ static int ProcVncExtListParams(ClientPt
static int SProcVncExtListParams(ClientPtr client)
{
- register char n;
REQUEST(xVncExtListParamsReq);
+#if XORG < 112
+ register char n;
swaps(&stuff->length, n);
+#else
+ swaps(&stuff->length);
+#endif
REQUEST_SIZE_MATCH(xVncExtListParamsReq);
return ProcVncExtListParams(client);
}
@@ -689,11 +746,19 @@ static int ProcVncExtSetServerCutText(Cl
static int SProcVncExtSetServerCutText(ClientPtr client)
{
- register char n;
REQUEST(xVncExtSetServerCutTextReq);
+#if XORG < 112
+ register char n;
swaps(&stuff->length, n);
+#else
+ swaps(&stuff->length);
+#endif
REQUEST_AT_LEAST_SIZE(xVncExtSetServerCutTextReq);
+#if XORG < 112
swapl(&stuff->textLen, n);
+#else
+ swapl(&stuff->textLen);
+#endif
return ProcVncExtSetServerCutText(client);
}
@@ -703,15 +768,21 @@ static int ProcVncExtGetClientCutText(Cl
REQUEST_SIZE_MATCH(xVncExtGetClientCutTextReq);
xVncExtGetClientCutTextReply rep;
- int n;
rep.type = X_Reply;
rep.length = (clientCutTextLen + 3) >> 2;
rep.sequenceNumber = client->sequence;
rep.textLen = clientCutTextLen;
if (client->swapped) {
+#if XORG < 112
+ int n;
swaps(&rep.sequenceNumber, n);
swapl(&rep.length, n);
swapl(&rep.textLen, n);
+#else
+ swaps(&rep.sequenceNumber);
+ swapl(&rep.length);
+ swapl(&rep.textLen);
+#endif
}
WriteToClient(client, sizeof(xVncExtGetClientCutTextReply), (char *)&rep);
if (clientCutText)
@@ -721,9 +792,13 @@ static int ProcVncExtGetClientCutText(Cl
static int SProcVncExtGetClientCutText(ClientPtr client)
{
- register char n;
REQUEST(xVncExtGetClientCutTextReq);
+#if XORG < 112
+ register char n;
swaps(&stuff->length, n);
+#else
+ swaps(&stuff->length);
+#endif
REQUEST_SIZE_MATCH(xVncExtGetClientCutTextReq);
return ProcVncExtGetClientCutText(client);
}
@@ -753,12 +828,21 @@ static int ProcVncExtSelectInput(ClientP
static int SProcVncExtSelectInput(ClientPtr client)
{
- register char n;
REQUEST(xVncExtSelectInputReq);
+#if XORG < 112
+ register char n;
swaps(&stuff->length, n);
+#else
+ swaps(&stuff->length);
+#endif
REQUEST_SIZE_MATCH(xVncExtSelectInputReq);
+#if XORG < 112
swapl(&stuff->window, n);
swapl(&stuff->mask, n);
+#else
+ swapl(&stuff->window);
+ swapl(&stuff->mask);
+#endif
return ProcVncExtSelectInput(client);
}
@@ -804,9 +888,14 @@ static int ProcVncExtConnect(ClientPtr c
rep.length = 0;
rep.sequenceNumber = client->sequence;
if (client->swapped) {
+#if XORG < 112
int n;
swaps(&rep.sequenceNumber, n);
swapl(&rep.length, n);
+#else
+ swaps(&rep.sequenceNumber);
+ swapl(&rep.length);
+#endif
}
WriteToClient(client, sizeof(xVncExtConnectReply), (char *)&rep);
return (client->noClientException);
@@ -814,9 +903,13 @@ static int ProcVncExtConnect(ClientPtr c
static int SProcVncExtConnect(ClientPtr client)
{
- register char n;
REQUEST(xVncExtConnectReq);
+#if XORG < 112
+ register char n;
swaps(&stuff->length, n);
+#else
+ swaps(&stuff->length);
+#endif
REQUEST_AT_LEAST_SIZE(xVncExtConnectReq);
return ProcVncExtConnect(client);
}
@@ -836,7 +929,6 @@ static int ProcVncExtGetQueryConnect(Cli
qcTimeout = 0;
xVncExtGetQueryConnectReply rep;
- int n;
rep.type = X_Reply;
rep.sequenceNumber = client->sequence;
rep.timeout = qcTimeout;
@@ -845,11 +937,20 @@ static int ProcVncExtGetQueryConnect(Cli
rep.opaqueId = (CARD32)(long)queryConnectId;
rep.length = (rep.userLen + rep.addrLen + 3) >> 2;
if (client->swapped) {
+#if XORG < 112
+ int n;
swaps(&rep.sequenceNumber, n);
swapl(&rep.userLen, n);
swapl(&rep.addrLen, n);
swapl(&rep.timeout, n);
swapl(&rep.opaqueId, n);
+#else
+ swaps(&rep.sequenceNumber);
+ swapl(&rep.userLen);
+ swapl(&rep.addrLen);
+ swapl(&rep.timeout);
+ swapl(&rep.opaqueId);
+#endif
}
WriteToClient(client, sizeof(xVncExtGetQueryConnectReply), (char *)&rep);
if (qcTimeout)
@@ -861,9 +962,13 @@ static int ProcVncExtGetQueryConnect(Cli
static int SProcVncExtGetQueryConnect(ClientPtr client)
{
- register char n;
REQUEST(xVncExtGetQueryConnectReq);
+#if XORG < 112
+ register char n;
swaps(&stuff->length, n);
+#else
+ swaps(&stuff->length);
+#endif
REQUEST_SIZE_MATCH(xVncExtGetQueryConnectReq);
return ProcVncExtGetQueryConnect(client);
}
@@ -888,10 +993,15 @@ static int ProcVncExtApproveConnect(Clie
static int SProcVncExtApproveConnect(ClientPtr client)
{
- register char n;
REQUEST(xVncExtApproveConnectReq);
+#if XORG < 112
+ register char n;
swaps(&stuff->length, n);
swapl(&stuff->opaqueId, n);
+#else
+ swaps(&stuff->length);
+ swapl(&stuff->opaqueId);
+#endif
REQUEST_SIZE_MATCH(xVncExtApproveConnectReq);
return ProcVncExtApproveConnect(client);
}
diff -up xserver/hw/vnc/xf86vncModule.cc.xorg112 xserver/hw/vnc/xf86vncModule.cc
--- xserver/hw/vnc/xf86vncModule.cc.xorg112 2011-08-09 23:16:36.000000000 +0200
+++ xserver/hw/vnc/xf86vncModule.cc 2012-03-27 12:54:56.938271322 +0200
@@ -26,6 +26,8 @@
#include <rfb/Logger_stdio.h>
#include <rfb/LogWriter.h>
+#include "xorg-version.h"
+
extern "C" {
#define class c_class
#define private c_private
@@ -89,7 +91,12 @@ static void vncExtensionInitWithParams(I
ScrnInfoPtr pScrn = xf86Screens[scr];
for (ParameterIterator i(Configuration::global()); i.param; i.next()) {
- char* val = xf86FindOptionValue(pScrn->options, i.param->getName());
+ const char *val;
+#if XORG < 112
+ val = xf86FindOptionValue(pScrn->options, i.param->getName());
+#else
+ val = xf86FindOptionValue((XF86OptionPtr)pScrn->options, i.param->getName());
+#endif
if (val)
i.param->setParam(val);
}
diff -up xserver/hw/vnc/xorg-version.h.xorg112 xserver/hw/vnc/xorg-version.h
--- xserver/hw/vnc/xorg-version.h.xorg112 2012-03-27 12:55:27.576240843 +0200
+++ xserver/hw/vnc/xorg-version.h 2012-03-27 12:56:07.541204026 +0200
@@ -38,6 +38,8 @@
#define XORG 110
#elif XORG_VERSION_CURRENT < ((1 * 10000000) + (11 * 100000) + (99 * 1000))
#define XORG 111
+#elif XORG_VERSION_CURRENT < ((1 * 10000000) + (12 * 100000) + (99 * 1000))
+#define XORG 112
#else
#error "X.Org newer than 1.10 is not supported"
#endif

View File

@ -1,91 +0,0 @@
diff -up xserver/configure.ac.vnc xserver/configure.ac
--- xserver/configure.ac.vnc 2011-03-22 10:41:05.508614018 +0100
+++ xserver/configure.ac 2011-03-22 10:47:01.592023995 +0100
@@ -30,7 +30,6 @@ AC_INIT([xorg-server], 1.10.0, [https://
RELEASE_DATE="2011-2-25"
AC_CONFIG_SRCDIR([Makefile.am])
AM_INIT_AUTOMAKE([foreign dist-bzip2])
-AM_MAINTAINER_MODE
# Require xorg-macros minimum of 1.10 for XORG_CHECK_SGML_DOCTOOLS
m4_ifndef([XORG_MACROS_VERSION],
@@ -65,6 +64,7 @@ dnl forcing an entire recompile.x
AC_CONFIG_HEADERS(include/version-config.h)
AM_PROG_AS
+AC_PROG_CXX
AC_PROG_LN_S
AC_LIBTOOL_WIN32_DLL
AC_DISABLE_STATIC
@@ -1510,6 +1510,14 @@ if test "x$XVFB" = xyes; then
AC_SUBST([XVFB_SYS_LIBS])
fi
+dnl Xvnc DDX
+AC_SUBST([XVNC_CPPFLAGS], ["-DHAVE_DIX_CONFIG_H $XEXT_INC $FB_INC $MI_INC $RENDER_INC $RANDR_INC"])
+AC_SUBST([XVNC_LIBS], ["$FB_LIB $FIXES_LIB $XEXT_LIB $CONFIG_LIB $DBE_LIB $RECORD_LIB $GLX_LIBS $RANDR_LIB $RENDER_LIB $DAMAGE_LIB $MIEXT_SYNC_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $MAIN_LIB"])
+AC_SUBST([XVNC_SYS_LIBS], ["$GLX_SYS_LIBS"])
+
+dnl This is necessary to allow Xvnc to statically link with GnuTLS
+AC_ARG_VAR(GNUTLS_LDFLAGS, [Custom linker flags for using GnuTLS, e.g. -L{GnuTLS directory}/lib -lgnutls])
+AC_SUBST(GNUTLS_LDFLAGS)
dnl Xnest DDX
@@ -1548,6 +1556,8 @@ xorg_bus_linuxpci=no
xorg_bus_bsdpci=no
xorg_bus_sparc=no
+AC_DEFINE_UNQUOTED(XORG_VERSION_CURRENT, [$VENDOR_RELEASE], [Current Xorg version])
+
if test "x$XORG" = xyes; then
XORG_DDXINCS='-I$(top_srcdir)/hw/xfree86 -I$(top_srcdir)/hw/xfree86/include -I$(top_srcdir)/hw/xfree86/common'
XORG_OSINCS='-I$(top_srcdir)/hw/xfree86/os-support -I$(top_srcdir)/hw/xfree86/os-support/bus -I$(top_srcdir)/os'
@@ -1792,7 +1802,6 @@ if test "x$XORG" = xyes; then
AC_DEFINE(XORGSERVER, 1, [Building Xorg server])
AC_DEFINE(XFree86Server, 1, [Building XFree86 server])
AC_DEFINE(XFree86LOADER, 1, [Building loadable XFree86 server])
- AC_DEFINE_UNQUOTED(XORG_VERSION_CURRENT, [$VENDOR_RELEASE], [Current Xorg version])
AC_DEFINE(NEED_XF86_TYPES, 1, [Need XFree86 typedefs])
AC_DEFINE(NEED_XF86_PROTOTYPES, 1, [Need XFree86 helper functions])
AC_DEFINE(__XSERVERNAME__, "Xorg", [Name of X server])
@@ -2254,6 +2263,7 @@ hw/dmx/Makefile
hw/dmx/man/Makefile
hw/vfb/Makefile
hw/vfb/man/Makefile
+hw/vnc/Makefile
hw/xnest/Makefile
hw/xnest/man/Makefile
hw/xwin/Makefile
diff -up xserver/hw/Makefile.am.vnc xserver/hw/Makefile.am
--- xserver/hw/Makefile.am.vnc 2011-03-22 10:41:05.528613984 +0100
+++ xserver/hw/Makefile.am 2011-03-22 10:41:05.630613813 +0100
@@ -33,7 +33,8 @@ SUBDIRS = \
$(XNEST_SUBDIRS) \
$(DMX_SUBDIRS) \
$(KDRIVE_SUBDIRS) \
- $(XQUARTZ_SUBDIRS)
+ $(XQUARTZ_SUBDIRS) \
+ vnc
DIST_SUBDIRS = dmx xfree86 vfb xnest xwin xquartz kdrive
diff -up xserver/mi/miinitext.c.vnc xserver/mi/miinitext.c
--- xserver/mi/miinitext.c.vnc 2011-03-22 10:41:05.591613878 +0100
+++ xserver/mi/miinitext.c 2011-03-22 10:41:05.630613813 +0100
@@ -263,6 +263,7 @@ extern void DamageExtensionInit(INITARGS
extern void CompositeExtensionInit(INITARGS);
#endif
extern void GEExtensionInit(INITARGS);
+extern void vncExtensionInit(INITARGS);
/* The following is only a small first step towards run-time
* configurable extensions.
@@ -433,6 +434,7 @@ InitExtensions(int argc, char *argv[])
#ifdef XF86BIGFONT
if (!noXFree86BigfontExtension) XFree86BigfontExtensionInit();
#endif
+ vncExtensionInit();
#if !defined(NO_HW_ONLY_EXTS)
#if defined(XF86VIDMODE)
if (!noXFree86VidModeExtension) XFree86VidModeExtensionInit();