===================
Distribution format
===================

A typical FreeBSD distribution directory looks something like this:

ABOUT.TXT       bin             dict            manpages        tools
HARDWARE.TXT    compat1x        des             doc             packages
INSTALL.TXT     compat20        floppies        ports
README.TXT      compat21        games           proflibs
RELNOTES.TXT    compat22        info            src
LAYOUT.TXT      XF86333

If you want to do a CDROM, FTP or NFS installation from this distribution
directory, all you need to do is make a pair of 1.44Mb floppies from the
floppies/kern.flp and floppies/mfsroot.flp image files (see
floppies/README.TXT for instructions on how to do this), boot the
kern.flp image and follow the instructions.  See INSTALL.TXT for more
information on all of this.

If you're trying to do some other type of installation or are merely
curious about how a distribution is organized, what follows is a more
thorough description of each item in more detail:

1. The *.TXT files obviously contain documentation (this file is
   LAYOUT.TXT) and should be read before starting an installation.

2. The XF86333 directory contains the XFree86 project's 3.3.3.1 release and
   consists of a series of gzip'd tar files which contain each component
   of the XFree86 distribution.

3. The bin, dict, des, doc, games, info, manpages, proflibs, and src
   directories contain the primary distribution components of FreeBSD
   itself and are split into smaller files for easy packing onto floppies
   (should that be necessary).

4. The compat1x, compat20, compat21 and compat22 directories contain
   distributions for compatibility with older releases and are distributed
   as single gzip'd tar files - they can be installed during release time
   or later by running their `install.sh' scripts.  Those wishing to
   run older (2.2.x) a.out dynamically linked executables should always
   install the compat22 distribution.

5. The floppies subdirectory also contains the floppy installation images
   and the floppies/README.TXT file should be read for further
   information on using them.

6. The packages and ports directories contain the FreeBSD packages and
   ports collections.  Packages may be installed from the packages
   directory by running the command: ``/stand/sysinstall configPackages''
   or by feeding individual filenames in packages/ to the pkg_add(1)
   command.

   The ports collection may be installed like any other distribution
   and requires about 50MB unpacked.  More information on the ports
   collection may be obtained from http://www.freebsd.org/ports or
   locally from ``file:/usr/share/doc/handbook'' if you've installed
   the doc distribution.

7. Last of all, the tools directory contains various DOS tools for
   discovering disk geometries, installing boot managers and the like.
   It is purely optional and provided only for user convenience.

A typical distribution (we'll use the info distribution as an example)
looks like this internally:

CHECKSUM.MD5    info.ab         info.ad         info.inf        install.sh
info.aa         info.ac         info.ae         info.mtree

The CHECKSUM.MD5 file contains MD5 signatures for each file, should
data corruption be suspected, and is purely for reference. It is not
used by the actual installation and does not need to be copied with
the rest of the distribution files.  The info.a* files are split,
gzip'd tar files, the contents of which can be viewed by doing:

        cat info.a* | tar tvzf -

During installation, they are automatically concatenated and extracted
by the installation procedure.

The info.inf file is also necessary since it is read by the installation
program in order to figure out how many pieces to look for when fetching and
concatenating the distribution.  When putting distributions onto floppies,
the .inf file MUST occupy the first floppy of each distribution set!

The info.mtree file is another non-essential file which is provided
for user reference.  It contains the MD5 signatures of the *unpacked*
distribution files and can be later used with the mtree(1) program
to verify the installation permissions and checksums against any possible
modifications to the file.  When used with the bin distribution, this can
be an excellent way of detecting trojan horse attacks on your system.

Finally, the install.sh file is for use by those who want to install the
distribution after installation time.  To install the info distribution from
CDROM after a system was installed, for example, you'd do:

                cd /cdrom/info
                sh install.sh

And that's all there is to it!  Each distribution contains its own
install.sh file for this.