summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKris Kennaway <kris@FreeBSD.org>2001-01-27 04:40:33 +0000
committerKris Kennaway <kris@FreeBSD.org>2001-01-27 04:40:33 +0000
commit4a208e0f030c7cdeed8b5be9c2558347f21b5d15 (patch)
tree911e9ced0a5363652c5229d18b901e177c14b963
parentAdd 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
-rw-r--r--astro/setiathome/Makefile147
-rw-r--r--astro/setiathome/distinfo3
-rw-r--r--astro/setiathome/files/setiathome.1170
-rw-r--r--astro/setiathome/files/setiathome.sh35
-rw-r--r--astro/setiathome/files/xsetiathome.18
-rw-r--r--astro/setiathome/pkg-install17
-rw-r--r--astro/setiathome/pkg-plist1
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