[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