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 Unicon Software GmbH 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