Bug 2435265

Summary: gnu-free-fonts broken after Fedora 44 mass rebuild
Product: [Fedora] Fedora Reporter: Mattias Ellert <mattias.ellert>
Component: gnu-free-fontsAssignee: Gwyn Ciesla <gwync>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: urgent Docs Contact:
Priority: unspecified    
Version: rawhideCC: gwync, pnemade
Target Milestone: ---Keywords: Regression
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: ---
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2026-02-06 21:18:21 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 2435066, 2435889    
Attachments:
Description Flags
Patch removing no-hints none

Description Mattias Ellert 2026-01-29 13:38:09 UTC
After the Fedora 44 mass rebuild the gnu-free-fonts are broken.

The sizes of the fonts in Fedora 43 from gnu-free-fonts-20120503-36.fc43 are:

$ ls -l 43/usr/share/fonts/gnu-free/
totalt 10584
-rw-r--r--. 1 ellert ellert  299140 23 jul  2025 FreeMonoBoldOblique.ttf
-rw-r--r--. 1 ellert ellert  299116 23 jul  2025 FreeMonoBold.ttf
-rw-r--r--. 1 ellert ellert  395352 23 jul  2025 FreeMonoOblique.ttf
-rw-r--r--. 1 ellert ellert  593372 23 jul  2025 FreeMono.ttf
-rw-r--r--. 1 ellert ellert  342592 23 jul  2025 FreeSansBoldOblique.ttf
-rw-r--r--. 1 ellert ellert  416260 23 jul  2025 FreeSansBold.ttf
-rw-r--r--. 1 ellert ellert  763524 23 jul  2025 FreeSansOblique.ttf
-rw-r--r--. 1 ellert ellert 1563984 23 jul  2025 FreeSans.ttf
-rw-r--r--. 1 ellert ellert  609144 23 jul  2025 FreeSerifBoldItalic.ttf
-rw-r--r--. 1 ellert ellert 1311812 23 jul  2025 FreeSerifBold.ttf
-rw-r--r--. 1 ellert ellert  917244 23 jul  2025 FreeSerifItalic.ttf
-rw-r--r--. 1 ellert ellert 3304596 23 jul  2025 FreeSerif.ttf

While the sizes in Fedora 44 from gnu-free-fonts-20120503-37.fc44 are:

$ ls -l 44/usr/share/fonts/gnu-free/
totalt 2284
-rw-r--r--. 1 ellert ellert  43092 16 jan 01.00 FreeMonoBoldOblique.ttf
-rw-r--r--. 1 ellert ellert  46052 16 jan 01.00 FreeMonoBold.ttf
-rw-r--r--. 1 ellert ellert  49536 16 jan 01.00 FreeMonoOblique.ttf
-rw-r--r--. 1 ellert ellert  95620 16 jan 01.00 FreeMono.ttf
-rw-r--r--. 1 ellert ellert  72136 16 jan 01.00 FreeSansBoldOblique.ttf
-rw-r--r--. 1 ellert ellert 101960 16 jan 01.00 FreeSansBold.ttf
-rw-r--r--. 1 ellert ellert 201376 16 jan 01.00 FreeSansOblique.ttf
-rw-r--r--. 1 ellert ellert 187348 16 jan 01.00 FreeSans.ttf
-rw-r--r--. 1 ellert ellert 179192 16 jan 01.00 FreeSerifBoldItalic.ttf
-rw-r--r--. 1 ellert ellert 485028 16 jan 01.00 FreeSerifBold.ttf
-rw-r--r--. 1 ellert ellert 220964 16 jan 01.00 FreeSerifItalic.ttf
-rw-r--r--. 1 ellert ellert 633068 16 jan 01.00 FreeSerif.ttf

I.e. much smaller, indicating there is missing information.

If I try to open one of the fonts from Fedora 44 in fontforge

$ fontforge 44/usr/share/fonts/gnu-free/FreeSans.ttf

I get the error.

"FreeSans.ttf is not in a known format (or uses features of that format fontforge does not support, or is so badly corrupted as to be unreadable)"

While the font in Fedora 43 can be opened without problems.

When using the font no glyphs are displayed.


Reproducible: Always

Steps to Reproduce:
1. Open the font files from Fedora 44 in fontforge
2. See the error message
Actual Results:
Broken fonts.

Expected Results:
Working fonts.

Comment 1 Gwyn Ciesla 2026-01-29 19:24:15 UTC
Do any of these commands yield output?

rpm --verify gnu-free-fonts-common
rpm --verify gnu-free-fonts-mono-fonts
rpm --verify gnu-free-fonts-sans-fonts
rpm --verify gnu-free-fonts-serif-fonts

Comment 2 Mattias Ellert 2026-01-29 22:47:07 UTC
(In reply to Gwyn Ciesla from comment #1)
> Do any of these commands yield output?
> 
> rpm --verify gnu-free-fonts-common
> rpm --verify gnu-free-fonts-mono-fonts
> rpm --verify gnu-free-fonts-sans-fonts
> rpm --verify gnu-free-fonts-serif-fonts

(I assume there is an extra "font" in the last three commands)

<mock-chroot> sh-5.3# rpm --verify gnu-free-fonts-common
<mock-chroot> sh-5.3# rpm --verify gnu-free-mono-fonts
<mock-chroot> sh-5.3# rpm --verify gnu-free-sans-fonts
<mock-chroot> sh-5.3# rpm --verify gnu-free-serif-fonts
<mock-chroot> sh-5.3# rpm -q gnu-free-fonts-common
gnu-free-fonts-common-20120503-37.fc44.noarch
<mock-chroot> sh-5.3# rpm -q gnu-free-mono-fonts
gnu-free-mono-fonts-20120503-37.fc44.noarch
<mock-chroot> sh-5.3# rpm -q gnu-free-sans-fonts
gnu-free-sans-fonts-20120503-37.fc44.noarch
<mock-chroot> sh-5.3# rpm -q gnu-free-serif-fonts
gnu-free-serif-fonts-20120503-37.fc44.noarch

Comment 3 Mattias Ellert 2026-01-30 03:30:47 UTC
$ python3
Python 3.14.2 (main, Dec  5 2025, 00:00:00) [GCC 15.2.1 20251111 (Red Hat 15.2.1-4)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from fontTools import ttLib
>>> tt43 = ttLib.TTFont("43/usr/share/fonts/gnu-free/FreeSans.ttf")
>>> tt44 = ttLib.TTFont("44/usr/share/fonts/gnu-free/FreeSans.ttf")
>>> tt43.keys()
['GlyphOrder', 'head', 'hhea', 'maxp', 'OS/2', 'hmtx', 'cmap', 'fpgm', 'prep', 'cvt ', 'loca', 'glyf', 'kern', 'name', 'post', 'gasp', 'FFTM', 'GDEF', 'GPOS', 'GSUB']
>>> tt44.keys()
['GlyphOrder', 'head', 'hhea', 'maxp', 'OS/2', 'hmtx', 'cmap', 'fpgm', 'prep', 'cvt ', 'loca', 'kern', 'name', 'post', 'gasp', 'FFTM', 'GDEF', 'GPOS', 'GSUB']

I.e. the 'glyf' table is missing in ths Fedora 44 version.

Comment 4 Mattias Ellert 2026-02-05 16:28:30 UTC
The build create both .ttf and .otf files. The .ttf files are not working, but the .otf files are.
Can those be packaged instead?
It is not clear to me why the .ttf files that used to be create correctly in Fedora 43 no longer are so in Fedora 44.
The source package has not changed, but the fonts-rpm-macros and fontforge packages have both been updated between F43 and F44.

diff --git a/gnu-free-fonts.spec b/gnu-free-fonts.spec
index f27c862..e9a2905 100644
--- a/gnu-free-fonts.spec
+++ b/gnu-free-fonts.spec
@@ -96,7 +96,7 @@ make
 %install
 pushd sfd
 install -m 0755 -d %{buildroot}%{_fontdir}
-install -p -m 644 *.ttf  %{buildroot}%{_fontdir}
+install -p -m 644 *.otf  %{buildroot}%{_fontdir}
 
 install -m 0755 -d %{buildroot}%{_fontconfig_templatedir} \
                    %{buildroot}%{_fontconfig_confdir}
@@ -128,11 +128,11 @@ install -Dm 0644 -p %{SOURCE7} \
 install -Dm 0644 -p %{SOURCE8} \
         %{buildroot}%{_datadir}/appdata/%{fontname}-serif.metainfo.xml
 
-%_font_pkg -n mono -f %{fontconf}-mono.conf FreeMono*.ttf
+%_font_pkg -n mono -f %{fontconf}-mono.conf FreeMono*.otf
 %{_datadir}/appdata/%{fontname}-mono.metainfo.xml
-%_font_pkg -n sans -f %{fontconf}-sans.conf FreeSans*.ttf
+%_font_pkg -n sans -f %{fontconf}-sans.conf FreeSans*.otf
 %{_datadir}/appdata/%{fontname}-sans.metainfo.xml
-%_font_pkg -n serif -f %{fontconf}-serif.conf FreeSerif*.ttf
+%_font_pkg -n serif -f %{fontconf}-serif.conf FreeSerif*.otf
 %{_datadir}/appdata/%{fontname}-serif.metainfo.xml
 
 %files common

Comment 5 Gwyn Ciesla 2026-02-05 20:29:06 UTC
I suspect there are many packages that symlink to the ttf fonts. I can also include the otf fonts, but the ttf fonts still probably need fixing.

Comment 6 Gwyn Ciesla 2026-02-05 21:14:52 UTC
@pnemade Can you shed any light on the fontforge and fonts-rpm-macros changes?

Comment 7 Mattias Ellert 2026-02-06 18:12:08 UTC
Created attachment 2128466 [details]
Patch removing no-hints

Removing the 'no-hints' from the flags in the build script results in working fonts.

Comment 8 Gwyn Ciesla 2026-02-06 18:18:55 UTC
Excellent, thank you! I'll get this to f45 and f44 ASAP.