From Fedora Project Wiki


Improve Fonts RPM Macros for Variable Fonts

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

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


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:
  • 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.