From apple!bogart.cse.ogi.edu!bruce Thu Apr 9 03:40:08 1992 Return-Path: Received: by mitsu.veritas.com (/\==/\ Smail3.1.25.1 #25.1) id ; Thu, 9 Apr 92 03:40 PDT Received: by veritas.veritas.com (/\==/\ Smail3.1.22.1 #22.2) id ; Thu, 9 Apr 92 02:33 PDT Received: by mobius.veritas.com (/\==/\ Smail3.1.25.1 #25.2) id ; Thu, 9 Apr 92 03:36 PDT Received: by veritas.veritas.com (/\==/\ Smail3.1.22.1 #22.2) id ; Thu, 9 Apr 92 02:33 PDT Received: from bogart.cse.ogi.edu by apple.com with SMTP (5.61/10-Dec-1991-eef) id AA21446; Thu, 9 Apr 92 02:38:40 -0700 for veritas.com!tron Received: by bogart.cse.ogi.edu (/\==/\ Smail3.1.25.1 #25.35) id ; Thu, 9 Apr 92 02:38 PDT Message-Id: Date: Thu, 9 Apr 92 02:38 PDT From: apple!bogart.cse.ogi.edu!bruce (Bruce Jerrick) To: tron@veritas.com Subject: Re: PATH_ALIASES_FILE (and PATH_PATHS_FILE) not always set correctly Status: R > > In smail-3.1.25, if ALIASES_FILE is set in conf/os/$OS_TYPE instead > >of conf/EDITME, some variables are not set correctly in conf/lib/mkdefs.sh . > > I will agree that the code doesn't allow for this. However, why would > anyone want to do this? I'm building smail for at least three different architectures or OS's (Sequent, Sun-4, Sun-3, probably Ultrix also), from one central source, accessed read-only via NFS. I can use the same EDITME if all the OS dependencies are in the os/xxx files. That avoids having to have multiple but slightly divergent copies of source. So my philosophy on EDITME is that it should contain site dependencies, not OS dependencies. E.g., where smail gets installed is in EDITME, but something like /etc/aliases (SunOS) vs. /usr/lib/aliases (Classic) should be in os/xxx . We do practically all our builds in "shadow" directories -- on disk local to a machine doing the build for a particular architecture. This is under a hierarchy similar to /usr/src, only starting with /usr/src.shadow . Source files are actually symlinks into /usr/src/..., which is NFS-mounted read-only from one machine (a "source server"). We regard multiple copies of source as being almost as leperous as s*ndmail.cf files, because of the danger that divergent versions will develop. To facilitate this, I took all the OS_TYPE=xxx lines out of EDITME, replacing them with a line that sources a file: . ${ROOT}/conf/OS_TYPE That name "OS_TYPE" doesn't change. There are a variety of OS_TYPE.xxx files to choose from; all are in the central source tree, and all are made available to all shadow trees. The only thing that differs on the various machines is one OS-specific symlink in the shadow directory, e.g., on the Sequent: OS_TYPE -> OS_TYPE.dynix3.2 and on the Sun: OS_TYPE -> OS_TYPE.sun_os4.1 In the shadow directories the OS_TYPE.xxx files are symlinks just like all other source file symlinks: OS_TYPE.dynix3.2 -> SRC/OS_TYPE.dynix3.2 OS_TYPE.sun_os4.1 -> SRC/OS_TYPE.sun_os4.1 (etc.) (SRC is a symlink pointing into the source tree, just for name compaction). In the central source, the OS_TYPE.xxx files are each a one-liner -- the appropriate OS_TYPE=xxx. At first I had done this with EDITME (e.g., EDITME -> EDITME.dynix3.2), but found I was making changes to multiple EDITME.xxx files that differed by only one line (the OS_TYPE=xxx line). -- Bruce