Improve Default Font Handling
Summary
This aims to make default fonts easier to update for all the variants on Fedora and reduce the maintenance costs to apply for them.
Owner
- Name: Akira TAGOH
- Email: <tagoh AT redhat DOT com>
- Name: Parag Nemade
- Email: <pnemade AT redhat DOT com>
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. So we want to introduce new meta packages into langpacks and replace a list of font packages with it. We expect to improve such situations by updating langpacks only then.
- default-fonts-core
- Metapackage to pull all the default-fonts-core-{sans,serif,mono,emoji} packages
- default-fonts-core-sans, default-fonts-core-serif, default-fonts-core-mono, default-fonts-core-emoji, default-fonts-core-math
- Metapackages to pull the default font for Latin characters and emoji
- default-fonts-core-sans, default-fonts-core-serif, default-fonts-core-mono, default-fonts-core-emoji, default-fonts-core-math
- Metapackage to pull all the default-fonts-core-{sans,serif,mono,emoji} packages
- default-fonts-cjk
- Metapackage to pull the default-fonts-cjk-{sans,serif,mono} packages
- default-fonts-cjk-sans, default-fonts-cjk-serif, default-fonts-cjk-mono
- Metapackages to pull the default fonts for CJK
- default-fonts-cjk-sans, default-fonts-cjk-serif, default-fonts-cjk-mono
- Metapackage to pull the default-fonts-cjk-{sans,serif,mono} packages
- default-fonts-other
- Metapackage to pull the default-fonts-other-{sans,serif,mono} packages.
- default-fonts-other-sans, default-fonts-other-serif, default-fonts-other-mono
- Metapackages to pull the default fonts for non-CJK languages
- default-fonts-other-sans, default-fonts-other-serif, default-fonts-other-mono
- Metapackage to pull the default-fonts-other-{sans,serif,mono} packages.
- default-fonts-<language code>
- Metapackages to pull a default font for certain languages
- default-fonts-extra-<language code>
- Metapackages to pull extra fonts for 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 don'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
- update lorax to pull in default-fonts
- Other developers:
- Release engineering: #Releng issue number
- Policies and guidelines:
- Fonts Packaging Policy should be updated to not mention
font(:lang=en)
but insteaddefault-fonts-core
or so.
- Fonts Packaging Policy should be updated to not mention
- Trademark approval: N/A (not needed for this Change)
- Alignment with Community Initiatives:
Upgrade/compatibility impact
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
- Install the above meta packages
- See what font packages will be pulled in
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?) N/A (not a System Wide Change)
- Contingency deadline: N/A (not a System Wide Change)
- Blocks release? N/A (not a System Wide Change), Yes/No
Documentation
N/A (not a System Wide Change)