From: "Fabian Grünbichler" <f.gruenbichler@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [pve-devel] [PATCH v2 vncterm 2/2] build: rebase on libvncserver 0.9.13
Date: Tue, 14 Jul 2020 13:28:37 +0200 [thread overview]
Message-ID: <20200714112837.3469504-2-f.gruenbichler@proxmox.com> (raw)
In-Reply-To: <20200714112837.3469504-1-f.gruenbichler@proxmox.com>
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>
---
v2:
- actually drop patch
- add -D WITH_LZO=OFF to prevent autodetection of non-build-dependency
Makefile | 7 +-
.../remove-systemd-socket-activation.patch | 227 ------------------
vncpatches/tls-auth-pluging.patch | 41 ++--
debian/control | 3 +-
vncpatches/series | 1 -
5 files changed, 25 insertions(+), 254 deletions(-)
delete mode 100644 vncpatches/remove-systemd-socket-activation.patch
diff --git a/Makefile b/Makefile
index a84205e..8f8611f 100644
--- 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)
diff --git a/vncpatches/remove-systemd-socket-activation.patch b/vncpatches/remove-systemd-socket-activation.patch
deleted file mode 100644
index f190b94..0000000
--- a/vncpatches/remove-systemd-socket-activation.patch
+++ /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;
- }
-
-
diff --git a/vncpatches/tls-auth-pluging.patch b/vncpatches/tls-auth-pluging.patch
index 17a8c47..837612f 100644
--- a/vncpatches/tls-auth-pluging.patch
+++ b/vncpatches/tls-auth-pluging.patch
@@ -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;
diff --git a/debian/control b/debian/control
index 89c0f5d..cb6c7b2 100644
--- a/debian/control
+++ b/debian/control
@@ -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/series b/vncpatches/series
index defbfe8..2fb1c30 100644
--- a/vncpatches/series
+++ b/vncpatches/series
@@ -1,2 +1 @@
-remove-systemd-socket-activation.patch
tls-auth-pluging.patch
--
2.20.1
next prev parent reply other threads:[~2020-07-14 11:29 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-14 11:28 [pve-devel] [PATCH v2 vncterm 1/2] libvncserver: update sources to 0.9.13 Fabian Grünbichler
2020-07-14 11:28 ` Fabian Grünbichler [this message]
2020-07-15 9:09 ` [pve-devel] applied-series: " Thomas Lamprecht
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200714112837.3469504-2-f.gruenbichler@proxmox.com \
--to=f.gruenbichler@proxmox.com \
--cc=pve-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.