From Fedora Project Wiki

(Simplify by removing the Liberation exception since the Liberation packager split anyway)
No edit summary
Line 15: Line 15:


</noinclude>{{Anchor|package-layout}}{{Anchor|splitting}}
</noinclude>{{Anchor|package-layout}}{{Anchor|splitting}}
== Package layout of font packages ==
== Package layout for fonts ==


# Fonts released upstream in separate archives '''MUST''' be packaged in separate source packages (''src.rpm''), unless they belong to the same font family.
# Fonts released upstream in separate archives '''MUST''' be packaged in separate source packages (''src.rpm''), unless they belong to the same font family.

Revision as of 10:11, 18 January 2009

A page of the Fonts Special Interest Group


FPC
This proposal was reviewed and approved by FPC on 2009-01-06.
FESCO
FPC's conclusions were ratified by FESCO on 2009-01-16.

Foreword

This change is part of the list of cleanups discussed on the fonts and devel lists since november 2008. It is intended to make rules clearer for new and existing packagers, by rewording rules in a more succinct and imperative manner. Experience shows that too much leeway just results in packagers wasting time as they find new “interesting” ways to interpret the guidelines.

The change consists of the rewording one section of our current font policy.

What is a font family?
  • A font family corresponds to one entry in GUI font lists. For example, DejaVu Sans, DejaVu Serif and DejaVu Sans Mono are three different font families.
  • A font family is subdivided in faces or styles. DejaVu Sans Normal, DejaVu Sans Bold, DejaVu Sans Condensed Italic are three faces of the DejaVu Sans font family.
  • A font-metadata aware tool such as gnome-font-viewer[1] or fontforge[2] can be used to check the font family name and the font face/style declared by a font file.

Package layout for fonts

  1. Fonts released upstream in separate archives MUST be packaged in separate source packages (src.rpm), unless they belong to the same font family.
  2. Packagers SHOULD ask upstream to release each font family in a separate versioned archive, when it bundles in a common release archive:
    1. fonts with other material such as application code, or
    2. different font families.
    • As an exception, when a project is the upstream of several font families, which are all licensed the same way, and released on the same date, with the same version, the use of a common release archive is tolerated.
  3. Packagers MUST package each font family in a separate (noarch.rpm) (sub)package, notwithstanding on how they applied the previous source package (src.rpm) rules. The only admitted exceptions are:
    1. source packages that only include one font family and no other code or content (font documentation excepted), in which case a simple package is fine,
    2. font families which are designed to extend other font families with larger Unicode coverage (for example Arial Unicode, Droid Sans Fallback), in which case grouping the font family and its extension in a single (sub)package is acceptable.
      • such cases should be notified to the fontconfig maintainer and the Fedora fonts list, so the font family split can be eventually hidden from users.
    3. fonts that use a format that bundles different font families in a single file.
  4. On the other hand, the different faces of a font family MUST be packaged together in a common (noarch.rpm) (sub)package, and not spread over different (sub)packages[3].

Notes:

  1. Simple, but sadly not available in each and every Fedora release.
  2. Type <CTRL> + <SHIFT> + <F> to open the font metadata window in fontforge.
  3. Rationale: As noted in the Packaging Guidelines, Fedora packages should make every effort to avoid having multiple, separate, upstream projects bundled together in a single package. This applies equally to font packages. Multi-source packages are difficult to maintain and confusing to users. In addition, fonts are comparatively bulky, and big font packages will be blacklisted from live-cds and by low-bandwidth users. The functional font unit for users is the font family. Users don't understand partially installed fonts (font faces spread over different packages) and bundles (multi-family packages that force them to install fonts they may not care of or even like just to get the other fonts in the package). Because it is a unit, projects will extend or fork a font family as a whole, but not necessarily in step with other bundled families. Lastly, multi-font packages unnecessarily complexify font auto-installation.


Fonts in Fedora
The Fonts SIG takes loving care of Fedora fonts. Please join this special interest group if you are interested in creating, improving, packaging, or just suggesting a font. Any help will be appreciated.