aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--astro/setiathome/Makefile82
-rw-r--r--astro/setiathome/files/rc.setiathome.conf12
-rw-r--r--astro/setiathome/files/setiathome.sh188
-rw-r--r--astro/setiathome/pkg-install173
-rw-r--r--astro/setiathome/pkg-message3
-rw-r--r--astro/setiathome/pkg-plist6
6 files changed, 307 insertions, 157 deletions
diff --git a/astro/setiathome/Makefile b/astro/setiathome/Makefile
index ee4526be2bfd..cf7c95b433dc 100644
--- a/astro/setiathome/Makefile
+++ b/astro/setiathome/Makefile
@@ -6,7 +6,7 @@
PORTNAME= setiathome
PORTVERSION= 3.03
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= astro
MASTER_SITES= ftp://ftp.cdrom.com/pub/setiathome/ \
ftp://alien.ssl.berkeley.edu/pub/ \
@@ -15,15 +15,14 @@ MASTER_SITES= ftp://ftp.cdrom.com/pub/setiathome/ \
DISTNAME= ${PORTNAME}-${PORTVERSION}.${PORT_HOST}
EXTRACT_SUFX= .tar
-MAINTAINER= clefevre@redirect.to
+MAINTAINER= clefevre@citeweb.net
.include <bsd.port.pre.mk>
-#
# Global variables
#
-.if !defined(PACKAGE_BUILDING) || empty(PACKAGE_BUILDING)
+.if !defined(BATCH)
IS_INTERACTIVE= yes
.endif
@@ -38,13 +37,17 @@ BROKEN= "currently supports only FreeBSD 2.2.6 and above"
EXTRACT_CMD= ${CAT}
EXTRACT_BEFORE_ARGS=
+
STRIP= # aout is already stripped
SCRIPTS_ENV+= PKG_PREFIX=${PREFIX}
-SCRIPTS_ENV+= PACKAGE_BUILDING=${PACKAGE_BUILDING}
+PLIST_SUB= X11PORTS=${X11PORTS}
MAN1= ${PORTNAME}.1
-#
+MSG_FILE= ${PKGDIR}/pkg-message
+PKGMESSAGE= ${WRKDIR}/pkg-message
+PKGDEINSTALL= ${PKGINSTALL}
+
# Local variables
#
@@ -55,11 +58,14 @@ PORT_OSREL= 2.2.8
PORT_OS= ${PORT_OSNAME}${PORT_OSREL}
PORT_HOST= ${PORT_CPU}-${PORT_VENDOR}-${PORT_OS}
-SBINSUBDIR?= sbin
-RCDSUBDIR= etc/rc.d
-MANSUBDIR= man
-PROG= ${PORTNAME}
-SCRIPT= ${PORTNAME}.sh
+SBIN_DIR= ${PREFIX}/sbin
+CONF_DIR= ${PREFIX}/etc
+RC_DIR= ${PREFIX}/etc/rc.d
+
+SAMP_SUFX= .sample
+
+BIN_FILE= setiathome
+RC_FILES= setiathome
# xsetiathome is currently broken at 4.2. should work at 2.x,
# don't know between 3.0 and 4.2 ? so, be conservative...
@@ -68,60 +74,70 @@ SCRIPT= ${PORTNAME}.sh
# Floating point exception (core dumped)
.if ${OSVERSION} < 300000
-XBINSUBDIR= bin
-XPROG+= x${PORTNAME}
MAN1+= x${PORTNAME}.1
+XBIN_DIR= ${PREFIX}/bin
+XBIN_FILE+= xsetiathome
+X11PORTS=
+.else
+X11PORTS= "@comment "
.endif
#
-# Post-configure
#
-post-configure:
- @${SED} -e 's.!!SUBDIR!!.${SBINSUBDIR}.g' ${FILESDIR}/${SCRIPT} > ${WRKSRC}/${SCRIPT}
+post-patch: patch-message
+
+patch-message:
+ @${SED} 's|%%PREFIX%%|${PREFIX}|g' ${MSG_FILE} > ${PKGMESSAGE}
-#
# Install
#
-do-install: install-daemon install-program install-script install-man
+do-install: install-daemon install-program install-man
install-daemon:
- @${INSTALL_PROGRAM} ${WRKSRC}/${PROG} ${PREFIX}/${SBINSUBDIR}
+ @${INSTALL_PROGRAM} ${WRKSRC}/${BIN_FILE} ${SBIN_DIR}
install-program:
.if defined(XPROG)
- @${INSTALL_PROGRAM} ${WRKSRC}/${prog} ${PREFIX}/${XBINSUBDIR}
+ @${INSTALL_PROGRAM} ${WRKSRC}/${XBIN_FILE} ${XBIN_DIR}
.endif
-install-script:
- @${INSTALL_SCRIPT} ${WRKSRC}/${SCRIPT} ${PREFIX}/${RCDSUBDIR}
-
install-man:
.for mansect in 1
.for man in ${MAN${mansect}}
@${INSTALL_MAN} ${FILESDIR}/${man} \
- ${MAN${mansect}PREFIX}/${MANSUBDIR}/man${mansect}
+ ${MAN${mansect}PREFIX}/man/man${mansect}
.endfor
.endfor
-#
# Post-install
#
-post-install: update-plist configure-package
+post-install: install-startup-files configure-package display-message
-update-plist:
- @${GREP} -q ${SBINSUBDIR}/${PROG} ${TMPPLIST} || \
- ${ECHO} ${SBINSUBDIR}/${PROG} >> ${TMPPLIST}
-.if defined(XPROG)
- @${GREP} -q ${XBINSUBDIR}/${XPROG} ${TMPPLIST} || \
- ${ECHO} ${XBINSUBDIR}/${XPROG} >> ${TMPPLIST}
+install-startup-files:
+.for file in ${RC_FILES}
+.if exists(${FILESDIR}/rc.${file}.conf)
+ @${INSTALL_DATA} ${FILESDIR}/rc.${file}.conf \
+ ${CONF_DIR}/rc.${file}.conf${SAMP_SUFX}
+.if !exists(${CONF_DIR}/rc.${file}.conf)
+ @${INSTALL_DATA} ${FILESDIR}/rc.${file}.conf ${CONF_DIR}
+.endif
.endif
+.if exists(${FILESDIR}/${file}.sh)
+ @${INSTALL_SCRIPT} ${FILESDIR}/${file}.sh ${RC_DIR}
+.endif
+.endfor
configure-package:
-.if defined(IS_INTERACTIVE)
+.if !defined(BATCH)
@${SETENV} ${SCRIPTS_ENV} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL
.endif
+display-message:
+.if !defined(BATCH)
+ @${CAT} ${PKGMESSAGE}
+.endif
+
.include <bsd.port.post.mk>
diff --git a/astro/setiathome/files/rc.setiathome.conf b/astro/setiathome/files/rc.setiathome.conf
new file mode 100644
index 000000000000..c36aea15b64c
--- /dev/null
+++ b/astro/setiathome/files/rc.setiathome.conf
@@ -0,0 +1,12 @@
+# $FreeBSD$
+#
+# SETI@home startup configuration file.
+#
+
+# seti_wrkdir=/var/db/setiathome # primary working directory
+# seti_std_args=-email # command arguments for standard mode
+# seti_reg_args=-login # command arguments for register mode
+# seti_proxy_args= # proxy arguments
+# seti_user=nobody # user id to run as
+# seti_nice=15 # nice level to run at
+# seti_maxprocs=$(sysctl -n hw.ncpu) # max. number of processes to start
diff --git a/astro/setiathome/files/setiathome.sh b/astro/setiathome/files/setiathome.sh
index 6608d233e924..97c680febd25 100644
--- a/astro/setiathome/files/setiathome.sh
+++ b/astro/setiathome/files/setiathome.sh
@@ -2,105 +2,145 @@
#
# $FreeBSD$
#
-# Start or stop setiathome, or set up working directory and register
+# Start or stop SETI@home, or set up working directory and register.
#
-# override these variables in ${PREFIX}/etc/setiathome.conf
+rc_file=${0##*/}
+rc_arg=$1
+
+# override these variables in ${PREFIX}/etc/rc.setiathome.conf
seti_wrkdir=/var/db/setiathome # primary working directory
-seti_bindir=!!SUBDIR!! # exec directory relative to ${PREFIX}
-seti_command=setiathome # command name
seti_std_args=-email # command arguments for standard mode
seti_reg_args=-login # command arguments for register mode
seti_proxy_args= # proxy arguments
seti_user=nobody # user id to run as
-seti_nice=1 # nice level to run at
-seti_maxprocs=`sysctl -n hw.ncpu` # max. number of processes to start
-seti_syslog=daemon.err # syslog facility.level
+seti_nice=15 # nice level to run at
+seti_maxprocs=$(sysctl -n hw.ncpu) # max. number of processes to start
-if ! PREFIX=$(expr $0 : "\(/.*\)/etc/rc\.d/${0##*/}\$"); then
- echo "${0##*/}: Cannot determine PREFIX." >&2
+if ! PREFIX=$(expr $0 : "\(/.*\)/etc/rc\.d/${rc_file}\$"); then
+ echo "${rc_file}: Cannot determine PREFIX." >&2
echo "Please use the complete pathname." >&2
exit 64
fi
-if [ -f ${PREFIX}/etc/setiathome.conf ]; then
- . ${PREFIX}/etc/setiathome.conf
+rcconf_dir=${PREFIX}/etc
+rcconf_file=rc.${rc_file%.sh}.conf
+rcconf_path=${rcconf_dir}/${rcconf_file}
+
+if [ -f ${rcconf_path} ]; then
+ . ${rcconf_path}
fi
+program_dir=${PREFIX}/sbin
+program_file=setiathome
+program_path=${program_dir}/${program_file}
+
+syslog_facility=daemon.err
+
i=${seti_maxprocs}
seti_wrksuff="."
while [ ${i} -gt 1 ]; do
seti_wrksuff="${seti_wrksuff} ${i}"
- i=`expr ${i} - 1`
+ i=$((${i} - 1))
done
-case $1 in
- start)
- for i in ${seti_wrksuff}; do
- if [ ! -d ${seti_wrkdir}/${i} ]; then
- logger -sp ${seti_syslog} -t ${seti_command} \
- "unable to start: ${seti_wrkdir}/${i} is missing."
- exit 72
- fi
- if [ ! -f ${seti_wrkdir}/${i}/user_info.sah ]; then
- logger -sp ${seti_syslog} -t ${seti_command} \
- "unable to start: please log in to SETI@home first. (${seti_wrkdir}/${i}/user_info.sah is missing.)"
- exit 72
- fi
- done
- for i in ${seti_wrksuff}; do
- su -fm ${seti_user} -c "\
- (cd ${seti_wrkdir}/${i} && \
- exec ${PREFIX}/${seti_bindir}/${seti_command} \
+case "$rc_arg" in
+start)
+ if [ ! -x ${program_path} ]; then
+ logger -sp ${syslog_facility} -t ${program_file} \
+ "unable to start: ${program_path} is missing."
+ exit 72
+ fi
+ for i in ${seti_wrksuff}; do
+ if [ ! -d ${seti_wrkdir}/${i} ]; then
+ logger -sp ${syslog_facility} -t ${program_file} \
+ "unable to start: ${seti_wrkdir}/${i} is missing."
+ exit 72
+ fi
+ if [ ! -f ${seti_wrkdir}/${i}/user_info.sah ]; then
+ logger -sp ${syslog_facility} -t ${program_file} \
+ "unable to start: please log in to SETI@home first" \
+ "(${seti_wrkdir}/${i}/user_info.sah is missing)."
+ logger -sp ${syslog_facility} -t ${program_file} \
+ "run \"$0 register\" to accomplish this."
+ exit 72
+ fi
+ done
+ for i in ${seti_wrksuff}; do
+ su -fm ${seti_user} -c "\
+ (cd ${seti_wrkdir}/${i} && exec ${program_path} \
${seti_std_args} ${seti_proxy_args} \
${seti_nice+-nice} ${seti_nice} >/dev/null &)"
- echo -n " SETI@home"
- done
- ;;
-
- stop)
- killall ${seti_command}
- ;;
+ done
+ echo -n " SETI@home"
+ ;;
- register)
- # Create or update primary working directory (in case the uid changed)
- mkdir -p ${seti_wrkdir}
- chown ${seti_user} ${seti_wrkdir}
- chmod u=Xrw,g=Xr,o=Xr ${seti_wrkdir}
- seti_dontlogin=no
- if [ -f ${seti_wrkdir}/user_info.sah ]; then
- echo " It seems you have already registered with SETI@home. Would you like"
- echo -n " to repeat the procedure? [Y/n] "
- read a
- if [ "X${a}" = "Xn" -o "X${a}" = "XN" ]; then
- seti_dontlogin=yes
- fi
- fi
- # No need to register if we've already done so
- if [ "X${seti_dontlogin}" != "Xyes" ]; then
- su -fm ${seti_user} -c "\
- cd ${seti_wrkdir} && \
- exec ${PREFIX}/${seti_bindir}/${seti_command} \
- ${seti_reg_args} ${seti_proxy_args}"
+stop)
+ for i in ${seti_wrksuff}; do
+ pid_path=${seti_wrkdir}/${i}/pid.sah
+ if [ -f ${pid_path} ]; then
+ kill $(cat ${pid_path}) 2> /dev/null
fi
+ done
+ if [ ! -f ${seti_wrkdir}/pid.sah ]; then
+ killall ${program_file} 2> /dev/null
+ fi
+ ;;
+
+restart)
+ $0 stop
+ $0 start
+ ;;
- if [ ${seti_maxprocs} -gt 1 ]; then
- echo " Updating additional working directories."
- i=${seti_maxprocs}
- while [ ${i} -gt 1 ]; do
- mkdir -p ${seti_wrkdir}/${i}
- chown ${seti_user} ${seti_wrkdir}/${i}
- chmod 755 ${seti_wrkdir}/${i}
- # Assume the user want's all processes to run with the same registration
- rm -f ${seti_wrkdir}/${i}/user_info.sah
- ln -sf ../user_info.sah ${seti_wrkdir}/${i}
- i=`expr ${i} - 1`
- done
+status)
+ ps -auxww | egrep ${program_file} | egrep -v "($0|egrep)"
+ ;;
+
+register)
+ if [ ! -x ${program_path} ]; then
+ echo "${program_file}:" \
+ "unable to register: ${program_path} is missing." >&2
+ exit 72
+ fi
+ # Create or update primary working directory (in case the uid changed)
+ mkdir -p ${seti_wrkdir}
+ chown ${seti_user} ${seti_wrkdir}
+ chmod u=Xrw,g=Xr,o=Xr ${seti_wrkdir}
+ seti_dontlogin=no
+ if [ -f ${seti_wrkdir}/user_info.sah ]; then
+ echo " It seems you have already registered with" \
+ "SETI@home. Would you"
+ echo -n " like to repeat the procedure? [Y/n] "
+ read a
+ if [ "X${a}" = "Xn" -o "X${a}" = "XN" ]; then
+ seti_dontlogin=yes
fi
- ;;
+ fi
+ # No need to register if we've already done so
+ if [ "X${seti_dontlogin}" != "Xyes" ]; then
+ su -fm ${seti_user} -c "\
+ cd ${seti_wrkdir} && \
+ exec ${program_path} \
+ ${seti_reg_args} ${seti_proxy_args}"
+ fi
+ if [ ${seti_maxprocs} -gt 1 ]; then
+ echo " Updating additional working directories."
+ i=${seti_maxprocs}
+ while [ ${i} -gt 1 ]; do
+ mkdir -p ${seti_wrkdir}/${i}
+ chown ${seti_user} ${seti_wrkdir}/${i}
+ chmod 755 ${seti_wrkdir}/${i}
+ # Assume the user want's all processes to run
+ # with the same registration
+ rm -f ${seti_wrkdir}/${i}/user_info.sah
+ ln -sf ../user_info.sah ${seti_wrkdir}/${i}
+ i=$((${i} - 1))
+ done
+ fi
+ ;;
- *)
- echo "usage: ${0##*/} {start|stop|register}" >&2
- exit 64
- ;;
+*)
+ echo "usage: ${rc_file} {start|stop|restart|status|register}" >&2
+ exit 64
+ ;;
esac
diff --git a/astro/setiathome/pkg-install b/astro/setiathome/pkg-install
index a73296cfb9ef..9efc10fb666d 100644
--- a/astro/setiathome/pkg-install
+++ b/astro/setiathome/pkg-install
@@ -1,66 +1,141 @@
#!/bin/sh
-
#
-# Set up the work area and run setiathome to login or register
+# $FreeBSD$
+#
+# Set up the work area and run SETI@home to login or register.
#
-seti_rcdir=${PKG_PREFIX}/etc/rc.d # startup directory
-seti_script=setiathome.sh # startup script
+[ $# != 2 ] && exit 1
+[ -z "${PKG_PREFIX}" ] && exit 1
+[ -n "${BATCH}" ] && exit 0
+
+PKG_NAME=$1
+PKG_ACTION=$2
+
+# override these variables in ${PREFIX}/etc/rc.setiathome.conf
seti_wrkdir=/var/db/setiathome # working directory
seti_user=nobody # user id to run under
-seti_maxprocs=`sysctl -n hw.ncpu` # max. number of processes to start
+seti_maxprocs=$(sysctl -n hw.ncpu) # max. number of processes to start
-if [ -f ${PKG_PREFIX}/etc/setiathome.conf ]; then
- . ${PKG_PREFIX}/etc/setiathome.conf
+rcconf_dir=${PKG_PREFIX}/etc
+rcconf_file=rc.setiathome.conf
+rcconf_path=${rcconf_dir}/${rcconf_file}
+
+if [ -f ${rcconf_path} ]; then
+ . ${rcconf_path}
fi
-case $2 in
- POST-INSTALL)
- if [ -n "${PACKAGE_BUILDING}" ]; then
- exit 0
- fi
+rc_dir=${PKG_PREFIX}/etc/rc.d
+rc_file=setiathome.sh
+rc_path=${rc_dir}/${rc_file}
+
+ncpu=$(sysctl -n hw.ncpu)
- echo "**** setihome requires a working directory for temporary files and"
- echo " a brief registration process."
- echo
- echo " Would you like to set up a working directory in ${seti_wrkdir},"
- if [ ${seti_maxprocs} -gt 1 ]; then
- if [ `sysctl -n hw.ncpu` -eq ${seti_maxprocs} ]; then
- echo " register with SETI@home, and let me arrange for ${seti_maxprocs} setiathome"
- echo " processes (one for each of your `sysctl -n hw.ncpu` CPUs) to be started automatically"
- echo -n " as user \`${seti_user}' [Y/n]? "
- else
- echo " register with SETI@home, and let me arrange for ${seti_maxprocs} setiathome"
- echo " processes (as configured) to be started automatically"
- echo -n " as user \`${seti_user}' [Y/n]? "
- fi
+case "$PKG_ACTION" in
+POST-INSTALL)
+
+echo "**** SETI@home requires a working directory for temporary files and a"
+echo " brief registration process."
+echo
+echo " Would you like to set up a working directory in ${seti_wrkdir},"
+ if [ ${seti_maxprocs} -gt 1 ]; then
+echo " register with SETI@home, and let me arrange for ${ncpu} setiathome"
+ if [ ${ncpu} -eq ${seti_maxprocs} ]; then
+echo " processes (one for each of your ${ncpu} CPUs) to be started"
+echo -n " automatically as user \`${seti_user}'? [Y/n] "
else
- echo " register with SETI@home, and let me arrange for setiathome to be"
- echo -n " started automatically as user \`${seti_user}' [Y/n]? "
- fi
- read a
- echo ""
- if [ "X$a" = "XN" -o "X$a" = "Xn" ]; then
- echo ""
- echo "Please set up the working directory yourself. You can use"
- echo "${seti_rcdir}/${seti_script} register"
- echo "to do so. See setiathome(1) for details."
- exit 0
+echo " processes (as configured) to be started automatically as user"
+echo -n " \`${seti_user}'? [Y/n] "
fi
+ else
+echo " register with SETI@home, and let me arrange for setiathome to be"
+echo -n " started automatically as user \`${seti_user}'? [Y/n] "
+ fi
+ read a
+echo
+ if [ "X$a" = "XN" -o "X$a" = "Xn" ]; then
+echo "**** Please set up the working directory yourself. You may use"
+echo " ${rc_path} register"
+echo " to do so. See setiathome(1) for details."
+ exit 0
+ fi
+ ${rc_path} register
+ if [ ! -f ${seti_wrkdir}/user_info.sah ]; then
+echo "unable to start setiathome: it seems registration or login failed."
+echo "See setiathome(1) for details."
+ exit 0
+ fi
+ ${rc_path} start > /dev/null
+echo
+echo "**** Congratulations! Your system now participates in the search for"
+echo " extra-terrestrial intelligence. Be sure to visit the home page"
+echo " at http://setiathome.ssl.berkeley.edu/"
+echo " See setiathome(1) for further details."
+ ;;
- ${seti_rcdir}/${seti_script} register
+DEINSTALL)
+ if [ ! -d ${seti_wrkdir} ]; then
+ exit 0
+ fi
- if [ ! -f ${seti_wrkdir}/user_info.sah ]; then
- echo "unable to start setiathome: it seems registration or login failed."
- exit 0
- fi
- ${seti_rcdir}/${seti_script} start >/dev/null
- echo
- echo "**** Congratulations! Your system now participates in the search for extra-"
- echo " terrestrial intelligence. Be sure to visit the home page at"
- echo " http://setiathome.ssl.berkeley.edu/"
- echo " See setiathome(1) for further details."
- ;;
+ ${rc_path} stop > /dev/null
+echo "**** SETI@home working directory and temporary files have to be"
+echo " removed to complete the deinstallation process. Of course,"
+echo " you may prefer to keep them for futher researchs? Would you"
+echo " like to remove it as well as all temporary files it may"
+echo -n " contains? [y/N] "
+ read a
+echo
+ if [ "X$a" != "XY" -a "X$a" != "Xy" ]; then
+echo "**** SETI@home working directory and temporary files left untouched."
+ exit 0
+ fi
+ for i in ${seti_wrkdir}/.??* ${seti_wrkdir}/*; do
+ case "${i}" in
+ "${seti_wrkdir}/.??*"|"${seti_wrkdir}/*")
+ continue
+ ;;
+ */.tkseti*|*.sah)
+ [ -f ${i} ] || continue
+ rm -f ${i}
+ ;;
+ *)
+ [ -d ${i} ] || continue
+ for j in ${seti_wrkdir}/*; do
+ case "${j}" in
+ "${seti_wrkdir}/*")
+ continue
+ ;;
+ */.tkseti*|*.sah)
+ [ -f ${j} ] || continue
+ rm -f ${j}
+ ;;
+ esac
+ done
+ rmdir ${i}
+ ;;
+ esac
+ done
+ rmdir ${seti_wrkdir}
+ if [ -d ${seti_wrkdir} ]; then
+echo "**** SETI@home working directory can't be removed since it contains"
+echo " non SETI@home files or directories. You have to remove it"
+echo " manually. You can use"
+echo " rm -rf ${seti_wrkdir}"
+echo " to do so, but think about it twince before."
+ else
+echo "**** SETI@home working directory and temporary files removed."
+ fi
+ ;;
+
+PRE-INSTALL|POST-DEINSTALL)
+ ;;
+
+*)
+echo "usage: $0 <PKG_NAME> {PRE-INSTALL|POST-INSTALL|DEINSTALL|POST-DEINSTALL}" >&2
+ exit 1
+ ;;
esac
+
exit 0
diff --git a/astro/setiathome/pkg-message b/astro/setiathome/pkg-message
new file mode 100644
index 000000000000..6c4b48d83879
--- /dev/null
+++ b/astro/setiathome/pkg-message
@@ -0,0 +1,3 @@
+**** %%PREFIX%%/etc/rc.setiathome.conf may be edited to tune some startup
+ variables such as `seti_nice' defaulted to 15 and `seti_maxprocs'
+ defaulted to your number of processors.
diff --git a/astro/setiathome/pkg-plist b/astro/setiathome/pkg-plist
index 436df1983140..6248007da443 100644
--- a/astro/setiathome/pkg-plist
+++ b/astro/setiathome/pkg-plist
@@ -1,2 +1,6 @@
-etc/rc.d/setiathome.sh
sbin/setiathome
+@unexec if cmp -s %D/etc/rc.setiathome.conf %D/etc/rc.setiathome.conf.sample; then rm -f %D/etc/rc.setiathome.conf; fi
+etc/rc.setiathome.conf.sample
+@exec [ -f %D/etc/rc.setiathome.conf ] || cp %D/etc/rc.setiathome.conf.sample %D/etc/rc.setiathome.conf
+etc/rc.d/setiathome.sh
+%%X11PORTS%%bin/xsetiathome