Dear TigerVNC developers,

when I had to update the X-Server in combination with the loadable TigerVNC module in our OS, I was surprised that I had to have still two separate build procedures due to the requirements in the configure options. Maybe I missed some issues requiring that procedure. Nevertheless I spent for that reason some time to completely integrate the TigerVNC 1.2.90 build process of the VNC module into the build process of the X-Server 1.10.1. So the attached patches xserver.patch and build.patch might be interesting for the community, because they simply add the configure option --enable-xvnc to the X-Server, which enables the generation of VNC without the need for other configure options likes --disable-dri, etc. Consequentially I can fetch the sources of the X-Server, the sources of TigerVNC into xserver/hw/vnc and directly compile the X-Server as well as the loadable VNC module.

Maybe there could be also the possibility that the X-Server community accepts the modifications in their maintained files, because nothing is broken, if the directory xserver/hw/vnc does not exist, and XVNC is analog to XNEST, XVFB and so on.


Besides this, I have made another patch named queryconnect.patch for a memory alignment issue in the TigerVNC loadbable X-Server module. I have reported this issue some time ago, but it seems to still remain in the code 1.2.90 as well as trunk.



Regards,
Christian
 
--

Dr. Christian Steinle 
System Architect Linux OS 

Unicon Software GmbH 
Philipp-Reis-Str. 1 
76137 Karlsruhe 
Germany 
Tel. +49 (0)721 96451-0 
Fax +49 (0)721 96451-43 
Email: christian.stei...@unicon-software.com
Web: www.unicon-software.com 

This communication contains information that is confidential, proprietary in nature and/or privileged. It is for the exclusive use of the intended recipient(s). If you are not the intended recipient(s) or the person responsible for delivering it to the intended recipient(s), please note that any form of dissemination, distribution or copying of this communication is strictly prohibited and may be unlawful. If you have received this communication in error, please immediately notify the sender and delete the original communication. Thank you for your cooperation.

--- unix/xserver/hw/vnc/vncExtInit.cc.orig      2011-04-16 02:58:58.000000000 
+0200
+++ unix/xserver/hw/vnc/vncExtInit.cc   2013-06-27 15:50:38.000000000 +0200
@@ -1026,19 +1026,21 @@
   rep.userLen = qcTimeout ? strlen(qcUsername) : 0;
   rep.opaqueId = (CARD32)(long)queryConnectId;
-  rep.length = (rep.userLen + rep.addrLen + 3) >> 2;
+  rep.length = ((rep.userLen + 3) >> 2) + ((rep.addrLen + 3) >> 2);
   if (client->swapped) {
 #if XORG < 112
     int n;
     swaps(&rep.sequenceNumber, n);
+    swapl(&rep.addrLen, n);
     swapl(&rep.userLen, n);
-    swapl(&rep.addrLen, n);
     swapl(&rep.timeout, n);
     swapl(&rep.opaqueId, n);
+    swapl(&rep.length, n);
 #else
     swaps(&rep.sequenceNumber);
+    swapl(&rep.addrLen);
     swapl(&rep.userLen);
-    swapl(&rep.addrLen);
     swapl(&rep.timeout);
     swapl(&rep.opaqueId);
+    swapl(&rep.length);
 #endif
   }
--- xserver/configure.ac.orig   2011-04-16 02:58:58.000000000 +0200
+++ xserver/configure.ac        2013-06-27 15:50:38.000000000 +0200
@@ -65,6 +65,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
@@ -649,6 +650,7 @@ dnl DDXes.
 AC_ARG_ENABLE(xorg,                  AS_HELP_STRING([--enable-xorg], [Build 
Xorg server (default: auto)]), [XORG=$enableval], [XORG=auto])
 AC_ARG_ENABLE(dmx,           AS_HELP_STRING([--enable-dmx], [Build DMX server 
(default: auto)]), [DMX=$enableval], [DMX=auto])
 AC_ARG_ENABLE(xvfb,                  AS_HELP_STRING([--enable-xvfb], [Build 
Xvfb server (default: yes)]), [XVFB=$enableval], [XVFB=yes])
+AC_ARG_ENABLE(xvnc,                  AS_HELP_STRING([--enable-xvnc], [Build 
Xvnc server (default: no)]), [XVNC=$enableval], [XVNC=no])
 AC_ARG_ENABLE(xnest,                 AS_HELP_STRING([--enable-xnest], [Build 
Xnest server (default: auto)]), [XNEST=$enableval], [XNEST=auto])
 AC_ARG_ENABLE(xquartz,        AS_HELP_STRING([--enable-xquartz], [Build 
Xquartz server for OS-X (default: auto)]), [XQUARTZ=$enableval], [XQUARTZ=auto])
 AC_ARG_ENABLE(standalone-xpbproxy, 
AS_HELP_STRING([--enable-standalone-xpbproxy], [Build a standalone xpbproxy (in 
addition to the one integrated into Xquartz as a separate thread) (default: 
no)]), [STANDALONE_XPBPROXY=$enableval], [STANDALONE_XPBPROXY=no])
@@ -1513,6 +1515,26 @@ if test "x$XVFB" = xyes; then
        AC_SUBST([XVFB_SYS_LIBS])
 fi
 
+dnl Xvnc DDX
+
+AC_MSG_CHECKING([whether to build Xvnc DDX])
+AC_MSG_RESULT([$XVNC])
+AM_CONDITIONAL(XVNC, [test "x$XVNC" = xyes])
+
+if test "x$XVNC" = xyes; then
+       if test -f "hw/vnc/Makefile.am"; then
+               AC_DEFINE_UNQUOTED(XORG_VERSION_CURRENT, [$VENDOR_RELEASE], 
[Current Xorg version])
+               XVNC_CPPFLAGS="-DHAVE_DIX_CONFIG_H $XEXT_INC $FB_INC $MI_INC 
$RENDER_INC $RANDR_INC"
+               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"
+               XVNC_SYS_LIBS="$GLX_SYS_LIBS"
+               AC_SUBST([XVNC_CPPFLAGS])
+               AC_SUBST([XVNC_LIBS])
+               AC_SUBST([XVNC_SYS_LIBS])
+               AC_CONFIG_FILES([hw/vnc/Makefile])
+       else
+               AC_MSG_WARN([Although Xvnc build explicitly requested, it is 
disabled because of missing sources.])
+       fi
+fi
 
 dnl Xnest DDX
 
--- xserver/hw/Makefile.am.orig 2011-04-16 02:58:58.000000000 +0200
+++ xserver/hw/Makefile.am      2013-06-27 11:30:18.000000000 +0200
@@ -10,6 +10,10 @@ if XVFB
 XVFB_SUBDIRS = vfb
 endif
 
+if XVNC
+XVNC_SUBDIRS = vnc
+endif
+
 if XNEST
 XNEST_SUBDIRS = xnest
 endif
@@ -30,12 +34,13 @@ SUBDIRS =                   \
        $(XORG_SUBDIRS)         \
        $(XWIN_SUBDIRS)         \
        $(XVFB_SUBDIRS)         \
+       $(XVNC_SUBDIRS)         \
        $(XNEST_SUBDIRS)        \
        $(DMX_SUBDIRS)          \
        $(KDRIVE_SUBDIRS)       \
        $(XQUARTZ_SUBDIRS)
 
-DIST_SUBDIRS = dmx xfree86 vfb xnest xwin xquartz kdrive
+DIST_SUBDIRS = dmx xfree86 vfb $(XVNC_SUBDIRS) xnest xwin xquartz kdrive
 
 relink:
        $(AM_V_at)for i in $(SUBDIRS) ; do $(MAKE) -C $$i relink || exit 1 ; 
done
--- xserver/mi/miinitext.c.orig 2011-04-16 02:58:57.000000000 +0200
+++ xserver/mi/miinitext.c      2013-06-27 15:57:21.000000000 +0200
@@ -263,6 +263,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.
@@ -433,6 +436,9 @@ InitExtensions(int argc, char *argv[])
 #ifdef XF86BIGFONT
     if (!noXFree86BigfontExtension) XFree86BigfontExtensionInit();
 #endif
+#ifdef TIGERVNC
+    vncExtensionInit();
+#endif
 #if !defined(NO_HW_ONLY_EXTS)
 #if defined(XF86VIDMODE)
     if (!noXFree86VidModeExtension) XFree86VidModeExtensionInit();
--- unix/xserver/hw/vnc/Makefile.am.orig        2011-04-16 02:58:58.000000000 
+0200
+++ unix/xserver/hw/vnc/Makefile.am     2013-06-27 15:50:38.000000000 +0200
@@ -32,5 +32,5 @@
 
 Xvnc_CPPFLAGS = $(XVNC_CPPFLAGS) -DTIGERVNC -DNO_MODULE_EXTS \
-       -UHAVE_CONFIG_H \
+       -DNO_HW_ONLY_EXTS -UHAVE_CONFIG_H \
        -DXFree86Server -DVENDOR_RELEASE="$(VENDOR_RELEASE)" \
        -DVENDOR_STRING="\"$(VENDOR_STRING)\"" -I$(TIGERVNC_SRCDIR)/common \
------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
_______________________________________________
Tigervnc-devel mailing list
Tigervnc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tigervnc-devel

Reply via email to