Improve Fonts RPM Macros for Variable Fonts
Summary
There is a plan to improve the fonts-rpm-macros usage for the variable fonts spec files. Currently the metainfo xml files contain the fonts family name, but sometimes the fonts metainfo xml files mismatch the fonts family name in the variable fonts. This change will improve the consistency of the font family name.
Owner
- Name: Peng Wu Akira TAGOH
- Email: pwu@redhat.com tagoh@redhat.com
Current status
- Targeted release: Fedora Linux 45
- Last updated: 2026-04-07
- [<link to devel-announce post will be added by Wrangler> Announced]
- [<will be assigned by the Wrangler> Discussion 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
The AppStream metainfo.xml files for font packages contain the font family name. However, for the variable fonts, this name sometimes mismatches the internal font family name embedded within the font files. This change updates fonts-rpm-macros to correctly improve the font family name handling in the variable fonts. This will make the metainfo.xml match the font metadata in the font file in the RPM packages.
This change will change the behavior of all variable font packages, and report some errors for some variable font packages. As all font packages will depend on the fonts-rpm-macros package, we plan to use side tag build or mass rebuild for all default font packages plus all variable font packages.
Take the google-noto-sans-cjk-vf-fonts for example. Before the change, the spec file looks like below:
%global fontfamily0 Noto Sans CJK VF ... %global fontfamily1 Noto Sans Mono CJK VF
After the change, the spec file looks like below:
%global fontfamily0 Noto Sans CJK %global fontvariable0 1 ... %global fontfamily1 Noto Sans Mono CJK %global fontvariable1 1
The first font family name will use "Noto Sans CJK" instead of "Noto Sans CJK VF", the second font family name will use "Noto Sans Mono CJK" instead of "Noto Sans Mono CJK VF".
After this change, the variable font packages with "VF" as the suffix in the font family name will fail to build from source, then the variable font spec file is required to be updated. We plan to help to create some pull request for the variable font packages.
Here are the variable font source package list extracted from dnf search "*-vf-fonts" in Fedora 43:
abattis-cantarell-fonts adobe-source-code-pro-fonts google-noto-fonts google-noto-sans-cjk-vf-fonts google-noto-serif-cjk-vf-fonts redhat-fonts rsms-inter-fonts vazirmatn-fonts vercel-geist-fonts
Feedback
This change will improve the consistency of the font family names between the font metadata and the AppStream metainfo.xml files.
Benefit to Fedora
This change resolves the existing mis-match between the AppStream metainfo.xml and the internal font family name embedded within variable font files. By ensuring these names match, the AppStream metadata will contain the correct and actual font family names for the variable fonts.
Scope
- Proposal owners: Fonts SIG
- Other developers:
- Release engineering: #Releng issue number
- Policies and guidelines: Fonts Packaging Guidelines
- Trademark approval: N/A (not needed for this Change)
- Alignment with the Fedora Strategy:
Upgrade/compatibility impact
We plan to use the side tag build for this change. After the fonts-rpm-macros and the variable font packages are built in the side tag build, we will check that both the source rpm package name and the rpm package name are unchanged.
Early Testing (Optional)
We plan to test the installation of the variable font packages in the side tag build.
Do you require 'QA Blueprint' support? Y/N
How To Test
1. Update the variable font packages and other font packages
2. Check if there is any package name changes in the rebuilt font packages
3. Check if there is any other issues with the rebuilt font packages
User Experience
Users browsing for fonts in graphical software centers, such as GNOME Software or KDE Discover, will see correct and consistent font family names when viewing variable fonts.
Dependencies
The font packages depend on the new fonts-rpm-macros package.
Contingency Plan
- Contingency mechanism: Font SIG will drop the side tag build, also revert the affected variable font packages.
- Contingency deadline: N/A (not a System Wide Change)
- Blocks release? N/A (not a System Wide Change), Yes/No
Documentation
This change will update the Fonts Packaging Guidelines in the Fedora project.
URL: https://docs.fedoraproject.org/en-US/packaging-guidelines/FontsPolicy/
Release Notes
We plan to update the Fonts Packaging Guidelines for the variable fonts in the Fedora project. Please read the Fonts Packaging Guidelines in the Fedora project when packaging some new variable fonts.
