commit:     f94f6f15314c9a4b161efacb57042744346bc234
Author:     Viorel Munteanu <ceamac.paragon <AT> gmail <DOT> com>
AuthorDate: Tue Mar 22 07:27:03 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Mar 22 18:01:11 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f94f6f15

net-misc/tigervnc: Fix the init script

Remove $VNC_OPTS from conf.d
Make init script POSIX compliant

Closes: https://bugs.gentoo.org/835730
Closes: https://bugs.gentoo.org/506522
Signed-off-by: Viorel Munteanu <ceamac.paragon <AT> gmail.com>
Closes: https://github.com/gentoo/gentoo/pull/24703
Signed-off-by: Sam James <sam <AT> gentoo.org>

 net-misc/tigervnc/files/tigervnc-1.12.0.confd      |  4 ++--
 net-misc/tigervnc/files/tigervnc-1.12.0.initd      | 28 ++++++++++------------
 ...-1.12.0-r2.ebuild => tigervnc-1.12.0-r3.ebuild} |  0
 3 files changed, 14 insertions(+), 18 deletions(-)

diff --git a/net-misc/tigervnc/files/tigervnc-1.12.0.confd 
b/net-misc/tigervnc/files/tigervnc-1.12.0.confd
index a65c991eabcc..d03da01660be 100644
--- a/net-misc/tigervnc/files/tigervnc-1.12.0.confd
+++ b/net-misc/tigervnc/files/tigervnc-1.12.0.confd
@@ -11,5 +11,5 @@
 # TIGERVNC_XSESSION_FILE="/etc/lightdm/Xsession"
 # TIGERVNC_XSESSION_FILE="/usr/share/slim/Xsession"
 
-# Specify any of vncserver(1) and Xvnc(1) options. See the respective man 
pages for more information.
-# VNC_OPTS=""
+# vncsession no longer supports VNC_OPTS
+# Use /etc/tigervnc/vncserver-config-defaults or $HOME/.vnc/config instead

diff --git a/net-misc/tigervnc/files/tigervnc-1.12.0.initd 
b/net-misc/tigervnc/files/tigervnc-1.12.0.initd
index 59da61eed5f7..c27d9c01bd7e 100644
--- a/net-misc/tigervnc/files/tigervnc-1.12.0.initd
+++ b/net-misc/tigervnc/files/tigervnc-1.12.0.initd
@@ -2,25 +2,26 @@
 # Copyright 1999-2022 Gentoo Authors
 # Distributed under the terms of the GNU General Public License, v2 or later
 
+# shellcheck shell=sh
+
 depend() {
        need net
 }
 
 checkconfig() {
        if [ -n "${DISPLAYS}" ]; then
-               if [ $1 = "start" ]; then
-                       local user
+               if [ "$1" = "start" ]; then
                        for user in $DISPLAYS; do
                                if eval [ ! -f "~${user%%:*}/.vnc/passwd" ]; 
then
                                        eerror "There are no passwords defined 
for user ${user%%:*}."
                                        return 1
                                elif [ -e "/tmp/.X11-unix/X${user##*:}" ]; then
                                        eerror "Display :${user##*:} appears to 
be already in use because of /tmp/.X11-unix/X${user##*:}"
-                                       eerror "Remove this file if there is no 
X server $HOSTNAME:${user##*:}"
+                                       eerror "Remove this file if there is no 
X server for :${user##*:}"
                                        return 1
                                elif [ -e "/tmp/.X${user##*:}-lock" ]; then
                                        eerror "Display :${user##*:} appears to 
be already in use because of /tmp/.X${user##*:}-lock"
-                                       eerror "Remove this file if there is no 
X server $HOSTNAME:${user##*:}"
+                                       eerror "Remove this file if there is no 
X server for :${user##*:}"
                                        return 1
                                elif ! grep -E "^[^#]*:${user##*:}=${user%%:*}" 
/etc/tigervnc/vncserver.users > /dev/null 2>&1; then
                                        eerror "User ${user%%:*} is not defined 
for display :${user##*:} in /etc/tigervnc/vncserver.users"
@@ -30,6 +31,8 @@ checkconfig() {
                fi
                return 0
        else
+               # here it is intended for $DISPLAYS to not expand
+               # shellcheck disable=SC2016
                eerror 'Please define $DISPLAYS in /etc/conf.d/tigervnc'
                return 1
        fi
@@ -39,15 +42,8 @@ start() {
        checkconfig start || return 1
        ebegin "Starting TigerVNC server"
        for user in $DISPLAYS; do
-               usrname=${user%%:*}
-               usropts=VNC_OPTS_${usrname}
-               usrdisp=${user##*:}
-               usrvar=$usropts"["$usrdisp"]"
-               [ -z ${!usrvar} ] && vnc_opts=$VNC_OPTS || vnc_opts=${!usrvar}
-
                [ -n "${TIGERVNC_XSESSION_FILE}" ] && export 
TIGERVNC_XSESSION_FILE
-
-               /usr/libexec/vncsession-start :${user##*:} $vnc_opts &>/dev/null
+               /usr/libexec/vncsession-start ":${user##*:}" >/dev/null 2>&1
        done
        eend $?
 }
@@ -59,10 +55,10 @@ stop() {
                # vncserver no longer provides a `-kill` option
                # killing vncsession does not work, we have to kill Xvnc
                # run pstree to see exactly what's going on
-               sessionpid=`cat /run/vncsession-\:${user##*:}.pid`
-               serverpid=`pstree -p $sessionpid | grep Xvnc | sed -e 
's/^.*Xvnc(//
-                       s/).*$//'`
-               kill $serverpid &>/dev/null
+               sessionpid=$(cat /run/vncsession-:"${user##*:}".pid)
+               serverpid=$(pstree -p "$sessionpid" | grep Xvnc | sed -e 
's/^.*Xvnc(//
+                       s/).*$//')
+               kill "$serverpid" >/dev/null 2>&1
        done
        # Do not fail if a server is missing
        /bin/true

diff --git a/net-misc/tigervnc/tigervnc-1.12.0-r2.ebuild 
b/net-misc/tigervnc/tigervnc-1.12.0-r3.ebuild
similarity index 100%
rename from net-misc/tigervnc/tigervnc-1.12.0-r2.ebuild
rename to net-misc/tigervnc/tigervnc-1.12.0-r3.ebuild

Reply via email to