| Maximum RPM: Taking the Red Hat Package Manager to the Limit | ||
|---|---|---|
| Prev | Appendix E. Concise Spec File Reference | Next |
This section outlines the tags that comprise a spec file's preamble.
This section outlines the tags that are used to name a package.
The Name: tag is used to define the name of the software being packaged.
Name: cdplayer
See also: Section 13.2.1.1.
The Version: tag defines the version of the software being packaged.
Version: 1.2
See also: Section 13.2.1.2.
The Release: tag can be thought of as the package's version.
Release: 5
See also: Section 13.2.1.3.
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: Section 13.2.2.1.
The Summary: tag is used to define a one-line description of the packaged software.
Summary: A CD player app that rocks!
See also: Section 13.2.2.2.
The Copyright: tag is used to define the copyright terms applicable to the software being packaged.
Copyright: GPL
See also: Section 13.2.2.3.
The Distribution: tag is used to define a group of packages, of which this package is a part.
Distribution: Doors '95
See also: Section 13.2.2.4.
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: Section 13.2.2.5.
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: Section 13.2.2.6.
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: Section 13.2.2.7.
The Group: tag is used to group packages together by the types of functionality they provide.
Group: Applications/Editors
See also: Section 13.2.2.8.
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: Section 13.2.2.9.
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: Section 13.2.3.1.
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: Section 13.2.3.2.
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: Section 13.2.3.4.
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: Section 13.2.3.3.
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: Section 13.2.3.5.
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: Section 13.2.4.1.
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: Section 13.2.4.2.
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: Section 13.2.4.3.
The ExclusiveOs: tag is used to denote which operating system(s) should only be be permitted to build the package.
ExclusiveOS: linux
See also: Section 13.2.4.4.
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: Section 13.2.5.1.
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: Section 13.2.5.2.
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: Section 13.2.6.1.
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: Section 13.2.6.2.
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: Section 13.2.6.3.
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: Section 13.2.6.4.