SPEC FILE ADDITIONS
===================

A few additions have been made to the spec file format.

Summary and Description
-----------------------

The Summary: tag should be use to give a short (50 char or so) summary
of the package.  Most package's Description: line should be changed to
a Summary: line.  The Description: tag is still supported but should
be changed to a "%description" entry similar to %package and %files.
At some point in the future support will be removed for "Description:".
As an example, this spec file fragment:

  Description: Screen drawing library
  Name: screenlib
  Version: 1.0

  %package devel
  Description: Screen drawing library headers and static libs

might be changed to:

  Summary: Screen drawing library
  Name: screenlib
  Version: 1.0

  %description
  The screen drawing library
  is a handy development tool

  %package devel
  Summary: Screen drawing library headers and static libs

  %description devel
  This package contains all of the
  headers and the static libraries for
  screenlib.

  You'll only need this package if you
  are doing development.

The description is free form text, but there are two things to note.
The first regards reformating.  Lines that begin with white space
are considered "pre-formatted" and will be left alone.  Adjacent
lines without leading whitespace are considered a single paragraph
and may be subject to formatting by glint or another RPM tool.

Other Tags
----------

Two new tags are "URL:" and "Packager:".  "URL:" is a place to put a
URL for more information and/or documentation on the software
contained in the package.  Some future RPM package tool may make use
of this.  The Packager: tag is meant to contain the name and email
address of the person who "maintains" the RPM package (which may be
different from the person who actually maintains the program the
package contains).

Files Attributes
----------------

A %ghost tag on a file indicates that this file is not to be included
in the package.  It is typically used when the attributes of the file
are important while the contents is not (e.g. a log file).

The %config(missingok) indicates that the file need not exist on the
installed machine. The %config(missingok) is frequently used for files
like /etc/rc.d/rc2.d/S55named where the (non-)existence of the symlink
is part of the configuration in %post, and the file may need to be
removed when this package is removed.  This file is not required to
exist at either install or uninstall time.

The %config(noreplace) indicates that the file in the package should
be installed with extension .rpmnew if there is already a file by
the same name on the installed machine.

Fine Adjustment of Automatic Dependencies
-----------------------------------------

Rpm currently supports separate "Autoreq:" and "Autoprov:" tags in a
spec file to independently control the running of find-requires and
find-provides. A common problem occurs when packaging a large third
party binary which has interfaces to other third party libraries you
do not own.  RPM will require all the third party libraries be
installed on the target machine even though their intended use was
optional. To rectify the situation you may turn off requirements when
building the package by putting

	Autoreq: 0 

in your spec file. Any and all requirements should be added manually using the

	Requires: depend1, ..., dependN

in this case.
