Date: Mon, 22 Jan 2001 04:34:19 +0100 (CET) From: Cyrille Lefevre <clefevre@citeweb.net> To: FreeBSD-gnats-submit@freebsd.org Cc: stb@freebsd.org Subject: ports/24520: Update port: astro/setiathome - 3.03 Message-ID: <200101220334.f0M3YJE79103@gits.dyndns.org>
next in thread | raw e-mail | index | archive | help
>Number: 24520 >Category: ports >Synopsis: Update port: astro/setiathome - 3.03 >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Sun Jan 21 19:40:01 PST 2001 >Closed-Date: >Last-Modified: >Originator: Cyrille Lefevre >Release: FreeBSD 4.2-STABLE i386 >Organization: ACME >Environment: FreeBSD gits 4.2-STABLE FreeBSD 4.2-STABLE #5: Thu Jan 18 00:14:29 CET 2001 root@gits:/disk2/4.x-stable/src/sys/compile/CUSTOM i386 >Description: Makefile mostly rewritten. version bumped. maintainer updated. Stefan (stb), do you always maintain this port ? If no, I'll get the maintainship. deal ? :) DISTFILE -> DISTNAME. pre-fetch -> BROKEN if OSVERSION <= 226000. install setiathome accordingly to SBINSUBDIR (sbin by default -- was bin). TMPPLIST is also updated. don't install xsetiathome if OSVERSION >= 300000. etc. distinfo updated pkg-install mostly variable changes accordingly to setiathome.sh. pkg-plist updated almost empty since it is filled at installation time. files/setiathome.1 updated. sections reordered. IMPLEMENTATION NOTES section title added. USAGE section title added and moved below OPTIONS section. SEE ALSO section updated. BUGS section added. files/setiathome.sh mostly the same. variables added. files/xsetiathome.1 updated. SEE ALSO section updated. >How-To-Repeat: n/a >Fix: Index: Makefile =================================================================== RCS file: /home/ncvs/ports/astro/setiathome/Makefile,v retrieving revision 1.22 diff -u -r1.22 Makefile --- Makefile 2000/10/08 10:19:12 1.22 +++ Makefile 2001/01/22 03:17:36 @@ -5,64 +5,129 @@ # $FreeBSD: ports/astro/setiathome/Makefile,v 1.22 2000/10/08 10:19:12 asami Exp $ PORTNAME= setiathome -PORTVERSION= 2.4 +PORTVERSION= 3.03 CATEGORIES= astro 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 -ONLY_FOR_ARCHS= i386 +.include <bsd.port.pre.mk> -EXTRACT_CMD= tar -EXTRACT_BEFORE_ARGS= -xf -EXTRACT_AFTER_ARGS= +# +# Global variables +# -MAN1= setiathome.1 xsetiathome.1 +.if !defined(PACKAGE_BUILDING) || empty(PACKAGE_BUILDING) +IS_INTERACTIVE= yes +.endif -.include <bsd.port.pre.mk> +ONLY_FOR_ARCHS= i386 -.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= +NO_BUILD= "binary distribution" +NO_CDROM= "interactive install" + +.if ${OSVERSION} <= 226000 +BROKEN= "currently supports only FreeBSD 2.2.6 and above" .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 +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 +# + +PORT_CPU= ${ARCH} +PORT_VENDOR= unknown +PORT_OSNAME= ${OSNAME:L} +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 -NO_BUILD= "binary distribution" -NO_CDROM= "interactive install" +# +# Post-extract +# -.if !defined(PACKAGE_BUILDING) -IS_INTERACTIVE= yes +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 + +install-script: + @${INSTALL_SCRIPT} ${WRKSRC}/${SCRIPT} ${PREFIX}/${RCDSUBDIR} -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 +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 + +configure-package: +.if defined(IS_INTERACTIVE) + @${SETENV} ${SCRIPTS_ENV} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL +.endif .include <bsd.port.post.mk> Index: distinfo =================================================================== RCS file: /home/ncvs/ports/astro/setiathome/distinfo,v retrieving revision 1.5 diff -u -r1.5 distinfo --- distinfo 2000/04/17 01:08:32 1.5 +++ distinfo 2001/01/21 18:58:13 @@ -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 Index: pkg-install =================================================================== RCS file: /home/ncvs/ports/astro/setiathome/pkg-install,v retrieving revision 1.5 diff -u -r1.5 pkg-install --- pkg-install 2000/04/17 01:08:36 1.5 +++ pkg-install 2001/01/22 02:40:51 @@ -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 @@ 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 @@ 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" Index: pkg-plist =================================================================== RCS file: /home/ncvs/ports/astro/setiathome/pkg-plist,v retrieving revision 1.2 diff -u -r1.2 pkg-plist --- pkg-plist 1999/04/22 12:24:25 1.2 +++ pkg-plist 2001/01/22 02:52:32 @@ -1,2 +1 @@ -bin/setiathome etc/rc.d/setiathome.sh Index: files/setiathome.1 =================================================================== RCS file: /home/ncvs/ports/astro/setiathome/files/setiathome.1,v retrieving revision 1.9 diff -u -r1.9 setiathome.1 --- files/setiathome.1 2000/04/17 01:08:33 1.9 +++ files/setiathome.1 2001/01/21 22:47:26 @@ -1,5 +1,5 @@ .\" $FreeBSD: ports/astro/setiathome/files/setiathome.1,v 1.9 2000/04/17 01:08:33 kris Exp $ -.Dd May 19, 1999 +.Dd Dec 12, 2000 .Dt setiathome 1 LOCAL .Os FreeBSD .Sh NAME @@ -37,14 +37,14 @@ 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 @@ 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 @@ .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 @@ .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 @@ .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 @@ 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. Index: files/setiathome.sh =================================================================== RCS file: /home/ncvs/ports/astro/setiathome/files/setiathome.sh,v retrieving revision 1.2 diff -u -r1.2 setiathome.sh --- files/setiathome.sh 2000/04/17 01:08:33 1.2 +++ files/setiathome.sh 2001/01/22 02:49:43 @@ -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 @@ 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 @@ 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 @@ ;; *) - echo "usage: `basename $0` {start|stop|register}" >&2 + echo "usage: ${0##*/} {start|stop|register}" >&2 exit 64 ;; esac Index: files/xsetiathome.1 =================================================================== RCS file: /home/ncvs/ports/astro/setiathome/files/xsetiathome.1,v retrieving revision 1.1 diff -u -r1.1 xsetiathome.1 --- files/xsetiathome.1 2000/04/17 01:08:34 1.1 +++ files/xsetiathome.1 2001/01/21 22:31:58 @@ -1,5 +1,6 @@ .\" $FreeBSD: ports/astro/setiathome/files/xsetiathome.1,v 1.1 2000/04/17 01:08:34 kris Exp $ -.Dd Feb 13, 2000 +.\" +.Dd Dec 12, 2000 .Dt xsetiathome 1 LOCAL .Os FreeBSD .Sh NAME @@ -38,7 +39,10 @@ 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 >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-ports" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200101220334.f0M3YJE79103>