The following notes are intended to help new packagers understand the Fedora official fonts spec templates:
- our simple template, intended for source packages that ship a single font family,
- our multi template, intended for source packages that ship several different font families. In this template, you must repeat blocks of instructions for every packaged font family.
Metadata
Naming
Replace <FONTNAME> with something appropriate such as foundryname-fontname. For Fedora purposes a “foundry” is an entity that publishes a set of fonts with consistent QA rules[3].
If fontname already includes the font or fonts affix, drop it.
Fontconfig ruleset(s)
fontconf is the optional fontconfig ruleset for the fonts being packaged. For more information on choosing the right fontconfig priorities, see this page.
Font versions
Do not trust font metadata versionning[4], unless you've checked upstream does update versions on file changes. When in doubt use the timestamp of the most recent font file as version, for example 20081231.
Licensing
Make sure you've read and understand our legal page.
BuildRoot
Any approved buildroot choice.
Summary
Font summaries need to be short and to the point. Usual informations are font style and Unicode coverage. Only repeat the font name(s) if you don't have anything else to write.
Description
Font descriptions must detail information on the font style, Unicode coverage, and intended use[5] to help users choose the right packages to install. Also, it is considered good form to credit the original font designer and sum up the font history.
Incidentally, this is a good way to check if the licensing information declared by upstream is correct and if some fontconfig substitution rules can be added to the package.
Examples of terrific font descriptions are found on the Greek Font Society web site. This is what other font packages should strive to emulate.
Common description
It is possible to define a description block that will be reused in every sub-package description. Please do not forget to complete it with subpackage-specific information later.
Building
Building fonts from sources is always preferred. For GPLed or LGPLed fonts this is required by the license.
Installing
Fonts
Change *.ttf to the actual location of your font files (in a subdirectory, in this directory with an otf extension, etc).
Fontconfig rulesets
To package a fontconfig ruleset disabled by default:
- install it in %{_fontconfig_templatedir},
- create symbolic link with the same name in %{_fontconfig_confdir}, that points to /dev/null.
Documentation
Documentation usually includes licensing and other information in plain text or PDF[6] format. Make sure your text files use maximum 80 column lines with Unix-style line ends and are encoded in UTF-8.
Magic
The %_font_pkg macro takes the following arguments:
- an optional -n name subpackage name
- an optional -f pattern fontconfig pattern name. The corresponding files must be installed by the packager in %{_fontconfig_templatedir} and %{_fontconfig_confdir} in the %install section.
- a list of font names or font name patterns. The corresponding files must be installed by the packager in %{_fontdir} in the %install section.
Notes: