import google-noto-sans-cjk-vf-fonts-2.004-8.el10

i10c-beta changed/i10c-beta/google-noto-sans-cjk-vf-fonts-2.004-8.el10
MSVSphere Packaging Team 1 month ago
commit 20504f71e2
Signed by: sys_gitsync
GPG Key ID: B2B0B9F29E528FE8

1
.gitignore vendored

@ -0,0 +1 @@
SOURCES/01_NotoSansCJK-OTF-VF.zip

@ -0,0 +1 @@
7ac7a8ef84f8a6064888b801ce49ccd72dc41197 SOURCES/01_NotoSansCJK-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 Sans 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 Sans 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 Sans 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 Sans 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 Sans 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,112 @@
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
<fontconfig>
<match target="scan">
<test name="family">
<string>Noto Sans Mono 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 Sans Mono 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 Sans Mono 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 Sans Mono 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 Sans Mono 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,139 @@
# SPDX-License-Identifier: MIT
Epoch: 1
Version: 2.004
Release: 8%{?dist}
URL: https://github.com/googlefonts/noto-cjk
%global foundry Google
%global fontlicense OFL-1.1
%global fontlicenses LICENSE
%global common_description %{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.
}
%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 fontfamily0 Noto Sans CJK VF
%global fontsummary0 Google Noto Sans CJK Variable Fonts
%global fontpkgheader0 %{expand:
Recommends: google-noto-sans-mono-cjk-vf-fonts = %{epoch}:%{version}-%{release}
%obsoletes_pkg google-noto-cjk-fonts
%obsoletes_pkg google-noto-cjk-fonts-common
%obsoletes_pkg google-noto-sans-cjk-ttc-fonts
%obsoletes_pkg google-noto-sans-cjk-sc-fonts
%obsoletes_pkg google-noto-sans-cjk-tc-fonts
%obsoletes_pkg google-noto-sans-cjk-hk-fonts
%obsoletes_pkg google-noto-sans-cjk-jp-fonts
%obsoletes_pkg google-noto-sans-cjk-kr-fonts
}
%global fonts0 NotoSansCJK-VF.ttc
%global fontconfs0 %{SOURCE10} 65-0-%{fontpkgname0}.conf
%global fontdescription0 %{expand:
%{common_description}
The google-noto-sans-cjk-vf-fonts package contains Google Noto Sans CJK Variable fonts.}
%global fontfamily1 Noto Sans Mono CJK VF
%global fontsummary1 Google Noto Sans Mono CJK Variable Fonts
%global fontpkgheader1 %{expand:
%obsoletes_pkg google-noto-sans-mono-cjk-sc-fonts
%obsoletes_pkg google-noto-sans-mono-cjk-tc-fonts
%obsoletes_pkg google-noto-sans-mono-cjk-hk-fonts
%obsoletes_pkg google-noto-sans-mono-cjk-jp-fonts
%obsoletes_pkg google-noto-sans-mono-cjk-kr-fonts
}
%global fonts1 NotoSansMonoCJK-VF.ttc
%global fontconfs1 %{SOURCE11} 65-0-%{fontpkgname1}.conf
%global fontdescription1 %{expand:
%{common_description}
The google-noto-sans-mono-cjk-vf-fonts package contains Google Noto Sans Mono CJK Variable fonts.}
Source0: https://github.com/googlefonts/noto-cjk/releases/download/Sans%{version}/01_NotoSansCJK-OTF-VF.zip
Source1: genfontconf.py
Source10: 65-%{fontpkgname0}.conf
Source11: 65-%{fontpkgname1}.conf
%fontpkg -a
%prep
%autosetup -c
cp -p Variable/OTC/NotoSansCJK-VF.otf.ttc NotoSansCJK-VF.ttc
cp -p Variable/OTC/NotoSansMonoCJK-VF.otf.ttc NotoSansMonoCJK-VF.ttc
cp %{SOURCE1} .
python3 genfontconf.py "ja" "sans-serif" "Noto Sans CJK JP" \
"ko" "sans-serif" "Noto Sans CJK KR" \
"zh-cn:zh-sg" "sans-serif" "Noto Sans CJK SC" \
"zh-tw:cmn:hak:lzh:nan" "sans-serif" "Noto Sans CJK TC" \
"zh-hk:zh-mo:yue" "sans-serif" "Noto Sans CJK HK" \
| xmllint --format - |tee 65-0-google-noto-sans-cjk-vf-fonts.conf
python3 genfontconf.py "ja" "monospace" "Noto Sans Mono CJK JP" \
"ko" "monospace" "Noto Sans Mono CJK KR" \
"zh-cn:zh-sg" "monospace" "Noto Sans Mono CJK SC" \
"zh-tw:cmn:hak:lzh:nan" "monospace" "Noto Sans Mono CJK TC" \
"zh-hk:zh-mo:yue" "monospace" "Noto Sans Mono CJK HK" \
| xmllint --format - |tee 65-0-google-noto-sans-mono-cjk-vf-fonts.conf
%build
%fontbuild -a
%install
%fontinstall -a
%check
%fontcheck -a
%fontfiles -a
%changelog
* Tue Nov 26 2024 MSVSphere Packaging Team <packager@msvsphere-os.ru> - 1:2.004-8
- Rebuilt for MSVSphere 10
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 1:2.004-8
- Bump release for June 2024 mass rebuild
* Wed Jan 24 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1:2.004-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sat Jan 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1:2.004-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Fri Oct 6 2023 Akira TAGOH <tagoh@redhat.com> - 1:2.004-5
- Drop Conflict: google-noto-sans-cjk-fonts to get them installed together.
fontconfig basically estimate same score for both but static font still has
a priority because of path name. This works as a workaround for some issues
related to variable fonts.
Resolves: rhbz #2240646
* Wed Jul 26 2023 Peng Wu <pwu@redhat.com> - 1:2.004-4
- Add google-noto-sans-mono-cjk-vf-fonts sub package
- Resolves: RHBZ#2215475
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1:2.004-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Thu May 4 2023 Peng Wu <pwu@redhat.com> - 1:2.004-2
- Fix obsoletes_sans macro
* Fri Feb 3 2023 Peng Wu <pwu@redhat.com> - 1:2.004-1
- Initial Packaging
- Migrate to SPDX license
Loading…
Cancel
Save