dist(7)

NAME

   dist - introduction to dist

DESCRIPTION

   The  dist  package is a set of tools meant to ease the construction and
   maintenance of portable software. There  are  four  distinct  parts  in
   dist, and it is also meant to be used with two external products, which
   are publicly available: mailagent and patch.

   The first component is the  Configure  script  generator,  which  is  a
   portability  tool. It is automatically build up by metaconfig 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 Configure
   script (which is self-documented), and  then  run  make.  Your  package
   should then build cleanly on every UNIX platform.

   The  second  component is the Makefile.SH generator, which is a generic
   configured Makefile, reusing some of the  information  figured  out  by
   Configure.   Although  you  may  write  your  own Makefile and then use
   makeSH to transform it into a Makefile.SH, it  is  better  to  write  a
   generic  Jmakefile  description,  which  does  not rely on a particular
   position within the source tree, and  then  use  jmake  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 makedist 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 patch program.

   Before using any of the dist programs,  you  should  probably  identify
   your  package  by  running  the  packinit  program, which will create a
   .package file in the top-level directory of your package.

COMMANDS

   The dist package implements the following  commands  (those  tagged  as
   library  commands are to be found in the dist library and should not be
   made publicly available in everyone's path):

   bindex         builds the Index file (library).
   jmake          a Makefile.SH generator.
   jmkmf          bootstraps top-level Makefile.SH file.
   kitpost        posts distribution kits made by makedist.
   kitsend        sends distribution kits made by makedist.
   makeSH         wraps existing scripts into a .SH file.
   makedist       builds up distribution kits.
   makegloss      builds the Glossary file (library).
   manicheck      checks MANIFEST.new accuracy
   manifake       makes MANIFEST.new out of an existing MANIFEST.
   manilist       builds MANIFEST.new reports.
   metaconfig     a Configure script generator.
   metalint       a metaconfig unit consistency checker.
   metaxref       a metaconfig cross-reference builder.
   packinit       initializes a package (creates a  .package file).
   pat            main patch generator.
   patbase        resets patch base to current version.
   patcil         checks new version in.
   patclean       remove working version of up-to-date files.
   patcol         checks file out.
   patdiff        builds (contextual) diffs for the patch.
   patftp         copies patches to public ftp directory.
   patindex       builds a patch index.
   patlog         handles ChangeLog file updates.
   patmake        puts diffs together into a patch.
   patnotify      notifies users that new patches have been released.
   patpost        posts patch to some newsgroup.
   patsend        mails patch to some people.
   patsnap        builds a release snapshot with files and RCS revisions.

PROFILE

   Commands having a set of meaningful options (other than -h or  -V)  can
   also take arguments from the ~/.dist_profile file, or whatever file the
   DIST environment variable points to. Each line of the file  is  in  the
   format:

        profile-component: value

   whith shell-style comments (#) allowed provided they start the line.

   Each  command looks for a profile component entry matching its name and
   loads the value 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 variable attached to the command by a profile entry
   looking like this:

        cmdname-variable: value

   For instance, assuming  the  variable  c-files  is  recognized  by  the
   metaconfig  program,  its  default  value  could be overwritten by this
   profile entry:

        metaconfig-c-files: suitable value

   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.

FILES

   .MT            Temporary directory created by metaconfig and friends.
   .newer         A  list  of  files  newer than patchlevel.h, used by the
                  patching tools.
   .package       Main configuration file used by most of the  dist  tools
                  to make them smart.
   ChangeLog      The  file  where  changes  are recorded. Its name may be
                  configured by running packinit, but this is the  default
                  "generic"  name under which it is referred to within the
                  documentation.
   Configure      The generated configuration script.
   Glossary       A list of all the known  portability  symbols  known  by
                  metaconfig.  This  file  is  located in the dist library
                  directory.
   I.fui          Cross-reference file generated by  metaxref,  sorted  by
                  file, unit, item.
   I.uif          Cross-reference  file  generated  by metaxref, sorted by
                  unit, item, file.
   Index          A list of all the rules known by  jmake.  This  file  is
                  located in the dist library directory.
   Jmakefile      Generic makefile description used by jmake.
   MANIFEST       List   of   all   the   files  to  be  included  in  the
                  distribution.  Usually  a   copy   (not   a   link)   of
                  MANIFEST.new.
   MANIFEST.new   List  of  all  the files to be taken into account by the
                  dist tools.
   Makefile.SH    The generated configured  makefile  (via  Jmakefile)  or
                  hand-generated  Makefile  making use of known metaconfig
                  symbols.
   Obsolete       A  list  of  obsolete  symbol   used   and   their   new
                  equivalents.
   RCS            Directory where RCS files are stored.
   README         Main file explaining how to build your package.
   U              Private unit directory.
   Wanted         File used by metaconfig, listing all the symbols used by
                  the sources.
   bugs           Directory where patches are stored.
   check.extra    Extra  files  present  in  MANIFEST.new,  generated   by
                  manicheck.
   check.want     Missing files from MANIFEST.new, generated by manicheck.
   config_h.SH    Generated config.h template.
   confmagic.h    Magic  symbol  remapping,  activated via metaconfig's -M
                  option.
   hints          This directory lists all  the  configuration  hints  for
                  your package.
   patchlevel.h   File  recording  your package patch level, should not be
                  part of MANIFEST.new, but may be listed in MANIFEST,  at
                  your discretion.
   users          File  recording  the users of your package, generated by
                  mailagent's package command (see the  MailAuthor.U  unit
                  and mailagent 3.0).

ENVIRONMENT

   The following environment variable is paid attention to:

   DIST           Location    of    the    dist   profile,   defaults   to
                  ~/.dist_profile.  This  variable  is  subject  to  ~name
                  substitution, even if your shell does not support it.

AUTHORS

   By chronological order:

   Larry Wall <[email protected]> (dist 2.0 in 1988)
   Harlan Stenn <[email protected]> (worked on dist 3.0 1990-1992)
   Raphael   Manfredi   <[email protected]>   (dist   3.0   and
   integration 1991-1995)

   Please look at the Credits file in the distribution source tree  for  a
   list of all the known contributors.

SEE ALSO

   jmake(1), metaconfig(1), pat(1).

                                  ram                              DIST(7)



Opportunity


Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.

Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.


Free Software


Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.

Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.


Free Books


The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.

Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.


Education


Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.

Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.