From Fedora Project Wiki
Line 53: Line 53:
New default-fonts metapackages will be added to langpacks, some of which will replace the default font listed in `@fonts`, etc. Then going forward those lists of metapackages should only need to be changed quite rarely.
New default-fonts metapackages will be added to langpacks, some of which will replace the default font listed in `@fonts`, etc. Then going forward those lists of metapackages should only need to be changed quite rarely.


* `default-fonts-core` metapackage to pull in:
* `default-fonts` metapackage to pull in:
** `default-fonts-core-sans`, `default-fonts-core-serif`, `default-fonts-core-mono`, `default-fonts-core-emoji`, `default-fonts-core-math`
** `default-fonts-core` metapackage to pull in:
*** Metapackages to pull in the default fonts for Western characters and Emoji
*** `default-fonts-core-sans`, `default-fonts-core-serif`, `default-fonts-core-mono`, `default-fonts-core-emoji`, `default-fonts-core-math`
* `default-fonts-cjk` metapackage to pull in:
**** Metapackages to pull in the default fonts for Western characters and Emoji
** `default-fonts-cjk-sans`, `default-fonts-cjk-serif`, `default-fonts-cjk-mono`
** `default-fonts-cjk` metapackage to pull in:
*** Metapackages to pull in the default fonts for Chinese, Japanese, and Korean
*** `default-fonts-cjk-sans`, `default-fonts-cjk-serif`, `default-fonts-cjk-mono`
* `default-fonts-other` metapackage to pull in:
**** Metapackages to pull in the default fonts for Chinese, Japanese, and Korean
** `default-fonts-other-sans`, `default-fonts-other-serif`, `default-fonts-other-mono`
** `default-fonts-other` metapackage to pull in:
*** Metapackages to pull in the default fonts for other (non-CJK) languages
*** `default-fonts-other-sans`, `default-fonts-other-serif`, `default-fonts-other-mono`
**** Metapackages to pull in the default fonts for other (non-CJK) languages
* `default-fonts-<language code>`
* `default-fonts-<language code>`
** Metapackages to pull in a default fonts for a specific language
** Metapackages to pull in a default fonts for a specific language

Revision as of 13:33, 26 June 2023


Improve Default Font Handling

Important.png
This is a proposed Change for Fedora Linux.
This document represents a proposed Change. As part of the Changes process, proposals are publicly announced in order to receive community feedback. This proposal will only be implemented if approved by the Fedora Engineering Steering Committee.

Summary

This aims to make default fonts easier to update and install for all the variants on Fedora and reduce the maintenance costs for them.

Owner


Current status

  • Targeted release: Fedora Linux 39
  • Last updated: 2023-06-26
  • [<will be assigned by the Wrangler> devel thread]
  • FESCo issue: <will be assigned by the Wrangler>
  • Tracker bug: <will be assigned by the Wrangler>
  • Release notes tracker: <will be assigned by the Wrangler>

Detailed Description

Currently there are multiple sources to manage what font packages should be installed for a Fedora release and spins, such as comps, langpacks, lorax, workstation-ostree-config, and fedora-kickstarts, which makes it complicated to make default default fonts changes. New default-fonts metapackages will be added to langpacks, some of which will replace the default font listed in @fonts, etc. Then going forward those lists of metapackages should only need to be changed quite rarely.

  • default-fonts metapackage to pull in:
    • default-fonts-core metapackage to pull in:
      • default-fonts-core-sans, default-fonts-core-serif, default-fonts-core-mono, default-fonts-core-emoji, default-fonts-core-math
        • Metapackages to pull in the default fonts for Western characters and Emoji
    • default-fonts-cjk metapackage to pull in:
      • default-fonts-cjk-sans, default-fonts-cjk-serif, default-fonts-cjk-mono
        • Metapackages to pull in the default fonts for Chinese, Japanese, and Korean
    • default-fonts-other metapackage to pull in:
      • default-fonts-other-sans, default-fonts-other-serif, default-fonts-other-mono
        • Metapackages to pull in the default fonts for other (non-CJK) languages
  • default-fonts-<language code>
    • Metapackages to pull in a default fonts for a specific language
  • default-fonts-extra-<language code>
    • Metapackages to pull in extra fonts for a certain languages if any

Feedback

Benefit to Fedora

This Change provides the easier way to manage and install our default fonts on Fedora. In current package sets, langpacks offers non-fonts packages to be installed even though one don't want to install them. After this Change, one doesn't need to install those extra dependencies for the purpose of the font installation.


Scope

  • Proposal owners:
    • update the fedora-comps @fonts group and workstation-ostree-config to use the new default-fonts packages
    • fontconfig package default font dependency to be updated
    • optionally update lorax to use the new default fonts (if they no longer need to remove many fonts files since most are now variable fonts anyway), otherwise it can be done for Fedora 40.
  • Other developers:
  • Policies and guidelines: N/A (not needed for this Change)
  • Trademark approval: N/A (not needed for this Change)
  • Alignment with Community Initiatives:

Upgrade/compatibility impact

Currently installed langpacks packages will pull in the appropriate default-fonts packages when upgrading.

Using default-fonts meta-packages means that users will get upgraded to new default fonts seamlessly going forward.

This should provide a more reliable font experience since default fonts should have higher fontconfig priority.


How To Test

  1. Install the above meta packages
  2. See what font packages will be pulled in

We have a copr repo for early testing. You can try to install the updated langpacks if you like.

https://copr.fedorainfracloud.org/coprs/tagoh/langpacks-v4/

User Experience

Users will automatically be moved to any new/changed default system fonts when they upgrade to a newer version of Fedora.

It will be easier for users to remove CJK or non-core fonts from their system if they really want to, or to add them in minimal installations.

Dependencies

Contingency Plan

  • Contingency mechanism: (What to do? Who will do it?)
    • Change owners will revert the relevant changes.
  • Contingency deadline: Beta freeze
  • Blocks release? No

Documentation

None

Release Notes