blob: 7d8c94be86a69b2b006f256b0d380534d9be473a [file] [log] [blame]
Adam Tkac80c67e82008-10-15 16:33:33 +00001diff -up xserver/configure.ac.vnc xserver/configure.ac
Adam Tkacc65827f2011-05-11 10:22:24 +00002--- xserver/configure.ac.vnc 2011-05-11 11:02:51.229669941 +0200
3+++ xserver/configure.ac 2011-05-11 11:03:07.754072695 +0200
DRC99b66432009-04-11 06:27:32 +00004@@ -31,7 +31,7 @@ RELEASE_DATE="5 November 2008"
Adam Tkacce1b4542008-11-20 15:02:32 +00005 REMEMBER_REMEMBER="The Fifth of November"
Adam Tkac4c0427f2008-03-21 18:56:48 +00006 AC_CONFIG_SRCDIR([Makefile.am])
7 AM_INIT_AUTOMAKE([dist-bzip2 foreign])
8-AM_MAINTAINER_MODE
DRC99b66432009-04-11 06:27:32 +00009+m4_pattern_allow([AC_DEFINE])
Adam Tkac4c0427f2008-03-21 18:56:48 +000010
11 dnl this gets generated by autoheader, and thus contains all the defines. we
12 dnl don't ever actually use it, internally.
DRC99b66432009-04-11 06:27:32 +000013@@ -54,6 +54,7 @@ dnl kdrive-config.h covers the kdrive DD
Adam Tkacce1b4542008-11-20 15:02:32 +000014 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
DRC99b66432009-04-11 06:27:32 +000021@@ -1010,7 +1011,7 @@ AC_DEFINE(SHAPE, 1, [Support SHAPE exten
Adam Tkac146d0b22009-04-03 08:44:09 +000022
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'
DRCceb45202011-06-22 00:33:13 +000030@@ -1220,6 +1221,9 @@ if test "x$XVFB" = xyes; then
Adam Tkacea74b2b2008-04-16 12:27:25 +000031 AC_SUBST([XVFB_SYS_LIBS])
32 fi
33
34+dnl Xvnc DDX
Pierre Ossmanef27ba12009-03-18 17:22:30 +000035+AC_SUBST([XVNC_CPPFLAGS], ["-DHAVE_DIX_CONFIG_H $XEXT_INC $FB_INC $MI_INC $RENDER_INC $RANDR_INC"])
Adam Tkacea74b2b2008-04-16 12:27:25 +000036+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
DRCceb45202011-06-22 00:33:13 +000040@@ -1314,6 +1318,8 @@ xorg_bus_ppcpci=no
Adam Tkac60909b52009-02-25 10:53:36 +000041 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'
DRCceb45202011-06-22 00:33:13 +000049@@ -1521,7 +1527,6 @@ if test "x$XORG" = xyes -o "x$XGL" = xye
Adam Tkac60909b52009-02-25 10:53:36 +000050 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])
DRCceb45202011-06-22 00:33:13 +000057@@ -2184,6 +2189,7 @@ hw/dmx/input/Makefile
Adam Tkac4c0427f2008-03-21 18:56:48 +000058 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 Tkac80c67e82008-10-15 16:33:33 +000065diff -up xserver/hw/Makefile.am.vnc xserver/hw/Makefile.am
Adam Tkacc65827f2011-05-11 10:22:24 +000066--- 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 Tkac80c67e82008-10-15 16:33:33 +000068@@ -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
78diff -up xserver/mi/miinitext.c.vnc xserver/mi/miinitext.c
Adam Tkacc65827f2011-05-11 10:22:24 +000079--- 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 Tkac0c2f4932008-10-15 15:55:06 +000082 #ifdef MITMISC
83 extern void MITMiscExtensionInit(INITARGS);
84 #endif
Adam Tkacc65827f2011-05-11 10:22:24 +000085+#ifdef TIGERVNC
Adam Tkac0c2f4932008-10-15 15:55:06 +000086+extern void vncExtensionInit(INITARGS);
Adam Tkacc65827f2011-05-11 10:22:24 +000087+#endif
Adam Tkac0c2f4932008-10-15 15:55:06 +000088 #ifdef XIDLE
89 extern void XIdleExtensionInit(INITARGS);
90 #endif
Adam Tkacc65827f2011-05-11 10:22:24 +000091@@ -566,6 +569,9 @@ InitExtensions(argc, argv)
Adam Tkac0c2f4932008-10-15 15:55:06 +000092 #ifdef MITMISC
93 if (!noMITMiscExtension) MITMiscExtensionInit();
94 #endif
Adam Tkacc65827f2011-05-11 10:22:24 +000095+#ifdef TIGERVNC
Adam Tkac0c2f4932008-10-15 15:55:06 +000096+ vncExtensionInit();
Adam Tkacc65827f2011-05-11 10:22:24 +000097+#endif
Adam Tkac0c2f4932008-10-15 15:55:06 +000098 #ifdef XIDLE
99 if (!noXIdleExtension) XIdleExtensionInit();
100 #endif
Pierre Ossman4ce51ff2011-10-25 15:13:13 +0000101--- 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