instfiles: merge rc script from FreeBSD

- merge rc script from FreeBSD
- modify Makefile.am to detect OS and install suitable files
ulab-next-nosound
Koichiro IWAO 10 years ago
parent f8432d0bb7
commit 0f8f03e9cf

@ -8,6 +8,27 @@ AC_PROG_CC
AC_C_CONST
AC_PROG_LIBTOOL
PKG_PROG_PKG_CONFIG
case $host_os in
*linux*)
linux=yes
;;
*freebsd*)
freebsd=yes
;;
*netbsd*)
netbsd=yes
;;
*openbsd*)
openbsd=yes
;;
esac
AM_CONDITIONAL(LINUX, [test "x$linux" = xyes])
AM_CONDITIONAL(FREEBSD, [test "x$freebsd" = xyes])
AM_CONDITIONAL(OPENBSD, [test "x$openbsd" = xyes])
AM_CONDITIONAL(NETBSD, [test "x$netbsd" = xyes])
AC_ARG_WITH([systemdsystemunitdir],
AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files]),
[], [with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)])
@ -214,6 +235,7 @@ AC_CONFIG_FILES([Makefile
instfiles/Makefile
instfiles/pam.d/Makefile
instfiles/init.d/Makefile
instfiles/rc.d/Makefile
instfiles/default/Makefile
instfiles/pulse/Makefile
genkeymap/Makefile

@ -2,24 +2,12 @@ EXTRA_DIST = xrdp.sh km-0407.ini km-0409.ini km-040c.ini km-0410.ini km-0419.in
xrdp-sesman.service \
xrdp.service
SUBDIRS = \
pam.d \
pulse
if HAVE_SYSTEMD
systemdsystemunit_DATA = \
xrdp-sesman.service \
xrdp.service
else
SUBDIRS+= \
default \
init.d
endif
#
# files for all platforms
#
startscriptdir=$(sysconfdir)/xrdp
startscript_DATA = \
xrdp.sh \
km-0407.ini \
km-0409.ini \
km-040c.ini \
@ -34,6 +22,37 @@ startscript_DATA = \
km-e0200411.ini \
km-e0210411.ini
#
# platform specific files
#
SUBDIRS=
if LINUX
SUBDIRS+= \
pam.d \
pulse
startscript_DATA+= xrdp.sh
if HAVE_SYSTEMD
systemdsystemunit_DATA = \
xrdp-sesman.service \
xrdp.service
else
SUBDIRS+= \
default \
init.d
endif # HAVE_SYSTEMD
endif # LINUX
if FREEBSD
SUBDIRS+= \
pam.d \
rc.d \
pulse
endif
#
# install-data-hook for each platform
#
if LINUX
# must be tab below
install-data-hook:
chmod 755 $(DESTDIR)$(sysconfdir)/xrdp/xrdp.sh
@ -41,3 +60,11 @@ install-data-hook:
chmod 755 $(DESTDIR)$(sysconfdir)/init.d/xrdp; \
sed -i 's|__BASE__|$(prefix)|' $(DESTDIR)$(sysconfdir)/init.d/xrdp; \
fi
endif
if FREEBSD
# must be tab below
install-data-hook:
chmod 755 $(DESTDIR)$(sysconfdir)/rc.d/xrdp
sed -i '' 's|%%PREFIX%%|$(prefix)|g' $(DESTDIR)$(sysconfdir)/rc.d/xrdp
endif

@ -0,0 +1,4 @@
EXTRA_DIST = xrdp
startscriptdir=$(sysconfdir)/rc.d
startscript_DATA = xrdp

@ -0,0 +1,61 @@
#!/bin/sh
#
# $FreeBSD$
#
# REQUIRE: DAEMON
# PROVIDE: xrdp xrdp_sesman
#
. /etc/rc.subr
name="xrdp"
rcvar=xrdp_enable
xrdp_daemons="xrdp"
# Read settings and set default values.
load_rc_config "$name"
: ${xrdp_enable="NO"}
# Enable/disable dependent daemon.
if [ -n "${rcvar}" ] && checkyesno "xrdp_sesman_enable"; then
xrdp_daemons="xrdp xrdp_sesman"
fi
# Commands.
extra_commands="reload status"
start_cmd="xrdp_cmd"
stop_cmd="xrdp_cmd"
status_cmd="xrdp_cmd"
reload_cmd="xrdp_cmd"
rcvar_cmd="xrdp_cmd"
# Command wrapper to call each of them per daemon.
xrdp_cmd() {
local name rcvar command pidfile xrdp_daemons
# Prevent recursive calling.
unset "${rc_arg}_cmd"
# Stop processes in the reverse to order.
if [ "${rc_arg}" = "stop" ] ; then
xrdp_daemons=$(reverse_list ${xrdp_daemons})
fi
# Generate rsakeys.ini on start
if [ "${rc_arg}" = "start" -a ! -f %%PREFIX%%/etc/xrdp/rsakeys.ini ] ; then
%%PREFIX%%/bin/xrdp-keygen xrdp %%PREFIX%%/etc/xrdp/rsakeys.ini
fi
# Apply to all the daemons.
for name in ${xrdp_daemons}; do
rcvar=${name}_enable
if [ "${name}" = "xrdp_sesman" ]; then
command="%%PREFIX%%/sbin/xrdp-sesman"
pidfile="/var/run/xrdp-sesman.pid"
else
command="%%PREFIX%%/sbin/${name}"
pidfile="/var/run/${name}.pid"
fi
run_rc_command "${_rc_prefix}${rc_arg}" ${rc_extra_args}
done
}
run_rc_command "$1"
Loading…
Cancel
Save