Date: Sun, 4 May 2003 22:05:29 +0200 From: Cyrille Lefevre <cyrille.lefevre@laposte.net> To: FreeBSD-gnats-submit@FreeBSD.org Cc: Frank Shute <frank@esperance-linux.co.uk> Subject: ports/51759: Maintainer update: astro/setiathome (manual page fix, etc.) Message-ID: <20030504200527.GA13792@gits.dyndns.org> Resent-Message-ID: <200305042010.h44KAGQk040205@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 51759 >Category: ports >Synopsis: Maintainer update: astro/setiathome (manual page fix, etc.) >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: maintainer-update >Submitter-Id: current-users >Arrival-Date: Sun May 04 13:10:16 PDT 2003 >Closed-Date: >Last-Modified: >Originator: Cyrille Lefevre >Release: FreeBSD 5.0-RELEASE-p4 i386 >Organization: ACME >Environment: System: FreeBSD gits 5.0-RELEASE-p4 FreeBSD 5.0-RELEASE-p4 #8: Thu Apr 24 19:09:07 CEST 2003 root@gits:/disk3/freebsd/current/obj/disk3/freebsd/current/src/sys/CUSTOM i386 >Description: The setiathome manual page refer to setiathome.conf while it is now named rc.setiathome.conf. also, the manual page has been completed (variables, start/stop scripts, etc.) Makefile PORTREVISION bumped pkg-install registration heuristic changed (don't register if already registered, then automatically start setiathome in either case) files/rc.setiathome.conf seti_proxy_args changed to seti_proxy_server seti_socks_server, seti_socks_user, seti_socks_passwd added seti_sleep changed to seti_sleep_time files/setiathome.1 /usr/local changed to %%PREFIX%% above and below changes described files/setiathome.sh same changes as files/rc.setiathome.conf su heuristic changed back from sh here-doc to sh -c due to unnecessary su process (not seen before) gracefull (aka apachectl :) option added using stop_after_send.txt >How-To-Repeat: man setiathome >Fix: Index: Makefile =================================================================== RCS file: /home/ncvs/ports/astro/setiathome/Makefile,v retrieving revision 1.38 diff -u -I$Id.*$ -I$.+BSD.*$ -r1.38 Makefile --- Makefile 12 Apr 2003 17:07:42 -0000 1.38 +++ Makefile 29 Apr 2003 01:05:10 -0000 @@ -6,7 +6,7 @@ PORTNAME= setiathome PORTVERSION?= 3.03 -PORTREVISION?= 7 +PORTREVISION?= 8 CATEGORIES?= astro MASTER_SITES= ftp://ftp.cdrom.com/pub/setiathome/ \ ftp://alien.ssl.berkeley.edu/pub/ @@ -17,7 +17,7 @@ COMMENT?= Donate idle cycles to the search for space aliens .if ${PORTVERSION} == "3.03" -FORBIDDEN= 'Exploitable buffer overflow. http://spoor12.edup.tudelft.nl/' +#FORBIDDEN= 'Exploitable buffer overflow. http://spoor12.edup.tudelft.nl/' .endif .include <bsd.port.pre.mk> @@ -125,7 +125,7 @@ # Post-patch # -post-patch: patch-pkgmessage +post-patch: patch-pkgmessage patch-man patch-pkgmessage: @${SED} 's|%%PREFIX%%|${PREFIX}|g; \ @@ -133,6 +133,16 @@ s|%%SUFX%%|${PKGNAMESUFFIX}|g' \ ${MSG_FILE} > ${PKGMESSAGE} +patch-man: +.for mansect in 1 +.for man in ${MAN${mansect}} + @${SED} 's|%%PREFIX%%|${PREFIX}|g; \ + s|%%PREFX%%|${PKGNAMEPREFIX}|g; \ + s|%%SUFX%%|${PKGNAMESUFFIX}|g' \ + ${FILESDIR}/${man} > ${WRKDIR}/${man} +.endfor +.endfor + # Install # @@ -151,7 +161,7 @@ install-man: .for mansect in 1 .for man in ${MAN${mansect}} - @${INSTALL_MAN} ${FILESDIR}/${man} \ + @${INSTALL_MAN} ${WRKDIR}/${man} \ ${MAN${mansect}PREFIX}/man/man${mansect} .endfor .endfor Index: pkg-install =================================================================== RCS file: /home/ncvs/ports/astro/setiathome/pkg-install,v retrieving revision 1.10 diff -u -I$Id.*$ -I$.+BSD.*$ -r1.10 pkg-install --- pkg-install 9 Apr 2003 05:02:42 -0000 1.10 +++ pkg-install 29 Apr 2003 02:39:56 -0000 @@ -33,37 +33,54 @@ case "${PKG_ACTION}" in POST-INSTALL) - + if [ -f ${seti_wrkdir}/user_info.sah ]; then +echo "**** SETI@home already has a working directory for temporary files and" +echo " you seem to be already registered with SETI@home." +echo +echo -n " Would you like repeat the registration with SETI@home? [y/N] " + read ans +echo + if [ "X${ans}" = "XY" -o "X${ans}" = "Xy" ]; then + register=yes + else + register=no + fi + else 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 + if [ ${seti_maxprocs} -gt 1 ]; then echo " register with SETI@home, and let me arrange for ${ncpu} setiathome" - if [ ${ncpu} -eq ${seti_maxprocs} ]; then + 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 + else echo " processes (as configured) to be started automatically as user" echo -n " \`${seti_user}'? [Y/n] " - fi - else + 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 + fi + read ans echo - if [ "X$a" = "XN" -o "X$a" = "Xn" ]; then + if [ "X${ans}" = "XN" -o "X${ans}" = "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 + exit 0 + else + register=yes + fi fi - ${rc_path} register - if [ ! -f ${seti_wrkdir}/user_info.sah ]; then + if [ "${register}" = "yes" ]; then + ${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 + exit 0 + fi fi ${rc_path} start > /dev/null echo Index: files/rc.setiathome.conf =================================================================== RCS file: /home/ncvs/ports/astro/setiathome/files/rc.setiathome.conf,v retrieving revision 1.5 diff -u -I$Id.*$ -I$.+BSD.*$ -r1.5 rc.setiathome.conf --- files/rc.setiathome.conf 9 Apr 2003 05:02:42 -0000 1.5 +++ files/rc.setiathome.conf 29 Apr 2003 00:21:50 -0000 @@ -4,11 +4,14 @@ # # seti_wrkdir=/var/db/${rc_file%.sh} # 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=setiathome # user id to run as -# seti_group=${seti_user} # group id to run as +# seti_std_args=-email # command line arguments for startup +# seti_reg_args=-login # command line arguments to register +# seti_proxy_server= # HTTP proxy server (hostname:port) +# seti_socks_server= # SOCKS proxy server (hostname:port) +# seti_socks_user= # SOCKS proxy user name +# seti_socks_passwd= # SOCKS proxy password +# seti_user=setiathome # user name to run as +# seti_group=${seti_user} # group name to run as # seti_nice=15 # nice level to run at # seti_maxprocs=$(sysctl -n hw.ncpu) # max. number of processes to start -# seti_sleep=21600 # time to sleep between restarts +# seti_sleep_time=21600 # time to sleep between restarts Index: files/setiathome.1 =================================================================== RCS file: /home/ncvs/ports/astro/setiathome/files/setiathome.1,v retrieving revision 1.10 diff -u -I$Id.*$ -I$.+BSD.*$ -r1.10 setiathome.1 --- files/setiathome.1 27 Jan 2001 04:40:33 -0000 1.10 +++ files/setiathome.1 29 Apr 2003 01:03:11 -0000 @@ -118,22 +118,51 @@ .Fx port includes a start-up script that starts .Nm -at system start-up. +at system start-up and stop it at system shut-down. +.Ss Stopping setiathome +There is two way to stop +.Nm , +gracefully (See +.Pa stop_after_send.txt +mentioned in +.Sx FILES +below) and urgently (using kill as done at system shut-down time). +To do so, respectively run +.Pp +.Dl %%PREFIX%%/etc/rc.d/%%PREFX%%setiathome%%SUFX%%.sh gracefull +or +.Dl %%PREFIX%%/etc/rc.d/%%PREFX%%setiathome%%SUFX%%.sh stop .Ss Configuration File The optional configuration file -.Pa /usr/local/etc/setiathome.conf -can contain one or more of the following variable assignments to override +.Pa %%PREFIX%%/etc/rc.%%PREFX%%setiathome%%SUFX%%.conf +may contain one or more of the following variable assignments to override their default values: .Bl -tag -width seti_wrkdir .It Pa seti_wrkdir=/var/db/setiathome The working directory where .Nm will store it's temporary files. -.It Pa seti_user=nobody +.It Pa seti_std_args=-email and/or -graphics +The command line arguments for normal start-up. +.It Pa seti_reg_args=-login +The command line arguments for registration. +.It Pa seti_proxy_server=hostname:port +The HTTP proxy server and port to connect through. +.It Pa seti_socks_server=hostname:port +The SOCKS server and port to connect through. +.It Pa seti_socks_user=username +The SOCKS user name to connect with. +.It Pa seti_socks_passwd=password +The SOCKS password to connect with. +.It Pa seti_user=setiathome The user to run .Nm as. -.It Pa seti_nice=1 +.It Pa seti_group=setiathome +The group to run +.Nm +as (only used at registration time). +.It Pa seti_nice=15 The .Xr nice 1 value to run @@ -146,6 +175,10 @@ Running more than one instance per CPU is not useful, as .Nm is almost completely CPU-bound. +.It Pa seti_sleep_time=21600 +The time to sleep (in seconds) between restarts if the +.Nm +data server is unresponsive. .El .Pp If you change values in the configuration file, you need to stop and start @@ -153,9 +186,9 @@ and possibly reconfigure the working directory for the changes to take effect. Run .Pp -.Dl /usr/local/etc/rc.d/setiathome.sh stop -.Dl /usr/local/etc/rc.d/setiathome.sh register -.Dl /usr/local/etc/rc.d/setiathome.sh start +.Dl %%PREFIX%%/etc/rc.d/%%PREFX%%setiathome%%SUFX%%.sh stop +.Dl %%PREFIX%%/etc/rc.d/%%PREFX%%setiathome%%SUFX%%.sh register +.Dl %%PREFIX%%/etc/rc.d/%%PREFX%%setiathome%%SUFX%%.sh start .Pp to do that. .Ss Setting up setiathome @@ -210,10 +243,10 @@ .El .Sh FILES .Bl -tag -width /var/db -compact -.It Pa /usr/local/etc/rc.d/setiathome.sh +.It Pa %%PREFIX%%/etc/rc.d/%%PREFX%%setiathome%%SUFX%%.sh Start-up script. .Pp -.It Pa /usr/local/etc/setiathome.conf +.It Pa %%PREFIX%%/etc/rc.%%PREFX%%setiathome%%SUFX%%.conf Optional configuration file for the start-up script. .Pp .It Pa /var/db/setiathome/ Index: files/setiathome.sh =================================================================== RCS file: /home/ncvs/ports/astro/setiathome/files/setiathome.sh,v retrieving revision 1.11 diff -u -I$Id.*$ -I$.+BSD.*$ -r1.11 setiathome.sh --- files/setiathome.sh 12 Apr 2003 17:07:42 -0000 1.11 +++ files/setiathome.sh 29 Apr 2003 01:39:11 -0000 @@ -15,14 +15,17 @@ # override these variables in ${PREFIX}/etc/rc.setiathome.conf seti_wrkdir=/var/db/${rc_file%.sh} # 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=setiathome # user id to run as -seti_group=${seti_user} # group id to run as +seti_std_args=-email # command line arguments for startup +seti_reg_args=-login # command line arguments to register +seti_proxy_server= # HTTP proxy server (hostname:port) +seti_socks_server= # SOCKS proxy server (hostname:port) +seti_socks_user= # SOCKS proxy user name +seti_socks_passwd= # SOCKS proxy password +seti_user=setiathome # user name to run as +seti_group=${seti_user} # group name to run as seti_nice=15 # nice level to run at seti_maxprocs=$(sysctl -n hw.ncpu) # max. number of processes to start -seti_sleep=21600 # time to sleep between restarts +seti_sleep_time=21600 # time to sleep between restarts if ! PREFIX=$(expr ${rc_path} : "\(/.*\)/etc/rc\.d/${rc_file}\$"); then echo "${rc_file}: Cannot determine PREFIX." >&2 @@ -74,19 +77,27 @@ fi done for i in ${seti_wrksuff}; do - su -fm ${seti_user} -c "exec /bin/sh -T" << EOF > /dev/null & - cd ${seti_wrkdir}/${i} || exit - echo \$\$ > shpid.sah - trap 'kill \$pid;exit' 15 - while :; do + su -fm ${seti_user} -c "exec /bin/sh -cT \" + cd ${seti_wrkdir}/${i} || exit; \ + trap 'kill \\\$pid;exit' 15; \ + while :; do \ + echo \\\$\\\$ > shpid.sah; \ ${program_path} \ - ${seti_std_args} ${seti_proxy_args} \ - ${seti_nice:+-nice} ${seti_nice} & - pid=\$!; wait \$pid - sleep ${seti_sleep} & - pid=\$!; wait \$pid - done -EOF + ${seti_std_args} \ + ${seti_proxy_server:+-proxy} \ + ${seti_proxy_server} \ + ${seti_socks_server:+-socks_server} \ + ${seti_socks_server} \ + ${seti_socks_user:+-socks_user} \ + ${seti_socks_user} \ + ${seti_socks_passwd:+-socks_passwd} \ + ${seti_socks_passwd} \ + ${seti_nice:+-nice} ${seti_nice} & \ + pid=\\\$!; wait \\\$pid; \ + [ -f stop_after_send.txt ] && break; \ + sleep ${seti_sleep_time} & \ + pid=\\\$!; wait \\\$pid; \ + done\" > /dev/null &" done echo -n " SETI@home" ;; @@ -105,6 +116,16 @@ fi ;; +gracefull) + for i in ${seti_wrksuff}; do + pid_path=${seti_wrkdir}/${i}/pid.sah + stop_path=${seti_wrkdir}/${i}/stop_after_send.txt + if [ -f ${pid_path} ]; then + touch ${stop_path} + fi + done + ;; + restart) $0 stop $0 start @@ -187,7 +208,7 @@ ;; *) - echo "usage: ${rc_file} {start|stop|restart|status|register}" >&2 + echo "usage: ${rc_file} {start|stop|gracefull|restart|status|register}" >&2 exit 64 ;; esac >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030504200527.GA13792>