cs10
imports/cs10/google-noto-serif-cjk-vf-fonts-2.002-5.el10
commit
e700d638bd
@ -0,0 +1 @@
|
|||||||
|
SOURCES/02_NotoSerifCJK-OTF-VF.zip
|
@ -0,0 +1 @@
|
|||||||
|
74e731b91df9893af129be5e45058abbe3134956 SOURCES/02_NotoSerifCJK-OTF-VF.zip
|
@ -0,0 +1,112 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<fontconfig>
|
||||||
|
<match target="scan">
|
||||||
|
<test name="family">
|
||||||
|
<string>Noto Serif CJK SC</string>
|
||||||
|
</test>
|
||||||
|
<edit name="lang" mode="assign">
|
||||||
|
<minus>
|
||||||
|
<name>lang</name>
|
||||||
|
<langset>
|
||||||
|
<string>ja</string>
|
||||||
|
<string>ko</string>
|
||||||
|
<string>zh-hk</string>
|
||||||
|
<string>zh-mo</string>
|
||||||
|
<string>zh-tw</string>
|
||||||
|
<string>cmn</string>
|
||||||
|
<string>hak</string>
|
||||||
|
<string>lzh</string>
|
||||||
|
<string>nan</string>
|
||||||
|
<string>yue</string>
|
||||||
|
</langset>
|
||||||
|
</minus>
|
||||||
|
</edit>
|
||||||
|
</match>
|
||||||
|
<match target="scan">
|
||||||
|
<test name="family">
|
||||||
|
<string>Noto Serif CJK TC</string>
|
||||||
|
</test>
|
||||||
|
<edit name="lang" mode="assign">
|
||||||
|
<minus>
|
||||||
|
<name>lang</name>
|
||||||
|
<langset>
|
||||||
|
<string>ja</string>
|
||||||
|
<string>ko</string>
|
||||||
|
<string>zh-cn</string>
|
||||||
|
<string>zh-hk</string>
|
||||||
|
<string>zh-mo</string>
|
||||||
|
<string>zh-sg</string>
|
||||||
|
<string>yue</string>
|
||||||
|
</langset>
|
||||||
|
</minus>
|
||||||
|
</edit>
|
||||||
|
</match>
|
||||||
|
<match target="scan">
|
||||||
|
<test name="family">
|
||||||
|
<string>Noto Serif CJK HK</string>
|
||||||
|
</test>
|
||||||
|
<edit name="lang" mode="assign">
|
||||||
|
<minus>
|
||||||
|
<name>lang</name>
|
||||||
|
<langset>
|
||||||
|
<string>ja</string>
|
||||||
|
<string>ko</string>
|
||||||
|
<string>zh-cn</string>
|
||||||
|
<string>zh-sg</string>
|
||||||
|
<string>zh-tw</string>
|
||||||
|
<string>cmn</string>
|
||||||
|
<string>hak</string>
|
||||||
|
<string>lzh</string>
|
||||||
|
<string>nan</string>
|
||||||
|
</langset>
|
||||||
|
</minus>
|
||||||
|
</edit>
|
||||||
|
</match>
|
||||||
|
<match target="scan">
|
||||||
|
<test name="family">
|
||||||
|
<string>Noto Serif CJK JP</string>
|
||||||
|
</test>
|
||||||
|
<edit name="lang" mode="assign">
|
||||||
|
<minus>
|
||||||
|
<name>lang</name>
|
||||||
|
<langset>
|
||||||
|
<string>ko</string>
|
||||||
|
<string>zh-cn</string>
|
||||||
|
<string>zh-hk</string>
|
||||||
|
<string>zh-mo</string>
|
||||||
|
<string>zh-sg</string>
|
||||||
|
<string>zh-tw</string>
|
||||||
|
<string>cmn</string>
|
||||||
|
<string>hak</string>
|
||||||
|
<string>lzh</string>
|
||||||
|
<string>nan</string>
|
||||||
|
<string>yue</string>
|
||||||
|
</langset>
|
||||||
|
</minus>
|
||||||
|
</edit>
|
||||||
|
</match>
|
||||||
|
<match target="scan">
|
||||||
|
<test name="family">
|
||||||
|
<string>Noto Serif CJK KR</string>
|
||||||
|
</test>
|
||||||
|
<edit name="lang" mode="assign">
|
||||||
|
<minus>
|
||||||
|
<name>lang</name>
|
||||||
|
<langset>
|
||||||
|
<string>ja</string>
|
||||||
|
<string>zh-cn</string>
|
||||||
|
<string>zh-hk</string>
|
||||||
|
<string>zh-mo</string>
|
||||||
|
<string>zh-sg</string>
|
||||||
|
<string>zh-tw</string>
|
||||||
|
<string>cmn</string>
|
||||||
|
<string>hak</string>
|
||||||
|
<string>lzh</string>
|
||||||
|
<string>nan</string>
|
||||||
|
<string>yue</string>
|
||||||
|
</langset>
|
||||||
|
</minus>
|
||||||
|
</edit>
|
||||||
|
</match>
|
||||||
|
</fontconfig>
|
@ -0,0 +1,161 @@
|
|||||||
|
#!/usr/bin/python3
|
||||||
|
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
|
||||||
|
|
||||||
|
'''
|
||||||
|
Generate the font config file for Noto CJK fonts
|
||||||
|
|
||||||
|
genfontconf.py "lang list" "common font name" "font name" "fallback font name" "prepend latin font" ...
|
||||||
|
|
||||||
|
like
|
||||||
|
|
||||||
|
genfontconf.py --fallback-font --prepend-latin-font "zh-cn:zh-sg" "monospace" "Source Han Sans CN" "Source Han Sans TW" "DejaVu Sans Mono" "zh-cn:zh-sg" "serif" "Source Han Sans CN" "Source Han Sans TW" "" "zh-cn:zh-sg" "sans-serif" "Source Han Sans CN" "Source Han Sans TW" ""
|
||||||
|
|
||||||
|
genfontconf.py "zh-cn:zh-sg" "monospace" "Noto Sans Mono CJK SC" "zh-cn:zh-sg" "serif" "Noto Serif CJK SC" "zh-cn:zh-sg" "sans-serif" "Noto Sans CJK SC"
|
||||||
|
|
||||||
|
The above information is in variable length array.
|
||||||
|
'''
|
||||||
|
|
||||||
|
'''
|
||||||
|
Some Noto CJK fonts may not need "fallback font name"
|
||||||
|
|
||||||
|
Skip the "fallback font name" argument if not needed.
|
||||||
|
'''
|
||||||
|
|
||||||
|
fallback_font_name = False
|
||||||
|
|
||||||
|
'''
|
||||||
|
Noto CJK may not need "prepend latin font".
|
||||||
|
|
||||||
|
Skip the "prepend latin font" argument if not needed.
|
||||||
|
'''
|
||||||
|
|
||||||
|
prepend_latin_font = False
|
||||||
|
|
||||||
|
|
||||||
|
class FontConfRecord:
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def renderRecord(langlist, common, font, fallback=None, latin=None):
|
||||||
|
for lang in langlist.split(":"):
|
||||||
|
FontConfRecord.renderMatch(lang, common, font, fallback, latin)
|
||||||
|
print()
|
||||||
|
|
||||||
|
FontConfRecord.renderAlias(font, common)
|
||||||
|
print()
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def renderMatch(lang, common, font, fallback, latin):
|
||||||
|
print('<match>')
|
||||||
|
FontConfRecord.renderTestLang(lang)
|
||||||
|
FontConfRecord.renderTestFamily(common)
|
||||||
|
FontConfRecord.renderEditFamily(font, fallback)
|
||||||
|
FontConfRecord.renderEditLatinFamily(latin)
|
||||||
|
print('</match>')
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def renderTestLang(lang):
|
||||||
|
print('<test name="lang">')
|
||||||
|
print('<string>{0}</string>'.format(lang))
|
||||||
|
print('</test>')
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def renderTestFamily(common):
|
||||||
|
print('<test name="family">')
|
||||||
|
print('<string>{0}</string>'.format(common))
|
||||||
|
print('</test>')
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def renderEditFamily(font, fallback):
|
||||||
|
print('<edit name="family" mode="prepend">')
|
||||||
|
print('<string>{0}</string>'.format(font))
|
||||||
|
if fallback:
|
||||||
|
print('<string>{0}</string>'.format(fallback))
|
||||||
|
print('</edit>')
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def renderEditLatinFamily(latin):
|
||||||
|
if not latin:
|
||||||
|
return
|
||||||
|
print('<edit name="family" mode="prepend" binding="strong">')
|
||||||
|
print('<string>{0}</string>'.format(latin))
|
||||||
|
print('</edit>')
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def renderAlias(font, common):
|
||||||
|
print('<alias>')
|
||||||
|
print('<family>{0}</family>'.format(font))
|
||||||
|
print('<default>')
|
||||||
|
print('<family>{0}</family>'.format(common))
|
||||||
|
print('</default>')
|
||||||
|
print('</alias>')
|
||||||
|
|
||||||
|
|
||||||
|
class FontConfFile:
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def renderFile(strings):
|
||||||
|
FontConfFile.renderHeader()
|
||||||
|
FontConfFile.renderBody(strings)
|
||||||
|
FontConfFile.renderFooter()
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def renderHeader():
|
||||||
|
print('<?xml version="1.0"?>')
|
||||||
|
print('<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">')
|
||||||
|
print('<fontconfig>')
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def renderBody(strings):
|
||||||
|
num = 3
|
||||||
|
if fallback_font_name:
|
||||||
|
num += 1
|
||||||
|
if prepend_latin_font:
|
||||||
|
num += 1
|
||||||
|
|
||||||
|
while len(strings):
|
||||||
|
items = strings[0:num]
|
||||||
|
strings = strings[num:]
|
||||||
|
|
||||||
|
if num == 3:
|
||||||
|
FontConfRecord.renderRecord(items[0], items[1], items[2])
|
||||||
|
|
||||||
|
if num == 4:
|
||||||
|
if fallback_font_name:
|
||||||
|
FontConfRecord.renderRecord \
|
||||||
|
(items[0], items[1], items[2], items[3])
|
||||||
|
if prepend_latin_font:
|
||||||
|
FontConfRecord.renderRecord \
|
||||||
|
(items[0], items[1], items[2], None, items[3])
|
||||||
|
|
||||||
|
if num == 5:
|
||||||
|
FontConfRecord.renderRecord \
|
||||||
|
(items[0], items[1], items[2], items[3], items[4])
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def renderFooter():
|
||||||
|
print('</fontconfig>')
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
parser = argparse.ArgumentParser(description='Generate font config.')
|
||||||
|
parser.add_argument('strings', metavar='string', type=str, nargs='+',
|
||||||
|
help='strings')
|
||||||
|
|
||||||
|
parser.add_argument('--fallback-font', dest='fallback_font', action='store_true')
|
||||||
|
parser.add_argument('--disable-fallback-font', dest='fallback_font', action='store_false')
|
||||||
|
parser.set_defaults(fallback_font=False)
|
||||||
|
|
||||||
|
parser.add_argument('--prepend-latin-font', dest='prepend_latin_font', action='store_true')
|
||||||
|
parser.add_argument('--disable-prepend-latin-font', dest='prepend_latin_font', action='store_false')
|
||||||
|
parser.set_defaults(prepend_latin_font=False)
|
||||||
|
|
||||||
|
args = parser.parse_args()
|
||||||
|
#print(args)
|
||||||
|
|
||||||
|
fallback_font_name = args.fallback_font
|
||||||
|
prepend_latin_font = args.prepend_latin_font
|
||||||
|
|
||||||
|
FontConfFile.renderFile(args.strings)
|
@ -0,0 +1,106 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
Epoch: 1
|
||||||
|
Version: 2.002
|
||||||
|
Release: 5%{?dist}
|
||||||
|
URL: https://github.com/googlefonts/noto-cjk
|
||||||
|
|
||||||
|
BuildRequires: python3
|
||||||
|
|
||||||
|
%global foundry Google
|
||||||
|
%global fontlicense OFL-1.1
|
||||||
|
%global fontlicenses LICENSE
|
||||||
|
|
||||||
|
%global fontfamily Noto Serif CJK VF
|
||||||
|
%global fontsummary Google Noto Serif CJK Variable Fonts
|
||||||
|
%global fonts *.ttc
|
||||||
|
%global fontconfs 65-0-%{fontpkgname}.conf %{SOURCE10}
|
||||||
|
%global fontdescription %{expand:
|
||||||
|
Noto CJK fonts, supporting Simplified Chinese, Traditional Chinese, \
|
||||||
|
Japanese, and Korean. The supported scripts are Han, Hiragana, Katakana, \
|
||||||
|
Hangul, and Bopomofo. Latin, Greek, Cyrllic, and various symbols are also \
|
||||||
|
supported for compatibility with CJK standards.
|
||||||
|
|
||||||
|
The google-noto-serif-cjk-vf-fonts package contains Google Noto Serif CJK Variable fonts.
|
||||||
|
}
|
||||||
|
|
||||||
|
Source0: https://github.com/googlefonts/noto-cjk/releases/download/Serif%{version}/02_NotoSerifCJK-OTF-VF.zip
|
||||||
|
Source1: genfontconf.py
|
||||||
|
Source10: 65-%{fontpkgname}.conf
|
||||||
|
|
||||||
|
%global obsoletes_epoch_version_release 0:20201206-8
|
||||||
|
|
||||||
|
%global obsoletes_pkg()\
|
||||||
|
%define subpkgname %1\
|
||||||
|
Obsoletes: %{subpkgname} < %{obsoletes_epoch_version_release}\
|
||||||
|
Provides: %{subpkgname} = %{epoch}:%{version}-%{release}\
|
||||||
|
|
||||||
|
%global obsoletes_serif()\
|
||||||
|
%define langname %1\
|
||||||
|
%obsoletes_pkg google-noto-serif-cjk-%{langname}-fonts\
|
||||||
|
%obsoletes_pkg google-noto-serif-%{langname}-fonts\
|
||||||
|
|
||||||
|
%global fontpkgheader %{expand:
|
||||||
|
|
||||||
|
%obsoletes_pkg google-noto-serif-cjk-ttc-fonts
|
||||||
|
|
||||||
|
%obsoletes_serif sc
|
||||||
|
%obsoletes_serif tc
|
||||||
|
%obsoletes_serif jp
|
||||||
|
%obsoletes_serif kr
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
%fontpkg
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%autosetup -c
|
||||||
|
|
||||||
|
cp -p Variable/OTC/NotoSerifCJK-VF.otf.ttc NotoSerifCJK-VF.ttc
|
||||||
|
|
||||||
|
cp %{SOURCE1} .
|
||||||
|
|
||||||
|
python3 genfontconf.py "ja" "serif" "Noto Serif CJK JP" \
|
||||||
|
"ko" "serif" "Noto Serif CJK KR" \
|
||||||
|
"zh-cn:zh-sg" "serif" "Noto Serif CJK SC" \
|
||||||
|
"zh-tw:cmn:hak:lzh:nan" "serif" "Noto Serif CJK TC" \
|
||||||
|
"zh-hk:zh-mo:yue" "serif" "Noto Serif CJK HK" \
|
||||||
|
| xmllint --format - |tee 65-0-google-noto-serif-cjk-vf-fonts.conf
|
||||||
|
|
||||||
|
|
||||||
|
%build
|
||||||
|
%fontbuild
|
||||||
|
|
||||||
|
%install
|
||||||
|
%fontinstall
|
||||||
|
|
||||||
|
%check
|
||||||
|
%fontcheck
|
||||||
|
|
||||||
|
%fontfiles
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 1:2.002-5
|
||||||
|
- Bump release for June 2024 mass rebuild
|
||||||
|
|
||||||
|
* Wed Jan 24 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1:2.002-4
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sat Jan 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1:2.002-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Oct 10 2023 Peng Wu <pwu@redhat.com> - 1:2.002-2
|
||||||
|
- Drop some Conflicts from the Noto Serif CJK fonts
|
||||||
|
|
||||||
|
* Tue Aug 22 2023 Peng Wu <pwu@redhat.com> - 1:2.002-1
|
||||||
|
- Update to 2.002
|
||||||
|
|
||||||
|
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1:2.001-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu May 4 2023 Peng Wu <pwu@redhat.com> - 1:2.001-2
|
||||||
|
- Fix obsoletes_serif macro (rhbz #2190290)
|
||||||
|
|
||||||
|
* Fri Feb 3 2023 Peng Wu <pwu@redhat.com> - 1:2.001-1
|
||||||
|
- Initial Packaging
|
||||||
|
- Migrate to SPDX license
|
Loading…
Reference in new issue