The Preamble

This section outlines the tags that comprise a spec file's preamble.

Package Naming Tags

This section outlines the tags that are used to name a package.

The name Tag

The name tag is used to define the name of the software being packaged.
Name: cdplayer
          

See also: the section called The name Tag in Chapter 13.

The version Tag

The version tag defines the version of the software being packaged.
Version: 1.2
          

See also: the section called The version Tag in Chapter 13.

The release Tag

The release tag can be thought of as the package's version.
Release: 5
          

See also: the section called The release Tag in Chapter 13.

Descriptive Tags

The %description Tag

The %description tag is used to define an in-depth description of the packaged software. In the descriptive text, a space in the first column indicates that that line of text should be presented to user as-is, with no formatting done by RPM. Blank lines in the descriptive text denote paragraphs.
%description
 It slices!
 It dices!
 It's a CD player app that can't be beat.

By using the resonant frequency of the CD itself, it is able to simulate
20X oversampling.  This leads to sound quality that cannot be equaled with
more mundane software...
          

The %description tag can be made specific to a particular subpackage by adding the subpackage name, and optionally, the -n option:
%description bar

%description -n bar
          

The subpackage name and usage of the -n option must match those defined with the %package directive.

See also: the section called The %description Tag in Chapter 13.

The summary Tag

The summary tag is used to define a one-line description of the packaged software.
Summary: A CD player app that rocks!
          

See also: the section called The summary Tag in Chapter 13.

The copyright Tag

The copyright tag is used to define the copyright terms applicable to the software being packaged.
Copyright: GPL
          

See also: the section called The copyright Tag in Chapter 13.

The distribution Tag

The distribution tag is used to define a group of packages, of which this package is a part.
Distribution: Doors '95
          

See also: the section called The distribution Tag in Chapter 13.

The icon Tag

The icon tag is used to name a file containing an icon representing the packaged software. The file may be in either GIF or XPM format, although XPM is preferred. In either case, the background of the icon should be transparent.
Icon: foo.xpm
          

See also: the section called The icon Tag in Chapter 13.

The vendor Tag

The vendor tag is used to define the name of the entity that is responsible for packaging the software.
Vendor: White Socks Software, Inc.
          

See also: the section called The vendor Tag in Chapter 13.

The url Tag

The url tag is used to define a Uniform Resource Locator that can be used to obtain additional information about the packaged software.
URL: http://www.gnomovision.com/cdplayer.html
          

See also: the section called The url Tag in Chapter 13.

The group Tag

The group tag is used to group packages together by the types of functionality they provide.
Group: Applications/Editors
          

See also: the section called The group Tag in Chapter 13.

The packager Tag

The packager tag is used to hold the name and contact information for the person or persons who built the package.
Packager: Fred Foonly <fred@gnomovision.com>
          

See also: the section called The packager Tag in Chapter 13.

Dependency Tags

The provides Tag

The provides tag is used to specify a "virtual package" that the packaged software makes available when it is installed.
Provides: module-info
          

See also: the section called The provides Tag in Chapter 13.

The requires Tag

The requires tag is used to alert RPM to the fact that the package needs to have certain capabilities available in order to operate properly.
Requires: playmidi
          

A version may be specified, following the package specification. The following comparison operators may be placed between the package and version:
<, >, =, >=, or <=
          

Requires: playmidi >= 2.3
          

If the Requires tag needs to perform a comparison against a serial numbered defined with the serial tag, then the proper format would be:
Requires: playmidi =S 4
          

See also: the section called The requires Tag in Chapter 13.

The serial Tag

The serial tag is used to define a serial number for a package. This is only necessary if RPM is unable to determine the ordering of a package's version numbers.
Serial: 4
          

See also: the section called The serial Tag in Chapter 13.

The conflicts Tag

The conflicts tag is used to alert RPM to the fact that the package is not compatible with other packages.
Conflicts: playmidi
          

A version may be specified, following the package specification. The following comparison operators may be placed between the package and version:
<, >, =, >=, or <=
          

Conflicts: playmidi >= 2.3
          

If the conflicts tag needs to perform a comparison against a serial numbered defined with the serial tag, then the proper format would be:
Conflicts: playmidi =S 4
          

See also: the section called The conflicts Tag in Chapter 13.

The autoreqprov Tag

The autoreqprov tag is used to control the automatic dependency processing performed when the package is being built. To disable automatic dependency processing, add the following line:
AutoReqProv: no
          

(The number 0 may be used instead of no) Although RPM defaults to performing automatic dependency processing, the effect of the autoreqprov tag can be reversed by changing no to yes. (The number 1 may be used instead of yes)

See also: the section called The autoreqprov Tag in Chapter 13.

Architecture- and Operating System-Specific Tags

The excludearch Tag

The excludearch tag is used to direct RPM to ensure that the package does not attempt to build on the excluded architecture(s).
ExcludeArch: sparc alpha
          

See also: the section called The excludearch Tag in Chapter 13.

The exclusivearch Tag

The exclusivearch tag is used to direct RPM to ensure the package is only built on the specified architecture(s).
ExclusiveArch: sparc alpha
          

See also: the section called The exclusivearch Tag in Chapter 13.

The excludeos Tag

The excludeos tag is used to direct RPM to ensure that the package does not attempt to build on the excluded operating system(s).
ExcludeOS: linux irix
          

See also: the section called The excludeos Tag in Chapter 13.

The exclusiveos Tag

The exclusiveos tag is used to denote which operating system(s) should only be be permitted to build the package.
ExclusiveOS: linux
          

See also: the section called The exclusiveos Tag in Chapter 13.

Directory-related Tags

The prefix Tag

The prefix tag is used to define part of the path RPM will use when installing the package's files. The prefix can be redefined by the user when the package is installed, thereby changing where the package is installed.
Prefix: /opt
          

See also: the section called The prefix Tag in Chapter 13.

The buildroot Tag

The buildroot tag is used to define an alternate build root, where the software will be installed during the build process.
BuildRoot: /tmp/cdplayer
          

See also: the section called The buildroot Tag in Chapter 13.

Source and Patch Tags

The source Tag

The source tag is used to define the filename of the sources to be packaged. When there is more than one source tag in a spec file, each one must be numbered so they are unique, starting with the number 0. When there is only one tag, it does not need to be numbered.

By convention, the source filename is usually preceded by a URL pointing to the location of the original sources, but RPM does not require this.
Source0: ftp://ftp.gnomovision.com/pub/cdplayer-1.0.tgz
Source1: foo.tgz
          

See also: the section called The source Tag in Chapter 13.

The nosource Tag

The nosource tag is used to alert RPM to the fact that one or more source files should be excluded from the source package file. The tag is followed by one or more numbers. The numbers correspond to the numbers following the source tags that are to be excluded from packaging.
NoSource: 0, 3
          

See also: the section called The nosource Tag in Chapter 13.

The patch Tag

The patch tag is used to define the name of a patch file to be applied to the package's sources. When there is more than one patch tag in a spec file, each one must be numbered so they are unique, starting with the number 0. When there is only one tag, it does not need to be numbered.
Patch: cdp-0.33-fsstnd.patch
          

See also: the section called The patch Tag in Chapter 13.

The nopatch Tag

The nopatch tag is used to alert RPM to the fact that one or more patch files should be excluded from the source package file. The tag is followed by one or more numbers. The numbers correspond to the numbers following the patch tags that are to be excluded from packaging.
NoPatch: 2 3
          

See also: the section called The nopatch Tag in Chapter 13.