Adam Tkac | 80c67e8 | 2008-10-15 16:33:33 +0000 | [diff] [blame] | 1 | diff -up xserver/configure.ac.vnc xserver/configure.ac |
Adam Tkac | c65827f | 2011-05-11 10:22:24 +0000 | [diff] [blame] | 2 | --- xserver/configure.ac.vnc 2011-05-11 11:02:51.229669941 +0200 |
| 3 | +++ xserver/configure.ac 2011-05-11 11:03:07.754072695 +0200 |
DRC | 99b6643 | 2009-04-11 06:27:32 +0000 | [diff] [blame] | 4 | @@ -31,7 +31,7 @@ RELEASE_DATE="5 November 2008" |
Adam Tkac | ce1b454 | 2008-11-20 15:02:32 +0000 | [diff] [blame] | 5 | REMEMBER_REMEMBER="The Fifth of November" |
Adam Tkac | 4c0427f | 2008-03-21 18:56:48 +0000 | [diff] [blame] | 6 | AC_CONFIG_SRCDIR([Makefile.am]) |
| 7 | AM_INIT_AUTOMAKE([dist-bzip2 foreign]) |
| 8 | -AM_MAINTAINER_MODE |
DRC | 99b6643 | 2009-04-11 06:27:32 +0000 | [diff] [blame] | 9 | +m4_pattern_allow([AC_DEFINE]) |
Adam Tkac | 4c0427f | 2008-03-21 18:56:48 +0000 | [diff] [blame] | 10 | |
| 11 | dnl this gets generated by autoheader, and thus contains all the defines. we |
| 12 | dnl don't ever actually use it, internally. |
DRC | 99b6643 | 2009-04-11 06:27:32 +0000 | [diff] [blame] | 13 | @@ -54,6 +54,7 @@ dnl kdrive-config.h covers the kdrive DD |
Adam Tkac | ce1b454 | 2008-11-20 15:02:32 +0000 | [diff] [blame] | 14 | AC_CONFIG_HEADERS(include/kdrive-config.h) |
| 15 | |
| 16 | AC_PROG_CC |
| 17 | +AC_PROG_CXX |
| 18 | AM_PROG_AS |
| 19 | AC_PROG_INSTALL |
| 20 | AC_PROG_LN_S |
DRC | 99b6643 | 2009-04-11 06:27:32 +0000 | [diff] [blame] | 21 | @@ -1010,7 +1011,7 @@ AC_DEFINE(SHAPE, 1, [Support SHAPE exten |
Adam Tkac | 146d0b2 | 2009-04-03 08:44:09 +0000 | [diff] [blame] | 22 | |
| 23 | AC_DEFINE(XKB, 1, [Build XKB]) |
| 24 | AC_DEFINE(XKB_IN_SERVER, 1, [Build XKB server]) |
| 25 | -AC_DEFINE(XKB_DFLT_DISABLED, 0, [Disable XKB per default]) |
| 26 | +AC_DEFINE(XKB_DFLT_DISABLED, 1, [Disable XKB per default]) |
| 27 | REQUIRED_MODULES="$REQUIRED_MODULES xkbfile" |
| 28 | XKB_LIB='$(top_builddir)/xkb/libxkb.la' |
| 29 | XKB_STUB_LIB='$(top_builddir)/xkb/libxkbstubs.la' |
DRC | ceb4520 | 2011-06-22 00:33:13 +0000 | [diff] [blame] | 30 | @@ -1220,6 +1221,9 @@ if test "x$XVFB" = xyes; then |
Adam Tkac | ea74b2b | 2008-04-16 12:27:25 +0000 | [diff] [blame] | 31 | AC_SUBST([XVFB_SYS_LIBS]) |
| 32 | fi |
| 33 | |
| 34 | +dnl Xvnc DDX |
Pierre Ossman | ef27ba1 | 2009-03-18 17:22:30 +0000 | [diff] [blame] | 35 | +AC_SUBST([XVNC_CPPFLAGS], ["-DHAVE_DIX_CONFIG_H $XEXT_INC $FB_INC $MI_INC $RENDER_INC $RANDR_INC"]) |
Adam Tkac | ea74b2b | 2008-04-16 12:27:25 +0000 | [diff] [blame] | 36 | +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"]) |
| 37 | |
| 38 | dnl Xnest DDX |
| 39 | |
DRC | ceb4520 | 2011-06-22 00:33:13 +0000 | [diff] [blame] | 40 | @@ -1314,6 +1318,8 @@ xorg_bus_ppcpci=no |
Adam Tkac | 60909b5 | 2009-02-25 10:53:36 +0000 | [diff] [blame] | 41 | xorg_bus_sparcpci=no |
| 42 | xorg_bus_sparc=no |
| 43 | |
| 44 | +AC_DEFINE_UNQUOTED(XORG_VERSION_CURRENT, [$VENDOR_RELEASE], [Current Xorg version]) |
| 45 | + |
| 46 | if test "x$XORG" = xyes -o "x$XGL" = xyes; then |
| 47 | XORG_DDXINCS='-I$(top_srcdir)/hw/xfree86 -I$(top_srcdir)/hw/xfree86/include -I$(top_srcdir)/hw/xfree86/common' |
| 48 | XORG_OSINCS='-I$(top_srcdir)/hw/xfree86/os-support -I$(top_srcdir)/hw/xfree86/os-support/bus -I$(top_srcdir)/os' |
DRC | ceb4520 | 2011-06-22 00:33:13 +0000 | [diff] [blame] | 49 | @@ -1521,7 +1527,6 @@ if test "x$XORG" = xyes -o "x$XGL" = xye |
Adam Tkac | 60909b5 | 2009-02-25 10:53:36 +0000 | [diff] [blame] | 50 | AC_DEFINE(XORGSERVER, 1, [Building Xorg server]) |
| 51 | AC_DEFINE(XFree86Server, 1, [Building XFree86 server]) |
| 52 | AC_DEFINE(XFree86LOADER, 1, [Building loadable XFree86 server]) |
| 53 | - AC_DEFINE_UNQUOTED(XORG_VERSION_CURRENT, [$VENDOR_RELEASE], [Current Xorg version]) |
| 54 | AC_DEFINE(NEED_XF86_TYPES, 1, [Need XFree86 typedefs]) |
| 55 | AC_DEFINE(NEED_XF86_PROTOTYPES, 1, [Need XFree86 helper functions]) |
| 56 | AC_DEFINE(__XSERVERNAME__, "Xorg", [Name of X server]) |
DRC | ceb4520 | 2011-06-22 00:33:13 +0000 | [diff] [blame] | 57 | @@ -2184,6 +2189,7 @@ hw/dmx/input/Makefile |
Adam Tkac | 4c0427f | 2008-03-21 18:56:48 +0000 | [diff] [blame] | 58 | hw/dmx/glxProxy/Makefile |
| 59 | hw/dmx/Makefile |
| 60 | hw/vfb/Makefile |
| 61 | +hw/vnc/Makefile |
| 62 | hw/xgl/Makefile |
| 63 | hw/xgl/egl/Makefile |
| 64 | hw/xgl/egl/module/Makefile |
Adam Tkac | 80c67e8 | 2008-10-15 16:33:33 +0000 | [diff] [blame] | 65 | diff -up xserver/hw/Makefile.am.vnc xserver/hw/Makefile.am |
Adam Tkac | c65827f | 2011-05-11 10:22:24 +0000 | [diff] [blame] | 66 | --- xserver/hw/Makefile.am.vnc 2011-05-11 11:02:51.809648976 +0200 |
| 67 | +++ xserver/hw/Makefile.am 2011-05-11 11:03:07.754072695 +0200 |
Adam Tkac | 80c67e8 | 2008-10-15 16:33:33 +0000 | [diff] [blame] | 68 | @@ -43,7 +43,8 @@ SUBDIRS = \ |
| 69 | $(DMX_SUBDIRS) \ |
| 70 | $(KDRIVE_SUBDIRS) \ |
| 71 | $(XQUARTZ_SUBDIRS) \ |
| 72 | - $(XPRINT_SUBDIRS) |
| 73 | + $(XPRINT_SUBDIRS) \ |
| 74 | + vnc |
| 75 | |
| 76 | DIST_SUBDIRS = dmx xfree86 vfb xnest xwin xquartz kdrive xgl xprint |
| 77 | |
| 78 | diff -up xserver/mi/miinitext.c.vnc xserver/mi/miinitext.c |
Adam Tkac | c65827f | 2011-05-11 10:22:24 +0000 | [diff] [blame] | 79 | --- xserver/mi/miinitext.c.vnc 2011-05-11 11:02:53.156600294 +0200 |
| 80 | +++ xserver/mi/miinitext.c 2011-05-11 11:03:31.079229673 +0200 |
| 81 | @@ -292,6 +292,9 @@ extern void BigReqExtensionInit(INITARGS |
Adam Tkac | 0c2f493 | 2008-10-15 15:55:06 +0000 | [diff] [blame] | 82 | #ifdef MITMISC |
| 83 | extern void MITMiscExtensionInit(INITARGS); |
| 84 | #endif |
Adam Tkac | c65827f | 2011-05-11 10:22:24 +0000 | [diff] [blame] | 85 | +#ifdef TIGERVNC |
Adam Tkac | 0c2f493 | 2008-10-15 15:55:06 +0000 | [diff] [blame] | 86 | +extern void vncExtensionInit(INITARGS); |
Adam Tkac | c65827f | 2011-05-11 10:22:24 +0000 | [diff] [blame] | 87 | +#endif |
Adam Tkac | 0c2f493 | 2008-10-15 15:55:06 +0000 | [diff] [blame] | 88 | #ifdef XIDLE |
| 89 | extern void XIdleExtensionInit(INITARGS); |
| 90 | #endif |
Adam Tkac | c65827f | 2011-05-11 10:22:24 +0000 | [diff] [blame] | 91 | @@ -566,6 +569,9 @@ InitExtensions(argc, argv) |
Adam Tkac | 0c2f493 | 2008-10-15 15:55:06 +0000 | [diff] [blame] | 92 | #ifdef MITMISC |
| 93 | if (!noMITMiscExtension) MITMiscExtensionInit(); |
| 94 | #endif |
Adam Tkac | c65827f | 2011-05-11 10:22:24 +0000 | [diff] [blame] | 95 | +#ifdef TIGERVNC |
Adam Tkac | 0c2f493 | 2008-10-15 15:55:06 +0000 | [diff] [blame] | 96 | + vncExtensionInit(); |
Adam Tkac | c65827f | 2011-05-11 10:22:24 +0000 | [diff] [blame] | 97 | +#endif |
Adam Tkac | 0c2f493 | 2008-10-15 15:55:06 +0000 | [diff] [blame] | 98 | #ifdef XIDLE |
| 99 | if (!noXIdleExtension) XIdleExtensionInit(); |
| 100 | #endif |
Pierre Ossman | 4ce51ff | 2011-10-25 15:13:13 +0000 | [diff] [blame^] | 101 | --- xserver/os/WaitFor.c.orig 2011-10-07 12:57:57.000000000 +0200 |
| 102 | +++ xserver/os/WaitFor.c 2011-10-07 13:21:11.000000000 +0200 |
| 103 | @@ -125,6 +125,9 @@ |
| 104 | static void CheckAllTimers(void); |
| 105 | static OsTimerPtr timers = NULL; |
| 106 | |
| 107 | +extern void vncWriteBlockHandler(fd_set *fds); |
| 108 | +extern void vncWriteWakeupHandler(int nfds, fd_set *fds); |
| 109 | + |
| 110 | /***************** |
| 111 | * WaitForSomething: |
| 112 | * Make the server suspend until there is |
| 113 | @@ -150,6 +153,7 @@ |
| 114 | INT32 timeout = 0; |
| 115 | fd_set clientsReadable; |
| 116 | fd_set clientsWritable; |
| 117 | + fd_set socketsWritable; |
| 118 | int curclient; |
| 119 | int selecterr; |
| 120 | int nready; |
| 121 | @@ -220,23 +224,29 @@ |
| 122 | SmartScheduleStopTimer (); |
| 123 | |
| 124 | #endif |
| 125 | + FD_ZERO(&socketsWritable); |
| 126 | + vncWriteBlockHandler(&socketsWritable); |
| 127 | BlockHandler((pointer)&wt, (pointer)&LastSelectMask); |
| 128 | if (NewOutputPending) |
| 129 | FlushAllOutput(); |
| 130 | /* keep this check close to select() call to minimize race */ |
| 131 | if (dispatchException) |
| 132 | i = -1; |
| 133 | - else if (AnyClientsWriteBlocked) |
| 134 | - { |
| 135 | - XFD_COPYSET(&ClientsWriteBlocked, &clientsWritable); |
| 136 | - i = Select (MaxClients, &LastSelectMask, &clientsWritable, NULL, wt); |
| 137 | - } |
| 138 | - else |
| 139 | - { |
| 140 | - i = Select (MaxClients, &LastSelectMask, NULL, NULL, wt); |
| 141 | + else { |
| 142 | + if (AnyClientsWriteBlocked) |
| 143 | + XFD_ORSET(&socketsWritable, &ClientsWriteBlocked, &socketsWritable); |
| 144 | + |
| 145 | + if (XFD_ANYSET(&socketsWritable)) { |
| 146 | + i = Select (MaxClients, &LastSelectMask, &socketsWritable, NULL, wt); |
| 147 | + if (AnyClientsWriteBlocked) |
| 148 | + XFD_ANDSET(&clientsWritable, &socketsWritable, &ClientsWriteBlocked); |
| 149 | + } else { |
| 150 | + i = Select (MaxClients, &LastSelectMask, NULL, NULL, wt); |
| 151 | + } |
| 152 | } |
| 153 | selecterr = GetErrno(); |
| 154 | WakeupHandler(i, (pointer)&LastSelectMask); |
| 155 | + vncWriteWakeupHandler(i, &socketsWritable); |
| 156 | #ifdef SMART_SCHEDULE |
| 157 | SmartScheduleStartTimer (); |
| 158 | #endif |