summaryrefslogtreecommitdiff
path: root/community/tigervnc
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2013-01-24 00:06:07 -0800
committerroot <root@rshg054.dnsready.net>2013-01-24 00:06:07 -0800
commitcb33decb284fa3b08652b04f7290d9d4140a927f (patch)
treee7f2c99536d9a7bc61ca30107cf99cb22064b61f /community/tigervnc
parent91fea2e90c87b282a3bb39b080b8c51eb52cdbbe (diff)
Thu Jan 24 00:06:07 PST 2013
Diffstat (limited to 'community/tigervnc')
-rw-r--r--community/tigervnc/PKGBUILD22
-rw-r--r--community/tigervnc/glx.patch85
-rw-r--r--community/tigervnc/xorg113.patch275
-rw-r--r--community/tigervnc/xserver113.patch92
4 files changed, 467 insertions, 7 deletions
diff --git a/community/tigervnc/PKGBUILD b/community/tigervnc/PKGBUILD
index 7e050085e..5719e84e8 100644
--- a/community/tigervnc/PKGBUILD
+++ b/community/tigervnc/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 79431 2012-11-04 20:22:06Z spupykin $
+# $Id: PKGBUILD 82711 2013-01-23 10:24:39Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Maintainer: Uroš Vampl <mobile.leecher at gmail dot com>
pkgname=tigervnc
pkgver=1.2.0
-pkgrel=9
-_xorgver=1.12.3
+pkgrel=10
+_xorgver=1.13.1
pkgdesc="suite of VNC servers and clients. VNC 4 branch of TightVNC."
arch=('i686' 'x86_64')
url="http://www.tigervnc.org"
@@ -24,14 +24,20 @@ source=(http://downloads.sourceforge.net/tigervnc/${pkgname}-${pkgver}.tar.gz
vncserver.service
xorg111.patch
xorg112.patch
+ xorg113.patch
+ xserver113.patch
+ glx.patch
gnutls.patch
gethomedir.patch
cmakelists.patch)
md5sums=('3a5755b4ed600a81c3a17976c6f8420d'
- '65a53b11bc01dcc97ee9b201dc620c32'
+ 'a13d8876e3e804189392119638a07a1f'
'0903d5a0dfa38e0b04964505b644585c'
'b680b55f7f9f569cd26ac0b330012a8b'
'f73e055153889ae7b5aac8e697f7a841'
+ 'ef4078ba31a583dc3134e9090fbd30d0'
+ 'fabbe561d4ac845317ffdbf1bb2eeb02'
+ '4b86c015c78a0360205fdcf511ea1c39'
'1a5fe8867ab3e49e20aafc70c415494f'
'fa059baabe72308bf82622bca73cb3e0'
'6ef923c71cc0e79c4b37eb3b124eea75')
@@ -45,20 +51,22 @@ build() {
patch -Np1 -i ${srcdir}/cmakelists.patch
patch -Np1 -i ${srcdir}/xorg111.patch
patch -Np1 -i ${srcdir}/xorg112.patch
+ patch -Np1 -i ${srcdir}/xorg113.patch
+ patch -Np1 -i ${srcdir}/glx.patch
cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/usr -DUSE_INCLUDED_FLTK=yes
make
cd unix/xserver
- patch -Np1 -i ../xserver110.patch
+ patch -Np3 -i ${srcdir}/xserver113.patch
autoreconf -fiv
./configure --prefix=/usr \
--disable-static --disable-xinerama --without-dtrace \
--disable-xorg --disable-xnest --disable-xvfb --disable-dmx \
--disable-xwin --disable-xephyr --disable-kdrive --with-pic \
--disable-config-dbus --disable-config-hal --disable-config-udev \
- --disable-unit-tests --disable-devel-docs --disable-dri \
- --enable-dri2 --enable-glx --enable-glx-tls
+ --disable-unit-tests --disable-devel-docs --disable-selective-werror \
+ --disable-dri --enable-dri2 --enable-glx --enable-glx-tls
make
}
diff --git a/community/tigervnc/glx.patch b/community/tigervnc/glx.patch
new file mode 100644
index 000000000..b2ecb672f
--- /dev/null
+++ b/community/tigervnc/glx.patch
@@ -0,0 +1,85 @@
+diff -ur tigervnc-1.2.0.orig/unix/xserver/hw/vnc/Makefile.am tigervnc-1.2.0/unix/xserver/hw/vnc/Makefile.am
+--- tigervnc-1.2.0.orig/unix/xserver/hw/vnc/Makefile.am 2011-10-31 09:14:40.000000000 +0100
++++ tigervnc-1.2.0/unix/xserver/hw/vnc/Makefile.am 2013-01-21 03:39:14.924841615 +0100
+@@ -7,6 +7,10 @@
+ XREGION_LIB=$(LIB_DIR)/Xregion/libXregion.la
+ COMMON_LIBS=$(NETWORK_LIB) $(RFB_LIB) $(RDR_LIB) $(XREGION_LIB)
+
++if GLX
++GLX_LIB = $(top_srcdir)/glx/libglx.la
++endif
++
+ noinst_LTLIBRARIES = libvnccommon.la
+
+ HDRS = RegionHelper.h vncExtInit.h vncHooks.h XserverDesktop.h xorg-version.h \
+@@ -34,7 +38,8 @@
+ -UHAVE_CONFIG_H \
+ -DXFree86Server -DVENDOR_RELEASE="$(VENDOR_RELEASE)" \
+ -DVENDOR_STRING="\"$(VENDOR_STRING)\"" -I$(TIGERVNC_SRCDIR)/common \
+- -I$(top_srcdir)/include ${XSERVERLIBS_CFLAGS} -I$(includedir)
++ -I$(top_srcdir)/include ${XSERVERLIBS_CFLAGS} -I$(includedir) \
++ -I$(top_srcdir)/glx
+
+ Xvnc_LDADD = $(XVNC_LIBS) libvnccommon.la $(COMMON_LIBS) \
+ $(XSERVER_LIBS) $(XSERVER_SYS_LIBS) $(XVNC_SYS_LIBS) -lX11
+@@ -55,7 +60,7 @@
+
+ libvnc_la_LDFLAGS = -module -avoid-version
+
+-libvnc_la_LIBADD = libvnccommon.la $(COMMON_LIBS)
++libvnc_la_LIBADD = libvnccommon.la $(COMMON_LIBS) $(GLX_LIB)
+
+ EXTRA_DIST = Xvnc.man
+
+diff -ur tigervnc-1.2.0.orig/unix/xserver/hw/vnc/xvnc.cc tigervnc-1.2.0/unix/xserver/hw/vnc/xvnc.cc
+--- tigervnc-1.2.0.orig/unix/xserver/hw/vnc/xvnc.cc 2012-03-09 21:34:29.000000000 +0100
++++ tigervnc-1.2.0/unix/xserver/hw/vnc/xvnc.cc 2013-01-21 03:38:38.187300899 +0100
+@@ -87,6 +87,17 @@
+ #include "version-config.h"
+ #include "site.h"
+ #endif
++
++#if XORG >= 113
++#ifdef GLXEXT
++/* C++ really is the worst */
++#define private _private
++#include "glxserver.h"
++#undef private
++#include "glx_extinit.h"
++#endif
++#endif
++
+ #undef class
+ #undef public
+ }
+@@ -1305,6 +1316,16 @@
+ dispatchException &= ~DE_RESET;
+ }
+
++#if XORG >= 113
++#ifdef GLXEXT
++static ExtensionModule vnc_glx_ext = {
++ GlxExtensionInit,
++ "GLX",
++ &noGlxExtension
++};
++#endif
++#endif
++
+ void
+ InitOutput(ScreenInfo *screenInfo, int argc, char **argv)
+ {
+@@ -1314,6 +1335,13 @@
+ int i;
+ int NumFormats = 0;
+
++#if XORG >= 113
++#ifdef GLXEXT
++ if (serverGeneration == 1)
++ LoadExtension(&vnc_glx_ext, TRUE);
++#endif
++#endif
++
+ /* initialize pixmap formats */
+
+ /* must have a pixmap depth to match every screen depth */
diff --git a/community/tigervnc/xorg113.patch b/community/tigervnc/xorg113.patch
new file mode 100644
index 000000000..505e0a758
--- /dev/null
+++ b/community/tigervnc/xorg113.patch
@@ -0,0 +1,275 @@
+diff -ur tigervnc-1.2.0.orig/unix/xserver/hw/vnc/vncHooks.cc tigervnc-1.2.0/unix/xserver/hw/vnc/vncHooks.cc
+--- tigervnc-1.2.0.orig/unix/xserver/hw/vnc/vncHooks.cc 2012-01-23 16:54:11.000000000 +0100
++++ tigervnc-1.2.0/unix/xserver/hw/vnc/vncHooks.cc 2012-09-06 18:53:26.392282102 +0200
+@@ -116,7 +116,11 @@
+
+ // screen functions
+
++#if XORG < 112
+ static Bool vncHooksCloseScreen(int i, ScreenPtr pScreen);
++#else
++static Bool vncHooksCloseScreen(ScreenPtr pScreen);
++#endif
+ static Bool vncHooksCreateGC(GCPtr pGC);
+ static void vncHooksCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg,
+ RegionPtr pOldRegion);
+@@ -133,8 +137,13 @@
+ DeviceIntPtr pDev,
+ #endif
+ ScreenPtr pScreen, CursorPtr cursor);
++#if XORG < 112
+ static void vncHooksBlockHandler(int i, pointer blockData, pointer pTimeout,
+ pointer pReadmask);
++#else
++static void vncHooksBlockHandler(ScreenPtr pScreen, pointer pTimeout,
++ pointer pReadmask);
++#endif
+ #ifdef RENDER
+ static void vncHooksComposite(CARD8 op, PicturePtr pSrc, PicturePtr pMask,
+ PicturePtr pDst, INT16 xSrc, INT16 ySrc, INT16 xMask,
+@@ -335,7 +344,11 @@
+ // CloseScreen - unwrap the screen functions and call the original CloseScreen
+ // function
+
++#if XORG < 112
+ static Bool vncHooksCloseScreen(int i, ScreenPtr pScreen_)
++#else
++static Bool vncHooksCloseScreen(ScreenPtr pScreen_)
++#endif
+ {
+ SCREEN_UNWRAP(pScreen_, CloseScreen);
+
+@@ -366,7 +379,11 @@
+
+ DBGPRINT((stderr,"vncHooksCloseScreen: unwrapped screen functions\n"));
+
++#if XORG < 112
+ return (*pScreen->CloseScreen)(i, pScreen);
++#else
++ return (*pScreen->CloseScreen)(pScreen);
++#endif
+ }
+
+ // CreateGC - wrap the "GC funcs"
+@@ -531,14 +548,27 @@
+ // BlockHandler - ignore any changes during the block handler - it's likely
+ // these are just drawing the cursor.
+
++#if XORG < 112
+ static void vncHooksBlockHandler(int i, pointer blockData, pointer pTimeout,
+ pointer pReadmask)
++#else
++static void vncHooksBlockHandler(ScreenPtr pScreen_, pointer pTimeout,
++ pointer pReadmask)
++#endif
+ {
++#if XORG < 112
+ SCREEN_UNWRAP(screenInfo.screens[i], BlockHandler);
++#else
++ SCREEN_UNWRAP(pScreen_, BlockHandler);
++#endif
+
+ vncHooksScreen->desktop->ignoreHooks(true);
+
++#if XORG < 112
+ (*pScreen->BlockHandler) (i, blockData, pTimeout, pReadmask);
++#else
++ (*pScreen->BlockHandler) (pScreen, pTimeout, pReadmask);
++#endif
+
+ vncHooksScreen->desktop->ignoreHooks(false);
+
+diff -ur tigervnc-1.2.0.orig/unix/xserver/hw/vnc/xf86vncModule.cc tigervnc-1.2.0/unix/xserver/hw/vnc/xf86vncModule.cc
+--- tigervnc-1.2.0.orig/unix/xserver/hw/vnc/xf86vncModule.cc 2012-09-06 18:52:54.668284962 +0200
++++ tigervnc-1.2.0/unix/xserver/hw/vnc/xf86vncModule.cc 2012-09-06 18:53:26.393282091 +0200
+@@ -53,8 +53,10 @@
+ {
+ vncExtensionInitWithParams,
+ "VNC",
++#if XORG < 112
+ NULL,
+ NULL,
++#endif
+ NULL
+ };
+
+diff -ur tigervnc-1.2.0.orig/unix/xserver/hw/vnc/xorg-version.h tigervnc-1.2.0/unix/xserver/hw/vnc/xorg-version.h
+--- tigervnc-1.2.0.orig/unix/xserver/hw/vnc/xorg-version.h 2012-09-06 18:52:54.669284923 +0200
++++ tigervnc-1.2.0/unix/xserver/hw/vnc/xorg-version.h 2012-09-06 18:53:26.393282091 +0200
+@@ -40,8 +40,10 @@
+ #define XORG 111
+ #elif XORG_VERSION_CURRENT < ((1 * 10000000) + (12 * 100000) + (99 * 1000))
+ #define XORG 112
++#elif XORG_VERSION_CURRENT < ((1 * 10000000) + (13 * 100000) + (99 * 1000))
++#define XORG 113
+ #else
+-#error "X.Org newer than 1.10 is not supported"
++#error "X.Org newer than 1.13 is not supported"
+ #endif
+
+ #endif
+diff -ur tigervnc-1.2.0.orig/unix/xserver/hw/vnc/xvnc.cc tigervnc-1.2.0/unix/xserver/hw/vnc/xvnc.cc
+--- tigervnc-1.2.0.orig/unix/xserver/hw/vnc/xvnc.cc 2012-09-06 18:52:51.896283812 +0200
++++ tigervnc-1.2.0/unix/xserver/hw/vnc/xvnc.cc 2012-09-06 18:59:25.784263082 +0200
+@@ -285,7 +285,11 @@
+ }
+
+ void
++#if XORG < 113
+ OsVendorFatalError()
++#else
++OsVendorFatalError(const char *f, va_list args)
++#endif
+ {
+ }
+
+@@ -626,14 +630,25 @@
+ }
+ #endif
+
++#if XORG < 113
+ static ColormapPtr InstalledMaps[MAXSCREENS];
++#else
++static DevPrivateKeyRec cmapScrPrivateKeyRec;
++#define cmapScrPrivateKey (&cmapScrPrivateKeyRec)
++#define GetInstalledColormap(s) ((ColormapPtr) dixLookupPrivate(&(s)->devPrivates, cmapScrPrivateKey))
++#define SetInstalledColormap(s,c) (dixSetPrivate(&(s)->devPrivates, cmapScrPrivateKey, c))
++#endif
+
+ static int
+ vfbListInstalledColormaps(ScreenPtr pScreen, Colormap *pmaps)
+ {
+ /* By the time we are processing requests, we can guarantee that there
+ * is always a colormap installed */
++#if XORG < 113
+ *pmaps = InstalledMaps[pScreen->myNum]->mid;
++#else
++ *pmaps = GetInstalledColormap(pScreen)->mid;
++#endif
+ return (1);
+ }
+
+@@ -641,8 +656,16 @@
+ static void
+ vfbInstallColormap(ColormapPtr pmap)
+ {
++#if XORG < 113
+ int index = pmap->pScreen->myNum;
+- ColormapPtr oldpmap = InstalledMaps[index];
++#endif
++ ColormapPtr oldpmap;
++
++#if XORG < 113
++ oldpmap = InstalledMaps[index];
++#else
++ oldpmap = GetInstalledColormap(pmap->pScreen);
++#endif
+
+ if (pmap != oldpmap)
+ {
+@@ -656,7 +679,11 @@
+ if(oldpmap != (ColormapPtr)None)
+ WalkTree(pmap->pScreen, TellLostMap, (char *)&oldpmap->mid);
+ /* Install pmap */
++#if XORG < 113
+ InstalledMaps[index] = pmap;
++#else
++ SetInstalledColormap(pmap->pScreen, pmap);
++#endif
+ WalkTree(pmap->pScreen, TellGainedMap, (char *)&pmap->mid);
+
+ entries = pmap->pVisual->ColormapEntries;
+@@ -692,7 +719,11 @@
+ static void
+ vfbUninstallColormap(ColormapPtr pmap)
+ {
++#if XORG < 113
+ ColormapPtr curpmap = InstalledMaps[pmap->pScreen->myNum];
++#else
++ ColormapPtr curpmap = GetInstalledColormap(pmap->pScreen);
++#endif
+
+ if(pmap == curpmap)
+ {
+@@ -1153,31 +1184,66 @@
+ #endif
+
+ static Bool
++#if XORG < 113
+ vfbCloseScreen(int index, ScreenPtr pScreen)
++#else
++vfbCloseScreen(ScreenPtr pScreen)
++#endif
+ {
++#if XORG < 113
+ vfbScreenInfoPtr pvfb = &vfbScreens[index];
++#else
++ vfbScreenInfoPtr pvfb = &vfbScreens[pScreen->myNum];
++#endif
+ int i;
+
+ pScreen->CloseScreen = pvfb->closeScreen;
+
+ /*
+ * XXX probably lots of stuff to clean. For now,
+- * clear InstalledMaps[] so that server reset works correctly.
++ * clear installed colormaps so that server reset works correctly.
+ */
++#if XORG < 113
+ for (i = 0; i < MAXSCREENS; i++)
+ InstalledMaps[i] = NULL;
+
+ return pScreen->CloseScreen(index, pScreen);
++#else
++ for (i = 0; i < screenInfo.numScreens; i++)
++ SetInstalledColormap(screenInfo.screens[i], NULL);
++
++ /*
++ * fb overwrites miCloseScreen, so do this here
++ */
++ if (pScreen->devPrivate)
++ (*pScreen->DestroyPixmap) ((PixmapPtr) pScreen->devPrivate);
++ pScreen->devPrivate = NULL;
++
++ return pScreen->CloseScreen(pScreen);
++#endif
+ }
+
+ static Bool
++#if XORG < 113
+ vfbScreenInit(int index, ScreenPtr pScreen, int argc, char **argv)
++#else
++vfbScreenInit(ScreenPtr pScreen, int argc, char **argv)
++#endif
+ {
++#if XORG < 113
+ vfbScreenInfoPtr pvfb = &vfbScreens[index];
++#else
++ vfbScreenInfoPtr pvfb = &vfbScreens[pScreen->myNum];
++#endif
+ int dpi;
+ int ret;
+ void *pbits;
+
++#if XORG >= 113
++ if (!dixRegisterPrivateKey(&cmapScrPrivateKeyRec, PRIVATE_SCREEN, 0))
++ return FALSE;
++#endif
++
+ /* 96 is the default used by most other systems */
+ dpi = 96;
+ if (monitorResolution)
+@@ -1185,8 +1251,13 @@
+
+ pbits = vfbAllocateFramebufferMemory(&pvfb->fb);
+ if (!pbits) return FALSE;
++#if XORG < 113
+ vncFbptr[index] = pbits;
+ vncFbstride[index] = pvfb->fb.paddedWidth;
++#else
++ vncFbptr[pScreen->myNum] = pbits;
++ vncFbstride[pScreen->myNum] = pvfb->fb.paddedWidth;
++#endif
+
+ miSetPixmapDepths();
+
diff --git a/community/tigervnc/xserver113.patch b/community/tigervnc/xserver113.patch
new file mode 100644
index 000000000..e4fabf3b0
--- /dev/null
+++ b/community/tigervnc/xserver113.patch
@@ -0,0 +1,92 @@
+diff -up tigervnc-1.2.0/unix/xserver/configure.ac.vnc tigervnc-1.2.0/unix/xserver/configure.ac
+--- tigervnc-1.2.0/unix/xserver/configure.ac.vnc 2012-08-28 15:35:23.778810954 +0200
++++ tigervnc-1.2.0/unix/xserver/configure.ac 2012-08-28 15:54:46.396743431 +0200
+@@ -31,7 +31,6 @@ RELEASE_DATE="2012-08-21"
+ RELEASE_NAME="Splashing Orca"
+ AC_CONFIG_SRCDIR([Makefile.am])
+ AM_INIT_AUTOMAKE([foreign dist-bzip2])
+-AM_MAINTAINER_MODE
+
+ # Require xorg-macros minimum of 1.14 for XORG_COMPILER_BRAND in XORG_DEFAULT_OPTIONS
+ m4_ifndef([XORG_MACROS_VERSION],
+@@ -73,6 +72,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
+@@ -1561,6 +1561,10 @@ if test "x$XVFB" = xyes; then
+ AC_SUBST([XVFB_SYS_LIBS])
+ fi
+
++dnl Xvnc DDX
++AC_SUBST([XVNC_CPPFLAGS], ["-DHAVE_DIX_CONFIG_H $XSERVER_CFLAGS"])
++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 Xnest DDX
+
+@@ -1596,6 +1600,8 @@ if test "x$XORG" = xauto; then
+ fi
+ AC_MSG_RESULT([$XORG])
+
++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'
+@@ -1815,7 +1821,6 @@ if test "x$XORG" = xyes; then
+ AC_DEFINE(XORG_SERVER, 1, [Building Xorg server])
+ AC_DEFINE(XORGSERVER, 1, [Building Xorg server])
+ AC_DEFINE(XFree86Server, 1, [Building 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])
+@@ -2280,6 +2285,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 tigervnc-1.2.0/unix/xserver/hw/Makefile.am.vnc tigervnc-1.2.0/unix/xserver/hw/Makefile.am
+--- tigervnc-1.2.0/unix/xserver/hw/Makefile.am.vnc 2012-08-28 15:35:23.856810890 +0200
++++ tigervnc-1.2.0/unix/xserver/hw/Makefile.am 2012-08-28 15:35:42.272795917 +0200
+@@ -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 tigervnc-1.2.0/unix/xserver/mi/miinitext.c.vnc xserver/mi/miinitext.c
+--- tigervnc-1.2.0/unix/xserver/mi/miinitext.c.vnc 2012-08-28 15:35:23.000000000 +0200
++++ tigervnc-1.2.0/unix/xserver/mi/miinitext.c 2012-09-05 15:07:40.714953972 +0200
+@@ -112,6 +112,10 @@ SOFTWARE.
+ #include "micmap.h"
+ #include "globals.h"
+
++#ifdef TIGERVNC
++extern void vncExtensionInit(INITARGS);
++#endif
++
+ /* The following is only a small first step towards run-time
+ * configurable extensions.
+ */
+@@ -299,6 +303,9 @@ static ExtensionModule staticExtensions[
+ #ifdef XSELINUX
+ {SELinuxExtensionInit, SELINUX_EXTENSION_NAME, &noSELinuxExtension},
+ #endif
++#ifdef TIGERVNC
++ {vncExtensionInit, "VNC-EXTENSION", NULL},
++#endif
+ };
+
+ static ExtensionModule *ExtensionModuleList = NULL;