public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] gentoo commit in src/patchsets/tigervnc/1.3.1: 001_cookie.patch 005_ldnow.patch 010_gethomedir.patch 015_rh692048.patch 020_setcursor-crash.patch 025_inetd-nowait.patch 030_manpages.patch 035_getmaster.patch 040_format-security-patch.patch 045_zrle-crash.patch 050_cursor.patch 055_xstartup.patch 060_inputreset.patch 065_pointersync.patch 0999_server_xserver-1.14-rebased.patch 1000_server_xserver-1.15.patch 1005_server_xserver-1.16.patch 1006_server_xserver-1.16-2.patch
@ 2014-09-20 10:50 Raul Porcel (armin76)
  0 siblings, 0 replies; only message in thread
From: Raul Porcel (armin76) @ 2014-09-20 10:50 UTC (permalink / raw
  To: gentoo-commits

armin76     14/09/20 10:50:07

  Added:                001_cookie.patch 005_ldnow.patch
                        010_gethomedir.patch 015_rh692048.patch
                        020_setcursor-crash.patch 025_inetd-nowait.patch
                        030_manpages.patch 035_getmaster.patch
                        040_format-security-patch.patch
                        045_zrle-crash.patch 050_cursor.patch
                        055_xstartup.patch 060_inputreset.patch
                        065_pointersync.patch
                        0999_server_xserver-1.14-rebased.patch
                        1000_server_xserver-1.15.patch
                        1005_server_xserver-1.16.patch
                        1006_server_xserver-1.16-2.patch
  Log:
  Add patchset for 1.3.1

Revision  Changes    Path
1.1                  src/patchsets/tigervnc/1.3.1/001_cookie.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/tigervnc/1.3.1/001_cookie.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/tigervnc/1.3.1/001_cookie.patch?rev=1.1&content-type=text/plain

Index: 001_cookie.patch
===================================================================
diff -up tigervnc-1.0.90-20091221svn3929/unix/vncserver.cookie tigervnc-1.0.90-20091221svn3929/unix/vncserver
--- tigervnc-1.0.90-20091221svn3929/unix/vncserver.cookie	2009-11-12 11:39:54.000000000 +0100
+++ tigervnc-1.0.90-20091221svn3929/unix/vncserver	2009-12-21 16:15:01.907799091 +0100
@@ -189,27 +189,12 @@ $vncPort = 5900 + $displayNumber;
 $desktopLog = "$vncUserDir/$host:$displayNumber.log";
 unlink($desktopLog);
 
-# Make an X server cookie - use /dev/urandom on systems that have it,
-# otherwise use perl's random number generator, seeded with the sum
-# of the current time, our PID and part of the encrypted form of the password.
-
-my $cookie = "";
-if (open(URANDOM, '<', '/dev/urandom')) {
-  my $randata;
-  if (sysread(URANDOM, $randata, 16) == 16) {
-    $cookie = unpack 'h*', $randata;
-  }
-  close(URANDOM);
-}
-if ($cookie eq "") {
-  srand(time+$$+unpack("L",`cat $vncUserDir/passwd`));
-  for (1..16) {
-    $cookie .= sprintf("%02x", int(rand(256)) % 256);
-  }
-}
-
-system("xauth -f $xauthorityFile add $host:$displayNumber . $cookie");
-system("xauth -f $xauthorityFile add $host/unix:$displayNumber . $cookie"); 
+# Make an X server cookie - use mcookie
+$cookie = `/usr/bin/mcookie`;
+open (XAUTH, "|xauth -f $xauthorityFile source -");
+print XAUTH "add $host:$displayNumber . $cookie\n";
+print XAUTH "add $host/unix:$displayNumber . $cookie\n";
+close XAUTH;
 
 if ($opt{'-name'}) {
     $desktopName = $opt{'-name'};



1.1                  src/patchsets/tigervnc/1.3.1/005_ldnow.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/tigervnc/1.3.1/005_ldnow.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/tigervnc/1.3.1/005_ldnow.patch?rev=1.1&content-type=text/plain

Index: 005_ldnow.patch
===================================================================
diff -up tigervnc-1.2.0/unix/xserver/hw/vnc/Makefile.am.ldnow tigervnc-1.2.0/unix/xserver/hw/vnc/Makefile.am
--- tigervnc-1.2.0/unix/xserver/hw/vnc/Makefile.am.ldnow	2011-10-31 09:14:40.000000000 +0100
+++ tigervnc-1.2.0/unix/xserver/hw/vnc/Makefile.am	2012-08-22 15:51:47.013241342 +0200
@@ -53,7 +53,7 @@ libvnc_la_CPPFLAGS = $(XVNC_CPPFLAGS) -I
 	-I$(top_srcdir)/include \
 	${XSERVERLIBS_CFLAGS} -I$(includedir)
 
-libvnc_la_LDFLAGS = -module -avoid-version
+libvnc_la_LDFLAGS = -module -avoid-version -Wl,-z,now
 
 libvnc_la_LIBADD = libvnccommon.la $(COMMON_LIBS)
 



1.1                  src/patchsets/tigervnc/1.3.1/010_gethomedir.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/tigervnc/1.3.1/010_gethomedir.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/tigervnc/1.3.1/010_gethomedir.patch?rev=1.1&content-type=text/plain

Index: 010_gethomedir.patch
===================================================================
diff -up tigervnc-1.2.0/unix/xserver/hw/vnc/Makefile.am.gethomedir tigervnc-1.2.0/unix/xserver/hw/vnc/Makefile.am
--- tigervnc-1.2.0/unix/xserver/hw/vnc/Makefile.am.gethomedir	2012-08-22 15:52:01.876216608 +0200
+++ tigervnc-1.2.0/unix/xserver/hw/vnc/Makefile.am	2012-08-22 15:52:45.973143684 +0200
@@ -5,6 +5,7 @@ RFB_LIB=$(LIB_DIR)/rfb/librfb.la
 RDR_LIB=$(LIB_DIR)/rdr/librdr.la
 NETWORK_LIB=$(LIB_DIR)/network/libnetwork.la
 XREGION_LIB=$(LIB_DIR)/Xregion/libXregion.la
+OS_LIB=$(LIB_DIR)/os/libos.la
 COMMON_LIBS=$(NETWORK_LIB) $(RFB_LIB) $(RDR_LIB) $(XREGION_LIB)
 
 noinst_LTLIBRARIES = libvnccommon.la
@@ -55,7 +56,7 @@ libvnc_la_CPPFLAGS = $(XVNC_CPPFLAGS) -I
 
 libvnc_la_LDFLAGS = -module -avoid-version -Wl,-z,now
 
-libvnc_la_LIBADD = libvnccommon.la $(COMMON_LIBS)
+libvnc_la_LIBADD = libvnccommon.la $(COMMON_LIBS) $(OS_LIB)
 
 EXTRA_DIST = Xvnc.man
 



1.1                  src/patchsets/tigervnc/1.3.1/015_rh692048.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/tigervnc/1.3.1/015_rh692048.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/tigervnc/1.3.1/015_rh692048.patch?rev=1.1&content-type=text/plain

Index: 015_rh692048.patch
===================================================================
diff -up tigervnc-1.0.90-20110314svn4359/common/rfb/SecurityClient.cxx.rh690245 tigervnc-1.0.90-20110314svn4359/common/rfb/SecurityClient.cxx
--- tigervnc-1.0.90-20110314svn4359/common/rfb/SecurityClient.cxx.rh690245	2011-02-21 14:14:16.000000000 +0100
+++ tigervnc-1.0.90-20110314svn4359/common/rfb/SecurityClient.cxx	2011-03-31 09:47:34.519099718 +0200
@@ -45,7 +45,7 @@ StringParameter SecurityClient::secTypes
 ("SecurityTypes",
  "Specify which security scheme to use (None, VncAuth)",
 #ifdef HAVE_GNUTLS
- "X509Plain,TLSPlain,X509Vnc,TLSVnc,X509None,TLSNone,VncAuth,None",
+ "VeNCrypt,X509Plain,TLSPlain,X509Vnc,TLSVnc,X509None,TLSNone,VncAuth,None",
 #else
  "VncAuth,None",
 #endif
diff -up tigervnc-1.0.90-20110314svn4359/common/rfb/Security.cxx.rh690245 tigervnc-1.0.90-20110314svn4359/common/rfb/Security.cxx
--- tigervnc-1.0.90-20110314svn4359/common/rfb/Security.cxx.rh690245	2011-02-21 14:14:16.000000000 +0100
+++ tigervnc-1.0.90-20110314svn4359/common/rfb/Security.cxx	2011-03-31 09:47:34.519099718 +0200
@@ -67,7 +67,6 @@ const std::list<rdr::U8> Security::GetEn
   list<rdr::U8> result;
   list<U32>::iterator i;
 
-  result.push_back(secTypeVeNCrypt);
   for (i = enabledSecTypes.begin(); i != enabledSecTypes.end(); i++)
     if (*i < 0x100)
       result.push_back(*i);
@@ -105,8 +104,6 @@ bool Security::IsSupported(U32 secType)
   for (i = enabledSecTypes.begin(); i != enabledSecTypes.end(); i++)
     if (*i == secType)
       return true;
-  if (secType == secTypeVeNCrypt)
-    return true;
 
   return false;
 }
diff -up tigervnc-1.0.90-20110314svn4359/common/rfb/SecurityServer.cxx.rh690245 tigervnc-1.0.90-20110314svn4359/common/rfb/SecurityServer.cxx
--- tigervnc-1.0.90-20110314svn4359/common/rfb/SecurityServer.cxx.rh690245	2011-02-21 14:50:17.000000000 +0100
+++ tigervnc-1.0.90-20110314svn4359/common/rfb/SecurityServer.cxx	2011-03-31 10:06:43.595362302 +0200
@@ -39,7 +39,7 @@ StringParameter SecurityServer::secTypes
 ("SecurityTypes",
  "Specify which security scheme to use (None, VncAuth)",
 #ifdef HAVE_GNUTLS
- "VncAuth,TLSVnc",
+ "VncAuth",
 #else
  "VncAuth",
 #endif



1.1                  src/patchsets/tigervnc/1.3.1/020_setcursor-crash.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/tigervnc/1.3.1/020_setcursor-crash.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/tigervnc/1.3.1/020_setcursor-crash.patch?rev=1.1&content-type=text/plain

Index: 020_setcursor-crash.patch
===================================================================
diff -up tigervnc-1.2.80-20130314svn5065/unix/xserver/hw/vnc/XserverDesktop.cc.jx tigervnc-1.2.80-20130314svn5065/unix/xserver/hw/vnc/XserverDesktop.cc
--- tigervnc-1.2.80-20130314svn5065/unix/xserver/hw/vnc/XserverDesktop.cc.jx	2012-08-27 09:02:47.000000000 -0400
+++ tigervnc-1.2.80-20130314svn5065/unix/xserver/hw/vnc/XserverDesktop.cc	2013-06-17 09:42:14.310725996 -0400
@@ -479,6 +479,9 @@ void XserverDesktop::setCursor(CursorPtr
       }
     } else {
 #endif
+      if (!cmap)
+	return;
+
       xColorItem fg, bg;
       fg.red   = cursor->foreRed;
       fg.green = cursor->foreGreen;



1.1                  src/patchsets/tigervnc/1.3.1/025_inetd-nowait.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/tigervnc/1.3.1/025_inetd-nowait.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/tigervnc/1.3.1/025_inetd-nowait.patch?rev=1.1&content-type=text/plain

Index: 025_inetd-nowait.patch
===================================================================
diff -up tigervnc-1.2.80-20130314svn5065/common/network/TcpSocket.cxx.inetd-nowait tigervnc-1.2.80-20130314svn5065/common/network/TcpSocket.cxx
--- tigervnc-1.2.80-20130314svn5065/common/network/TcpSocket.cxx.inetd-nowait	2013-05-23 12:20:35.836386218 +0100
+++ tigervnc-1.2.80-20130314svn5065/common/network/TcpSocket.cxx	2013-05-23 12:23:04.698003213 +0100
@@ -325,18 +325,12 @@ bool TcpSocket::cork(int sock, bool enab
 #endif
 }
 
-bool TcpSocket::isSocket(int sock)
+bool TcpSocket::isListening(int sock)
 {
-  struct sockaddr_in info;
-  socklen_t info_size = sizeof(info);
-  return getsockname(sock, (struct sockaddr *)&info, &info_size) >= 0;
-}
-
-bool TcpSocket::isConnected(int sock)
-{
-  struct sockaddr_in info;
-  socklen_t info_size = sizeof(info);
-  return getpeername(sock, (struct sockaddr *)&info, &info_size) >= 0;
+  int listening = 0;
+  socklen_t listening_size = sizeof(listening);
+  return getsockopt(sock, SOL_SOCKET, SO_ACCEPTCONN, &listening,
+                    &listening_size) >= 0 && listening;
 }
 
 int TcpSocket::getSockPort(int sock)
diff -up tigervnc-1.2.80-20130314svn5065/common/network/TcpSocket.h.inetd-nowait tigervnc-1.2.80-20130314svn5065/common/network/TcpSocket.h
--- tigervnc-1.2.80-20130314svn5065/common/network/TcpSocket.h.inetd-nowait	2013-05-23 12:20:35.835386220 +0100
+++ tigervnc-1.2.80-20130314svn5065/common/network/TcpSocket.h	2013-05-23 12:21:58.861730647 +0100
@@ -57,8 +57,7 @@ namespace network {
 
     static bool enableNagles(int sock, bool enable);
     static bool cork(int sock, bool enable);
-    static bool isSocket(int sock);
-    static bool isConnected(int sock);
+    static bool isListening(int sock);
     static int getSockPort(int sock);
   private:
     bool closeFd;
diff -up tigervnc-1.2.80-20130314svn5065/unix/xserver/hw/vnc/vncExtInit.cc.inetd-nowait tigervnc-1.2.80-20130314svn5065/unix/xserver/hw/vnc/vncExtInit.cc
--- tigervnc-1.2.80-20130314svn5065/unix/xserver/hw/vnc/vncExtInit.cc.inetd-nowait	2013-03-14 17:11:22.000000000 +0000
+++ tigervnc-1.2.80-20130314svn5065/unix/xserver/hw/vnc/vncExtInit.cc	2013-05-23 12:21:10.545530308 +0100
@@ -225,8 +225,7 @@ void vncExtensionInit()
         network::TcpListener* listener = 0;
         network::TcpListener* httpListener = 0;
         if (scr == 0 && vncInetdSock != -1) {
-          if (network::TcpSocket::isSocket(vncInetdSock) &&
-              !network::TcpSocket::isConnected(vncInetdSock))
+          if (network::TcpSocket::isListening(vncInetdSock))
           {
             listener = new network::TcpListener(NULL, 0, 0, vncInetdSock, true);
             vlog.info("inetd wait");



1.1                  src/patchsets/tigervnc/1.3.1/030_manpages.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/tigervnc/1.3.1/030_manpages.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/tigervnc/1.3.1/030_manpages.patch?rev=1.1&content-type=text/plain

Index: 030_manpages.patch
===================================================================
diff -up tigervnc-1.2.80-20130314svn5065/unix/vncserver.man.manpages tigervnc-1.2.80-20130314svn5065/unix/vncserver.man
--- tigervnc-1.2.80-20130314svn5065/unix/vncserver.man.manpages	2013-07-03 12:44:03.820392690 +0100
+++ tigervnc-1.2.80-20130314svn5065/unix/vncserver.man	2013-07-03 12:44:44.222587028 +0100
@@ -92,6 +92,10 @@ argument.  Thus, you can invoke "vncserv
 end of your xstartup file after a particular application exits.
 
 .TP
+.B \-list
+Lists running VNC servers.
+
+.TP
 .B \-fp \fIfont-path\fP
 If the vncserver script detects that the X Font Server (XFS) is running, it
 will attempt to start Xvnc and configure Xvnc to use XFS for font handling.
diff -up tigervnc-1.2.80-20130314svn5065/unix/vncserver.manpages tigervnc-1.2.80-20130314svn5065/unix/vncserver
--- tigervnc-1.2.80-20130314svn5065/unix/vncserver.manpages	2013-07-03 12:39:08.754980784 +0100
+++ tigervnc-1.2.80-20130314svn5065/unix/vncserver	2013-07-03 12:43:57.932364387 +0100
@@ -551,6 +551,7 @@ sub Usage
 	"                 [-geometry <width>x<height>]\n".
 	"                 [-pixelformat rgbNNN|bgrNNN]\n".
 	"                 [-fp <font-path>]\n".
+	"                 [-cc <visual>]\n".
 	"                 [-fg]\n".
 	"                 [-autokill]\n".
 	"                 <Xvnc-options>...\n\n".
diff -up tigervnc-1.2.80-20130314svn5065/unix/x0vncserver/x0vncserver.cxx.manpages tigervnc-1.2.80-20130314svn5065/unix/x0vncserver/x0vncserver.cxx
diff -up tigervnc-1.2.80-20130314svn5065/unix/x0vncserver/x0vncserver.man.manpages tigervnc-1.2.80-20130314svn5065/unix/x0vncserver/x0vncserver.man
--- tigervnc-1.2.80-20130314svn5065/unix/x0vncserver/x0vncserver.man.manpages	2013-07-03 12:46:17.814038117 +0100
+++ tigervnc-1.2.80-20130314svn5065/unix/x0vncserver/x0vncserver.man	2013-07-03 12:58:32.814621597 +0100
@@ -68,7 +68,13 @@ to accept connections from any IP addres
 Specify which security scheme to use for incoming connections.  Valid values
 are \fBNone\fP and \fBVncAuth\fP.  Default is \fBVncAuth\fP.
 .TP
-.B PasswordFile
+.B pam_server
+Service name for pam password validation (default is "vnc").
+.TP
+.B PlainUsers
+Users permission to access via Plain security type.
+.TP
+.B PasswordFile, rfbauth
 Password file for VNC authentication.  There is no default, you should
 specify the password file explicitly.  Password file should be created with
 the \fBvncpasswd\fP(1) utility.
@@ -113,6 +119,16 @@ Accept key press and release events from
 .B AcceptPointerEvents
 Accept pointer events from clients.  Default is on.
 .TP
+.B AcceptCutText
+Accept clipboard updates from clients.  Default is on.
+.TP
+.B MaxCutText
+Maximum permitted length of an incoming clipboard update (default is
+262144).
+.TP
+.B SendCutText
+Send clipboard changes to clients.  Default is on.
+.TP
 .B RemapKeys
 Comma-separated list of incoming keysyms to remap.  Mappings are expressed as
 two hex values, prefixed by \fB0x\fP, and separated by \fB->\fP (`dash' and
@@ -154,23 +170,6 @@ clients may choose video selection thems
 \fBVideoArea\fP parameter will take effect.  If the argument is empty, no
 video area is set (this is the default).
 .TP
-.B VideoPriority
-Specify the priority of sending video updates.  \fBx0vncserver\fP can be
-instructed to treat certain rectangular part of the screen as a video area
-and handle it in a special way for improved performance (see documentation on
-the \fBVideoArea\fP parameter).  \fBVideoPriority\fP value controls how often
-video area will be sent to clients as compared to the rest of the screen.
-The priority must be an integer between 0 and 8, and the default value is 2.
-
-\fBVideoPriority\fP set to 1 gives the same priority both to video and to
-other pixels.  Higher values give more priority to video.  For example, the
-value 5 specifies that the rate of sending video will be five times higher
-than the rate of updating the rest of the screen.  If \fBVideoPriority\fP is
-set to 0, it gives equal priority to video and other updates (just like the
-value 1) and also disables special encoding for video data.  In other words,
-\fBVideoPriority\fP video area will be sent as a part of other screen
-contents.
-.TP
 .B CompareFB
 Perform pixel comparison on framebuffer to reduce unnecessary updates.
 Default is on.
@@ -185,15 +184,6 @@ This enables system-specific access to c
 screen (the default X visual often provides 256 colors).  Also, in overlay
 mode, \fBx0vncserver\fP can show correct mouse cursor.  Default is on.
 .TP
-.B UseHardwareJPEG
-Use hardware-accelerated JPEG compressor for video if available.
-\fBx0vncserver\fP can be instructed to treat certain rectangular part of the
-screen as a video area and handle it in a special way for improved
-performance.  If the client supports Tight encoding and JPEG compression,
-such video areas will be sent as JPEG-encoded rectangles.  And if this option
-is on, compression will be hardware-accelerated (currently, supported only in
-SGI/IRIX equipped with appropriate hardware).  Default is on.
-.TP
 .B ZlibLevel
 Zlib compression level for ZRLE encoding (it does not affect Tight encoding).
 Acceptable values are between 0 and 9.  Default is to use the standard
@@ -222,6 +212,18 @@ Terminate after \fIN\fP seconds of user
 .B ClientWaitTimeMillis
 The number of milliseconds to wait for a client which is no longer
 responding.  Default is 20000.
+.TP
+.B DeferUpdate
+Time in milliseconds to defer updates (default is 1).
+.TP
+.B AlwaysSetDeferUpdateTimer
+Always reset the defer update timer on every change.
+.TP
+.B x509key
+Path to key of the x509 certificate in PEM format.
+.TP
+.B 509cert
+Path to x509 certificate in PEM format.
 .SH SEE ALSO
 .BR Xvnc (1),
 .BR vncpasswd (1),
diff -up tigervnc-1.2.80-20130314svn5065/vncviewer/vncviewer.cxx.manpages tigervnc-1.2.80-20130314svn5065/vncviewer/vncviewer.cxx
--- tigervnc-1.2.80-20130314svn5065/vncviewer/vncviewer.cxx.manpages	2013-07-03 12:00:58.005856116 +0100
+++ tigervnc-1.2.80-20130314svn5065/vncviewer/vncviewer.cxx	2013-07-03 12:04:26.083023050 +0100
@@ -261,6 +261,11 @@ static void usage(const char *programNam
           "       %s [parameters] -listen [port] [parameters]\n",
           programName, programName);
   fprintf(stderr,"\n"
+	  "Options:\n\n"
+	  "  -display Xdisplay - Specifies the X display for the viewer window\n"
+	  "  -geometry geometry - Standard X position and sizing specification.\n");
+
+  fprintf(stderr,"\n"
           "Parameters can be turned on with -<param> or off with -<param>=0\n"
           "Parameters which take a value can be specified as "
           "-<param> <value>\n"
diff -up tigervnc-1.2.80-20130314svn5065/vncviewer/vncviewer.man.manpages tigervnc-1.2.80-20130314svn5065/vncviewer/vncviewer.man
--- tigervnc-1.2.80-20130314svn5065/vncviewer/vncviewer.man.manpages	2013-07-03 11:40:48.905078300 +0100
+++ tigervnc-1.2.80-20130314svn5065/vncviewer/vncviewer.man	2013-07-03 12:00:13.116604372 +0100
@@ -113,12 +113,53 @@ Xvnc supports reverse connections with a
 .B vncconfig.
 
 .TP
-.B \-passwd \fIpassword-file\fP
+.B \-passwd \fIpassword-file\fP, \-PasswordFile \fIpassword-file\fP
 If you are on a filesystem which gives you access to the password file used by
 the server, you can specify it here to avoid typing it in.  It will usually be
 "~/.vnc/passwd".
 
 .TP
+.B \-DotWhenNoCursor
+Show the dot cursor when the server sends an invisible cursor.
+
+.TP
+.B \-PointerEventInterval
+Time in milliseconds to rate-limit successive pointer events.
+
+.TP
+.B \-ImprovedHextile
+Try harder to compress data (default).
+
+.TP
+.B \-QualityLevel \fIlevel\fP
+JPEG quality level (default is 8).
+
+.TP
+.B \-NoJPEG
+Disable lossy JPEG compression in Tight encoding.
+
+.TP
+.B CompressLevel \fIlevel\fP
+Use specified compression level (default is 2).
+
+.TP
+.B CustomCompressLevel \fIlevel\fP
+Use custom compression level. Default is CompressLevel is specified.
+
+.TP
+.B \-SendPrimary
+Send the primary selection and cut buffer to the server as well as the
+clipboard selection (default).
+
+.TP
+.B \-SendClipboard
+Send clipboard changes to the server (default).
+
+.TP
+.B \-AcceptClipboard
+Accept clipboard changes from the server (default).
+
+.TP
 .B \-Shared
 When you make a connection to a VNC server, all other existing connections are
 normally closed.  This option requests that they be left open, allowing you to
@@ -140,6 +181,19 @@ Maximize viewer window.
 Start in full-screen mode.
 
 .TP
+.B \-FullScreenAllMonitors
+Enable full screen over all monitors (default).
+
+.TP
+.B \-FullscreenSystemKeys
+Pass special keys directly to the server in full-screen mode.
+
+.TP
+.B \-RemoteResize
+Dynamically resize the remote desktop size as the size of the local
+client window changes (default).
+
+.TP
 .B \-DesktopSize \fIwidth\fPx\fIheight\fP
 Instead of keeping the existing remote screen size, the client will attempt to
 switch to the specified since when connecting. If the server does not support
@@ -214,6 +268,22 @@ command is executed with the environment
 host, the port number on the remote host, and the gateway machine
 respectively.
 
+.TP
+\fB\-ZlibLevel\fR \fIlevel\fR
+Zlib compression level.
+
+.TP
+.B \-x509crl \fIfile\fP
+X509 CRL file
+
+.TP
+.B \-x509ca \fIfile\fP
+X509 CA certificate
+
+.TP
+.B \-SecurityTypes \fItypes\fP
+Specify which security scheme to use.
+
 .SH SEE ALSO
 .BR Xvnc (1),
 .BR vncpasswd (1),



1.1                  src/patchsets/tigervnc/1.3.1/035_getmaster.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/tigervnc/1.3.1/035_getmaster.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/tigervnc/1.3.1/035_getmaster.patch?rev=1.1&content-type=text/plain

Index: 035_getmaster.patch
===================================================================
diff -up tigervnc-1.3.0/unix/xserver/hw/vnc/InputXKB.cc.getmaster tigervnc-1.3.0/unix/xserver/hw/vnc/InputXKB.cc
--- tigervnc-1.3.0/unix/xserver/hw/vnc/InputXKB.cc.getmaster	2013-07-12 09:30:50.551459439 +0100
+++ tigervnc-1.3.0/unix/xserver/hw/vnc/InputXKB.cc	2013-07-12 09:38:31.037480528 +0100
@@ -232,10 +232,7 @@ void InputDevice::PrepareInputDevices(vo
 
 unsigned InputDevice::getKeyboardState(void)
 {
-	DeviceIntPtr master;
-
-	master = GetMaster(keyboardDev, KEYBOARD_OR_FLOAT);
-	return XkbStateFieldFromRec(&master->key->xkbInfo->state);
+	return XkbStateFieldFromRec(&keyboardDev->master->key->xkbInfo->state);
 }
 
 unsigned InputDevice::getLevelThreeMask(void)
@@ -256,7 +253,7 @@ unsigned InputDevice::getLevelThreeMask(
 			return 0;
 	}
 
-	xkb = GetMaster(keyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc;
+	xkb = keyboardDev->master->key->xkbInfo->desc;
 
 	act = XkbKeyActionPtr(xkb, keycode, state);
 	if (act == NULL)
@@ -281,7 +278,7 @@ KeyCode InputDevice::pressShift(void)
 	if (state & ShiftMask)
 		return 0;
 
-	xkb = GetMaster(keyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc;
+	xkb = keyboardDev->master->key->xkbInfo->desc;
 	for (key = xkb->min_key_code; key <= xkb->max_key_code; key++) {
 		XkbAction *act;
 		unsigned char mask;
@@ -318,7 +315,7 @@ std::list<KeyCode> InputDevice::releaseS
 	if (!(state & ShiftMask))
 		return keys;
 
-	master = GetMaster(keyboardDev, KEYBOARD_OR_FLOAT);
+	master = keyboardDev->master;
 	xkb = master->key->xkbInfo->desc;
 	for (key = xkb->min_key_code; key <= xkb->max_key_code; key++) {
 		XkbAction *act;
@@ -371,7 +368,7 @@ KeyCode InputDevice::pressLevelThree(voi
 			return 0;
 	}
 
-	xkb = GetMaster(keyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc;
+	xkb = keyboardDev->master->key->xkbInfo->desc;
 
 	act = XkbKeyActionPtr(xkb, keycode, state);
 	if (act == NULL)
@@ -399,7 +396,7 @@ std::list<KeyCode> InputDevice::releaseL
 	if (!(state & mask))
 		return keys;
 
-	master = GetMaster(keyboardDev, KEYBOARD_OR_FLOAT);
+	master = keyboardDev->master;
 	xkb = master->key->xkbInfo->desc;
 	for (key = xkb->min_key_code; key <= xkb->max_key_code; key++) {
 		XkbAction *act;
@@ -440,7 +437,7 @@ KeyCode InputDevice::keysymToKeycode(Key
 	if (new_state != NULL)
 		*new_state = state;
 
-	xkb = GetMaster(keyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc;
+	xkb = keyboardDev->master->key->xkbInfo->desc;
 	for (key = xkb->min_key_code; key <= xkb->max_key_code; key++) {
 		unsigned int state_out;
 		KeySym dummy;
@@ -497,7 +494,7 @@ bool InputDevice::isLockModifier(KeyCode
 	XkbDescPtr xkb;
 	XkbAction *act;
 
-	xkb = GetMaster(keyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc;
+	xkb = keyboardDev->master->key->xkbInfo->desc;
 
 	act = XkbKeyActionPtr(xkb, keycode, state);
 	if (act == NULL)
@@ -535,7 +532,7 @@ bool InputDevice::isAffectedByNumLock(Ke
 	if (numlock_keycode == 0)
 		return false;
 
-	xkb = GetMaster(keyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc;
+	xkb = keyboardDev->master->key->xkbInfo->desc;
 
 	act = XkbKeyActionPtr(xkb, numlock_keycode, state);
 	if (act == NULL)
@@ -569,7 +566,7 @@ KeyCode InputDevice::addKeysym(KeySym ke
 	KeySym *syms;
 	KeySym upper, lower;
 
-	master = GetMaster(keyboardDev, KEYBOARD_OR_FLOAT);
+	master = keyboardDev->master;
 	xkb = master->key->xkbInfo->desc;
 	for (key = xkb->max_key_code; key >= xkb->min_key_code; key--) {
 		if (XkbKeyNumGroups(xkb, key) == 0)



1.1                  src/patchsets/tigervnc/1.3.1/040_format-security-patch.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/tigervnc/1.3.1/040_format-security-patch.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/tigervnc/1.3.1/040_format-security-patch.patch?rev=1.1&content-type=text/plain

Index: 040_format-security-patch.patch
===================================================================
diff -up tigervnc-1.3.0/vncviewer/vncviewer.cxx.format-security tigervnc-1.3.0/vncviewer/vncviewer.cxx
--- tigervnc-1.3.0/vncviewer/vncviewer.cxx.format-security	2013-12-03 16:47:04.802800182 +0000
+++ tigervnc-1.3.0/vncviewer/vncviewer.cxx	2013-12-03 16:47:08.680820024 +0000
@@ -309,7 +309,7 @@ interpretViaParam(char *remoteHost, int
 
   snprintf(vncServerName, VNCSERVERNAMELEN, "localhost::%d", localPort);
   vncServerName[VNCSERVERNAMELEN - 1] = '\0';
-  vlog.error(vncServerName);
+  vlog.error("%s", vncServerName);
 
   return 0;
 }



1.1                  src/patchsets/tigervnc/1.3.1/045_zrle-crash.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/tigervnc/1.3.1/045_zrle-crash.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/tigervnc/1.3.1/045_zrle-crash.patch?rev=1.1&content-type=text/plain

Index: 045_zrle-crash.patch
===================================================================
diff -up tigervnc-1.3.0/common/rfb/ZRLEEncoder.cxx.zrle-crash tigervnc-1.3.0/common/rfb/ZRLEEncoder.cxx
--- tigervnc-1.3.0/common/rfb/ZRLEEncoder.cxx.zrle-crash	2013-07-01 13:41:59.000000000 +0100
+++ tigervnc-1.3.0/common/rfb/ZRLEEncoder.cxx	2013-12-12 17:30:48.510007365 +0000
@@ -55,16 +55,19 @@ Encoder* ZRLEEncoder::create(SMsgWriter*
 }
 
 ZRLEEncoder::ZRLEEncoder(SMsgWriter* writer_)
-  : writer(writer_), zos(0,0,zlibLevel)
+  : writer(writer_)
 {
   if (sharedMos)
     mos = sharedMos;
   else
     mos = new rdr::MemOutStream(129*1024);
+
+  zos = new rdr::ZlibOutStream(0, 0, zlibLevel);
 }
 
 ZRLEEncoder::~ZRLEEncoder()
 {
+  delete zos;
   if (!sharedMos)
     delete mos;
 }
@@ -78,10 +81,10 @@ bool ZRLEEncoder::writeRect(const Rect&
 
   switch (writer->bpp()) {
   case 8:
-    wroteAll = zrleEncode8(r, mos, &zos, imageBuf, maxLen, actual, ig);
+    wroteAll = zrleEncode8(r, mos, zos, imageBuf, maxLen, actual, ig);
     break;
   case 16:
-    wroteAll = zrleEncode16(r, mos, &zos, imageBuf, maxLen, actual, ig);
+    wroteAll = zrleEncode16(r, mos, zos, imageBuf, maxLen, actual, ig);
     break;
   case 32:
     {
@@ -94,16 +97,16 @@ bool ZRLEEncoder::writeRect(const Rect&
       if ((fitsInLS3Bytes && pf.isLittleEndian()) ||
           (fitsInMS3Bytes && pf.isBigEndian()))
       {
-        wroteAll = zrleEncode24A(r, mos, &zos, imageBuf, maxLen, actual, ig);
+        wroteAll = zrleEncode24A(r, mos, zos, imageBuf, maxLen, actual, ig);
       }
       else if ((fitsInLS3Bytes && pf.isBigEndian()) ||
                (fitsInMS3Bytes && pf.isLittleEndian()))
       {
-        wroteAll = zrleEncode24B(r, mos, &zos, imageBuf, maxLen, actual, ig);
+        wroteAll = zrleEncode24B(r, mos, zos, imageBuf, maxLen, actual, ig);
       }
       else
       {
-        wroteAll = zrleEncode32(r, mos, &zos, imageBuf, maxLen, actual, ig);
+        wroteAll = zrleEncode32(r, mos, zos, imageBuf, maxLen, actual, ig);
       }
       break;
     }
diff -up tigervnc-1.3.0/common/rfb/ZRLEEncoder.h.zrle-crash tigervnc-1.3.0/common/rfb/ZRLEEncoder.h
--- tigervnc-1.3.0/common/rfb/ZRLEEncoder.h.zrle-crash	2013-07-01 13:42:01.000000000 +0100
+++ tigervnc-1.3.0/common/rfb/ZRLEEncoder.h	2013-12-12 17:30:48.510007365 +0000
@@ -45,7 +45,7 @@ namespace rfb {
   private:
     ZRLEEncoder(SMsgWriter* writer);
     SMsgWriter* writer;
-    rdr::ZlibOutStream zos;
+    rdr::ZlibOutStream* zos;
     rdr::MemOutStream* mos;
     static rdr::MemOutStream* sharedMos;
     static int maxLen;



1.1                  src/patchsets/tigervnc/1.3.1/050_cursor.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/tigervnc/1.3.1/050_cursor.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/tigervnc/1.3.1/050_cursor.patch?rev=1.1&content-type=text/plain

Index: 050_cursor.patch
===================================================================
diff -up tigervnc-1.3.0/vncviewer/Viewport.cxx.cursor tigervnc-1.3.0/vncviewer/Viewport.cxx
--- tigervnc-1.3.0/vncviewer/Viewport.cxx.cursor	2013-12-17 13:28:23.170400013 +0000
+++ tigervnc-1.3.0/vncviewer/Viewport.cxx	2013-12-17 13:29:46.095784064 +0000
@@ -931,7 +931,7 @@ void Viewport::popupContextMenu()
 
   // Back to our proper mouse pointer.
 #ifdef HAVE_FLTK_CURSOR
-  if (Fl::belowmouse() == this)
+  if (Fl::belowmouse() == this && cursor)
     window()->cursor(cursor, cursorHotspot.x, cursorHotspot.y);
 #endif
 



1.1                  src/patchsets/tigervnc/1.3.1/055_xstartup.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/tigervnc/1.3.1/055_xstartup.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/tigervnc/1.3.1/055_xstartup.patch?rev=1.1&content-type=text/plain

Index: 055_xstartup.patch
===================================================================
diff -up tigervnc-1.3.0/unix/vncserver.xstartup tigervnc-1.3.0/unix/vncserver
--- tigervnc-1.3.0/unix/vncserver.xstartup	2014-02-10 14:52:39.902673875 +0000
+++ tigervnc-1.3.0/unix/vncserver	2014-02-10 14:53:30.398847723 +0000
@@ -59,27 +59,7 @@ $defaultXStartup
     = ("#!/bin/sh\n\n".
        "unset SESSION_MANAGER\n".
        "unset DBUS_SESSION_BUS_ADDRESS\n".
-       "OS=`uname -s`\n".
-       "if [ \$OS = 'Linux' ]; then\n".
-       "  case \"\$WINDOWMANAGER\" in\n".
-       "    \*gnome\*)\n".
-       "      if [ -e /etc/SuSE-release ]; then\n".
-       "        PATH=\$PATH:/opt/gnome/bin\n".
-       "        export PATH\n".
-       "      fi\n".
-       "      ;;\n".
-       "  esac\n".
-       "fi\n".
-       "if [ -x /etc/X11/xinit/xinitrc ]; then\n".
-       "  exec /etc/X11/xinit/xinitrc\n".
-       "fi\n".
-       "if [ -f /etc/X11/xinit/xinitrc ]; then\n".
-       "  exec sh /etc/X11/xinit/xinitrc\n".
-       "fi\n".
-       "[ -r \$HOME/.Xresources ] && xrdb \$HOME/.Xresources\n".
-       "xsetroot -solid grey\n".
-       "xterm -geometry 80x24+10+10 -ls -title \"\$VNCDESKTOP Desktop\" &\n".
-       "twm &\n");
+       "exec /etc/X11/xinit/xinitrc\n");
 
 chop($host = `uname -n`);
 



1.1                  src/patchsets/tigervnc/1.3.1/060_inputreset.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/tigervnc/1.3.1/060_inputreset.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/tigervnc/1.3.1/060_inputreset.patch?rev=1.1&content-type=text/plain

Index: 060_inputreset.patch
===================================================================
diff -up tigervnc-1.3.0/unix/xserver/hw/vnc/Input.cc.inputreset tigervnc-1.3.0/unix/xserver/hw/vnc/Input.cc
--- tigervnc-1.3.0/unix/xserver/hw/vnc/Input.cc.inputreset	2013-07-01 13:41:24.000000000 +0100
+++ tigervnc-1.3.0/unix/xserver/hw/vnc/Input.cc	2014-07-14 13:08:01.482660946 +0100
@@ -68,6 +68,9 @@ rfb::BoolParameter avoidShiftNumLock("Av
 
 #define BUTTONS 7
 
+class InputDevice *vncInputDevice;
+InputDevice InputDevice::singleton;
+
 /* Event queue is shared between all devices. */
 #if XORG == 15
 static xEvent *eventq = NULL;
@@ -116,11 +119,13 @@ static void enqueueEvents(DeviceIntPtr d
 }
 #endif /* XORG < 111 */
 
-InputDevice::InputDevice(rfb::VNCServerST *_server)
-	: server(_server), initialized(false), oldButtonMask(0)
+InputDevice::InputDevice()
+	: oldButtonMask(0)
 {
 	int i;
 
+	vncInputDevice = this;
+
 #if XORG < 111
 	initEventq();
 #endif
@@ -195,16 +200,12 @@ void InputDevice::PointerMove(const rfb:
 	cursorPos = pos;
 }
 
-void InputDevice::PointerSync(void)
+const rfb::Point &InputDevice::getPointerPos(void)
 {
-	if (cursorPos.equals(oldCursorPos))
-		return;
-
-	oldCursorPos = cursorPos;
-	server->setCursorPos(cursorPos);
+	return cursorPos;
 }
 
-static int pointerProc(DeviceIntPtr pDevice, int onoff)
+int InputDevice::pointerProc(DeviceIntPtr pDevice, int onoff)
 {
 	BYTE map[BUTTONS + 1];
 	DevicePtr pDev = (DevicePtr)pDevice;
@@ -229,6 +230,8 @@ static int pointerProc(DeviceIntPtr pDev
 		btn_labels[2] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_RIGHT);
 		btn_labels[3] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_WHEEL_UP);
 		btn_labels[4] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_WHEEL_DOWN);
+		btn_labels[5] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_HWHEEL_LEFT);
+		btn_labels[6] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_HWHEEL_RIGHT);
 
 		axes_labels[0] = XIGetKnownProperty(AXIS_LABEL_PROP_REL_X);
 		axes_labels[1] = XIGetKnownProperty(AXIS_LABEL_PROP_REL_Y);
@@ -253,10 +256,9 @@ static int pointerProc(DeviceIntPtr pDev
 	case DEVICE_OFF:
 		pDev->on = FALSE;
 		break;
-#if 0
 	case DEVICE_CLOSE:
+		singleton.pointerDev = NULL;
 		break;
-#endif
 	}
 
 	return Success;
@@ -269,9 +271,7 @@ static void keyboardBell(int percent, De
 		vncBell();
 }
 
-extern void GetInitKeyboardMap(KeySymsPtr keysyms, CARD8 *modmap);
-
-static int keyboardProc(DeviceIntPtr pDevice, int onoff)
+int InputDevice::keyboardProc(DeviceIntPtr pDevice, int onoff)
 {
 #if XORG < 17
 	KeySymsRec keySyms;
@@ -298,6 +298,9 @@ static int keyboardProc(DeviceIntPtr pDe
 	case DEVICE_OFF:
 		pDev->on = FALSE;
 		break;
+	case DEVICE_CLOSE:
+		singleton.keyboardDev = NULL;
+		break;
 	}
 
 	return Success;
@@ -305,11 +308,9 @@ static int keyboardProc(DeviceIntPtr pDe
 
 void InputDevice::InitInputDevice(void)
 {
-	if (initialized)
+	if ((pointerDev != NULL) || (keyboardDev != NULL))
 		return;
 
-	initialized = true;
-
 #if XORG < 17
 	pointerDev = AddInputDevice(
 #if XORG >= 16
diff -up tigervnc-1.3.0/unix/xserver/hw/vnc/InputCore.cc.inputreset tigervnc-1.3.0/unix/xserver/hw/vnc/InputCore.cc
--- tigervnc-1.3.0/unix/xserver/hw/vnc/InputCore.cc.inputreset	2013-07-01 13:41:24.000000000 +0100
+++ tigervnc-1.3.0/unix/xserver/hw/vnc/InputCore.cc	2014-07-14 13:08:01.483660952 +0100
@@ -174,7 +174,7 @@ KeySym keyboardMap[MAP_LEN * KEYSYMS_PER
 	XK_Menu, NoSymbol,
 };
 
-void GetInitKeyboardMap(KeySymsPtr keysyms, CARD8 *modmap)
+void InputDevice::GetInitKeyboardMap(KeySymsPtr keysyms, CARD8 *modmap)
 {
 	int i;
 
diff -up tigervnc-1.3.0/unix/xserver/hw/vnc/Input.h.inputreset tigervnc-1.3.0/unix/xserver/hw/vnc/Input.h
--- tigervnc-1.3.0/unix/xserver/hw/vnc/Input.h.inputreset	2013-07-01 13:41:24.000000000 +0100
+++ tigervnc-1.3.0/unix/xserver/hw/vnc/Input.h	2014-07-14 13:08:01.483660952 +0100
@@ -29,20 +29,27 @@
 
 #include <list>
 
-#include <rfb/VNCServerST.h>
+#include <rdr/types.h>
+#include <rfb/Rect.h>
 
 extern "C" {
 #include "input.h"
+/* The Xorg headers define macros that wreak havoc with STL */
+#undef max
 };
 
 #include "xorg-version.h"
 
-/* Represents input device (keyboard + pointer) */
+/*
+ * Represents input device (keyboard + pointer)
+ *
+ * Is a singleton as input devices are global in the X server so
+ * we do not have one per desktop (i.e. per screen).
+ */
+extern class InputDevice *vncInputDevice;
+
 class InputDevice {
 public:
-	/* Create new InputDevice instance */
-	InputDevice(rfb::VNCServerST *_server);
-
 	/*
 	 * Press or release buttons. Relationship between buttonMask and
 	 * buttons is specified in RFB protocol.
@@ -52,27 +59,28 @@ public:
 	/* Move pointer to target location (point coords are absolute). */
 	void PointerMove(const rfb::Point &point);
 
-	/*
-	 * Send pointer position to clients. If not called then Move() calls
-	 * won't be visible to VNC clients.
-	 */
-	void PointerSync(void);
+	/* Get current known location of the pointer */
+	const rfb::Point &getPointerPos(void);
 
+	/* Press or release one or more keys to get the given symbol */
 	void KeyboardPress(rdr::U32 keysym) { keyEvent(keysym, true); }
 	void KeyboardRelease(rdr::U32 keysym) { keyEvent(keysym, false); }
 
 	/*
-	 * Init input device. This cannot be done in the constructor
-	 * because constructor is called during X server extensions
-	 * initialization. Devices must be initialized after core
-	 * pointer/keyboard initialization which is actually after extesions
-	 * initialization. Check InitExtensions(), InitCoreDevices() and
-	 * InitInput() calls in dix/main.c. Instead it is called from
-	 * XserverDesktop at an appropriate time.
+	 * Init input device.
+	 * This has to be called after core pointer/keyboard
+	 * initialization which unfortunately is after extesions
+	 * initialization (which means we cannot call it in
+	 * vncExtensionInit(). Check InitExtensions(),
+	 * InitCoreDevices() and InitInput() calls in dix/main.c.
+	 * Instead we call it from XserverDesktop at an appropriate
+	 * time.
 	 */
 	void InitInputDevice(void);
 
 private:
+	InputDevice();
+
 	void keyEvent(rdr::U32 keysym, bool down);
 
 	/* Backend dependent functions below here */
@@ -96,22 +104,28 @@ private:
 	KeyCode addKeysym(KeySym keysym, unsigned state);
 
 private:
+	static int pointerProc(DeviceIntPtr pDevice, int onoff);
+	static int keyboardProc(DeviceIntPtr pDevice, int onoff);
+
 #if XORG >= 17
 	static void vncXkbProcessDeviceEvent(int screenNum,
 	                                     InternalEvent *event,
 	                                     DeviceIntPtr dev);
+#else
+	static void GetInitKeyboardMap(KeySymsPtr keysyms, CARD8 *modmap);
 #endif
 
 private:
-	rfb::VNCServerST *server;
-	bool initialized;
 	DeviceIntPtr keyboardDev;
 	DeviceIntPtr pointerDev;
 
 	int oldButtonMask;
-	rfb::Point cursorPos, oldCursorPos;
+	rfb::Point cursorPos;
 
 	KeySym pressedKeys[256];
+
+private:
+	static InputDevice singleton;
 };
 
 #endif
diff -up tigervnc-1.3.0/unix/xserver/hw/vnc/InputXKB.cc.inputreset tigervnc-1.3.0/unix/xserver/hw/vnc/InputXKB.cc
--- tigervnc-1.3.0/unix/xserver/hw/vnc/InputXKB.cc.inputreset	2014-07-14 13:07:53.145619157 +0100
+++ tigervnc-1.3.0/unix/xserver/hw/vnc/InputXKB.cc	2014-07-14 13:08:01.484660958 +0100
@@ -42,18 +42,6 @@ extern "C" {
 #undef class
 }
 
-#if XORG < 19
-static int vncXkbScreenPrivateKeyIndex;
-static DevPrivateKey vncXkbScreenPrivateKey = &vncXkbScreenPrivateKeyIndex;
-#else
-static DevPrivateKeyRec vncXkbPrivateKeyRec;
-#define vncXkbScreenPrivateKey (&vncXkbPrivateKeyRec)
-#endif
-
-#define vncXkbScreenPrivate(pScreen) \
-	(*(InputDevice**) dixLookupPrivate(&(pScreen)->devPrivates, \
-	                                   vncXkbScreenPrivateKey))
-
 #ifndef KEYBOARD_OR_FLOAT
 #define KEYBOARD_OR_FLOAT MASTER_KEYBOARD
 #endif
@@ -209,18 +197,6 @@ static unsigned XkbKeyEffectiveGroup(Xkb
 
 void InputDevice::PrepareInputDevices(void)
 {
-#if XORG < 19
-	if (!dixRequestPrivate(vncXkbScreenPrivateKey, sizeof(InputDevice*)))
-		FatalError("Failed to register TigerVNC XKB screen key\n");
-#else
-	if (!dixRegisterPrivateKey(vncXkbScreenPrivateKey, PRIVATE_SCREEN,
-	                           sizeof(InputDevice*)))
-		FatalError("Failed to register TigerVNC XKB screen key\n");
-#endif
-
-	for (int scr = 0; scr < screenInfo.numScreens; scr++)
-		vncXkbScreenPrivate(screenInfo.screens[scr]) = this;
-
 	/*
 	 * Not ideal since these callbacks do not stack, but it's the only
 	 * decent way we can reliably catch events for both the slave and
@@ -633,10 +609,9 @@ void InputDevice::vncXkbProcessDeviceEve
                                            InternalEvent *event,
                                            DeviceIntPtr dev)
 {
-	InputDevice *self = vncXkbScreenPrivate(screenInfo.screens[screenNum]);
 	unsigned int backupctrls;
 
-	if (event->device_event.sourceid == self->keyboardDev->id) {
+	if (event->device_event.sourceid == singleton.keyboardDev->id) {
 		XkbControlsPtr ctrls;
 
 		/*
@@ -658,7 +633,7 @@ void InputDevice::vncXkbProcessDeviceEve
 
 	dev->c_public.processInputProc(event, dev);
 
-	if (event->device_event.sourceid == self->keyboardDev->id) {
+	if (event->device_event.sourceid == singleton.keyboardDev->id) {
 		XkbControlsPtr ctrls;
 
 		ctrls = dev->key->xkbInfo->desc->ctrls;
diff -up tigervnc-1.3.0/unix/xserver/hw/vnc/xf86vncModule.cc.inputreset tigervnc-1.3.0/unix/xserver/hw/vnc/xf86vncModule.cc
--- tigervnc-1.3.0/unix/xserver/hw/vnc/xf86vncModule.cc.inputreset	2013-07-01 13:41:24.000000000 +0100
+++ tigervnc-1.3.0/unix/xserver/hw/vnc/xf86vncModule.cc	2014-07-14 13:08:01.487660972 +0100
@@ -112,9 +112,9 @@ static void vncExtensionInitWithParams(I
           i.param->setParam(val);
       }
     }
-
-    vncExtensionInit();
   }
+
+  vncExtensionInit();
 }
 }
 
diff -up tigervnc-1.3.0/unix/xserver/hw/vnc/XserverDesktop.cc.inputreset tigervnc-1.3.0/unix/xserver/hw/vnc/XserverDesktop.cc
--- tigervnc-1.3.0/unix/xserver/hw/vnc/XserverDesktop.cc.inputreset	2014-07-14 13:07:53.140619132 +0100
+++ tigervnc-1.3.0/unix/xserver/hw/vnc/XserverDesktop.cc	2014-07-14 13:08:01.486660967 +0100
@@ -157,15 +157,12 @@ XserverDesktop::XserverDesktop(ScreenPtr
 
   if (httpListener)
     httpServer = new FileHTTPServer(this);
-
-  inputDevice = new InputDevice(server);
 }
 
 XserverDesktop::~XserverDesktop()
 {
   if (!directFbptr)
     delete [] data;
-  delete inputDevice;
   delete httpServer;
   delete server;
 }
@@ -583,7 +580,7 @@ void XserverDesktop::blockHandler(fd_set
   // so we abuse the fact that this routine will be called first thing
   // once the dix is done initialising.
   // [1] Technically Xvnc has InitInput(), but libvnc.so has nothing.
-  inputDevice->InitInputDevice();
+  vncInputDevice->InitInputDevice();
 
   try {
     int nextTimeout;
@@ -691,7 +688,11 @@ void XserverDesktop::wakeupHandler(fd_se
         }
       }
 
-      inputDevice->PointerSync();
+      // We are responsible for propagating mouse movement between clients
+      if (!oldCursorPos.equals(vncInputDevice->getPointerPos())) {
+        oldCursorPos = vncInputDevice->getPointerPos();
+        server->setCursorPos(oldCursorPos);
+      }
     }
 
     // Then let the timers do some processing. Rescheduling is done in
@@ -818,8 +819,8 @@ void XserverDesktop::approveConnection(v
 
 void XserverDesktop::pointerEvent(const Point& pos, int buttonMask)
 {
-  inputDevice->PointerMove(pos);
-  inputDevice->PointerButtonAction(buttonMask);
+  vncInputDevice->PointerMove(pos);
+  vncInputDevice->PointerButtonAction(buttonMask);
 }
 
 void XserverDesktop::clientCutText(const char* str, int len)
@@ -1136,7 +1137,7 @@ void XserverDesktop::lookup(int index, i
 void XserverDesktop::keyEvent(rdr::U32 keysym, bool down)
 {
 	if (down)
-		inputDevice->KeyboardPress(keysym);
+		vncInputDevice->KeyboardPress(keysym);
 	else
-		inputDevice->KeyboardRelease(keysym);
+		vncInputDevice->KeyboardRelease(keysym);
 }
diff -up tigervnc-1.3.0/unix/xserver/hw/vnc/XserverDesktop.h.inputreset tigervnc-1.3.0/unix/xserver/hw/vnc/XserverDesktop.h
--- tigervnc-1.3.0/unix/xserver/hw/vnc/XserverDesktop.h.inputreset	2013-07-01 13:41:24.000000000 +0100
+++ tigervnc-1.3.0/unix/xserver/hw/vnc/XserverDesktop.h	2014-07-14 13:08:01.486660967 +0100
@@ -133,7 +133,6 @@ private:
 #endif
 
   ScreenPtr pScreen;
-  InputDevice *inputDevice;
   rfb::VNCServerST* server;
   rfb::HTTPServer* httpServer;
   network::TcpListener* listener;
@@ -153,5 +152,7 @@ private:
   typedef std::map<RROutputPtr, rdr::U32> OutputIdMap;
   OutputIdMap outputIdMap;
 #endif
+
+  rfb::Point oldCursorPos;
 };
 #endif



1.1                  src/patchsets/tigervnc/1.3.1/065_pointersync.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/tigervnc/1.3.1/065_pointersync.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/tigervnc/1.3.1/065_pointersync.patch?rev=1.1&content-type=text/plain

Index: 065_pointersync.patch
===================================================================
diff -up tigervnc-1.3.0/unix/xserver/hw/vnc/Input.cc.pointersync tigervnc-1.3.0/unix/xserver/hw/vnc/Input.cc
--- tigervnc-1.3.0/unix/xserver/hw/vnc/Input.cc.pointersync	2014-07-14 16:27:49.412251632 +0100
+++ tigervnc-1.3.0/unix/xserver/hw/vnc/Input.cc	2014-07-14 16:29:06.968643301 +0100
@@ -1,5 +1,5 @@
 /* Copyright (C) 2009 TightVNC Team
- * Copyright (C) 2009 Red Hat, Inc.
+ * Copyright (C) 2009, 2014 Red Hat, Inc.
  * Copyright 2013 Pierre Ossman for Cendio AB
  *
  * This is free software; you can redistribute it and/or modify
@@ -202,6 +202,14 @@ void InputDevice::PointerMove(const rfb:
 
 const rfb::Point &InputDevice::getPointerPos(void)
 {
+	if (pointerDev != NULL) {
+		int x, y;
+
+		GetSpritePosition (pointerDev, &x, &y);
+		cursorPos.x = x;
+		cursorPos.y = y;
+	}
+
 	return cursorPos;
 }
 



1.1                  src/patchsets/tigervnc/1.3.1/0999_server_xserver-1.14-rebased.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/tigervnc/1.3.1/0999_server_xserver-1.14-rebased.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/tigervnc/1.3.1/0999_server_xserver-1.14-rebased.patch?rev=1.1&content-type=text/plain

Index: 0999_server_xserver-1.14-rebased.patch
===================================================================
diff -up xorg-server-1.16.0/configure.ac.vnc xorg-server-1.16.0/configure.ac
--- xorg-server-1.16.0/configure.ac.vnc	2014-07-17 08:00:51.000000000 +0100
+++ xorg-server-1.16.0/configure.ac	2014-09-03 10:21:49.506109235 +0100
@@ -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])
@@ -1795,6 +1796,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 $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
 
@@ -1830,6 +1835,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'
@@ -2051,7 +2058,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])
@@ -2589,6 +2595,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
diff -up xorg-server-1.16.0/hw/Makefile.am.vnc xorg-server-1.16.0/hw/Makefile.am
--- xorg-server-1.16.0/hw/Makefile.am.vnc	2014-04-16 21:24:00.000000000 +0100
+++ xorg-server-1.16.0/hw/Makefile.am	2014-09-03 10:21:49.507109234 +0100
@@ -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
 
diff -up xorg-server-1.16.0/mi/miinitext.c.vnc xorg-server-1.16.0/mi/miinitext.c
--- xorg-server-1.16.0/mi/miinitext.c.vnc	2014-04-16 21:24:00.000000000 +0100
+++ xorg-server-1.16.0/mi/miinitext.c	2014-09-03 10:21:49.508109234 +0100
@@ -111,6 +111,10 @@ SOFTWARE.
 #include "micmap.h"
 #include "globals.h"
 
+#ifdef TIGERVNC
+extern void vncExtensionInit(INITARGS);
+#endif
+
 /* The following is only a small first step towards run-time
  * configurable extensions.
  */
@@ -235,6 +239,9 @@ EnableDisableExtensionError(const char *
 
 /* List of built-in (statically linked) extensions */
 static const ExtensionModule staticExtensions[] = {
+#ifdef TIGERVNC
+    {vncExtensionInit, "VNC-EXTENSION", NULL},
+#endif
     {GEExtensionInit, "Generic Event Extension", &noGEExtension},
     {ShapeExtensionInit, "SHAPE", NULL},
 #ifdef MITSHM
diff -up xorg-server-1.16.0/os/WaitFor.c.vnc xorg-server-1.16.0/os/WaitFor.c
--- xorg-server-1.16.0/os/WaitFor.c.vnc	2014-02-05 03:08:57.000000000 +0000
+++ xorg-server-1.16.0/os/WaitFor.c	2014-09-03 10:21:49.508109234 +0100
@@ -125,6 +125,9 @@ static void DoTimer(OsTimerPtr timer, CA
 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 @@ WaitForSomething(int *pClientsReady)
     INT32 timeout = 0;
     fd_set clientsReadable;
     fd_set clientsWritable;
+    fd_set socketsWritable;
     int curclient;
     int selecterr;
     static int nready;
@@ -212,6 +216,9 @@ WaitForSomething(int *pClientsReady)
             XFD_COPYSET(&AllSockets, &LastSelectMask);
         }
 
+        FD_ZERO(&socketsWritable);
+        vncWriteBlockHandler(&socketsWritable);
+
         BlockHandler((void *) &wt, (void *) &LastSelectMask);
         if (NewOutputPending)
             FlushAllOutput();
@@ -223,10 +223,20 @@ WaitForSomething(int *pClientsReady)
             i = Select(MaxClients, &LastSelectMask, &clientsWritable, NULL, wt);
         }
         else {
-            i = Select(MaxClients, &LastSelectMask, NULL, NULL, wt);
+	    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, (void *) &LastSelectMask);
+	vncWriteWakeupHandler(i, &socketsWritable);
         if (i <= 0) {           /* An error or timeout occurred */
             if (dispatchException)
                 return 0;



1.1                  src/patchsets/tigervnc/1.3.1/1000_server_xserver-1.15.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/tigervnc/1.3.1/1000_server_xserver-1.15.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/tigervnc/1.3.1/1000_server_xserver-1.15.patch?rev=1.1&content-type=text/plain

Index: 1000_server_xserver-1.15.patch
===================================================================
diff -up tigervnc-1.3.0/unix/xserver/hw/vnc/xorg-version.h.jx tigervnc-1.3.0/unix/xserver/hw/vnc/xorg-version.h
--- tigervnc-1.3.0/unix/xserver/hw/vnc/xorg-version.h.jx	2013-07-01 08:41:24.000000000 -0400
+++ tigervnc-1.3.0/unix/xserver/hw/vnc/xorg-version.h	2013-11-07 11:39:49.749992669 -0500
@@ -44,8 +44,10 @@
 #define XORG 113
 #elif XORG_VERSION_CURRENT < ((1 * 10000000) + (14 * 100000) + (99 * 1000))
 #define XORG 114
+#elif XORG_VERSION_CURRENT < ((1 * 10000000) + (15 * 100000) + (99 * 1000))
+#define XORG 115
 #else
-#error "X.Org newer than 1.14 is not supported"
+#error "X.Org newer than 1.15 is not supported"
 #endif
 
 #endif



1.1                  src/patchsets/tigervnc/1.3.1/1005_server_xserver-1.16.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/tigervnc/1.3.1/1005_server_xserver-1.16.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/tigervnc/1.3.1/1005_server_xserver-1.16.patch?rev=1.1&content-type=text/plain

Index: 1005_server_xserver-1.16.patch
===================================================================
diff -up tigervnc-1.3.1/unix/xserver/hw/vnc/Input.cc.116 tigervnc-1.3.1/unix/xserver/hw/vnc/Input.cc
--- tigervnc-1.3.1/unix/xserver/hw/vnc/Input.cc.116	2013-05-30 16:53:40.000000000 +0200
+++ tigervnc-1.3.1/unix/xserver/hw/vnc/Input.cc	2014-04-28 16:55:02.591440218 +0200
@@ -262,7 +262,7 @@ static int pointerProc(DeviceIntPtr pDev
 	return Success;
 }
 
-static void keyboardBell(int percent, DeviceIntPtr device, pointer ctrl,
+static void keyboardBell(int percent, DeviceIntPtr device, void * ctrl,
 			 int class_)
 {
 	if (percent > 0)
diff -up tigervnc-1.3.1/unix/xserver/hw/vnc/XserverDesktop.cc.116 tigervnc-1.3.1/unix/xserver/hw/vnc/XserverDesktop.cc
--- tigervnc-1.3.1/unix/xserver/hw/vnc/XserverDesktop.cc.116	2014-04-28 16:55:02.530441812 +0200
+++ tigervnc-1.3.1/unix/xserver/hw/vnc/XserverDesktop.cc	2014-04-28 16:55:02.592440192 +0200
@@ -48,7 +48,7 @@ extern "C" {
 #define public c_public
 #define class c_class
 
-extern char *display;
+extern const char *display;
 
 #include "colormapst.h"
 #ifdef RANDR
@@ -174,7 +174,7 @@ void XserverDesktop::serverReset(ScreenP
 {
   pScreen = pScreen_;
   int i;
-  pointer retval;
+  void * retval;
 
 #if XORG >= 17
 #define dixLookupResource dixLookupResourceByType
diff -up tigervnc-1.3.1/unix/xserver/hw/vnc/vncExtInit.cc.116 tigervnc-1.3.1/unix/xserver/hw/vnc/vncExtInit.cc
--- tigervnc-1.3.1/unix/xserver/hw/vnc/vncExtInit.cc.116	2014-04-28 16:55:02.524441969 +0200
+++ tigervnc-1.3.1/unix/xserver/hw/vnc/vncExtInit.cc	2014-04-28 16:55:02.592440192 +0200
@@ -65,18 +65,18 @@ extern "C" {
 
   extern void vncExtensionInit();
   static void vncResetProc(ExtensionEntry* extEntry);
-  static void vncBlockHandler(pointer data, OSTimePtr t, pointer readmask);
-  static void vncWakeupHandler(pointer data, int nfds, pointer readmask);
+  static void vncBlockHandler(void * data, OSTimePtr t, void * readmask);
+  static void vncWakeupHandler(void * data, int nfds, void * readmask);
   void vncWriteBlockHandler(fd_set *fds);
   void vncWriteWakeupHandler(int nfds, fd_set *fds);
-  static void vncClientStateChange(CallbackListPtr*, pointer, pointer);
+  static void vncClientStateChange(CallbackListPtr*, void *, void *);
   static void SendSelectionChangeEvent(Atom selection);
   static int ProcVncExtDispatch(ClientPtr client);
   static int SProcVncExtDispatch(ClientPtr client);
-  static void vncSelectionCallback(CallbackListPtr *callbacks, pointer data,
-				   pointer args);
+  static void vncSelectionCallback(CallbackListPtr *callbacks, void * data,
+				   void * args);
 
-  extern char *display;
+  extern const char *display;
   extern char *listenaddr;
 }
 
@@ -284,7 +284,7 @@ static void vncResetProc(ExtensionEntry*
 {
 }
 
-static void vncSelectionCallback(CallbackListPtr *callbacks, pointer data, pointer args)
+static void vncSelectionCallback(CallbackListPtr *callbacks, void * data, void * args)
 {
   SelectionInfoRec *info = (SelectionInfoRec *) args;
   Selection *selection = info->selection;
@@ -301,7 +301,7 @@ static void vncWriteWakeupHandlerFallbac
 // selections have changed, and if so, notify any interested X clients.
 //
 
-static void vncBlockHandler(pointer data, OSTimePtr timeout, pointer readmask)
+static void vncBlockHandler(void * data, OSTimePtr timeout, void * readmask)
 {
   fd_set* fds = (fd_set*)readmask;
 
@@ -312,7 +312,7 @@ static void vncBlockHandler(pointer data
       desktop[scr]->blockHandler(fds, timeout);
 }
 
-static void vncWakeupHandler(pointer data, int nfds, pointer readmask)
+static void vncWakeupHandler(void * data, int nfds, void * readmask)
 {
   fd_set* fds = (fd_set*)readmask;
 
@@ -402,7 +402,7 @@ static void vncWriteWakeupHandlerFallbac
   vncWriteWakeupHandler(ret, &fallbackFds);
 }
 
-static void vncClientStateChange(CallbackListPtr*, pointer, pointer p)
+static void vncClientStateChange(CallbackListPtr*, void *, void * p)
 {
   ClientPtr client = ((NewClientInfoRec*)p)->client;
   if (client->clientState == ClientStateGone) {
@@ -468,7 +468,7 @@ void vncClientCutText(const char* str, i
 
 
 static CARD32 queryConnectTimerCallback(OsTimerPtr timer,
-                                        CARD32 now, pointer arg)
+                                        CARD32 now, void * arg)
 {
   if (queryConnectTimeout)
     queryConnectDesktop->approveConnection(queryConnectId, false, "The attempt to prompt the user to accept the connection failed");
diff -up tigervnc-1.3.1/unix/xserver/hw/vnc/vncHooks.cc.116 tigervnc-1.3.1/unix/xserver/hw/vnc/vncHooks.cc
--- tigervnc-1.3.1/unix/xserver/hw/vnc/vncHooks.cc.116	2013-05-22 14:57:16.000000000 +0200
+++ tigervnc-1.3.1/unix/xserver/hw/vnc/vncHooks.cc	2014-04-28 16:55:02.593440166 +0200
@@ -91,8 +91,8 @@ typedef struct {
 } vncHooksScreenRec, *vncHooksScreenPtr;
 
 typedef struct {
-    GCFuncs *wrappedFuncs;
-    GCOps *wrappedOps;
+    const GCFuncs *wrappedFuncs;
+    const GCOps *wrappedOps;
 } vncHooksGCRec, *vncHooksGCPtr;
 
 #if XORG == 15
@@ -141,11 +141,11 @@ static Bool vncHooksDisplayCursor(
 #endif
 				  ScreenPtr pScreen, CursorPtr cursor);
 #if XORG < 112
-static void vncHooksBlockHandler(int i, pointer blockData, pointer pTimeout,
-                                 pointer pReadmask);
+static void vncHooksBlockHandler(int i, void * blockData, void * pTimeout,
+                                 void * pReadmask);
 #else
-static void vncHooksBlockHandler(ScreenPtr pScreen, pointer pTimeout,
-                                 pointer pReadmask);
+static void vncHooksBlockHandler(ScreenPtr pScreen, void * pTimeout,
+                                 void * pReadmask);
 #endif
 #ifdef RENDER
 static void vncHooksComposite(CARD8 op, PicturePtr pSrc, PicturePtr pMask, 
@@ -174,7 +174,7 @@ static void vncHooksValidateGC(GCPtr pGC
 static void vncHooksChangeGC(GCPtr pGC, unsigned long mask);
 static void vncHooksCopyGC(GCPtr src, unsigned long mask, GCPtr dst);
 static void vncHooksDestroyGC(GCPtr pGC);
-static void vncHooksChangeClip(GCPtr pGC, int type, pointer pValue,int nrects);
+static void vncHooksChangeClip(GCPtr pGC, int type, void * pValue,int nrects);
 static void vncHooksDestroyClip(GCPtr pGC);
 static void vncHooksCopyClip(GCPtr dst, GCPtr src);
 
@@ -226,10 +226,10 @@ static void vncHooksImageText16(Drawable
                                 int count, unsigned short *chars);
 static void vncHooksImageGlyphBlt(DrawablePtr pDrawable, GCPtr pGC, int x,
                                   int y, unsigned int nglyph,
-                                  CharInfoPtr *ppci, pointer pglyphBase);
+                                  CharInfoPtr *ppci, void * pglyphBase);
 static void vncHooksPolyGlyphBlt(DrawablePtr pDrawable, GCPtr pGC, int x,
                                  int y, unsigned int nglyph,
-                                 CharInfoPtr *ppci, pointer pglyphBase);
+                                 CharInfoPtr *ppci, void * pglyphBase);
 static void vncHooksPushPixels(GCPtr pGC, PixmapPtr pBitMap,
                                DrawablePtr pDrawable, int w, int h, int x,
                                int y);
@@ -575,11 +575,11 @@ static Bool vncHooksDisplayCursor(
 // these are just drawing the cursor.
 
 #if XORG < 112
-static void vncHooksBlockHandler(int i, pointer blockData, pointer pTimeout,
-                                 pointer pReadmask)
+static void vncHooksBlockHandler(int i, void * blockData, void * pTimeout,
+                                 void * pReadmask)
 #else
-static void vncHooksBlockHandler(ScreenPtr pScreen_, pointer pTimeout,
-                                 pointer pReadmask)
+static void vncHooksBlockHandler(ScreenPtr pScreen_, void * pTimeout,
+                                 void * pReadmask)
 #endif
 {
 #if XORG < 112
@@ -914,7 +914,7 @@ static void vncHooksDestroyGC(GCPtr pGC)
   GCFuncUnwrapper u(pGC);
   (*pGC->funcs->DestroyGC) (pGC);
 }
-static void vncHooksChangeClip(GCPtr pGC, int type, pointer pValue, int nrects)
+static void vncHooksChangeClip(GCPtr pGC, int type, void * pValue, int nrects)
 {
   GCFuncUnwrapper u(pGC);
   (*pGC->funcs->ChangeClip) (pGC, type, pValue, nrects);
@@ -954,7 +954,7 @@ public:
   }
   GCPtr pGC;
   vncHooksGCPtr vncHooksGC;
-  GCFuncs* oldFuncs;
+  const GCFuncs* oldFuncs;
   ScreenPtr pScreen;
 };
 
@@ -1793,7 +1793,7 @@ static void vncHooksImageText16(Drawable
 
 static void vncHooksImageGlyphBlt(DrawablePtr pDrawable, GCPtr pGC, int x,
                                   int y, unsigned int nglyph,
-                                  CharInfoPtr *ppci, pointer pglyphBase)
+                                  CharInfoPtr *ppci, void * pglyphBase)
 {
   GC_OP_UNWRAPPER(pDrawable, pGC, ImageGlyphBlt);
 
@@ -1819,7 +1819,7 @@ static void vncHooksImageGlyphBlt(Drawab
 
 static void vncHooksPolyGlyphBlt(DrawablePtr pDrawable, GCPtr pGC, int x,
                                  int y, unsigned int nglyph,
-                                 CharInfoPtr *ppci, pointer pglyphBase)
+                                 CharInfoPtr *ppci, void * pglyphBase)
 {
   GC_OP_UNWRAPPER(pDrawable, pGC, PolyGlyphBlt);
 
diff -up tigervnc-1.3.1/unix/xserver/hw/vnc/xf86vncModule.cc.116 tigervnc-1.3.1/unix/xserver/hw/vnc/xf86vncModule.cc
--- tigervnc-1.3.1/unix/xserver/hw/vnc/xf86vncModule.cc.116	2013-03-14 18:52:53.000000000 +0100
+++ tigervnc-1.3.1/unix/xserver/hw/vnc/xf86vncModule.cc	2014-04-28 16:55:02.593440166 +0200
@@ -81,11 +81,11 @@ static XF86ModuleVersionInfo vncVersRec
 
 _X_EXPORT XF86ModuleData vncModuleData = { &vncVersRec, vncSetup, NULL };
 
-static pointer
-vncSetup(pointer module, pointer opts, int *errmaj, int *errmin) {
-    LoadExtension(&vncExt, FALSE);
+static void *
+vncSetup(void * module, void * opts, int *errmaj, int *errmin) {
+    LoadExtensionList(&vncExt, 1, FALSE);
     /* Need a non-NULL return value to indicate success */
-    return (pointer)1;
+    return (void *)1;
 }
 
 static void vncExtensionInitWithParams(INITARGS)
diff -up tigervnc-1.3.1/unix/xserver/hw/vnc/xvnc.cc.116 tigervnc-1.3.1/unix/xserver/hw/vnc/xvnc.cc
--- tigervnc-1.3.1/unix/xserver/hw/vnc/xvnc.cc.116	2014-03-19 13:11:09.000000000 +0100
+++ tigervnc-1.3.1/unix/xserver/hw/vnc/xvnc.cc	2014-04-28 16:53:12.580314921 +0200
@@ -103,7 +103,7 @@ extern "C" {
                        "See http://www.tigervnc.org for information on TigerVNC.\n")
 
 
-extern char *display;
+extern const char *display;
 extern int monitorResolution;
 
 #define VFB_DEFAULT_WIDTH  1024
@@ -762,7 +762,7 @@ vfbUninstallColormap(ColormapPtr pmap)
 	    curpmap = (ColormapPtr) LookupIDByType(pmap->pScreen->defColormap,
 						   RT_COLORMAP);
 #else
-	    dixLookupResourceByType((pointer *) &curpmap, pmap->pScreen->defColormap,
+	    dixLookupResourceByType((void * *) &curpmap, pmap->pScreen->defColormap,
 				    RT_COLORMAP, serverClient, DixUnknownAccess);
 #endif
 	    (*pmap->pScreen->InstallColormap)(curpmap);
@@ -1597,7 +1597,7 @@ vfbScreenInit(ScreenPtr pScreen, int arg
 } /* end vfbScreenInit */
 
 
-static void vfbClientStateChange(CallbackListPtr*, pointer, pointer) {
+static void vfbClientStateChange(CallbackListPtr*, void *, void *) {
   dispatchException &= ~DE_RESET;
 }
  
@@ -1625,7 +1625,7 @@ InitOutput(ScreenInfo *screenInfo, int a
 #if XORG >= 113
 #ifdef GLXEXT
     if (serverGeneration == 1)
-        LoadExtension(&glxExt, TRUE);
+        LoadExtensionList(&glxExt, 1, TRUE);
 #endif
 #endif
 



1.1                  src/patchsets/tigervnc/1.3.1/1006_server_xserver-1.16-2.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/tigervnc/1.3.1/1006_server_xserver-1.16-2.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/tigervnc/1.3.1/1006_server_xserver-1.16-2.patch?rev=1.1&content-type=text/plain

Index: 1006_server_xserver-1.16-2.patch
===================================================================
diff -up tigervnc-1.3.0/unix/xserver/hw/vnc/xorg-version.h.jx tigervnc-1.3.0/unix/xserver/hw/vnc/xorg-version.h
--- tigervnc-1.3.0/unix/xserver/hw/vnc/xorg-version.h.jx	2013-07-01 08:41:24.000000000 -0400
+++ tigervnc-1.3.0/unix/xserver/hw/vnc/xorg-version.h	2013-11-07 11:39:49.749992669 -0500
@@ -44,8 +44,10 @@
 #define XORG 113
 #elif XORG_VERSION_CURRENT < ((1 * 10000000) + (15 * 100000) + (99 * 1000))
 #define XORG 115
+#elif XORG_VERSION_CURRENT < ((1 * 10000000) + (16 * 100000) + (99 * 1000))
+#define XORG 116
 #else
-#error "X.Org newer than 1.15 is not supported"
+#error "X.Org newer than 1.16 is not supported"
 #endif
 
 #endif





^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2014-09-20 10:50 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-09-20 10:50 [gentoo-commits] gentoo commit in src/patchsets/tigervnc/1.3.1: 001_cookie.patch 005_ldnow.patch 010_gethomedir.patch 015_rh692048.patch 020_setcursor-crash.patch 025_inetd-nowait.patch 030_manpages.patch 035_getmaster.patch 040_format-security-patch.patch 045_zrle-crash.patch 050_cursor.patch 055_xstartup.patch 060_inputreset.patch 065_pointersync.patch 0999_server_xserver-1.14-rebased.patch 1000_server_xserver-1.15.patch 1005_server_xserver-1.16.patch 1006_server_xserver-1.16-2.patch Raul Porcel (armin76)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox