blob: 7d8c94be86a69b2b006f256b0d380534d9be473a [file] [log] [blame]
diff -up xserver/configure.ac.vnc xserver/configure.ac
--- xserver/configure.ac.vnc 2011-05-11 11:02:51.229669941 +0200
+++ xserver/configure.ac 2011-05-11 11:03:07.754072695 +0200
@@ -31,7 +31,7 @@ RELEASE_DATE="5 November 2008"
REMEMBER_REMEMBER="The Fifth of November"
AC_CONFIG_SRCDIR([Makefile.am])
AM_INIT_AUTOMAKE([dist-bzip2 foreign])
-AM_MAINTAINER_MODE
+m4_pattern_allow([AC_DEFINE])
dnl this gets generated by autoheader, and thus contains all the defines. we
dnl don't ever actually use it, internally.
@@ -54,6 +54,7 @@ dnl kdrive-config.h covers the kdrive DD
AC_CONFIG_HEADERS(include/kdrive-config.h)
AC_PROG_CC
+AC_PROG_CXX
AM_PROG_AS
AC_PROG_INSTALL
AC_PROG_LN_S
@@ -1010,7 +1011,7 @@ AC_DEFINE(SHAPE, 1, [Support SHAPE exten
AC_DEFINE(XKB, 1, [Build XKB])
AC_DEFINE(XKB_IN_SERVER, 1, [Build XKB server])
-AC_DEFINE(XKB_DFLT_DISABLED, 0, [Disable XKB per default])
+AC_DEFINE(XKB_DFLT_DISABLED, 1, [Disable XKB per default])
REQUIRED_MODULES="$REQUIRED_MODULES xkbfile"
XKB_LIB='$(top_builddir)/xkb/libxkb.la'
XKB_STUB_LIB='$(top_builddir)/xkb/libxkbstubs.la'
@@ -1220,6 +1221,9 @@ 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 $XTRAP_LIB $RECORD_LIB $GLX_LIBS $RENDER_LIB $RANDR_LIB $DAMAGE_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $XPSTUBS_LIB"])
dnl Xnest DDX
@@ -1314,6 +1318,8 @@ xorg_bus_ppcpci=no
xorg_bus_sparcpci=no
xorg_bus_sparc=no
+AC_DEFINE_UNQUOTED(XORG_VERSION_CURRENT, [$VENDOR_RELEASE], [Current Xorg version])
+
if test "x$XORG" = xyes -o "x$XGL" = 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'
@@ -1521,7 +1527,6 @@ if test "x$XORG" = xyes -o "x$XGL" = xye
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])
@@ -2184,6 +2189,7 @@ hw/dmx/input/Makefile
hw/dmx/glxProxy/Makefile
hw/dmx/Makefile
hw/vfb/Makefile
+hw/vnc/Makefile
hw/xgl/Makefile
hw/xgl/egl/Makefile
hw/xgl/egl/module/Makefile
diff -up xserver/hw/Makefile.am.vnc xserver/hw/Makefile.am
--- xserver/hw/Makefile.am.vnc 2011-05-11 11:02:51.809648976 +0200
+++ xserver/hw/Makefile.am 2011-05-11 11:03:07.754072695 +0200
@@ -43,7 +43,8 @@ SUBDIRS = \
$(DMX_SUBDIRS) \
$(KDRIVE_SUBDIRS) \
$(XQUARTZ_SUBDIRS) \
- $(XPRINT_SUBDIRS)
+ $(XPRINT_SUBDIRS) \
+ vnc
DIST_SUBDIRS = dmx xfree86 vfb xnest xwin xquartz kdrive xgl xprint
diff -up xserver/mi/miinitext.c.vnc xserver/mi/miinitext.c
--- xserver/mi/miinitext.c.vnc 2011-05-11 11:02:53.156600294 +0200
+++ xserver/mi/miinitext.c 2011-05-11 11:03:31.079229673 +0200
@@ -292,6 +292,9 @@ extern void BigReqExtensionInit(INITARGS
#ifdef MITMISC
extern void MITMiscExtensionInit(INITARGS);
#endif
+#ifdef TIGERVNC
+extern void vncExtensionInit(INITARGS);
+#endif
#ifdef XIDLE
extern void XIdleExtensionInit(INITARGS);
#endif
@@ -566,6 +569,9 @@ InitExtensions(argc, argv)
#ifdef MITMISC
if (!noMITMiscExtension) MITMiscExtensionInit();
#endif
+#ifdef TIGERVNC
+ vncExtensionInit();
+#endif
#ifdef XIDLE
if (!noXIdleExtension) XIdleExtensionInit();
#endif
--- xserver/os/WaitFor.c.orig 2011-10-07 12:57:57.000000000 +0200
+++ xserver/os/WaitFor.c 2011-10-07 13:21:11.000000000 +0200
@@ -125,6 +125,9 @@
static void CheckAllTimers(void);
static OsTimerPtr timers = NULL;
+extern void vncWriteBlockHandler(fd_set *fds);
+extern void vncWriteWakeupHandler(int nfds, fd_set *fds);
+
/*****************
* WaitForSomething:
* Make the server suspend until there is
@@ -150,6 +153,7 @@
INT32 timeout = 0;
fd_set clientsReadable;
fd_set clientsWritable;
+ fd_set socketsWritable;
int curclient;
int selecterr;
int nready;
@@ -220,23 +224,29 @@
SmartScheduleStopTimer ();
#endif
+ FD_ZERO(&socketsWritable);
+ vncWriteBlockHandler(&socketsWritable);
BlockHandler((pointer)&wt, (pointer)&LastSelectMask);
if (NewOutputPending)
FlushAllOutput();
/* keep this check close to select() call to minimize race */
if (dispatchException)
i = -1;
- else if (AnyClientsWriteBlocked)
- {
- XFD_COPYSET(&ClientsWriteBlocked, &clientsWritable);
- i = Select (MaxClients, &LastSelectMask, &clientsWritable, NULL, wt);
- }
- else
- {
- i = Select (MaxClients, &LastSelectMask, NULL, NULL, wt);
+ else {
+ if (AnyClientsWriteBlocked)
+ XFD_ORSET(&socketsWritable, &ClientsWriteBlocked, &socketsWritable);
+
+ if (XFD_ANYSET(&socketsWritable)) {
+ i = Select (MaxClients, &LastSelectMask, &socketsWritable, NULL, wt);
+ if (AnyClientsWriteBlocked)
+ XFD_ANDSET(&clientsWritable, &socketsWritable, &ClientsWriteBlocked);
+ } else {
+ i = Select (MaxClients, &LastSelectMask, NULL, NULL, wt);
+ }
}
selecterr = GetErrno();
WakeupHandler(i, (pointer)&LastSelectMask);
+ vncWriteWakeupHandler(i, &socketsWritable);
#ifdef SMART_SCHEDULE
SmartScheduleStartTimer ();
#endif