diff --git a/net/tigervnc-server/Makefile b/net/tigervnc-server/Makefile index 672ea13ac7f4..2c3a719234e2 100644 --- a/net/tigervnc-server/Makefile +++ b/net/tigervnc-server/Makefile @@ -1,96 +1,99 @@ -PORTREVISION= 4 +PORTREVISION= 5 PKGNAMESUFFIX= -server COMMENT= TigerVNC Server +EXTRA_PATCHES= ${FILESDIR}/xorg-1.21.patch:-p1 \ + ${FILESDIR}/xvnc-adapt-xorg-1.21.patch:-p1 + PATCH_DEPENDS+= ${NONEXISTENT}:x11-servers/xorg-server:patch BUILD_DEPENDS+= ${LOCALBASE}/include/GL/internal/dri_interface.h:graphics/mesa-dri \ ${LOCALBASE}/libdata/pkgconfig/fontutil.pc:x11-fonts/font-util \ bash:shells/bash LIB_DEPENDS= libxshmfence.so:x11/libxshmfence # almost equivalent to x11-servers/xorg-server's RUN_DEPENDS+= ${LOCALBASE}/share/X11/xkb/rules/base:x11/xkeyboard-config \ xkbcomp:x11/xkbcomp USES+= autoreconf:build compiler:c11 gl jpeg libtool pkgconfig ssl shebangfix xorg USE_LDCONFIG= yes USE_GL+= gl USE_XORG+= ice pixman sm x11 xau xdamage xdmcp xext xfixes xfont2 \ xkbfile xorg-macros xorgproto xrandr xrender xtrans xtst SHEBANG_LANG= bash SHEBANG_FILES= unix/vncserver/vncsession-start.in BINARY_WRAPPERS= gm4 OPTIONS_DEFINE= DOCS GNUTLS PAM OPTIONS_DEFAULT= GNUTLS PAM OPTIONS_SUB= yes GNUTLS_CMAKE_BOOL= ENABLE_GNUTLS GNUTLS_CONFIGURE_ARGS= --enable-glx-tls GNUTLS_LIB_DEPENDS= libtasn1.so:security/libtasn1 \ libgcrypt.so:security/libgcrypt \ libgpg-error.so:security/libgpg-error \ libgnutls.so:security/gnutls PAM_CMAKE_BOOL= ENABLE_PAM CONFIGURE_ARGS+= \ --prefix=${PREFIX} --mandir=${PREFIX}/share/man/ \ --docdir=${PREFIX}/share/doc/${PORTNAME}/ --with-pic --without-dtrace \ --disable-static --disable-dri --disable-unit-tests \ --disable-xinerama --disable-xvfb --disable-xnest --disable-xorg \ --disable-dmx --disable-xwin --disable-xephyr --disable-kdrive \ --disable-config-dbus --disable-config-hal \ --disable-dri2 --enable-install-libxf86config --enable-glx \ --with-default-font-path="catalogue:${LOCALBASE}/share/fonts,built-ins" \ --with-xkb-path=${LOCALBASE}/share/X11/xkb \ --with-xkb-bin-directory=${LOCALBASE}/bin \ --with-serverconfig-path=${LOCALBASE}/lib/X11 \ --disable-selective-werror \ --disable-xwayland \ --with-fontrootdir=${LOCALBASE}/share/fonts CFLAGS+= -I${LOCALBASE}/include/libdrm # This is server port, disabling some features # - disable vncviewer # - server is not internationalized CMAKE_ARGS+= -DBUILD_VIEWER:BOOL=false -DENABLE_NLS:BOOL=false TIGERVNC_XORG_PATCH_VER= ${MAKE} -C "${.CURDIR}/../../x11-servers/xorg-server" -V PORTVERSION:R:S,\.,,g XORG_WRKSRC= ${MAKE} -C ${.CURDIR}/../../x11-servers/xorg-server -VWRKSRC pre-patch: @${CP} -R $$(${XORG_WRKSRC})/ ${WRKSRC}/unix/xserver/ post-patch: # do not build tests @${REINPLACE_CMD} -e 's|add_subdirectory(tests)||' ${WRKSRC}/CMakeLists.txt - @cd ${WRKSRC}/unix/xserver/ && ${PATCH} -p1 < ${WRKSRC}/unix/xserver$$(${TIGERVNC_XORG_PATCH_VER}).patch + @cd ${WRKSRC}/unix/xserver/ && ${PATCH} -p1 < ${FILESDIR}/xserver$$(${TIGERVNC_XORG_PATCH_VER}).patch post-configure: @cd ${WRKSRC}/unix/xserver/ && ${SETENV} ${CONFIGURE_ENV} ${MAKE_ENV} ${AUTORECONF} -fiv @cd ${WRKSRC}/unix/xserver/ && ${SETENV} ${CONFIGURE_ENV} ${MAKE_ENV} ./configure ${CONFIGURE_ARGS} post-build: @cd ${WRKSRC}/unix/xserver/ && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} SHELL=${LOCALBASE}/bin/bash post-install: @cd ${WRKSRC}/unix/xserver/hw/vnc/ && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} install @${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/Xvnc ${STAGEDIR}${PREFIX}/lib/xorg/modules/extensions/libvnc.so @${INSTALL_SCRIPT} ${FILESDIR}/vncserver.ports ${STAGEDIR}${PREFIX}/bin/vncserver .include "${.CURDIR}/Makefile.common.mk" # import from x11-server/xorg-server/Makefile .if ${SSL_DEFAULT} == base # The reason why I use this is cause openssl from base doesn't # install a .pc file and configure will fail trying to find it. # Setting both of those variables to a *non-empty* value by-passes # the pkg-config check. CONFIGURE_ENV= SHA1_LIB="-L/usr/lib -lcrypto" SHA1_CFLAGS="-I/usr/include" .endif # keep in sync with all platforms where libunwind is available .if ${ARCH} == aarch64 || ${ARCH} == amd64 || ${ARCH} == armv7 || ${ARCH} == i386 || ${ARCH} == powerpc64 || ${ARCH} == powerpc64le LIB_DEPENDS+= libunwind.so:devel/libunwind .endif diff --git a/net/tigervnc-server/files/xorg-1.21.patch b/net/tigervnc-server/files/xorg-1.21.patch new file mode 100644 index 000000000000..21d711decad0 --- /dev/null +++ b/net/tigervnc-server/files/xorg-1.21.patch @@ -0,0 +1,24 @@ +From 736b50d04e1ba965696cd15d456dc2b7fc123150 Mon Sep 17 00:00:00 2001 +From: Joakim Tjernlund +Date: Wed, 24 Nov 2021 21:09:36 +0100 +Subject: [PATCH] xorg-version.h: Increase supported Xorg version to 1.21 + +--- + unix/xserver/hw/vnc/xorg-version.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/unix/xserver/hw/vnc/xorg-version.h b/unix/xserver/hw/vnc/xorg-version.h +index 5df9f8d21..a0d44d926 100644 +--- a/unix/xserver/hw/vnc/xorg-version.h ++++ b/unix/xserver/hw/vnc/xorg-version.h +@@ -33,8 +33,8 @@ + #error "X.Org older than 1.16 is not supported" + #endif + +-#if XORG_AT_LEAST(1, 21, 0) +-#error "X.Org newer than 1.20 is not supported" ++#if XORG_AT_LEAST(1, 22, 0) ++#error "X.Org newer than 1.21 is not supported" + #endif + + #endif diff --git a/net/tigervnc-server/files/xserver211.patch b/net/tigervnc-server/files/xserver211.patch new file mode 100644 index 000000000000..a349af75dcbf --- /dev/null +++ b/net/tigervnc-server/files/xserver211.patch @@ -0,0 +1,75 @@ +diff -urpN xorg-server-1.20.0/configure.ac xorg-server-1.20.0/configure.ac +--- xorg-server-1.20.0/configure.ac 2018-05-10 09:32:34.000000000 -0700 ++++ xorg-server-1.20.0/configure.ac 2018-06-13 19:04:47.536413626 -0700 +@@ -74,6 +74,7 @@ dnl forcing an entire recompile.x + AC_CONFIG_HEADERS(include/version-config.h) + + AM_PROG_AS ++AC_PROG_CXX + AC_PROG_LN_S + LT_PREREQ([2.2]) + LT_INIT([disable-static win32-dll]) +@@ -1777,6 +1778,10 @@ if test "x$XVFB" = xyes; then + AC_SUBST([XVFB_SYS_LIBS]) + fi + ++dnl Xvnc DDX ++AC_SUBST([XVNC_CPPFLAGS], ["-DHAVE_DIX_CONFIG_H $XSERVER_CFLAGS"]) ++AC_SUBST([XVNC_LIBS], ["$FB_LIB $FIXES_LIB $XEXT_LIB $CONFIG_LIB $DBE_LIB $RECORD_LIB $GLX_LIBS $RANDR_LIB $RENDER_LIB $DAMAGE_LIB $DRI3_LIB $PRESENT_LIB $MIEXT_SYNC_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $MAIN_LIB"]) ++AC_SUBST([XVNC_SYS_LIBS], ["$GLX_SYS_LIBS"]) + + dnl Xnest DDX + +@@ -1812,6 +1817,8 @@ if test "x$XORG" = xauto; then + fi + AC_MSG_RESULT([$XORG]) + ++AC_DEFINE_UNQUOTED(XORG_VERSION_CURRENT, [$VENDOR_RELEASE], [Current Xorg version]) ++ + if test "x$XORG" = xyes; then + XORG_DDXINCS='-I$(top_srcdir)/hw/xfree86 -I$(top_srcdir)/hw/xfree86/include -I$(top_srcdir)/hw/xfree86/common' + XORG_OSINCS='-I$(top_srcdir)/hw/xfree86/os-support -I$(top_srcdir)/hw/xfree86/os-support/bus -I$(top_srcdir)/os' +@@ -2029,7 +2036,6 @@ if test "x$XORG" = xyes; then + AC_DEFINE(XORG_SERVER, 1, [Building Xorg server]) + AC_DEFINE(XORGSERVER, 1, [Building Xorg server]) + AC_DEFINE(XFree86Server, 1, [Building XFree86 server]) +- AC_DEFINE_UNQUOTED(XORG_VERSION_CURRENT, [$VENDOR_RELEASE], [Current Xorg version]) + AC_DEFINE(NEED_XF86_TYPES, 1, [Need XFree86 typedefs]) + AC_DEFINE(NEED_XF86_PROTOTYPES, 1, [Need XFree86 helper functions]) + AC_DEFINE(__XSERVERNAME__, "Xorg", [Name of X server]) +@@ -2565,6 +2571,7 @@ hw/dmx/Makefile + hw/dmx/man/Makefile + hw/vfb/Makefile + hw/vfb/man/Makefile ++hw/vnc/Makefile + hw/xnest/Makefile + hw/xnest/man/Makefile + hw/xwin/Makefile +diff -urpN xorg-server-1.20.0/hw/Makefile.am xorg-server-1.20.0/hw/Makefile.am +--- xorg-server-1.20.0/hw/Makefile.am 2018-05-10 09:32:34.000000000 -0700 ++++ xorg-server-1.20.0/hw/Makefile.am 2018-06-13 19:04:47.536413626 -0700 +@@ -44,3 +44,5 @@ + + relink: + $(AM_V_at)for i in $(SUBDIRS) ; do $(MAKE) -C $$i relink || exit 1 ; done ++ ++SUBDIRS += vnc +diff -urpN xorg-server-1.20.0/mi/miinitext.c xorg-server-1.20.0/mi/miinitext.c +--- xorg-server-1.20.0/mi/miinitext.c 2018-05-10 09:32:37.000000000 -0700 ++++ xorg-server-1.20.0/mi/miinitext.c 2018-06-13 19:05:14.742200675 -0700 +@@ -107,8 +107,15 @@ SOFTWARE. + #include "os.h" + #include "globals.h" + ++#ifdef TIGERVNC ++extern void vncExtensionInit(void); ++#endif ++ + /* List of built-in (statically linked) extensions */ + static const ExtensionModule staticExtensions[] = { ++#ifdef TIGERVNC ++ {vncExtensionInit, "VNC-EXTENSION", NULL}, ++#endif + {GEExtensionInit, "Generic Event Extension", &noGEExtension}, + {ShapeExtensionInit, "SHAPE", NULL}, + #ifdef MITSHM diff --git a/net/tigervnc-server/files/xvnc-adapt-xorg-1.21.patch b/net/tigervnc-server/files/xvnc-adapt-xorg-1.21.patch new file mode 100644 index 000000000000..8aa64592c3bd --- /dev/null +++ b/net/tigervnc-server/files/xvnc-adapt-xorg-1.21.patch @@ -0,0 +1,40 @@ +From f2577107f7f55382c524d8c738a777e5cdd80f60 Mon Sep 17 00:00:00 2001 +From: Joakim Tjernlund +Date: Wed, 24 Nov 2021 21:10:56 +0100 +Subject: [PATCH] xvnc: adapt for 1.21 + +VENDOR_STRING is gone as is DEFAULT_LOG_VERBOSITY +site.h has been removed and is not needed. +--- + unix/xserver/hw/vnc/xvnc.c | 6 ++---- + 1 file changed, 2 insertions(+), 4 deletions(-) + +diff --git a/unix/xserver/hw/vnc/xvnc.c b/unix/xserver/hw/vnc/xvnc.c +index a655239fd..3bc77b2cf 100644 +--- a/unix/xserver/hw/vnc/xvnc.c ++++ b/unix/xserver/hw/vnc/xvnc.c +@@ -69,7 +69,6 @@ extern char buildtime[]; + #undef VENDOR_RELEASE + #undef VENDOR_STRING + #include "version-config.h" +-#include "site.h" + + #define XVNCVERSION "TigerVNC 1.12.80" + #define XVNCCOPYRIGHT ("Copyright (C) 1999-2021 TigerVNC Team and many others (see README.rst)\n" \ +@@ -111,14 +110,13 @@ static Bool Render = TRUE; + static Bool displaySpecified = FALSE; + static char displayNumStr[16]; + +-static int vncVerbose = DEFAULT_LOG_VERBOSITY; ++static int vncVerbose = 0; + + static void + vncPrintBanner(void) + { + ErrorF("\nXvnc %s - built %s\n%s", XVNCVERSION, buildtime, XVNCCOPYRIGHT); +- ErrorF("Underlying X server release %d, %s\n\n", VENDOR_RELEASE, +- VENDOR_STRING); ++ ErrorF("Underlying X server release %d\n\n", VENDOR_RELEASE); + } + + static void