Maximum RPM: Taking the RPM 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 |
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 is used to define a one-line description of the packaged software.
Summary: A CD player app that rocks! |
The License: tag is used to define the license terms applicable to the software being packaged. This tag is also known as the Copyright: tag.
License: GPL |
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 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 |
The Vendor: tag is used to define the name of the entity that is responsible for packaging the software.
Vendor: White Socks Software, Inc. |
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 is used to group packages together by the types of functionality they provide.
Group: Applications/Editors |
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.
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 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 an epoch numbered defined with the Epoch: tag, then the proper format would be:
Requires: playmidi >= 4:2.3 |
See also: the Section called The requires Tag in Chapter 13.
The Epoch: tag is used to define an epoch number for a package. It is also known as the Serial: tag. This is only necessary if RPM is unable to determine the ordering of a package's version numbers.
Epoch: 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 an epoch numbered defined with the Epoch: tag, then the proper format would be:
Conflicts: playmidi = 4: |
See also: the Section called The conflicts Tag in Chapter 13.
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)
The AutoReq: and AutoProv: tags can be used to disable automatic processing of requirements or "provides" only, respectively.
See also: the Section called The autoreqprov, autoreq, and autoprov Tags in Chapter 13.
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 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 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 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.
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 |
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.
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 |
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 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 |
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 |