From 64740c8f28b5709e9b7d8066ab989a16e1728f36 Mon Sep 17 00:00:00 2001 From: Greg Lewis Date: Wed, 13 Aug 2003 17:35:21 +0000 Subject: . Add a port of SQueuer, a queueing proxy for Seti@Home: SQueuer is a queueing proxy for Seti@Home with the following features: * Keeps a configurable sized queue of work units so that the client will always be able to get a new work unit immediately upon finishing one. * Queues results for uploading should the main Seti@Home site be overloaded or down. Results are never lost and the client is never delayed waiting to upload a result. * Can handle multiple users running the Seti@Home client on multiple machines all connecting to SQueuer. * Platform independent. SQueuer has been tested and found to work on different versions of Unix, MacOS and Windows. All it requires is a Perl 5 interpreter. --- astro/Makefile | 1 + astro/squeuer/Makefile | 50 ++++++++++++++++++++++ astro/squeuer/distinfo | 1 + astro/squeuer/files/patch-etc::rc.d::S71squeuer.sh | 24 +++++++++++ astro/squeuer/files/patch-etc::squeuer.conf.unix | 22 ++++++++++ astro/squeuer/pkg-deinstall | 15 +++++++ astro/squeuer/pkg-descr | 18 ++++++++ astro/squeuer/pkg-install | 34 +++++++++++++++ astro/squeuer/pkg-message | 19 ++++++++ astro/squeuer/pkg-plist | 5 +++ 10 files changed, 189 insertions(+) create mode 100644 astro/squeuer/Makefile create mode 100644 astro/squeuer/distinfo create mode 100644 astro/squeuer/files/patch-etc::rc.d::S71squeuer.sh create mode 100644 astro/squeuer/files/patch-etc::squeuer.conf.unix create mode 100644 astro/squeuer/pkg-deinstall create mode 100644 astro/squeuer/pkg-descr create mode 100644 astro/squeuer/pkg-install create mode 100644 astro/squeuer/pkg-message create mode 100644 astro/squeuer/pkg-plist (limited to 'astro') diff --git a/astro/Makefile b/astro/Makefile index 78a8c8a74e58..d015b1949637 100644 --- a/astro/Makefile +++ b/astro/Makefile @@ -44,6 +44,7 @@ SUBDIR += sattrack SUBDIR += setiathome SUBDIR += spacechart + SUBDIR += squeuer SUBDIR += sscalc SUBDIR += starplot SUBDIR += stars diff --git a/astro/squeuer/Makefile b/astro/squeuer/Makefile new file mode 100644 index 000000000000..0f9a1c0ef389 --- /dev/null +++ b/astro/squeuer/Makefile @@ -0,0 +1,50 @@ +# New ports collection makefile for: squeuer +# Date created: 6 August 2003 +# Whom: glewis@FreeBSD.org +# +# $FreeBSD$ +# + +PORTNAME= squeuer +PORTVERSION= 2.0.1 +CATEGORIES= astro net +MASTER_SITES= http://www.eyesbeyond.com/squeuer/ + +MAINTAINER= glewis@FreeBSD.org +COMMENT= A queueing proxy for Seti@Home + +NO_BUILD= yes +USE_REINPLACE= yes +USE_PERL5_RUN= yes + +# These must be writeable by the user "squeuer" +SPOOLDIR?= /var/spool/squeuer +LOGDIR?= /var/spool/squeuer +PIDDIR?= /var/spool/squeuer + +do-configure: + for i in ${WRKSRC}/etc/squeuer.conf.unix ${WRKSRC}/etc/rc.d/S71squeuer.sh; do \ + ${REINPLACE_CMD} -e "s:%%PREFIX%%:${PREFIX}:g" \ + -e "s:%%SPOOLDIR%%:${SPOOLDIR}:g" \ + -e "s:%%LOGDIR%%:${LOGDIR}:g" \ + -e "s:%%PIDDIR%%:${PIDDIR}:g" $$i; \ + done + +do-install: + ${INSTALL_SCRIPT} ${WRKSRC}/bin/squeuer.pl ${PREFIX}/sbin/squeuer + ${INSTALL_DATA} ${WRKSRC}/etc/squeuer.conf.unix ${PREFIX}/etc/squeuer.conf.sample + ${INSTALL_SCRIPT} ${WRKSRC}/etc/rc.d/S71squeuer.sh ${PREFIX}/etc/rc.d/squeuer.sh.sample +.if !defined(NOPORTDOCS) + ${MKDIR} ${DOCSDIR} + ${INSTALL_DATA} ${WRKSRC}/doc/README ${WRKSRC}/doc/TODO ${DOCSDIR} +.endif + +post-install: + ${SETENV} PKG_PREFIX=${PREFIX} ${SH} ${PKGDIR}/pkg-install ${PKGNAME} PRE-INSTALL + if [ ! -e ${SPOOLDIR} ]; then \ + ${MKDIR} ${SPOOLDIR}; \ + ${CHOWN} squeuer:squeuer ${SPOOLDIR}; \ + fi + @${CAT} ${PKGMESSAGE} + +.include diff --git a/astro/squeuer/distinfo b/astro/squeuer/distinfo new file mode 100644 index 000000000000..514582bcc16a --- /dev/null +++ b/astro/squeuer/distinfo @@ -0,0 +1 @@ +MD5 (squeuer-2.0.1.tar.gz) = a26dcc0778d63b7a8b02222f19eba010 diff --git a/astro/squeuer/files/patch-etc::rc.d::S71squeuer.sh b/astro/squeuer/files/patch-etc::rc.d::S71squeuer.sh new file mode 100644 index 000000000000..ca63e77cfab6 --- /dev/null +++ b/astro/squeuer/files/patch-etc::rc.d::S71squeuer.sh @@ -0,0 +1,24 @@ +$FreeBSD$ + +--- etc/rc.d/S71squeuer.sh.orig Thu Oct 31 20:38:18 2002 ++++ etc/rc.d/S71squeuer.sh Thu Aug 7 12:25:20 2003 +@@ -3,14 +3,16 @@ + # Squeuer + # + +-squeuer=/usr/local/bin/squeuer.pl +-pid_file=/var/run/squeuer.pid ++squeuer=%%PREFIX%%/sbin/squeuer ++squeuer_conf=%%PREFIX%%/etc/squeuer.conf ++pid_file=%%PIDDIR%%/squeuer.pid ++squeuer_user=squeuer + + SYSV3=1; export SYSV3 + + case $1 in + start) echo -n ' squeuer' +- su squeuer -c $squeuer > $pid_file & ++ su $squeuer_user -c "$squeuer -f $squeuer_conf" > $pid_file & + ;; + + stop) if [ -f $pid_file ]; then diff --git a/astro/squeuer/files/patch-etc::squeuer.conf.unix b/astro/squeuer/files/patch-etc::squeuer.conf.unix new file mode 100644 index 000000000000..39088f51ade6 --- /dev/null +++ b/astro/squeuer/files/patch-etc::squeuer.conf.unix @@ -0,0 +1,22 @@ +$FreeBSD$ + +--- etc/squeuer.conf.unix.orig Thu Aug 7 09:32:52 2003 ++++ etc/squeuer.conf.unix Thu Aug 7 11:26:29 2003 +@@ -12,7 +12,7 @@ + # Location of the work unit spooling directory + # This must be writable by the SQueuer process + # +-spool_path = /var/spool/squeuer ++spool_path = %%SPOOLDIR%% + + # + # Do we write the pid out +@@ -52,7 +52,7 @@ + # warning - security problems or invalid data found + # alert - user must do something or squeuer won't work + # +-log_method = /var/spool/squeuer/squeuer.log ++log_method = %%LOGDIR%%/squeuer.log + log_level = info,notice,warning,alert + + # diff --git a/astro/squeuer/pkg-deinstall b/astro/squeuer/pkg-deinstall new file mode 100644 index 000000000000..7ec4b35277a9 --- /dev/null +++ b/astro/squeuer/pkg-deinstall @@ -0,0 +1,15 @@ +#!/bin/sh +# $FreeBSD$ +# + +if [ "$2" != "POST-DEINSTALL" ]; then + exit 0 +fi + +USER=squeuer + +if pw usershow "${USER}" 2>/dev/null 1>&2; then + echo "To delete SQueuer user permanently, use 'pw userdel ${USER}'" +fi + +exit 0 diff --git a/astro/squeuer/pkg-descr b/astro/squeuer/pkg-descr new file mode 100644 index 000000000000..8dfb48ede026 --- /dev/null +++ b/astro/squeuer/pkg-descr @@ -0,0 +1,18 @@ +SQueuer is a queueing proxy for Seti@Home with the following features: + + * Keeps a configurable sized queue of work units so that + the client will always be able to get a new work unit + immediately upon finishing one. + + * Queues results for uploading should the main Seti@Home + site be overloaded or down. Results are never lost and the + client is never delayed waiting to upload a result. + + * Can handle multiple users running the Seti@Home client + on multiple machines all connecting to SQueuer. + + * Platform independent. SQueuer has been tested and found + to work on different versions of Unix, MacOS and Windows. + All it requires is a Perl 5 interpreter. + +WWW: http://www.eyesbeyond.com/squeuer/ diff --git a/astro/squeuer/pkg-install b/astro/squeuer/pkg-install new file mode 100644 index 000000000000..c3581ba52389 --- /dev/null +++ b/astro/squeuer/pkg-install @@ -0,0 +1,34 @@ +#!/bin/sh +# $FreeBSD: /tmp/pcvs/ports/astro/squeuer/Attic/pkg-install,v 1.1 2003-08-13 17:35:21 glewis Exp $ +# + +if [ "$2" != "PRE-INSTALL" ]; then + exit 0 +fi + +USER=squeuer +GROUP=${USER} +UID=96 +GID=${UID} + +if ! pw groupshow "${GROUP}" 2>/dev/null 1>&2; then + if pw groupadd ${GROUP} -g ${GID}; then + echo "Added group \"${GROUP}\"." + else + echo "Adding group \"${GROUP}\" failed..." + exit 1 + fi +fi + +if ! pw usershow "${USER}" 2>/dev/null 1>&2; then + if pw useradd ${USER} -u ${UID} -g ${GROUP} -h - \ + -s "/bin/sh" -d "/nonexistent" \ + -c "SQueuer Owner"; \ + then + echo "Added user \"${USER}\"." + else + echo "Adding user \"${USER}\" failed..." + exit 1 + fi +fi +exit 0 diff --git a/astro/squeuer/pkg-message b/astro/squeuer/pkg-message new file mode 100644 index 000000000000..aaf9e9eff03b --- /dev/null +++ b/astro/squeuer/pkg-message @@ -0,0 +1,19 @@ + +============================================================= +To use SQueuer with the setiathome port, the file + + /usr/local/etc/rc.setiathome.conf + +must be modified (specifically the seti_proxy_server setting) +and setiathome restarted. + +As an example, if you're running SQueuer on the same host as +the client then a line such as + + seti_proxy_server=localhost:17771 + +would be appropriate. If SQueuer is running on a different +host or SQueuer is configured to run on a different port +then please modify either localhost or 17771 as appropriate. +============================================================= + diff --git a/astro/squeuer/pkg-plist b/astro/squeuer/pkg-plist new file mode 100644 index 000000000000..05163c90bdd0 --- /dev/null +++ b/astro/squeuer/pkg-plist @@ -0,0 +1,5 @@ +sbin/squeuer +etc/squeuer.conf.sample +etc/rc.d/squeuer.sh.sample +%%PORTDOCS%%%%DOCSDIR%%/README +%%PORTDOCS%%%%DOCSDIR%%/TODO -- cgit v1.2.3