import google-noto-serif-cjk-vf-fonts-2.002-5.el10

cs10 imports/cs10/google-noto-serif-cjk-vf-fonts-2.002-5.el10
MSVSphere Packaging Team 2 months ago
commit e700d638bd
Signed by: sys_gitsync
GPG Key ID: B2B0B9F29E528FE8

1
.gitignore vendored

@ -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…
Cancel
Save