]> git.proxmox.com Git - vncterm.git/commitdiff
build: rebase on libvncserver 0.9.13
authorFabian Grünbichler <f.gruenbichler@proxmox.com>
Tue, 14 Jul 2020 11:28:37 +0000 (13:28 +0200)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Wed, 15 Jul 2020 04:59:47 +0000 (06:59 +0200)
upstream switched to cmake from autotools.

it is possible to drop systemd via a build option now, so use that
instead of patching.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Makefile
debian/control
vncpatches/remove-systemd-socket-activation.patch [deleted file]
vncpatches/series
vncpatches/tls-auth-pluging.patch

index a84205e6e8168588a85fbee9158b536b63787b0e..8f8611f45de728459d13f231d18003a7f50f8b43 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -4,11 +4,11 @@ include /usr/share/dpkg/architecture.mk
 PACKAGE=vncterm
 GITVERSION:=$(shell cat .git/refs/heads/master)
 
-VNCVER=0.9.11
+VNCVER=0.9.13
 VNCREL=LibVNCServer-${VNCVER}
 VNCDIR=libvncserver-${VNCREL}
 VNCSRC=${VNCREL}.tar.gz
-VNCLIB=${VNCDIR}/libvncserver/.libs/libvncserver.a
+VNCLIB=${VNCDIR}/libvncserver.a
 
 DEB=${PACKAGE}_${DEB_VERSION_UPSTREAM_REVISION}_${DEB_BUILD_ARCH}.deb
 
@@ -32,8 +32,7 @@ ${VNCLIB}: ${VNCSRC}
        tar xf ${VNCSRC}
        ln -s ../vncpatches ${VNCDIR}/patches
        cd ${VNCDIR}; quilt push -a
-       cd ${VNCDIR}; ./autogen.sh --without-ssl --without-websockets --without-tightvnc-filetransfer;
-       cd ${VNCDIR}; $(MAKE)
+       cd ${VNCDIR}; cmake -D WITH_GNUTLS=OFF -D WITH_OPENSSL=OFF -D WITH_WEBSOCKETS=OFF -D WITH_SYSTEMD=OFF -D WITH_TIGHTVNC_FILETRANSFER=OFF -D WITH_GCRYPT=OFF -D WITH_LZO=OFF -D BUILD_SHARED_LIBS=OFF .; cmake --build .
 
 vncterm: vncterm.c wchardata.c $(VNCLIB)
        $(CC) $(CPPFLAGS) $(CFLAGS) -o $@ $^ $(VNC_LIBS)
index 89c0f5dc599c003782c851131d0b0a3a4c833e36..cb6c7b2f1726236c46929ed034469f7cf2d82d1d 100644 (file)
@@ -1,6 +1,7 @@
 Source: vncterm
 Maintainer: Proxmox Support Team <support@proxmox.com>
-Build-Depends: debhelper (>= 10~),
+Build-Depends: cmake,
+               debhelper (>= 10~),
                libglib2.0-dev,
                libgnutls28-dev,
                libjpeg62-turbo-dev,
diff --git a/vncpatches/remove-systemd-socket-activation.patch b/vncpatches/remove-systemd-socket-activation.patch
deleted file mode 100644 (file)
index f190b94..0000000
+++ /dev/null
@@ -1,227 +0,0 @@
-commit 25e3dfeab75b6febdb6c1157e991c3bcbeb3eb86
-Author:     Fabian Grünbichler <f.gruenbichler@proxmox.com>
-AuthorDate: Thu Feb 2 11:22:35 2017 +0100
-Commit:     Fabian Grünbichler <f.gruenbichler@proxmox.com>
-CommitDate: Thu Feb 2 11:22:35 2017 +0100
-
-    Revert "Support systemd socket activation"
-    
-    unneeded extra build dep
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 9424d8d..4c56635 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -36,7 +36,6 @@ find_package(GnuTLS)
- find_package(Threads)
- find_package(X11)
- find_package(OpenSSL)
--find_package(PkgConfig)
- find_library(LIBGCRYPT_LIBRARIES gcrypt)
- # Check whether the version of libjpeg we found was libjpeg-turbo and print a
-@@ -103,17 +102,6 @@ if(PNG_FOUND)
- endif(PNG_FOUND)
- option(LIBVNCSERVER_ALLOW24BPP "Allow 24 bpp" ON)
--pkg_check_modules(SYSTEMD "libsystemd")
--if(SYSTEMD_FOUND)
--  option(LIBVNCSERVER_WITH_SYSTEMD "Build with systemd socket activation support" ON)
--endif(SYSTEMD_FOUND)
--
--if(LIBVNCSERVER_WITH_SYSTEMD)
--  add_definitions(-DLIBVNCSERVER_WITH_SYSTEMD)
--  include_directories(${SYSTEMD_INCLUDE_DIRS})
--  set(ADDITIONAL_LIBS ${ADDITIONAL_LIBS} ${SYSTEMD_LIBRARIES})
--endif(LIBVNCSERVER_WITH_SYSTEMD)
--
- if(GNUTLS_FOUND)
-   set(LIBVNCSERVER_WITH_CLIENT_TLS 1)
-   option(LIBVNCSERVER_WITH_WEBSOCKETS "Build with websockets support (gnutls)" ON)
-diff --git a/configure.ac b/configure.ac
-index f13edb4..3f4b29a 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -68,9 +68,6 @@ if test ! -z "$with_ffmpeg"; then
- fi
- AM_CONDITIONAL(HAVE_MP3LAME, test "$HAVE_MP3LAME" = "true")
--PKG_CHECK_MODULES([LIBSYSTEMD], [libsystemd], [with_systemd=1], [with_systemd=0])
--AM_CONDITIONAL([WITH_SYSTEMD], [test $with_systemd -eq 1])
--
- # Seem to need this dummy here to induce the 'checking for egrep... grep -E', etc.
- # before it seemed to be inside the with_jpeg conditional. 
- AC_CHECK_HEADER(thenonexistentheader.h, HAVE_THENONEXISTENTHEADER_H="true")
-diff --git a/libvncserver/Makefile.am b/libvncserver/Makefile.am
-index e25784b..2f23e31 100644
---- a/libvncserver/Makefile.am
-+++ b/libvncserver/Makefile.am
-@@ -59,12 +59,6 @@ LIB_SRCS = main.c rfbserver.c rfbregion.c auth.c sockets.c $(WEBSOCKETSSRCS) \
- libvncserver_la_SOURCES=$(LIB_SRCS)
- libvncserver_la_LIBADD=$(WEBSOCKETSSSLLIBS)
--if WITH_SYSTEMD
--AM_CPPFLAGS += -DLIBVNCSERVER_WITH_SYSTEMD
--libvncserver_la_CFLAGS = $(LIBSYSTEMD_CFLAGS)
--libvncserver_la_LIBADD += $(LIBSYSTEMD_LIBS)
--endif
--
- lib_LTLIBRARIES=libvncserver.la
- libvncserver_la_LDFLAGS = -version-info 1:0:0
-diff --git a/libvncserver/sockets.c b/libvncserver/sockets.c
-index bbc3d90..6467b1c 100644
---- a/libvncserver/sockets.c
-+++ b/libvncserver/sockets.c
-@@ -77,10 +77,6 @@
- #include "rfbssl.h"
- #endif
--#ifdef LIBVNCSERVER_WITH_SYSTEMD
--#include <systemd/sd-daemon.h>
--#endif
--
- #if defined(__linux__) && defined(NEED_TIMEVAL)
- struct timeval 
- {
-@@ -126,54 +122,6 @@ int deny_severity=LOG_WARNING;
- int rfbMaxClientWait = 20000;   /* time (ms) after which we decide client has
-                                    gone away - needed to stop us hanging */
--static rfbBool
--rfbNewConnectionFromSock(rfbScreenInfoPtr rfbScreen, int sock)
--{
--    const int one = 1;
--#ifdef LIBVNCSERVER_IPv6
--    struct sockaddr_storage addr;
--#else
--    struct sockaddr_in addr;
--#endif
--    socklen_t addrlen = sizeof(addr);
--
--    getpeername(sock, (struct sockaddr *)&addr, &addrlen);
--
--    if(!rfbSetNonBlocking(sock)) {
--      rfbLogPerror("rfbCheckFds: setnonblock");
--      closesocket(sock);
--      return FALSE;
--    }
--
--    if (setsockopt(sock, IPPROTO_TCP, TCP_NODELAY,
--                 (char *)&one, sizeof(one)) < 0) {
--      rfbLogPerror("rfbCheckFds: setsockopt failed: can't set TCP_NODELAY flag, non TCP socket?");
--    }
--
--#ifdef USE_LIBWRAP
--    if(!hosts_ctl("vnc",STRING_UNKNOWN,inet_ntoa(addr.sin_addr),
--                STRING_UNKNOWN)) {
--      rfbLog("Rejected connection from client %s\n",
--           inet_ntoa(addr.sin_addr));
--      closesocket(sock);
--      return FALSE;
--    }
--#endif
--
--#ifdef LIBVNCSERVER_IPv6
--    char host[1024];
--    if(getnameinfo((struct sockaddr*)&addr, addrlen, host, sizeof(host), NULL, 0, NI_NUMERICHOST) != 0) {
--      rfbLogPerror("rfbProcessNewConnection: error in getnameinfo");
--    }
--    rfbLog("Got connection from client %s\n", host);
--#else
--    rfbLog("Got connection from client %s\n", inet_ntoa(addr.sin_addr));
--#endif
--
--    rfbNewClient(rfbScreen,sock);
--    return TRUE;
--}
--
- /*
-  * rfbInitSockets sets up the TCP and UDP sockets to listen for RFB
-  * connections.  It does nothing if called again.
-@@ -190,20 +138,6 @@ rfbInitSockets(rfbScreenInfoPtr rfbScreen)
-     rfbScreen->socketState = RFB_SOCKET_READY;
--#ifdef LIBVNCSERVER_WITH_SYSTEMD
--    if (sd_listen_fds(0) == 1)
--    {
--        int sock = SD_LISTEN_FDS_START + 0;
--        if (sd_is_socket(sock, AF_UNSPEC, 0, 0))
--            rfbNewConnectionFromSock(rfbScreen, sock);
--        else if (sd_is_socket(sock, AF_UNSPEC, 0, 1))
--            rfbProcessNewConnection(rfbScreen);
--        return;
--    }
--    else
--        rfbLog("Unable to establish connection with systemd socket\n");
--#endif
--
-     if (rfbScreen->inetdSock != -1) {
-       const int one = 1;
-@@ -479,7 +413,14 @@ rfbCheckFds(rfbScreenInfoPtr rfbScreen,long usec)
- rfbBool
- rfbProcessNewConnection(rfbScreenInfoPtr rfbScreen)
- {
-+    const int one = 1;
-     int sock = -1;
-+#ifdef LIBVNCSERVER_IPv6
-+    struct sockaddr_storage addr;
-+#else
-+    struct sockaddr_in addr;
-+#endif
-+    socklen_t addrlen = sizeof(addr);
-     fd_set listen_fds; 
-     int chosen_listen_sock = -1;
-@@ -500,12 +441,47 @@ rfbProcessNewConnection(rfbScreenInfoPtr rfbScreen)
-     if (rfbScreen->listen6Sock >= 0 && FD_ISSET(rfbScreen->listen6Sock, &listen_fds))
-       chosen_listen_sock = rfbScreen->listen6Sock;
--    if ((sock = accept(chosen_listen_sock, NULL, NULL)) < 0) {
-+    if ((sock = accept(chosen_listen_sock,
-+                     (struct sockaddr *)&addr, &addrlen)) < 0) {
-       rfbLogPerror("rfbCheckFds: accept");
-       return FALSE;
-     }
--    return rfbNewConnectionFromSock(rfbScreen, sock);
-+    if(!rfbSetNonBlocking(sock)) {
-+      closesocket(sock);
-+      return FALSE;
-+    }
-+
-+    if (setsockopt(sock, IPPROTO_TCP, TCP_NODELAY,
-+                 (char *)&one, sizeof(one)) < 0) {
-+      rfbLogPerror("rfbCheckFds: setsockopt failed: can't set TCP_NODELAY flag, non TCP socket?");
-+    }
-+
-+#ifdef USE_LIBWRAP
-+    if(!hosts_ctl("vnc",STRING_UNKNOWN,inet_ntoa(addr.sin_addr),
-+                STRING_UNKNOWN)) {
-+      rfbLog("Rejected connection from client %s\n",
-+           inet_ntoa(addr.sin_addr));
-+      closesocket(sock);
-+      return FALSE;
-+    }
-+#endif
-+
-+#ifdef LIBVNCSERVER_IPv6
-+    {
-+        char host[1024];
-+        if(getnameinfo((struct sockaddr*)&addr, addrlen, host, sizeof(host), NULL, 0, NI_NUMERICHOST) != 0) {
-+            rfbLogPerror("rfbProcessNewConnection: error in getnameinfo");
-+        }
-+        rfbLog("Got connection from client %s\n", host);
-+    }
-+#else
-+    rfbLog("Got connection from client %s\n", inet_ntoa(addr.sin_addr));
-+#endif
-+
-+    rfbNewClient(rfbScreen,sock);
-+
-+    return TRUE;
- }
index defbfe828fc6887509d4b06feea97c9db0e2d6d0..2fb1c306ff44f5cb552767ecafb4ea062f365a2c 100644 (file)
@@ -1,2 +1 @@
-remove-systemd-socket-activation.patch
 tls-auth-pluging.patch
index 17a8c47b2e5aa5f986214fe0b0dd72c844a78ae7..837612fae68d6ed95eab550cb2666baa1238d4d1 100644 (file)
@@ -1,23 +1,22 @@
-Index: vnc/libvncserver/auth.c
+Index: libvncserver-LibVNCServer-0.9.13/libvncserver/auth.c
 ===================================================================
-@@ -300,8 +300,9 @@
-     int32_t securityType = rfbSecTypeInvalid;
+--- libvncserver-LibVNCServer-0.9.13.orig/libvncserver/auth.c
++++ libvncserver-LibVNCServer-0.9.13/libvncserver/auth.c
+@@ -301,7 +301,8 @@ rfbAuthNewClient(rfbClientPtr cl)
  
      if (!cl->screen->authPasswdData || cl->reverseConnection) {
--      /* chk if this condition is valid or not. */
+       /* chk if this condition is valid or not. */
 -      securityType = rfbSecTypeNone;
-+      /* chk if this condition is valid or not. */
 +      /* we disable anonymous auth */
 +      // securityType = rfbSecTypeNone;
      } else if (cl->screen->authPasswdData) {
            securityType = rfbSecTypeVncAuth;
      }
-Index: vnc/newterm/Makefile.am
-Index: vnc/libvncserver/sockets.c
+Index: libvncserver-LibVNCServer-0.9.13/libvncserver/sockets.c
 ===================================================================
---- vnc.orig/libvncserver/sockets.c    2011-01-20 16:42:41.000000000 +0100
-+++ vnc/libvncserver/sockets.c 2011-01-21 10:20:03.000000000 +0100
-@@ -613,7 +613,11 @@ rfbReadExactTimeout(rfbClientPtr cl, char* buf, int len, int timeout)
+--- libvncserver-LibVNCServer-0.9.13.orig/libvncserver/sockets.c
++++ libvncserver-LibVNCServer-0.9.13/libvncserver/sockets.c
+@@ -638,7 +638,11 @@ rfbReadExactTimeout(rfbClientPtr cl, cha
              n = read(sock, buf, len);
          }
  #else
@@ -30,7 +29,7 @@ Index: vnc/libvncserver/sockets.c
  #endif
  
          if (n > 0) {
-@@ -801,7 +805,11 @@ rfbWriteExact(rfbClientPtr cl,
+@@ -826,7 +830,11 @@ rfbWriteExact(rfbClientPtr cl,
            n = rfbssl_write(cl, buf, len);
        else
  #endif
@@ -42,21 +41,21 @@ Index: vnc/libvncserver/sockets.c
  
          if (n > 0) {
  
-Index: vnc/rfb/rfb.h
+Index: libvncserver-LibVNCServer-0.9.13/rfb/rfb.h
 ===================================================================
---- vnc.orig/rfb/rfb.h 2011-01-20 16:36:06.000000000 +0100
-+++ vnc/rfb/rfb.h      2011-01-21 06:44:22.000000000 +0100
-@@ -397,6 +397,9 @@
    struct _rfbStatList *Next;
} rfbStatList;
+--- libvncserver-LibVNCServer-0.9.13.orig/rfb/rfb.h
++++ libvncserver-LibVNCServer-0.9.13/rfb/rfb.h
+@@ -411,6 +411,9 @@ typedef struct _rfbStatList {
typedef struct _rfbSslCtx rfbSslCtx;
typedef struct _wsCtx wsCtx;
  
 +typedef ssize_t (*sock_read_fn_t)(struct _rfbClientRec *cl, void *buf, size_t count);
 +typedef ssize_t (*sock_write_fn_t)(struct _rfbClientRec *cl, const void *buf, size_t count);
 +
  typedef struct _rfbClientRec {
-   
-     /* back pointer to the screen */
-@@ -417,6 +420,10 @@
+     /** back pointer to the screen */
+@@ -431,6 +434,10 @@ typedef struct _rfbClientRec {
      void* clientData;
      ClientGoneHookPtr clientGoneHook;
  
@@ -64,6 +63,6 @@ Index: vnc/rfb/rfb.h
 +    sock_read_fn_t sock_read_fn;
 +    sock_read_fn_t sock_write_fn;
 +
-     SOCKET sock;
+     rfbSocket sock;
      char *host;