Compare commits

...

No commits in common. "c8s" and "c9s" have entirely different histories.
c8s ... c9s

28 changed files with 1169 additions and 724 deletions

15
.gitignore vendored
View File

@ -1 +1,14 @@
SOURCES/google-droid-fonts-20120715.tar.xz
DroidSans-Bold.ttf
DroidSans.ttf
DroidSansJapanese.ttf
DroidSansMono.ttf
DroidSerif-Bold.ttf
DroidSerif-BoldItalic.ttf
DroidSerif-Italic.ttf
DroidSerif-Regular.ttf
DroidSansArabic.ttf
DroidSansFallback.ttf
DroidSansHebrew.ttf
DroidSansThai.ttf
/google-droid-fonts-20120715.tar.xz
/google-droid-fonts-20200215.tar.xz

View File

@ -1 +1 @@
25301bbf5b97e3f0b798a5cebffb198d65ed105a SOURCES/google-droid-fonts-20120715.tar.xz
e37e0bc4acbbffa9cdb712264396608476708f1c google-droid-fonts-20200215.tar.xz

View File

@ -0,0 +1,13 @@
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<!-- SPDX-License-Identifier: MIT -->
<fontconfig>
<group>
<target>Droid Sans Mono</target>
<like>
<family>Noto Sans Mono</family>
<family>monospace</family>
</like>
</group>
</fontconfig>

View File

@ -0,0 +1,83 @@
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<!-- SPDX-License-Identifier: MIT -->
<fontconfig>
<group>
<target>Droid Sans</target>
<match>
<family>Droid Sans Hebrew</family>
<good-lang>he</good-lang>
<good-lang>yi</good-lang>
</match>
<match>
<family>Droid Sans Armenian</family>
<good-lang>hy</good-lang>
</match>
<match>
<family>Droid Sans Georgian</family>
<good-lang>ka</good-lang>
</match>
<match>
<family>Droid Sans Ethiopic</family>
<good-lang>am</good-lang>
<good-lang>byn</good-lang>
<good-lang>gez</good-lang>
<good-lang>sid</good-lang>
<good-lang>ti-er</good-lang>
<good-lang>ti-et</good-lang>
<good-lang>tig</good-lang>
<good-lang>wal</good-lang>
</match>
<match>
<family>Droid Sans Devanagari</family>
<good-lang>bh</good-lang>
<good-lang>bho</good-lang>
<good-lang>brx</good-lang>
<good-lang>doi</good-lang>
<good-lang>hi</good-lang>
<good-lang>hne</good-lang>
<good-lang>kok</good-lang>
<good-lang>mai</good-lang>
<good-lang>mr</good-lang>
<good-lang>ne</good-lang>
<good-lang>sa</good-lang>
<good-lang>sat</good-lang>
</match>
<match>
<family>Droid Sans Tamil</family>
<good-lang>ta</good-lang>
</match>
<match>
<family>Droid Sans Thai</family>
<good-lang>th</good-lang>
</match>
<match>
<family>Droid Arabic Kufi</family>
<good-lang>ar</good-lang>
<good-lang>az-ir</good-lang>
<good-lang>fa</good-lang>
<good-lang>ku-iq</good-lang>
<good-lang>ku-ir</good-lang>
<good-lang>lah</good-lang>
<good-lang>ota</good-lang>
<good-lang>pa-pk</good-lang>
<good-lang>ps-af</good-lang>
<good-lang>ps-pk</good-lang>
<good-lang>sd</good-lang>
<good-lang>ug</good-lang>
<good-lang>ur</good-lang>
</match>
<match>
<family>Droid Sans Japanese</family>
<good-lang>ja</good-lang>
</match>
<family>Droid Sans Fallback</family>
<like>
<family>Droid Sans Arabic</family>
<family>Noto Sans</family>
<family>Open Sans</family>
<family>sans-serif</family>
</like>
</group>
</fontconfig>

View File

@ -0,0 +1,30 @@
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<!-- SPDX-License-Identifier: MIT -->
<fontconfig>
<group>
<target>Droid Serif</target>
<match>
<family>Droid Arabic Naskh</family>
<good-lang>ar</good-lang>
<good-lang>az-ir</good-lang>
<good-lang>fa</good-lang>
<good-lang>ku-iq</good-lang>
<good-lang>ku-ir</good-lang>
<good-lang>lah</good-lang>
<good-lang>ota</good-lang>
<good-lang>pa-pk</good-lang>
<good-lang>ps-af</good-lang>
<good-lang>ps-pk</good-lang>
<good-lang>sd</good-lang>
<good-lang>ug</good-lang>
<good-lang>ur</good-lang>
</match>
<like>
<family>Noto Serif</family>
<family>Droid Naskh Shift Alt</family>
<family>serif</family>
</like>
</group>
</fontconfig>

View File

@ -1,24 +0,0 @@
#!/bin/bash
#Try to get upstream latest files
DATE=$(date -u +%Y%m%d)
ARCHIVE="google-droid-fonts-$DATE"
TMPDIR=$(mktemp -d --tmpdir=/var/tmp getdroid-XXXXXXXXXX)
[ $? != 0 ] && exit 1
umask 022
pushd "$TMPDIR"
git init
git remote add -t HEAD origin https://android.googlesource.com/platform/frameworks/base.git
git config core.sparseCheckout true
cat > .git/info/sparse-checkout << EOF
data/fonts/*
!data/fonts/*ttf
data/fonts/Droid*
EOF
git pull --depth=1 --no-tags origin HEAD
mv data/fonts "$ARCHIVE"
chmod -x "$ARCHIVE/*.ttf"
tar -cvJf "$ARCHIVE.tar.xz" "$ARCHIVE"
popd
mv "$TMPDIR/$ARCHIVE.tar.xz" .
rm -fr "$TMPDIR"

View File

@ -1,16 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<alias>
<family>fantasy</family>
<prefer>
<family>Droid Arabic Kufi</family>
</prefer>
</alias>
<alias>
<family>Droid Arabic Kufi</family>
<default>
<family>Droid Sans</family>
</default>
</alias>
</fontconfig>

View File

@ -1,310 +0,0 @@
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match target="scan">
<test name="family">
<string>Droid Sans</string>
</test>
<edit name="fontversion">
<int>12</int>
</edit>
</match>
<match target="scan">
<test name="fullname">
<string>Droid Sans Hebrew</string>
</test>
<edit name="family">
<string>Droid Sans</string>
</edit>
<edit name="fullname">
<string>Droid Sans</string>
</edit>
<edit name="fontversion">
<int>11</int>
</edit>
</match>
<match target="scan">
<test name="fullname">
<string>Droid Sans Hebrew Bold</string>
</test>
<edit name="family">
<string>Droid Sans</string>
</edit>
<edit name="fullname">
<string>Droid Sans Bold</string>
</edit>
<edit name="fontversion">
<int>11</int>
</edit>
</match>
<match target="scan">
<test name="fullname">
<string>Droid Sans Armenian</string>
</test>
<edit name="family">
<string>Droid Sans</string>
</edit>
<edit name="fullname">
<string>Droid Sans</string>
</edit>
<edit name="fontversion">
<int>10</int>
</edit>
</match>
<match target="scan">
<test name="fullname">
<string>Droid Sans Georgian</string>
</test>
<edit name="family">
<string>Droid Sans</string>
</edit>
<edit name="fullname">
<string>Droid Sans</string>
</edit>
<edit name="fontversion">
<int>9</int>
</edit>
</match>
<match target="scan">
<test name="fullname">
<string>Droid Sans Ethiopic</string>
</test>
<edit name="family">
<string>Droid Sans</string>
</edit>
<edit name="fullname">
<string>Droid Sans</string>
</edit>
<edit name="fontversion">
<int>8</int>
</edit>
</match>
<match target="scan">
<test name="fullname">
<string>Droid Sans Ethiopic Bold</string>
</test>
<edit name="family">
<string>Droid Sans</string>
</edit>
<edit name="fullname">
<string>Droid Sans Bold</string>
</edit>
<edit name="fontversion">
<int>8</int>
</edit>
</match>
<match target="scan">
<test name="fullname">
<string>Droid Sans Arabic</string>
</test>
<edit name="family">
<string>Droid Sans</string>
</edit>
<edit name="fullname">
<string>Droid Sans</string>
</edit>
<edit name="fontversion">
<int>7</int>
</edit>
</match>
<match target="scan">
<test name="fullname">
<string>Droid Sans Devanagari</string>
</test>
<edit name="family">
<string>Droid Sans</string>
</edit>
<edit name="fullname">
<string>Droid Sans</string>
</edit>
<edit name="fontversion">
<int>6</int>
</edit>
</match>
<match target="scan">
<test name="fullname">
<string>Droid Sans Tamil</string>
</test>
<edit name="family">
<string>Droid Sans</string>
</edit>
<edit name="fullname">
<string>Droid Sans</string>
</edit>
<edit name="fontversion">
<int>5</int>
</edit>
</match>
<match target="scan">
<test name="fullname">
<string>Droid Sans Tamil Bold</string>
</test>
<edit name="family">
<string>Droid Sans</string>
</edit>
<edit name="fullname">
<string>Droid Sans Bold</string>
</edit>
<edit name="fontversion">
<int>5</int>
</edit>
</match>
<match target="scan">
<test name="fullname">
<string>Droid Sans Thai</string>
</test>
<edit name="family">
<string>Droid Sans</string>
</edit>
<edit name="fullname">
<string>Droid Sans</string>
</edit>
<edit name="fontversion">
<int>4</int>
</edit>
</match>
<match target="scan">
<test name="lang" compare="not_eq">
<string>zh-cn</string>
</test>
<test name="lang" compare="not_eq">
<string>zh-sg</string>
</test>
<test name="lang" compare="not_eq">
<string>zh-hk</string>
</test>
<test name="lang" compare="not_eq">
<string>zh-tw</string>
</test>
<test name="lang" compare="not_eq">
<string>zh</string>
</test>
<test name="fullname">
<string>Droid Sans Japanese</string>
</test>
<edit name="family">
<string>Droid Sans</string>
</edit>
<edit name="fullname">
<string>Droid Sans</string>
</edit>
<edit name="fontversion">
<int>3</int>
</edit>
</match>
<match target="scan">
<test name="fullname">
<string>Droid Sans Fallback</string>
</test>
<edit name="family">
<string>Droid Sans</string>
</edit>
<edit name="fullname">
<string>Droid Sans</string>
</edit>
<edit name="fontversion">
<int>2</int>
</edit>
</match>
<match target="scan">
<test name="lang" compare="eq">
<string>zh-cn</string>
</test>
<test name="lang" compare="eq">
<string>zh-sg</string>
</test>
<test name="lang" compare="eq">
<string>zh-hk</string>
</test>
<test name="lang" compare="eq">
<string>zh-tw</string>
</test>
<test name="lang" compare="eq">
<string>zh</string>
</test>
<test name="fullname">
<string>Droid Sans Japanese</string>
</test>
<edit name="family">
<string>Droid Sans</string>
</edit>
<edit name="fullname">
<string>Droid Sans</string>
</edit>
<edit name="fontversion">
<int>1</int>
</edit>
</match>
<alias binding="same">
<family>Droid Sans Arabic</family>
<accept>
<family>Droid Sans</family>
</accept>
</alias>
<alias binding="same">
<family>Droid Sans Armenian</family>
<accept>
<family>Droid Sans</family>
</accept>
</alias>
<alias binding="same">
<family>Droid Sans Devanagari</family>
<accept>
<family>Droid Sans</family>
</accept>
</alias>
<alias binding="same">
<family>Droid Sans Ethiopic</family>
<accept>
<family>Droid Sans</family>
</accept>
</alias>
<alias binding="same">
<family>Droid Sans Fallback</family>
<accept>
<family>Droid Sans</family>
</accept>
</alias>
<alias binding="same">
<family>Droid Sans Georgian</family>
<accept>
<family>Droid Sans</family>
</accept>
</alias>
<alias binding="same">
<family>Droid Sans Hebrew</family>
<accept>
<family>Droid Sans</family>
</accept>
</alias>
<alias binding="same">
<family>Droid Sans Japanese</family>
<accept>
<family>Droid Sans</family>
</accept>
</alias>
<alias binding="same">
<family>Droid Sans Tamil</family>
<accept>
<family>Droid Sans</family>
</accept>
</alias>
<alias binding="same">
<family>Droid Sans Thai</family>
<accept>
<family>Droid Sans</family>
</accept>
</alias>
<alias>
<family>sans-serif</family>
<prefer>
<family>Droid Sans</family>
</prefer>
</alias>
<alias>
<family>Droid Sans</family>
<default>
<family>sans-serif</family>
</default>
</alias>
</fontconfig>

View File

@ -1,16 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<alias>
<family>monospace</family>
<prefer>
<family>Droid Sans Mono</family>
</prefer>
</alias>
<alias>
<family>Droid Sans Mono</family>
<default>
<family>monospace</family>
</default>
</alias>
</fontconfig>

View File

@ -1,64 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match target="scan">
<test name="family">
<string>Droid Serif</string>
</test>
<edit name="fontversion">
<int>2</int>
</edit>
</match>
<match target="scan">
<test name="fullname">
<string>Droid Arabic Naskh</string>
</test>
<edit name="family">
<string>Droid Serif</string>
</edit>
<edit name="fullname">
<string>Droid Serif</string>
</edit>
<edit name="fontversion">
<int>1</int>
</edit>
</match>
<match target="scan">
<test name="fullname">
<string>Droid Arabic Naskh Bold</string>
</test>
<edit name="family">
<string>Droid Serif</string>
</edit>
<edit name="fullname">
<string>Droid Serif Bold</string>
</edit>
<edit name="fontversion">
<int>1</int>
</edit>
</match>
<alias binding="same">
<family>Droid Arabic Naskh</family>
<accept>
<family>Droid Serif</family>
</accept>
</alias>
<alias binding="same">
<family>Droid Naskh Shift Alt</family>
<accept>
<family>Droid Serif</family>
</accept>
</alias>
<alias>
<family>serif</family>
<prefer>
<family>Droid Serif</family>
</prefer>
</alias>
<alias>
<family>Droid Serif</family>
<default>
<family>serif</family>
</default>
</alias>
</fontconfig>

View File

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2014 Parag Nemade <pnemade AT redhat DOT com> -->
<component type="font">
<id>google-droid-kufi</id>
<metadata_license>CC-BY-3.0</metadata_license>
<extends>google-droid</extends>
</component>

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2014 Parag Nemade <pnemade AT redhat DOT com> -->
<component type="font">
<id>google-droid-sans-mono</id>
<metadata_license>CC-BY-3.0</metadata_license>
<extends>google-droid</extends>
</component>

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2014 Parag Nemade <pnemade AT redhat DOT com> -->
<component type="font">
<id>google-droid-sans</id>
<metadata_license>CC-BY-3.0</metadata_license>
<extends>google-droid</extends>
</component>

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2014 Parag Nemade <pnemade AT redhat DOT com> -->
<component type="font">
<id>google-droid-serif</id>
<metadata_license>CC-BY-3.0</metadata_license>
<extends>google-droid</extends>
</component>

View File

@ -1,263 +0,0 @@
%global fontname google-droid
%global archivename %{name}-%{version}
%global common_desc \
The Droid typeface family was designed in the fall of 2006 by Ascender's \
Steve Matteson, as a commission from Google to create a set of system fonts \
for its Android platform. The goal was to provide optimal quality and comfort \
on a mobile handset when rendered in application menus, web browsers and for \
other screen text. \
The family was later extended in collaboration with other designers such as \
Pascal Zoghbi of 29ArabicLetters.
Name: %{fontname}-fonts
# No sane versionning upstream, use git clone timestamp
Version: 20120715
Release: 13%{?dist}
Summary: General-purpose fonts released by Google as part of Android
License: ASL 2.0
URL: https://android.googlesource.com/
Source0: %{archivename}.tar.xz
#Brutal script used to pull sources from upstream git
Source1: getdroid.sh
Source10: %{name}-sans-fontconfig.conf
Source11: %{name}-sans-mono-fontconfig.conf
Source12: %{name}-serif-fontconfig.conf
Source13: %{name}-kufi-fontconfig.conf
Source14: %{fontname}-sans.metainfo.xml
Source15: %{fontname}-sans-mono.metainfo.xml
Source16: %{fontname}-serif.metainfo.xml
Source17: %{fontname}-kufi.metainfo.xml
BuildArch: noarch
BuildRequires: fontpackages-devel
%description
%common_desc
%package -n %{fontname}-sans-fonts
Summary: A humanist sans serif typeface
Requires: fontpackages-filesystem
Obsoletes: %{name}-common <= 20090906-5.fc12
%description -n %{fontname}-sans-fonts
%common_desc
Droid Sans is a humanist sans serif typeface designed for user interfaces and
electronic communication.
%_font_pkg -n sans -f ??-%{fontname}-sans.conf DroidSans*ttf
%exclude %{_fontdir}/DroidSansMono*ttf
%doc README.txt NOTICE
%{_datadir}/appdata/%{fontname}-sans.metainfo.xml
%package -n %{fontname}-sans-mono-fonts
Summary: A humanist monospace sans serif typeface
Requires: fontpackages-filesystem
%description -n %{fontname}-sans-mono-fonts
%common_desc
Droid Sans Mono is a humanist monospace sans serif typeface designed for user
interfaces and electronic communication.
%_font_pkg -n sans-mono -f ??-%{fontname}-sans-mono.conf DroidSansMono.ttf
%doc README.txt NOTICE
%{_datadir}/appdata/%{fontname}-sans-mono.metainfo.xml
%package -n %{fontname}-serif-fonts
Summary: A contemporary serif typeface
Requires: fontpackages-filesystem
Provides: %{fontname}-naskh-fonts = %{version}-%{release}
%description -n %{fontname}-serif-fonts
%common_desc
Droid Serif is a contemporary serif typeface family designed for comfortable
reading on screen. Droid Serif is slightly condensed to maximize the amount of
text displayed on small screens. Vertical stress and open forms contribute to
its readability while its proportion and overall design complement its
companion Droid Sans.
The Arabic block was designed by Pascal Zoghbi of 29ArabicLetters under the
Droid Naskh name.
%_font_pkg -n serif -f ??-%{fontname}-serif.conf DroidSerif*ttf DroidNaskh*ttf
%doc README.txt NOTICE
%{_datadir}/appdata/%{fontname}-serif.metainfo.xml
%package -n %{fontname}-kufi-fonts
Summary: A kufi Arabic titling typeface designed to complement Droid Sans
Requires: fontpackages-filesystem
Requires: %{fontname}-kufi-fonts
%description -n %{fontname}-kufi-fonts
%common_desc
Droid Kufi is a stylized display font suitable for titles and short runs of
text, and designed to complement Droid Sans. It was initialy designed by
Steve Matteson of Ascender with consulting by Pascal Zoghbi of 29ArabicLetters
to finalize the font family.
%_font_pkg -n kufi -f ??-%{fontname}-kufi.conf DroidKufi*ttf
%{_datadir}/appdata/%{fontname}-kufi.metainfo.xml
%prep
%setup -q -n %{archivename}
%build
%install
install -m 0755 -d %{buildroot}%{_fontdir}
install -m 0644 -p $(ls *ttf | grep -v DroidSansFallbackFull\
| grep -v DroidSansFallbackLegacy\
| grep -v DroidNaskh-Regular-SystemUI) \
%{buildroot}%{_fontdir}
install -m 0755 -d %{buildroot}%{_fontconfig_templatedir} \
%{buildroot}%{_fontconfig_confdir}
install -m 0644 -p %{SOURCE10} \
%{buildroot}%{_fontconfig_templatedir}/65-%{fontname}-sans.conf
install -m 0644 -p %{SOURCE11} \
%{buildroot}%{_fontconfig_templatedir}/60-%{fontname}-sans-mono.conf
install -m 0644 -p %{SOURCE12} \
%{buildroot}%{_fontconfig_templatedir}/65-%{fontname}-serif.conf
install -m 0644 -p %{SOURCE13} \
%{buildroot}%{_fontconfig_templatedir}/65-%{fontname}-kufi.conf
for fontconf in 65-%{fontname}-sans.conf \
60-%{fontname}-sans-mono.conf \
65-%{fontname}-serif.conf \
65-%{fontname}-kufi.conf ; do
ln -s %{_fontconfig_templatedir}/$fontconf \
%{buildroot}%{_fontconfig_confdir}/$fontconf
done
# Add AppStream metadata
install -Dm 0644 -p %{SOURCE14} \
%{buildroot}%{_datadir}/appdata/%{fontname}-sans.metainfo.xml
install -Dm 0644 -p %{SOURCE15} \
%{buildroot}%{_datadir}/appdata/%{fontname}-sans-mono.metainfo.xml
install -Dm 0644 -p %{SOURCE16} \
%{buildroot}%{_datadir}/appdata/%{fontname}-serif.metainfo.xml
install -Dm 0644 -p %{SOURCE17} \
%{buildroot}%{_datadir}/appdata/%{fontname}-kufi.metainfo.xml
%changelog
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 20120715-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 20120715-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 20120715-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 20120715-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 20120715-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Sat Nov 08 2014 Parag Nemade <pnemade AT redhat DOT com> - 20120715-8
- Add metainfo file to show this font in gnome-software
- Remove %%clean section which is optional now
- Remove removal of buildroot in %%install
- Remove group tag
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 20120715-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 20120715-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 20120715-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 20120715-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Mon Jul 16 2012 Nicolas Mailhot <nicolas.mailhot at laposte.net>
- 20120715-3
Split Kufi in a separate subpackage and resurect DroidSansArabic for Sans
* Sun Jul 15 2012 Nicolas Mailhot <nicolas.mailhot at laposte.net>
- 20120715-1
Switch to new upstream git source (marginally less hopeless than the Google
Font Directory)
Remove Arabic, add Armenian, Devanagari, Ethiopic, Georgian, Tamil, Kufi to Sans
Add Naskh to Serif
Try to adapt fontconfig rules to new upstream rules and new fonts
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org>
- 20100409-3
Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org>
- 20100409-2
Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
* Sun Jul 25 2010 Nicolas Mailhot <nicolas.mailhot at laposte.net>
- 20100409-1
Update to upstream's latest data dump
Add Arabic, Hebrew, Thai coverage to Sans
* Mon Sep 28 2009 Nicolas Mailhot <nicolas.mailhot at laposte.net>
- 20090906-5
Tweak the fontconfig fixing
* Sun Sep 13 2009 Nicolas Mailhot <nicolas.mailhot at laposte.net>
- 20090906-4
follow the fontpackages template more closely
- 20090906-3
more Behdad-suggested fontconfig tweaks
* Mon Sep 7 2009 Nicolas Mailhot <nicolas.mailhot at laposte.net>
- 20090906-2
first-level CJK fixes (as suggested by Behdad in bug #517789, complete fix
needs the rpm changes traced in bug #521697)
* Sun Sep 6 2009 Nicolas Mailhot <nicolas.mailhot at laposte.net>
- 20090906-1
upstream stealth update
* Sat Jul 25 2009 Nicolas Mailhot <nicolas.mailhot at laposte.net>
- 20090320-3
try to fit Japanese in
* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org>
- 1.0.112-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
* Tue Feb 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.112-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
* Mon Feb 16 2009 Nicolas Mailhot <nicolas.mailhot at laposte.net>
- 1.0.112-5
prepare for F11 mass rebuild, new rpm and new fontpackages
* Sat Jan 31 2009 Nicolas Mailhot <nicolas.mailhot at laposte.net>
- 1.0.112-4
fix-up fontconfig installation for sans and mono
* Fri Jan 16 2009 Nicolas Mailhot <nicolas.mailhot at laposte.net>
- 1.0.112-3
Workaround RHEL5 rpmbuild UTF-8 handling bug
- 1.0.112-2
Convert to new naming guidelines
Do strange stuff with Sans Fallback (CJK users please check)
* Tue Dec 9 2008 Nicolas Mailhot <nicolas.mailhot at laposte.net>
- 1.0.112-1
փ Licensing bit clarified in bug #472635
շ Fedora submission
* Sun Nov 23 2008 Nicolas Mailhot <nicolas.mailhot at laposte.net>
- 1.0.107-1
Ϫ Initial built using “fontpackages”

7
gating.yaml Normal file
View File

@ -0,0 +1,7 @@
--- !Policy
product_versions:
- rhel-9
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional}

38
getdroid.sh Executable file
View File

@ -0,0 +1,38 @@
#!/bin/bash
#Try to get upstream latest files
DATE=$(date -u +%Y%m%d)
ARCHIVE="google-droid-fonts-$DATE"
TMPDIR=$(mktemp -d --tmpdir=/var/tmp getdroid-XXXXXXXXXX)
[ $? != 0 ] && exit 1
umask 022
pushd "$TMPDIR"
git init
git remote add -t HEAD origin https://android.googlesource.com/platform/frameworks/base.git
git config core.sparseCheckout true
git config diff.renameLimit 999999
cat > .git/info/sparse-checkout << EOF
data/fonts/*
!data/fonts/*ttf
!data/fonts/*xml
!data/fonts/*mk
!MODULE_LICENSE_APACHE2
data/fonts/Droid*
EOF
git pull --no-tags origin HEAD
for file in $(git log --diff-filter=D --summary | grep delete | cut -d ' ' -f 5 |\
grep 'data/fonts/Droid.*ttf' | sort -u | \
grep -v data/fonts/DroidSansFallback | \
grep -v data/fonts/DroidSansHebrew.ttf | \
grep -v data/fonts/DroidNaskh-Regular-Shift.ttf | \
grep -v data/fonts/DroidNaskhUI-Regular.ttf | \
grep -v data/fonts/DroidSansArabic.ttf) ; do
git checkout $(git log --all -- ${file} | \
grep '^commit' | head -2 | tail -1 | cut -d ' ' -f 2) -- "${file}"
done
install -m 0755 -d "$ARCHIVE"
install -m 0644 -p data/fonts/* "$ARCHIVE"
tar -cvJf "$ARCHIVE.tar.xz" "$ARCHIVE"
popd
mv "$TMPDIR/$ARCHIVE.tar.xz" .
rm -fr "$TMPDIR"

161
google-droid-fonts.spec Normal file
View File

@ -0,0 +1,161 @@
# SPDX-License-Identifier: MIT
BuildArch: noarch
# No sane versionning upstream, use git clone timestamp
Version: 20200215
Release: 11%{?dist}.2
License: ASL 2.0 and OFL
## DroidSansDevanagari is licensed under OFL
URL: https://android.googlesource.com/
%global source_name google-droid-fonts
%global foundry Google
%global fontlicenses NOTICE
%global fontdocs *.txt
%global common_description %{expand:
The Droid font family was designed in the fall of 2006 by Ascenders Steve
Matteson, as a commission from Google to create a set of system fonts for its
Android platform. The goal was to provide optimal quality and comfort on a
mobile handset when rendered in application menus, web browsers and for other
screen text.
The family was later extended in collaboration with other designers such as
Pascal Zoghbi of 29ArabicLetters.}
%global fontfamily1 Droid Sans
%global fontsummary1 Droid Sans, a humanist sans-serif font family
%global fontpkgheader1 %{expand:
Obsoletes: google-droid-kufi-fonts < %{version}-%{release}
Suggests: font(notosans)
}
%global fonts1 DroidSans*ttf DroidKufi*ttf
%global fontsex1 DroidSansMono*ttf DroidSansFallback.ttf DroidSansHebrew.ttf
%global fontconfngs1 %{SOURCE11}
%global fontdescription1 %{expand:
%{common_description}
Droid Sans is a humanist sans serif font family designed for user interfaces and electronic communication.
The Arabic block was initially designed by Steve Matteson of Ascender under the
Droid Kufi name, with consulting by Pascal Zoghbi of 29ArabicLetters to
finalize the font family.}
%global fontfamily2 Droid Sans Mono
%global fontsummary2 Droid Sans Mono, a humanist mono-space sans-serif font family
%global fontpkgheader2 %{expand:
Suggests: font(notosansmono)
}
%global fonts2 DroidSansMono*ttf
%global fontconfngs2 %{SOURCE12}
%global fontdescription2 %{expand:
%{common_description}
Droid Sans Mono is a humanist mono-space sans serif font family designed for
user interfaces and electronic communication.}
%global fontfamily3 Droid Serif
%global fontsummary3 Droid Serif, a contemporary serif font family
%global fontpkgheader3 %{expand:
Suggests: font(notoserif)
}
%global fonts3 DroidSerif*ttf DroidNaskh*ttf
%global fontsex3 DroidNaskhUI-Regular.ttf DroidNaskh-Regular-Shift.ttf
%global fontconfngs3 %{SOURCE13}
%global fontdescription3 %{expand:
%{common_description}
Droid Serif is a contemporary serif typeface family designed for comfortable
reading on screen. Droid Serif is slightly condensed to maximize the amount of
text displayed on small screens. Vertical stress and open forms contribute to
its readability while its proportion and overall design complement its
companion Droid Sans.
The Arabic block was designed by Pascal Zoghbi of 29ArabicLetters under the
Droid Naskh name.}
%global archivename google-droid-fonts-%{version}
Source0: %{archivename}.tar.xz
# Brutal script used to pull sources from upstream git
# Needs at least 2 Gib of space in /var/tmp
Source1: getdroid.sh
Source11: 65-%{fontpkgname1}.xml
Source12: 60-%{fontpkgname2}.xml
Source13: 65-%{fontpkgname3}.xml
Name: google-droid-fonts
Summary: A set of general-purpose font families released by Google as part of Android
%description
%wordwrap -v common_description
%fontpkg -a
%fontmetapkg
%prep
%setup -q -n %{archivename}
%build
%fontbuild -a
%install
%fontinstall -a
%check
%fontcheck -a
%fontfiles -a
%changelog
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 20200215-11.1
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Tue Jun 15 2021 Akira TAGOH <tagoh@redhat.com> - 20200215-10.1
- Add OFL to License tag for DroidSansDevanagari font.
Resolves: rhbz#1972027
* Thu Apr 15 2021 Mohan Boddu <mboddu@redhat.com> - 20200215-10
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 20200215-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Fri Sep 11 2020 Parag Nemade <pnemade AT redhat DOT com>
- 20200215-8
- Fix this spec file to build for F33+
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org>
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Mon Apr 27 2020 Nicolas Mailhot <nim@fedoraproject.org>
- 20200215-6
🐞 Workaround Fedora problems created by rpm commit 93604e2
* Thu Apr 02 2020 Nicolas Mailhot <nim@fedoraproject.org>
- 20200215-5
💥 Actually rebuild with fonts-rpm-macros 2.0.4 to make sure fontconfig files are
valid
* Thu Apr 02 2020 Nicolas Mailhot <nim@fedoraproject.org>
- 20200215-4
👻 Rebuild with fonts-rpm-macros 2.0.4 to make sure fontconfig files are valid
* Mon Mar 02 2020 Nicolas Mailhot <nim@fedoraproject.org>
- 20200215-3
Lint, lint, lint and lint again
* Sat Feb 22 2020 Nicolas Mailhot <nim@fedoraproject.org>
- 20200215-2
Rebuild with fonts-rpm-macros 2.0.2
* Sat Feb 15 2020 Nicolas Mailhot <nim@fedoraproject.org>
- 20200215-1
Convert to fonts-rpm-macros use
* Sun Nov 23 2008 Nicolas Mailhot <nim@fedoraproject.org>
- 1.0.107-1
Initial packaging

1
sources Normal file
View File

@ -0,0 +1 @@
SHA512 (google-droid-fonts-20200215.tar.xz) = 4ab5462819fbef043e4cc7df565a11da21e0f6afaee002576d52decbf43449053919a0787a1a06ce7187d5308afcf3c044cedf87ed2a6bb28ce18d981928d346

View File

@ -0,0 +1,73 @@
# Ansible role for tests using fontconfig
Put this role in your `tests.yml` playbook. The playbook will first install
package dependencies listed on playbook on your localhost, then it will proceed
to run testing. You can redefine the following variables:
* **artifacts**: An artifacts directory on localhost to store logs
* **remote_artifacts**: The directory on the system under test where the logs
are stored. Note: if this variable is left undefined, it will default to
`/tmp/artifacts`
* **required_packages**: A list of prerequisite packages required by tests.
Please note that for Atomic Host, additional packages will be installed
using the `rpm-ostree` command which is affecting the test subject (it's
similar as rebuilding an rpm package to be tested) so this should be used
with caution on only when necessary.
* **path_prefix**: The directory on the system where fonts are installed.
please use one in coverage sub-parameter if having different path_prefix
per sub-packages.
* **package**: The package name to test. this is used to find out fontconfig
config file. please use one in families sub-parameter if having different
config files per sub-packages.
* **coverage**: A list of languages for language coverage tests.
* **families**: A list of family test cases.
## Language coverage test parameters
Supporting two types of formats. one is a simple list of languages:
coverage:
- en
- fr
Another one is a dictionary that has a language as a key and values as parameters:
coverage:
en:
...
fr:
...
You can redefine the following variables for dictionary format:
* **exclude**: A list of font file names to exclude on this testing. this is
useful to avoid unexpected failures on iterating tests when a package has
multiple font files and has different coverages but you need to prevent
testing for few fonts which has different coverages to them.
Please note that the file name is relative to `path_prefix` parameter. also
good to consider using `include` if non-targeted files is more than targeted.
* **include**: A list of font file names to include on this testing. this is
useful to avoid unexpected failures on iterating tests when a pcakge has
multiple font files and has different coverages but you need to prevent
testing for few fonts which has different coverages to them.
Please note that the file name is relative to `path_prefix` parameter. also
good to consider using `exclude` if targeted files is more than non-targeted.
* **name**: The name to store logs. the test script is trying to make an unique
file names to store logs but not perfectly working in some cases. this is
optional parameter to make it unique by yourself.
* **path_prefix**: A list of directory names where fonts are installed on system.
this is optional parameter and tries to obtain the font paths from installed
packages by `required_packages` if not available.
## Family test parameters
* **lang**: A language to test family name for.
* **alias**: An alias name to test.
* **family**: A family name to test, which is supposed to be assinged to the alias.
* **package**: The package name to test. this is used to find out fontconfig
config file. this is optional. if not specified here, global `package`
parameter will be used.
* **width**: A width to test. the default value is normal. this is the sort of
workaround to avoid the tricky part of implicit behavior in fontconfig.
If a font doesn't support normal(100) width, a test may fails without this
parameter.

View File

@ -0,0 +1,7 @@
---
role_pkgs_req:
- fontconfig
- fontconfig-devel
- pkg-config
- rsync

View File

@ -0,0 +1,169 @@
#! /bin/bash -efu
debug() {
if [ -n "$DEBUG" ]; then
echo "$*" >&2
fi
}
msg_usage() {
cat <<_EOF_
Run family test.
Usage:
$PROG <options>
Options:
-h, --help Display this help and exit
-v, --verbose Turn on debug
-l, --lang=LANG Test LANG language coverage (default: en)
-f, --family=FILE Set a family name supposed to be assigned for alias.
-g, --alias=STR Set an alias name. (default: sans-serif)
-a, --artifactsdir=DIR Set environment dir to store artifacts
-k, --package=NAME Set a package name for fonts.
-w, --width=WIDTH Set a width
_EOF_
}
PROG="${PROG:-${0##*/}}"
DEBUG="${DEBUG:-}"
OPT_LANG="${OPT_LANG:-en}"
OPT_FAMILY="${OPT_FAMILY:-}"
OPT_ARTIFACTS_DIR="${OPT_ARTIFACTS_DIR:-}"
OPT_ALIAS="${OPT_ALIAS:-sans-serif}"
OPT_PACKAGE="${OPT_PACKAGE:-}"
OPT_WIDTH="${OPT_WIDTH:-normal}"
opt=$(getopt -n "$0" --options "hvl:f:t:a:g:k:w:" --longoptions "help,verbose,lang:,family:,test:,artifactsdir:,alias:,package:,width:" -- "$@")
eval set -- "$opt"
while [[ $# -gt 0 ]]; do
case "$1" in
-k|--package)
OPT_PACKAGE="$2"
shift 2
;;
-g|--alias)
OPT_ALIAS="$2"
shift 2
;;
-a|--artifactsdir)
OPT_ARTIFACTS_DIR="$2"
shift 2
;;
-f|--family)
OPT_FAMILY="$2"
shift 2
;;
-l|--lang)
OPT_LANG="$2"
shift 2
;;
-v|--verbose)
DEBUG="-v"
shift
;;
-w|--width)
OPT_WIDTH="$2"
shift 2
;;
-h|--help)
msg_usage
exit 0
;;
--)
shift
;;
*)
msg_usage
exit 1
esac
done
if [ -z "$OPT_ARTIFACTS_DIR" ] || [ -z "$OPT_LANG" ] || [ -z "$OPT_FAMILY" ]; then
echo "Use: $PROG -h for help."
exit 0
fi
debug "Alias: $OPT_ALIAS"
debug "Family: $OPT_FAMILY"
debug "Lang: $OPT_LANG"
debug "Artifacts dir: $OPT_ARTIFACTS_DIR"
debug "Package name: $OPT_PACKAGE"
debug "Width: $OPT_WIDTH"
STR_TEST_DASHED=$(echo "${OPT_PACKAGE}_${OPT_ALIAS}_${OPT_LANG}" | sed -e 's/\//-/g' -e 's/ /-/g')
debug "Log file: $STR_TEST_DASHED.log"
clean_exit() {
rc=$?;
trap - SIGINT SIGTERM SIGABRT EXIT
echo "Run test $OPT_ALIAS: done. Test's exit code: $rc"
for pid in $(ps -o pid --no-headers --ppid $$); do
if [ -n "$(ps -p $pid -o pid=)" ]; then
kill -s HUP $pid
fi
done
local log_file_name="$STR_TEST_DASHED.log"
local log_file_path="$OPT_ARTIFACTS_DIR/$log_file_name"
local status
if [[ $rc -eq 127 ]]; then
status="ERROR"
elif grep -q "RESULT: WARN" "$log_file_path"; then
status="ERROR"
elif grep -q "RESULT: FAIL" "$log_file_path"; then
status="FAIL"
elif grep -q "RESULT: PASS" "$log_file_path"; then
status="PASS"
elif grep -q "FAIL" "$log_file_path"; then
status="FAIL"
elif grep -q "PASS" "$log_file_path"; then
status="PASS"
else
status="ERROR"
fi
echo "$status $OPT_ALIAS" >> "$OPT_ARTIFACTS_DIR/test.log"
mv "$log_file_path" "$OPT_ARTIFACTS_DIR/${status}-${log_file_name}"
local results="$OPT_ARTIFACTS_DIR/results.yml"
local result=$(echo $status | tr '[:upper:]' '[:lower:]')
test -f "$results" || echo 'results:' > "$results"
printf '%s\n' '' \
"- test: $OPT_ALIAS" \
" result: $result" \
" logs:" \
" - ${status}_${log_file_name}" \
>> "$results"
exit 0
}
trap clean_exit SIGINT SIGTERM SIGABRT EXIT
cachedir=`pkg-config --variable cachedir fontconfig`
tmpconfd=`mktemp --tmpdir -d fontsci.XXXXXXXX`
conf=$(for i in `rpm -ql $OPT_PACKAGE | grep conf.d`; do
echo "<include>$i</include>"
done)
cat <<_EOF_> $tmpconfd/fonts.conf
<fontconfig>
<dir>/usr/share/fonts</dir>
$conf
<cachedir>$cachedir</cachedir>
</fontconfig>
_EOF_
debug "Config: `cat $tmpconfd/fonts.conf`"
mkdir -p "$OPT_ARTIFACTS_DIR"
export OUTPUTFILE="$(realpath "$OPT_ARTIFACTS_DIR")/$STR_TEST_DASHED-out.log"
logfile="$OPT_ARTIFACTS_DIR/$STR_TEST_DASHED.log"
logfile="$(realpath "$logfile")"
exec > >(tee -a "$logfile") 2>&1
debug "Check family assignment"
res=`FONTCONFIG_FILE=$tmpconfd/fonts.conf fc-pattern -c -f "%{family}" :family=$OPT_ALIAS:lang=$OPT_LANG:width=$OPT_WIDTH | grep "$OPT_FAMILY"`
ret=0
if [ "x$res" != "x" ]; then
echo "RESULT: PASS: $OPT_FAMILY was assigned to $OPT_ALIAS as expected"
else
echo "RESULT: FAIL: $OPT_FAMILY wasn't assigned to $OPT_ALIAS (actual result: $res)"
ret=1
fi
rm -rf $tmpconfd
exit $ret

View File

@ -0,0 +1,252 @@
#! /bin/bash -efu
debug() {
if [ -n "$DEBUG" ]; then
echo "$*" >&2
fi
}
msg_usage() {
cat <<_EOF_
Run language coverage test.
Usage:
$PROG <options>
Options:
-h, --help Display this help and exit
-v, --verbose Turn on debug
-l, --lang=LANG Test LANG language coverage (default: en)
-p, --path=PATH Test fonts on PATH
-k, --package=PACKAGE Specify PACKAGE to obtain some information
-n, --name=NAME Set NAME to store a log file.
-a, --artifactsdir=DIR test environment dir to store artifacts
-e, --exclude=FILE Exclude FILE to check.
-i, --include=FILE Include File to check.
_EOF_
}
PROG="${PROG:-${0##*/}}"
DEBUG="${DEBUG:-}"
OPT_LANG="${OPT_LANG:-en}"
OPT_PATH=()
OPT_PACKAGE=()
OPT_ARTIFACTS_DIR="${OPT_ARTIFACTS_DIR:-}"
OPT_EXCLUDE=()
OPT_INCLUDE=()
OPT_NAME="${OPT_NAME:-}"
opt=$(getopt -n "$0" --options "hvl:p:k:n:a:e:i:" --longoptions "help,verbose,lang:,path:,package:,name:,artifactsdir:,exclude:,include:" -- "$@")
eval set -- "$opt"
while [[ $# -gt 0 ]]; do
case "$1" in
-n|--name)
OPT_NAME="$2"
shift 2
;;
-i|--include)
OPT_INCLUDE+=("$2")
shift 2
;;
-e|--exclude)
OPT_EXCLUDE+=("$2")
shift 2
;;
-a|--artifactsdir)
OPT_ARTIFACTS_DIR="$2"
shift 2
;;
-p|--path)
OPT_PATH+=("$2")
shift 2
;;
-k|--package)
OPT_PACKAGE+=("$2")
shift 2
;;
-l|--lang)
OPT_LANG="$2"
shift 2
;;
-v|--verbose)
DEBUG="-v"
shift
;;
-h|--help)
msg_usage
exit 0
;;
--)
shift
;;
*)
msg_usage
exit 1
esac
done
if [ -z "$OPT_ARTIFACTS_DIR" ] || [ -z "$OPT_LANG" ] || [ ! -v OPT_PATH ] && [ ! -v OPT_PACKAGE ]; then
echo "Use: $PROG -h for help."
exit 0
fi
STR_TEST_DASHED=$(echo "${OPT_NAME:-$OPT_LANG}" | sed -e 's/\//-/g')
clean_exit() {
rc=$?;
trap - SIGINT SIGTERM SIGABRT EXIT
echo "Run test $OPT_LANG: done. Test's exit code: $rc"
for pid in $(ps -o pid --no-headers --ppid $$); do
if [ -n "$(ps -p $pid -o pid=)" ]; then
kill -s HUP $pid
fi
done
local log_file_name="$STR_TEST_DASHED.log"
local log_file_path="$OPT_ARTIFACTS_DIR/$log_file_name"
local status
if [[ $rc -eq 127 ]]; then
status="ERROR"
elif grep -q "RESULT: WARN" "$log_file_path"; then
status="ERROR"
elif grep -q "RESULT: FAIL" "$log_file_path"; then
status="FAIL"
elif grep -q "RESULT: PASS" "$log_file_path"; then
status="PASS"
elif grep -q "WARN" "$log_file_path"; then
status="ERROR"
elif grep -q "FAIL" "$log_file_path"; then
status="FAIL"
elif grep -q "PASS" "$log_file_path"; then
status="PASS"
else
status="ERROR"
fi
echo "$status $OPT_LANG" >> "$OPT_ARTIFACTS_DIR/test.log"
mv "$log_file_path" "$OPT_ARTIFACTS_DIR/${status}-${log_file_name}"
local results="$OPT_ARTIFACTS_DIR/results.yml"
local result=$(echo $status | tr '[:upper:]' '[:lower:]')
test -f "$results" || echo 'results:' > "$results"
printf '%s\n' '' \
"- test: $OPT_LANG" \
" result: $result" \
" logs:" \
" - ${status}_${log_file_name}" \
>> "$results"
exit 0
}
trap clean_exit SIGINT SIGTERM SIGABRT EXIT
mkdir -p "$OPT_ARTIFACTS_DIR"
export OUTPUTFILE="$(realpath "$OPT_ARTIFACTS_DIR")/$STR_TEST_DASHED-out.log"
logfile="$OPT_ARTIFACTS_DIR/$STR_TEST_DASHED.log"
logfile="$(realpath "$logfile")"
exec > >(tee -a "$logfile") 2>&1
for pkg in ${OPT_PACKAGE[@]}; do
if ! rpm -q ${pkg} > /dev/null 2>&1; then
echo "Package isn't installed or maybe a typo: ${pkg}"
exit 127
fi
d=$(for d in $(rpm -ql ${pkg}|grep /usr/share/fonts); do
dirname $d
done | sort | uniq | grep /usr/share/fonts/)
if [[ ! " ${OPT_PATH[@]} " =~ " ${d} " ]]; then
OPT_PATH+=("$d")
fi
done
expand_regex() {
local p ret=()
local regex="$1"
shift
debug "Expanding $regex"
for p; do
set +f
debug "$p: $regex"
(cd $p;
local x=$(find -regextype posix-egrep -regex "./$regex" -print|sed -e 's,^\./,,g')
debug "$x"
ret+=($x)
set -f
echo -n ${ret[@]}
)
done
echo -n ${ret[@]}
}
iv=()
ev=()
x=()
for p in ${OPT_INCLUDE[@]}; do
x=$(expand_regex $p ${OPT_PATH[@]})
if [ "x$x" == "x" ]; then
echo "RESULT: WARN: No matches on \"$p\". maybe typo or something changed?"
continue
fi
iv=("${iv[@]}" "${x[@]}")
done
for p in ${OPT_EXCLUDE[@]}; do
x=$(expand_regex $p ${OPT_PATH[@]})
if [ "x$x" == "x" ]; then
echo "RESULT: WARN: No matches on \"$p\". maybe typo or something changed?"
continue
fi
ev=("${ev[@]}" "${x[@]}")
done
OPT_EXCLUDE=(${ev[@]})
OPT_INCLUDE=(${iv[@]})
debug "Path: ${OPT_PATH[@]}"
debug "Lang: $OPT_LANG"
debug "Artifacts dir: $OPT_ARTIFACTS_DIR"
debug "Exclude: ${#OPT_EXCLUDE[@]}: ${OPT_EXCLUDE[@]}"
debug "Include: ${#OPT_INCLUDE[@]}: ${OPT_INCLUDE[@]}"
contains() {
local e match="$1"
shift
for e; do [[ "$e" == "$match" ]] && return 1; done
return 0
}
debug "Check language coverage"
ret=0
set +f
for p in ${OPT_PATH[@]}; do
for i in `find $p -regex '.*/*\.\(t1\)?\(ttf\)?\(otf\)?\(ttc\)?\(pcf.*\)?\(pfa\)?'`; do
set -f
debug "$i"
if test -f $i; then
n=`basename $i`
set +e
contains "$n" "${OPT_EXCLUDE[@]}"
r=$?
set -e
if [ $r -eq 1 ]; then
debug "ignoring $i"
continue
fi
if [ ${#OPT_INCLUDE[@]} -ne 0 ]; then
set +e
contains "$n" "${OPT_INCLUDE[@]}"
r=$?
set -e
if [ $r -eq 0 ]; then
debug "$i isn't targeted file"
continue
fi
NOT_MATCHED=("${NOT_MATCHED[@]/$n}")
fi
debug " $i"
res=`fc-validate -l $OPT_LANG $i || :`
if echo $res | grep -q Missing; then
echo "RESULT: FAIL: $i doesn't satisfy $OPT_LANG language coverage."
ret=1
else
echo "RESULT: PASS: $i satisfy $OPT_LANG language coverage."
fi
fi
done
done
exit $ret

View File

@ -0,0 +1,4 @@
---
dependencies:
- role: str-common-init

View File

@ -0,0 +1,48 @@
---
- block:
- name: language coverage
environment:
LANG: "en_US.UTF-8"
script: run-lang-coverage-test --lang "{{ item }}" {% if path_prefix is defined %} --path {{ path_prefix }} {% elif coverage.values is not defined or coverage[item].path_prefix is not defined %} {% else %} {{ '--path "' + (coverage[item].path_prefix | join('" --path "')) + '"' }} {% endif %} --artifactsdir "{{ remote_artifacts }}" {% if coverage.values is not defined or coverage[item].name is not defined %} {% else %} {{ "--name " + coverage[item].name }} {% endif %} {% if coverage.values is not defined or coverage[item].exclude is not defined %} {% else %} {{ '--exclude "' + (coverage[item].exclude | join('" --exclude "')) + '"' }} {% endif %} {% if coverage.values is not defined or coverage[item].include is not defined %} {% else %} {{ '--include "' + (coverage[item].include | join('" --include "')) + '"' }} {% endif %} {% if path_prefix is defined or coverage.values is defined and coverage[item].path_prefix is defined %} {% else %} {{ '--package "' + (required_packages|join('" --package "')) + '"' }} {% endif %}
with_items:
- "{{ coverage if coverage.keys is not defined else coverage.keys()|list }}"
- name: generic family assignment
environment:
LANG: "en_US.UTF-8"
when: families is defined
script: run-family-test --lang {{ item.lang }} --family '{{ item.family }}' --alias {{ item.alias }} --artifactsdir {{ remote_artifacts }} --package {{ package if item.package is not defined else item.package }} {% if item.width is defined %} --width {{ item.width }} {% endif %}
with_items:
- "{{ families }}"
- name: Check the results
shell: |
log="{{ remote_artifacts }}/test.log"
if [ ! -f "$log" ]; then
echo ERROR
echo "Test results not found." 1>&2
elif grep ^ERROR "$log" 1>&2; then
echo ERROR
elif grep ^FAIL "$log" 1>&2; then
echo FAIL
elif grep -q ^PASS "$log"; then
echo PASS
else
echo ERROR
echo "No test results found." 1>&2
fi
register: test_results
- name: Set role result
set_fact:
role_result: "{{ test_results.stdout }}"
role_message: "{{ test_results.stderr|d('test execution error.') }}"
role_result_failed: "{{ test_results.stdout != 'PASS' }}"
role_result_msg: "{{ test_results.stderr|d('test execution error.') }}"
- include_role:
name: str-common-final
- name: Validate the result
shell: echo "test_results.stdout"
failed_when: test_results.stdout != 'PASS'

View File

@ -0,0 +1,54 @@
---
- block:
- name: language coverage
environment:
LANG: "en_US.UTF-8"
script: run-lang-coverage-test --lang "{{ item }}" {% if path_prefix is defined %} --path {{ path_prefix }} {% elif coverage.values is not defined or coverage[item].path_prefix is not defined %} {% else %} {{ '--path "' + (coverage[item].path_prefix | join('" --path "')) + '"' }} {% endif %} --artifactsdir "{{ remote_artifacts }}" {% if coverage.values is not defined or coverage[item].name is not defined %} {% else %} {{ "--name " + coverage[item].name }} {% endif %} {% if coverage.values is not defined or coverage[item].exclude is not defined %} {% else %} {{ '--exclude "' + (coverage[item].exclude | join('" --exclude "')) + '"' }} {% endif %} {% if coverage.values is not defined or coverage[item].include is not defined %} {% else %} {{ '--include "' + (coverage[item].include | join('" --include "')) + '"' }} {% endif %} {% if path_prefix is defined or coverage.values is defined and coverage[item].path_prefix is defined %} {% else %} {{ '--package "' + (required_packages|join('" --package "')) + '"' }} {% endif %}
with_items:
- "{{ coverage if coverage.keys is not defined else coverage.keys()|list }}"
- name: generic family assignment
environment:
LANG: "en_US.UTF-8"
when: families is defined
script: run-family-test --lang {{ item.lang }} --family '{{ item.family }}' --alias {{ item.alias }} --artifactsdir {{ remote_artifacts }} --package {{ package if item.package is not defined else item.package }} {% if item.width is defined %} --width {{ item.width }} {% endif %}
with_items:
- "{{ families }}"
- name: Collect all of failures into one file
shell: |
grep -v PASS "{{ remote_artifacts }}"/FAIL_*.log > "{{ remote_artifacts }}"/FAIL-all.log || :
- name: Check the results
shell: |
log="{{ remote_artifacts }}/test.log"
if [ ! -f "$log" ]; then
echo ERROR
echo "Test results not found." 1>&2
elif grep ^ERROR "$log" 1>&2; then
echo ERROR
elif grep ^FAIL "$log" 1>&2; then
echo FAIL
elif grep -q ^PASS "$log"; then
echo PASS
else
echo ERROR
echo "No test results found." 1>&2
fi
register: test_results
- name: debug result
debug: var=test_results
- name: Set role result
set_fact:
role_result: "{{ test_results.stdout }}"
role_message: "{{ test_results.stderr|d('test execution error.') }}"
role_result_failed: "{{ test_results.stdout != 'PASS' }}"
role_result_msg: "{{ test_results.stderr|d('test execution error.') }}"
- include_role:
name: str-common-final
- name: Validate the result
shell: echo "test_results.stdout"
failed_when: test_results.stdout != 'PASS'

View File

@ -0,0 +1,7 @@
---
role_pkgs_req:
- fontconfig
- fontconfig-devel
- pkg-config
- rsync

207
tests/tests.yml Normal file
View File

@ -0,0 +1,207 @@
- hosts: localhost
become: yes
tags:
- classic
roles:
- role: custom-test-fonts
required_packages:
- google-droid-sans-fonts
- google-droid-serif-fonts
- google-droid-sans-mono-fonts
coverage:
en:
path_prefix:
- /usr/share/fonts/google-droid-sans-fonts
- /usr/share/fonts/google-droid-serif-fonts
- /usr/share/fonts/google-droid-sans-mono-fonts
include:
- DroidSans.ttf
- DroidSans-.*.ttf
- DroidSerif-.*.ttf
- DroidSansMono.ttf
ar:
path_prefix:
- /usr/share/fonts/google-droid-sans-fonts
- /usr/share/fonts/google-droid-serif-fonts
include:
- DroidKufi.*.ttf
- DroidNaskh.*.ttf
exclude:
- DroidSans.ttf
- DroidSans-.*.ttf
- DroidSerif-.*.ttf
- DroidSansArmenian.ttf
- DroidSansDevanagari.*.ttf
- DroidSansEthiopic.*.ttf
- DroidSansFallback.*.ttf
- DroidSansGeorgian.ttf
- DroidSansHebrew.*.ttf
- DroidSansJapanese.*.ttf
- DroidSansTamil.*.ttf
- DroidSansThai.ttf
hy:
path_prefix:
- /usr/share/fonts/google-droid-sans-fonts
include:
- DroidSansArmenian.ttf
exclude:
- DroidSans.ttf
- DroidSans-.*.ttf
- DroidKufi.*.ttf
- DroidSansDevanagari.*.ttf
- DroidSansEthiopic.*.ttf
- DroidSansFallback.*.ttf
- DroidSansGeorgian.ttf
- DroidSansHebrew.*.ttf
- DroidSansJapanese.*.ttf
- DroidSansTamil.*.ttf
- DroidSansThai.ttf
hi:
path_prefix:
- /usr/share/fonts/google-droid-sans-fonts
include:
- DroidSansDevanagari.*.ttf
exclude:
- DroidSans.ttf
- DroidSans-.*.ttf
- DroidKufi.*.ttf
- DroidSansArmenian.ttf
- DroidSansEthiopic.*.ttf
- DroidSansFallback.*.ttf
- DroidSansGeorgian.ttf
- DroidSansHebrew.*.ttf
- DroidSansJapanese.*.ttf
- DroidSansTamil.*.ttf
- DroidSansThai.ttf
am:
path_prefix:
- /usr/share/fonts/google-droid-sans-fonts
include:
- DroidSansEthiopic.*.ttf
exclude:
- DroidSans.ttf
- DroidSans-.*.ttf
- DroidKufi.*.ttf
- DroidSansArmenian.ttf
- DroidSansDevanagari.*.ttf
- DroidSansFallback.*.ttf
- DroidSansGeorgian.ttf
- DroidSansHebrew.*.ttf
- DroidSansJapanese.*.ttf
- DroidSansTamil.*.ttf
- DroidSansThai.ttf
zh-tw:
path_prefix:
- /usr/share/fonts/google-droid-sans-fonts
include:
- DroidSansFallback.*.ttf
exclude:
- DroidSans.ttf
- DroidSans-.*.ttf
- DroidKufi.*.ttf
- DroidSansArmenian.ttf
- DroidSansDevanagari.*.ttf
- DroidSansEthiopic.*.ttf
- DroidSansGeorgian.ttf
- DroidSansHebrew.*.ttf
- DroidSansJapanese.*.ttf
- DroidSansTamil.*.ttf
- DroidSansThai.ttf
ka:
path_prefix:
- /usr/share/fonts/google-droid-sans-fonts
include:
- DroidSansGeorgian.ttf
exclude:
- DroidSans.ttf
- DroidSans-.*.ttf
- DroidKufi.*.ttf
- DroidSansArmenian.ttf
- DroidSansDevanagari.*.ttf
- DroidSansEthiopic.*.ttf
- DroidSansFallback.*.ttf
- DroidSansHebrew.*.ttf
- DroidSansJapanese.*.ttf
- DroidSansTamil.*.ttf
- DroidSansThai.ttf
he:
path_prefix:
- /usr/share/fonts/google-droid-sans-fonts
include:
- DroidSansHebrew.*.ttf
exclude:
- DroidSans.ttf
- DroidSans-.*.ttf
- DroidKufi.*.ttf
- DroidSansArmenian.ttf
- DroidSansDevanagari.*.ttf
- DroidSansEthiopic.*.ttf
- DroidSansFallback.*.ttf
- DroidSansGeorgian.ttf
- DroidSansJapanese.*.ttf
- DroidSansTamil.*.ttf
- DroidSansThai.ttf
ja:
path_prefix:
- /usr/share/fonts/google-droid-sans-fonts
include:
- DroidSansJapanese.*.ttf
exclude:
- DroidSans.ttf
- DroidSans-.*.ttf
- DroidKufi.*.ttf
- DroidSansArmenian.ttf
- DroidSansDevanagari.*.ttf
- DroidSansEthiopic.*.ttf
- DroidSansFallback.*.ttf
- DroidSansGeorgian.ttf
- DroidSansHebrew.*.ttf
- DroidSansTamil.*.ttf
- DroidSansThai.ttf
ta:
path_prefix:
- /usr/share/fonts/google-droid-sans-fonts
include:
- DroidSansTamil.*.ttf
exclude:
- DroidSans.ttf
- DroidSans-.*.ttf
- DroidKufi.*.ttf
- DroidSansArmenian.ttf
- DroidSansDevanagari.*.ttf
- DroidSansEthiopic.*.ttf
- DroidSansFallback.*.ttf
- DroidSansGeorgian.ttf
- DroidSansHebrew.*.ttf
- DroidSansJapanese.*.ttf
- DroidSansThai.ttf
th:
path_prefix:
- /usr/share/fonts/google-droid-sans-fonts
include:
- DroidSansThai.ttf
exclude:
- DroidSans.ttf
- DroidSans-.*.ttf
- DroidKufi.*.ttf
- DroidSansArmenian.ttf
- DroidSansDevanagari.*.ttf
- DroidSansEthiopic.*.ttf
- DroidSansFallback.*.ttf
- DroidSansGeorgian.ttf
- DroidSansHebrew.*.ttf
- DroidSansJapanese.*.ttf
- DroidSansTamil.*.ttf
families:
- lang: en
package: google-droid-sans-fonts
alias: sans-serif
family: Droid Sans
- lang: en
package: google-droid-sans-mono-fonts
alias: monospace
family: Droid Sans Mono
- lang: en
package: google-droid-serif-fonts
alias: serif
family: Droid Serif