|
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 [email protected] https://lists.sourceforge.net/lists/listinfo/tigervnc-devel

