[packages/tigervnc] - up to 1.8.0
baggins
baggins at pld-linux.org
Tue Dec 26 22:34:35 CET 2017
commit 377c2b5b58535ebc95fa045deaf15e3e9e99dafa
Author: Jan Rękorajski <baggins at pld-linux.org>
Date: Tue Dec 26 22:34:22 2017 +0100
- up to 1.8.0
tigervnc-libvnc-os.patch | 20 ---
tigervnc-xserver.patch | 422 -----------------------------------------------
tigervnc.spec | 28 +---
3 files changed, 5 insertions(+), 465 deletions(-)
---
diff --git a/tigervnc.spec b/tigervnc.spec
index fa237c8..2632735 100644
--- a/tigervnc.spec
+++ b/tigervnc.spec
@@ -3,19 +3,17 @@
Summary: A TigerVNC remote display system
Summary(pl.UTF-8): System zdalnego dostępu TigerVNC
Name: tigervnc
-Version: 1.7.1
-Release: 6
+Version: 1.8.0
+Release: 1
License: GPL v2
Group: X11/Applications/Networking
Source0: https://github.com/TigerVNC/tigervnc/archive/v%{version}.tar.gz?/%{name}-%{version}.tar.gz
-# Source0-md5: 82dbb9d178b8e313b51f1651e0398dfe
+# Source0-md5: 5c9a80dd4b99b4eb19f535db5ce5830f
Source1: %{name}.desktop
Source2: vncserver.init
Source3: vncserver.sysconfig
Source4: vncserver.target
Source5: vncserver-service-generator
-Patch0: %{name}-xserver.patch
-Patch1: %{name}-libvnc-os.patch
Patch2: %{name}-getmaster.patch
Patch3: %{name}-utilize-system-crypto-policies.patch
Patch4: %{name}-xstartup.patch
@@ -177,8 +175,6 @@ zdalny dostęp do pulpitu.
%prep
%setup -q
-%patch0 -p1
-%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
@@ -195,16 +191,12 @@ cd unix/xserver
%{__aclocal} -I m4
%{__autoconf}
%{__automake}
-export CXXFLAGS="%{rpmcxxflags} -fpermissive"
%configure \
--with-os-name="PLD/Linux" \
--with-os-vendor="PLD/Team" \
- --disable-config-dbus \
--disable-config-hal \
--disable-config-udev \
- --without-xmlto \
- --without-fop \
- --without-doxygen \
+ --without-dtrace \
--disable-devel-docs \
--with-default-font-path="%{_fontsdir}/misc,%{_fontsdir}/TTF,%{_fontsdir}/OTF,%{_fontsdir}/Type1,%{_fontsdir}/100dpi,%{_fontsdir}/75dpi" \
--disable-xorg \
@@ -214,25 +206,14 @@ export CXXFLAGS="%{rpmcxxflags} -fpermissive"
--disable-xwin \
--disable-xephyr \
--disable-kdrive \
- --disable-xfbdev \
--disable-dri \
--enable-dri2 \
--enable-dri3 \
--with-pic \
--disable-static \
- --disable-xinerama \
- --disable-composite \
--disable-wayland \
- --disable-xwayland \
--enable-glx \
- --enable-glx-tls \
- --enable-aiglx \
- --enable-dga \
- --enable-glx-tls \
--enable-install-libxf86config \
- --enable-record \
- --disable-xfake \
- --enable-secure-rpc \
--with-xkb-output=/var/lib/xkb \
--disable-unit-tests
@@ -318,6 +299,7 @@ fi
%attr(755,root,root) %{_bindir}/vncviewer
%{_mandir}/man1/vncviewer.1*
%{_desktopdir}/tigervnc.desktop
+%{_desktopdir}/vncviewer.desktop
%{_iconsdir}/hicolor/*/apps/tigervnc.*
%files server
diff --git a/tigervnc-libvnc-os.patch b/tigervnc-libvnc-os.patch
deleted file mode 100644
index 0c66755..0000000
--- a/tigervnc-libvnc-os.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-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)
-
- 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-xserver.patch b/tigervnc-xserver.patch
deleted file mode 100644
index 067960b..0000000
--- a/tigervnc-xserver.patch
+++ /dev/null
@@ -1,422 +0,0 @@
-diff -up tigervnc-1.7.0/unix/xserver/hw/vnc/vncBlockHandler.c.xserver119 tigervnc-1.7.0/unix/xserver/hw/vnc/vncBlockHandler.c
---- tigervnc-1.7.0/unix/xserver/hw/vnc/vncBlockHandler.c.xserver119 2016-09-08 12:31:18.000000000 +0200
-+++ tigervnc-1.7.0/unix/xserver/hw/vnc/vncBlockHandler.c 2016-10-04 17:17:35.618889747 +0200
-@@ -30,6 +30,23 @@
-
- #include "vncExtInit.h"
- #include "vncBlockHandler.h"
-+#include "xorg-version.h"
-+
-+#if XORG >= 119
-+
-+static void vncBlockHandler(void* data, void* timeout)
-+{
-+ vncCallBlockHandlers(timeout);
-+}
-+
-+void vncRegisterBlockHandlers(void)
-+{
-+ if (!RegisterBlockAndWakeupHandlers(vncBlockHandler,
-+ (ServerWakeupHandlerProcPtr)NoopDDA, 0))
-+ FatalError("RegisterBlockAndWakeupHandlers() failed\n");
-+}
-+
-+#else
-
- static void vncBlockHandler(void * data, OSTimePtr t, void * readmask);
- static void vncWakeupHandler(void * data, int nfds, void * readmask);
-@@ -144,3 +161,5 @@ static void vncWriteWakeupHandlerFallbac
-
- vncWriteWakeupHandler(ret, &fallbackFds);
- }
-+
-+#endif
-diff -up tigervnc-1.7.0/unix/xserver/hw/vnc/vncExtInit.cc.xserver119 tigervnc-1.7.0/unix/xserver/hw/vnc/vncExtInit.cc
---- tigervnc-1.7.0/unix/xserver/hw/vnc/vncExtInit.cc.xserver119 2016-09-08 12:31:18.000000000 +0200
-+++ tigervnc-1.7.0/unix/xserver/hw/vnc/vncExtInit.cc 2016-10-04 17:17:35.618889747 +0200
-@@ -241,6 +241,17 @@ int vncExtensionIsActive(int scrIdx)
- return (desktop[scrIdx] != NULL);
- }
-
-+#if XORG >= 119
-+
-+void vncCallBlockHandlers(int* timeout)
-+{
-+ for (int scr = 0; scr < vncGetScreenCount(); scr++)
-+ if (desktop[scr])
-+ desktop[scr]->blockHandler(timeout);
-+}
-+
-+#else
-+
- void vncCallReadBlockHandlers(fd_set * fds, struct timeval ** timeout)
- {
- for (int scr = 0; scr < vncGetScreenCount(); scr++)
-@@ -269,6 +280,8 @@ void vncCallWriteWakeupHandlers(fd_set *
- desktop[scr]->writeWakeupHandler(fds, nfds);
- }
-
-+#endif
-+
- int vncGetAvoidShiftNumLock(void)
- {
- return (bool)avoidShiftNumLock;
-diff -up tigervnc-1.7.0/unix/xserver/hw/vnc/vncExtInit.h.xserver119 tigervnc-1.7.0/unix/xserver/hw/vnc/vncExtInit.h
---- tigervnc-1.7.0/unix/xserver/hw/vnc/vncExtInit.h.xserver119 2016-09-08 12:31:18.000000000 +0200
-+++ tigervnc-1.7.0/unix/xserver/hw/vnc/vncExtInit.h 2016-10-04 17:17:35.618889747 +0200
-@@ -22,6 +22,7 @@
- #include <stdint.h>
- #include <stddef.h>
- #include <sys/select.h>
-+#include "xorg-version.h"
-
- // Only from C++
- #ifdef __cplusplus
-@@ -52,10 +53,14 @@ extern int vncInetdSock;
- void vncExtensionInit(void);
- int vncExtensionIsActive(int scrIdx);
-
-+#if XORG >= 119
-+void vncCallBlockHandlers(int* timeout);
-+#else
- void vncCallReadBlockHandlers(fd_set * fds, struct timeval ** timeout);
- void vncCallReadWakeupHandlers(fd_set * fds, int nfds);
- void vncCallWriteBlockHandlers(fd_set * fds, struct timeval ** timeout);
- void vncCallWriteWakeupHandlers(fd_set * fds, int nfds);
-+#endif
-
- int vncGetAvoidShiftNumLock(void);
-
-diff -up tigervnc-1.7.0/unix/xserver/hw/vnc/vncHooks.c.xserver119 tigervnc-1.7.0/unix/xserver/hw/vnc/vncHooks.c
---- tigervnc-1.7.0/unix/xserver/hw/vnc/vncHooks.c.xserver119 2016-09-08 12:31:18.000000000 +0200
-+++ tigervnc-1.7.0/unix/xserver/hw/vnc/vncHooks.c 2016-10-04 17:17:35.618889747 +0200
-@@ -128,9 +128,11 @@ static Bool vncHooksDisplayCursor(Device
- #if XORG <= 112
- static void vncHooksBlockHandler(int i, pointer blockData, pointer pTimeout,
- pointer pReadmask);
--#else
-+#elif XORG <= 118
- static void vncHooksBlockHandler(ScreenPtr pScreen, void * pTimeout,
- void * pReadmask);
-+#else
-+static void vncHooksBlockHandler(ScreenPtr pScreen, void * pTimeout);
- #endif
- #ifdef RENDER
- static void vncHooksComposite(CARD8 op, PicturePtr pSrc, PicturePtr pMask,
-@@ -716,9 +718,11 @@ out:
- #if XORG <= 112
- static void vncHooksBlockHandler(int i, pointer blockData, pointer pTimeout,
- pointer pReadmask)
--#else
-+#elif XORG <= 118
- static void vncHooksBlockHandler(ScreenPtr pScreen_, void * pTimeout,
- void * pReadmask)
-+#else
-+static void vncHooksBlockHandler(ScreenPtr pScreen_, void * pTimeout)
- #endif
- {
- #if XORG <= 112
-@@ -731,8 +735,10 @@ static void vncHooksBlockHandler(ScreenP
-
- #if XORG <= 112
- (*pScreen->BlockHandler) (i, blockData, pTimeout, pReadmask);
--#else
-+#elif XORG <= 118
- (*pScreen->BlockHandler) (pScreen, pTimeout, pReadmask);
-+#else
-+ (*pScreen->BlockHandler) (pScreen, pTimeout);
- #endif
-
- vncHooksScreen->ignoreHooks--;
-@@ -1033,12 +1039,21 @@ static void vncHooksCopyClip(GCPtr dst,
-
- // Unwrap and rewrap helpers
-
-+#if XORG >= 116
-+#define GC_OP_PROLOGUE(pGC, name)\
-+ vncHooksGCPtr pGCPriv = vncHooksGCPrivate(pGC);\
-+ const GCFuncs *oldFuncs = pGC->funcs;\
-+ pGC->funcs = pGCPriv->wrappedFuncs;\
-+ pGC->ops = pGCPriv->wrappedOps; \
-+ DBGPRINT((stderr,"vncHooks" #name " called\n"))
-+#else
- #define GC_OP_PROLOGUE(pGC, name)\
- vncHooksGCPtr pGCPriv = vncHooksGCPrivate(pGC);\
- GCFuncs *oldFuncs = pGC->funcs;\
- pGC->funcs = pGCPriv->wrappedFuncs;\
- pGC->ops = pGCPriv->wrappedOps; \
- DBGPRINT((stderr,"vncHooks" #name " called\n"))
-+#endif
-
- #define GC_OP_EPILOGUE(pGC)\
- pGCPriv->wrappedOps = pGC->ops;\
-diff -up tigervnc-1.7.0/unix/xserver/hw/vnc/xorg-version.h.xserver119 tigervnc-1.7.0/unix/xserver/hw/vnc/xorg-version.h
---- tigervnc-1.7.0/unix/xserver/hw/vnc/xorg-version.h.xserver119 2016-09-08 12:31:18.000000000 +0200
-+++ tigervnc-1.7.0/unix/xserver/hw/vnc/xorg-version.h 2016-10-04 17:24:51.640654527 +0200
-@@ -50,8 +50,10 @@
- #define XORG 117
- #elif XORG_VERSION_CURRENT < ((1 * 10000000) + (18 * 100000) + (99 * 1000))
- #define XORG 118
-+#elif XORG_VERSION_CURRENT < ((1 * 10000000) + (19 * 100000) + (99 * 1000))
-+#define XORG 119
- #else
--#error "X.Org newer than 1.18 is not supported"
-+#error "X.Org newer than 1.19 is not supported"
- #endif
-
- #endif
-diff -up tigervnc-1.7.0/unix/xserver/hw/vnc/XserverDesktop.cc.xserver119 tigervnc-1.7.0/unix/xserver/hw/vnc/XserverDesktop.cc
---- tigervnc-1.7.0/unix/xserver/hw/vnc/XserverDesktop.cc.xserver119 2016-09-08 12:31:18.000000000 +0200
-+++ tigervnc-1.7.0/unix/xserver/hw/vnc/XserverDesktop.cc 2016-10-04 17:23:47.171977905 +0200
-@@ -89,6 +89,30 @@ public:
- XserverDesktop* desktop;
- };
-
-+#if XORG >= 119
-+extern "C" {
-+/*
-+ * xserver NotifyFd callbacks. Note we also expect write notifies to work,
-+ * which only works with xserver >= 1.19.
-+ */
-+#include "os.h"
-+
-+static void HandleListenFd(int fd, int xevents, void *data)
-+{
-+ XserverDesktop *desktop = (XserverDesktop *)data;
-+
-+ desktop->handleListenFd(fd);
-+}
-+
-+static void HandleSocketFd(int fd, int xevents, void *data)
-+{
-+ XserverDesktop *desktop = (XserverDesktop *)data;
-+
-+ desktop->handleSocketFd(fd, xevents);
-+}
-+
-+}
-+#endif
-
- XserverDesktop::XserverDesktop(int screenIndex_,
- std::list<network::TcpListener*> listeners_,
-@@ -110,15 +134,35 @@ XserverDesktop::XserverDesktop(int scree
-
- if (!httpListeners.empty ())
- httpServer = new FileHTTPServer(this);
-+
-+#if XORG >= 119
-+ for (std::list<TcpListener*>::iterator i = listeners.begin();
-+ i != listeners.end();
-+ i++) {
-+ SetNotifyFd((*i)->getFd(), HandleListenFd, X_NOTIFY_READ, this);
-+ }
-+
-+ for (std::list<TcpListener*>::iterator i = httpListeners.begin();
-+ i != httpListeners.end();
-+ i++) {
-+ SetNotifyFd((*i)->getFd(), HandleListenFd, X_NOTIFY_READ, this);
-+ }
-+#endif
- }
-
- XserverDesktop::~XserverDesktop()
- {
- while (!listeners.empty()) {
-+#if XORG >= 119
-+ RemoveNotifyFd(listeners.back()->getFd());
-+#endif
- delete listeners.back();
- listeners.pop_back();
- }
- while (!httpListeners.empty()) {
-+#if XORG >= 119
-+ RemoveNotifyFd(listeners.back()->getFd());
-+#endif
- delete httpListeners.back();
- httpListeners.pop_back();
- }
-@@ -388,6 +432,140 @@ void XserverDesktop::add_copied(const rf
- }
- }
-
-+#if XORG >= 119
-+void XserverDesktop::handleListenFd(int fd)
-+{
-+ std::list<TcpListener*>::iterator i;
-+ SocketServer *fd_server = NULL;
-+ bool is_http = false;
-+
-+ for (i = listeners.begin(); i != listeners.end(); i++) {
-+ if ((*i)->getFd() == fd) {
-+ fd_server = server;
-+ break;
-+ }
-+ }
-+ if (httpServer && !fd_server) {
-+ for (i = httpListeners.begin(); i != httpListeners.end(); i++) {
-+ if ((*i)->getFd() == fd) {
-+ fd_server = httpServer;
-+ is_http = true;
-+ break;
-+ }
-+ }
-+ }
-+ if (!fd_server) {
-+ vlog.error("XserverDesktop::handleListenFd: Error cannot find fd");
-+ return;
-+ }
-+
-+ Socket* sock = (*i)->accept();
-+ sock->outStream().setBlocking(false);
-+ vlog.debug("new %sclient, sock %d", is_http ? "http " : "", sock->getFd());
-+ fd_server->addSocket(sock);
-+ SetNotifyFd(sock->getFd(), HandleSocketFd, X_NOTIFY_READ, this);
-+}
-+
-+void XserverDesktop::handleSocketFd(int fd, int xevents)
-+{
-+ std::list<Socket*> sockets;
-+ std::list<Socket*>::iterator i;
-+ SocketServer *fd_server = NULL;
-+ bool is_http = false;
-+
-+ server->getSockets(&sockets);
-+ for (i = sockets.begin(); i != sockets.end(); i++) {
-+ if ((*i)->getFd() == fd) {
-+ fd_server = server;
-+ break;
-+ }
-+ }
-+ if (httpServer && !fd_server) {
-+ httpServer->getSockets(&sockets);
-+ for (i = sockets.begin(); i != sockets.end(); i++) {
-+ if ((*i)->getFd() == fd) {
-+ fd_server = httpServer;
-+ is_http = true;
-+ break;
-+ }
-+ }
-+ }
-+ if (!fd_server) {
-+ vlog.error("XserverDesktop::handleSocketFd: Error cannot find fd");
-+ return;
-+ }
-+
-+ if (xevents & X_NOTIFY_READ)
-+ fd_server->processSocketReadEvent(*i);
-+
-+ if (xevents & X_NOTIFY_WRITE)
-+ fd_server->processSocketWriteEvent(*i);
-+
-+ if ((*i)->isShutdown()) {
-+ vlog.debug("%sclient gone, sock %d", is_http ? "http " : "", fd);
-+ RemoveNotifyFd(fd);
-+ fd_server->removeSocket(*i);
-+ if (!is_http)
-+ vncClientGone(fd);
-+ delete (*i);
-+ }
-+}
-+
-+void XserverDesktop::blockHandler(int* timeout)
-+{
-+ // We don't have a good callback for when we can init input devices[1],
-+ // 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.
-+ vncInitInputDevice();
-+
-+ try {
-+ std::list<Socket*> sockets;
-+ std::list<Socket*>::iterator i;
-+ server->getSockets(&sockets);
-+ for (i = sockets.begin(); i != sockets.end(); i++) {
-+ int fd = (*i)->getFd();
-+ if ((*i)->isShutdown()) {
-+ vlog.debug("client gone, sock %d",fd);
-+ server->removeSocket(*i);
-+ vncClientGone(fd);
-+ delete (*i);
-+ } else {
-+ /* Update existing NotifyFD to listen for write (or not) */
-+ if ((*i)->outStream().bufferUsage() > 0)
-+ SetNotifyFd(fd, HandleSocketFd, X_NOTIFY_READ | X_NOTIFY_WRITE, this);
-+ else
-+ SetNotifyFd(fd, HandleSocketFd, X_NOTIFY_READ, this);
-+ }
-+ }
-+ if (httpServer) {
-+ httpServer->getSockets(&sockets);
-+ for (i = sockets.begin(); i != sockets.end(); i++) {
-+ int fd = (*i)->getFd();
-+ if ((*i)->isShutdown()) {
-+ vlog.debug("http client gone, sock %d",fd);
-+ httpServer->removeSocket(*i);
-+ delete (*i);
-+ } else {
-+ /* Update existing NotifyFD to listen for write (or not) */
-+ if ((*i)->outStream().bufferUsage() > 0)
-+ SetNotifyFd(fd, HandleSocketFd, X_NOTIFY_READ | X_NOTIFY_WRITE, this);
-+ else
-+ SetNotifyFd(fd, HandleSocketFd, X_NOTIFY_READ, this);
-+ }
-+ }
-+ }
-+
-+ int nextTimeout = server->checkTimeouts();
-+ if (nextTimeout > 0 && (*timeout == -1 || nextTimeout < *timeout))
-+ *timeout = nextTimeout;
-+ } catch (rdr::Exception& e) {
-+ vlog.error("XserverDesktop::blockHandler: %s",e.str());
-+ }
-+}
-+
-+#else
-+
- void XserverDesktop::readBlockHandler(fd_set* fds, struct timeval ** timeout)
- {
- // We don't have a good callback for when we can init input devices[1],
-@@ -600,10 +778,15 @@ void XserverDesktop::writeWakeupHandler(
- }
- }
-
-+#endif
-+
- void XserverDesktop::addClient(Socket* sock, bool reverse)
- {
- vlog.debug("new client, sock %d reverse %d",sock->getFd(),reverse);
- server->addSocket(sock, reverse);
-+#if XORG >= 119
-+ SetNotifyFd(sock->getFd(), HandleSocketFd, X_NOTIFY_READ, this);
-+#endif
- }
-
- void XserverDesktop::disconnectClients()
-diff -up tigervnc-1.7.0/unix/xserver/hw/vnc/XserverDesktop.h.xserver119 tigervnc-1.7.0/unix/xserver/hw/vnc/XserverDesktop.h
---- tigervnc-1.7.0/unix/xserver/hw/vnc/XserverDesktop.h.xserver119 2016-09-08 12:31:18.000000000 +0200
-+++ tigervnc-1.7.0/unix/xserver/hw/vnc/XserverDesktop.h 2016-10-04 17:17:35.617889712 +0200
-@@ -38,6 +38,7 @@
- #include <rfb/VNCServerST.h>
- #include <rdr/SubstitutingInStream.h>
- #include "Input.h"
-+#include "xorg-version.h"
-
- namespace rfb {
- class VNCServerST;
-@@ -69,10 +70,16 @@ public:
- const unsigned char *rgbaData);
- void add_changed(const rfb::Region ®ion);
- void add_copied(const rfb::Region &dest, const rfb::Point &delta);
-+#if XORG >= 119
-+ void handleListenFd(int fd);
-+ void handleSocketFd(int fd, int xevents);
-+ void blockHandler(int* timeout);
-+#else
- void readBlockHandler(fd_set* fds, struct timeval ** timeout);
- void readWakeupHandler(fd_set* fds, int nfds);
- void writeBlockHandler(fd_set* fds, struct timeval ** timeout);
- void writeWakeupHandler(fd_set* fds, int nfds);
-+#endif
- void addClient(network::Socket* sock, bool reverse);
- void disconnectClients();
-
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/tigervnc.git/commitdiff/377c2b5b58535ebc95fa045deaf15e3e9e99dafa
More information about the pld-cvs-commit
mailing list