diff --git a/net/tigervnc-server/Makefile b/net/tigervnc-server/Makefile index 33162780348a..16afa4f2aa8d 100644 --- a/net/tigervnc-server/Makefile +++ b/net/tigervnc-server/Makefile @@ -1,108 +1,118 @@ +PORTREVISION= 1 PKGNAMESUFFIX= -server COMMENT= TigerVNC Server WWW= https://tigervnc.org/ 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 \ - libxcvt.so:x11/libxcvt + libxcvt.so:x11/libxcvt \ + libnettle.so:security/nettle \ + libgmp.so:math/gmp # 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_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=${MANPREFIX}/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-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 FONTPATH_ROOT?= ${LOCALBASE}/share/fonts FONTPATHD?= ${PREFIX}/etc/X11/fontpath.d DEFAULT_FONTPATH_LIST= \ ${FONTPATH_ROOT}/misc/ \ ${FONTPATH_ROOT}/TTF/ \ ${FONTPATH_ROOT}/OTF/ \ ${FONTPATH_ROOT}/Type1/ \ ${FONTPATH_ROOT}/100dpi/ \ ${FONTPATH_ROOT}/75dpi/ \ catalogue:${FONTPATHD} CONFIGURE_ARGS+= --with-default-font-path="${DEFAULT_FONTPATH_LIST:ts,}" 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/ + ${CP} -R $$(${XORG_WRKSRC})/ ${WRKSRC}/unix/xserver/ + # workaround: upstream changed patch naming + ${LN} -sf ${WRKSRC}/unix/xserver21.1.1.patch ${WRKSRC}/unix/xserver211.patch post-patch: # do not build tests - @${REINPLACE_CMD} -e 's|add_subdirectory(tests)||' ${WRKSRC}/CMakeLists.txt - @cd ${WRKSRC}/unix/xserver/ && ${PATCH} -p1 < ${FILESDIR}/xserver$$(${TIGERVNC_XORG_PATCH_VER}).patch + ${REINPLACE_CMD} -e 's|add_subdirectory(tests)||' ${WRKSRC}/CMakeLists.txt + cd ${WRKSRC}/unix/xserver/ && ${PATCH} -p1 < ${WRKSRC}/unix/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} + 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/ && \ + cd ${WRKSRC}/unix/xserver/ && \ ${DO_MAKE_BUILD} SHELL=${LOCALBASE}/bin/bash ${ALL_TARGET} +post-stage: + # Install v1.10.0 vncserver script and manpage. + # See: https://cgit.freebsd.org/ports/commit/net/tigervnc-server?id=e6d3d07 + ${INSTALL_SCRIPT} ${FILESDIR}/v1.10.0-vncserver ${STAGEDIR}${PREFIX}/bin/vncserver + ${INSTALL_MAN} ${FILESDIR}/v1.10.0-vncserver.man ${STAGEDIR}${MANPREFIX}/share/man/man8/vncserver.8 + post-install: cd ${WRKSRC}/unix/xserver/hw/vnc/ && \ ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} install-strip - ${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/patch-release_CMakeLists.txt b/net/tigervnc-server/files/patch-release_CMakeLists.txt index cd8a343b5657..cb0d5fb0f445 100644 --- a/net/tigervnc-server/files/patch-release_CMakeLists.txt +++ b/net/tigervnc-server/files/patch-release_CMakeLists.txt @@ -1,8 +1,8 @@ ---- release/CMakeLists.txt.orig 2018-07-16 14:08:55 UTC +--- release/CMakeLists.txt.orig 2023-02-03 08:17:15 UTC +++ release/CMakeLists.txt -@@ -86,5 +86,3 @@ endif() #UNIX +@@ -73,5 +73,3 @@ endif() #UNIX # Common # -install(FILES ${CMAKE_SOURCE_DIR}/LICENCE.TXT DESTINATION ${CMAKE_INSTALL_FULL_DOCDIR}) -install(FILES ${CMAKE_SOURCE_DIR}/README.rst DESTINATION ${CMAKE_INSTALL_FULL_DOCDIR}) diff --git a/net/tigervnc-server/files/vncserver.ports b/net/tigervnc-server/files/v1.10.0-vncserver similarity index 100% rename from net/tigervnc-server/files/vncserver.ports rename to net/tigervnc-server/files/v1.10.0-vncserver diff --git a/net/tigervnc-server/files/v1.10.0-vncserver.man b/net/tigervnc-server/files/v1.10.0-vncserver.man new file mode 100644 index 000000000000..95f7960faf2d --- /dev/null +++ b/net/tigervnc-server/files/v1.10.0-vncserver.man @@ -0,0 +1,204 @@ +.TH vncserver 1 "" "TigerVNC" "Virtual Network Computing" +.SH NAME +vncserver \- start or stop a VNC server +.SH SYNOPSIS +.B vncserver +.RI [: display# ] +.RB [ \-name +.IR desktop-name ] +.RB [ \-geometry +.IR width x height ] +.RB [ \-depth +.IR depth ] +.RB [ \-pixelformat +.IR format ] +.RB [ \-fp +.IR font-path ] +.RB [ \-fg ] +.RB [ \-autokill ] +.RB [ \-noxstartup ] +.RB [ \-xstartup +.IR script ] +.RI [ Xvnc-options... ] +.br +.BI "vncserver \-kill :" display# +.br +.BI "vncserver \-list" +.SH DESCRIPTION +.B vncserver +is used to start a VNC (Virtual Network Computing) desktop. +.B vncserver +is a Perl script which simplifies the process of starting an Xvnc server. It +runs Xvnc with appropriate options and starts a window manager on the VNC +desktop. + +.B vncserver +can be run with no options at all. In this case it will choose the first +available display number (usually :1), start Xvnc with that display number, +and start the default window manager in the Xvnc session. You can also +specify the display number, in which case vncserver will attempt to start +Xvnc with that display number and exit if the display number is not +available. For example: + +.RS +vncserver :13 +.RE + +Editing the file $HOME/.vnc/xstartup allows you to change the applications run +at startup (but note that this will not affect an existing VNC session.) + +.SH OPTIONS +You can get a list of options by passing \fB\-h\fP as an option to vncserver. +In addition to the options listed below, any unrecognised options will be +passed to Xvnc - see the Xvnc man page, or "Xvnc \-help", for details. + +.TP +.B \-name \fIdesktop-name\fP +Each VNC desktop has a name which may be displayed by the viewer. The desktop +name defaults to "\fIhost\fP:\fIdisplay#\fP (\fIusername\fP)", but you can +change it with this option. The desktop name option is passed to the xstartup +script via the $VNCDESKTOP environment variable, which allows you to run a +different set of applications depending on the name of the desktop. +. +.TP +.B \-geometry \fIwidth\fPx\fIheight\fP +Specify the size of the VNC desktop to be created. Default is 1024x768. +. +.TP +.B \-depth \fIdepth\fP +Specify the pixel depth (in bits) of the VNC desktop to be created. Default is +24. Other possible values are 8, 15 and 16 - anything else is likely to cause +strange behaviour by applications. +. +.TP +.B \-pixelformat \fIformat\fP +Specify pixel format for Xvnc to use (BGRnnn or RGBnnn). The default for +depth 8 is BGR233 (meaning the most significant two bits represent blue, the +next three green, and the least significant three represent red), the default +for depth 16 is RGB565, and the default for depth 24 is RGB888. +. +.TP +.B \-cc 3 +As an alternative to the default TrueColor visual, this allows you to run an +Xvnc server with a PseudoColor visual (i.e. one which uses a color map or +palette), which can be useful for running some old X applications which only +work on such a display. Values other than 3 (PseudoColor) and 4 (TrueColor) +for the \-cc option may result in strange behaviour, and PseudoColor desktops +must have an 8-bit depth. +. +.TP +.B \-kill :\fIdisplay#\fP +This kills a VNC desktop previously started with vncserver. It does this by +killing the Xvnc process, whose process ID is stored in the file +"$HOME/.vnc/\fIhost\fP:\fIdisplay#\fP.pid". The +.B \-kill +option ignores anything preceding the first colon (":") in the display +argument. Thus, you can invoke "vncserver \-kill $DISPLAY", for example at the +end of your xstartup file after a particular application exits. +. +.TP +.B \-fp \fIfont-path\fP +If the vncserver script detects that the X Font Server (XFS) is running, it +will attempt to start Xvnc and configure Xvnc to use XFS for font handling. +Otherwise, if XFS is not running, the vncserver script will attempt to start +Xvnc and allow Xvnc to use its own preferred method of font handling (which may +be a hard-coded font path or, on more recent systems, a font catalog.) In +any case, if Xvnc fails to start, the vncserver script will then attempt to +determine an appropriate X font path for this system and start Xvnc using +that font path. + +The +.B \-fp +argument allows you to override the above fallback logic and specify a font +path for Xvnc to use. +. +.TP +.B \-fg +Runs Xvnc as a foreground process. This has two effects: (1) The VNC server +can be aborted with CTRL-C, and (2) the VNC server will exit as soon as the +user logs out of the window manager in the VNC session. This may be necessary +when launching TigerVNC from within certain grid computing environments. +. +.TP +.B \-autokill +Automatically kill Xvnc whenever the xstartup script exits. In most cases, +this has the effect of terminating Xvnc when the user logs out of the window +manager. +. +.TP +.B \-noxstartup +Do not run the %HOME/.vnc/xstartup script after launching Xvnc. This +option allows you to manually start a window manager in your TigerVNC session. +. +.TP +.B \-xstartup \fIscript\fP +Run a custom startup script, instead of %HOME/.vnc/xstartup, after launching +Xvnc. This is useful to run full-screen applications. +. +.TP +.B \-list +Lists all VNC desktops started by vncserver. + +.SH FILES +Several VNC-related files are found in the directory $HOME/.vnc: +.TP +$HOME/.vnc/xstartup +A shell script specifying X applications to be run when a VNC desktop is +started. If this file does not exist, then vncserver will create a default +xstartup script which attempts to launch your chosen window manager. +.TP +/etc/tigervnc/vncserver-config-defaults +The optional system-wide equivalent of $HOME/.vnc/config. If this file exists +and defines options to be passed to Xvnc, they will be used as defaults for +users. The user's $HOME/.vnc/config overrides settings configured in this file. +The overall configuration file load order is: this file, $HOME/.vnc/config, +and then /etc/tigervnc/vncserver-config-mandatory. None are required to exist. +.TP +/etc/tigervnc/vncserver-config-mandatory +The optional system-wide equivalent of $HOME/.vnc/config. If this file exists +and defines options to be passed to Xvnc, they will override any of the same +options defined in a user's $HOME/.vnc/config. This file offers a mechanism +to establish some basic form of system-wide policy. WARNING! There is +nothing stopping users from constructing their own vncserver-like script +that calls Xvnc directly to bypass any options defined in +/etc/tigervnc/vncserver-config-mandatory. Likewise, any CLI arguments passed +to vncserver will override ANY config file setting of the same name. The +overall configuration file load order is: +/etc/tigervnc/vncserver-config-defaults, $HOME/.vnc/config, and then this file. +None are required to exist. +.TP +$HOME/.vnc/config +An optional server config file wherein options to be passed to Xvnc are listed +to avoid hard-coding them to the physical invocation. List options in this file +one per line. For those requiring an argument, simply separate the option from +the argument with an equal sign, for example: "geometry=2000x1200" or +"securitytypes=vncauth,tlsvnc". Options without an argument are simply listed +as a single word, for example: "localhost" or "alwaysshared". +.TP +$HOME/.vnc/passwd +The VNC password file. +.TP +$HOME/.vnc/\fIhost\fP:\fIdisplay#\fP.log +The log file for Xvnc and applications started in xstartup. +.TP +$HOME/.vnc/\fIhost\fP:\fIdisplay#\fP.pid +Identifies the Xvnc process ID, used by the +.B \-kill +option. + +.SH SEE ALSO +.BR vncviewer (1), +.BR vncpasswd (1), +.BR vncconfig (1), +.BR Xvnc (1) +.br +https://www.tigervnc.org + +.SH AUTHOR +Tristan Richardson, RealVNC Ltd., D. R. Commander and others. + +VNC was originally developed by the RealVNC team while at Olivetti +Research Ltd / AT&T Laboratories Cambridge. TightVNC additions were +implemented by Constantin Kaplinsky. Many other people have since +participated in development, testing and support. This manual is part +of the TigerVNC software suite.