Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 1236034
Summary: | many fonts missing in fontconfig cache after installation, forced refresh needed | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Kamil Páral <kparal> | ||||||||||||||||||
Component: | fontconfig | Assignee: | Akira TAGOH <tagoh> | ||||||||||||||||||
Status: | CLOSED NEXTRELEASE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||||||||||||||||
Severity: | unspecified | Docs Contact: | |||||||||||||||||||
Priority: | unspecified | ||||||||||||||||||||
Version: | 22 | CC: | andrew, awilliam, fonts-bugs, i18n-bugs, kparal, mattdm, mfabian, pnemade, robatino, rwf, sgraf, tagoh, thierry.vignaud | ||||||||||||||||||
Target Milestone: | --- | Keywords: | CommonBugs | ||||||||||||||||||
Target Release: | --- | ||||||||||||||||||||
Hardware: | Unspecified | ||||||||||||||||||||
OS: | Unspecified | ||||||||||||||||||||
Whiteboard: | https://fedoraproject.org/wiki/Common_F23_bugs#missing-fonts-netinst AcceptedBlocker | ||||||||||||||||||||
Fixed In Version: | 2.11.94-4.fc22 | Doc Type: | Bug Fix | ||||||||||||||||||
Doc Text: | Story Points: | --- | |||||||||||||||||||
Clone Of: | |||||||||||||||||||||
: | 1263097 (view as bug list) | Environment: | |||||||||||||||||||
Last Closed: | 2015-09-01 03:36:52 UTC | Type: | Bug | ||||||||||||||||||
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: | 1170821, 1263097 | ||||||||||||||||||||
Attachments: |
|
Description
Kamil Páral
2015-06-26 12:00:42 UTC
Created attachment 1043488 [details]
fontconfig cache
To extract with selinux labels, use --selinux option with tar (and --preserve or run it as root).
Could very well be the same as https://bugzilla.redhat.com/show_bug.cgi?id=1169979 . We did speculate at the time that it might possibly happen on non-live installs (was this a non-live install?) Thanks. fc-cache checks mtime and the number of fonts in dir to detect the updates. so copying the cache here doesn't help to reproduce this issue here. If you can still reproduce it, can you attach the log of FC_DEBUG=48 fc-cache and mtime for /usr/share/fonts/dejavu and fonts there might speed up to investigate this. (In reply to Adam Williamson from comment #2) > Could very well be the same as > https://bugzilla.redhat.com/show_bug.cgi?id=1169979 . We did speculate at > the time that it might possibly happen on non-live installs (was this a > non-live install?) Yes, this was Workstation netinst install. (In reply to Akira TAGOH from comment #3) > Thanks. fc-cache checks mtime and the number of fonts in dir to detect the > updates. so copying the cache here doesn't help to reproduce this issue here. > If you can still reproduce it, can you attach the log of FC_DEBUG=48 > fc-cache and mtime for /usr/share/fonts/dejavu and fonts there might speed > up to investigate this. $ ls -ld /usr/share/fonts/dejavu drwxr-xr-x. 2 root root 4096 Jun 24 13:21 /usr/share/fonts/dejavu $ ls -l /usr/share/fonts/dejavu total 9416 -rw-r--r--. 1 root root 641716 May 17 10:12 DejaVuSans-BoldOblique.ttf -rw-r--r--. 1 root root 704128 May 17 10:12 DejaVuSans-Bold.ttf -rw-r--r--. 1 root root 610260 May 17 10:12 DejaVuSansCondensed-BoldOblique.ttf -rw-r--r--. 1 root root 663468 May 17 10:12 DejaVuSansCondensed-Bold.ttf -rw-r--r--. 1 root root 597708 May 17 10:12 DejaVuSansCondensed-Oblique.ttf -rw-r--r--. 1 root root 679256 May 17 10:12 DejaVuSansCondensed.ttf -rw-r--r--. 1 root root 355204 May 17 10:12 DejaVuSans-ExtraLight.ttf -rw-r--r--. 1 root root 253116 May 17 10:12 DejaVuSansMono-BoldOblique.ttf -rw-r--r--. 1 root root 331536 May 17 10:12 DejaVuSansMono-Bold.ttf -rw-r--r--. 1 root root 251472 May 17 10:12 DejaVuSansMono-Oblique.ttf -rw-r--r--. 1 root root 340240 May 17 10:12 DejaVuSansMono.ttf -rw-r--r--. 1 root root 633836 May 17 10:12 DejaVuSans-Oblique.ttf -rw-r--r--. 1 root root 756072 May 17 10:12 DejaVuSans.ttf -rw-r--r--. 1 root root 347064 May 17 10:12 DejaVuSerif-BoldItalic.ttf -rw-r--r--. 1 root root 355692 May 17 10:12 DejaVuSerif-Bold.ttf -rw-r--r--. 1 root root 346112 May 17 10:12 DejaVuSerifCondensed-BoldItalic.ttf -rw-r--r--. 1 root root 330852 May 17 10:12 DejaVuSerifCondensed-Bold.ttf -rw-r--r--. 1 root root 344940 May 17 10:12 DejaVuSerifCondensed-Italic.ttf -rw-r--r--. 1 root root 346272 May 17 10:12 DejaVuSerifCondensed.ttf -rw-r--r--. 1 root root 345612 May 17 10:12 DejaVuSerif-Italic.ttf -rw-r--r--. 1 root root 379740 May 17 10:12 DejaVuSerif.ttf Created attachment 1044268 [details]
sudo FC_DEBUG=48 fc-cache /usr/share/fonts/dejavu/
Created attachment 1044269 [details]
sudo FC_DEBUG=48 fc-cache -f /usr/share/fonts/dejavu/
It seems not only DejaVu fonts were missing. I compared fc-list with the original fontconfig cache and after running fc-cache -f (without any directory as an argument), and these fonts were added into fc-list: $ diff fc-list.before fc-list.after 55a56,62 > /usr/share/fonts/dejavu/DejaVuSans-BoldOblique.ttf: DejaVu Sans:style=Bold Oblique > /usr/share/fonts/dejavu/DejaVuSans-Bold.ttf: DejaVu Sans:style=Bold > /usr/share/fonts/dejavu/DejaVuSansCondensed-BoldOblique.ttf: DejaVu Sans,DejaVu Sans Condensed:style=Condensed Bold Oblique,Bold Oblique > /usr/share/fonts/dejavu/DejaVuSansCondensed-Bold.ttf: DejaVu Sans,DejaVu Sans Condensed:style=Condensed Bold,Bold > /usr/share/fonts/dejavu/DejaVuSansCondensed-Oblique.ttf: DejaVu Sans,DejaVu Sans Condensed:style=Condensed Oblique,Oblique > /usr/share/fonts/dejavu/DejaVuSansCondensed.ttf: DejaVu Sans,DejaVu Sans Condensed:style=Condensed,Book > /usr/share/fonts/dejavu/DejaVuSans-ExtraLight.ttf: DejaVu Sans,DejaVu Sans Light:style=ExtraLight 59a67,68 > /usr/share/fonts/dejavu/DejaVuSans-Oblique.ttf: DejaVu Sans:style=Oblique > /usr/share/fonts/dejavu/DejaVuSans.ttf: DejaVu Sans:style=Book 69a79 > /usr/share/fonts/fontawesome/fontawesome-webfont.woff: FontAwesome:style=Regular 90a101 > /usr/share/fonts/google-noto/NotoSansLisu-Regular.ttf: Noto Sans Lisu:style=Regular 91a103,105 > /usr/share/fonts/google-noto/NotoSansTagalog-Regular.ttf: Noto Sans Tagalog:style=Regular > /usr/share/fonts/google-noto/NotoSansTaiTham-Regular.ttf: Noto Sans Tai Tham:style=Regular > /usr/share/fonts/google-noto/NotoSansTaiViet-Regular.ttf: Noto Sans Tai Viet:style=Regular 104a119,122 > /usr/share/fonts/liberation/LiberationSerif-BoldItalic.ttf: Liberation Serif:style=Bold Italic > /usr/share/fonts/liberation/LiberationSerif-Bold.ttf: Liberation Serif:style=Bold > /usr/share/fonts/liberation/LiberationSerif-Italic.ttf: Liberation Serif:style=Italic > /usr/share/fonts/liberation/LiberationSerif-Regular.ttf: Liberation Serif:style=Regular 114a133,148 > /usr/share/fonts/mathjax/MathJax_AMS-Regular.otf: MathJax_AMS:style=Regular > /usr/share/fonts/mathjax/MathJax_Caligraphic-Bold.otf: MathJax_Caligraphic:style=Bold > /usr/share/fonts/mathjax/MathJax_Caligraphic-Regular.otf: MathJax_Caligraphic:style=Regular > /usr/share/fonts/mathjax/MathJax_Fraktur-Bold.otf: MathJax_Fraktur:style=Bold > /usr/share/fonts/mathjax/MathJax_Fraktur-Regular.otf: MathJax_Fraktur:style=Regular > /usr/share/fonts/mathjax/MathJax_Main-Bold.otf: MathJax_Main:style=Bold > /usr/share/fonts/mathjax/MathJax_Main-Italic.otf: MathJax_Main:style=Italic > /usr/share/fonts/mathjax/MathJax_Main-Regular.otf: MathJax_Main:style=Regular > /usr/share/fonts/mathjax/MathJax_Math-BoldItalic.otf: MathJax_Math:style=BoldItalic > /usr/share/fonts/mathjax/MathJax_Math-Italic.otf: MathJax_Math:style=Italic > /usr/share/fonts/mathjax/MathJax_Math-Regular.otf: MathJax_Math:style=Regular > /usr/share/fonts/mathjax/MathJax_SansSerif-Bold.otf: MathJax_SansSerif:style=Bold > /usr/share/fonts/mathjax/MathJax_SansSerif-Italic.otf: MathJax_SansSerif:style=Italic > /usr/share/fonts/mathjax/MathJax_SansSerif-Regular.otf: MathJax_SansSerif:style=Regular > /usr/share/fonts/mathjax/MathJax_Script-Regular.otf: MathJax_Script:style=Regular > /usr/share/fonts/mathjax/MathJax_Size1-Regular.otf: MathJax_Size1:style=Regular I have tried to reproduce this with clean VM installation with F22 Workstation netinst. I reproduced it in 2 out of 2 attempts. The first time, the missing fonts were: > /usr/share/fonts/google-noto/NotoSansLisu-Regular.ttf: Noto Sans Lisu:style=Regular 98a100,101 > /usr/share/fonts/google-noto/NotoSansTagalog-Regular.ttf: Noto Sans Tagalog:style=Regular > /usr/share/fonts/google-noto/NotoSansTaiTham-Regular.ttf: Noto Sans Tai Tham:style=Regular 111a115,118 > /usr/share/fonts/liberation/LiberationSerif-BoldItalic.ttf: Liberation Serif:style=Bold Italic > /usr/share/fonts/liberation/LiberationSerif-Bold.ttf: Liberation Serif:style=Bold > /usr/share/fonts/liberation/LiberationSerif-Italic.ttf: Liberation Serif:style=Italic > /usr/share/fonts/liberation/LiberationSerif-Regular.ttf: Liberation Serif:style=Regular The second time, the missing fonts were: > /usr/share/fonts/dejavu/DejaVuSans-BoldOblique.ttf: DejaVu Sans:style=Bold Oblique > /usr/share/fonts/dejavu/DejaVuSans-Bold.ttf: DejaVu Sans:style=Bold > /usr/share/fonts/dejavu/DejaVuSansCondensed-BoldOblique.ttf: DejaVu Sans,DejaVu Sans Condensed:style=Condensed Bold Oblique,Bold Oblique > /usr/share/fonts/dejavu/DejaVuSansCondensed-Bold.ttf: DejaVu Sans,DejaVu Sans Condensed:style=Condensed Bold,Bold > /usr/share/fonts/dejavu/DejaVuSansCondensed-Oblique.ttf: DejaVu Sans,DejaVu Sans Condensed:style=Condensed Oblique,Oblique > /usr/share/fonts/dejavu/DejaVuSansCondensed.ttf: DejaVu Sans,DejaVu Sans Condensed:style=Condensed,Book > /usr/share/fonts/dejavu/DejaVuSans-ExtraLight.ttf: DejaVu Sans,DejaVu Sans Light:style=ExtraLight > /usr/share/fonts/dejavu/DejaVuSansMono-BoldOblique.ttf: DejaVu Sans Mono:style=Bold Oblique > /usr/share/fonts/dejavu/DejaVuSansMono-Bold.ttf: DejaVu Sans Mono:style=Bold > /usr/share/fonts/dejavu/DejaVuSansMono-Oblique.ttf: DejaVu Sans Mono:style=Oblique > /usr/share/fonts/dejavu/DejaVuSansMono.ttf: DejaVu Sans Mono:style=Book > /usr/share/fonts/dejavu/DejaVuSans-Oblique.ttf: DejaVu Sans:style=Oblique > /usr/share/fonts/dejavu/DejaVuSans.ttf: DejaVu Sans:style=Book 84a98 > /usr/share/fonts/google-noto/NotoSansLisu-Regular.ttf: Noto Sans Lisu:style=Regular 85a100,102 > /usr/share/fonts/google-noto/NotoSansTagalog-Regular.ttf: Noto Sans Tagalog:style=Regular > /usr/share/fonts/google-noto/NotoSansTaiTham-Regular.ttf: Noto Sans Tai Tham:style=Regular > /usr/share/fonts/google-noto/NotoSansTaiViet-Regular.ttf: Noto Sans Tai Viet:style=Regular 97a115,118 > /usr/share/fonts/liberation/LiberationSerif-BoldItalic.ttf: Liberation Serif:style=Bold Italic > /usr/share/fonts/liberation/LiberationSerif-Bold.ttf: Liberation Serif:style=Bold > /usr/share/fonts/liberation/LiberationSerif-Italic.ttf: Liberation Serif:style=Italic > /usr/share/fonts/liberation/LiberationSerif-Regular.ttf: Liberation Serif:style=Regular It seems this is trivial to reproduce and happens for many, if not all, (non-Live) installs. Yes, I've done a number of workstation netinst installs and they've all had this problem. I can confirm that this is still the case on netinst-based F22 Workstation installs, with the same general symptoms as bug 1169979. I've been using the fc-cache -f workaround in post-installation scripts for a while now. I have reproduced this with F23 Alpha RC1 Workstation netinst (booted over PXE, but that shouldn't matter) having fontconfig-2.11.94-2.fc23.x86_64. Again, after forced refresh, new fonts appear (in this case NotoSansT* and LiberationSans*). Proposing as a F23 blocker bug. Probably the closest criterion we have is "All applications that can be launched using the standard graphical mechanism of a release-blocking desktop after a default installation of that desktop must start successfully and withstand a basic functionality test. " https://fedoraproject.org/wiki/Fedora_23_Final_Release_Criteria#Default_application_functionality We can also argue this breaks our localization support. The reasoning is that missing fonts can cause difficulties, like applications and web pages not rendering certain characters, symbols or whole languages correctly. Even if some characters are rendered using a fallback font, it can have completely different characteristics (that's how I've found this bug, my favorite website had an ugly and unusually small font). The affected fonts seem to be random. Reproducer: 1. take F22 or F23 Workstation netinst image (has to be netinst), install it 2. fc-list | sort > fonts.before 3. sudo fc-cache -f 4. fc-list | sort > fonts.after 5. diff fonts.before fonts.after 6. there should be no difference, but it is just wrote a patch. but I'm not sure if it really fixes this issue because it's difficult to reproduce this with the usual usage. so if anyone can test it, that would be appreciated. here is the testing package: http://koji.fedoraproject.org/koji/taskinfo?taskID=10679400 or if I should simply go ahead with it for f23, please let me know. I've reproduced it every time when using netinst. We would need a F23 build, so that we can pull it during installation. Sure. I wanted to push the certain fix for this and to know if it is possible to test before that. I'll build it for f23 anyway. fontconfig-2.11.94-3.fc23 has been submitted as an update for Fedora 23. https://admin.fedoraproject.org/updates/fontconfig-2.11.94-3.fc23 It's easier to test with F23 than with Rawhide, because it's known to work right now and we have all the install media, that's why I asked for a F23 build. But just a Koji build link would be enough, proposing it as an update in Bodhi is not needed. Unfortunately, fontconfig-2.11.94-3.fc23 does not fix the issue. It's easy to try: 1. koji download-build --arch x86_64 --arch noarch fontconfig-2.11.94-3.fc23 2. createrepo -v . 3. share the dir over http 4. boot F23 Alpha Workstation netinst x86_64 5. in Installation Source, add a new (additional) http repo pointing to your repo 6. install Workstation 7. once booted, compare `fc-list | sorted` before and after running `sudo fc-cache -f` I tried it twice, it showed missing fonts in both cases. I'll upload logs for one of the attempts. Created attachment 1062396 [details]
fc-list before cache update
Created attachment 1062397 [details] fc-list after cache update The diff is: 99a100,102 > /usr/share/fonts/google-noto/NotoSansTagalog-Regular.ttf: Noto Sans Tagalog:style=Regular > /usr/share/fonts/google-noto/NotoSansTaiTham-Regular.ttf: Noto Sans Tai Tham:style=Regular > /usr/share/fonts/google-noto/NotoSansTaiViet-Regular.ttf: Noto Sans Tai Viet:style=Regular 107a111,114 > /usr/share/fonts/liberation/LiberationSans-BoldItalic.ttf: Liberation Sans:style=Bold Italic > /usr/share/fonts/liberation/LiberationSans-Bold.ttf: Liberation Sans:style=Bold > /usr/share/fonts/liberation/LiberationSans-Italic.ttf: Liberation Sans:style=Italic > /usr/share/fonts/liberation/LiberationSans-Regular.ttf: Liberation Sans:style=Regular Created attachment 1062398 [details]
mtime for /usr/share/fonts
Created attachment 1062399 [details]
debug output for fc-cache
Created attachment 1062400 [details]
debug output for fc-cache -f
Thanks. I can reproduce this with the above step. the problem was, even though the mtime of the font directory is newer than the cache for that, fontconfig considered it is same so that fontconfig doesn't take a look at the nano second of the mtime. I'll build the package with the fix shortly. fontconfig-2.11.94-4.fc23 has been submitted as an update for Fedora 23. https://admin.fedoraproject.org/updates/fontconfig-2.11.94-4.fc23 I tried it twice, and it worked in both cases! The problem seems fixed. Great job. Could you please also send the fix to Rawhide and F22, so that future F22 netinst installations are not affected by this? The fixed version of fontconfig should has already been available for rawhide. will push the fix to f22 later. thanks for testing. fontconfig-2.11.94-4.fc22 has been submitted as an update to Fedora 22. https://bugzilla.redhat.com/show_bug.cgi?id=1236034 Discussed at 2015-08-20 blocker review meeting: http://meetbot-raw.fedoraproject.org/fedora-blocker-review/2015-08-20/f23-blocker-review.2015-08-20-16.05.log.txt . Accepted as a blocker per criterion cited in #c11. fontconfig-2.11.94-4.fc22 has been pushed to the Fedora 22 testing repository. If problems still persist, please make note of it in this bug report.\nIf you want to test the update, you can install it with \n su -c 'yum --enablerepo=updates-testing update fontconfig'. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2015-13797 fontconfig-2.11.94-4.fc23 has been pushed to the Fedora 23 stable repository. If problems still persist, please make note of it in this bug report. Also such a bug could be mitigated by using a file trigger IN FC24 (such as done for years in Mageia). File triggers are now available in upstream rpm (rpm-4.13.0RC1) Instead of firing fc-config in every font package's %post, this can be done in post-transaction file triggers if any updated or newly installed file's path matches one of the filetrigger's pathes Yes, that's true. but is the trigger fired per files? that may be too many to update the cache since the cache is stored/updated per directories. if there are any pointers that explains more details of that feature, that would be appreciated. See http://www.rpm.org/wiki/FileTriggers You want something like: # rpm filetriggers to update cache %transfiletriggerin -- /usr/share/X11/fonts/Type1 /usr/share/X11/fonts/TTF /usr/local/share/fonts fc-cache -s Thanks! Done in rawhide. let's see. fontconfig-2.11.94-4.fc22 has been pushed to the Fedora 22 stable repository. If problems still persist, please make note of it in this bug report. |