+++ /dev/null
-Makefile.in
-aclocal.m4
-config.h.in
-configure
-stamp-h.in
-build
-alpha
-sgi
-sparc
-install
-.deps
-i386-linux
-sparc-solaris
-alpha-osf1
-mips-irix
-.sw-info
.\" -*-nroff-*-
.\"
-.\" $Id: archtab.5,v 1.4 2004/04/08 01:52:18 mdw Exp $
+.\" $Id$
.\"
.\" Manual page for `archtab' files.
.\"
.\" along with sw-tools; if not, write to the Free Software Foundation,
.\" Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
.
+.\"----- Style hacking ------------------------------------------------------
+.
+.de VS \" Start a sort-of verbatim block
+.sp 1
+.in +5n
+.nf
+.ft B
+..
+.de VE \" Stop a sort-of verbatim block
+.ft R
+.fi
+.in -5n
+.sp 1
+..
+.de hP \" Start an indented paragraph with a bold right-aligned label
+.IP
+\fB\h'-\w'\\$1\ 'u'\\$1\ \fP\c
+..
+.
+.ie \n(.g \{\
+. fam P
+. ds mw \fR[\f(BImdw\fR]
+.\}
+.el .ds mw \fR[\fBmdw\fR]
+.ie t .ds o \(bu
+.el .ds o o
+.ds sw \fBsw\fP
+.ds se \fBsw\-env\fP
+.
+.\"----- Main manual text ---------------------------------------------------
+.
+.TH archtab 5 "25 May 1999" sw-tools
+.PD 1
+.
+.\"--------------------------------------------------------------------------
+.
+.SH "NAME"
+.
+archtab \- mapping from architecture names to hosts
+.
+.\"--------------------------------------------------------------------------
+.
+.SH "DESCRIPTION"
+.
+The
+.B archtab
+file is a sequence of lines. A line may be blank, a comment, or a table
+entry. Blank lines contain only whitespace; comments have a
+.RB ` # '
+as their first non-whitespace character: both are ignored. Table
+entries consist an architecture name and a hostname, separated by
+whitespace. Each architecture should only appear once. The hostname
+should be the preferred host for building software on that architecture.
+.
+.\"--------------------------------------------------------------------------
+.
+.SH "SEE ALSO"
+.
+.BR sw (1).
+.
+.SH "AUTHOR"
+.
+The \*(sw program, and this manual, are \*(mw productions, in association
+with the European Bioinformatics Institute. They were written by Mark
+Wooding <mdw@nsict.org>. Go and ask him if you have problems.
+.
+.\"----- That's all, folks --------------------------------------------------
.\" -*-nroff-*-
.\"
-.\" $Id: sw-cgi.1,v 1.2 2004/04/08 01:52:19 mdw Exp $
+.\" $Id$
.\"
.\" Man page for `sw' CGI script
.\"
.\" along with sw-tools; if not, write to the Free Software Foundation,
.\" Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
.
+.\"----- Style hacking ------------------------------------------------------
+.
+.de VS \" Start a sort-of verbatim block
+.sp 1
+.in +5n
+.nf
+.ft B
+..
+.de VE \" Stop a sort-of verbatim block
+.ft R
+.fi
+.in -5n
+.sp 1
+..
+.ie \n(.g \{\
+. fam P
+. ds mw \fR[\f(BImdw\fR]
+.\}
+.el .ds mw \fR[\fBmdw\fR]
+.ie t .ds o \(bu
+.el .ds o o
+.ds sw \fBsw\fP
+.
+.\"----- Main manual text ---------------------------------------------------
+.
+.TH sw-cgi 1 "30 July 1999" sw-tools
+.PD 1
+.
+.\"--------------------------------------------------------------------------
+.
+.SH "NAME"
+.
+sw-cgi \- CGI script for browsing installed software and documentation
+.
+.\"--------------------------------------------------------------------------
+.
+.SH "SYNOPSIS"
+.
+.IB prefix /cgi-bin/sw
+.RI [ key = value ]...
+.
+.\"--------------------------------------------------------------------------
+.
+.SH "DESCRIPTION"
+.
+The
+.B sw
+CGI script provides users with a pleasant-ish interface for browsing the
+list of locally installed software and its documentation.
+.PP
+The script picks up arguments from HTTP
+.B GET
+or
+.B POST
+requests, or from the command line (which is useful when debugging).
+Given no arguments, it emits a table of installed software read from the
+index file in
+.IB prefix /sw-index
+together with links to documentation.
+.PP
+The program assumes that any
+.I package
+has documentation stashed in
+.IB prefix /doc/ package
+in plain text format. You can require your installers to do this by
+putting this code in a
+.B sw-precommit
+script (see the
+.B "Command reference"
+in
+.BR sw (1)
+for details):
+.VS
+# --- Ensure the documentation file exists ---
+
if [ ! -r "$SW_PREFIX/doc/$SW_PACKAGE" ]; then
echo >&2 "no documentation file \`$SW_PREFIX/doc/$SW_PACKAGE'"
exit 1
.\" -*-nroff-*-
.\"
-.\" $Id: sw-tidy.1,v 1.2 2004/04/08 01:52:19 mdw Exp $
+.\" $Id$
.\"
.\" Manual page for `sw-tidy'
.\"
.\" along with sw-tools; if not, write to the Free Software Foundation,
.\" Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
.
+.ie \n(.g \{\
+. fam P
+. ds mw \fR[\f(BImdw\fR]
+.\}
+.el .ds mw \fR[\fBmdw\fR]
+.ds sw \fBsw\fP
+.
+.\"----- Main manual text ---------------------------------------------------
+.
+.TH sw-tidy 1 "30 July 1999" sw-tools
+.
+.\"--------------------------------------------------------------------------
+.
+.SH NAME
+.
+sw-tidy \- tidy \fBsw\fP's index file
+.
+.\"--------------------------------------------------------------------------
+.
+.SH "SYNOPSIS"
+.
+.B sw-tidy
+.
+.\"--------------------------------------------------------------------------
+.
+.SH "DESCRIPTION"
+.
+The
+.B sw-tidy
+command reads
+.BR sw (1)'s
+index file
+.IB prefix /sw-index
+and writes out a new version with duplicate packages removed. This
+makes it take less space, and lets programs read it faster. Also, as a
+side-effect, the new version is written out in alphabetical order of
+package-name, although that's not very important.
+.PP
+The program copes (a bit) if the index file is written to while it's
+being tidied.
+.
+.\"--------------------------------------------------------------------------
+.
+.SH "BUGS"
+.
+Perhaps there ought to be a locking convention for the index file.
+However, it's nice that people can update it using
+.BR cat (1)
+and text editors.
+.
+.\"--------------------------------------------------------------------------
+.
+.SH "SEE ALSO"
+.
+.BR sw (1),
+.BR sw-info (5).
+.
+.SH "AUTHOR"
+.
+The \*(sw program, and this manual, are \*(mw productions, in association
+with the European Bioinformatics Institute. They were written by Mark
+Wooding <mdw@nsict.org>. Go and ask him if you have problems.
+.
+.\"----- That's all, folks --------------------------------------------------
/* -*-c-*-
*
- * $Id: sw_build.c,v 1.5 2004/04/08 01:52:19 mdw Exp $
+ * $Id$
*
* Management of build processes
*
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <time.h>
#include <sys/types.h>
#include <sys/time.h>
.\" -*-nroff-*-
.\"
-.\" $Id: sw-env.5,v 1.4 2004/04/08 01:52:18 mdw Exp $
+.\" $Id$
.\"
.\" Manual page for `sw-env' files
.\"
.\" along with sw-tools; if not, write to the Free Software Foundation,
.\" Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
.
+.\" --- Useful macro definitions ---
+.
+.de VS \" Start a sort-of verbatim block
+.sp 1
+.in +5n
+.nf
+.ft B
+..
+.de VE \" Stop a sort-of verbatim block
+.ft R
+.fi
+.in -5n
+.sp 1
+..
+.de hP \" Start an indented paragraph with a bold right-aligned label
+.IP
+\fB\h'-\w'\\$1\ 'u'\\$1\ \fP\c
+..
+.\"
+.\" --- Style hacking ---
+.\"
+.ie \n(.g \{\
+. fam P
+. ds mw \fR[\f(BImdw\fR]
+.\}
+.el .ds mw \fR[\fBmdw\fR]
+.ie t .ds o \(bu
+.el .ds o o
+.ds sw \fBsw\fP
+.ds se \fBsw\-env\fP
+.
+.\"----- Main manual text ---------------------------------------------------
+.
+.TH sw-env 5 "25 May 1999" sw-tools
+.PD 1
+.
+.\"--------------------------------------------------------------------------
+.
+.SH NAME
+.
+sw\-env \- environment variable assignment files for \*(sw.
+.
+.\"--------------------------------------------------------------------------
+.
+.SH "DESCRIPTION"
+.
+A \*(se file is a sequence of statements. The following statements are
+supported:
+.sp 1
+.in +5n
+.B :
+.I value
+.RB [ ; ]
+.br
+.B include
+.I value
+.RB [ ; ]
+.br
+.B arch
+.I value
+.B {
+.IR statement ...
+.B }
+.RB [ ; ]
+.br
+.RB [ set ]
+.I name
+.RB [ = ]
+.I value
+.RB [ ; ]
+.br
+.B unset
+.I name
+.RB [ ; ]
+.in -5n
+.sp 1
+Whitespace serves to separate tokens but is otherwise ignored except
+when it occurs quoted within a
+.IR value .
+The file may also contain comments, which begin with a
+.RB ` # '
+character and extend to the end of the line. The start of a comment
+must appear where a new statement is expected. Apart from its behaviour
+of terminating comments, newlines behave the same way as other
+whitespace characters. Keywords are not reserved words.
+.PP
+A
+.I name
+is a sequence of digits, letters and underscores which does not start
+with a digit.
+.PP
+A
+.I value
+may contain any non-null character, although some characters are special
+and must be quoted. The syntax of
+.IR value s
+is loosely based on the Bourne
+shell, although there are differences and irregularities due to the
+quick and dirty nature of the parser. The various quoting and
+substitution operations are described below.
+.
+.SS "Statements"
+.
+The statements behave as follows:
+.TP
+.B :
+The following
+.I value
+is read and discarded. This is not useless: reading a
+.I value
+may cause variables to be assigned as a result of
+`\c
+.BI ${ name = value }\c
+\&' substitutions.
+.TP
+.B include
+A
+.I value
+is read, and further assignments are read from the file so named, if it
+exists. Conventionally, the last statement in the global \*(se file is
+.VS
+include ".sw-env";
+.VE
+to read in package-specific settings.
+.TP
+.B arch
+The following
+.I value
+is read. If it matches the name of the host's architecture, then the
+brace-enclosed statements are executed; otherwise they're ignored. It's
+possible, though not useful, to nest
+.B arch
+statements.
+.TP
+.B set
+A
+.I name
+and
+.I value
+are read, optionally separated by an
+.RB ` = '
+character. The variable named is assigned the value, replacing any
+previously assigned value, if any. The
+.RB ` set '
+keyword is optional. It's only useful so that you can assign values to
+variables whose names are also statement keywords.
+.TP
+.B unset
+A
+.I name
+is read. Any value assigned to the variable named is discarded, and the
+variable is forgotten.
+.
+.SS "Value syntax"
+.
+The parser usually reads a
+.I value
+a character by character, until it finds a delimiter. Delimiter
+characters are
+.RB ` ( ',
+.RB ` ) ',
+.RB ` { ',
+.RB ` } ',
+and
+.RB ` ; ';
+whitespace also acts as a delimiter. Delimiter characters can only
+appear in a value if quoted.
+.PP
+There are three types of quoting understood by the value reader. A
+backslash
+.RB (` \e ')
+character causes the following character to be stripped of its special
+meaning. Hence
+.RB ` \e\e '
+inserts a literal backslash. Text between single quotes
+.RB ` \' ... \' '
+is read
+entirely as-is, including all whitespace, newlines, backslashes,
+everything. To include a single quote in a piece of single-quoted text,
+use the sequence
+.RB ` \'\e\'\' ',
+as in the shell. (This drops out of single-quoting, inserts an escaped
+single quote, and resumes quoting.) Text between double quotes
+.BR """" ... """"
+is partially quoted: delimiters and whitespace are read as normal
+characters, but substitutions using the
+.RB ` $ '
+and
+.RB ` \` '
+characters are still made, and the backslash retains its behaviour of
+escaping the following character.
+.PP
+Two sorts of substitutions are available in values:
+.I "variable substitution"
+examines a variable and substitutes some text based on its value, and
+.I "command substitution"
+runs a command and substitutes its output.
+.PP
+The simplest variable substitution takes the form
+.RB ` $\c
+.IR name ':
+this is replaced by the value of the variable called
+.IR name ,
+or the empty string if there is no such variable defined. The name may
+be enclosed in braces should it be necessary to clearly disambiguate the
+end of the name.
+.PP
+More complex variable substitutions are permitted:
+.TP
+.BI ${ name \- text }
+Expands to the value of the variable called
+.I name
+if it's defined, or
+.I text
+if not.
+.TP
+.BI ${ name + text }
+Expands to
+.I text
+if there is a variable called
+.I name
+defined, or nothing.
+.TP
+.BI ${ name = text }
+If there is no variable called
+.I name
+then create one with the value
+.IR text ;
+then expands to the variable's value.
+.PP
+In each of the above, prefixing the operator character
+.RB ` \- ',
+.RB ` + '
+or
+.RB ` = '
+with a colon
+.RB (` : ')
+changes the variable existence test, such that it will believe that a
+variable whose value is the empty string is not defined. Each
+.I text
+part in the above forms is syntactically a
+.IR value ,
+and may itself contain quoting and substitutions. It may also contain
+unescaped whitespace.
+.PP
+There are two forms for command substitution: the backtick form, where a
+command is enclosed in backquotes
+.RB ` \` ... \` ';
+and the parenthesized form
+.RB ` $( ... ) '.
+The only difference between these two forms is syntactic: it's easy to
+make the parenthesized version nest, although that's not actually very
+useful. The text between the backquotes or parentheses is broken into
+words and executed as a command. It is not passed through the shell:
+the author suspects that this would be too confusing. The standard
+output of the command, with trailing newlines (but not internal or
+leading newlines) removed, is the result of the substitution.
+.
+.\"--------------------------------------------------------------------------
+.
+.SH "AUTHOR"
+.
+The \*(sw program, and this manual, are \*(mw productions, in association
+with the European Bioinformatics Institute. They were written by Mark
+Wooding <mdw@nsict.org>. Go and ask him if you have problems.
+.
+.\"----- That's all, folks --------------------------------------------------
+.\" -*-nroff-*-
+.\"
+.\" $Id$
+.\"
+.\" Manual page for `sw-info' files.
+.\"
+.\" (c) 1999 EBI
+.\"
+.
+.\"----- Licensing notice ---------------------------------------------------
+.\"
+.\" This file is part of sw-tools.
+.\"
+.\" sw-tools is free software; you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation; either version 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\" sw-tools is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with sw-tools; if not, write to the Free Software Foundation,
+.\" Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+.
+.\"----- Style hacking ------------------------------------------------------
+.
+.de VS \" Start a sort-of verbatim block
+.sp 1
+.in +5n
+.nf
+.ft B
+..
+.de VE \" Stop a sort-of verbatim block
+.ft R
+.fi
+.in -5n
+.sp 1
+..
+.de hP \" Start an indented paragraph with a bold right-aligned label
+.IP
+\fB\h'-\w'\\$1\ 'u'\\$1\ \fP\c
+..
+.
+.ie \n(.g \{\
+. fam P
+. ds mw \fR[\f(BImdw\fR]
+.\}
+.el .ds mw \fR[\fBmdw\fR]
+.ie t .ds o \(bu
+.el .ds o o
+.ds sw \fBsw\fP
+.ds se \fBsw\-env\fP
+.
+.\"----- Main manual text ---------------------------------------------------
+.
+.TH sw-info 5 "25 May 1999" sw-tools
+.PD 1
+.
+.\"--------------------------------------------------------------------------
+.
+.SH "NAME"
+.
+sw-info \- description of sw data files
+.
+.\"--------------------------------------------------------------------------
+.
+.SH "DESCRIPTION"
+.
+The
+.B .sw\-info
+file contains blank lines, comment lines, and assignments. A blank line
+contains only whitespace; a comment line has a
+.RB ` # '
+as its first non-whitespace character: both are ignored. An assignment
+has the form
+.sp 1
+.in +5n
+.I name
+.RB [ = ]
+.I value
+.in -5in
+.sp 1
+where
+.I name
+is one of the field names described below, and
+.I value
+is any text which doesn't contain newlines, semicolons or null bytes.
+Any leading whitespace is stripped; trailing and internal space is
+preserved.
+.PP
+The fields available are:
+.TP
+.B package
+The package's name.
+.TP
+.B version
+The version number of the package.
+.TP
+.B maintainer
+The user name of the package's local maintainer.
+.TP
+.B date
+The date at which this package was last modified by \*(sw, in the form
+.IB YYYY \- MM \- DD\fR.
+.TP
+.B only\-arch
+The current architecture restriction. The architecture names are
+separated by commas or spaces (or both). This field is omitted if there
+is no restriction in force.
+.TP
+.B arch
+Successfully built architectures. The architecture names are separated
+by commas or spaces (or both).
+.PP
+The
+.B sw\-index
+file consists of a number of entries, one per line. Comments and blank
+lines are not allowed. Each line contains assignments for a particular
+package, separated by semicolons rather than newlines.
+.
+.\"--------------------------------------------------------------------------
+.
+.SH "SEE ALSO"
+.
+.BR sw (1).
+.
+.SH "AUTHOR"
+.
+The \*(sw program, and this manual, are \*(mw productions, in association
+with the European Bioinformatics Institute. They were written by Mark
+Wooding <mdw@nsict.org>. Go and ask him if you have problems.
+.
+.\"----- That's all, folks --------------------------------------------------
+.\" -*-nroff-*-
+.\"
+.\" $Id$
+.\"
+.\" Manual page for `sw-share'
+.\"
+.\" (c) 1999 EBI
+.\"
+.
+.\"----- Licensing notice ---------------------------------------------------
+.\"
+.\" This file is part of sw-tools.
+.\"
+.\" sw-tools is free software; you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation; either version 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\" sw-tools is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with sw-tools; if not, write to the Free Software Foundation,
+.\" Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+.
+.ie \n(.g \{\
+. fam P
+. ds mw \fR[\f(BImdw\fR]
+.\}
+.el .ds mw \fR[\fBmdw\fR]
+.ds sw \fBsw\fP
+.
+.\"----- Main manual text ---------------------------------------------------
+.
+.TH sw-share 1 "30 July 1999" sw-tools
+.
+.\"--------------------------------------------------------------------------
+.
+.SH "NAME"
+.
+sw-share \- propagate links to architecture-neutral directories
+.
+.\"--------------------------------------------------------------------------
+.
+.SH "SYNOPSIS"
+.
+.B sw-share
+.
+.\"--------------------------------------------------------------------------
+.
+.SH "DESCRIPTION"
+.
+The
+.B sw-tidy
+program works on software repositories like ours (described in the
+.B "Local quirks"
+section of the
+.BR sw (1)
+manpage). It trundles through the architecture neutral directories in
+.I prefix
+(the chosen install prefix for \*(sw) and makes symbolic links to them
+in all of the architecture specific directories lying in
+.IB prefix /arch/ \c
+.IR arch .
+This is a good thing to put in a
+.BR cron (8)
+job.
+.
+.\"--------------------------------------------------------------------------
+.
+.SH "SEE ALSO"
+.
+.BR sw (1).
+.
+.SH "AUTHOR"
+.
+The \*(sw program, and this manual, are \*(mw productions, in association
+with the European Bioinformatics Institute. They were written by Mark
+Wooding <mdw@nsict.org>. Go and ask him if you have problems.
+.
+.\"----- That's all, folks --------------------------------------------------
+.\" -*-nroff-*-
+.\"
+.\" $Id$
+.\"
+.\" Manual page for `sw'
+.\"
+.\" (c) 1999 EBI
+.\"
+.
+.\"----- Licensing notice ---------------------------------------------------
+.\"
+.\" This file is part of sw-tools.
+.\"
+.\" sw-tools is free software; you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation; either version 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\" sw-tools is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with sw-tools; if not, write to the Free Software Foundation,
+.\" Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+.
+.\"----- Style hacking ------------------------------------------------------
+.
+.de VS \" Start a sort-of verbatim block
+.sp 1
+.in +5n
+.nf
+.ft B
+..
+.de VE \" Stop a sort-of verbatim block
+.ft R
+.fi
+.in -5n
+.sp 1
+..
+.de hP \" Start an indented paragraph with a bold right-aligned label
+.IP
+\fB\h'-\w'\\$1\ 'u'\\$1\ \fP\c
+..
+.
+.ie \n(.g \{\
+. fam P
+. ds mw \fR[\f(BImdw\fR]
+.\}
+.el .ds mw \fR[\fBmdw\fR]
+.ie t .ds o \(bu
+.el .ds o o
+.ds sw \fBsw\fP
+.
+.\"----- Main manual text ---------------------------------------------------
+.
+.TH sw 1 "25 May 1999" sw-tools
+.PD 1
+.
+.\"--------------------------------------------------------------------------
+.
+.SH "NAME"
+.
+sw \- tool for convenient software installation
+.
+.\"--------------------------------------------------------------------------
+.
+.SH "SYNOPSIS"
+.
+.nf
+\fBsw \-\-help
+\fBsw \-\-help-full
+\fBsw \-\-version
+\fBsw \-\-archname
+\fBsw \-\-remote \fIcommand
+
\fBsw all\-arch
\fBsw arch
\fBsw commit