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