Bug 2435265 - gnu-free-fonts broken after Fedora 44 mass rebuild
Summary: gnu-free-fonts broken after Fedora 44 mass rebuild
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: gnu-free-fonts
Version: rawhide
Hardware: Unspecified
OS: Linux
unspecified
urgent
Target Milestone: ---
Assignee: Gwyn Ciesla
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: 2435066 2435889
TreeView+ depends on / blocked
 
Reported: 2026-01-29 13:38 UTC by Mattias Ellert
Modified: 2026-02-06 21:18 UTC (History)
2 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2026-02-06 21:18:21 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
Patch removing no-hints (541 bytes, patch)
2026-02-06 18:12 UTC, Mattias Ellert
no flags Details | Diff

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.


Note You need to log in before you can comment on or make changes to this bug.