RHEL 9.0.0 Alpha bootstrap

The content of this branch was automatically imported from Fedora ELN
with the following as its source:
https://src.fedoraproject.org/rpms/sil-abyssinica-fonts#b4263ea32f2c727a5ae5bbae46be5a67b7807061
This commit is contained in:
Troy Dawson 2020-10-15 09:36:44 -07:00
parent f91add8d8d
commit b542e601e8
10 changed files with 600 additions and 0 deletions

2
.gitignore vendored
View File

@ -0,0 +1,2 @@
abyssinicasil1.0.zip
/AbyssinicaSIL1.200.zip

View File

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
<fontconfig>
<!-- Generic names -->
<alias>
<family>Abyssinica SIL</family>
<default>
<family>serif</family>
</default>
</alias>
<!-- Simple priority lists -->
<alias>
<family>serif</family>
<prefer>
<family>Abyssinica SIL</family>
</prefer>
</alias>
<match target="font">
<test name="family" ignore-blanks="true">
<string>Abyssinica SIL</string>
</test>
<edit name="autohint" mode="assign">
<bool>true</bool>
</edit>
</match>
</fontconfig>

154
sil-abyssinica-fonts.spec Normal file
View File

@ -0,0 +1,154 @@
Version: 1.200
Release: 20%{?dist}
%global foundry SIL
%global fontlicense OFL
%global fontlicenses OFL.txt
%global fontdocs *.txt documentation/*.txt
%global fontdocsex %{fontlicenses}
%global fontfamily Abyssinica SIL
%global fontsummary SIL Abyssinica fonts
%global projectname AbyssinicaSIL
%global archivename %{lua:t=string.gsub(rpm.expand("%{fontfamily}"), "[%p%s]+", ""); print(t)}%{version}
URL: https://software.sil.org/%{projectname}/
%global fonts *.ttf
%global fontconfs %{SOURCE1}
%global fontdescription %{expand:
SIL Abyssinica is a Unicode typeface family containing glyphs for the
Ethiopic script.
The Ethiopic script is used for writing many of the languages of Ethiopia and
Eritrea. Abyssinica SIL supports all Ethiopic characters which are in Unicode
including the Unicode 4.1 extensions. Some languages of Ethiopia are not yet
able to be fully represented in Unicode and, where necessary, we have included
non-Unicode characters in the Private Use Area (see Private-use (PUA)
characters supported by Abyssinica SIL).
Abyssinica SIL is based on Ethiopic calligraphic traditions. This release is
a regular typeface, with no bold or italic version available or planned.}
# download from http://scripts.sil.org/cms/scripts/render_download.php?site_id=nrsi&format=file&media_id=AbyssinicaSIL1.200.zip&filename=AbyssinicaSIL1.200.zip
Source0: %{archivename}.zip
Source1: 66-%{fontpkgname}.conf
%fontpkg
%prep
%setup -q -n %{projectname}-%{version}
%linuxtext FONTLOG.txt OFL.txt OFL-FAQ.txt README.txt documentation/DOCUMENTATION.txt
%build
%fontbuild
%install
%fontinstall
%check
%fontcheck
%fontfiles
%changelog
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.200-20
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Sun May 24 2020 Parag Nemade <pnemade AT redhat DOT com> - 1.200-19
- Update fontconfig DTD id in conf file
* Thu Mar 12 2020 Parag Nemade <pnemade AT redhat DOT com> - 1.200-18
- Convert to new fonts packaging guidelines
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.200-17
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.200-16
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.200-15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.200-14
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.200-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.200-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.200-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Fri Feb 05 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1.200-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.200-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Thu Oct 16 2014 Parag Nemade <pnemade AT redhat DOT com> - 1.200-8
- Add metainfo file to show this font in gnome-software
* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.200-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.200-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.200-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
* Mon Aug 13 2012 Parag Nemade <pnemade AT redhat DOT com> - 1.200-4
- Resolves:rh#847576:-better enabling autohinting by default
* Sat Jul 21 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.200-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Fri Feb 03 2012 Mathieu Bridon <bochecha@fedoraproject.org> - 1.200-2
- Spec file cleanup, remove stuff that is not needed any more.
- Fix build with latest release.
* Fri Feb 03 2012 Mathieu Bridon <bochecha@fedoraproject.org> - 1.200-1
- New upstream release.
- Remove Obsoletes/Provides from package rename.
* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
* Sat Jun 12 2010 Mathieu Bridon <bochecha@fedoraproject.org> - 1.0-9
- Add fontconfig configuration file (BZ#586248)
* Tue Feb 16 2010 Mathieu Bridon <bochecha@fedoraproject.org> - 1.0-8
- Fix Obsolete: that was wrong when renaming the package.
- The font base folder was listed twice (one was hidden in the font macro)
* Thu Feb 11 2010 Mathieu Bridon <bochecha@fedoraproject.org> - 1.0-7
- Use new archive from upstream at same location (which is lowercase now)
- Remove dubious Provides: (RHBZ#563395)
* Wed Feb 10 2010 Mathieu Bridon <bochecha@fedoraproject.org> - 1.0-6
- Renamed from abyssinica-fonts to sil-abyssinica-fonts
* Mon Feb 1 2010 Jens Petersen <petersen@redhat.com>
- use general SIL url and simplify download url
* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
* Mon Feb 23 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
* Sun Dec 21 2008 Bernie Innocenti <bernie@codewiz.org> 1.0-3
- Updated to current Fedora font packaging guidelines
* Thu Oct 04 2007 Todd Zullinger <tmz@pobox.com> 1.0-2
- use upstream zip file as Source0
- fix license tag
* Fri Sep 14 2007 Bernardo Innocenti <bernie@codewiz.org> 1.0-1
- Initial packaging, borrowing many things from gentium-fonts

1
sources Normal file
View File

@ -0,0 +1 @@
8210f0468e297009638be9cbe9fb4bda AbyssinicaSIL1.200.zip

View File

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

View File

@ -0,0 +1,153 @@
#! /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.
_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=$(getopt -n "$0" --options "hvl:f:t:a:g:k:" --longoptions "help,verbose,lang:,family:,test:,artifactsdir:,alias:,package:" -- "$@")
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
;;
-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"
STR_TEST_DASHED=$(echo "${OPT_PACKAGE}_${OPT_ALIAS}" | 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."
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"
echo "- {result: $result, test: $OPT_ALIAS}" >> "$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_stdout="$OPT_ARTIFACTS_DIR/$STR_TEST_DASHED.log"
logfile_stderr="$OPT_ARTIFACTS_DIR/$STR_TEST_DASHED-err.log"
exec 3>&1 4>&2 1> >(tee -a "$logfile_stdout" >&3) 2> >(tee -a "$logfile_stderr" >&4)
debug "Check family assignment"
res=`FONTCONFIG_FILE=$tmpconfd/fonts.conf fc-match -f "%{family[0]}" :family=$OPT_ALIAS:lang=$OPT_LANG`
if [ "x$res" = "x$OPT_FAMILY" ]; 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)"
fi
rm -rf $tmpconfd

View File

@ -0,0 +1,197 @@
#! /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
-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_PATH:-}"
OPT_ARTIFACTS_DIR="${OPT_ARTIFACTS_DIR:-}"
OPT_EXCLUDE=()
OPT_INCLUDE=()
OPT_NAME="${OPT_NAME:-}"
opt=$(getopt -n "$0" --options "hvl:p:n:a:e:i:" --longoptions "help,verbose,lang:,path:,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
;;
-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" ] || [ -z "$OPT_PATH" ]; then
echo "Use: $PROG -h for help."
exit 0
fi
expand_regex() {
local e ret=()
local path="$1"
shift
(cd $path;
for e; do
debug "$e"
set +f
local x=$(find -regextype posix-egrep -regex "./$e" -print|sed -e 's,^\./,,g')
ret+=($x)
set -f
echo ${ret[@]}
done)
echo ${ret[@]}
}
OPT_INCLUDE=($(expand_regex $OPT_PATH ${OPT_INCLUDE[@]}))
OPT_EXCLUDE=($(expand_regex $OPT_PATH ${OPT_EXCLUDE[@]}))
debug "Path: $OPT_PATH"
debug "Lang: $OPT_LANG"
debug "Artifacts dir: $OPT_ARTIFACTS_DIR"
debug "Exclude: ${OPT_EXCLUDE[@]}"
debug "Include: ${OPT_INCLUDE[@]}"
STR_TEST_DASHED=$(echo "${OPT_NAME:-${OPT_LANG}_${OPT_PATH}}" | sed -e 's/\//-/g')
clean_exit() {
rc=$?;
trap - SIGINT SIGTERM SIGABRT EXIT
echo "Run test $OPT_PATH: done."
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_PATH" >> "$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"
echo "- {result: $result, test: $OPT_PATH}" >> "$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_stdout="$OPT_ARTIFACTS_DIR/$STR_TEST_DASHED.log"
logfile_stderr="$OPT_ARTIFACTS_DIR/$STR_TEST_DASHED-err.log"
exec 3>&1 4>&2 1> >(tee -a "$logfile_stdout" >&3) 2> >(tee -a "$logfile_stderr" >&4)
contains() {
local e match="$1"
shift
for e; do [[ "$e" == "$match" ]] && return 1; done
return 0
}
debug "Check language coverage"
set +f
for i in `find $OPT_PATH -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[@]}"
ret=$?
set -e
if [ $ret -eq 1 ]; then
debug "ignoring $i"
continue
fi
if [ ${#OPT_INCLUDE[@]} -ne 0 ]; then
set +e
contains "$n" "${OPT_INCLUDE[@]}"
ret=$?
set -e
if [ $ret -eq 0 ]; then
debug "$i isn't targeted file"
continue
fi
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."
else
echo "RESULT: PASS: $i satisfy $OPT_LANG language coverage."
fi
fi
done

View File

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

View File

@ -0,0 +1,40 @@
---
- block:
- name: language coverage
script: run-lang-coverage-test --lang "{{ item }}" --path "{{ path_prefix }}" --artifactsdir "{{ remote_artifacts }}" {{ "" if coverage.values is not defined or coverage[item].name is not defined else "--name " + coverage[item].name }} {{ "" if coverage.values is not defined or coverage[item].exclude is not defined else '--exclude "' + (coverage[item].exclude | join('" --exclude "')) + '"'}} {{ "" if coverage.values is not defined or coverage[item].include is not defined else '--include "' + (coverage[item].include | join('" --include "')) + '"'}}
with_items:
- "{{ coverage if coverage.keys is not defined else coverage.keys()|list }}"
- name: generic family assignment
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 }}
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

15
tests/tests.yml Normal file
View File

@ -0,0 +1,15 @@
- hosts: localhost
tags:
- classic
roles:
- role: custom-test-fonts
required_packages:
- sil-abyssinica-fonts
path_prefix: /usr/share/fonts/sil-abyssinica-fonts
package: sil-abyssinica-fonts
coverage:
- en
families:
- lang: en
alias: serif
family: Abyssinica SIL