path: root/
diff options
authorManoj Srivastava <>2008-05-30 12:42:47 -0700
committerManoj Srivastava <>2008-05-30 12:42:47 -0700
commitceb3507a8fca872770b3dcd7e5c5b36179ab95b0 (patch)
treeb46b4e25cfff5f4c13a330b8428ceed343e3796c /
Import dist_3.5-236.orig.tar.gz
[dgit import orig dist_3.5-236.orig.tar.gz]
Diffstat (limited to '')
1 files changed, 317 insertions, 0 deletions
diff --git a/ b/
new file mode 100644
index 0000000..bfee179
--- /dev/null
+++ b/
@@ -0,0 +1,317 @@
+''' $Id$
+''' Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi
+''' You may redistribute only under the terms of the Artistic Licence,
+''' as specified in the README file that comes with the distribution.
+''' You may reuse parts of this distribution only within the terms of
+''' that same Artistic Licence; a copy of which may be found at the root
+''' of the source tree for dist 4.0.
+''' $Log:,v $
+''' Revision 1995/05/12 11:57:53 ram
+''' patch54: updated my e-mail address
+''' Revision 1994/10/29 15:46:03 ram
+''' patch36: mentions new patlog script and ChangeLog file
+''' Revision 1994/05/06 13:54:17 ram
+''' patch23: extended copyright notice to 1994
+''' patch23: new script kitpost
+''' Revision 1994/01/24 13:55:41 ram
+''' patch16: documents profile and its components
+''' Revision 1993/11/10 17:31:03 ram
+''' patch14: added mention for new confmagic.h file
+''' Revision 1993/08/24 12:12:00 ram
+''' patch3: added entries for patnotify and patsnap
+''' Revision 3.0 1993/08/18 12:04:07 ram
+''' Baseline for dist 3.0 netwide release.
+''' Ex \" Start of Example
+.sp +5
+.. Ef \" End of Example
+.sp -5
+.TH DIST 1 ram
+dist \- introduction to dist
+The \fIdist\fR package is a set of tools meant to ease the construction and
+maintenance of portable software. There are four distinct parts in \fIdist\fR,
+and it is also meant to be used with two external products, which are
+publicly available: \fImailagent\fR and \fIpatch\fR.
+The first component is the \fIConfigure\fR script generator, which is a
+portability tool. It is automatically build up by \fImetaconfig\fR from your
+sources and a set of units. Ideally, the end-user receiving your source code
+will simply have to read your README file, run the \fIConfigure\fR script
+(which is self-documented), and then run \fImake\fR. Your package should then
+build cleanly on every UNIX platform.
+The second component is the \fIMakefile.SH\fR generator, which is a generic
+configured Makefile, reusing some of the information figured out by
+.I Configure.
+Although you may write your own Makefile and then use \fImakeSH\fR to transform
+it into a \fIMakefile.SH\fR, it is better to write a generic \fIJmakefile\fR
+description, which does not rely on a particular position within the source
+tree, and then use \fIjmake\fR to recursively build your Makefiles.
+The third component is the package generator, which is used when it's time
+to build up the shell archives used to distribute your program. Although you
+may use your own archiving mechanism, the one included here knows about RCS
+files and will properly check out the lattest revisions, leaving your working
+files alone. The \fImakedist\fR program will also perform Copyright expansion,
+an useful feature when you share source files among more than one program,
+placed under distinct Copyright information.
+The fourth and latest component is the patch generator, used to make updates
+of your sources, which can later be applied on the original distribution by
+using the \fIpatch\fR program.
+Before using any of the \fIdist\fR programs, you should probably identify your
+package by running the \fIpackinit\fR program, which will create
+a \fI.package\fR file in the top-level directory of your package.
+The \fIdist\fR package implements the following commands (those
+tagged as \fIlibrary\fR commands are to be found in the dist
+library and should not be made publicly available in everyone's path):
+.TP 15
+builds the \fIIndex\fR file (library).
+.PD 0
+a Makefile.SH generator.
+bootstraps top-level Makefile.SH file.
+posts distribution kits made by \fImakedist\fR.
+sends distribution kits made by \fImakedist\fR.
+wraps existing scripts into a .SH file.
+builds up distribution kits.
+builds the \fIGlossary\fR file (library).
+checks accuracy
+makes out of an existing MANIFEST.
+builds reports.
+a Configure script generator.
+a metaconfig unit consistency checker.
+a metaconfig cross-reference builder.
+initializes a package (creates a .package file).
+main patch generator.
+resets patch base to current version.
+checks new version in.
+remove working version of up-to-date files.
+checks file out.
+builds (contextual) diffs for the patch.
+copies patches to public ftp directory.
+builds a patch index.
+handles ChangeLog file updates.
+puts diffs together into a patch.
+notifies users that new patches have been released.
+posts patch to some newsgroup.
+mails patch to some people.
+builds a release snapshot with files and RCS revisions.
+Commands having a set of meaningful options (other
+than \fB\-h\fR or \fB\-V\fR) can also take arguments from
+the \fI~/.dist_profile\fR file, or whatever file the \fIDIST\fR
+environment variable points to. Each line of the file is in the
+profile-component: \fIvalue\fR
+whith shell-style comments (#) allowed provided they start the line.
+Each command looks for a profile component entry matching its
+name and loads the \fIvalue\fR as if it were arguments specified
+on the command line. Those arguments precede any other argument
+specified manually, in case order is meaningful.
+Some commands may also be configured from within the profile, by setting
+a specific \fIvariable\fR attached to the command by a profile
+entry looking like this:
+cmdname-\fIvariable\fR: \fIvalue\fR
+For instance, assuming the variable \fIc-files\fR is recognized by the
+\fImetaconfig\fR program, its default value could be overwritten by
+this profile entry:
+metaconfig-c-files: \fIsuitable value\fR
+Only the first '-' after the command name is part of the syntax, the
+other one used in the variable name is pure convention. Please refer to the
+manual page of each command for a list of valid profile variables
+which may be set.
+.PD 0
+.TP 15
+Temporary directory created by \fImetaconfig\fR and friends.
+A list of files newer than \fIpatchlevel.h\fR, used by the patching tools.
+Main configuration file used by most of the dist tools to make them smart.
+The file where changes are recorded. Its name may be configured by
+running \fIpackinit\fR, but this is the default "generic" name under
+which it is referred to within the documentation.
+The generated configuration script.
+A list of all the known portability symbols known by \fImetaconfig\fR. This
+file is located in the dist library directory.
+Cross-reference file generated by \fImetaxref\fR, sorted by file, unit, item.
+Cross-reference file generated by \fImetaxref\fR, sorted by unit, item, file.
+A list of all the rules known by \fIjmake\fR. This file is located in the
+dist library directory.
+Generic makefile description used by \fIjmake\fR.
+List of all the files to be included in the distribution. Usually a copy (not
+a link) of
+List of all the files to be taken into account by the dist tools.
+The generated configured makefile (via Jmakefile) or hand-generated Makefile
+making use of known metaconfig symbols.
+A list of obsolete symbol used and their new equivalents.
+Directory where RCS files are stored.
+Main file explaining how to build your package.
+Private unit directory.
+File used by \fImetaconfig\fR, listing all the symbols used by the sources.
+Directory where patches are stored.
+Extra files present in, generated by \fImanicheck\fR.
+Missing files from, generated by \fImanicheck\fR.
+Generated config.h template.
+Magic symbol remapping, activated via metaconfig's \fB\-M\fR option.
+This directory lists all the configuration hints for your package.
+File recording your package patch level, should not be part of,
+but may be listed in MANIFEST, at your discretion.
+File recording the users of your package, generated by mailagent's \fIpackage\fR
+command (see the MailAuthor.U unit and mailagent 3.0).
+The following environment variable is paid attention to:
+.TP 15
+Location of the dist profile, defaults to ~/.dist_profile. This variable is
+subject to ~name substitution, even if your shell does not support it.
+By chronological order:
+Larry Wall <> (dist 2.0 in 1988)
+Harlan Stenn <> (worked on dist 3.0 1990-1992)
+Raphael Manfredi <> (dist 3.0 and
+integration 1991-1995)
+Please look at the \fICredits\fR file in the distribution source tree for a
+list of all the known contributors.
+jmake(1), metaconfig(1), pat(1).