Font package guidelines

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Arch package guidelines

32-bitCLRCMakeCrossDKMSEclipseElectronFontFree PascalGNOMEGoHaskellJavaKDEKernelLispMesonMinGWNode.jsNonfreeOCamlPerlPHPPythonRRubyRustShellVCSWebWine

This document covers proposed standards and guidelines on writing PKGBUILDs for Fonts.

General guidelines

Package naming

  • TTF fonts: ttf-fontname
  • OTF fonts: otf-fontname

If the font is a variable font, add the suffix -variable.

Note: The package name should be entirely lowercase.

Package description

The package description should at least contain the word font and what type of font it is: sans-serif, serif or monospace.

Architecture

Fonts are architecture-independent. Use arch=(any).

Dependencies

Fonts do not depend on anything. Many packages in the repositories, however, include fontconfig and xorg-mkfontscale as dependecies. Those were required when font packages needed to use install scripts to update the font cache – a lot of duplicate work now done by pacman hooks. If you install fontconfig or xorg-mkfontscale, all existing fonts in /usr/share/fonts/ will be cached making it unnecessary to force people to use fontconfig or mkfontscale.

Provides

Many applications rely on the virtual package ttf-font. If your font family meets the criteria, add provides=('ttf-font').

Source

See whether a font is available from the following sources in this order:

The following sites are not recommended:

  • FontSpace (checksums change for unknown reasons)

Package

The following snippet is an example for an OTF font released under the OFL (SIL Open Font License):

license=('OFL')
...
package() {
  install -Dm644 -t "$pkgdir/usr/share/fonts/OTF" "path/to/font/*.otf"
  install -Dm644 -t "$pkgdir/usr/share/licenses/$pkgname" "path/to/license/OFL.txt"
}
  • The OFL is technically a custom license, so each font package's license file needs to be installed under /usr/share/licenses/$pkgname.
  • If the font contains many font files, consider using $pkgname instead of OTF for the destination directory.

Example packages

See also