aboutsummarylogtreecommitdiffstats
diff options
context:
space:
mode:
authortinywrkb2022-04-01 02:19:47 +0300
committertinywrkb2022-04-01 02:20:19 +0300
commit8ade55a4fedcc28ee76e3896c29b54b2138aa463 (patch)
treeddc9fd05bb01b113f265e7915e80bab5c3f9c81d
parentfe58ca9d9932c0439fc5ef4820ad29e7e06855fe (diff)
downloadaur-8ade55a4fedcc28ee76e3896c29b54b2138aa463.tar.gz
bump to 20220126-3: update Noto Sans CJK source
Update link to the source zip archive of the Noto Sans Mono fonts which was changed without a new tagged release. Due to a typo the regional subset fonts were installed with incorrect names. This is now fixed. It was a bit wrong to correlate the default font language to opentype locl in the description of the language specific CJK fonts packages, so pkgdesc values were updated. README.md now has the latest details about the source of the issue affecting variable OTCs and apps that use Pango.
-rw-r--r--.SRCINFO14
-rw-r--r--PKGBUILD20
-rw-r--r--README.md53
3 files changed, 70 insertions, 17 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 3e9a2ab58cef..ed51641ef6de 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -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
diff --git a/PKGBUILD b/PKGBUILD
index 32fc22fdf5d2..dbe6e8326b9d 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -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.