From Fedora Project Wiki
(update release note tracker)
 
(11 intermediate revisions by 4 users not shown)
Line 3: Line 3:
= Improve Default Font Handling with default-fonts metapackages =
= Improve Default Font Handling with default-fonts metapackages =


{{Change_Proposal_Banner}}


== Summary ==
== Summary ==
Line 25: Line 24:


== Current status ==
== Current status ==
[[Category:ChangeReadyForFesco]]
[[Category:ChangeAcceptedF39]]
<!-- When your change proposal page is completed and ready for review and announcement -->
<!-- When your change proposal page is completed and ready for review and announcement -->
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler -->
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler -->
Line 45: Line 44:
* [https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/6YSJ3FK3IQMSKJK76DGKBR4FXMP37C3T/ devel thread]
* [https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/6YSJ3FK3IQMSKJK76DGKBR4FXMP37C3T/ devel thread]
* FESCo issue: [https://pagure.io/fesco/issue/3033 #3033]
* FESCo issue: [https://pagure.io/fesco/issue/3033 #3033]
* Tracker bug: <will be assigned by the Wrangler>
* Tracker bug: [https://bugzilla.redhat.com/show_bug.cgi?id=2233272 #2233272]
* Release notes tracker: <will be assigned by the Wrangler>
* Release notes tracker: [https://pagure.io/fedora-docs/release-notes/issue/1007 #1007]


== Detailed Description ==
== Detailed Description ==
Line 109: Line 108:
== Scope ==
== Scope ==
* Proposal owners:
* Proposal owners:
** update the fedora-comps @fonts group and workstation-ostree-config to use the new default-fonts packages
** update the fedora-comps @fonts group and workstation-ostree-config to use the new default-fonts packages ([https://pagure.io/fedora-comps/pull-request/862 PR])
** fontconfig package default font dependency to be updated
** 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.
** 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.
Line 155: Line 154:
-->
-->


# Install the above meta packages
You can test this Change on upgrade as well as freshly installed Fedora 39 system
# See what font packages will be pulled in
* If you have installed Fresh F39 system then you will find <code>default-fonts-*</code> packages already installed on your system.
** <pre>$ rpm -qa|grep default-fonts</pre>
You will find almost 64 packages installed on English language installation. These are new packages compared to Fedora 38 package set.
* If you have an existing F38 system then you can test this by upgrading your system to Fedora 39: then you will find one or more <code>default-fonts-*</code> packages getting installed on your system. To demonstrate this with a simple example
** <pre>$ sudo dnf update langpacks-en --releasever=39</pre>
you would find <code>default-fonts-core-sans</code> package getting installed on your system.


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/
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->



Latest revision as of 23:24, 28 September 2023


Improve Default Font Handling with default-fonts metapackages

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

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, Emoji, and Math/Symbols
    • default-fonts-cjk metapackage to pull in:
      • default-fonts-cjk-sans
        • Metapackage to pull in default-fonts-<language code> for CJK languages
      • 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
        • Metapackage to pull in default-fonts-<language code> for other (non-CJK) languages
      • 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 font for a specific language
    • This metapackage provides font(:lang=<language code>)
  • langpacks-fonts-<language code>
    • Metapackages to pull in default font and 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 (PR)
    • 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

You can test this Change on upgrade as well as freshly installed Fedora 39 system

  • If you have installed Fresh F39 system then you will find default-fonts-* packages already installed on your system.
    • $ rpm -qa|grep default-fonts

You will find almost 64 packages installed on English language installation. These are new packages compared to Fedora 38 package set.

  • If you have an existing F38 system then you can test this by upgrading your system to Fedora 39: then you will find one or more default-fonts-* packages getting installed on your system. To demonstrate this with a simple example
    • $ sudo dnf update langpacks-en --releasever=39

you would find default-fonts-core-sans package getting installed on your system.


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

No. Updated langpacks still have compatibility on existing dependencies. This Change can be done in langpacks only.


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