diff options
author | Kris Kennaway <kris@FreeBSD.org> | 2001-01-27 04:40:33 +0000 |
---|---|---|
committer | Kris Kennaway <kris@FreeBSD.org> | 2001-01-27 04:40:33 +0000 |
commit | 4a208e0f030c7cdeed8b5be9c2558347f21b5d15 (patch) | |
tree | 911e9ced0a5363652c5229d18b901e177c14b963 /astro/setiathome | |
parent | Add xw 0.0.8, an X app to list current users logged into the system. (diff) |
Update to setiathome 3.03 and replace inactive maintainer.
Submitted by: Cyrille Lefevre <clefevre@citeweb.net>
PR: 24520
Notes
Notes:
svn path=/head/; revision=37618
Diffstat (limited to 'astro/setiathome')
-rw-r--r-- | astro/setiathome/Makefile | 147 | ||||
-rw-r--r-- | astro/setiathome/distinfo | 3 | ||||
-rw-r--r-- | astro/setiathome/files/setiathome.1 | 170 | ||||
-rw-r--r-- | astro/setiathome/files/setiathome.sh | 35 | ||||
-rw-r--r-- | astro/setiathome/files/xsetiathome.1 | 8 | ||||
-rw-r--r-- | astro/setiathome/pkg-install | 17 | ||||
-rw-r--r-- | astro/setiathome/pkg-plist | 1 |
7 files changed, 251 insertions, 130 deletions
diff --git a/astro/setiathome/Makefile b/astro/setiathome/Makefile index 0ef4ff6cf14f..9bec58d3fe2c 100644 --- a/astro/setiathome/Makefile +++ b/astro/setiathome/Makefile @@ -5,64 +5,129 @@ # $FreeBSD$ PORTNAME= setiathome -PORTVERSION= 2.4 +PORTVERSION= 3.03 CATEGORIES= astro -MASTER_SITES= ftp://ftp.cdrom.com/pub/setiathome/ \ +MASTER_SITES= ftp://ftp.cdrom.com/pub/setiathome/ \ ftp://alien.ssl.berkeley.edu/pub/ \ ftp://setidata.ssl.berkeley.edu/pub/ \ ftp://serendip.ssl.berkeley.edu/pub/ +DISTNAME= ${PORTNAME}-${PORTVERSION}.${PORT_HOST} +EXTRACT_SUFX= .tar -MAINTAINER= stb@freebsd.org +MAINTAINER= clefevre@citeweb.net + +.include <bsd.port.pre.mk> + +# +# Global variables +# + +.if !defined(PACKAGE_BUILDING) || empty(PACKAGE_BUILDING) +IS_INTERACTIVE= yes +.endif ONLY_FOR_ARCHS= i386 -EXTRACT_CMD= tar -EXTRACT_BEFORE_ARGS= -xf -EXTRACT_AFTER_ARGS= +NO_BUILD= "binary distribution" +NO_CDROM= "interactive install" -MAN1= setiathome.1 xsetiathome.1 +.if ${OSVERSION} <= 226000 +BROKEN= "currently supports only FreeBSD 2.2.6 and above" +.endif -.include <bsd.port.pre.mk> +EXTRACT_CMD= cat +EXTRACT_BEFORE_ARGS= +STRIP= # aout is already stripped +SCRIPTS_ENV+= PKG_PREFIX=${PREFIX} +SCRIPTS_ENV+= PACKAGE_BUILDING=${PACKAGE_BUILDING} + +MAN1= ${PORTNAME}.1 + +# +# Local variables +# -.if ${OSVERSION} >= 310000 -DISTFILES= setiathome-2.4.i386-unknown-freebsd3.3.tar -WRKSRC= setiathome-2.4.i386-unknown-freebsd3.3 -.elif ${OSVERSION} >= 226000 -DISTFILES= setiathome-2.4.i386-unknown-freebsd2.2.8.tar -WRKSRC= setiathome-2.4.i386-unknown-freebsd2.2.8 -.else -DISTFILES= +PORT_CPU= ${ARCH} +PORT_VENDOR= unknown +PORT_OSNAME= freebsd +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 + +# xsetiathome is currently broken at 4.2. should work at 2.x, +# don't know between 3.0 and 4.2 ? so, be conservative... +# diagnostic messages are : +# Warning: Cannot convert string "doneB" to type Widget +# Floating point exception (core dumped) + +.if ${OSVERSION} < 300000 +XBINSUBDIR= bin +XPROG+= x${PORTNAME} +MAN1+= x${PORTNAME}.1 .endif -.if make(makesum) || defined(FETCH_ALL) -DISTFILES= setiathome-2.4.i386-unknown-freebsd2.2.8.tar \ - setiathome-2.4.i386-unknown-freebsd3.3.tar +# +# Post-extract +# + +post-extract: + @${CP} ${FILESDIR}/${SCRIPT} ${WRKSRC} + +# +# Post-configure +# + +post-configure: + @${PERL} -pi.fbsd -e 's.!!BINDIR!!.${SBINSUBDIR}.g' ${WRKSRC}/${SCRIPT} + +# +# Install +# + +do-install: install-daemon install-program install-script install-man + +install-daemon: + @${INSTALL_PROGRAM} ${WRKSRC}/${PROG} ${PREFIX}/${SBINSUBDIR} + +install-program: +.if defined(XPROG) + @${INSTALL_PROGRAM} ${WRKSRC}/${prog} ${PREFIX}/${XBINSUBDIR} .endif -NO_BUILD= "binary distribution" -NO_CDROM= "interactive install" +install-script: + @${INSTALL_SCRIPT} ${WRKSRC}/${SCRIPT} ${PREFIX}/${RCDSUBDIR} -.if !defined(PACKAGE_BUILDING) -IS_INTERACTIVE= yes +install-man: +.for mansect in 1 +.for man in ${MAN${mansect}} + @${INSTALL_MAN} ${FILESDIR}/${man} \ + ${MAN${mansect}PREFIX}/${MANSUBDIR}/man${mansect} +.endfor +.endfor + +# +# Post-install +# + +post-install: update-plist configure-package + +update-plist: + @${GREP} -q ${SBINSUBDIR}/${PROG} ${TMPPLIST} || \ + ${ECHO} ${SBINSUBDIR}/${PROG} >> ${TMPPLIST} +.if defined(XPROG) + @${GREP} -q ${XBINSUBDIR}/${XPROG} ${TMPPLIST} || \ + ${ECHO} ${XBINSUBDIR}/${XPROG} >> ${TMPPLIST} .endif -pre-fetch: - @if [ -z "${DISTFILES}" ]; then \ - ${ECHO} "It seems you are running FreeBSD `uname -r`, which is not currently"; \ - ${ECHO} "supported. SETI@home currently supports only FreeBSD 2.2.6 and above,"; \ - ${ECHO} "FreeBSD 3.1. and above, and FreeBSD 4.0."; \ - ${ECHO} \ - exit 72; \ - fi; - -do-install: - ${INSTALL_PROGRAM} ${WRKDIR}/${WRKSRC}/setiathome ${PREFIX}/bin - ${INSTALL_SCRIPT} ${FILESDIR}/setiathome.sh ${PREFIX}/etc/rc.d - ${INSTALL_MAN} ${FILESDIR}/setiathome.1 ${MAN1PREFIX}/man/man1 - ${INSTALL_MAN} ${FILESDIR}/xsetiathome.1 ${MAN1PREFIX}/man/man1 - -post-install: - @PKG_PREFIX=${PREFIX} PACKAGE_BUILDING=${PACKAGE_BUILDING} \ - ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL +configure-package: +.if defined(IS_INTERACTIVE) + @${SETENV} ${SCRIPTS_ENV} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL +.endif .include <bsd.port.post.mk> diff --git a/astro/setiathome/distinfo b/astro/setiathome/distinfo index 88629dd28ce0..abbf450f439e 100644 --- a/astro/setiathome/distinfo +++ b/astro/setiathome/distinfo @@ -1,2 +1 @@ -MD5 (setiathome-2.4.i386-unknown-freebsd2.2.8.tar) = 2fe0d24be297a913998c3fc110d97ee4 -MD5 (setiathome-2.4.i386-unknown-freebsd3.3.tar) = 0d9bb4cc621388a008bf81b6dcd43068 +MD5 (setiathome-3.03.i386-unknown-freebsd2.2.8.tar) = 2dd4c9016059b7532ae721c7b92be821 diff --git a/astro/setiathome/files/setiathome.1 b/astro/setiathome/files/setiathome.1 index b718c0d86601..4ac329052633 100644 --- a/astro/setiathome/files/setiathome.1 +++ b/astro/setiathome/files/setiathome.1 @@ -1,5 +1,5 @@ .\" $FreeBSD$ -.Dd May 19, 1999 +.Dd Dec 12, 2000 .Dt setiathome 1 LOCAL .Os FreeBSD .Sh NAME @@ -37,14 +37,14 @@ and direct its output to if you like. .Pp .Nm -can be freely aborted and restarted. +can be freely stopped and restarted. It saves its state in files, and will pick up where it left off. .Pp If you want to run multiple instances of .Nm (on a multiprocessor machine, or on multiple machines that share a filesystem) each one must be run in a different directory. -.Pp +.Sh IMPLEMENTATION NOTES .Nm requires about 0.5\ MBytes of disk space per working directory, and about 15\ MBytes of memory per instance. @@ -56,6 +56,63 @@ requires a permanent or Internet connection to upload results to and download new work units from the .Tn SETI@home server at any time. +.Sh OPTIONS +.Bl -tag -width countries +.It Fl countries +Show list of country codes. +.It Fl email +Send E-mail (to login E-mail address) on errors. +Useful if you run in background directed to +.Pa /dev/null . +.It Fl graphics +Generate a data stream for the +.Xr xsetiathome 1 +graphical interface. +.It Fl login +Login or create new account. +.It Fl nice Ar N +Set +.Xr nice 1 +priority to +.Ar N +(default 1). +.It Fl nolock +Omit the multiple-instance check, which uses file locking +(not available on some NFS systems). +.It Fl proxy Ar hostname : Ns Ar port +Connect to +.Tn SETI@home +server via specified HTTP proxy server and port. +.It Fl socks_passwd Ar password +SOCKS +.Ar password . +.It Fl socks_server Ar hostname : Ns Ar port +Connect to +.Tn SETI@home +server via specified SOCKS server and port. +Overrides +.Ev SOCKS_SERVER . +SOCKS versions 4 and 5 are supported. +.It Fl socks_user Ar name +SOCKS user +.Ar name . +.It Fl stop_after_process +Stop after processing current work unit. +Do not send result. +.It Fl stop_after_xfer +Stop after current work unit has been sent to the SETI +server and a new work unit has been obtained. +(See also +.Pa stop_after_send.txt +mentioned in +.Sx FILES +below.) +.It Fl verbose +Print a running summary of the work being done. +.It Fl version +Show software version. +.El +.Sh USAGE .Ss Starting setiathome This .Fx @@ -95,9 +152,11 @@ If you change values in the configuration file, you need to stop and start .Nm Ns , 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 +.Pp to do that. .Ss Setting up setiathome You can use the start-up script to set up a working directory @@ -126,62 +185,6 @@ to .Ed .Pp to the user's crontab. -.Sh OPTIONS -.Bl -tag -width countries -.It Fl countries -Show list of country codes. -.It Fl email -Send E-mail (to login E-mail address) on errors. -Useful if you run in background directed to -.Pa /dev/null . -.It Fl graphics -Generate a data stream for the -.Xr xsetiathome 1 -graphical interface. -.It Fl login -Login or create new account. -.It Fl nice Ar N -Set -.Xr nice 1 -priority to -.Ar N -(default 1). -.It Fl nolock -Omit the multiple-instance check, which uses file locking -(not available on some NFS systems). -.It Fl proxy Ar hostname : Ns Ar port -Connect to -.Tn SETI@home -server via specified HTTP proxy server and port. -.It Fl socks_passwd Ar password -SOCKS -.Ar password . -.It Fl socks_server Ar hostname : Ns Ar port -Connect to -.Tn SETI@home -server via specified SOCKS server and port. -Overrides -.Ev SOCKS_SERVER . -SOCKS versions 4 and 5 are supported. -.It Fl socks_user Ar name -SOCKS user -.Ar name . -.It Fl stop_after_process -Stop after processing current work unit. -Do not send result. -.It Fl stop_after_xfer -Stop after current work unit has been sent to the SETI -server and a new work unit has been obtained. -(See also -.Pa stop_after_send.sah -mentioned in -.Sx FILES -below.) -.It Fl verbose -Print a running summary of the work being done. -.It Fl version -Show software version. -.El .Sh ENVIRONMENT .Bl -tag -width SOCKS_SERVER .It Ev HTTP_PROXY @@ -207,45 +210,60 @@ will query you. .El .Sh FILES .Bl -tag -width /var/db -compact -.It Pa /usr/local/etc/setiathome.conf -Optional configuration file for the start-up script. .It Pa /usr/local/etc/rc.d/setiathome.sh Start-up script. +.Pp +.It Pa /usr/local/etc/setiathome.conf +Optional configuration file for the start-up script. +.Pp .It Pa /var/db/setiathome/ Primary working directory. +.Pp .It Pa /var/db/setiathome/user_info.sah Registration data. +.Pp .It Pa /var/db/setiathome/ Ns Va n Ns Pa / Working directories for additional process .Va n (when running more than one instance). +.Pp .It Pa /var/db/setiathome/ Ns Xo .Op Ns Va n Ns Pa / Ns .Pa lock.sah .Xc Lock file to prevent multiple instances to work on the same data. +.Pp .It Pa /var/db/setiathome/ Ns Xo .Op Ns Va n Ns Pa / Ns .Pa *.sah .Xc Working files. These should not be modified. +.Pp .It Pa /var/db/setiathome/ Ns Xo .Op Ns Va n Ns Pa / Ns .Pa pid.sah .Xc The process ID of the current instance. +.Pp .It Pa /var/db/setiathome/ Ns Xo .Op Ns Va n Ns Pa / Ns -.Pa stop_after_send.sah +.Pa stop_after_send.txt .Xc While the client is running, touch this file in the working directory to finish up your current work unit, return your result, and not download a new work unit. When the processing is finished, and the result sent, the client will stop. +Note this one file extension is +.Pa .txt , +while all other files used by +the client have extensions +.Pa .sah . .El .Sh SEE ALSO -.Xr xsetiathome 1 +.Xr xsetiathome 1 , +.Xr ipcs 1 , +.Xr ipcrm 1 . .Sh AUTHORS .Tn SETI@home was developed by David Anderson, Jeff Cobb, Charles Congdon, Charlie Fenton, @@ -256,3 +274,29 @@ Silen, Woody Sullivan, and Dan Werthimer. amended the original manual page for this .Fx port. +.Sh BUGS +Outstanding shared memory segments and semaphores may be left +active in case of an abnormal exit of the +.Ic setiathome -graphics +process. These can prevent any future invocation of +.Ic setiathome -graphics . +To resolve this problem, use +.Xr ipcs 1 +and +.Xr ipcrm 1 +to remove shared memory segments and semaphores that +are not associated with a process. This behavior may vary +depending upon how your +.Ux +system handles this situation. +.Pp +For version 3.* clients, the estimated progress as indicated +by the +.Pa prog= +line in the +.Pa state.sah +file in not exactly linear +in relationship to completion time. Using this value to +predict completion time may not be completely accurate. +The linear relationship will vary depending upon the characteristics +of the work unit parameters. diff --git a/astro/setiathome/files/setiathome.sh b/astro/setiathome/files/setiathome.sh index 9d65ed660257..65b8ec941cf9 100644 --- a/astro/setiathome/files/setiathome.sh +++ b/astro/setiathome/files/setiathome.sh @@ -6,13 +6,18 @@ # override these variables in ${PREFIX}/etc/setiathome.conf seti_wrkdir=/var/db/setiathome # primary working directory -seti_user=nobody # user id to run as -seti_nice=1 # nice level to run at +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_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 -PREFIX=/`expr $0 : '/\(.*\)/etc/rc.d/setiathome.sh'` -if [ "x${PREFIX}" = "x/" ]; then - printf "\n`basename $0`: Cannot determine PREFIX.\nPlease use the complete pathname." >&2 +if ! PREFIX=$(expr $0 : "\(/.*\)/etc/rc\.d/${0##*/}\$"); then + echo "${0##*/}: Cannot determine PREFIX." >&2 + echo "Please use the complete pathname." >&2 exit 64 fi @@ -31,25 +36,28 @@ case $1 in start) for i in ${seti_wrksuff}; do if [ ! -d ${seti_wrkdir}/${i} ]; then - logger -sp daemon.err -t setiathome \ + 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 daemon.err -t setiathome \ + 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 -m ${seti_user} -c \ - "(cd ${seti_wrkdir}/${i} && exec ${PREFIX}/bin/setiathome -email -nice ${seti_nice} >/dev/null &)" + su -m ${seti_user} -c "\ + (cd ${seti_wrkdir}/${i} && \ + exec ${PREFIX}/${seti_bindir}/${seti_command} \ + ${seti_std_args} \ + ${seti_nice+-nice} ${seti_nice} >/dev/null &)" echo -n " SETI@home" done ;; stop) - killall setiathome + killall ${seti_command} ;; register) @@ -67,7 +75,10 @@ case $1 in fi # No need to register if we've already done so if [ "X${seti_dontlogin}" != "Xyes" ]; then - su -m ${seti_user} -c "cd ${seti_wrkdir} && ${PREFIX}/bin/setiathome -login" + su -m ${seti_user} -c "\ + cd ${seti_wrkdir} && \ + exec ${PREFIX}/${seti_bindir}/${seti_command} \ + ${seti_reg_args}" fi if [ ${seti_maxprocs} -gt 1 ]; then @@ -86,7 +97,7 @@ case $1 in ;; *) - echo "usage: `basename $0` {start|stop|register}" >&2 + echo "usage: ${0##*/} {start|stop|register}" >&2 exit 64 ;; esac diff --git a/astro/setiathome/files/xsetiathome.1 b/astro/setiathome/files/xsetiathome.1 index 2e4849407b57..0b0f224452d4 100644 --- a/astro/setiathome/files/xsetiathome.1 +++ b/astro/setiathome/files/xsetiathome.1 @@ -1,5 +1,6 @@ .\" $FreeBSD$ -.Dd Feb 13, 2000 +.\" +.Dd Dec 12, 2000 .Dt xsetiathome 1 LOCAL .Os FreeBSD .Sh NAME @@ -38,7 +39,10 @@ Take over the entire display. When running in this mode, any mouse presses will exit the application. .El .Sh SEE ALSO -.Xr setiathome 1 +.Xr setiathome 1 , +.Xr xautolock 1 , +.Xr ipcs 1 , +.Xr ipcrm 1 . .Sh BUGS Please note, this .Nm diff --git a/astro/setiathome/pkg-install b/astro/setiathome/pkg-install index 57750ccf755b..e1476f1a64c9 100644 --- a/astro/setiathome/pkg-install +++ b/astro/setiathome/pkg-install @@ -4,11 +4,10 @@ # Set up the work area and run setiathome to login or register # -DBDIR=/var/db/setiathome -RCD=${PKG_PREFIX}/etc/rc.d/setiathome.sh +seti_rcdir=${PKG_PREFIX}/etc/rc.d # startup directory +seti_script=setiathome.sh # startup script seti_wrkdir=/var/db/setiathome # working directory -seti_user=nobody # user id to run under -seti_nice=1 # nice level to run at +seti_user=nobody # user id to run under seti_maxprocs=`sysctl -n hw.ncpu` # max. number of processes to start if [ -f ${PKG_PREFIX}/etc/setiathome.conf ]; then @@ -24,7 +23,7 @@ case $2 in 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 ${DBDIR}," + 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" @@ -44,18 +43,18 @@ case $2 in if [ "X$a" = "XN" -o "X$a" = "Xn" ]; then echo "" echo "Please set up the working directory yourself. You can use" - echo "${RCD} register" + echo "${seti_rcdir}/${seti_script} register" echo "to do so. See setiathome(1) for details." exit 0 fi - ${RCD} register + ${seti_rcdir}/${seti_script} register - if [ ! -f ${DBDIR}/user_info.sah ]; then + if [ ! -f ${seti_wrkdir}/user_info.sah ]; then echo "unable to start setiathome: it seems registration or login failed." exit 0 fi - ${RCD} start >/dev/null + ${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" diff --git a/astro/setiathome/pkg-plist b/astro/setiathome/pkg-plist index f76e3829f73a..25566c85725e 100644 --- a/astro/setiathome/pkg-plist +++ b/astro/setiathome/pkg-plist @@ -1,2 +1 @@ -bin/setiathome etc/rc.d/setiathome.sh |