[packages/tigervnc] - added patches from fedora (getmaster, setcursor-crash, zrle-crash, xserver-1.15) - fixed build wit

baggins baggins at pld-linux.org
Fri Jan 3 20:13:22 CET 2014


commit 2e5d66644eedcf8e58280dd50500cb81fcb75879
Author: Jan Rękorajski <baggins at pld-linux.org>
Date:   Fri Jan 3 20:12:24 2014 +0100

    - added patches from fedora (getmaster, setcursor-crash, zrle-crash, xserver-1.15)
    - fixed build with xserver 1.15
    - rel 9

 tigervnc-getmaster.patch       | 96 ++++++++++++++++++++++++++++++++++++++++++
 tigervnc-setcursor-crash.patch | 13 ++++++
 tigervnc-xserver-1.15.patch    | 15 +++++++
 tigervnc-zrle-crash.patch      | 69 ++++++++++++++++++++++++++++++
 tigervnc.spec                  | 17 +++++---
 xserver.patch                  |  2 +-
 6 files changed, 205 insertions(+), 7 deletions(-)
---
diff --git a/tigervnc.spec b/tigervnc.spec
index 745cec0..f619a90 100644
--- a/tigervnc.spec
+++ b/tigervnc.spec
@@ -4,7 +4,7 @@ Summary:	A TigerVNC remote display system
 Summary(pl.UTF-8):	System zdalnego dostępu TigerVNC
 Name:		tigervnc
 Version:	1.3.0
-Release:	8
+Release:	9
 License:	GPL v2
 Group:		X11/Applications/Networking
 Source0:	http://download.sourceforge.net/tigervnc/%{name}-%{version}.tar.bz2
@@ -16,7 +16,6 @@ Source4:	vncserver.target
 Source5:	vncserver-service-generator
 Patch0:		%{name}-cookie.patch
 Patch1:		%{name}-ldnow.patch
-Patch2:		%{name}-rh102434.patch
 Patch3:		%{name}-as-needed.patch
 Patch4:		%{name}-ipv6.patch
 Patch5:		%{name}-rh692048.patch
@@ -25,7 +24,10 @@ Patch7:		format-security.patch
 Patch8:		%{name}-typecast.patch
 Patch9:		tigervnc-xstartup.patch
 Patch10:	xserver.patch
-Patch11:	tigervnc-key_is_down.patch
+Patch11:	tigervnc-getmaster.patch
+Patch12:	tigervnc-setcursor-crash.patch
+Patch13:	tigervnc-xserver-1.15.patch
+Patch14:	tigervnc-zrle-crash.patch
 URL:		http://www.tigervnc.com/
 BuildRequires:	ImageMagick
 BuildRequires:	ImageMagick-coder-png
@@ -84,6 +86,7 @@ BuildRequires:	xorg-proto-fontsproto-devel
 BuildRequires:	xorg-proto-glproto-devel >= 1.4.10
 BuildRequires:	xorg-proto-inputproto-devel >= 1.9.99.902
 BuildRequires:	xorg-proto-kbproto-devel >= 1.0.3
+BuildRequires:	xorg-proto-presentproto-devel >= 1.0
 BuildRequires:	xorg-proto-printproto-devel
 BuildRequires:	xorg-proto-randrproto-devel >= 1.3
 BuildRequires:	xorg-proto-recordproto-devel
@@ -182,7 +185,6 @@ pozwalający na zdalny dostęp do pulpitu.
 %setup -q
 %patch0 -p1
 %patch1 -p1
-%patch2 -p1
 %patch3 -p1
 %patch4 -p0
 %patch5 -p1
@@ -191,12 +193,15 @@ pozwalający na zdalny dostęp do pulpitu.
 %patch8 -p1
 %patch9 -p1
 %patch11 -p1
+%patch12 -p1
+%patch14 -p1
 
 cp -a %{_usrsrc}/xorg-xserver-server-%{_xserverver}/* unix/xserver
 
+%patch13 -p1
+
 cd unix/xserver
-patch -p1 <%{PATCH10}
-cd -
+%patch10 -p1
 
 %build
 %cmake .
diff --git a/tigervnc-getmaster.patch b/tigervnc-getmaster.patch
new file mode 100644
index 0000000..cf6ce86
--- /dev/null
+++ b/tigervnc-getmaster.patch
@@ -0,0 +1,96 @@
+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)
diff --git a/tigervnc-setcursor-crash.patch b/tigervnc-setcursor-crash.patch
new file mode 100644
index 0000000..1efbd0e
--- /dev/null
+++ b/tigervnc-setcursor-crash.patch
@@ -0,0 +1,13 @@
+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;
diff --git a/tigervnc-xserver-1.15.patch b/tigervnc-xserver-1.15.patch
new file mode 100644
index 0000000..d070a70
--- /dev/null
+++ b/tigervnc-xserver-1.15.patch
@@ -0,0 +1,15 @@
+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
diff --git a/tigervnc-zrle-crash.patch b/tigervnc-zrle-crash.patch
new file mode 100644
index 0000000..74545d7
--- /dev/null
+++ b/tigervnc-zrle-crash.patch
@@ -0,0 +1,69 @@
+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;
diff --git a/xserver.patch b/xserver.patch
index bc0d17e..a848442 100644
--- a/xserver.patch
+++ b/xserver.patch
@@ -15,7 +15,7 @@ diff -up xserver/configure.ac.vnc xserver/configure.ac
  
 +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_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 $PRESENT_LIB"])
 +AC_SUBST([XVNC_SYS_LIBS], ["$GLX_SYS_LIBS"])
  
  dnl Xnest DDX
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/tigervnc.git/commitdiff/2e5d66644eedcf8e58280dd50500cb81fcb75879



More information about the pld-cvs-commit mailing list