Revision: 4979 http://tigervnc.svn.sourceforge.net/tigervnc/?rev=4979&view=rev Author: atkac Date: 2012-08-28 13:32:19 +0000 (Tue, 28 Aug 2012) Log Message: ----------- Add support for X.Org 1.12.X
Modified Paths: -------------- trunk/unix/xserver/hw/vnc/vncExtInit.cc trunk/unix/xserver/hw/vnc/xf86vncModule.cc trunk/unix/xserver/hw/vnc/xorg-version.h Added Paths: ----------- trunk/unix/xserver112.patch Modified: trunk/unix/xserver/hw/vnc/vncExtInit.cc =================================================================== --- trunk/unix/xserver/hw/vnc/vncExtInit.cc 2012-08-28 12:41:44 UTC (rev 4978) +++ trunk/unix/xserver/hw/vnc/vncExtInit.cc 2012-08-28 13:32:19 UTC (rev 4979) @@ -59,6 +59,7 @@ #include "XserverDesktop.h" #include "vncHooks.h" #include "vncExtInit.h" +#include "xorg-version.h" extern "C" { @@ -449,10 +450,16 @@ 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); @@ -495,9 +502,14 @@ 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); @@ -538,10 +550,16 @@ 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); @@ -562,7 +580,6 @@ param.buf[stuff->paramLen] = 0; xVncExtSetParamReply rep; - int n; rep.type = X_Reply; rep.length = 0; rep.success = 0; @@ -603,8 +620,14 @@ 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); @@ -612,9 +635,13 @@ static int SProcVncExtSetParam(ClientPtr client) { + REQUEST(xVncExtSetParamReq); +#if XORG < 112 register char n; - REQUEST(xVncExtSetParamReq); swaps(&stuff->length, n); +#else + swaps(&stuff->length); +#endif REQUEST_AT_LEAST_SIZE(xVncExtSetParamReq); return ProcVncExtSetParam(client); } @@ -628,7 +655,6 @@ param.buf[stuff->paramLen] = 0; xVncExtGetParamReply rep; - int n; rep.type = X_Reply; rep.sequenceNumber = client->sequence; rep.success = 0; @@ -646,9 +672,16 @@ 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) @@ -659,9 +692,13 @@ static int SProcVncExtGetParam(ClientPtr client) { + REQUEST(xVncExtGetParamReq); +#if XORG < 112 register char n; - REQUEST(xVncExtGetParamReq); swaps(&stuff->length, n); +#else + swaps(&stuff->length); +#endif REQUEST_AT_LEAST_SIZE(xVncExtGetParamReq); return ProcVncExtGetParam(client); } @@ -675,7 +712,6 @@ param.buf[stuff->paramLen] = 0; xVncExtGetParamDescReply rep; - int n; rep.type = X_Reply; rep.sequenceNumber = client->sequence; rep.success = 0; @@ -690,9 +726,16 @@ 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) @@ -702,9 +745,13 @@ static int SProcVncExtGetParamDesc(ClientPtr client) { + REQUEST(xVncExtGetParamDescReq); +#if XORG < 112 register char n; - REQUEST(xVncExtGetParamDescReq); swaps(&stuff->length, n); +#else + swaps(&stuff->length); +#endif REQUEST_AT_LEAST_SIZE(xVncExtGetParamDescReq); return ProcVncExtGetParamDesc(client); } @@ -715,7 +762,6 @@ REQUEST_SIZE_MATCH(xVncExtListParamsReq); xVncExtListParamsReply rep; - int n; rep.type = X_Reply; rep.sequenceNumber = client->sequence; @@ -731,9 +777,16 @@ 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]; @@ -753,9 +806,13 @@ static int SProcVncExtListParams(ClientPtr client) { + REQUEST(xVncExtListParamsReq); +#if XORG < 112 register char n; - REQUEST(xVncExtListParamsReq); swaps(&stuff->length, n); +#else + swaps(&stuff->length); +#endif REQUEST_SIZE_MATCH(xVncExtListParamsReq); return ProcVncExtListParams(client); } @@ -778,11 +835,19 @@ static int SProcVncExtSetServerCutText(ClientPtr client) { + REQUEST(xVncExtSetServerCutTextReq); +#if XORG < 112 register char n; - REQUEST(xVncExtSetServerCutTextReq); 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); } @@ -792,15 +857,21 @@ 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) @@ -810,9 +881,13 @@ static int SProcVncExtGetClientCutText(ClientPtr client) { + REQUEST(xVncExtGetClientCutTextReq); +#if XORG < 112 register char n; - REQUEST(xVncExtGetClientCutTextReq); swaps(&stuff->length, n); +#else + swaps(&stuff->length); +#endif REQUEST_SIZE_MATCH(xVncExtGetClientCutTextReq); return ProcVncExtGetClientCutText(client); } @@ -842,12 +917,21 @@ static int SProcVncExtSelectInput(ClientPtr client) { + REQUEST(xVncExtSelectInputReq); +#if XORG < 112 register char n; - REQUEST(xVncExtSelectInputReq); 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); } @@ -893,9 +977,14 @@ 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); @@ -903,9 +992,13 @@ static int SProcVncExtConnect(ClientPtr client) { + REQUEST(xVncExtConnectReq); +#if XORG < 112 register char n; - REQUEST(xVncExtConnectReq); swaps(&stuff->length, n); +#else + swaps(&stuff->length); +#endif REQUEST_AT_LEAST_SIZE(xVncExtConnectReq); return ProcVncExtConnect(client); } @@ -925,7 +1018,6 @@ qcTimeout = 0; xVncExtGetQueryConnectReply rep; - int n; rep.type = X_Reply; rep.sequenceNumber = client->sequence; rep.timeout = qcTimeout; @@ -934,11 +1026,20 @@ 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) @@ -950,9 +1051,13 @@ static int SProcVncExtGetQueryConnect(ClientPtr client) { + REQUEST(xVncExtGetQueryConnectReq); +#if XORG < 112 register char n; - REQUEST(xVncExtGetQueryConnectReq); swaps(&stuff->length, n); +#else + swaps(&stuff->length); +#endif REQUEST_SIZE_MATCH(xVncExtGetQueryConnectReq); return ProcVncExtGetQueryConnect(client); } @@ -977,10 +1082,15 @@ static int SProcVncExtApproveConnect(ClientPtr client) { + REQUEST(xVncExtApproveConnectReq); +#if XORG < 112 register char n; - REQUEST(xVncExtApproveConnectReq); swaps(&stuff->length, n); swapl(&stuff->opaqueId, n); +#else + swaps(&stuff->length); + swapl(&stuff->opaqueId); +#endif REQUEST_SIZE_MATCH(xVncExtApproveConnectReq); return ProcVncExtApproveConnect(client); } Modified: trunk/unix/xserver/hw/vnc/xf86vncModule.cc =================================================================== --- trunk/unix/xserver/hw/vnc/xf86vncModule.cc 2012-08-28 12:41:44 UTC (rev 4978) +++ trunk/unix/xserver/hw/vnc/xf86vncModule.cc 2012-08-28 13:32:19 UTC (rev 4979) @@ -28,6 +28,8 @@ #include <rfb/ScreenSet.h> #include <rfb/screenTypes.h> +#include "xorg-version.h" + extern "C" { #define class c_class #define private c_private @@ -94,7 +96,12 @@ 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); } Modified: trunk/unix/xserver/hw/vnc/xorg-version.h =================================================================== --- trunk/unix/xserver/hw/vnc/xorg-version.h 2012-08-28 12:41:44 UTC (rev 4978) +++ trunk/unix/xserver/hw/vnc/xorg-version.h 2012-08-28 13:32:19 UTC (rev 4979) @@ -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 Added: trunk/unix/xserver112.patch =================================================================== --- trunk/unix/xserver112.patch (rev 0) +++ trunk/unix/xserver112.patch 2012-08-28 13:32:19 UTC (rev 4979) @@ -0,0 +1,91 @@ +diff -up xserver/configure.ac.vnc xserver/configure.ac +--- xserver/configure.ac.vnc 2012-08-28 15:01:35.142325880 +0200 ++++ xserver/configure.ac 2012-08-28 15:02:06.292300682 +0200 +@@ -30,7 +30,6 @@ AC_INIT([xorg-server], 1.12.4, [https:// + RELEASE_DATE="2012-08-27" + 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], +@@ -72,6 +71,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 +@@ -1493,6 +1493,10 @@ 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 Xnest DDX + +@@ -1527,6 +1531,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' +@@ -1743,7 +1749,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]) +@@ -2209,6 +2214,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 2012-08-28 15:01:35.225325813 +0200 ++++ xserver/hw/Makefile.am 2012-08-28 15:02:06.292300682 +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 xserver/mi/miinitext.c.vnc xserver/mi/miinitext.c +--- xserver/mi/miinitext.c.vnc 2012-08-28 15:01:35.311325743 +0200 ++++ xserver/mi/miinitext.c 2012-08-28 15:02:06.293300681 +0200 +@@ -266,6 +266,9 @@ extern void DamageExtensionInit(INITARGS + extern void CompositeExtensionInit(INITARGS); + #endif + extern void GEExtensionInit(INITARGS); ++#ifdef TIGERVNC ++extern void vncExtensionInit(INITARGS); ++#endif + + /* The following is only a small first step towards run-time + * configurable extensions. +@@ -449,6 +452,9 @@ InitExtensions(int argc, char *argv[]) + if (!noXFree86BigfontExtension) + XFree86BigfontExtensionInit(); + #endif ++#ifdef TIGERVNC ++ vncExtensionInit(); ++#endif + #if !defined(NO_HW_ONLY_EXTS) + #if defined(XF86VIDMODE) + if (!noXFree86VidModeExtension) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ Tigervnc-commits mailing list Tigervnc-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tigervnc-commits