Public bug reported:

Note: I hit this on my own machine; Claude Opus 5.5 (Claude Code) did
the analysis and write-up there.

SUMMARY

Since Google Chrome 154, starting Chrome on Ubuntu 26.04 LTS breaks the
host's own fontconfig. On Kubuntu this makes the Plasma session crash-
loop right after login.

Chrome 154 statically bundles fontconfig 2.18.3. Upstream commit
366787e, new in 2.18.3, makes FcDirCacheWrite() replace every
<hash>-le64.cache-9 (and -10, -11) in the shared ~/.cache/fontconfig
with a symlink to the .cache-12 file it just wrote. It does this even
for valid regular files written by the host.

Ubuntu's fontconfig 2.17.1 accepts cache files whose version is >= its
own (src/fccache.c lines 1014 and 1198: "version <
FC_CACHE_VERSION_NUMBER"), so it silently uses Chrome's cache from then
on. Chrome's bundled build uses the Fontations backend, and its scan
results differ from the host's:

  - Type1 fonts (.pfb/.t1) are not indexed, so all 70 Type1 fonts disappear for 
every application.
  - WOFF/WOFF2 files (the 40 files in fonts-katex) become placeholder patterns 
that contain only "file" and "fontwrapper", with no family or charset. These 
placeholders win font matching: with Chrome's cache, "fc-match monospace", 
"fc-match 'DejaVu Sans Mono'" and "fc-match sans-serif:lang=ru" all return 
/usr/share/fonts/truetype/katex/KaTeX_AMS-Regular.woff instead of 
DejaVuSansMono.ttf / NotoSansCJK. Qt then crashes in FcCharSetHasChar().

Upstream report with the full analysis:
https://gitlab.freedesktop.org/fontconfig/fontconfig/-/work_items/565

IMPACT

  - Kubuntu 26.04: plasmashell, krunner, kate, ksecretd, systemsettings, 
konsole, ksplashqml and ksmserver-logout-greeter crash repeatedly. Several 
users have confirmed this on #565 with the stock fontconfig 2.17.1-3ubuntu1 and 
Chrome 154.0.8037.57.
  - GNOME: every WebKitGTK process (e.g. Evolution) spins at 100% CPU 
(https://bugs.webkit.org/show_bug.cgi?id=325185). This was reported on Fedora 
44 with fontconfig 2.17.0; the same mechanism applies to Ubuntu.
  - All applications lose the Type1 fonts.
  - Clearing caches doesn't help. Chrome recreates the symlinks on its next 
start and whenever it rescans a font directory. With session restore, that 
happens a few seconds after login.
  - Chrome isn't the only writer. Wavebox 154 and sharp 0.35.4 (libvips, which 
bundles fontconfig 2.18.3) have been reported to do the same, and Electron apps 
will follow as they move to Chromium 154+.

STEPS TO REPRODUCE

Ubuntu 26.04 with fonts-katex, fonts-urw-base35 and google-chrome-stable
154 installed. No desktop session is needed. The counts are from my
system.

    export XDG_CONFIG_HOME=$(mktemp -d) XDG_CACHE_HOME=$(mktemp -d)
    fc-cache
    fc-list | wc -l                            # 776
    google-chrome --headless=new --user-data-dir=$(mktemp -d) --no-first-run \
        --disable-gpu --screenshot=/tmp/s.png 'data:text/html,<p>x</p>'
    ls -l $XDG_CACHE_HOME/fontconfig           # all *.cache-9 are now symlinks 
to *.cache-12
    fc-list | wc -l                            # 706
    fc-list : file | grep -cE '\.(pfb|t1):'    # 0
    fc-list -v ':file=/usr/share/fonts/truetype/katex/KaTeX_Main-Bold.woff2'
                                               # "Pattern has 2 elts": file + 
fontwrapper only

#565 has a 5-line PyQt6 script that turns this into a segfault.

WHY THIS NEEDS A FIX IN UBUNTU

  - 26.04 LTS will keep fontconfig 2.17.1 for its lifetime, and 26.10 
(stonking) also ships 2.17.1 (2.17.1-5ubuntu1). Upstream has no 2.17 branch.
  - Fixes on the writer side (fontconfig 2.18.x/2.19, Chromium, sharp, every 
Electron app) each have to reach users separately, and some writers will never 
update. Only the reader, i.e. the host library, can protect the whole system at 
once.

SUGGESTED FIX

One option is to make the host library reject cache files that were not
written for its own cache version. Change "cache->version <
FC_CACHE_VERSION_NUMBER" to "!=" in both places in src/fccache.c
(FcDirCacheMapFd and FcDirCacheValidateHelper). With that change, 2.17.1
would ignore a .cache-12 reached through a .cache-9 symlink. It would
fall back to /var/cache/fontconfig, or rescan and replace the symlink
with its own cache through the usual atomic rename.

Accepting newer versions only makes sense when the newer writer produces
equivalent content, and that is no longer true for Fontations builds.
Sandboxed runtimes (Flatpak/Snap) ship their own fontconfig, so this
host-side change doesn't affect them.

RELATED, POSSIBLY SEPARATE TASKS

  - qt6-base: the crash itself is fixed upstream in qtbase 80ddc8dee6a0 ("Fix 
crash when fontconfig fallback pattern has no charset", 2026-07-04; Pick-to 
6.12 6.11 6.8, not 6.10). Ubuntu's qt6-base 6.10.2 doesn't have it. Backporting 
it would stop the crash loops even while the caches are poisoned, although the 
Type1 fonts would still be missing.
  - Installation image: a commenter on #565 reports that the Kubuntu 26.04.1 
image (20260826.1) ships /var/cache/fontconfig/*.cache-9 files that already 
contain these placeholders for the fonts-katex WOFF files, although the 
archive's fontconfig 2.17.1 writes full patterns for them. My machine was 
installed from the same image, but its /var/cache/fontconfig was rebuilt while 
I was troubleshooting, so I can't confirm this myself.

WORKAROUND

    # stop the crashes: hide WOFF/WOFF2 from fontconfig (fonts-katex also ships 
.ttf copies)
    mkdir -p ~/.config/fontconfig/conf.d
    printf '%s\n' 
'<fontconfig><selectfont><rejectfont><glob>*.woff</glob><glob>*.woff2</glob></rejectfont></selectfont></fontconfig>'
 \
        > ~/.config/fontconfig/conf.d/10-reject-woff.conf
    # restore the host's own caches (brings Type1 back); repeat after Chrome 
rescans
    find ~/.cache/fontconfig -name '*-le64.cache-9' -type l -delete && fc-cache

ENVIRONMENT

  - Kubuntu 26.04.1 LTS (installed from image 20260826.1), Plasma 6.6.6 on 
Wayland, x86_64
  - fontconfig 2.17.1-3ubuntu1, qt6-base (libqt6gui6) 6.10.2+dfsg-7
  - google-chrome-stable 154.0.8037.57-1 (bundled fontconfig reports fc_version 
0x2012003 = 2.18.3)

** Affects: fontconfig (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: resolute stonking

** Description changed:

- Note: I hit this on my own machine; Claude Opus 5.5 (Claude Code) did the 
analysis
- Note: I hit this on my own machine; Claude Opus 5.5 (Claude Code) did the 
analysis and write-up there.
+ Note: I hit this on my own machine; Claude Opus 5.5 (Claude Code) did
+ the analysis and write-up there.
  
  SUMMARY
  
  Since Google Chrome 154, starting Chrome on Ubuntu 26.04 LTS breaks the
  host's own fontconfig. On Kubuntu this makes the Plasma session crash-
  loop right after login.
  
  Chrome 154 statically bundles fontconfig 2.18.3. Upstream commit
  366787e, new in 2.18.3, makes FcDirCacheWrite() replace every
  <hash>-le64.cache-9 (and -10, -11) in the shared ~/.cache/fontconfig
  with a symlink to the .cache-12 file it just wrote. It does this even
  for valid regular files written by the host.
  
  Ubuntu's fontconfig 2.17.1 accepts cache files whose version is >= its
  own (src/fccache.c lines 1014 and 1198: "version <
  FC_CACHE_VERSION_NUMBER"), so it silently uses Chrome's cache from then
  on. Chrome's bundled build uses the Fontations backend, and its scan
  results differ from the host's:
  
-   - Type1 fonts (.pfb/.t1) are not indexed, so all 70 Type1 fonts disappear 
for every application.
-   - WOFF/WOFF2 files (the 40 files in fonts-katex) become placeholder 
patterns that contain only "file" and "fontwrapper", with no family or charset. 
These placeholders win font matching: with Chrome's cache, "fc-match 
monospace", "fc-match 'DejaVu Sans Mono'" and "fc-match sans-serif:lang=ru" all 
return /usr/share/fonts/truetype/katex/KaTeX_AMS-Regular.woff instead of 
DejaVuSansMono.ttf / NotoSansCJK. Qt then crashes in FcCharSetHasChar().
+   - Type1 fonts (.pfb/.t1) are not indexed, so all 70 Type1 fonts disappear 
for every application.
+   - WOFF/WOFF2 files (the 40 files in fonts-katex) become placeholder 
patterns that contain only "file" and "fontwrapper", with no family or charset. 
These placeholders win font matching: with Chrome's cache, "fc-match 
monospace", "fc-match 'DejaVu Sans Mono'" and "fc-match sans-serif:lang=ru" all 
return /usr/share/fonts/truetype/katex/KaTeX_AMS-Regular.woff instead of 
DejaVuSansMono.ttf / NotoSansCJK. Qt then crashes in FcCharSetHasChar().
  
  Upstream report with the full analysis:
  https://gitlab.freedesktop.org/fontconfig/fontconfig/-/work_items/565
  
  IMPACT
  
-   - Kubuntu 26.04: plasmashell, krunner, kate, ksecretd, systemsettings, 
konsole, ksplashqml and ksmserver-logout-greeter crash repeatedly. Several 
users have confirmed this on #565 with the stock fontconfig 2.17.1-3ubuntu1 and 
Chrome 154.0.8037.57.
-   - GNOME: every WebKitGTK process (e.g. Evolution) spins at 100% CPU 
(https://bugs.webkit.org/show_bug.cgi?id=325185). This was reported on Fedora 
44 with fontconfig 2.17.0; the same mechanism applies to Ubuntu.
-   - All applications lose the Type1 fonts.
-   - Clearing caches doesn't help. Chrome recreates the symlinks on its next 
start and whenever it rescans a font directory. With session restore, that 
happens a few seconds after login.
-   - Chrome isn't the only writer. Wavebox 154 and sharp 0.35.4 (libvips, 
which bundles fontconfig 2.18.3) have been reported to do the same, and 
Electron apps will follow as they move to Chromium 154+.
+   - Kubuntu 26.04: plasmashell, krunner, kate, ksecretd, systemsettings, 
konsole, ksplashqml and ksmserver-logout-greeter crash repeatedly. Several 
users have confirmed this on #565 with the stock fontconfig 2.17.1-3ubuntu1 and 
Chrome 154.0.8037.57.
+   - GNOME: every WebKitGTK process (e.g. Evolution) spins at 100% CPU 
(https://bugs.webkit.org/show_bug.cgi?id=325185). This was reported on Fedora 
44 with fontconfig 2.17.0; the same mechanism applies to Ubuntu.
+   - All applications lose the Type1 fonts.
+   - Clearing caches doesn't help. Chrome recreates the symlinks on its next 
start and whenever it rescans a font directory. With session restore, that 
happens a few seconds after login.
+   - Chrome isn't the only writer. Wavebox 154 and sharp 0.35.4 (libvips, 
which bundles fontconfig 2.18.3) have been reported to do the same, and 
Electron apps will follow as they move to Chromium 154+.
  
  STEPS TO REPRODUCE
  
  Ubuntu 26.04 with fonts-katex, fonts-urw-base35 and google-chrome-stable
  154 installed. No desktop session is needed. The counts are from my
  system.
  
-     export XDG_CONFIG_HOME=$(mktemp -d) XDG_CACHE_HOME=$(mktemp -d)
-     fc-cache
-     fc-list | wc -l                            # 776
-     google-chrome --headless=new --user-data-dir=$(mktemp -d) --no-first-run \
-         --disable-gpu --screenshot=/tmp/s.png 'data:text/html,<p>x</p>'
-     ls -l $XDG_CACHE_HOME/fontconfig           # all *.cache-9 are now 
symlinks to *.cache-12
-     fc-list | wc -l                            # 706
-     fc-list : file | grep -cE '\.(pfb|t1):'    # 0
-     fc-list -v ':file=/usr/share/fonts/truetype/katex/KaTeX_Main-Bold.woff2'
-                                                # "Pattern has 2 elts": file + 
fontwrapper only
+     export XDG_CONFIG_HOME=$(mktemp -d) XDG_CACHE_HOME=$(mktemp -d)
+     fc-cache
+     fc-list | wc -l                            # 776
+     google-chrome --headless=new --user-data-dir=$(mktemp -d) --no-first-run \
+         --disable-gpu --screenshot=/tmp/s.png 'data:text/html,<p>x</p>'
+     ls -l $XDG_CACHE_HOME/fontconfig           # all *.cache-9 are now 
symlinks to *.cache-12
+     fc-list | wc -l                            # 706
+     fc-list : file | grep -cE '\.(pfb|t1):'    # 0
+     fc-list -v ':file=/usr/share/fonts/truetype/katex/KaTeX_Main-Bold.woff2'
+                                                # "Pattern has 2 elts": file + 
fontwrapper only
  
  #565 has a 5-line PyQt6 script that turns this into a segfault.
  
  WHY THIS NEEDS A FIX IN UBUNTU
  
-   - 26.04 LTS will keep fontconfig 2.17.1 for its lifetime, and 26.10 
(stonking) also ships 2.17.1 (2.17.1-5ubuntu1). Upstream has no 2.17 branch.
-   - Fixes on the writer side (fontconfig 2.18.x/2.19, Chromium, sharp, every 
Electron app) each have to reach users separately, and some writers will never 
update. Only the reader, i.e. the host library, can protect the whole system at 
once.
+   - 26.04 LTS will keep fontconfig 2.17.1 for its lifetime, and 26.10 
(stonking) also ships 2.17.1 (2.17.1-5ubuntu1). Upstream has no 2.17 branch.
+   - Fixes on the writer side (fontconfig 2.18.x/2.19, Chromium, sharp, every 
Electron app) each have to reach users separately, and some writers will never 
update. Only the reader, i.e. the host library, can protect the whole system at 
once.
  
  PROPOSED FIX (not tested; I can't build packages here)
  
  Make the host library reject cache files that were not written for its
  own cache version. Change "cache->version < FC_CACHE_VERSION_NUMBER" to
  "!=" in both places in src/fccache.c (FcDirCacheMapFd and
  FcDirCacheValidateHelper). With that change, 2.17.1 would ignore a
  .cache-12 reached through a .cache-9 symlink. It would fall back to
  /var/cache/fontconfig, or rescan and replace the symlink with its own
  cache through the usual atomic rename.
  
  Accepting newer versions only makes sense when the newer writer produces
  equivalent content, and that is no longer true for Fontations builds.
  Sandboxed runtimes (Flatpak/Snap) ship their own fontconfig, so this
  host-side change doesn't affect them.
  
  RELATED, POSSIBLY SEPARATE TASKS
  
-   - qt6-base: the crash itself is fixed upstream in qtbase 80ddc8dee6a0 ("Fix 
crash when fontconfig fallback pattern has no charset", 2026-07-04; Pick-to 
6.12 6.11 6.8, not 6.10). Ubuntu's qt6-base 6.10.2 doesn't have it. Backporting 
it would stop the crash loops even while the caches are poisoned, although the 
Type1 fonts would still be missing.
-   - Installation image: a commenter on #565 reports that the Kubuntu 26.04.1 
image (20260826.1) ships /var/cache/fontconfig/*.cache-9 files that already 
contain these placeholders for the fonts-katex WOFF files, although the 
archive's fontconfig 2.17.1 writes full patterns for them. My machine was 
installed from the same image, but its /var/cache/fontconfig was rebuilt while 
I was troubleshooting, so I can't confirm this myself.
+   - qt6-base: the crash itself is fixed upstream in qtbase 80ddc8dee6a0 ("Fix 
crash when fontconfig fallback pattern has no charset", 2026-07-04; Pick-to 
6.12 6.11 6.8, not 6.10). Ubuntu's qt6-base 6.10.2 doesn't have it. Backporting 
it would stop the crash loops even while the caches are poisoned, although the 
Type1 fonts would still be missing.
+   - Installation image: a commenter on #565 reports that the Kubuntu 26.04.1 
image (20260826.1) ships /var/cache/fontconfig/*.cache-9 files that already 
contain these placeholders for the fonts-katex WOFF files, although the 
archive's fontconfig 2.17.1 writes full patterns for them. My machine was 
installed from the same image, but its /var/cache/fontconfig was rebuilt while 
I was troubleshooting, so I can't confirm this myself.
  
  WORKAROUND
  
-     # stop the crashes: hide WOFF/WOFF2 from fontconfig (fonts-katex also 
ships .ttf copies)
-     mkdir -p ~/.config/fontconfig/conf.d
-     printf '%s\n' 
'<fontconfig><selectfont><rejectfont><glob>*.woff</glob><glob>*.woff2</glob></rejectfont></selectfont></fontconfig>'
 \
-         > ~/.config/fontconfig/conf.d/10-reject-woff.conf
-     # restore the host's own caches (brings Type1 back); repeat after Chrome 
rescans
-     find ~/.cache/fontconfig -name '*-le64.cache-9' -type l -delete && 
fc-cache
+     # stop the crashes: hide WOFF/WOFF2 from fontconfig (fonts-katex also 
ships .ttf copies)
+     mkdir -p ~/.config/fontconfig/conf.d
+     printf '%s\n' 
'<fontconfig><selectfont><rejectfont><glob>*.woff</glob><glob>*.woff2</glob></rejectfont></selectfont></fontconfig>'
 \
+         > ~/.config/fontconfig/conf.d/10-reject-woff.conf
+     # restore the host's own caches (brings Type1 back); repeat after Chrome 
rescans
+     find ~/.cache/fontconfig -name '*-le64.cache-9' -type l -delete && 
fc-cache
  
  ENVIRONMENT
  
-   - Kubuntu 26.04.1 LTS (installed from image 20260826.1), Plasma 6.6.6 on 
Wayland, x86_64
-   - fontconfig 2.17.1-3ubuntu1, qt6-base (libqt6gui6) 6.10.2+dfsg-7
-   - google-chrome-stable 154.0.8037.57-1 (bundled fontconfig reports 
fc_version 0x2012003 = 2.18.3)
+   - Kubuntu 26.04.1 LTS (installed from image 20260826.1), Plasma 6.6.6 on 
Wayland, x86_64
+   - fontconfig 2.17.1-3ubuntu1, qt6-base (libqt6gui6) 6.10.2+dfsg-7
+   - google-chrome-stable 154.0.8037.57-1 (bundled fontconfig reports 
fc_version 0x2012003 = 2.18.3)

** Description changed:

  Note: I hit this on my own machine; Claude Opus 5.5 (Claude Code) did
  the analysis and write-up there.
  
  SUMMARY
  
  Since Google Chrome 154, starting Chrome on Ubuntu 26.04 LTS breaks the
  host's own fontconfig. On Kubuntu this makes the Plasma session crash-
  loop right after login.
  
  Chrome 154 statically bundles fontconfig 2.18.3. Upstream commit
  366787e, new in 2.18.3, makes FcDirCacheWrite() replace every
  <hash>-le64.cache-9 (and -10, -11) in the shared ~/.cache/fontconfig
  with a symlink to the .cache-12 file it just wrote. It does this even
  for valid regular files written by the host.
  
  Ubuntu's fontconfig 2.17.1 accepts cache files whose version is >= its
  own (src/fccache.c lines 1014 and 1198: "version <
  FC_CACHE_VERSION_NUMBER"), so it silently uses Chrome's cache from then
  on. Chrome's bundled build uses the Fontations backend, and its scan
  results differ from the host's:
  
    - Type1 fonts (.pfb/.t1) are not indexed, so all 70 Type1 fonts disappear 
for every application.
    - WOFF/WOFF2 files (the 40 files in fonts-katex) become placeholder 
patterns that contain only "file" and "fontwrapper", with no family or charset. 
These placeholders win font matching: with Chrome's cache, "fc-match 
monospace", "fc-match 'DejaVu Sans Mono'" and "fc-match sans-serif:lang=ru" all 
return /usr/share/fonts/truetype/katex/KaTeX_AMS-Regular.woff instead of 
DejaVuSansMono.ttf / NotoSansCJK. Qt then crashes in FcCharSetHasChar().
  
  Upstream report with the full analysis:
  https://gitlab.freedesktop.org/fontconfig/fontconfig/-/work_items/565
  
  IMPACT
  
    - Kubuntu 26.04: plasmashell, krunner, kate, ksecretd, systemsettings, 
konsole, ksplashqml and ksmserver-logout-greeter crash repeatedly. Several 
users have confirmed this on #565 with the stock fontconfig 2.17.1-3ubuntu1 and 
Chrome 154.0.8037.57.
    - GNOME: every WebKitGTK process (e.g. Evolution) spins at 100% CPU 
(https://bugs.webkit.org/show_bug.cgi?id=325185). This was reported on Fedora 
44 with fontconfig 2.17.0; the same mechanism applies to Ubuntu.
    - All applications lose the Type1 fonts.
    - Clearing caches doesn't help. Chrome recreates the symlinks on its next 
start and whenever it rescans a font directory. With session restore, that 
happens a few seconds after login.
    - Chrome isn't the only writer. Wavebox 154 and sharp 0.35.4 (libvips, 
which bundles fontconfig 2.18.3) have been reported to do the same, and 
Electron apps will follow as they move to Chromium 154+.
  
  STEPS TO REPRODUCE
  
  Ubuntu 26.04 with fonts-katex, fonts-urw-base35 and google-chrome-stable
  154 installed. No desktop session is needed. The counts are from my
  system.
  
      export XDG_CONFIG_HOME=$(mktemp -d) XDG_CACHE_HOME=$(mktemp -d)
      fc-cache
      fc-list | wc -l                            # 776
      google-chrome --headless=new --user-data-dir=$(mktemp -d) --no-first-run \
          --disable-gpu --screenshot=/tmp/s.png 'data:text/html,<p>x</p>'
      ls -l $XDG_CACHE_HOME/fontconfig           # all *.cache-9 are now 
symlinks to *.cache-12
      fc-list | wc -l                            # 706
      fc-list : file | grep -cE '\.(pfb|t1):'    # 0
      fc-list -v ':file=/usr/share/fonts/truetype/katex/KaTeX_Main-Bold.woff2'
                                                 # "Pattern has 2 elts": file + 
fontwrapper only
  
  #565 has a 5-line PyQt6 script that turns this into a segfault.
  
  WHY THIS NEEDS A FIX IN UBUNTU
  
    - 26.04 LTS will keep fontconfig 2.17.1 for its lifetime, and 26.10 
(stonking) also ships 2.17.1 (2.17.1-5ubuntu1). Upstream has no 2.17 branch.
    - Fixes on the writer side (fontconfig 2.18.x/2.19, Chromium, sharp, every 
Electron app) each have to reach users separately, and some writers will never 
update. Only the reader, i.e. the host library, can protect the whole system at 
once.
  
- PROPOSED FIX (not tested; I can't build packages here)
+ SUGGESTED FIX
  
- Make the host library reject cache files that were not written for its
- own cache version. Change "cache->version < FC_CACHE_VERSION_NUMBER" to
- "!=" in both places in src/fccache.c (FcDirCacheMapFd and
- FcDirCacheValidateHelper). With that change, 2.17.1 would ignore a
- .cache-12 reached through a .cache-9 symlink. It would fall back to
- /var/cache/fontconfig, or rescan and replace the symlink with its own
- cache through the usual atomic rename.
+ One option is to make the host library reject cache files that were not
+ written for its own cache version. Change "cache->version <
+ FC_CACHE_VERSION_NUMBER" to "!=" in both places in src/fccache.c
+ (FcDirCacheMapFd and FcDirCacheValidateHelper). With that change, 2.17.1
+ would ignore a .cache-12 reached through a .cache-9 symlink. It would
+ fall back to /var/cache/fontconfig, or rescan and replace the symlink
+ with its own cache through the usual atomic rename.
  
  Accepting newer versions only makes sense when the newer writer produces
  equivalent content, and that is no longer true for Fontations builds.
  Sandboxed runtimes (Flatpak/Snap) ship their own fontconfig, so this
  host-side change doesn't affect them.
  
  RELATED, POSSIBLY SEPARATE TASKS
  
    - qt6-base: the crash itself is fixed upstream in qtbase 80ddc8dee6a0 ("Fix 
crash when fontconfig fallback pattern has no charset", 2026-07-04; Pick-to 
6.12 6.11 6.8, not 6.10). Ubuntu's qt6-base 6.10.2 doesn't have it. Backporting 
it would stop the crash loops even while the caches are poisoned, although the 
Type1 fonts would still be missing.
    - Installation image: a commenter on #565 reports that the Kubuntu 26.04.1 
image (20260826.1) ships /var/cache/fontconfig/*.cache-9 files that already 
contain these placeholders for the fonts-katex WOFF files, although the 
archive's fontconfig 2.17.1 writes full patterns for them. My machine was 
installed from the same image, but its /var/cache/fontconfig was rebuilt while 
I was troubleshooting, so I can't confirm this myself.
  
  WORKAROUND
  
      # stop the crashes: hide WOFF/WOFF2 from fontconfig (fonts-katex also 
ships .ttf copies)
      mkdir -p ~/.config/fontconfig/conf.d
      printf '%s\n' 
'<fontconfig><selectfont><rejectfont><glob>*.woff</glob><glob>*.woff2</glob></rejectfont></selectfont></fontconfig>'
 \
          > ~/.config/fontconfig/conf.d/10-reject-woff.conf
      # restore the host's own caches (brings Type1 back); repeat after Chrome 
rescans
      find ~/.cache/fontconfig -name '*-le64.cache-9' -type l -delete && 
fc-cache
  
  ENVIRONMENT
  
    - Kubuntu 26.04.1 LTS (installed from image 20260826.1), Plasma 6.6.6 on 
Wayland, x86_64
    - fontconfig 2.17.1-3ubuntu1, qt6-base (libqt6gui6) 6.10.2+dfsg-7
    - google-chrome-stable 154.0.8037.57-1 (bundled fontconfig reports 
fc_version 0x2012003 = 2.18.3)

** Tags added: resolute stonking

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2168598

Title:
  fontconfig 2.17.1 loads caches written by bundled fontconfig 2.18.3
  (Chrome 154, sharp) through .cache-9 symlinks: Plasma crash loops,
  Type1 fonts disappear

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/fontconfig/+bug/2168598/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to