home *** CD-ROM | disk | FTP | other *** search
- From: howard@ericsson.se (Howard Gayle)
- Newsgroups: comp.sources.misc
- Subject: v18i008: libhoward - libhoward portability library, Patch01b/3
- Message-ID: <1991Apr10.041031.3926@sparky.IMD.Sterling.COM>
- Date: 10 Apr 91 04:10:31 GMT
- Approved: kent@sparky.imd.sterling.com
- X-Checksum-Snefru: 2bbe0ff5 fed0ba69 fce0d845 97fb6198
-
- Submitted-by: Howard Gayle <howard@ericsson.se>
- Posting-number: Volume 18, Issue 8
- Archive-name: libhoward/patch01b
- Patch-To: libhoward: Volume 8, Issue 80-87,96
-
- #! /bin/sh
- # This is a shell patch script from revision 1.7 to revision 2.3.
- # Remove anything before this line, then feed it into a shell, for
- # example by typing "sh file". This script was created by:
- # $Header: freezePch.b,v 1.2 89/09/25 07:01:13 howard Exp $
- #
- patch -c MakeCommon << 'EOF'
- ***************
- *** 1,6 ****
- # MakeCommon - common definitions for uMakefile and Makefile for howard
- #
- ! # $Header: MakeCommon,v 1.3 89/09/22 13:46:45 howard Exp $
- #
- # Copyright 1989 Howard Lee Gayle
- # This file is written in the ISO 8859/1 character set.
- --- 1,6 ----
- # MakeCommon - common definitions for uMakefile and Makefile for howard
- #
- ! # $Header: /usr/local/dist/free-dist/howard/2/work/RCS/MakeCommon,v 1.4 91/02/27 08:52:33 howard Exp $
- #
- # Copyright 1989 Howard Lee Gayle
- # This file is written in the ISO 8859/1 character set.
- ***************
- *** 40,46 ****
-
-
- # C include file search path.
- ! INCLUDES=-I/usr/local/local-include -I/usr/local/free/howard/1/include
-
- # Special C programs. These are *not* library functions.
- SCS = mk-smp.c
- --- 40,46 ----
-
-
- # C include file search path.
- ! INCLUDES=-I/usr/local/local-include -I/f/howard/2/include
-
- # Special C programs. These are *not* library functions.
- SCS = mk-smp.c
- EOF
-
- patch -c Makefile << 'EOF'
- ***************
- *** 1,8 ****
- # Makefile - main GNU make file for -lhoward and include/howard
- #
- ! # $Header: Makefile,v 1.24 89/09/23 15:23:28 howard Exp $
- #
- ! # Copyright 1989 Howard Lee Gayle
- # This file is written in the ISO 8859/1 character set.
- #
- # This program is free software; you can redistribute it and/or modify
- --- 1,8 ----
- # Makefile - main GNU make file for -lhoward and include/howard
- #
- ! # $Header: /usr/local/dist/free-dist/howard/2/work/RCS/Makefile,v 1.25 91/02/26 14:25:51 howard Exp $
- #
- ! # Copyright 1989, 1991 Howard Lee Gayle
- # This file is written in the ISO 8859/1 character set.
- #
- # This program is free software; you can redistribute it and/or modify
- ***************
- *** 86,94 ****
-
- # Bourne shell files.
- BS := $(filter %.b,$(SRCS))
- -
- - # BibTeX bibliography file.
- - BIBS := $(filter %.bib,$(SRCS))
-
- # BibTeX bibliography file.
- BIBS := $(filter %.bib,$(SRCS))
- --- 86,91 ----
- EOF
-
- patch -c README << 'EOF'
- ***************
- *** 1,4 ****
- ! $Header: README,v 1.3 89/09/23 15:25:11 howard Exp $
-
- DESCRIPTION
-
- --- 1,4 ----
- ! $Header: /usr/local/dist/free-dist/howard/2/work/RCS/README,v 1.7 91/04/03 13:19:03 howard Exp $
-
- DESCRIPTION
-
- ***************
- *** 14,19 ****
- --- 14,26 ----
- This is described in a LaTeX report.
-
-
- + LICENSE
- +
- + The C library is currently under the GNU General Public
- + License. I intend to place it under the GNU library license
- + when that is released.
- +
- +
- RATIONALE
-
- Many people make each software system they release stand-alone,
- ***************
- *** 34,63 ****
-
- ANSI-C float.h and limits.h include files must be on the C
- include file search path. If you don't have them, you can use
- ! Steven Pemberton's config program to make one. It was posted to
- ! comp.sources.misc on 30 April 1989 as volume 6 issue 96, archive
- ! name config2.
-
- ! The makefiles use features that may only be in GNU make, version
- ! 3.54 or later.
-
- Chris Tweed's sets command must be on the command search path.
- It was posted to comp.sources.unix on 24 February 1988 as volume
- 13, issue 68, archive name sets.
-
- ! Some of the documentation is in LaTeX.
-
- The Bourne shell scripts use if [...] syntax instead of explicit
- ! calls to test. You might need to link test to [ to make this
- ! work.
-
-
- INSTALLATION
-
- ! It will be much easier to understand the installation if you
- ! first read my report. It is in the LaTeX source file
- ! hetero.tex. If you have LaTeX installed, you can format it like
- ! this.
- % latex hetero
- % bibtex hetero
- % latex hetero
- --- 41,91 ----
-
- ANSI-C float.h and limits.h include files must be on the C
- include file search path. If you don't have them, you can use
- ! Steven Pemberton's enquire program to make them. It was posted
- ! to comp.sources.misc on 16 December 1990 as volume 15 issue 95,
- ! archive name enquire-4.3.
-
- ! The makefiles work with GNU make version 3.59, and I hope
- ! they'll continue to work with later versions of GNU make. The
- ! makefiles won't work with SunOS 4.0 or 4.1 make. I suspect that
- ! only GNU make has all the required features, but I haven't tried
- ! all other makes, so I can't be sure. GNU make can be ordered
- ! from:
- ! Free Software Foundation, Inc.
- ! 675 Mass Ave
- ! Cambridge, MA 02139
- ! USA
-
- Chris Tweed's sets command must be on the command search path.
- It was posted to comp.sources.unix on 24 February 1988 as volume
- 13, issue 68, archive name sets.
-
- ! The yrkw.c file includes <tzfile.h> in order to get the macro
- ! TM_YEAR_BASE. If your system does not have
- ! /usr/include/tzfile.h then create this one-line version of
- ! tzfile.h and place it somewhere on the include search path, e.g.
- ! /usr/local/include:
-
- + #define TM_YEAR_BASE 1900
- +
- + Some of the documentation is in LaTeX. The latest UNIX TeX
- + distribution tape, including LaTeX, can be ordered from:
- + Northwest Computing Support Center
- + DR-10, Thomson Hall 35
- + University of Washington
- + Seattle, Washington 98195
- + USA
- +
- The Bourne shell scripts use if [...] syntax instead of explicit
- ! calls to the test command. You might need to link test to [ in
- ! order to make this work.
-
-
- INSTALLATION
-
- ! It will be easier to understand the installation if you first
- ! read my report. It is in the LaTeX source file hetero.tex. If
- ! you have LaTeX installed, you can format it like this:
- % latex hetero
- % bibtex hetero
- % latex hetero
- ***************
- *** 70,83 ****
- below.
-
- Create a directory for compiling on this machine type. I'll
- ! call it /usr/local/free/howard.
-
- Find out the version. Look at the Header line (typically the
- ! first line) of the FREEZE file. The version is the first
- ! number, and ends at the period.
-
- ! Create a subdirectory for this version. e.g.
- ! /usr/local/free/howard/1.
-
- Create the following subdirectories for results:
- bin Installed Bourne shell scripts.
- --- 98,112 ----
- below.
-
- Create a directory for compiling on this machine type. I'll
- ! call it /f/howard.
-
- Find out the version. Look at the Header line (typically the
- ! first line) of the FREEZE file. The version is the first number
- ! after the path name, and ends at the period. For example, this
- ! line has version 2:
- ! Header: /usr/local/free-dist/howard/2/work/RCS/FREEZE,v 2.1 91/02/26 09:45:19 howard Exp
-
- ! Create a subdirectory for this version. e.g. /f/howard/2.
-
- Create the following subdirectories for results:
- bin Installed Bourne shell scripts.
- ***************
- *** 89,151 ****
- tex Installed TeX & LaTeX macro files.
-
- For example:
- ! % cd /usr/local/free/howard/1
- % mkdir bin include include/howard man man/{cat,man}{1,3} tex
-
- ! Create a subdirectory for doing the actual compilations. I'll
- ! call it sun34:
- ! % mkdir sun34
-
- ! Bootstrap the Bourne shell scripts into their installation
- ! directory. Let $DD be where the master source is:
- % cp $DD/*.b bin
- % cd bin
- % /bin/ls -1 | sed -e 's;\.b$;;' | xargs -i= -t mv =.b =
- % chmod +x *
- % cd ..
- !
- If you want to override the behavior of any of the Bourne shell
- scripts for portability or because of different local policies,
- this is a good time to do so. I suggest putting locally changed
- copies in a separate bin directory that is on the command search
- path *before* the bin directory in which the scripts will be
- ! installed, e.g. create /usr/local/free/howard/1/local-bin, and
- ! put it on the command search path before
- ! /usr/local/free/howard/1/bin. Here is a guide to possible local
- ! changes:
-
- ! mkAr This makes the ar archive library. It is very BSDish
- ! and must change for the `lorder $* | tsort` crowd.
-
- ! mkCIncl These both assume that calling /lib/cpp -M is the
- ! mkLibIncl way to find out what include files a C source
- ! file uses. Change them if that's wrong for your
- ! system.
-
- ! mkDistI This is how files get from the master source
- ! directory to the compilation directory. I use
- ! symbolic links.
-
- ! mkInstF This is how non-executable files get installed. I
- ! use hard links. Shell scripts count as
- ! non-executable.
-
- ! mkInstX This is how executable files get installed. I
- ! use hard links. This would be the place to strip
- ! symbol tables. Shell scripts are *not* considered
- ! to be executable.
-
- ! mkLaTeXPS This formats a LaTeX file, including BibTeX
- ! processing, all the way to a printable
- ! representation, which for me is PostScript. If
- ! you want some other final format, I would suggest
- ! writing a separate shell script.
- !
- ! mkManPS This formats a manual entry to PostScript, using
- ! TransScript. If you have some other way to format
- ! manual entries, I would suggest writing a separate
- ! shell script.
-
- If you write original software with these tools, you may also
- want to change mkDistO, which places files in the distribution
- directory. I use hard links for this. Also, the following are
- --- 118,210 ----
- tex Installed TeX & LaTeX macro files.
-
- For example:
- ! % cd /f/howard/2
- % mkdir bin include include/howard man man/{cat,man}{1,3} tex
-
- ! Create a subdirectory for doing the actual compilations. For
- ! my example, I'll use sun3-411, corresponding to a Sun-3 running
- ! SunOS 4.1.1:
- ! % mkdir sun3-411
-
- ! Install the Bourne shell scripts into the correct destination
- ! directory. The first two bytes of each .b file are spaces; this
- ! normally causes the Bourne shell to interpret them, regardless
- ! of whether the UNIX version handles #! at the beginning of an
- ! executable. So normally, it's only necessary to copy foo.b to
- ! foo, then make foo executable. For example, let DD be a shell
- ! variable containing a full path to the master source directory:
- % cp $DD/*.b bin
- % cd bin
- % /bin/ls -1 | sed -e 's;\.b$;;' | xargs -i= -t mv =.b =
- % chmod +x *
- % cd ..
- !
- ! On some systems it may be necessary to insert a
- ! #!/bin/sh
- ! line at the beginning of each executable. In that case, you can
- ! use a simple Bourne shell program like this:
- ! #!/bin/sh
- ! for f
- ! do
- ! p=`basename "$f" .b`
- ! echo '#!/bin/sh' > "$p"
- ! cat "$f" >> "$p"
- ! done
- ! Suppose this program is in the file binstall. Then you'd use
- ! these commands instead:
- ! % cd bin
- ! % binstall $DD/*.b
- ! % chmod +x *
- ! % cd ..
- !
- If you want to override the behavior of any of the Bourne shell
- scripts for portability or because of different local policies,
- this is a good time to do so. I suggest putting locally changed
- copies in a separate bin directory that is on the command search
- path *before* the bin directory in which the scripts will be
- ! installed, e.g. create /f/howard/2/local-bin, and put it on the
- ! command search path before /f/howard/2/bin. Then, when
- ! installing the next version, you don't have to remember which
- ! programs in /f/howard/2/bin you changed locally; you just copy
- ! everything in /f/howard/2/local-bin into /f/howard/3/local-bin.
- ! Here is a guide to possible local changes:
-
- ! mkAr This makes the ar archive library. It is very BSDish
- ! and must change for the `lorder $* | tsort` crowd.
-
- ! mkCIncl These both assume that calling /lib/cpp -M is the
- ! mkLibIncl way to find out what include files a C source
- ! file uses. Change them if that's wrong for your
- ! system.
-
- ! mkDistI This is how files get from the master source
- ! directory to the compilation directory. I use
- ! symbolic links.
-
- ! mkInstF This is how non-executable files get installed. I
- ! use hard links if possible, otherwise copies.
- ! Shell scripts count as non-executable.
-
- ! mkInstX This is how binary executable files get installed.
- ! I use hard links. This would be the place to strip
- ! symbol tables. Shell scripts are *not* considered
- ! to be executable.
-
- ! mkLaTeXPS This formats a LaTeX file, including BibTeX
- ! processing, all the way to a printable
- ! representation, which for me is PostScript. If
- ! you want some other final format, I would suggest
- ! writing a separate shell script. The FMTLATEX
- ! make variable has the name of this command as its
- ! value.
-
- + mkManPS This formats a manual entry to PostScript, using
- + TransScript. As with mkLaTeXPS, if
- + you want some other final format, I would suggest
- + writing a separate shell script. The FMTMAN
- + make variable has the name of this command as its
- + value.
- +
- If you write original software with these tools, you may also
- want to change mkDistO, which places files in the distribution
- directory. I use hard links for this. Also, the following are
- ***************
- *** 156,173 ****
- Set up the command search path to pick up the Bourne shell
- scripts. Rehash if necessary.
-
- ! Change directory into the actual compilation directory, e.g. cd
- ! sun34.
-
- Create an mk shell file. Make it executable. Here's a starting
- point for SunOS 4.x:
-
- ! DD=/usr/local/free-dist/howard/1/dist
- SRCS=`cd $DD; echo *`
- RM='rm -f'
- export DD SRCS RM
- ! make -f uMakefile
- ! exec make \
- CATMAN=catman \
- FMTLATEX=mkLaTeXPS \
- FMTMAN=mkManPS \
- --- 215,233 ----
- Set up the command search path to pick up the Bourne shell
- scripts. Rehash if necessary.
-
- ! Change directory into the actual compilation directory, e.g.
- ! % cd sun3-411.
-
- Create an mk shell file. Make it executable. Here's a starting
- point for SunOS 4.x:
-
- ! #!/bin/sh
- ! DD=/usr/local/free-dist/howard/2/dist
- SRCS=`cd $DD; echo *`
- RM='rm -f'
- export DD SRCS RM
- ! make -e -f uMakefile
- ! exec make -e \
- CATMAN=catman \
- FMTLATEX=mkLaTeXPS \
- FMTMAN=mkManPS \
- ***************
- *** 174,194 ****
- SLT=libhoward.so.`cat FREEZE.version` \
- $*
-
- -
- If you don't have a catman command, drop that line. FMTLATEX
- should be the name of a command to turn LaTeX source into
- whatever your printer prints; if you don't have one just drop
- it. Likewise, FMTMAN should be the name of a command to turn
- manual entries into printable form. If you don't have shared
- ! libraries, drop the SLT= line. Add any local changes you need
- ! here. If your C compiler doesn't understand different
- ! optimization levels, add CFLAGS=-O as an argument to the last
- ! make.
-
- Here is an alternate mk file for a system using GCC, and with
- results installed in more conventional places:
-
- ! DD=/usr/local/free-dist/howard/1/dist
- SRCS=`cd $DD; echo *`
- CC=gcc
- CFLAGS='-g -O -traditional'
- --- 234,266 ----
- SLT=libhoward.so.`cat FREEZE.version` \
- $*
-
- If you don't have a catman command, drop that line. FMTLATEX
- should be the name of a command to turn LaTeX source into
- whatever your printer prints; if you don't have one just drop
- it. Likewise, FMTMAN should be the name of a command to turn
- manual entries into printable form. If you don't have shared
- ! libraries, drop the SLT= line.
-
- + The mk shell script is the place to override any make
- + variables. Theoretically, you should never need to change the
- + MakeCommon, uMakefile, and Makefile files. MakeCommon contains
- + a few make variables used by both uMakefile and Makefile; it is
- + included by both. To override these, it is often easiest to
- + define them as environment variables exported from mk. For
- + example, the make variable RM is defined in MakeCommon, and
- + overridden in the mk example above. For make variables only
- + used in one of the makefiles (either uMakefile or Makefile but
- + not both), it's usually easier to pass the override value as a
- + command line argument to make. You can read through MakeCommon
- + and the first parts of uMakefile and Makefile to see what you
- + need to override. For example, if your C compiler doesn't
- + understand different optimization levels, add CFLAGS=-O as an
- + argument to the last make.
- +
- Here is an alternate mk file for a system using GCC, and with
- results installed in more conventional places:
-
- ! DD=/usr/local/free-dist/howard/2/dist
- SRCS=`cd $DD; echo *`
- CC=gcc
- CFLAGS='-g -O -traditional'
- ***************
- *** 195,202 ****
- INCLUDES=-I/usr/local/include
- RM='rm -f'
- export DD SRCS CC CFLAGS INCLUDES RM
- ! make -f uMakefile
- ! exec make \
- AID=/usr/local/lib \
- BID=/usr/local/bin \
- CATMAN=catman \
- --- 267,274 ----
- INCLUDES=-I/usr/local/include
- RM='rm -f'
- export DD SRCS CC CFLAGS INCLUDES RM
- ! make -e -f uMakefile
- ! exec make -e \
- AID=/usr/local/lib \
- BID=/usr/local/bin \
- CATMAN=catman \
- ***************
- *** 226,232 ****
- and can't do. It will also echo the values of a bunch of make
- variables. That's normal.
-
- ! Check out all the generated include files (*.i). Make sure they
- look reasonable.
-
- Install the include files:
- --- 298,304 ----
- and can't do. It will also echo the values of a bunch of make
- variables. That's normal.
-
- ! Look at all the generated include files (*.i). Make sure they
- look reasonable.
-
- Install the include files:
- ***************
- *** 246,257 ****
- Running "mk test" will compile all the test drivers. A few of
- the test drivers even do marginally useful things.
-
- ! Run "mk install" and you're finished.
-
-
- ANOMALIES
-
- ! GNU make is still (at version 3.54) somewhat buggy. It does not
- always pick up environment variables, so it is sometimes
- necessary to rewrite mk to pass them as command line arguments
- instead. Run "mk vars" to check that everything is all right.
- --- 318,335 ----
- Running "mk test" will compile all the test drivers. A few of
- the test drivers even do marginally useful things.
-
- ! Run "mk install" and you're finished. (Except that, if you're
- ! using my "version 0" convention, then you need to set up a
- ! symbolic link for it, e.g.:
- ! % cd ../..
- ! % rm -f 0
- ! % ln -s 2 0
- ! This makes version 0 point to version 2.)
-
-
- ANOMALIES
-
- ! GNU make is still (at version 3.59) somewhat buggy. It does not
- always pick up environment variables, so it is sometimes
- necessary to rewrite mk to pass them as command line arguments
- instead. Run "mk vars" to check that everything is all right.
- ***************
- *** 261,282 ****
- around this is to replace command foo by "env - foo". I needed
- to do this for ranlib in SunOS 4.0.1. It was OK in 4.0.3.
- Also, the Bourne shell sometimes seems to suffer from an excess
- ! of environment variables. Using the C shell instead is a
- ! possible workaround, e.g. pass SHELL=/usr/bin/csh on the command
- ! line. (IMHO, GNU make needs some way to indicate which
- variables should and should not be exported, e.g. something like
- "export" in the Bourne shell.)
-
- The documentation for atof(3) says errno is set to ERANGE on
- overflow and underflow. In SunOS 4.0.1, and perhaps other
- ! systems, errno is also sometimes set even without overflow, e.g.
- ! on an input of 0. As a workaround, pass DEFS=-DBADATOF to the
- ! last make in mk. This skips the check of errno. Unfortunately,
- ! this means overflow is *never* detected. This bug *seems* to
- ! have been fixed in SunOS 4.0.3.
- --
- Howard Gayle
- ! TN/ETX/T/BG
- Ericsson Telecom AB
- S-126 25 Stockholm
- Sweden
- --- 339,373 ----
- around this is to replace command foo by "env - foo". I needed
- to do this for ranlib in SunOS 4.0.1. It was OK in 4.0.3.
- Also, the Bourne shell sometimes seems to suffer from an excess
- ! of environment variables. Using BASH or the C shell instead is
- ! a possible workaround, e.g. pass SHELL=/usr/bin/csh on the
- ! command line. (IMHO, GNU make needs some way to indicate which
- variables should and should not be exported, e.g. something like
- "export" in the Bourne shell.)
-
- The documentation for atof(3) says errno is set to ERANGE on
- overflow and underflow. In SunOS 4.0.1, and perhaps other
- ! systems, errno is also sometimes set even without overflow,
- ! e.g. on an input of 0. As a workaround, pass DEFS=-DBADATOF to
- ! the last make in mk. This skips the check of errno.
- ! Unfortunately, this means overflow is *never* detected. This
- ! bug *seems* to have been fixed in SunOS 4.0.3.
- !
- !
- ! WHY NOT JUST NON-COMMERCIAL USE?
- !
- ! When I released version 1, several people wrote to me to argue
- ! that I should not use the GNU license but instead a simple
- ! statement that copying for non-commercial or non-profit use is
- ! permitted. One of the reasons I used the GNU license instead
- ! is that I did not want to prevent anyone from making money from
- ! my software. On the contrary, I'd be delighted to hear that
- ! people make money from my software.
- --
- Howard Gayle
- !
- ! Up to 9 April 1991:
- ! TN/ETX/TG/HL
- Ericsson Telecom AB
- S-126 25 Stockholm
- Sweden
- ***************
- *** 283,286 ****
- howard@ericsson.se
- uunet!ericsson.se!howard
- Phone: +46 8 719 5565
- ! FAX : +46 8 719 9598
- --- 374,388 ----
- howard@ericsson.se
- uunet!ericsson.se!howard
- Phone: +46 8 719 5565
- ! FAX : +46 8 719 8439
- !
- ! After 9 April 1991:
- ! HaL Computer Systems, Inc.
- ! 1315 Dell Avenue
- ! Campbell, California 95008
- ! USA
- ! Phone: +1 408 379 7000
- ! FAX : +1 408 379 5022
- ! Unfortunately, HaL isn't on the Net yet; when it does get on
- ! the Net, my email address will probably be something like
- ! howard@hal.com.
- EOF
-
- patch -c a2.3 << 'EOF'
- ***************
- *** 1,5 ****
- ! .\" $Header: a2.3,v 1.2 89/08/10 13:53:23 howard Exp $
- ! .TH A2 "3 -lhoward" "$Revision: 1.2 $" "Howard\'s C library" "Howard\'s C library"
- .SH NAME
- a2 \- convert Ada-syntax numeric literals to internal representations
- .SH SYNOPSIS
- --- 1,5 ----
- ! .\" $Header: /usr/local/dist/free-dist/howard/2/work/RCS/a2.3,v 1.3 91/02/27 05:44:52 howard Exp $
- ! .TH A2 "3 -lhoward" "$Revision: 1.3 $" "Howard\'s C library" "Howard\'s C library"
- .SH NAME
- a2 \- convert Ada-syntax numeric literals to internal representations
- .SH SYNOPSIS
- ***************
- *** 372,384 ****
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- .SH AUTHOR
- ! Howard Gayle,
- ! TN/ETX/T/BG,
- ! Ericsson Telecom AB,
- ! S-126 25 Stockholm,
- ! Sweden,
- ! howard@ericsson.se,
- ! uunet!ericsson.se!howard,
- ! Phone: +46 8 719 5565,
- ! FAX: +46 8 719 9598,
- ! Telex: 14910 ERIC S
- --- 372,375 ----
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- .SH AUTHOR
- ! Howard Gayle
- EOF
-
- patch -c b.bib << 'EOF'
- ***************
- *** 1,9 ****
- % b.bib - bibliography
- %
- ! % Copyright 1989 Howard Lee Gayle
- % This file is written in the ISO 8859/1 character set.
- %
- ! % $Header: b.bib,v 1.1 89/09/20 12:35:29 howard Exp $
- %
- % This program is free software; you can redistribute it and/or modify
- % it under the terms of the GNU General Public License version 1,
- --- 1,9 ----
- % b.bib - bibliography
- %
- ! % Copyright 1989, 1991 Howard Lee Gayle
- % This file is written in the ISO 8859/1 character set.
- %
- ! % $Header: /usr/local/dist/free-dist/howard/2/work/RCS/b.bib,v 1.3 91/04/03 13:11:31 howard Exp $
- %
- % This program is free software; you can redistribute it and/or modify
- % it under the terms of the GNU General Public License version 1,
- ***************
- *** 17,22 ****
- --- 17,40 ----
- % You should have received a copy of the GNU General Public License
- % along with this program; if not, write to the Free Software
- % Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- + @misc{Cannon:CStyle,
- + author = {L. W. Cannon and R. A. Elliott and L. W. Kirchhoff
- + and J. H. Miller and J. M. Milner and R. W. Mitze
- + and E. P. Schan and N. O. Whittington and Henry
- + Spencer and David Keppel and Mark Brader},
- + title = {Recommended {C} Style and Coding Standards},
- + howpublished = {Available by anonymous FTP from
- + cs.washington.edu as pub/cstyle.tar.Z.},
- + month = "June",
- + year = "1990"}
- + @misc{Dolenc:Portable,
- + author = "A. Dolenc and A. Lemmke and D. Keppel and G. V. Reilly",
- + title = "Notes on Writing Portable Programs in {C}",
- + howpublished = {Available by anonymous FTP from sauna.hut.fi
- + as pub/CompSciLab/doc/portableC.* and from cs.washington.edu
- + as pub/cport.tar.Z.},
- + month = "November",
- + year = "1990"}
- @book{Lapin,
- author = "J. E. Lapin",
- title = "Portable C and UNIX system programming",
- ***************
- *** 23,28 ****
- --- 41,57 ----
- publisher = "Prentice-Hall",
- year = "1987",
- address = "Englewood Cliffs, New Jersey"}
- + @inproceedings{Manheimer:Depot,
- + author = {Kenneth Manheimer and Barry A. Warsaw and
- + Stephen N. Clark and Walter Rowe},
- + title = {The Depot: A Framework for Sharing Software
- + Installation Across Organizational and UNIX
- + Platform Boundaries},
- + booktitle = {Proceedings of the fourth Large Installation
- + System Administration Conference},
- + year = "1990",
- + organization = "USENIX",
- + month = "October"}
- @article{Weiser:Source,
- author = "Mark Weiser",
- title = "Source Code",
- EOF
-
- patch -c cat-path.1 << 'EOF'
- ***************
- *** 1,5 ****
- ! .\" $Header: cat-path.1,v 1.1 89/09/21 10:52:02 howard Exp $
- ! .TH CAT-PATH 1 "$Revision: 1.1 $"
- .SH NAME
- cat-path \- search path for files and concatenate them
- .SH SYNOPSIS
- --- 1,5 ----
- ! .\" $Header: /usr/local/dist/free-dist/howard/2/work/RCS/cat-path.1,v 1.2 91/02/27 05:44:20 howard Exp $
- ! .TH CAT-PATH 1 "$Revision: 1.2 $"
- .SH NAME
- cat-path \- search path for files and concatenate them
- .SH SYNOPSIS
- ***************
- *** 40,52 ****
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- .SH AUTHOR
- ! Howard Gayle,
- ! TN/ETX/T/BG,
- ! Ericsson Telecom AB,
- ! S-126 25 Stockholm,
- ! Sweden,
- ! howard@ericsson.se,
- ! uunet!ericsson.se!howard,
- ! Phone: +46 8 719 5565,
- ! FAX: +46 8 719 9598,
- ! Telex: 14910 ERIC S
- --- 40,43 ----
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- .SH AUTHOR
- ! Howard Gayle
- EOF
-
- patch -c cia.1 << 'EOF'
- ***************
- *** 1,5 ****
- ! .\" $Header: cia.1,v 1.1 89/09/23 14:11:22 howard Exp $
- ! .TH CIA 1 "$Revision: 1.1 $"
- .SH NAME
- cia \- check files into RCS with strict locking
- .SH SYNOPSIS
- --- 1,5 ----
- ! .\" $Header: /usr/local/dist/free-dist/howard/2/work/RCS/cia.1,v 1.2 91/02/27 05:44:26 howard Exp $
- ! .TH CIA 1 "$Revision: 1.2 $"
- .SH NAME
- cia \- check files into RCS with strict locking
- .SH SYNOPSIS
- ***************
- *** 47,59 ****
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- .SH AUTHOR
- ! Howard Gayle,
- ! TN/ETX/T/BG,
- ! Ericsson Telecom AB,
- ! S-126 25 Stockholm,
- ! Sweden,
- ! howard@ericsson.se,
- ! uunet!ericsson.se!howard,
- ! Phone: +46 8 719 5565,
- ! FAX: +46 8 719 9598,
- ! Telex: 14910 ERIC S
- --- 47,50 ----
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- .SH AUTHOR
- ! Howard Gayle
- EOF
-
- patch -c copy-self.1 << 'EOF'
- ***************
- *** 1,5 ****
- ! .\" $Header: copy-self.1,v 1.2 89/09/20 13:58:12 howard Exp $
- ! .TH COPY-SELF 1 "$Revision: 1.2 $"
- .SH NAME
- copy-self \- copy files to files with same names
- .SH SYNOPSIS
- --- 1,5 ----
- ! .\" $Header: /usr/local/dist/free-dist/howard/2/work/RCS/copy-self.1,v 1.3 91/02/27 05:44:30 howard Exp $
- ! .TH COPY-SELF 1 "$Revision: 1.3 $"
- .SH NAME
- copy-self \- copy files to files with same names
- .SH SYNOPSIS
- ***************
- *** 51,63 ****
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- .SH AUTHOR
- ! Howard Gayle,
- ! TN/ETX/T/BG,
- ! Ericsson Telecom AB,
- ! S-126 25 Stockholm,
- ! Sweden,
- ! howard@ericsson.se,
- ! uunet!ericsson.se!howard,
- ! Phone: +46 8 719 5565,
- ! FAX: +46 8 719 9598,
- ! Telex: 14910 ERIC S
- --- 51,54 ----
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- .SH AUTHOR
- ! Howard Gayle
- EOF
-
- patch -c freeze.1 << 'EOF'
- ***************
- *** 1,5 ****
- ! .\" $Header: freeze.1,v 1.1 89/09/23 14:22:28 howard Exp $
- ! .TH FREEZE 1 "$Revision: 1.1 $"
- .SH NAME
- freeze \- record latest revisions of all RCS files in directory
- .SH SYNOPSIS
- --- 1,5 ----
- ! .\" $Header: /usr/local/dist/free-dist/howard/2/work/RCS/freeze.1,v 1.2 91/02/27 05:44:34 howard Exp $
- ! .TH FREEZE 1 "$Revision: 1.2 $"
- .SH NAME
- freeze \- record latest revisions of all RCS files in directory
- .SH SYNOPSIS
- ***************
- *** 53,65 ****
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- .SH AUTHOR
- ! Howard Gayle,
- ! TN/ETX/T/BG,
- ! Ericsson Telecom AB,
- ! S-126 25 Stockholm,
- ! Sweden,
- ! howard@ericsson.se,
- ! uunet!ericsson.se!howard,
- ! Phone: +46 8 719 5565,
- ! FAX: +46 8 719 9598,
- ! Telex: 14910 ERIC S
- --- 53,56 ----
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- .SH AUTHOR
- ! Howard Gayle
- EOF
-
- patch -c freeze.b << 'EOF'
- ***************
- *** 1,9 ****
-
- # freeze - update RCS FREEZE file
- #
- ! # $Header: freeze.b,v 1.8 89/09/21 19:21:19 howard Exp $
- #
- ! # Copyright 1989 Howard Lee Gayle
- # This file is written in the ISO 8859/1 character set.
- #
- # This program is free software; you can redistribute it and/or modify
- --- 1,9 ----
-
- # freeze - update RCS FREEZE file
- #
- ! # $Header: /usr/local/dist/free-dist/howard/2/work/RCS/freeze.b,v 1.9 91/02/27 09:38:28 howard Exp $
- #
- ! # Copyright 1989, 1991 Howard Lee Gayle
- # This file is written in the ISO 8859/1 character set.
- #
- # This program is free software; you can redistribute it and/or modify
- ***************
- *** 24,30 ****
-
- CMDNAME=freeze
- export CMDNAME
- ! u='Usage: $CMDNAME [-rRevision]'
- if [ $# -gt 1 ]
- then
- echo "$u" 1>&2
- --- 24,30 ----
-
- CMDNAME=freeze
- export CMDNAME
- ! u="Usage: $CMDNAME [-rRevision]"
- if [ $# -gt 1 ]
- then
- echo "$u" 1>&2
- ***************
- *** 32,38 ****
- fi
- if [ ! -d RCS ]
- then
- ! echo '$CMDNAME: no RCS directory' 1>&2
- exit 1
- fi
- if [ -f RCS/FREEZE,v ]
- --- 32,38 ----
- fi
- if [ ! -d RCS ]
- then
- ! echo "$CMDNAME: no RCS directory" 1>&2
- exit 1
- fi
- if [ -f RCS/FREEZE,v ]
- ***************
- *** 46,49 ****
- fi
- echo '========================================' >> FREEZE
- freeze0 RCS/*,v >> FREEZE
- ! ci $1 FREEZE < /dev/null && rcs -L FREEZE && co FREEZE
- --- 46,49 ----
- fi
- echo '========================================' >> FREEZE
- freeze0 RCS/*,v >> FREEZE
- ! ci -f $1 FREEZE < /dev/null && rcs -L FREEZE && co FREEZE
- EOF
-
- patch -c freeze0.b << 'EOF'
- ***************
- *** 1,9 ****
-
- # freeze0 - write name and revision of RCS files
- #
- ! # $Header: freeze0.b,v 1.6 89/09/21 19:21:28 howard Exp $
- #
- ! # Copyright 1989 Howard Lee Gayle
- # This file is written in the ISO 8859/1 character set.
- #
- # This program is free software; you can redistribute it and/or modify
- --- 1,9 ----
-
- # freeze0 - write name and revision of RCS files
- #
- ! # $Header: /usr/local/dist/free-dist/howard/2/work/RCS/freeze0.b,v 1.7 91/02/27 09:59:41 howard Exp $
- #
- ! # Copyright 1989, 1991 Howard Lee Gayle
- # This file is written in the ISO 8859/1 character set.
- #
- # This program is free software; you can redistribute it and/or modify
- ***************
- *** 23,29 ****
- # f - file name
- # u - usage string
-
- ! u='Usage: freeze0 file...'
- if [ $# -eq 0 ]
- then
- echo "$u" 1>&2
- --- 23,29 ----
- # f - file name
- # u - usage string
-
- ! u="Usage: freeze0 file..."
- if [ $# -eq 0 ]
- then
- echo "$u" 1>&2
- EOF
-
- patch -c freezePch.1 << 'EOF'
- ***************
- *** 1,5 ****
- ! .\" $Header: freezePch.1,v 1.2 89/09/25 07:01:32 howard Exp $
- ! .TH FREEZEPCH 1 "$Revision: 1.2 $"
- .SH NAME
- freezePch \- make a patch file from one revision to another
- .SH SYNOPSIS
- --- 1,5 ----
- ! .\" $Header: /usr/local/dist/free-dist/howard/2/work/RCS/freezePch.1,v 1.3 91/02/27 05:44:38 howard Exp $
- ! .TH FREEZEPCH 1 "$Revision: 1.3 $"
- .SH NAME
- freezePch \- make a patch file from one revision to another
- .SH SYNOPSIS
- ***************
- *** 71,83 ****
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- .SH AUTHOR
- ! Howard Gayle,
- ! TN/ETX/T/BG,
- ! Ericsson Telecom AB,
- ! S-126 25 Stockholm,
- ! Sweden,
- ! howard@ericsson.se,
- ! uunet!ericsson.se!howard,
- ! Phone: +46 8 719 5565,
- ! FAX: +46 8 719 9598,
- ! Telex: 14910 ERIC S
- --- 71,74 ----
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- .SH AUTHOR
- ! Howard Gayle
- EOF
-
- patch -c getlin.3 << 'EOF'
- ***************
- *** 1,5 ****
- ! .\" @(#)$Header: getlin.3,v 1.7 89/07/05 07:31:35 howard Exp $
- ! .TH GETLIN "3 -lhoward" "$Revision: 1.7 $" "Howard\'s C library" "Howard\'s C library"
- .SH NAME
- getlin, getlic \- read one line from a stream
- .SH SYNOPSIS
- --- 1,5 ----
- ! .\" @(#)$Header: /usr/local/dist/free-dist/howard/2/work/RCS/getlin.3,v 1.8 91/02/27 05:44:57 howard Exp $
- ! .TH GETLIN "3 -lhoward" "$Revision: 1.8 $" "Howard\'s C library" "Howard\'s C library"
- .SH NAME
- getlin, getlic \- read one line from a stream
- .SH SYNOPSIS
- ***************
- *** 123,135 ****
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- .SH AUTHOR
- ! Howard Gayle,
- ! TN/ETX/T/BG,
- ! Ericsson Telecom AB,
- ! S-126 25 Stockholm,
- ! Sweden,
- ! howard@ericsson.se,
- ! uunet!ericsson.se!howard,
- ! Phone: +46 8 719 5565,
- ! FAX: +46 8 719 9598,
- ! Telex: 14910 ERIC S
- --- 123,126 ----
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- .SH AUTHOR
- ! Howard Gayle
- EOF
-
- patch -c getpwf.3 << 'EOF'
- ***************
- *** 1,5 ****
- ! .\" $Header: getpwf.3,v 1.2 89/08/21 08:43:59 howard Exp $
- ! .TH GETPWF "3 -lhoward" "$Revision: 1.2 $" "Howard\'s C library" "Howard\'s C library"
- .SH NAME
- getpwf \- copy full name of user from password file entry
- .SH SYNOPSIS
- --- 1,5 ----
- ! .\" $Header: /usr/local/dist/free-dist/howard/2/work/RCS/getpwf.3,v 1.3 91/02/27 05:45:02 howard Exp $
- ! .TH GETPWF "3 -lhoward" "$Revision: 1.3 $" "Howard\'s C library" "Howard\'s C library"
- .SH NAME
- getpwf \- copy full name of user from password file entry
- .SH SYNOPSIS
- ***************
- *** 82,94 ****
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- .SH AUTHOR
- ! Howard Gayle,
- ! TN/ETX/T/BG,
- ! Ericsson Telecom AB,
- ! S-126 25 Stockholm,
- ! Sweden,
- ! howard@ericsson.se,
- ! uunet!ericsson.se!howard,
- ! Phone: +46 8 719 5565,
- ! FAX: +46 8 719 9598,
- ! Telex: 14910 ERIC S
- --- 82,85 ----
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- .SH AUTHOR
- ! Howard Gayle
- EOF
-
- patch -c hetero.tex << 'EOF'
- ***************
- *** 1,10 ****
- % hetero.tex - configuration management in a heterogeous net
- %
- ! % Copyright 1989 Howard Lee Gayle
- ! % This file is written in the ISO 8859/1 character set.
- %
- - % $Header: hetero.tex,v 1.2 89/09/20 13:03:18 howard Exp $
- - %
- % This program is free software; you can redistribute it and/or modify
- % it under the terms of the GNU General Public License version 1,
- % as published by the Free Software Foundation.
- --- 1,7 ----
- % hetero.tex - configuration management in a heterogeous net
- %
- ! % $Header: /usr/local/dist/free-dist/howard/2/work/RCS/hetero.tex,v 1.4 91/04/03 13:10:48 howard Exp $
- %
- % This program is free software; you can redistribute it and/or modify
- % it under the terms of the GNU General Public License version 1,
- % as published by the Free Software Foundation.
- ***************
- *** 21,35 ****
- \input gold-lt
- \input latin-lt
- \input unix-lt
- ! \global \def \today {$Revision: 1.2 $}
- \raggedright
- \arraycolsep 0pt
- \parskip 1.5ex
- \parindent 2em
- \title{Sharing software in a network of heterogeneous UNIX hosts}
- ! \author{Copyright \copyright\ 1989 Howard Lee Gayle
- \thanks{
- ! TN/ETX/T/BG,
- Ericsson Telecom~AB,
- S-126~25 Stockholm,
- Sweden,
- --- 18,33 ----
- \input gold-lt
- \input latin-lt
- \input unix-lt
- ! \global \def \today {$Revision: 1.4 $}
- \raggedright
- \arraycolsep 0pt
- \parskip 1.5ex
- \parindent 2em
- \title{Sharing software in a network of heterogeneous UNIX hosts}
- ! \author{Copyright \copyright\ 1989, 1991 Howard Lee Gayle
- \thanks{
- ! Up to 9~April~1991, my address is:
- ! TN/ETX/TG/HL,
- Ericsson Telecom~AB,
- S-126~25 Stockholm,
- Sweden,
- ***************
- *** 36,43 ****
- howard@ericsson.se,
- uunet!ericsson.se!howard,
- Phone: +46~8~719~5565,
- ! FAX: +46~8~719~9598,
- ! Telex: 14910~ERIC~S.}}
- \begin{document}
- \maketitle
- \begin{abstract}
- --- 34,51 ----
- howard@ericsson.se,
- uunet!ericsson.se!howard,
- Phone: +46~8~719~5565,
- ! FAX: +46~8~719~8439,
- ! Telex: 14910~ERIC~S.
- ! After 9~April~1991, my address is:
- ! HaL Computer Systems, Inc.,
- ! 1315 Dell Avenue,
- ! Campbell, California 95008,
- ! USA,
- ! Phone: +1~408~379~7000
- ! FAX: +1~408~379~5022
- ! Unfortunately, HaL isn't on the Net yet; when it does get on
- ! the Net, my email address will probably be something like
- ! howard@hal.com.}}
- \begin{document}
- \maketitle
- \begin{abstract}
- ***************
- *** 76,82 ****
- architectures, run different versions of the \UNIX\ system, or
- both.
- For example, an organization may have on its network Sun-3s
- ! and Sun-4s running SunOS~4.0,
- and VAXen running BSD~4.3.
-
- Most \UNIX\ software, as distributed, comes in a form
- --- 84,90 ----
- architectures, run different versions of the \UNIX\ system, or
- both.
- For example, an organization may have on its network Sun-3s
- ! and Sun-4s running SunOS~4.1.1,
- and VAXen running BSD~4.3.
-
- Most \UNIX\ software, as distributed, comes in a form
- ***************
- *** 88,97 ****
- is distributed, and writing new software.
- This report is not about how to write portable software;
- it {\em is} about what to do with portable software once you
- ! have it.
- ! (For an excellent treatment of how to write portable \UNIX\
- ! software, see
- ! \cite{Lapin}.)
-
- \chapter{Notation}
- In this report, a
- --- 96,107 ----
- is distributed, and writing new software.
- This report is not about how to write portable software;
- it {\em is} about what to do with portable software once you
- ! have
- ! it.\footnote{For an excellent treatment of how to write
- ! portable \UNIX\ software, see
- ! \cite{Lapin}.
- ! See also \cite{Cannon:CStyle} and
- ! \cite{Dolenc:Portable}.}
-
- \chapter{Notation}
- In this report, a
- ***************
- *** 108,116 ****
- In my examples I will use abbreviations for types such as
- these:
- \begin{description}
- ! \item[sun34] A Sun-3 running SunOS~4.$x$.
- ! \item[sun44] A Sun-4 running SunOS~4.$x$.
- ! \item[vax43] A DEC VAX-11 running BSD~4.3.
- \end{description}
- These are merely for illustration; each organization must
- choose suitable abbreviations.
- --- 118,126 ----
- In my examples I will use abbreviations for types such as
- these:
- \begin{description}
- ! \item[sun3-403] A Sun-3 running SunOS~4.0.3.
- ! \item[sun4-411] A Sun-4 running SunOS~4.1.1.
- ! \item[vax-43] A DEC VAX-11 running BSD~4.3.
- \end{description}
- These are merely for illustration; each organization must
- choose suitable abbreviations.
- ***************
- *** 135,141 ****
- 18.54,
- \etcP.
- At the same time, one could have parallel versions, say for
- ! Japanese, denoted 18.52-ja, 18.53-ja, 18.54-ja,
- \etcP.
-
- A
- --- 145,151 ----
- 18.54,
- \etcP.
- At the same time, one could have parallel versions, say for
- ! Japanese, denoted 18.52-jp, 18.53-jp, 18.54-jp,
- \etcP.
-
- A
- ***************
- *** 189,194 ****
- --- 199,208 ----
- continue to use an older version during a transition period.
- Users should be able to choose when to switch to a new version.
- \end{enumerate}
- + At Ericsson, responsibility for software system support is
- + widely distributed.
- + An organization with more centralized responsibility would
- + probably have somewhat different goals.
-
- \chapter{Mechanisms}
- \section{Master source virtual host(s)}
- ***************
- *** 212,219 ****
- where
- {\it type\/}
- is one of the type abbreviations above.
- ! For example, the free-sun34 virtual host has compiled versions for
- ! Sun-3s running SunOS~4.$x$.
-
- \section{File system}
- \subsection{Path to master source}
- --- 226,233 ----
- where
- {\it type\/}
- is one of the type abbreviations above.
- ! For example, the free-sun3-411 virtual host has compiled versions for
- ! Sun-3s running SunOS~4.1.1.
-
- \section{File system}
- \subsection{Path to master source}
- ***************
- *** 233,242 ****
- is the version identifier.
-
- At Ericsson there are actually two source-prefixes:
- ! /usr/local/free-dist and /usr/local/unfree-dist.
- For example, the master source for GNU Emacs version~18.54
- is on the free-dist virtual host in
- ! /usr/local/free-dist/gnu-emacs/18.54.
-
- \subsection{Path to compiled version}
- Each compiled version also gets its own directory on the
- --- 247,256 ----
- is the version identifier.
-
- At Ericsson there are actually two source-prefixes:
- ! /export/free/dist and /export/unfree/dist.
- For example, the master source for GNU Emacs version~18.54
- is on the free-dist virtual host in
- ! /export/free/dist/gnu-emacs/18.54.
-
- \subsection{Path to compiled version}
- Each compiled version also gets its own directory on the
- ***************
- *** 246,258 ****
-
- At Ericsson,
- {\it compiled-prefix\/}
- ! is either /usr/local/free or /usr/local/unfree.
- For example, the compiled GNU Emacs version~18.54 is in
- ! /usr/local/free/gnu-emacs/18.54
- on
- {\em every}
- ! host.
-
- \subsection{Currently recommended version}
- Compiled version~0 is an abbreviation for the currently
- recommended version on a given host.
- --- 260,292 ----
-
- At Ericsson,
- {\it compiled-prefix\/}
- ! is /f for free software and public domain software, and
- ! /u for other software.
- For example, the compiled GNU Emacs version~18.54 is in
- ! /f/gnu-emacs/18.54
- on
- {\em every}
- ! host on which it is installed.
-
- + Initially, we used /usr/local/free and /usr/local/unfree as our
- + compiled-prefixes, since /usr/local is the conventional place
- + for third-party software.
- + However, there are two advantages to short compiled-prefixes.
- + Users who want complete control over system version selection
- + end up with long command search paths; a short compiled-prefix
- + makes these shorter.
- + Also, most \UNIX\ versions have a limit of 32~characters for
- + the path of a command interpreter in an executable file.
- + For example,
- + \begin{verbatim}
- + #! /f/perl/3.0.44/bin/perl
- + \end{verbatim}
- + works whereas
- + \begin{verbatim}
- + #! /usr/local/free/perl/3.0.44/bin/perl
- + \end{verbatim}
- + is too long.
- +
- \subsection{Currently recommended version}
- Compiled version~0 is an abbreviation for the currently
- recommended version on a given host.
- ***************
- *** 298,308 ****
- For example, a site could have a symbolic link from
- /usr/local/bin/emacs
- to
- ! /usr/local/free/gnu-emacs/0/bin/emacs,
- and a symbolic link from
- /usr/local/man/man1/emacs.1
- to
- ! /usr/local/free/gnu-emacs/0/man/emacs.1.
- Then users who wish to use the versions selected by the system
- administrators need only add /usr/local/bin to their command
- search paths and /usr/local/man to the values of their MANPATH
- --- 332,342 ----
- For example, a site could have a symbolic link from
- /usr/local/bin/emacs
- to
- ! /f/gnu-emacs/0/bin/emacs,
- and a symbolic link from
- /usr/local/man/man1/emacs.1
- to
- ! /f/gnu-emacs/0/man/emacs.1.
- Then users who wish to use the versions selected by the system
- administrators need only add /usr/local/bin to their command
- search paths and /usr/local/man to the values of their MANPATH
- ***************
- *** 329,340 ****
- Local file system sharing is possible when several virtual
- hosts are implemented by one physical host.
- For example, if the physical host that implements a master source
- ! virtual host is a sun44, then the same physical host can
- ! implement a sun44 type virtual host.
- In addition, the compiled versions the host makes available are
- executable by the host's own users.
-
- ! Network copying uses command such as rdist or ftp to copy files
- over a network.\footnote{Copying by other means, \eg\ tape,
- could also be used, but is outside the scope of this report.}
-
- --- 363,374 ----
- Local file system sharing is possible when several virtual
- hosts are implemented by one physical host.
- For example, if the physical host that implements a master source
- ! virtual host is a sun4-411, then the same physical host can
- ! implement a sun4-411 type virtual host.
- In addition, the compiled versions the host makes available are
- executable by the host's own users.
-
- ! Network copying uses commands such as rdist or ftp to copy files
- over a network.\footnote{Copying by other means, \eg\ tape,
- could also be used, but is outside the scope of this report.}
-
- ***************
- *** 345,351 ****
-
- At Ericsson all three file distribution mechanisms are used.
- The same physical host currently implements the free-dist,
- ! unfree-dist, free-sun34, and unfree-sun34 virtual hosts.
- NFS distribution is used to other hosts with NFS.
- Hosts without NFS use rdist.
- Sites are encouraged to have local copies of executables, not
- --- 379,385 ----
-
- At Ericsson all three file distribution mechanisms are used.
- The same physical host currently implements the free-dist,
- ! unfree-dist, free-sun3-411, and unfree-sun3-411 virtual hosts.
- NFS distribution is used to other hosts with NFS.
- Hosts without NFS use rdist.
- Sites are encouraged to have local copies of executables, not
- ***************
- *** 366,378 ****
- and the executables for the currently recommended version are
- in
- /net/free/gnu-emacs/0.
- ! Hosts running Sun's automounter system use that for /net.
- Other hosts with NFS but without automounter simply NFS-mount
- on subdirectories of /net.
-
- \section{Permissions}
- Each system can be supported by a different team.
- ! In fact, each each (system,~type) pair can be supported by a
- different team.
- Teams can be implemented by \UNIX\ groups.
-
- --- 400,413 ----
- and the executables for the currently recommended version are
- in
- /net/free/gnu-emacs/0.
- ! Hosts running Sun's automounter system use it to mount
- ! subdirectories of /net on demand.
- Other hosts with NFS but without automounter simply NFS-mount
- on subdirectories of /net.
-
- \section{Permissions}
- Each system can be supported by a different team.
- ! In fact, each (system,~type) pair can be supported by a
- different team.
- Teams can be implemented by \UNIX\ groups.
-
- ***************
- *** 390,396 ****
- \item How does one contact the support team?
- \end{enumerate}
- At Ericsson, the support team places this information in a
- ! README file directly under the system directory.
- For example, on any host with NFS, a system administrator can
- get this information about GNU Emacs by reading
- /net/free-dist/gnu-emacs/README.
- --- 425,431 ----
- \item How does one contact the support team?
- \end{enumerate}
- At Ericsson, the support team places this information in a
- ! README file directly under the master source system directory.
- For example, on any host with NFS, a system administrator can
- get this information about GNU Emacs by reading
- /net/free-dist/gnu-emacs/README.
- ***************
- *** 400,406 ****
- must still know what files to copy where.
- At Ericsson, for each type virtual host, the support team
- places this information in a README file directly under the
- ! system directory.
- For example, on any host with NFS, a system administrator can
- get this information about GNU Emacs by reading
- /net/free/gnu-emacs/README.
- --- 435,441 ----
- must still know what files to copy where.
- At Ericsson, for each type virtual host, the support team
- places this information in a README file directly under the
- ! compiled version system directory.
- For example, on any host with NFS, a system administrator can
- get this information about GNU Emacs by reading
- /net/free/gnu-emacs/README.
- ***************
- *** 485,491 ****
- find . -type f -print | xargs chmod a-w
- \end{verbatim}
- This will reduce the risk of changing master source when
- ! editing in local changes.
- It also makes it easier to see which files have been changed locally.
- \item If necessary, create a README file directly under the
- system directory, \eg\ /usr/local/free-dist/gnu-emacs/README.
- --- 520,526 ----
- find . -type f -print | xargs chmod a-w
- \end{verbatim}
- This will reduce the risk of changing master source when
- ! editing files to make local changes.
- It also makes it easier to see which files have been changed locally.
- \item If necessary, create a README file directly under the
- system directory, \eg\ /usr/local/free-dist/gnu-emacs/README.
- ***************
- *** 535,546 ****
- \item Set the umask.
- \item Copy the file system hierarchy from the master source
- version to the version for this type.
- ! If hard or symbolic links can be used, my lnR command can be
- used.
- \item Create a log file under the version directory to record
- details of the installation for future use.
- - If there was already a log file in the master version, remove
- - it.
- If this is not the first installation of a system, it is often
- convenient to copy the log file from the previous installation,
- and then edit
- --- 570,579 ----
- \item Set the umask.
- \item Copy the file system hierarchy from the master source
- version to the version for this type.
- ! If hard links are used, my lnR command can be
- used.
- \item Create a log file under the version directory to record
- details of the installation for future use.
- If this is not the first installation of a system, it is often
- convenient to copy the log file from the previous installation,
- and then edit
- ***************
- *** 572,578 ****
- definitions, it is often more convenient to leave the Makefile
- unchanged and instead override the definitions with command
- line arguments to make.
- ! The exact command should be logged for future use.
- \item Perform the system-specific installation procedures.
- It is often desirable to bypass the actual installation phase
- (\eg\ make install), and instead do this part by hand.
- --- 605,611 ----
- definitions, it is often more convenient to leave the Makefile
- unchanged and instead override the definitions with command
- line arguments to make.
- ! The exact make command and its arguments should be logged for future use.
- \item Perform the system-specific installation procedures.
- It is often desirable to bypass the actual installation phase
- (\eg\ make install), and instead do this part by hand.
- ***************
- *** 650,657 ****
- INCLUDES='-I/usr/local/local-include -I../../../howard/0'
- WORK=RCS
- export DD SRCS INCLUDES WORK
- ! make -f uMakefile
- ! exec make -k \
- CFLAGS='-g -Bstatic' \
- FMTLATEX=mkLaTeXPS \
- FMTMAN=mkManPS \
- --- 683,690 ----
- INCLUDES='-I/usr/local/local-include -I../../../howard/0'
- WORK=RCS
- export DD SRCS INCLUDES WORK
- ! make -e -f uMakefile
- ! exec make -e -k \
- CFLAGS='-g -Bstatic' \
- FMTLATEX=mkLaTeXPS \
- FMTMAN=mkManPS \
- ***************
- *** 679,685 ****
- The fourth line sets the WORK environment variable, indicating
- development rather than installation.
- These environment variables are exported, and GNU make is run
- ! using uMakefile.
- This will update the depend file if necessary.
- Then make is run again using the main makefile.
- It is given a number of command-line variable definitions for
- --- 712,718 ----
- The fourth line sets the WORK environment variable, indicating
- development rather than installation.
- These environment variables are exported, and GNU make is run
- ! on uMakefile.
- This will update the depend file if necessary.
- Then make is run again using the main makefile.
- It is given a number of command-line variable definitions for
- ***************
- *** 695,701 ****
- \etcP.
- The makefiles do not need to be changed when a new source file
- is added, nor do developers ever have to remember to run a
- ! ``make depend'' command.
-
- Of course, all this automation has its price, and on slow
- hardware the price may be too high.
- --- 728,734 ----
- \etcP.
- The makefiles do not need to be changed when a new source file
- is added, nor do developers ever have to remember to run a
- ! ``make depend'' command manually.
-
- Of course, all this automation has its price, and on slow
- hardware the price may be too high.
- ***************
- *** 781,793 ****
- links into the distribution directory,
- but mk must be unique for each type, since mk contains all
- type-specific information.
- ! For example, here is an mk shell file for a sun34 type for cz:
- \begin{verbatim}
- DD='/net/free-dist/cz/2/dist'
- SRCS=`cd $DD; echo *`
- export DD SRCS
- ! make -f uMakefile
- ! exec make \
- $*
- \end{verbatim}
- Here, the value of the SRCS environment variable is a list of
- --- 814,826 ----
- links into the distribution directory,
- but mk must be unique for each type, since mk contains all
- type-specific information.
- ! For example, here is an mk shell file for a sun3-411 type for cz:
- \begin{verbatim}
- DD='/net/free-dist/cz/2/dist'
- SRCS=`cd $DD; echo *`
- export DD SRCS
- ! make -e -f uMakefile
- ! exec make -e \
- $*
- \end{verbatim}
- Here, the value of the SRCS environment variable is a list of
- ***************
- *** 810,815 ****
- --- 843,862 ----
- links, symbolic links, or copies, and to execute any other
- commands needed.
- For example, mkInstX can run strip.
- +
- + \chapter{Related work}
- + The
- + {\it depot\/}\cite{Manheimer:Depot}
- + is an independent approach to solving many of the problems
- + addressed by this report.
- + A key difference is that, in the depot, there is a directory
- + for each supported type under each system directory.
- + This arrangement is simpler than the one described above, but
- + it requires that a single team support all types.
- + It is thus more appropriate for smaller or more centralized
- + organizations.
- + Also, the depot does not have a general version selection
- + scheme, merely a simple two-version scheme (develop and primary).
-
- \bibliography{b}
- \bibliographystyle{alpha}
- EOF
-
- exit 0 # Just in case...
- --
- Kent Landfield INTERNET: kent@sparky.IMD.Sterling.COM
- Sterling Software, IMD UUCP: uunet!sparky!kent
- Phone: (402) 291-8300 FAX: (402) 291-4362
- Please send comp.sources.misc-related mail to kent@uunet.uu.net.
-