Browse Source

Always install systemd services

It is the most common init system these days so it should not be
hidden in the contrib/ directory.

This also removes all old SysV files from the contrib packages.
tags/v1.10.90
Pierre Ossman 6 years ago
parent
commit
df25ae4119

+ 3
- 0
CMakeLists.txt View File

@@ -33,12 +33,15 @@ set(DATA_DIR "${CMAKE_INSTALL_PREFIX}/share")
set(MAN_DIR "${DATA_DIR}/man")
set(LOCALE_DIR "${DATA_DIR}/locale")
set(DOC_DIR "${CMAKE_INSTALL_PREFIX}/share/doc/${CMAKE_PROJECT_NAME}-${VERSION}")
set(UNIT_DIR "${CMAKE_INSTALL_PREFIX}/lib/systemd/system")

if(WIN32)
set(BIN_DIR "${CMAKE_INSTALL_PREFIX}")
set(DOC_DIR "${CMAKE_INSTALL_PREFIX}")
endif()

option(INSTALL_SYSTEMD_UNITS "Install TigerVNC systemd units" ON)

if(MSVC)
message(FATAL_ERROR "TigerVNC cannot be built with Visual Studio. Please use MinGW")
endif()

+ 0
- 94
contrib/packages/deb/ubuntu-bionic/debian/local/vncserver.service View File

@@ -1,94 +0,0 @@
#!/bin/bash
#
# Init file for TigerVNC Server
#
# chkconfig: - 91 35
# description: TigerVNC remote X administration daemon.
#
# processname: Xvnc

### BEGIN INIT INFO
# Provides: vncservers
# Required-Start: networking
# Required-Stop: networking
# Default-Start:
# Default-Stop: 0 1 2 3 4 5 6
# Short-Description: Starts and stops vncserver
# Description: Used to provide remote X administration services.
### END INIT INFO

# Source function library.
. /lib/lsb/init-functions

### Default variables
SYSCONFIG="/etc/default/vncservers"
VNCSERVERS=""

### Read configuration
[ -r "$SYSCONFIG" ] && . "$SYSCONFIG"

RETVAL=0
prog=$"VNC server"

start() {
echo -n $"Starting $prog: "
ulimit -S -c 0 >/dev/null 2>&1
for display in ${VNCSERVERS}; do
echo -n "${display} "
if [ -r $(eval echo ~${display##*:})/.vnc/passwd ]; then
unset BASH_ENV ENV
log_begin_msg "Starting VNC Server for user ${display##*:}:"
su ${display##*:} -c "cd ~${display##*:} && [ -f .vnc/passwd ] && vncserver :${display%%:*} ${VNCSERVERARGS[${display%:*}]}"
RETVAL="$?"
if [ "$RETVAL" -ne 0 ]; then
log_end_msg 1
break
else
log_end_msg 0
fi
else
log_begin_msg "Not starting VNC Server for user ${display##*:}.\n File \"~${display##*:}/.vnc/passwd\" not found.\n Create a password file for the VNC server with vncpasswd"
log_end_msg 1
fi
done
echo
[ "$RETVAL" -eq 0 ] && touch "/var/lock/vncserver"
return $RETVAL
}

stop() {
echo -n $"Shutting down $desc: "
for display in ${VNCSERVERS}; do
echo -n "${display} "
unset BASH_ENV ENV
log_begin_msg "Shutting down VNC Server for user ${display##*:}: "
su ${display##*:} -c "vncserver -kill :${display%%:*}" >/dev/null 2>&1
RETVAL="$?"
[ "$RETVAL" -eq 0 ] && log_end_msg 0 || log_end_msg 1
done
echo
[ "$RETVAL" -eq 0 ] && rm -f "/var/lock/vncserver"
return $RETVAL
}

restart() {
stop
start
}

case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload)
restart
;;
*)
echo $"Usage: $0 {start|stop|restart}"
RETVAL=1
esac

exit $RETVAL

+ 0
- 19
contrib/packages/deb/ubuntu-bionic/debian/local/vncserver.sysconfig View File

@@ -1,19 +0,0 @@
# The VNCSERVERS variable is a list of display:user pairs.
#
# Uncomment the lines below to start a VNC server on display :2
# as my 'myusername' (adjust this to your own). You will also
# need to set a VNC password; run 'man vncpasswd' to see how
# to do that.
#
# DO NOT RUN THIS SERVICE if your local area network is
# untrusted! For a secure way of using VNC, see this URL:
# http://kbase.redhat.com/faq/docs/DOC-7028

# 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.

# VNCSERVERS="2:myusername"
# VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -localhost"

+ 2
- 6
contrib/packages/deb/ubuntu-bionic/debian/rules View File

@@ -57,7 +57,8 @@ config-stamp: xorg-source-stamp
cmake -G"Unix Makefiles" \
-DBUILD_STATIC=off \
-DCMAKE_INSTALL_PREFIX:PATH=/usr \
-DSYSCONF_DIR:PATH=/etc
-DSYSCONF_DIR:PATH=/etc \
-DUNIT_DIR:PATH=/lib/systemd/system
(cd unix/xserver; \
export PIXMANINCDIR=/usr/include/pixman-1; \
autoreconf -fiv; \
@@ -187,11 +188,6 @@ install: build
$(CURDIR)/debian/tigervncserver/usr/share/man/man1/Xtigervnc.1
# delete development files
rm -f $(CURDIR)/debian/tigervncserver/usr/lib/xorg/modules/extensions/libvnc.la
# install server service
install -o root -g root -m 755 -D $(CURDIR)/debian/local/vncserver.service \
$(CURDIR)/debian/tigervncserver/etc/init.d/vncserver
install -o root -g root -m 644 -D $(CURDIR)/debian/local/vncserver.sysconfig \
$(CURDIR)/debian/tigervncserver/etc/default/vncservers
# move viewer files to viewer package, rename on the fly
mkdir -p $(CURDIR)/debian/xtigervncviewer/usr/bin
mv $(CURDIR)/debian/tigervncserver/usr/bin/vncviewer \

+ 0
- 94
contrib/packages/deb/ubuntu-xenial/debian/local/vncserver.service View File

@@ -1,94 +0,0 @@
#!/bin/bash
#
# Init file for TigerVNC Server
#
# chkconfig: - 91 35
# description: TigerVNC remote X administration daemon.
#
# processname: Xvnc

### BEGIN INIT INFO
# Provides: vncservers
# Required-Start: networking
# Required-Stop: networking
# Default-Start:
# Default-Stop: 0 1 2 3 4 5 6
# Short-Description: Starts and stops vncserver
# Description: Used to provide remote X administration services.
### END INIT INFO

# Source function library.
. /lib/lsb/init-functions

### Default variables
SYSCONFIG="/etc/default/vncservers"
VNCSERVERS=""

### Read configuration
[ -r "$SYSCONFIG" ] && . "$SYSCONFIG"

RETVAL=0
prog=$"VNC server"

start() {
echo -n $"Starting $prog: "
ulimit -S -c 0 >/dev/null 2>&1
for display in ${VNCSERVERS}; do
echo -n "${display} "
if [ -r $(eval echo ~${display##*:})/.vnc/passwd ]; then
unset BASH_ENV ENV
log_begin_msg "Starting VNC Server for user ${display##*:}:"
su ${display##*:} -c "cd ~${display##*:} && [ -f .vnc/passwd ] && vncserver :${display%%:*} ${VNCSERVERARGS[${display%:*}]}"
RETVAL="$?"
if [ "$RETVAL" -ne 0 ]; then
log_end_msg 1
break
else
log_end_msg 0
fi
else
log_begin_msg "Not starting VNC Server for user ${display##*:}.\n File \"~${display##*:}/.vnc/passwd\" not found.\n Create a password file for the VNC server with vncpasswd"
log_end_msg 1
fi
done
echo
[ "$RETVAL" -eq 0 ] && touch "/var/lock/vncserver"
return $RETVAL
}

stop() {
echo -n $"Shutting down $desc: "
for display in ${VNCSERVERS}; do
echo -n "${display} "
unset BASH_ENV ENV
log_begin_msg "Shutting down VNC Server for user ${display##*:}: "
su ${display##*:} -c "vncserver -kill :${display%%:*}" >/dev/null 2>&1
RETVAL="$?"
[ "$RETVAL" -eq 0 ] && log_end_msg 0 || log_end_msg 1
done
echo
[ "$RETVAL" -eq 0 ] && rm -f "/var/lock/vncserver"
return $RETVAL
}

restart() {
stop
start
}

case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload)
restart
;;
*)
echo $"Usage: $0 {start|stop|restart}"
RETVAL=1
esac

exit $RETVAL

+ 0
- 19
contrib/packages/deb/ubuntu-xenial/debian/local/vncserver.sysconfig View File

@@ -1,19 +0,0 @@
# The VNCSERVERS variable is a list of display:user pairs.
#
# Uncomment the lines below to start a VNC server on display :2
# as my 'myusername' (adjust this to your own). You will also
# need to set a VNC password; run 'man vncpasswd' to see how
# to do that.
#
# DO NOT RUN THIS SERVICE if your local area network is
# untrusted! For a secure way of using VNC, see this URL:
# http://kbase.redhat.com/faq/docs/DOC-7028

# 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.

# VNCSERVERS="2:myusername"
# VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -localhost"

+ 2
- 6
contrib/packages/deb/ubuntu-xenial/debian/rules View File

@@ -58,7 +58,8 @@ config-stamp: xorg-source-stamp
cmake -G"Unix Makefiles" \
-DBUILD_STATIC=off \
-DCMAKE_INSTALL_PREFIX:PATH=/usr \
-DSYSCONF_DIR:PATH=/etc
-DSYSCONF_DIR:PATH=/etc \
-DUNIT_DIR:PATH=/lib/systemd/system
(cd unix/xserver; \
export PIXMANINCDIR=/usr/include/pixman-1; \
autoreconf -fiv; \
@@ -188,11 +189,6 @@ install: build
$(CURDIR)/debian/tigervncserver/usr/share/man/man1/Xtigervnc.1
# delete development files
rm -f $(CURDIR)/debian/tigervncserver/usr/lib/xorg/modules/extensions/libvnc.la
# install server service
install -o root -g root -m 755 -D $(CURDIR)/debian/local/vncserver.service \
$(CURDIR)/debian/tigervncserver/etc/init.d/vncserver
install -o root -g root -m 644 -D $(CURDIR)/debian/local/vncserver.sysconfig \
$(CURDIR)/debian/tigervncserver/etc/default/vncservers
# move viewer files to viewer package, rename on the fly
mkdir -p $(CURDIR)/debian/xtigervncviewer/usr/bin
mv $(CURDIR)/debian/tigervncserver/usr/bin/vncviewer \

+ 0
- 1
contrib/packages/rpm/el7/SOURCES/vncserver.sysconfig View File

@@ -1 +0,0 @@
# THIS FILE HAS BEEN REPLACED BY /lib/systemd/system/vncserver@.service

+ 0
- 24
contrib/packages/rpm/el7/SPECS/tigervnc.spec View File

@@ -9,8 +9,6 @@ Packager: Brian P. Hinz <bphinz@users.sourceforge.net>
URL: http://www.tigervnc.com

Source0: %{name}-%{version}%{?snap:-%{snap}}.tar.bz2
Source1: vncserver.service
Source2: vncserver.sysconfig
Source3: 10-libvnc.conf
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

@@ -188,14 +186,6 @@ pushd unix/xserver/hw/vnc
make install DESTDIR=$RPM_BUILD_ROOT
popd

# Install systemd unit file
mkdir -p %{buildroot}%{_unitdir}
install -m644 %{SOURCE1} %{buildroot}%{_unitdir}/vncserver@.service
rm -rf %{buildroot}%{_initrddir}

mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig
install -m644 %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/vncservers

%find_lang %{name} %{name}.lang

# remove unwanted files
@@ -223,19 +213,6 @@ if [ -x %{_bindir}/gtk-update-icon-cache ]; then
%{_bindir}/gtk-update-icon-cache -q %{_datadir}/icons/hicolor || :
fi

%post server
%systemd_post vncserver.service

%triggerun -- tigervnc-server < 1.0.90-6
%{_bindir}/systemd-sysv-convert --save vncserver >/dev/null 2>&1 ||:
/sbin/chkconfig --del vncserver >/dev/null 2>&1 || :

%preun server
%systemd_preun vncserver.service

%postun server
%systemd_postun

%files -f %{name}.lang
%defattr(-,root,root,-)
%doc %{_docdir}/%{name}-%{version}/README.rst
@@ -245,7 +222,6 @@ fi

%files server
%defattr(-,root,root,-)
%config(noreplace) %{_sysconfdir}/sysconfig/vncservers
%config(noreplace) %{_sysconfdir}/tigervnc/vncserver-config-defaults
%config(noreplace) %{_sysconfdir}/tigervnc/vncserver-config-mandatory
%{_unitdir}/vncserver@.service

+ 0
- 26
contrib/systemd/user/vncserver@.service View File

@@ -1,26 +0,0 @@
#
# /usr/lib/systemd/user/vncserver@.service
#
# 1. Switches for vncserver should be entered in ~/.vnc/config rather than
# hard-coded into this unit file. See the vncserver(1) manpage.
#
# 2. Users wishing for the server to continue running after the owner logs
# out MUST enable 'linger' with loginctl like this:
# `loginctl enable-linger username`
#
# 3. The server can be enabled and started like this once configured:
# `systemctl --user start vncserver@:<display>.service`
# `systemctl --user enable vncserver@:<display>.service`

[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=forking
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver %i
ExecStop=/usr/bin/vncserver -kill %i

[Install]
WantedBy=default.target

+ 6
- 0
unix/vncserver/CMakeLists.txt View File

@@ -1,3 +1,9 @@
configure_file(vncserver@.service.in vncserver@.service @ONLY)

install(PROGRAMS vncserver DESTINATION ${BIN_DIR})
install(FILES vncserver.man DESTINATION ${MAN_DIR}/man1 RENAME vncserver.1)
install(FILES vncserver-config-defaults vncserver-config-mandatory DESTINATION ${SYSCONF_DIR}/tigervnc)

if(INSTALL_SYSTEMD_UNITS)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/vncserver@.service DESTINATION ${UNIT_DIR})
endif()

contrib/packages/rpm/el7/SOURCES/vncserver.service → unix/vncserver/vncserver@.service.in View File

@@ -36,10 +36,10 @@ After=syslog.target network.target
[Service]
Type=forking
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/sbin/runuser -l <USER> -c "/usr/bin/vncserver %i"
ExecStartPre=/bin/sh -c '@BIN_DIR@/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/sbin/runuser -l <USER> -c "@BIN_DIR@/vncserver %i"
PIDFile=/home/<USER>/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStop=/bin/sh -c '@BIN_DIR@/vncserver -kill %i > /dev/null 2>&1 || :'

[Install]
WantedBy=multi-user.target

Loading…
Cancel
Save