aboutsummarylogtreecommitdiffstats
diff options
context:
space:
mode:
-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.