diff --git a/.gitignore b/.gitignore index 970ff07..2dd4d64 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,5 @@ tigervnc-1.0.90-20100721svn4113.tar.bz2 /tigervnc-1.2.80-20130307svn5060.tar.bz2 /tigervnc-1.2.80-20130314svn5065.tar.bz2 /tigervnc-1.3.0.tar.bz2 +/tigervnc-1.3.1.tar.gz +/tigervnc-1.4.2.tar.gz diff --git a/sources b/sources index 0101957..b481651 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -a5158228e64d14496821a39bf3851f1b tigervnc-1.3.0.tar.bz2 +93b935487d0ec33341f079bc402df6b1 tigervnc-1.4.2.tar.gz diff --git a/tigervnc-1.3.0-xserver-1.15.patch b/tigervnc-1.3.0-xserver-1.15.patch index 627cd33..bd894fb 100644 --- a/tigervnc-1.3.0-xserver-1.15.patch +++ b/tigervnc-1.3.0-xserver-1.15.patch @@ -9,18 +9,4 @@ diff -up tigervnc-1.3.0/unix/xserver/configure.ac.jx tigervnc-1.3.0/unix/xserver fi AM_CONDITIONAL(WAYLAND, [test "x$WAYLAND" = xyes]) -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-CVE-2014-0011.patch b/tigervnc-CVE-2014-0011.patch deleted file mode 100644 index 0075720..0000000 --- a/tigervnc-CVE-2014-0011.patch +++ /dev/null @@ -1,49 +0,0 @@ -diff -up tigervnc-1.3.0/common/CMakeLists.txt.CVE-2014-0011 tigervnc-1.3.0/common/CMakeLists.txt ---- tigervnc-1.3.0/common/CMakeLists.txt.CVE-2014-0011 2013-07-01 13:42:01.000000000 +0100 -+++ tigervnc-1.3.0/common/CMakeLists.txt 2014-02-04 16:59:10.840037314 +0000 -@@ -23,3 +23,6 @@ if(CMAKE_COMPILER_IS_GNUCXX AND (CMAKE_S - set_target_properties(zlib PROPERTIES COMPILE_FLAGS -fPIC) - endif() - endif() -+ -+# Turn asserts on. -+set_target_properties(rdr rfb PROPERTIES COMPILE_FLAGS -UNDEBUG) -diff -up tigervnc-1.3.0/common/rfb/zrleDecode.h.CVE-2014-0011 tigervnc-1.3.0/common/rfb/zrleDecode.h ---- tigervnc-1.3.0/common/rfb/zrleDecode.h.CVE-2014-0011 2013-07-01 13:41:59.000000000 +0100 -+++ tigervnc-1.3.0/common/rfb/zrleDecode.h 2014-02-04 16:17:00.881565540 +0000 -@@ -25,9 +25,10 @@ - // FILL_RECT - fill a rectangle with a single colour - // IMAGE_RECT - draw a rectangle of pixel data from a buffer - -+#include - #include - #include --#include -+#include - - namespace rfb { - -@@ -143,7 +144,10 @@ void ZRLE_DECODE (const Rect& r, rdr::In - len += b; - } while (b == 255); - -- assert(len <= end - ptr); -+ if (end - ptr < len) { -+ fprintf (stderr, "ZRLE decode error\n"); -+ throw Exception ("ZRLE decode error"); -+ } - - #ifdef FAVOUR_FILL_RECT - int i = ptr - buf; -@@ -193,7 +197,10 @@ void ZRLE_DECODE (const Rect& r, rdr::In - len += b; - } while (b == 255); - -- assert(len <= end - ptr); -+ if (end - ptr < len) { -+ fprintf (stderr, "ZRLE decode error\n"); -+ throw Exception ("ZRLE decode error"); -+ } - } - - index &= 127; diff --git a/tigervnc-cursor.patch b/tigervnc-cursor.patch deleted file mode 100644 index 349c950..0000000 --- a/tigervnc-cursor.patch +++ /dev/null @@ -1,12 +0,0 @@ -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 - diff --git a/tigervnc-getmaster.patch b/tigervnc-getmaster.patch index cf6ce86..ed1d40e 100644 --- a/tigervnc-getmaster.patch +++ b/tigervnc-getmaster.patch @@ -1,7 +1,7 @@ -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 +diff -up tigervnc-1.4.2/unix/xserver/hw/vnc/InputXKB.cc.getmaster tigervnc-1.4.2/unix/xserver/hw/vnc/InputXKB.cc +--- tigervnc-1.4.2/unix/xserver/hw/vnc/InputXKB.cc.getmaster 2015-01-23 23:37:23.000000000 +0000 ++++ tigervnc-1.4.2/unix/xserver/hw/vnc/InputXKB.cc 2015-02-13 12:32:54.398502082 +0000 +@@ -208,10 +208,7 @@ void InputDevice::PrepareInputDevices(vo unsigned InputDevice::getKeyboardState(void) { @@ -13,7 +13,7 @@ diff -up tigervnc-1.3.0/unix/xserver/hw/vnc/InputXKB.cc.getmaster tigervnc-1.3.0 } unsigned InputDevice::getLevelThreeMask(void) -@@ -256,7 +253,7 @@ unsigned InputDevice::getLevelThreeMask( +@@ -232,7 +229,7 @@ unsigned InputDevice::getLevelThreeMask( return 0; } @@ -22,7 +22,7 @@ diff -up tigervnc-1.3.0/unix/xserver/hw/vnc/InputXKB.cc.getmaster tigervnc-1.3.0 act = XkbKeyActionPtr(xkb, keycode, state); if (act == NULL) -@@ -281,7 +278,7 @@ KeyCode InputDevice::pressShift(void) +@@ -257,7 +254,7 @@ KeyCode InputDevice::pressShift(void) if (state & ShiftMask) return 0; @@ -31,7 +31,7 @@ diff -up tigervnc-1.3.0/unix/xserver/hw/vnc/InputXKB.cc.getmaster tigervnc-1.3.0 for (key = xkb->min_key_code; key <= xkb->max_key_code; key++) { XkbAction *act; unsigned char mask; -@@ -318,7 +315,7 @@ std::list InputDevice::releaseS +@@ -294,7 +291,7 @@ std::list InputDevice::releaseS if (!(state & ShiftMask)) return keys; @@ -40,7 +40,7 @@ diff -up tigervnc-1.3.0/unix/xserver/hw/vnc/InputXKB.cc.getmaster tigervnc-1.3.0 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 +@@ -347,7 +344,7 @@ KeyCode InputDevice::pressLevelThree(voi return 0; } @@ -49,7 +49,7 @@ diff -up tigervnc-1.3.0/unix/xserver/hw/vnc/InputXKB.cc.getmaster tigervnc-1.3.0 act = XkbKeyActionPtr(xkb, keycode, state); if (act == NULL) -@@ -399,7 +396,7 @@ std::list InputDevice::releaseL +@@ -375,7 +372,7 @@ std::list InputDevice::releaseL if (!(state & mask)) return keys; @@ -58,7 +58,7 @@ diff -up tigervnc-1.3.0/unix/xserver/hw/vnc/InputXKB.cc.getmaster tigervnc-1.3.0 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 +@@ -416,7 +413,7 @@ KeyCode InputDevice::keysymToKeycode(Key if (new_state != NULL) *new_state = state; @@ -67,7 +67,7 @@ diff -up tigervnc-1.3.0/unix/xserver/hw/vnc/InputXKB.cc.getmaster tigervnc-1.3.0 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 +@@ -473,7 +470,7 @@ bool InputDevice::isLockModifier(KeyCode XkbDescPtr xkb; XkbAction *act; @@ -76,7 +76,7 @@ diff -up tigervnc-1.3.0/unix/xserver/hw/vnc/InputXKB.cc.getmaster tigervnc-1.3.0 act = XkbKeyActionPtr(xkb, keycode, state); if (act == NULL) -@@ -535,7 +532,7 @@ bool InputDevice::isAffectedByNumLock(Ke +@@ -511,7 +508,7 @@ bool InputDevice::isAffectedByNumLock(Ke if (numlock_keycode == 0) return false; @@ -85,7 +85,7 @@ diff -up tigervnc-1.3.0/unix/xserver/hw/vnc/InputXKB.cc.getmaster tigervnc-1.3.0 act = XkbKeyActionPtr(xkb, numlock_keycode, state); if (act == NULL) -@@ -569,7 +566,7 @@ KeyCode InputDevice::addKeysym(KeySym ke +@@ -545,7 +542,7 @@ KeyCode InputDevice::addKeysym(KeySym ke KeySym *syms; KeySym upper, lower; diff --git a/tigervnc-inputreset.patch b/tigervnc-inputreset.patch deleted file mode 100644 index 58b685f..0000000 --- a/tigervnc-inputreset.patch +++ /dev/null @@ -1,383 +0,0 @@ -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 - --#include -+#include -+#include - - 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 OutputIdMap; - OutputIdMap outputIdMap; - #endif -+ -+ rfb::Point oldCursorPos; - }; - #endif diff --git a/tigervnc-libvnc-os.patch b/tigervnc-libvnc-os.patch new file mode 100644 index 0000000..376df7d --- /dev/null +++ b/tigervnc-libvnc-os.patch @@ -0,0 +1,20 @@ +diff -up tigervnc-1.4.2/unix/xserver/hw/vnc/Makefile.am.libvnc-os tigervnc-1.4.2/unix/xserver/hw/vnc/Makefile.am +--- tigervnc-1.4.2/unix/xserver/hw/vnc/Makefile.am.libvnc-os 2015-02-13 13:22:19.519322622 +0000 ++++ tigervnc-1.4.2/unix/xserver/hw/vnc/Makefile.am 2015-02-13 13:22:19.521322636 +0000 +@@ -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) + + # Hack to get the C headers to work when included from C++ code +@@ -58,7 +59,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 + diff --git a/tigervnc-manpages.patch b/tigervnc-manpages.patch index 7acf128..0f143de 100644 --- a/tigervnc-manpages.patch +++ b/tigervnc-manpages.patch @@ -1,20 +1,6 @@ -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 +diff -up tigervnc-1.4.2/unix/vncserver.manpages tigervnc-1.4.2/unix/vncserver +--- tigervnc-1.4.2/unix/vncserver.manpages 2015-02-12 19:39:32.253788841 +0000 ++++ tigervnc-1.4.2/unix/vncserver 2015-02-12 19:39:32.326789294 +0000 @@ -551,6 +551,7 @@ sub Usage " [-geometry x]\n". " [-pixelformat rgbNNN|bgrNNN]\n". @@ -23,105 +9,10 @@ diff -up tigervnc-1.2.80-20130314svn5065/unix/vncserver.manpages tigervnc-1.2.80 " [-fg]\n". " [-autokill]\n". " ...\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 +diff -up tigervnc-1.4.2/vncviewer/vncviewer.cxx.manpages tigervnc-1.4.2/vncviewer/vncviewer.cxx +--- tigervnc-1.4.2/vncviewer/vncviewer.cxx.manpages 2015-01-23 23:37:23.000000000 +0000 ++++ tigervnc-1.4.2/vncviewer/vncviewer.cxx 2015-02-12 19:39:32.327789300 +0000 +@@ -265,6 +265,11 @@ static void usage(const char *programNam " %s [parameters] -listen [port] [parameters]\n", programName, programName); fprintf(stderr,"\n" @@ -133,104 +24,28 @@ diff -up tigervnc-1.2.80-20130314svn5065/vncviewer/vncviewer.cxx.manpages tigerv "Parameters can be turned on with - or off with -=0\n" "Parameters which take a value can be specified as " "- \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. - +diff -up tigervnc-1.4.2/vncviewer/vncviewer.man.manpages tigervnc-1.4.2/vncviewer/vncviewer.man +--- tigervnc-1.4.2/vncviewer/vncviewer.man.manpages 2015-02-12 19:39:32.327789300 +0000 ++++ tigervnc-1.4.2/vncviewer/vncviewer.man 2015-02-13 09:54:55.042903357 +0000 +@@ -219,6 +219,10 @@ This option specifies the preferred enco + Disable lossy JPEG compression in Tight encoding. Default is off. + . .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 + .B \-QualityLevel \fIlevel\fP + JPEG quality level. 0 = Low, 9 = High. May be adjusted automatically if + \fB-AutoSelect\fP is turned on. Default is 8. +@@ -271,6 +275,10 @@ command is executed with the environment + \fIR\fR, and \fIG\fR taken the values of the local port number, the remote host, the port number on the remote host, and the gateway machine respectively. - ++. +.TP -+\fB\-ZlibLevel\fR \fIlevel\fR ++.B \-ZlibLevel +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), + + .SH FILES + .TP diff --git a/tigervnc-pointersync.patch b/tigervnc-pointersync.patch deleted file mode 100644 index 3ac8f2c..0000000 --- a/tigervnc-pointersync.patch +++ /dev/null @@ -1,25 +0,0 @@ -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; - } - diff --git a/tigervnc-setcursor-crash.patch b/tigervnc-setcursor-crash.patch deleted file mode 100644 index 1efbd0e..0000000 --- a/tigervnc-setcursor-crash.patch +++ /dev/null @@ -1,13 +0,0 @@ -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-zrle-crash.patch b/tigervnc-zrle-crash.patch deleted file mode 100644 index 74545d7..0000000 --- a/tigervnc-zrle-crash.patch +++ /dev/null @@ -1,69 +0,0 @@ -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/tigervnc.spec b/tigervnc.spec index e24e9df..54f3057 100644 --- a/tigervnc.spec +++ b/tigervnc.spec @@ -1,13 +1,13 @@ Name: tigervnc -Version: 1.3.0 -Release: 17%{?dist} +Version: 1.4.2 +Release: 1%{?dist} Summary: A TigerVNC remote display system Group: User Interface/Desktops License: GPLv2+ URL: http://www.tigervnc.com -Source0: %{name}-%{version}.tar.bz2 +Source0: %{name}-%{version}.tar.gz Source1: vncserver.service Source2: vncserver.sysconfig Source3: 10-libvnc.conf @@ -39,21 +39,15 @@ Obsoletes: tightvnc < 1.5.0-0.15.20090204svn3586 Patch1: tigervnc-cookie.patch Patch2: tigervnc11-ldnow.patch -Patch3: tigervnc11-gethomedir.patch +Patch3: tigervnc-libvnc-os.patch Patch4: tigervnc11-rh692048.patch Patch5: tigervnc-inetd-nowait.patch -Patch6: tigervnc-setcursor-crash.patch Patch7: tigervnc-manpages.patch Patch8: tigervnc-getmaster.patch Patch9: tigervnc-shebang.patch Patch10: tigervnc-1.3.0-xserver-1.15.patch Patch11: tigervnc-format-security.patch -Patch12: tigervnc-zrle-crash.patch -Patch13: tigervnc-cursor.patch -Patch14: tigervnc-CVE-2014-0011.patch -Patch15: tigervnc-inputreset.patch -Patch16: tigervnc-pointersync.patch -Patch17: tigervnc-xstartup.patch +Patch14: tigervnc-xstartup.patch %description Virtual Network Computing (VNC) is a remote display system which @@ -150,7 +144,7 @@ This package contains icons for TigerVNC viewer %patch1 -p1 -b .cookie %patch2 -p1 -b .ldnow -%patch3 -p1 -b .gethomedir +%patch3 -p1 -b .libvnc-os %patch4 -p1 -b .rh692048 cp -r /usr/share/xorg-x11-server-source/* unix/xserver @@ -165,8 +159,6 @@ popd # mode (bug #920373). %patch5 -p1 -b .inetd-nowait -%patch6 -p1 -b .setcursor-crash - # Synchronise manpages and --help output (bug #980870). %patch7 -p1 -b .manpages @@ -181,23 +173,8 @@ popd # Fixed build failure with -Werror=format-security (bug #1037358). %patch11 -p1 -b .format-security -# Avoid invalid read when ZRLE connection closed (upstream bug #133). -%patch12 -p1 -b .zrle-crash - -# Fixed viewer crash when cursor has not been set (bug #1038701). -%patch13 -p1 -b .cursor - -# Fixed heap-based buffer overflow (CVE-2014-0011, bug #1050928). -%patch14 -p1 -b .CVE-2014-0011 - -# Input reset fixes from upstream (bug #1116956). -%patch15 -p1 -b .inputreset - -# Keep pointer in sync when using module (upstream bug #152). -%patch16 -p1 -b .pointersync - # Clearer xstartup file (bug #923655). -%patch17 -p1 -b .xstartup +%patch14 -p1 -b .xstartup %build %ifarch sparcv9 sparc64 s390 s390x @@ -371,6 +348,9 @@ fi %{_datadir}/icons/hicolor/*/apps/* %changelog +* Wed Feb 18 2015 Tim Waugh - 1.4.2-1 +- 1.4.2. + * Tue Jul 15 2014 Tim Waugh 1.3.0-17 - Actually apply patch for this earlier fix: - Clearer xstartup file (bug #923655). diff --git a/tigervnc11-gethomedir.patch b/tigervnc11-gethomedir.patch deleted file mode 100644 index 0a4252d..0000000 --- a/tigervnc11-gethomedir.patch +++ /dev/null @@ -1,20 +0,0 @@ -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 - diff --git a/tigervnc11-rh692048.patch b/tigervnc11-rh692048.patch index 924c1cf..310cb1b 100644 --- a/tigervnc11-rh692048.patch +++ b/tigervnc11-rh692048.patch @@ -1,19 +1,19 @@ -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)", +diff -up tigervnc-1.4.2/common/rfb/SecurityClient.cxx.rh692048 tigervnc-1.4.2/common/rfb/SecurityClient.cxx +--- tigervnc-1.4.2/common/rfb/SecurityClient.cxx.rh692048 2015-02-12 18:32:50.168861186 +0000 ++++ tigervnc-1.4.2/common/rfb/SecurityClient.cxx 2015-02-12 18:33:13.168003696 +0000 +@@ -49,7 +49,7 @@ StringParameter SecurityClient::secTypes + #endif + ")", #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 Security::GetEn +diff -up tigervnc-1.4.2/common/rfb/Security.cxx.rh692048 tigervnc-1.4.2/common/rfb/Security.cxx +--- tigervnc-1.4.2/common/rfb/Security.cxx.rh692048 2015-01-23 23:37:23.000000000 +0000 ++++ tigervnc-1.4.2/common/rfb/Security.cxx 2015-02-12 18:32:50.168861186 +0000 +@@ -68,7 +68,6 @@ const std::list Security::GetEn list result; list::iterator i; @@ -21,7 +21,7 @@ diff -up tigervnc-1.0.90-20110314svn4359/common/rfb/Security.cxx.rh690245 tigerv for (i = enabledSecTypes.begin(); i != enabledSecTypes.end(); i++) if (*i < 0x100) result.push_back(*i); -@@ -105,8 +104,6 @@ bool Security::IsSupported(U32 secType) +@@ -106,8 +105,6 @@ bool Security::IsSupported(U32 secType) for (i = enabledSecTypes.begin(); i != enabledSecTypes.end(); i++) if (*i == secType) return true; @@ -30,14 +30,14 @@ diff -up tigervnc-1.0.90-20110314svn4359/common/rfb/Security.cxx.rh690245 tigerv 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)", +diff -up tigervnc-1.4.2/common/rfb/SecurityServer.cxx.rh692048 tigervnc-1.4.2/common/rfb/SecurityServer.cxx +--- tigervnc-1.4.2/common/rfb/SecurityServer.cxx.rh692048 2015-02-12 18:32:50.168861186 +0000 ++++ tigervnc-1.4.2/common/rfb/SecurityServer.cxx 2015-02-12 18:33:24.977076868 +0000 +@@ -43,7 +43,7 @@ StringParameter SecurityServer::secTypes + #endif + ")", #ifdef HAVE_GNUTLS -- "VncAuth,TLSVnc", +- "TLSVnc,VncAuth", + "VncAuth", #else "VncAuth",