diff options
-rw-r--r-- | .SRCINFO | 14 | ||||
-rw-r--r-- | PKGBUILD | 20 | ||||
-rw-r--r-- | README.md | 53 |
3 files changed, 70 insertions, 17 deletions
@@ -1,7 +1,7 @@ pkgbase = noto-fonts-cjk-vf pkgdesc = Google Noto CJK variable fonts pkgver = 20220126 - pkgrel = 2 + pkgrel = 3 url = https://www.google.com/get/noto/ arch = any license = custom:SIL @@ -18,7 +18,7 @@ pkgbase = noto-fonts-cjk-vf source = 70-noto-kr.conf source = 70-noto-sc.conf source = 70-noto-tc.conf - sha256sums = c3d297e0ca1a78b1f8965b65bac9da4402185dbb02f75111f834fa9b9b290d60 + sha256sums = d1e143273cc7ad37b710cdb0d188a32553cee9cfd60129dcee9d59f91e3c6b48 sha256sums = 3a73c225abcfd5742ab84e613b427fb5b40c9e59b70fe3d1683f9b1da96568a0 sha256sums = bedeb86226fefd5fd69b54ed4660415861864f879c0b7da08b1fd71ca35a78b0 sha256sums = 357e9ed6553087567ec5a28f835db5c43d3cd68a688e4677f759cca465379a32 @@ -31,19 +31,19 @@ pkgbase = noto-fonts-cjk-vf pkgname = noto-fonts-cjk-vf pkgname = noto-fonts-cjk-hk-vf - pkgdesc = Google Noto CJK variable fonts - Traditional Chinese HK as default language (OpenType locl) + pkgdesc = Google Noto CJK variable fonts with Traditional Chinese HK as the default language pkgname = noto-fonts-cjk-jp-vf - pkgdesc = Google Noto CJK variable fonts - Japanese as default language (OpenType locl) + pkgdesc = Google Noto CJK variable fonts with Japanese as the default language pkgname = noto-fonts-cjk-kr-vf - pkgdesc = Google Noto CJK variable fonts - Korean as default language (OpenType locl) + pkgdesc = Google Noto CJK variable fonts with Korean as the default language pkgname = noto-fonts-cjk-sc-vf - pkgdesc = Google Noto CJK variable fonts - Simplified Chinese as default language (OpenType locl) + pkgdesc = Google Noto CJK variable fonts with Simplified Chinese as the default language pkgname = noto-fonts-cjk-tc-vf - pkgdesc = Google Noto CJK variable fonts - Traditional Chinese as default language (OpenType locl) + pkgdesc = Google Noto CJK variable fonts with Traditional Chinese as the default language pkgname = noto-fonts-hk-vf pkgdesc = Google Noto Traditional Chinese HK variable fonts @@ -5,7 +5,7 @@ pkgbase=noto-fonts-cjk-vf pkgname=(noto-fonts-{cjk,{cjk-,}{hk,jp,kr,sc,tc}}-vf) pkgver=20220126 -pkgrel=2 +pkgrel=3 pkgdesc='Google Noto CJK variable fonts' url='https://www.google.com/get/noto/' license=(custom:SIL) @@ -22,7 +22,7 @@ source=("noto-cjk-sans-${_sansver}.zip::https://github.com/googlefonts/noto-cjk/ "NotoSansMonoCJK-VF-${_sansver}.otf.ttc::https://github.com/googlefonts/noto-cjk/raw/${_sanscommit}/Sans/Variable/OTC/NotoSansMonoCJK-VF.otf.ttc" "noto-cjk-serif-${_serifver}.zip::https://github.com/googlefonts/noto-cjk/releases/download/Serif2.001/02_NotoSerifCJK-OTF-VF.zip" 70-noto-{cjk,hk,jp,kr,sc,tc}.conf) -sha256sums=('c3d297e0ca1a78b1f8965b65bac9da4402185dbb02f75111f834fa9b9b290d60' +sha256sums=('d1e143273cc7ad37b710cdb0d188a32553cee9cfd60129dcee9d59f91e3c6b48' '3a73c225abcfd5742ab84e613b427fb5b40c9e59b70fe3d1683f9b1da96568a0' 'bedeb86226fefd5fd69b54ed4660415861864f879c0b7da08b1fd71ca35a78b0' '357e9ed6553087567ec5a28f835db5c43d3cd68a688e4677f759cca465379a32' @@ -37,11 +37,11 @@ _langs=(hk jp kr sc tc) prepare() { mkdir -p noto-cjk/{Sans,Serif} - bsdtar -xf noto-cjk-sans-${_sansver}.zip -C noto-cjk/Sans --exclude=../LICENSE + bsdtar -xf noto-cjk-sans-${_sansver}.zip -C noto-cjk/Sans # variable mono otc is missing https://github.com/googlefonts/noto-cjk/issues/214 cp NotoSansMonoCJK-VF-${_sansver}.otf.ttc noto-cjk/Sans/Variable/OTC/NotoSansMonoCJK-VF.otf.ttc bsdtar -xf noto-cjk-serif-${_serifver}.zip -C noto-cjk/Serif --exclude=../LICENSE - bsdtar -Oxf noto-cjk-sans-${_sansver}.zip ../LICENSE > noto-cjk/LICENSE + cp noto-cjk/Sans/LICENSE noto-cjk/LICENSE } package_noto-fonts-cjk-vf(){ @@ -108,7 +108,7 @@ _package_subset(){ for _font in Sans Serif; do install -Dm644 \ ${_font}/Variable/OTF/Subset/Noto${_font}${_lang^^}-VF.otf \ - "$pkgdir"/usr/share/fonts/noto-cjk/Noto{_font}${_lang^^}.otf + "$pkgdir"/usr/share/fonts/noto-cjk/Noto${_font}${_lang^^}.otf # mono is available only for sans [ "${_font}" = "Sans" ] || continue @@ -128,35 +128,35 @@ _package_subset(){ } package_noto-fonts-cjk-hk-vf(){ - pkgdesc+=' - Traditional Chinese HK as default language (OpenType locl)' + pkgdesc+=' with Traditional Chinese HK as the default language' _lang=hk _package_locl } package_noto-fonts-cjk-jp-vf(){ - pkgdesc+=' - Japanese as default language (OpenType locl)' + pkgdesc+=' with Japanese as the default language' _lang=jp _package_locl } package_noto-fonts-cjk-kr-vf(){ - pkgdesc+=' - Korean as default language (OpenType locl)' + pkgdesc+=' with Korean as the default language' _lang=kr _package_locl } package_noto-fonts-cjk-sc-vf(){ - pkgdesc+=' - Simplified Chinese as default language (OpenType locl)' + pkgdesc+=' with Simplified Chinese as the default language' _lang=sc _package_locl } package_noto-fonts-cjk-tc-vf(){ - pkgdesc+=' - Traditional Chinese as default language (OpenType locl)' + pkgdesc+=' with Traditional Chinese as the default language' _lang=tc _package_locl diff --git a/README.md b/README.md new file mode 100644 index 000000000000..ee6720fd604b --- /dev/null +++ b/README.md @@ -0,0 +1,53 @@ +# Noto CJK Variable Fonts + +## What's up with all these split packages? + +That's a lot of split packages, I suggest that you start by reading the fonts formats documentation in the +`README.md` files of the [Sans](https://github.com/googlefonts/noto-cjk/blob/main/Sans/README.md) or [Serif](https://github.com/googlefonts/noto-cjk/blob/main/Serif/README.md) fonts before asking what you should install. + +There are 3 types of packages here: + +* `noto-fonts-cjk-vf`: `Variable OTCs` + It's recommended to set the `LANG` or `LANGUAGE` environment variables (e.g. `LANG=zh_CN.UTF-8`), + which will select the correct glyphs. + Without it, the fonts might fall back to Japanese glyphs when the language of a text cannot be defined or + auto-recognized (or too costly to recognize) by the application, and the OpenType locl is not being set. + Other environment variables: `FC_LANG`, `PANGO_LANGUAGE`. + For this to work correctly, HarfBuzz 3.3.0 or newer is required, see more details below. +* `noto-fonts-cjk{-language}-vf`: `Variable Multilingual OTF` + Multi-lingual CJK with a default language set for applications that don't apply OpenType locl. + You can still set `LANG` or `LANGUAGE` environment variables and the setting will be respected, + but if you don't then it will use the default language set in the font. +* `noto-fonts{-language}-vf`: `Variable Region-specific OTF` + Containing only a subset version of the font for a specific language. + Multi-lingual monospace font is packaged because there aren't subset versions of monospace fonts. + I'm not completely sure about the font config for the monospace font, so feedback would be appreciated. + +## Variable OTCs and HarfBuzz <3.0.0 + +Before HarfBuzz 3.3.0, the `Variable OTCs` fonts were pretty much unusable with apps that use Pango for rendering fonts. +It was possible to make them sort of working by explicitly configuring apps to load the specific regional/language +font variant (e.g. `Noto Sans CJK SC`), and by using the `<alias>` and `<prefer>` elements in `fonts.conf` +(see details in [the Arch Wiki](https://wiki.archlinux.org/title/Fonts#Fallback_font_order)), but it was a hit-and-miss, and it should have worked without any extra setting, +automatically loading the missing glyphs from the fonts. +From what I can tell, it's fixed since HarfBuzz 3.3.0, but anything that brings it own +outdated `libharfbuzz.so` will still be broken. This means Flatpak, AppImage, proprietary, etc. +[My MR backporting the needed changes to the Freedesktop Flatpak runtime](https://gitlab.com/freedesktop-sdk/freedesktop-sdk/-/merge_requests/7971) was merged, so you can expect that this +issue will be fixed for applications that use the following runtimes or newer: `Freedesktop 21.08`, `Gnome 41`, `KDE 5.15-21.08`. + +## Other notes + +* The packaged fonts versions will lag a couple of days behind the latest upstream release. + This is because Github's auto-generated tarball for the latest git commit is not available + immediately, likely due to the size of ref checkout. + I prefer to avoid switching to a git source, as cloning is too slow, and ~7GB git repo is not + something I want to keep around for a package that does not requires frequent updates. + +## Updates + +* 2022-04-01: The issue affecting Variable OTCs is related to HarfBuzz and was fixed in version 3.3.0. + So this is fixed not only for system installed applications, but soon also with Flatpak applications that + use runtimes based on `Freedesktop 21.08`, as the runtime's libharfbuzz 3.0.0 is patched with the fix. +* 2022-02-23: A section about OpenType locl issue with Pango apps was added. It's recommended to avoid the + `Variable OTCs` package. +* 2022-01-26: There are now variable Serif fonts for all the languages. The generated packages are much smaller. |