From 590f96d67c147444747a93db88efe9f5983173bb Mon Sep 17 00:00:00 2001 From: Jan Grulich Date: Wed, 19 Aug 2015 20:38:23 +0200 Subject: [PATCH] Update to 1.5.0 --- .gitignore | 1 + sources | 2 +- tigervnc-format-security.patch | 12 --- tigervnc-getmaster.patch | 110 ++++++++++----------- tigervnc-gnutls-3.4.patch | 68 ------------- tigervnc-inetd-nowait.patch | 57 ++++++----- tigervnc-libvnc-os.patch | 20 ++-- tigervnc-xorg118-QueueKeyboardEvents.patch | 8 +- tigervnc-xserver118.patch | 42 ++------ tigervnc.spec | 33 +++---- tigervnc11-ldnow.patch | 12 --- 11 files changed, 119 insertions(+), 246 deletions(-) delete mode 100644 tigervnc-format-security.patch delete mode 100644 tigervnc-gnutls-3.4.patch delete mode 100644 tigervnc11-ldnow.patch diff --git a/.gitignore b/.gitignore index d08b7af..fc3027d 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,4 @@ tigervnc-1.0.90-20100721svn4113.tar.bz2 /tigervnc-1.4.2.tar.gz /tigervnc-1.4.3.tar.gz /tigervnc-49d0629dd87c0eb695d72dec7481e9169f55ae9e.tar.gz +/tigervnc-1.5.0.tar.gz diff --git a/sources b/sources index d1d1306..3853efd 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -7df7399ed51716d7ed72ecdf19a4e14f tigervnc-49d0629dd87c0eb695d72dec7481e9169f55ae9e.tar.gz +b11cc4c4d5249b9b8e355ee6f47ec4fe tigervnc-1.5.0.tar.gz diff --git a/tigervnc-format-security.patch b/tigervnc-format-security.patch deleted file mode 100644 index 36f3fc8..0000000 --- a/tigervnc-format-security.patch +++ /dev/null @@ -1,12 +0,0 @@ -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; - } diff --git a/tigervnc-getmaster.patch b/tigervnc-getmaster.patch index ed1d40e..66ce121 100644 --- a/tigervnc-getmaster.patch +++ b/tigervnc-getmaster.patch @@ -1,96 +1,96 @@ -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) +diff -up tigervnc-1.4.2/unix/xserver/hw/vnc/c.getmaster tigervnc-1.4.2/unix/xserver/hw/vnc/InputXKB.c +--- tigervnc-1.4.2/unix/xserver/hw/vnc/InputXKB.c.getmaster 2015-01-23 23:37:23.000000000 +0000 ++++ tigervnc-1.4.2/unix/xserver/hw/vnc/InputXKB.c 2015-02-13 12:32:54.398502082 +0000 +@@ -210,10 +210,7 @@ void vncPrepareInputDevices(void) + + unsigned vncGetKeyboardState(void) { - DeviceIntPtr master; - -- master = GetMaster(keyboardDev, KEYBOARD_OR_FLOAT); +- master = GetMaster(vncKeyboardDev, KEYBOARD_OR_FLOAT); - return XkbStateFieldFromRec(&master->key->xkbInfo->state); -+ return XkbStateFieldFromRec(&keyboardDev->master->key->xkbInfo->state); ++ return XkbStateFieldFromRec(&vncKeyboardDev->master->key->xkbInfo->state); } - - unsigned InputDevice::getLevelThreeMask(void) -@@ -232,7 +229,7 @@ unsigned InputDevice::getLevelThreeMask( + + unsigned vncGetLevelThreeMask(void) +@@ -232,7 +229,7 @@ unsigned InputDevice::vncGetLevelThreeMask( return 0; } - -- xkb = GetMaster(keyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc; -+ xkb = keyboardDev->master->key->xkbInfo->desc; - + +- xkb = GetMaster(vncKeyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc; ++ xkb = vncKeyboardDev->master->key->xkbInfo->desc; + act = XkbKeyActionPtr(xkb, keycode, state); if (act == NULL) -@@ -257,7 +254,7 @@ KeyCode InputDevice::pressShift(void) +@@ -257,7 +254,7 @@ KeyCode InputDevice::vncPressShift(void) if (state & ShiftMask) return 0; - -- xkb = GetMaster(keyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc; -+ xkb = keyboardDev->master->key->xkbInfo->desc; + +- xkb = GetMaster(vncKeyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc; ++ xkb = vncKeyboardDev->master->key->xkbInfo->desc; for (key = xkb->min_key_code; key <= xkb->max_key_code; key++) { XkbAction *act; unsigned char mask; -@@ -294,7 +291,7 @@ std::list InputDevice::releaseS - if (!(state & ShiftMask)) - return keys; - -- master = GetMaster(keyboardDev, KEYBOARD_OR_FLOAT); -+ master = keyboardDev->master; +@@ -299,7 +296,7 @@ size_t vncReleaseShift(KeyCode *keys, size_t maxKeys) + + count = 0; + +- master = GetMaster(vncKeyboardDev, KEYBOARD_OR_FLOAT); ++ master = vncKeyboardDev->master; xkb = master->key->xkbInfo->desc; for (key = xkb->min_key_code; key <= xkb->max_key_code; key++) { XkbAction *act; -@@ -347,7 +344,7 @@ KeyCode InputDevice::pressLevelThree(voi +@@ -347,7 +344,7 @@ KeyCode InputDevice::vncPressLevelThree(voi return 0; } - -- xkb = GetMaster(keyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc; -+ xkb = keyboardDev->master->key->xkbInfo->desc; - + +- xkb = GetMaster(vncKeyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc; ++ xkb = vncKeyboardDev->master->key->xkbInfo->desc; + act = XkbKeyActionPtr(xkb, keycode, state); if (act == NULL) -@@ -375,7 +372,7 @@ std::list InputDevice::releaseL - if (!(state & mask)) - return keys; - -- master = GetMaster(keyboardDev, KEYBOARD_OR_FLOAT); -+ master = keyboardDev->master; +@@ -386,7 +383,7 @@ size_t vncReleaseLevelThree(KeyCode *keys, size_t maxKeys) + + count = 0; + +- master = GetMaster(vncKeyboardDev, KEYBOARD_OR_FLOAT); ++ master = vncKeyboardDev->master; xkb = master->key->xkbInfo->desc; for (key = xkb->min_key_code; key <= xkb->max_key_code; key++) { XkbAction *act; -@@ -416,7 +413,7 @@ KeyCode InputDevice::keysymToKeycode(Key +@@ -416,7 +413,7 @@ KeyCode InputDevice::vncKeysymToKeycode(Key if (new_state != NULL) *new_state = state; - -- xkb = GetMaster(keyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc; -+ xkb = keyboardDev->master->key->xkbInfo->desc; + +- xkb = GetMaster(vncKeyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc; ++ xkb = vncKeyboardDev->master->key->xkbInfo->desc; for (key = xkb->min_key_code; key <= xkb->max_key_code; key++) { unsigned int state_out; KeySym dummy; -@@ -473,7 +470,7 @@ bool InputDevice::isLockModifier(KeyCode +@@ -473,7 +470,7 @@ bool InputDevice::vncIsLockModifier(KeyCode XkbDescPtr xkb; XkbAction *act; - -- xkb = GetMaster(keyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc; -+ xkb = keyboardDev->master->key->xkbInfo->desc; - + +- xkb = GetMaster(vncKeyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc; ++ xkb = vncKeyboardDev->master->key->xkbInfo->desc; + act = XkbKeyActionPtr(xkb, keycode, state); if (act == NULL) -@@ -511,7 +508,7 @@ bool InputDevice::isAffectedByNumLock(Ke +@@ -524,7 +521,7 @@ int vncIsAffectedByNumLock(KeyCode keycode) if (numlock_keycode == 0) - return false; - -- xkb = GetMaster(keyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc; -+ xkb = keyboardDev->master->key->xkbInfo->desc; - + return 0; + +- xkb = GetMaster(vncKeyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc; ++ xkb = vncKeyboardDev->master->key->xkbInfo->desc; + act = XkbKeyActionPtr(xkb, numlock_keycode, state); if (act == NULL) -@@ -545,7 +542,7 @@ KeyCode InputDevice::addKeysym(KeySym ke +@@ -545,7 +542,7 @@ KeyCode InputDevice::vncAddKeysym(KeySym ke KeySym *syms; KeySym upper, lower; - -- master = GetMaster(keyboardDev, KEYBOARD_OR_FLOAT); -+ master = keyboardDev->master; + +- master = GetMaster(vncKeyboardDev, KEYBOARD_OR_FLOAT); ++ master = vncKeyboardDev->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-gnutls-3.4.patch b/tigervnc-gnutls-3.4.patch deleted file mode 100644 index 491e488..0000000 --- a/tigervnc-gnutls-3.4.patch +++ /dev/null @@ -1,68 +0,0 @@ -Patch by Nikos Mavrogiannopoulos - -gnutls 3.4.0 drops gnutls_kx_set_priority which is used by tigervnc. The -attached patch fixes this issue and allows tigervnc to compile with new gnutls -versions. - -diff --git a/common/rfb/CSecurityTLS.cxx b/common/rfb/CSecurityTLS.cxx -index 222748c..f7e9dfd 100644 ---- a/common/rfb/CSecurityTLS.cxx -+++ b/common/rfb/CSecurityTLS.cxx -@@ -202,13 +202,12 @@ bool CSecurityTLS::processMsg(CConnection* cc) - - void CSecurityTLS::setParam() - { -- static const int kx_anon_priority[] = { GNUTLS_KX_ANON_DH, 0 }; -- static const int kx_priority[] = { GNUTLS_KX_DHE_DSS, GNUTLS_KX_RSA, -- GNUTLS_KX_DHE_RSA, GNUTLS_KX_SRP, 0 }; -+ int ret; - - if (anon) { -- if (gnutls_kx_set_priority(session, kx_anon_priority) != GNUTLS_E_SUCCESS) -- throw AuthFailureException("gnutls_kx_set_priority failed"); -+ ret = gnutls_priority_set_direct(session, "NORMAL:+ANON-ECDH:+ANON-DH", NULL); -+ if (ret < 0) -+ throw AuthFailureException("gnutls_priority_set_direct failed"); - - if (gnutls_anon_allocate_client_credentials(&anon_cred) != GNUTLS_E_SUCCESS) - throw AuthFailureException("gnutls_anon_allocate_client_credentials failed"); -@@ -218,8 +217,9 @@ void CSecurityTLS::setParam() - - vlog.debug("Anonymous session has been set"); - } else { -- if (gnutls_kx_set_priority(session, kx_priority) != GNUTLS_E_SUCCESS) -- throw AuthFailureException("gnutls_kx_set_priority failed"); -+ ret = gnutls_set_default_priority(session); -+ if (ret < 0) -+ throw AuthFailureException("gnutls_set_default_priority failed"); - - if (gnutls_certificate_allocate_credentials(&cert_cred) != GNUTLS_E_SUCCESS) - throw AuthFailureException("gnutls_certificate_allocate_credentials failed"); -diff --git a/common/rfb/SSecurityTLS.cxx b/common/rfb/SSecurityTLS.cxx -index d4e88d7..7ac4652 100644 ---- a/common/rfb/SSecurityTLS.cxx -+++ b/common/rfb/SSecurityTLS.cxx -@@ -166,13 +166,17 @@ bool SSecurityTLS::processMsg(SConnection *sc) - - void SSecurityTLS::setParams(gnutls_session session) - { -- static const int kx_anon_priority[] = { GNUTLS_KX_ANON_DH, 0 }; -- static const int kx_priority[] = { GNUTLS_KX_DHE_DSS, GNUTLS_KX_RSA, -- GNUTLS_KX_DHE_RSA, GNUTLS_KX_SRP, 0 }; -+ int ret; - -- if (gnutls_kx_set_priority(session, anon ? kx_anon_priority : kx_priority) -- != GNUTLS_E_SUCCESS) -- throw AuthFailureException("gnutls_kx_set_priority failed"); -+ if (anon) { -+ ret = gnutls_priority_set_direct(session, "NORMAL:+ANON-ECDH:+ANON-DH", NULL); -+ if (ret < 0) -+ throw AuthFailureException("gnutls_priority_set_direct failed"); -+ } else { -+ ret = gnutls_set_default_priority(session); -+ if (ret < 0) -+ throw AuthFailureException("gnutls_set_default_priority failed"); -+ } - - if (gnutls_dh_params_init(&dh_params) != GNUTLS_E_SUCCESS) - throw AuthFailureException("gnutls_dh_params_init failed"); diff --git a/tigervnc-inetd-nowait.patch b/tigervnc-inetd-nowait.patch index 89b3d19..922acee 100644 --- a/tigervnc-inetd-nowait.patch +++ b/tigervnc-inetd-nowait.patch @@ -1,35 +1,37 @@ -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 +diff --git a/common/network/TcpSocket.cxx b/common/network/TcpSocket.cxx +index 1ebaeec..2d7a52f 100644 +--- a/common/network/TcpSocket.cxx ++++ b/common/network/TcpSocket.cxx +@@ -369,18 +369,12 @@ bool TcpSocket::cork(int sock, bool enable) { #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; +-{ +- vnc_sockaddr_t sa; +- socklen_t sa_size = sizeof(sa); +- return getsockname(sock, &sa.u.sa, &sa_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; ++bool TcpSocket::isListening(int sock) + { +- vnc_sockaddr_t sa; +- socklen_t sa_size = sizeof(sa); +- return getpeername(sock, &sa.u.sa, &sa_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 { - +diff --git a/common/network/TcpSocket.h b/common/network/TcpSocket.h +index 979cd4b..2bfe47b 100644 +--- a/common/network/TcpSocket.h ++++ b/common/network/TcpSocket.h +@@ -65,8 +65,7 @@ namespace network { + static bool enableNagles(int sock, bool enable); static bool cork(int sock, bool enable); - static bool isSocket(int sock); @@ -38,16 +40,17 @@ diff -up tigervnc-1.2.80-20130314svn5065/common/network/TcpSocket.h.inetd-nowait 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; +diff --git a/unix/xserver/hw/vnc/vncExtInit.cc b/unix/xserver/hw/vnc/vncExtInit.cc +index e307e31..dc449bd 100644 +--- a/unix/xserver/hw/vnc/vncExtInit.cc ++++ b/unix/xserver/hw/vnc/vncExtInit.cc +@@ -137,8 +137,7 @@ void vncExtensionInit(void) + std::list listeners; + std::list httpListeners; 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); + listeners.push_back (network::TcpListener(vncInetdSock)); vlog.info("inetd wait"); diff --git a/tigervnc-libvnc-os.patch b/tigervnc-libvnc-os.patch index 376df7d..0c66755 100644 --- a/tigervnc-libvnc-os.patch +++ b/tigervnc-libvnc-os.patch @@ -1,20 +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 +diff --git a/unix/xserver/hw/vnc/Makefile.am b/unix/xserver/hw/vnc/Makefile.am +index d7ab259..fb477c5 100644 +--- a/unix/xserver/hw/vnc/Makefile.am ++++ b/unix/xserver/hw/vnc/Makefile.am @@ -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 - + + noinst_LTLIBRARIES = libvnccommon.la +@@ -64,6 +65,6 @@ libvnc_la_CPPFLAGS = $(XVNC_CPPFLAGS) -I$(TIGERVNC_SRCDIR)/common -UHAVE_CONFIG_ + 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-xorg118-QueueKeyboardEvents.patch b/tigervnc-xorg118-QueueKeyboardEvents.patch index 5470fe1..4eb738b 100644 --- a/tigervnc-xorg118-QueueKeyboardEvents.patch +++ b/tigervnc-xorg118-QueueKeyboardEvents.patch @@ -1,7 +1,7 @@ -diff -Nur tigervnc-49d0629dd87c0eb695d72dec7481e9169f55ae9e.orig/unix/xserver/hw/vnc/Input.cc tigervnc-49d0629dd87c0eb695d72dec7481e9169f55ae9e/unix/xserver/hw/vnc/Input.cc ---- tigervnc-49d0629dd87c0eb695d72dec7481e9169f55ae9e.orig/unix/xserver/hw/vnc/Input.cc 2015-03-01 12:58:35.000000000 -0700 -+++ tigervnc-49d0629dd87c0eb695d72dec7481e9169f55ae9e/unix/xserver/hw/vnc/Input.cc 2015-08-04 10:02:26.234604801 -0600 -@@ -378,7 +378,7 @@ +diff --git a/unix/xserver/hw/vnc/Input.c b/unix/xserver/hw/vnc/Input.c +--- a/unix/xserver/hw/vnc/Input.c ++++ b/unix/xserver/hw/vnc/Input.c +@@ -301,7 +301,7 @@ static inline void pressKey(DeviceIntPtr dev, int kc, Bool down, const char *msg n = GetKeyboardEvents(eventq, dev, action, kc); enqueueEvents(dev, n); #else diff --git a/tigervnc-xserver118.patch b/tigervnc-xserver118.patch index c6c20d8..b751067 100644 --- a/tigervnc-xserver118.patch +++ b/tigervnc-xserver118.patch @@ -1,46 +1,16 @@ diff -Nur tigervnc-49d0629dd87c0eb695d72dec7481e9169f55ae9e.orig/unix/xserver/hw/vnc/xorg-version.h tigervnc-49d0629dd87c0eb695d72dec7481e9169f55ae9e/unix/xserver/hw/vnc/xorg-version.h --- tigervnc-49d0629dd87c0eb695d72dec7481e9169f55ae9e.orig/unix/xserver/hw/vnc/xorg-version.h 2015-03-01 12:58:35.000000000 -0700 +++ tigervnc-49d0629dd87c0eb695d72dec7481e9169f55ae9e/unix/xserver/hw/vnc/xorg-version.h 2015-08-04 09:46:14.796336147 -0600 -@@ -48,8 +48,12 @@ - #define XORG 115 - #elif XORG_VERSION_CURRENT < ((1 * 10000000) + (16 * 100000) + (99 * 1000)) +@@ -48,8 +48,10 @@ #define XORG 116 -+#elif XORG_VERSION_CURRENT < ((1 * 10000000) + (17 * 100000) + (99 * 1000)) -+#define XORG 117 + #elif XORG_VERSION_CURRENT < ((1 * 10000000) + (17 * 100000) + (99 * 1000)) + #define XORG 117 +#elif XORG_VERSION_CURRENT < ((1 * 10000000) + (18 * 100000) + (99 * 1000)) +#define XORG 118 #else --#error "X.Org newer than 1.16 is not supported" +-#error "X.Org newer than 1.17 is not supported" +#error "X.Org newer than 1.18 is not supported" #endif - + #endif -diff -Nur tigervnc-49d0629dd87c0eb695d72dec7481e9169f55ae9e.orig/unix/xserver/hw/vnc/xvnc.cc tigervnc-49d0629dd87c0eb695d72dec7481e9169f55ae9e/unix/xserver/hw/vnc/xvnc.cc ---- tigervnc-49d0629dd87c0eb695d72dec7481e9169f55ae9e.orig/unix/xserver/hw/vnc/xvnc.cc 2015-03-01 12:58:35.000000000 -0700 -+++ tigervnc-49d0629dd87c0eb695d72dec7481e9169f55ae9e/unix/xserver/hw/vnc/xvnc.cc 2015-08-04 09:48:07.632507101 -0600 -@@ -717,9 +717,9 @@ - entries = pmap->pVisual->ColormapEntries; - pVisual = pmap->pVisual; - -- ppix = (Pixel *)xalloc(entries * sizeof(Pixel)); -- prgb = (xrgb *)xalloc(entries * sizeof(xrgb)); -- defs = (xColorItem *)xalloc(entries * sizeof(xColorItem)); -+ ppix = (Pixel *)calloc(entries, sizeof(Pixel)); -+ prgb = (xrgb *)calloc(entries, sizeof(xrgb)); -+ defs = (xColorItem *)calloc(entries, sizeof(xColorItem)); - - for (i = 0; i < entries; i++) ppix[i] = i; - /* XXX truecolor */ -@@ -738,9 +738,9 @@ - } - (*pmap->pScreen->StoreColors)(pmap, entries, defs); - -- xfree(ppix); -- xfree(prgb); -- xfree(defs); -+ free(ppix); -+ free(prgb); -+ free(defs); - } - } - + diff --git a/tigervnc.spec b/tigervnc.spec index 7bdfe9a..abdeff6 100644 --- a/tigervnc.spec +++ b/tigervnc.spec @@ -1,11 +1,6 @@ -# https://fedoraproject.org/wiki/Packaging:SourceURL?rd=Packaging/SourceURL#Github -# Full hash for v1.4.3 tag: -%global commit 49d0629dd87c0eb695d72dec7481e9169f55ae9e -%global shortcommit %(c=%{commit}; echo ${c:0:7}) - Name: tigervnc -Version: 1.4.3 -Release: 12%{?dist} +Version: 1.5.0 +Release: 1%{?dist} Summary: A TigerVNC remote display system %global _hardened_build 1 @@ -14,7 +9,7 @@ Group: User Interface/Desktops License: GPLv2+ URL: http://www.tigervnc.com -Source0: https://github.com/TigerVNC/tigervnc/archive/%{commit}/tigervnc-%{commit}.tar.gz +Source0: %{name}-%{version}.tar.gz Source1: vncserver.service Source2: vncserver.sysconfig Source3: 10-libvnc.conf @@ -51,18 +46,15 @@ Provides: tightvnc = 1.5.0-0.15.20090204svn3586 Obsoletes: tightvnc < 1.5.0-0.15.20090204svn3586 Patch1: tigervnc-cookie.patch -Patch2: tigervnc11-ldnow.patch Patch3: tigervnc-libvnc-os.patch Patch4: tigervnc11-rh692048.patch Patch5: tigervnc-inetd-nowait.patch Patch7: tigervnc-manpages.patch Patch8: tigervnc-getmaster.patch Patch9: tigervnc-shebang.patch -Patch11: tigervnc-format-security.patch Patch14: tigervnc-xstartup.patch Patch15: tigervnc-xserver118.patch -Patch16: tigervnc-gnutls-3.4.patch -Patch17: tigervnc-xorg118-QueueKeyboardEvents.patch +Patch17: tigervnc-xorg118-QueueKeyboardEvents.patch # This is tigervnc-%%{version}/unix/xserver116.patch rebased on the latest xorg Patch100: tigervnc-xserver116-rebased.patch @@ -158,10 +150,9 @@ BuildArch: noarch This package contains icons for TigerVNC viewer %prep -%setup -qn %{name}-%{commit} +%setup -q %patch1 -p1 -b .cookie -%patch2 -p1 -b .ldnow %patch3 -p1 -b .libvnc-os %patch4 -p1 -b .rh692048 @@ -186,18 +177,15 @@ popd # Don't use shebang in vncserver script. %patch9 -p1 -b .shebang -# Fixed build failure with -Werror=format-security (bug #1037358). -%patch11 -p1 -b .format-security - # Clearer xstartup file (bug #923655). %patch14 -p1 -b .xstartup # Allow build against xorg-x11-server-1.18. %patch15 -p1 -b .xserver118 -# Fix the build with gnutls 3.4 (bug #1218518). -%patch16 -p1 -b .gnutls-3.4 -%patch17 -p1 +%if 0%{?fedora} > 23 +%patch17 -p1 -b .xorg118-QueueKeyboardEvents +%endif %build %ifarch sparcv9 sparc64 s390 s390x @@ -366,7 +354,10 @@ fi %{_datadir}/icons/hicolor/*/apps/* %changelog -* Tue Aug 04 2015 Kevin Fenzi 1.4.3-12 +* Wed Aug 19 2015 Jan Grulich - 1.5.0-1 +- 1.5.0 + +* Tue Aug 04 2015 Kevin Fenzi - 1.4.3-12 - Rebuild to fix broken deps and build against xorg 1.18 prerelease * Thu Jun 25 2015 Tim Waugh - 1.4.3-11 diff --git a/tigervnc11-ldnow.patch b/tigervnc11-ldnow.patch deleted file mode 100644 index f6edd09..0000000 --- a/tigervnc11-ldnow.patch +++ /dev/null @@ -1,12 +0,0 @@ -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) -