| 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 |