It sounds like what we are doing is shipping the "regional subset" fonts for all 4 CJK scripts. I wonder if we would do better to ship one unified font - I believe that at least with the GNOME stack, the rendered results will be equivalent, since Pango+Harfbuzz should set appropriate 'locl' tags (https://www.google.com/get/noto/help/cjk/).
Investigation would be required: * Am I right about GNOME?
* Do you also get the right behavior under Qt, LibreOffice, Web
browsers - they use harfbuzz, but do they set locl tags based on $LANG?
* How much smaller is this
* What if the user wants to get Korean fonts in LibreOffice with $LANG=ja_JP, or whatever?* How much smaller is this
But there would be an issue that in a font list the font would probably show up with a name that sounds language specific, which is bad.
Could also investigate whether installing the fonts in TTC form is broadly enough supported in the different rendering stacks and whether it gives space saving.
I do think we need to ship enough fonts to get the user through GDM and gnome-initial-setup to render correctly for major languages, but if we want to start installing additional weights/style variants after installation, there's a related issue at:
https://pagure.io/fedora-workstation/issue/27
https://pagure.io/fedora-workstation/issue/27
Owen
On Thu, Mar 29, 2018 at 12:06 PM, Adam Williamson <adamwill@xxxxxxxxxxxxxxxxx> wrote:
Well, I don't think this really is "all possible fonts". Just lookingOn Thu, 2018-03-29 at 15:57 +0000, Stephen Gallagher wrote:
> On Thu, Mar 29, 2018 at 10:12 AM Kevin Kofler <kevin.kofler@xxxxxxxxx>
> wrote:
>
> > Hi,
> >
> > we did more debugging on #fedora-kde (thanks in particular to lupinix) and
> > we found what seems to be the primary source of the bloat: CJK fonts!
> >
> > CJK fonts are by far the largest of all fonts due to the huge number of
> > characters used in those languages.
> >
> > Up to Fedora 26, Fedora shipped 4 CJK fonts:
> > <packagereq
> > type="default">adobe-source-han-sans-cn-fonts</packagereq>
> > <packagereq
> > type="default">adobe-source-han-sans-tw-fonts</packagereq>
> > <packagereq type="default">naver-nanum-gothic-fonts</packagereq>
> > <packagereq type="default">vlgothic-fonts</packagereq>
> > The KDE and LXQt Spins actually opted to blacklist these fonts in their
> > kickstart, and ship one compact CJK font instead: wqy-microhei-fonts.
> >
> > In Fedora 27, this Change:
> > https://fedoraproject.org/wiki/Changes/ChineseSerifFonts
> > added 2 additional fonts (for a total of 6):
> > <packagereq
> > type="default">adobe-source-han-serif-cn-fonts</ packagereq>
> > <packagereq
> > type="default">adobe-source-han-serif-tw-fonts</ packagereq>
> > which were unfortunately missing from the blacklist:
> > https://bugzilla.redhat.com/show_bug.cgi?id=1530006
> > already increasing the size of the image.
> >
> > But now in Fedora 28, after:
> > https://fedoraproject.org/wiki/Changes/ JPDefaultFontsToNoto
> > https://fedoraproject.org/wiki/Changes/ KRDefaultFontsToNoto
> > https://fedoraproject.org/wiki/Changes/ ChineseDefaultFontsToNoto
> > we actually ship a whopping 12 CJK fonts:
> > <packagereq type="default">google-noto-sans-jp-fonts</packagereq>
> > <packagereq type="default">google-noto-sans-kr-fonts</packagereq>
> > <packagereq
> > type="default">google-noto-sans-mono-cjk-jp-fonts</ packagereq>
> > <packagereq
> > type="default">google-noto-sans-mono-cjk-kr-fonts</ packagereq>
> > <packagereq
> > type="default">google-noto-sans-mono-cjk-sc-fonts</ packagereq>
> > <packagereq
> > type="default">google-noto-sans-mono-cjk-tc-fonts</ packagereq>
> > <packagereq type="default">google-noto-sans-sc-fonts</packagereq>
> > <packagereq type="default">google-noto-sans-tc-fonts</packagereq>
> > <packagereq type="default">google-noto-serif-jp-fonts</packagereq>
> > <packagereq type="default">google-noto-serif-kr-fonts</packagereq>
> > <packagereq type="default">google-noto-serif-sc-fonts</packagereq>
> > <packagereq type="default">google-noto-serif-tc-fonts</packagereq>
> > none of which are blacklisted in the Spins! According to lupinix, these
> > amount to a download size (and thus an xz-compressed size, which is also
> > the
> > compression algorithm used for the live images) of 364 MiB!
> >
> > The fix is to update the blacklists in the KDE and LXQt spin kickstarts, as
> > per the discussion under:
> > https://bugzilla.redhat.com/show_bug.cgi?id=1530006
> > IMHO, this needs to be implemented, urgently.
> >
> > But I think we also need to generally consider whether it makes sense to
> > force 3 font variants for each CJK language on all users worldwide, and
> > whether there are smaller fonts that could be used. (E.g.,
> > wqy-microhei-fonts is very effective, but unfortunately it only covers
> > Simplified Chinese and the syllabic parts of Japanese and Korean, not the
> > Traditional Chinese, Japanese or Korean renderings of the CJK Unified
> > Ideographs.)
> >
> >
>
> Kevin, thanks for the investigation and the detailed analysis. Great work
> tracking this down!
>
> I think our font strategy is a bit complicated, because we do strive to be
> an international distribution, but I feel like there must be better ways to
> accomplish this goal than to simply install all possible fonts by default.
at the list, one obvious improvement is that there now appear to be
sans, serif, and monospace fonts, whereas before there was only sans.
Would we ship images without serif and monospace fonts for Latin?
For those wondering what the other factors here are: 'jp' is Japanese,
'kr' is Korean, 'sc' is Simplified Chinese and 'tc' is Traditional
Chinese. We could go more into the details on the relationships between
them and why we might need different fonts for them all, but I think
what we really ought to do is go to the actual experts here - the g11n
teams, and specifically CJK specialists on those teams - explain the
problem, and see what they recommend as the best way forward to provide
an acceptable experience for CJK users of our images while keeping
sizes reasonable.
> I know that for GNOME at least, there's some PackageKit integration that
> allows users to be prompted to install fonts as-needed (though it also
> seems to trigger whenever I accidentally `cat` a binary file in the
> terminal :-) ). Perhaps we can look into finding a desktop-agnostic way of
> doing this and then limit our installed fonts to only a few minimal ones
> based on the language selected in Anaconda?
The obvious problem here is *live* images, though. I'd say we want the
live environment to be practical for CJK users without them having to
do large downloads and installs that, in the live environment, will eat
up RAM...
--
Adam Williamson
Fedora QA Community Monkey
IRC: adamw | Twitter: AdamW_Fedora | XMPP: adamw AT happyassassin . net
http://www.happyassassin.net
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@lists.fedoraproject.org
_______________________________________________ devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx