import tigervnc-1.9.0-12.el8

This commit is contained in:
CentOS Sources 2020-01-21 16:24:23 -05:00 committed by Stepan Oksanichenko
parent b93853e86d
commit 96eb36ba55
5 changed files with 138 additions and 13 deletions

View File

@ -0,0 +1,13 @@
diff --git a/unix/vncserver b/unix/vncserver
index bb4f2feb..68be032d 100755
--- a/unix/vncserver
+++ b/unix/vncserver
@@ -709,7 +709,7 @@ sub List
}
}
}
- exit 1;
+ exit;
}

View File

@ -0,0 +1,45 @@
# The vncserver service unit file
#
# Quick HowTo:
# 1. Copy this file to /etc/systemd/system/vncserver@.service
# 2. Replace <USER> with the actual user name and edit vncserver
# parameters in the wrapper script located in /usr/bin/vncserver_wrapper
# 3. Run `systemctl daemon-reload`
# 4. Run `systemctl enable vncserver@:<display>.service`
#
# DO NOT RUN THIS SERVICE if your local area network is
# untrusted! For a secure way of using VNC, you should
# limit connections to the local host and then tunnel from
# the machine you want to view VNC on (host A) to the machine
# whose VNC output you want to view (host B)
#
# [user@hostA ~]$ ssh -v -C -L 590N:localhost:590M hostB
#
# this will open a connection on port 590N of your hostA to hostB's port 590M
# (in fact, it ssh-connects to hostB and then connects to localhost (on hostB).
# See the ssh man page for details on port forwarding)
#
# You can then point a VNC client on hostA at vncdisplay N of localhost and with
# the help of ssh, you end up seeing what hostB makes available on port 590M
#
# Use "-nolisten tcp" to prevent X connections to your VNC server via TCP.
#
# Use "-localhost" to prevent remote VNC clients connecting except when
# doing so through a secure tunnel. See the "-via" option in the
# `man vncviewer' manual page.
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=simple
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver_wrapper <USER> %i
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
[Install]
WantedBy=multi-user.target

42
SOURCES/vncserver_wrapper Executable file
View File

@ -0,0 +1,42 @@
#!/bin/sh
USER="$1"
INSTANCE="$2"
die() {
echo "FATAL: ${@:-}" >&2
exit 2
}
cleanup() {
[ -n "$VNCPID" ] || return
if kill -0 $VNCPID 2>/dev/null; then
kill $VNCPID
fi
}
trap cleanup TERM INT HUP
[ -n "$USER" -a -n "$INSTANCE" ] || die "Invalid usage!"
/usr/sbin/runuser -l "$USER" -c "/usr/bin/vncserver ${INSTANCE}"
[ $? -eq 0 ] || die "'runuser -l $USER' failed!"
# Wait up to 5 seconds for vncserver to be up
for tries in $(seq 1 50); do
[ -e "~$USER/.vnc/$(hostname)${INSTANCE}.pid" ] && break
sleep 0.1
done
eval HOME=~$USER
VNCPID=$(cat "$HOME/.vnc/$(hostname)${INSTANCE}.pid" 2>/dev/null || true)
[ -n "$VNCPID" ] || die "'vncserver ${INSTANCE}' failed to start after 5 seconds!"
echo "'vncserver ${INSTANCE}' has PID $VNCPID, waiting until it exits ..."
while kill -0 $VNCPID 2>/dev/null; do
sleep 5
done
echo "PID $VNCPID exited, exiting ..."

View File

@ -1,6 +1,6 @@
Name: tigervnc
Version: 1.9.0
Release: 9%{?dist}
Release: 12%{?dist}
Summary: A TigerVNC remote display system
%global _hardened_build 1
@ -9,11 +9,13 @@ License: GPLv2+
URL: http://www.tigervnc.com
Source0: %{name}-%{version}.tar.gz
Source1: vncserver.service
Source2: vncserver.sysconfig
Source3: 10-libvnc.conf
Source4: xvnc.service
Source5: xvnc.socket
Source1: vncserver-system.service
Source2: vncserver-user.service
Source3: vncserver.sysconfig
Source4: 10-libvnc.conf
Source5: xvnc.service
Source6: xvnc.socket
Source7: vncserver_wrapper
Patch1: tigervnc-manpages.patch
Patch2: tigervnc-getmaster.patch
@ -26,6 +28,7 @@ Patch8: tigervnc-let-user-know-about-not-using-view-only-password.patch
Patch9: tigervnc-working-tls-on-fips-systems.patch
Patch11: tigervnc-utilize-system-crypto-policies.patch
Patch12: tigervnc-passwd-crash-with-malloc-checks.patch
Patch13: tigervnc-vncserver-do-not-return-returncode-indicating-error.patch
Patch50: tigervnc-covscan.patch
@ -185,6 +188,8 @@ popd
%patch12 -p1 -b .passwd-crash-with-malloc-checks
%patch13 -p1 -b .vncserver-do-not-return-returncode-indicating-error
%patch50 -p1 -b .tigervnc-covscan
%build
@ -240,15 +245,19 @@ make install DESTDIR=%{buildroot}
popd
# Install systemd unit file
mkdir -p %{buildroot}%{_userunitdir}
install -m644 %{SOURCE1} %{buildroot}%{_userunitdir}/vncserver@.service
mkdir -p %{buildroot}%{_unitdir}
install -m644 %{SOURCE4} %{buildroot}%{_unitdir}/xvnc@.service
install -m644 %{SOURCE5} %{buildroot}%{_unitdir}/xvnc.socket
mkdir -p %{buildroot}%{_userunitdir}
install -m644 %{SOURCE1} %{buildroot}%{_unitdir}/vncserver@.service
install -m644 %{SOURCE2} %{buildroot}%{_userunitdir}/vncserver@.service
install -m644 %{SOURCE5} %{buildroot}%{_unitdir}/xvnc@.service
install -m644 %{SOURCE6} %{buildroot}%{_unitdir}/xvnc.socket
rm -rf %{buildroot}%{_initrddir}
# Install vncserver wrapper script
install -m744 %{SOURCE7} %{buildroot}%{_bindir}/vncserver_wrapper
mkdir -p %{buildroot}%{_sysconfdir}/sysconfig
install -m644 %{SOURCE2} %{buildroot}%{_sysconfdir}/sysconfig/vncservers
install -m644 %{SOURCE3} %{buildroot}%{_sysconfdir}/sysconfig/vncservers
# Install desktop stuff
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/{16x16,24x24,48x48}/apps
@ -276,7 +285,7 @@ rm -f %{buildroot}%{_libdir}/xorg/modules/extensions/libvnc.la
rm -f %{buildroot}%{_libdir}/xorg/modules/extensions/libvnc.so
%else
mkdir -p %{buildroot}%{_sysconfdir}/X11/xorg.conf.d/
install -m 644 %{SOURCE3} %{buildroot}%{_sysconfdir}/X11/xorg.conf.d/10-libvnc.conf
install -m 644 %{SOURCE4} %{buildroot}%{_sysconfdir}/X11/xorg.conf.d/10-libvnc.conf
%endif
%post server
@ -290,7 +299,9 @@ install -m 644 %{SOURCE3} %{buildroot}%{_sysconfdir}/X11/xorg.conf.d/10-libvnc.c
%systemd_preun xvnc.socket
%postun server
%systemd_postun
%systemd_postun vncserver.service
%systemd_postun xvnc.service
%systemd_postun xvnc.socket
%files -f %{name}.lang
%doc README.rst
@ -301,10 +312,12 @@ install -m 644 %{SOURCE3} %{buildroot}%{_sysconfdir}/X11/xorg.conf.d/10-libvnc.c
%files server
%config(noreplace) %{_sysconfdir}/sysconfig/vncservers
%{_userunitdir}/vncserver@.service
%{_unitdir}/vncserver@.service
%{_unitdir}/xvnc@.service
%{_unitdir}/xvnc.socket
%{_bindir}/x0vncserver
%{_bindir}/vncserver
%{_bindir}/vncserver_wrapper
%{_mandir}/man1/vncserver.1*
%{_mandir}/man1/x0vncserver.1*
@ -333,6 +346,18 @@ install -m 644 %{SOURCE3} %{buildroot}%{_sysconfdir}/X11/xorg.conf.d/10-libvnc.c
%{_datadir}/icons/hicolor/*/apps/*
%changelog
* Wed Dec 11 2019 Jan Grulich <jgrulich@redhat.com> - 1.9.0-12
- Fix installation of systemd files
Resolves: bz#1671714
* Wed Nov 20 2019 Jan Grulich <jgrulich@redhat.com> - 1.9.0-11
- Use wrapper script to workaround systemd issues
Resolves: bz#1671714
* Fri Jul 12 2019 Jan Grulich <jgrulich@redhat.com> - 1.9.0-10
- Do not return returncode indicating error when running "vncserver -list"
Resolves: bz#1727860
* Fri Feb 08 2019 Jan Grulich <jgrulich@redhat.com> - 1.9.0-9
- Make tigervnc systemd service a user service
Resolves: bz#1639846