Index: xserver/configure.ac =================================================================== --- xserver.orig/configure.ac +++ xserver/configure.ac @@ -74,6 +74,7 @@ dnl forcing an entire recompile.x AC_CONFIG_HEADERS(include/version-config.h) AM_PROG_AS +AC_PROG_CXX AC_PROG_LN_S LT_PREREQ([2.2]) LT_INIT([disable-static win32-dll]) @@ -1777,6 +1778,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 $DRI3_LIB $PRESENT_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 @@ -1812,6 +1817,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' @@ -2029,7 +2036,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]) @@ -2565,6 +2571,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 Index: xserver/hw/Makefile.am =================================================================== --- xserver.orig/hw/Makefile.am +++ xserver/hw/Makefile.am @@ -38,7 +38,8 @@ SUBDIRS = \ $(DMX_SUBDIRS) \ $(KDRIVE_SUBDIRS) \ $(XQUARTZ_SUBDIRS) \ - $(XWAYLAND_SUBDIRS) + $(XWAYLAND_SUBDIRS) \ + vnc DIST_SUBDIRS = dmx xfree86 vfb xnest xwin xquartz kdrive xwayland Index: xserver/mi/miinitext.c =================================================================== --- xserver.orig/mi/miinitext.c +++ xserver/mi/miinitext.c @@ -107,8 +107,15 @@ SOFTWARE. #include "os.h" #include "globals.h" +#ifdef KASMVNC +extern void vncExtensionInit(void); +#endif + /* List of built-in (statically linked) extensions */ static const ExtensionModule staticExtensions[] = { +#ifdef KASMVNC + {vncExtensionInit, "VNC-EXTENSION", NULL}, +#endif {GEExtensionInit, "Generic Event Extension", &noGEExtension}, {ShapeExtensionInit, "SHAPE", NULL}, #ifdef MITSHM --- xserver.orig/dri3/Makefile.am 2019-02-26 21:28:50.000000000 +0200 +++ xserver/dri3/Makefile.am 2023-01-18 11:55:45.315851638 +0200 @@ -1,7 +1,7 @@ noinst_LTLIBRARIES = libdri3.la AM_CFLAGS = \ -DHAVE_XORG_CONFIG_H \ - @DIX_CFLAGS@ @XORG_CFLAGS@ + @DIX_CFLAGS@ @XORG_CFLAGS@ @LIBDRM_CFLAGS@ libdri3_la_SOURCES = \ dri3.h \ --- xserver.orig/present/present.c 2019-02-26 21:28:50.000000000 +0200 +++ xserver/present/present.c 2023-01-20 11:32:27.175493594 +0200 @@ -27,6 +27,8 @@ #include "present_priv.h" #include +void xvnc_sync_dri3_pixmap(PixmapPtr pixmap); + /* * Returns: * TRUE if the first MSC value is equal to or after the second one @@ -79,6 +81,8 @@ ScreenPtr screen = drawable->pScreen; GCPtr gc; + xvnc_sync_dri3_pixmap(pixmap); + gc = GetScratchGC(drawable->depth, screen); if (update) { ChangeGCVal changes[2]; --- xserver.orig/damageext/damageext.c 2019-02-26 21:28:50.000000000 +0200 +++ xserver/damageext/damageext.c 2023-03-21 12:52:58.411647186 +0200 @@ -87,6 +87,8 @@ *h = draw->height; } +void xvnc_sync_dri3_textures(void); + static void DamageExtNotify(DamageExtPtr pDamageExt, BoxPtr pBoxes, int nBoxes) { @@ -97,6 +99,8 @@ damageGetGeometry(pDrawable, &x, &y, &w, &h); + xvnc_sync_dri3_textures(); + UpdateCurrentTimeIf(); ev = (xDamageNotifyEvent) { .type = DamageEventBase + XDamageNotify,