/* -*-c-*-
*
- * $Id: sw_info.c,v 1.1 1999/06/02 16:53:35 mdw Exp $
+ * $Id: sw_info.c,v 1.2 1999/06/18 18:58:45 mdw Exp $
*
* Maintenance of `.sw-info' files
*
/*----- Revision history --------------------------------------------------*
*
* $Log: sw_info.c,v $
- * Revision 1.1 1999/06/02 16:53:35 mdw
- * Initial revision
+ * Revision 1.2 1999/06/18 18:58:45 mdw
+ * Various tidyings.
+ *
+ * Revision 1.1.1.1 1999/06/02 16:53:35 mdw
+ * Initial import.
*
*/
aa = arch_filter(all, sw.only_arch, archFlag_built, 0);
if (aa) {
- char *sep = " ";
- fprintf(stderr, "%s: not built for", QUIS);
+ const char *sep = "";
+ fprintf(stderr, "%s: not built for ", QUIS);
for (a = aa; a; a = a->cdr) {
fprintf(stderr, "%s%s", sep, a->car->arch);
sep = ", ";
{
FILE *fp = fopen(PREFIX "/sw-index", "a");
swfield *f;
- char *sep = "";
+ const char *sep = "";
if (!fp)
die(1, "couldn't open index file: %s", strerror(errno));
.\" -*-nroff-*-
.\"
-.\" $Id: sw.1,v 1.2 1999/06/04 13:56:09 mdw Exp $
+.\" $Id: sw.1,v 1.3 1999/06/18 18:58:25 mdw Exp $
.\"
.\" Manual page for `sw'
.\"
.\"----- Revision history ---------------------------------------------------
.\"
.\" $Log: sw.1,v $
+.\" Revision 1.3 1999/06/18 18:58:25 mdw
+.\" Various tidyings.
+.\"
.\" Revision 1.2 1999/06/04 13:56:09 mdw
.\" Changes, extensions, polishings, spelling fixes...
.\"
.\" --- Style hacking ---
.\"
.ie \n(.g \{\
-. fam P
-. ds mw \fR[\f(BImdw\fR]
+. fam P
+. ds mw \fR[\f(BImdw\fR]
.\}
-.el .ds mw \fR[\fBmdw\fR]
+.el .ds mw \fR[\fBmdw\fR]
.ie t .ds o \(bu
.el .ds o o
.ds sw \fBsw\fP
.BR rsh )
override corresponding variables in the basis environment.
.HP \*o
+The
+.B SW_ARCH
+variable is set to the name of the remote host's architecture.
+.HP \*o
Variable assignments are read from the global
.IB prefix /share/sw\-env
file. This makes some assignments which are useful everywhere, and will
.BR sw\-env (5).
.\"
.\"
+.SH LOCAL QUIRKS
+This section describes how non-vendor software works at EBI. Chances
+are that other sites will work differently. This description is here as
+an example setup for \*(sw.
+.PP
+All the non-vendor software gets put in one big shared filesystem, and
+is exported from our main fileserver. The filesystem is mounted on all
+clients as
+.BR /sw/common .
+Architecture-neutral files are then
+placed in the conventional subdirectories off
+.B /sw/common
+(e.g.,
+.BR /sw/common/share,
+or
+.BR /sw/common/info ).
+Architecture specific files are stored in subdirectories off
+.BR /sw/common/arch .
+For example, Linux binaries go in
+.BR /sw/common/arch/i386-linux/bin ,
+and Solaris libraries in
+.BR /sw/common/arch/sparc-solaris/lib .
+Additionally, each architecture-specific subtree has a symbolic link
+back up to
+.B /sw/common
+for each of the architecture-neutral subdirectories.
+.PP
+There is a symbolic link on every client, from
+.B /sw/arch
+to
+.BI /sw/common/arch/ arch\fR,
+where
+.I arch
+is the architecture of that client. Thus, every client has two
+.I views
+of the software repository: the `common' view where every host sees
+exactly the same mapping between filenames and files, and the `arch'
+view where every host sees the same mapping between filenames and
+programs which do the same job.
+.PP
+And that's just about it.
+.\"
+.\"
.SH ENVIRONMENT
The following environment variables are of interest to
.BR sw :