From 95488e8c34717b8f037977cb33416ec718d39e1f Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 7 Feb 2018 01:54:17 +0000 Subject: [PATCH 01/38] - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- adobe-source-han-code-jp-fonts.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/adobe-source-han-code-jp-fonts.spec b/adobe-source-han-code-jp-fonts.spec index dd18de4..70a40f1 100644 --- a/adobe-source-han-code-jp-fonts.spec +++ b/adobe-source-han-code-jp-fonts.spec @@ -4,7 +4,7 @@ Name: adobe-source-han-code-jp-fonts Version: 2.000 -Release: 3%{?dist} +Release: 4%{?dist} Summary: Adobe OpenType UI font for mixed Latin and Japanese text License: OFL @@ -51,6 +51,9 @@ ln -s %{_fontconfig_templatedir}/%{fontconf} \ %doc README.md relnotes.txt %changelog +* Wed Feb 07 2018 Fedora Release Engineering - 2.000-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + * Thu Nov 16 2017 Akira TAGOH - 2.000-3 - Correct fontconfig config. From 436705ee85adc18a4518a974adaaa13091e45f87 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 12 Jul 2018 20:00:19 +0000 Subject: [PATCH 02/38] - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- adobe-source-han-code-jp-fonts.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/adobe-source-han-code-jp-fonts.spec b/adobe-source-han-code-jp-fonts.spec index 70a40f1..190db37 100644 --- a/adobe-source-han-code-jp-fonts.spec +++ b/adobe-source-han-code-jp-fonts.spec @@ -4,7 +4,7 @@ Name: adobe-source-han-code-jp-fonts Version: 2.000 -Release: 4%{?dist} +Release: 5%{?dist} Summary: Adobe OpenType UI font for mixed Latin and Japanese text License: OFL @@ -51,6 +51,9 @@ ln -s %{_fontconfig_templatedir}/%{fontconf} \ %doc README.md relnotes.txt %changelog +* Thu Jul 12 2018 Fedora Release Engineering - 2.000-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + * Wed Feb 07 2018 Fedora Release Engineering - 2.000-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild From be2b72664d9d732de33ab72cf06220df6f438078 Mon Sep 17 00:00:00 2001 From: Akira TAGOH Date: Wed, 18 Jul 2018 08:03:29 +0000 Subject: [PATCH 03/38] Update the priority to make Noto default. --- adobe-source-han-code-jp-fonts.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/adobe-source-han-code-jp-fonts.spec b/adobe-source-han-code-jp-fonts.spec index 190db37..a5b2355 100644 --- a/adobe-source-han-code-jp-fonts.spec +++ b/adobe-source-han-code-jp-fonts.spec @@ -1,10 +1,10 @@ %global fontname adobe-source-han-code-jp -%global fontconf 65-2-%{fontname}.conf +%global fontconf 68-%{fontname}.conf %global archivename source-han-code-jp-%{version}R Name: adobe-source-han-code-jp-fonts Version: 2.000 -Release: 5%{?dist} +Release: 6%{?dist} Summary: Adobe OpenType UI font for mixed Latin and Japanese text License: OFL @@ -51,6 +51,9 @@ ln -s %{_fontconfig_templatedir}/%{fontconf} \ %doc README.md relnotes.txt %changelog +* Wed Jul 18 2018 Akira TAGOH - 2.000-6 +- Update the priority to make Noto default. + * Thu Jul 12 2018 Fedora Release Engineering - 2.000-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild From 84ff24d7666aa55f0bb81bf155b93769a706e598 Mon Sep 17 00:00:00 2001 From: Akira TAGOH Date: Thu, 17 Jan 2019 08:13:14 +0000 Subject: [PATCH 04/38] Update to 2.011. --- .gitignore | 1 + adobe-source-han-code-jp-fonts.spec | 7 +++++-- sources | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index eeb8ff4..d482440 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /source-han-code-jp-2.000R.zip +/source-han-code-jp-2.011R.zip diff --git a/adobe-source-han-code-jp-fonts.spec b/adobe-source-han-code-jp-fonts.spec index a5b2355..5a77a8a 100644 --- a/adobe-source-han-code-jp-fonts.spec +++ b/adobe-source-han-code-jp-fonts.spec @@ -3,8 +3,8 @@ %global archivename source-han-code-jp-%{version}R Name: adobe-source-han-code-jp-fonts -Version: 2.000 -Release: 6%{?dist} +Version: 2.011 +Release: 1%{?dist} Summary: Adobe OpenType UI font for mixed Latin and Japanese text License: OFL @@ -51,6 +51,9 @@ ln -s %{_fontconfig_templatedir}/%{fontconf} \ %doc README.md relnotes.txt %changelog +* Thu Jan 17 2019 Akira TAGOH - 2.011-1 +- Update to 2.011. + * Wed Jul 18 2018 Akira TAGOH - 2.000-6 - Update the priority to make Noto default. diff --git a/sources b/sources index 86e7e5d..223c2b4 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (source-han-code-jp-2.000R.zip) = e78a7caf2e3d5f33cf7d8f237301b4f339498d93c25bc91780320abd1d26a78710494f90cfee1430563c4a1d32f41b3944e5e4e246686021770278d7efc8a3ca +SHA512 (source-han-code-jp-2.011R.zip) = 754ea6d58a03a6696e9c43c0d2f889dd3cad4c06621498e8a72ada0f23d4ed3f9379ced4c3aab70d1fa8b1777ed2f26447dc7b67d8ff34d661f0743ce094b5c2 From c7c7a757014c60860248151ebe06e35317fe31d7 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 31 Jan 2019 12:59:13 +0000 Subject: [PATCH 05/38] - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- adobe-source-han-code-jp-fonts.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/adobe-source-han-code-jp-fonts.spec b/adobe-source-han-code-jp-fonts.spec index 5a77a8a..0aa5699 100644 --- a/adobe-source-han-code-jp-fonts.spec +++ b/adobe-source-han-code-jp-fonts.spec @@ -4,7 +4,7 @@ Name: adobe-source-han-code-jp-fonts Version: 2.011 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Adobe OpenType UI font for mixed Latin and Japanese text License: OFL @@ -51,6 +51,9 @@ ln -s %{_fontconfig_templatedir}/%{fontconf} \ %doc README.md relnotes.txt %changelog +* Thu Jan 31 2019 Fedora Release Engineering - 2.011-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + * Thu Jan 17 2019 Akira TAGOH - 2.011-1 - Update to 2.011. From 8af6742d2121e52e0ba7683b716adf7bbe629c5b Mon Sep 17 00:00:00 2001 From: Akira TAGOH Date: Wed, 15 May 2019 11:34:28 +0000 Subject: [PATCH 06/38] Add CI tests --- .../roles/custom-test-fonts/defaults/main.yml | 4 + .../custom-test-fonts/files/run-family-test | 153 ++++++++++++++++++ .../files/run-lang-coverage-test | 131 +++++++++++++++ tests/roles/custom-test-fonts/meta/main.yml | 2 + tests/roles/custom-test-fonts/tasks/main.yml | 13 ++ tests/tests.yml | 15 ++ 6 files changed, 318 insertions(+) create mode 100644 tests/roles/custom-test-fonts/defaults/main.yml create mode 100755 tests/roles/custom-test-fonts/files/run-family-test create mode 100755 tests/roles/custom-test-fonts/files/run-lang-coverage-test create mode 100644 tests/roles/custom-test-fonts/meta/main.yml create mode 100644 tests/roles/custom-test-fonts/tasks/main.yml create mode 100644 tests/tests.yml diff --git a/tests/roles/custom-test-fonts/defaults/main.yml b/tests/roles/custom-test-fonts/defaults/main.yml new file mode 100644 index 0000000..f6b31c9 --- /dev/null +++ b/tests/roles/custom-test-fonts/defaults/main.yml @@ -0,0 +1,4 @@ +role_pkgs_req: + - fontconfig + - fontconfig-devel + - pkg-config diff --git a/tests/roles/custom-test-fonts/files/run-family-test b/tests/roles/custom-test-fonts/files/run-family-test new file mode 100755 index 0000000..ec83c8e --- /dev/null +++ b/tests/roles/custom-test-fonts/files/run-family-test @@ -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: +-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_ALIAS" | sed -e 's/\//-/g' -e 's/ /-/g') + +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 "$i" +done) +cat <<_EOF_> $tmpconfd/fonts.conf + + /usr/share/fonts + $conf + conf.d + $cachedir + +_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]}" $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 diff --git a/tests/roles/custom-test-fonts/files/run-lang-coverage-test b/tests/roles/custom-test-fonts/files/run-lang-coverage-test new file mode 100755 index 0000000..000f0cb --- /dev/null +++ b/tests/roles/custom-test-fonts/files/run-lang-coverage-test @@ -0,0 +1,131 @@ +#! /bin/bash -efu + +debug() { + if [ -n "$DEBUG" ]; then + echo "$*" >&2 + fi +} + +msg_usage() { + cat <<_EOF_ +Run language coverage test. + +Usage: +$PROG + +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 +-a, --artifactsdir=DIR test environment dir to store artifacts +_EOF_ +} + +PROG="${PROG:-${0##*/}}" +DEBUG="${DEBUG:-}" +OPT_LANG="${OPT_LANG:-en}" +OPT_PATH="${OPT_PATH:-}" +OPT_ARTIFACTS_DIR="${OPT_ARTIFACTS_DIR:-}" + +opt=$(getopt -n "$0" --options "hvl:p:t:a:" --longoptions "help,verbose,lang:,path:,test:,artifactsdir:" -- "$@") +eval set -- "$opt" +while [[ $# -gt 0 ]]; do + case "$1" in + -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 + +debug "Path: $OPT_PATH" +debug "Lang: $OPT_LANG" +debug "Artifacts dir: $OPT_ARTIFACTS_DIR" +STR_TEST_DASHED=$(echo "$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) + +debug "Check language coverage" +set +f +for i in $OPT_PATH/*.t1 $OPT_PATH/*.ttf $OPT_PATH/*.otf $OPT_PATH/*.ttf $OPT_PATH/*.ttc; do +set -f + if test -f $i; then + 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 + diff --git a/tests/roles/custom-test-fonts/meta/main.yml b/tests/roles/custom-test-fonts/meta/main.yml new file mode 100644 index 0000000..55ef63d --- /dev/null +++ b/tests/roles/custom-test-fonts/meta/main.yml @@ -0,0 +1,2 @@ +dependencies: + - role: str-common-init diff --git a/tests/roles/custom-test-fonts/tasks/main.yml b/tests/roles/custom-test-fonts/tasks/main.yml new file mode 100644 index 0000000..45be33e --- /dev/null +++ b/tests/roles/custom-test-fonts/tasks/main.yml @@ -0,0 +1,13 @@ +--- + +- name: Test with fontconfig + block: + - name: language coverage + script: run-lang-coverage-test --lang {{ item }} --path {{ path_prefix }} --artifactsdir {{ remote_artifacts }} + with_items: + - "{{ coverage }}" + - name: generic family assignment + script: run-family-test --lang {{ item.lang }} --family '{{ item.family }}' --alias {{ item.alias }} --artifactsdir {{ remote_artifacts }} --package {{ package }} + with_items: + - "{{ families }}" + diff --git a/tests/tests.yml b/tests/tests.yml new file mode 100644 index 0000000..53d1cfd --- /dev/null +++ b/tests/tests.yml @@ -0,0 +1,15 @@ +- hosts: localhost + tags: + - classic + roles: + - role: custom-test-fonts + required_packages: + - adobe-source-han-code-jp-fonts + path_prefix: /usr/share/fonts/adobe-source-han-code-jp + package: adobe-source-han-code-jp-fonts + coverage: + - ja + families: + - lang: ja + alias: monospace + family: Source Han Code JP From c8a9fb24070902e83b64a7d65461848dd6e84888 Mon Sep 17 00:00:00 2001 From: Akira TAGOH Date: Thu, 16 May 2019 06:19:17 +0000 Subject: [PATCH 07/38] Use str-common-final to finalize CI --- .../roles/custom-test-fonts/defaults/main.yml | 3 ++ tests/roles/custom-test-fonts/meta/main.yml | 2 + tests/roles/custom-test-fonts/tasks/main.yml | 46 +++++++++++++++---- 3 files changed, 41 insertions(+), 10 deletions(-) diff --git a/tests/roles/custom-test-fonts/defaults/main.yml b/tests/roles/custom-test-fonts/defaults/main.yml index f6b31c9..fe09145 100644 --- a/tests/roles/custom-test-fonts/defaults/main.yml +++ b/tests/roles/custom-test-fonts/defaults/main.yml @@ -1,4 +1,7 @@ +--- + role_pkgs_req: - fontconfig - fontconfig-devel - pkg-config + - rsync diff --git a/tests/roles/custom-test-fonts/meta/main.yml b/tests/roles/custom-test-fonts/meta/main.yml index 55ef63d..f6d273c 100644 --- a/tests/roles/custom-test-fonts/meta/main.yml +++ b/tests/roles/custom-test-fonts/meta/main.yml @@ -1,2 +1,4 @@ +--- + dependencies: - role: str-common-init diff --git a/tests/roles/custom-test-fonts/tasks/main.yml b/tests/roles/custom-test-fonts/tasks/main.yml index 45be33e..39f0033 100644 --- a/tests/roles/custom-test-fonts/tasks/main.yml +++ b/tests/roles/custom-test-fonts/tasks/main.yml @@ -1,13 +1,39 @@ --- -- name: Test with fontconfig - block: - - name: language coverage - script: run-lang-coverage-test --lang {{ item }} --path {{ path_prefix }} --artifactsdir {{ remote_artifacts }} - with_items: - - "{{ coverage }}" - - name: generic family assignment - script: run-family-test --lang {{ item.lang }} --family '{{ item.family }}' --alias {{ item.alias }} --artifactsdir {{ remote_artifacts }} --package {{ package }} - with_items: - - "{{ families }}" +- block: + - name: language coverage + script: run-lang-coverage-test --lang "{{ item }}" --path "{{ path_prefix }}" --artifactsdir "{{ remote_artifacts }}" + with_items: + - "{{ coverage }}" + - name: generic family assignment + script: run-family-test --lang {{ item.lang }} --family '{{ item.family }}' --alias {{ item.alias }} --artifactsdir {{ remote_artifacts }} --package {{ 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 From fb8b835d295ad119de2195caab8e63b0f84de427 Mon Sep 17 00:00:00 2001 From: Akira TAGOH Date: Thu, 16 May 2019 08:21:10 +0000 Subject: [PATCH 08/38] Don't load unnecessary config files to test. --- tests/roles/custom-test-fonts/files/run-family-test | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/roles/custom-test-fonts/files/run-family-test b/tests/roles/custom-test-fonts/files/run-family-test index ec83c8e..9b5cc2c 100755 --- a/tests/roles/custom-test-fonts/files/run-family-test +++ b/tests/roles/custom-test-fonts/files/run-family-test @@ -131,7 +131,6 @@ cat <<_EOF_> $tmpconfd/fonts.conf /usr/share/fonts $conf - conf.d $cachedir _EOF_ @@ -144,7 +143,7 @@ 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]}" $OPT_ALIAS:lang=$OPT_LANG` +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 From 647d0602ad12579cce39989d00b1921f14a1fbdb Mon Sep 17 00:00:00 2001 From: Akira TAGOH Date: Thu, 16 May 2019 08:22:54 +0000 Subject: [PATCH 09/38] Update .gitignore --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index d482440..f3ade6a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ /source-han-code-jp-2.000R.zip /source-han-code-jp-2.011R.zip +/tests/artifacts +*~ From 7023e62d4386ce62d4ad8980e2a342e13de5de79 Mon Sep 17 00:00:00 2001 From: Akira TAGOH Date: Thu, 16 May 2019 11:03:35 +0000 Subject: [PATCH 10/38] sync tests --- .../files/run-lang-coverage-test | 30 +++++++++++++++++-- tests/roles/custom-test-fonts/tasks/main.yml | 4 +-- 2 files changed, 29 insertions(+), 5 deletions(-) diff --git a/tests/roles/custom-test-fonts/files/run-lang-coverage-test b/tests/roles/custom-test-fonts/files/run-lang-coverage-test index 000f0cb..629e3ee 100755 --- a/tests/roles/custom-test-fonts/files/run-lang-coverage-test +++ b/tests/roles/custom-test-fonts/files/run-lang-coverage-test @@ -19,6 +19,7 @@ Options: -l, --lang=LANG Test LANG language coverage (default: en) -p, --path=PATH Test fonts on PATH -a, --artifactsdir=DIR test environment dir to store artifacts +-i, --ignore=FILE Ignore FILE to check. _EOF_ } @@ -27,11 +28,16 @@ DEBUG="${DEBUG:-}" OPT_LANG="${OPT_LANG:-en}" OPT_PATH="${OPT_PATH:-}" OPT_ARTIFACTS_DIR="${OPT_ARTIFACTS_DIR:-}" +OPT_IGNORE=() -opt=$(getopt -n "$0" --options "hvl:p:t:a:" --longoptions "help,verbose,lang:,path:,test:,artifactsdir:" -- "$@") +opt=$(getopt -n "$0" --options "hvl:p:t:a:i:" --longoptions "help,verbose,lang:,path:,test:,artifactsdir:,ignore:" -- "$@") eval set -- "$opt" while [[ $# -gt 0 ]]; do case "$1" in + -i|--ignore) + OPT_IGNORE+=("$2") + shift 2 + ;; -a|--artifactsdir) OPT_ARTIFACTS_DIR="$2" shift 2 @@ -69,6 +75,7 @@ fi debug "Path: $OPT_PATH" debug "Lang: $OPT_LANG" debug "Artifacts dir: $OPT_ARTIFACTS_DIR" +debug "Ignore: ${OPT_IGNORE[@]}" STR_TEST_DASHED=$(echo "$OPT_PATH" | sed -e 's/\//-/g') clean_exit() { @@ -114,11 +121,28 @@ 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 $OPT_PATH/*.t1 $OPT_PATH/*.ttf $OPT_PATH/*.otf $OPT_PATH/*.ttf $OPT_PATH/*.ttc; do -set -f +for i in $OPT_PATH/*.t1 $OPT_PATH/*.ttf $OPT_PATH/*.otf $OPT_PATH/*.ttc; do + set -f + echo $i if test -f $i; then + n=`basename $i` + set +e + contains "$n" "${OPT_IGNORE[@]}" + ret=$? + set -e + if [ $ret -eq 1 ]; then + debug "ignoring $i" + continue + fi debug " $i" res=`fc-validate -l $OPT_LANG $i` if echo $res | grep -q Missing; then diff --git a/tests/roles/custom-test-fonts/tasks/main.yml b/tests/roles/custom-test-fonts/tasks/main.yml index 39f0033..2c700e2 100644 --- a/tests/roles/custom-test-fonts/tasks/main.yml +++ b/tests/roles/custom-test-fonts/tasks/main.yml @@ -2,9 +2,9 @@ - block: - name: language coverage - script: run-lang-coverage-test --lang "{{ item }}" --path "{{ path_prefix }}" --artifactsdir "{{ remote_artifacts }}" + script: run-lang-coverage-test --lang "{{ item }}" --path "{{ path_prefix }}" --artifactsdir "{{ remote_artifacts }}" {{ "" if coverage.values is not defined and coverage[item].ignore is not defined else "--ignore " + (coverage[item].ignore | join('--ignore ')) }} with_items: - - "{{ coverage }}" + - "{{ coverage if coverage.keys is not defined else coverage.keys()|list }}" - name: generic family assignment script: run-family-test --lang {{ item.lang }} --family '{{ item.family }}' --alias {{ item.alias }} --artifactsdir {{ remote_artifacts }} --package {{ package }} with_items: From c4af34597e3908d307b66e78e1046223c82a85f9 Mon Sep 17 00:00:00 2001 From: Akira TAGOH Date: Fri, 17 May 2019 09:25:07 +0000 Subject: [PATCH 11/38] Update custom-test-fonts role --- tests/roles/custom-test-fonts/files/run-lang-coverage-test | 2 +- tests/roles/custom-test-fonts/tasks/main.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/roles/custom-test-fonts/files/run-lang-coverage-test b/tests/roles/custom-test-fonts/files/run-lang-coverage-test index 629e3ee..cc102b2 100755 --- a/tests/roles/custom-test-fonts/files/run-lang-coverage-test +++ b/tests/roles/custom-test-fonts/files/run-lang-coverage-test @@ -130,7 +130,7 @@ contains() { debug "Check language coverage" set +f -for i in $OPT_PATH/*.t1 $OPT_PATH/*.ttf $OPT_PATH/*.otf $OPT_PATH/*.ttc; do +for i in `find $OPT_PATH -regex '.*/*\.\(t1\)?\(ttf\)?\(otf\)?\(ttc\)?'`; do set -f echo $i if test -f $i; then diff --git a/tests/roles/custom-test-fonts/tasks/main.yml b/tests/roles/custom-test-fonts/tasks/main.yml index 2c700e2..ba5c768 100644 --- a/tests/roles/custom-test-fonts/tasks/main.yml +++ b/tests/roles/custom-test-fonts/tasks/main.yml @@ -6,7 +6,7 @@ with_items: - "{{ coverage if coverage.keys is not defined else coverage.keys()|list }}" - name: generic family assignment - script: run-family-test --lang {{ item.lang }} --family '{{ item.family }}' --alias {{ item.alias }} --artifactsdir {{ remote_artifacts }} --package {{ package }} + 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 }}" From cb626b463fa3d441a30ef249c87c54a03f008ad3 Mon Sep 17 00:00:00 2001 From: Akira TAGOH Date: Wed, 22 May 2019 09:24:52 +0000 Subject: [PATCH 12/38] Fix a condition in role of CI tests --- tests/roles/custom-test-fonts/tasks/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/roles/custom-test-fonts/tasks/main.yml b/tests/roles/custom-test-fonts/tasks/main.yml index ba5c768..2f5f799 100644 --- a/tests/roles/custom-test-fonts/tasks/main.yml +++ b/tests/roles/custom-test-fonts/tasks/main.yml @@ -2,7 +2,7 @@ - block: - name: language coverage - script: run-lang-coverage-test --lang "{{ item }}" --path "{{ path_prefix }}" --artifactsdir "{{ remote_artifacts }}" {{ "" if coverage.values is not defined and coverage[item].ignore is not defined else "--ignore " + (coverage[item].ignore | join('--ignore ')) }} + script: run-lang-coverage-test --lang "{{ item }}" --path "{{ path_prefix }}" --artifactsdir "{{ remote_artifacts }}" {{ "" if coverage.values is not defined or coverage[item].ignore is not defined else "--ignore " + (coverage[item].ignore | join('--ignore ')) }} with_items: - "{{ coverage if coverage.keys is not defined else coverage.keys()|list }}" - name: generic family assignment From 713018fc09b6badea783e504ecc6c3d4a4c344d7 Mon Sep 17 00:00:00 2001 From: Akira TAGOH Date: Thu, 23 May 2019 09:44:56 +0000 Subject: [PATCH 13/38] Update some fixes --- tests/roles/custom-test-fonts/files/run-family-test | 3 ++- tests/roles/custom-test-fonts/files/run-lang-coverage-test | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/tests/roles/custom-test-fonts/files/run-family-test b/tests/roles/custom-test-fonts/files/run-family-test index 9b5cc2c..e87cad0 100755 --- a/tests/roles/custom-test-fonts/files/run-family-test +++ b/tests/roles/custom-test-fonts/files/run-family-test @@ -83,7 +83,8 @@ debug "Family: $OPT_FAMILY" debug "Lang: $OPT_LANG" debug "Artifacts dir: $OPT_ARTIFACTS_DIR" debug "Package name: $OPT_PACKAGE" -STR_TEST_DASHED=$(echo "$OPT_ALIAS" | sed -e 's/\//-/g' -e 's/ /-/g') +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=$?; diff --git a/tests/roles/custom-test-fonts/files/run-lang-coverage-test b/tests/roles/custom-test-fonts/files/run-lang-coverage-test index cc102b2..c7823cb 100755 --- a/tests/roles/custom-test-fonts/files/run-lang-coverage-test +++ b/tests/roles/custom-test-fonts/files/run-lang-coverage-test @@ -130,9 +130,9 @@ contains() { debug "Check language coverage" set +f -for i in `find $OPT_PATH -regex '.*/*\.\(t1\)?\(ttf\)?\(otf\)?\(ttc\)?'`; do - set -f - echo $i +for i in `find $OPT_PATH -regex '.*/*\.\(t1\)?\(ttf\)?\(otf\)?\(ttc\)?\(pcf.*\)?'`; do +set -f + debug "$i" if test -f $i; then n=`basename $i` set +e From 054e01c51f66ffcf446626402f1ecdc28d0fc54b Mon Sep 17 00:00:00 2001 From: Akira TAGOH Date: Fri, 24 May 2019 06:51:35 +0000 Subject: [PATCH 14/38] Update some fixes --- .../files/run-lang-coverage-test | 29 ++++++++++++++----- tests/roles/custom-test-fonts/tasks/main.yml | 2 +- 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/tests/roles/custom-test-fonts/files/run-lang-coverage-test b/tests/roles/custom-test-fonts/files/run-lang-coverage-test index c7823cb..5658cfd 100755 --- a/tests/roles/custom-test-fonts/files/run-lang-coverage-test +++ b/tests/roles/custom-test-fonts/files/run-lang-coverage-test @@ -19,7 +19,8 @@ Options: -l, --lang=LANG Test LANG language coverage (default: en) -p, --path=PATH Test fonts on PATH -a, --artifactsdir=DIR test environment dir to store artifacts --i, --ignore=FILE Ignore FILE to check. +-e, --exclude=FILE Exclude FILE to check. +-i, --include=FILE Include File to check. _EOF_ } @@ -28,14 +29,19 @@ DEBUG="${DEBUG:-}" OPT_LANG="${OPT_LANG:-en}" OPT_PATH="${OPT_PATH:-}" OPT_ARTIFACTS_DIR="${OPT_ARTIFACTS_DIR:-}" -OPT_IGNORE=() +OPT_EXCLUDE=() +OPT_INCLUDE=() -opt=$(getopt -n "$0" --options "hvl:p:t:a:i:" --longoptions "help,verbose,lang:,path:,test:,artifactsdir:,ignore:" -- "$@") +opt=$(getopt -n "$0" --options "hvl:p:t:a:e:i:" --longoptions "help,verbose,lang:,path:,test:,artifactsdir:,exclude:,include:" -- "$@") eval set -- "$opt" while [[ $# -gt 0 ]]; do case "$1" in - -i|--ignore) - OPT_IGNORE+=("$2") + -i|--include) + OPT_INCLUDE+=("$2") + shift 2 + ;; + -e|--exclude) + OPT_EXCLUDE+=("$2") shift 2 ;; -a|--artifactsdir) @@ -75,7 +81,8 @@ fi debug "Path: $OPT_PATH" debug "Lang: $OPT_LANG" debug "Artifacts dir: $OPT_ARTIFACTS_DIR" -debug "Ignore: ${OPT_IGNORE[@]}" +debug "Exclude: ${OPT_EXCLUDE[@]}" +debug "Include: ${OPT_INCLUDE[@]}" STR_TEST_DASHED=$(echo "$OPT_PATH" | sed -e 's/\//-/g') clean_exit() { @@ -136,13 +143,21 @@ set -f if test -f $i; then n=`basename $i` set +e - contains "$n" "${OPT_IGNORE[@]}" + contains "$n" "${OPT_EXCLUDE[@]}" ret=$? set -e if [ $ret -eq 1 ]; then debug "ignoring $i" continue fi + set +e + contains "$n" "${OPT_INCLUDE[@]}" + ret=$? + set -e + if [ $ret -eq 0 ]; then + debug "$i isn't targeted file" + continue + fi debug " $i" res=`fc-validate -l $OPT_LANG $i` if echo $res | grep -q Missing; then diff --git a/tests/roles/custom-test-fonts/tasks/main.yml b/tests/roles/custom-test-fonts/tasks/main.yml index 2f5f799..44830cb 100644 --- a/tests/roles/custom-test-fonts/tasks/main.yml +++ b/tests/roles/custom-test-fonts/tasks/main.yml @@ -2,7 +2,7 @@ - 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].ignore is not defined else "--ignore " + (coverage[item].ignore | join('--ignore ')) }} + script: run-lang-coverage-test --lang "{{ item }}" --path "{{ path_prefix }}" --artifactsdir "{{ remote_artifacts }}" {{ "" if coverage.values is not defined or coverage[item].ignore is not defined else "--exclude " + (coverage[item].ignore | 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 From 34c42b4a65082c45da3761018d4d90f4bcf5d3c1 Mon Sep 17 00:00:00 2001 From: Akira TAGOH Date: Fri, 24 May 2019 07:24:42 +0000 Subject: [PATCH 15/38] Update some fixes --- .../files/run-lang-coverage-test | 28 ++++++++++++------- tests/roles/custom-test-fonts/tasks/main.yml | 2 +- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/tests/roles/custom-test-fonts/files/run-lang-coverage-test b/tests/roles/custom-test-fonts/files/run-lang-coverage-test index 5658cfd..1c91cf6 100755 --- a/tests/roles/custom-test-fonts/files/run-lang-coverage-test +++ b/tests/roles/custom-test-fonts/files/run-lang-coverage-test @@ -18,6 +18,7 @@ Options: -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. @@ -31,11 +32,16 @@ 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:t:a:e:i:" --longoptions "help,verbose,lang:,path:,test:,artifactsdir:,exclude:,include:" -- "$@") +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 @@ -83,7 +89,7 @@ debug "Lang: $OPT_LANG" debug "Artifacts dir: $OPT_ARTIFACTS_DIR" debug "Exclude: ${OPT_EXCLUDE[@]}" debug "Include: ${OPT_INCLUDE[@]}" -STR_TEST_DASHED=$(echo "$OPT_PATH" | sed -e 's/\//-/g') +STR_TEST_DASHED=$(echo "${OPT_NAME:-${OPT_LANG}_${OPT_PATH}}" | sed -e 's/\//-/g') clean_exit() { rc=$?; @@ -137,7 +143,7 @@ contains() { debug "Check language coverage" set +f -for i in `find $OPT_PATH -regex '.*/*\.\(t1\)?\(ttf\)?\(otf\)?\(ttc\)?\(pcf.*\)?'`; do +for i in `find $OPT_PATH -regex '.*/*\.\(t1\)?\(ttf\)?\(otf\)?\(ttc\)?\(pcf.*\)?\(pfa\)?'`; do set -f debug "$i" if test -f $i; then @@ -150,13 +156,15 @@ set -f debug "ignoring $i" continue fi - set +e - contains "$n" "${OPT_INCLUDE[@]}" - ret=$? - set -e - if [ $ret -eq 0 ]; then - debug "$i isn't targeted file" - continue + 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` diff --git a/tests/roles/custom-test-fonts/tasks/main.yml b/tests/roles/custom-test-fonts/tasks/main.yml index 44830cb..f4c4ce0 100644 --- a/tests/roles/custom-test-fonts/tasks/main.yml +++ b/tests/roles/custom-test-fonts/tasks/main.yml @@ -2,7 +2,7 @@ - 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].ignore is not defined else "--exclude " + (coverage[item].ignore | join('--exclude ')) }} {{ "" if coverage.values is not defined or coverage[item].include is not defined else "--include " + (coverage[item].include | join('--include ')) }} + 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 From 6adffb95eab2dfd13ab27e8ed8464ec41cc86915 Mon Sep 17 00:00:00 2001 From: Akira TAGOH Date: Fri, 24 May 2019 11:16:30 +0000 Subject: [PATCH 16/38] Update some fixes --- .../files/run-lang-coverage-test | 19 +++++++++++++++++++ tests/roles/custom-test-fonts/tasks/main.yml | 3 ++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/tests/roles/custom-test-fonts/files/run-lang-coverage-test b/tests/roles/custom-test-fonts/files/run-lang-coverage-test index 1c91cf6..81fefa8 100755 --- a/tests/roles/custom-test-fonts/files/run-lang-coverage-test +++ b/tests/roles/custom-test-fonts/files/run-lang-coverage-test @@ -84,6 +84,25 @@ if [ -z "$OPT_ARTIFACTS_DIR" ] || [ -z "$OPT_LANG" ] || [ -z "$OPT_PATH" ]; then 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" diff --git a/tests/roles/custom-test-fonts/tasks/main.yml b/tests/roles/custom-test-fonts/tasks/main.yml index f4c4ce0..981d3aa 100644 --- a/tests/roles/custom-test-fonts/tasks/main.yml +++ b/tests/roles/custom-test-fonts/tasks/main.yml @@ -2,10 +2,11 @@ - 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 ')) }} + 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 }}" From b95e2b610c15a5fbb7e29a12040eab7bd9003eb3 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 24 Jul 2019 17:34:50 +0000 Subject: [PATCH 17/38] - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- adobe-source-han-code-jp-fonts.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/adobe-source-han-code-jp-fonts.spec b/adobe-source-han-code-jp-fonts.spec index 0aa5699..712642c 100644 --- a/adobe-source-han-code-jp-fonts.spec +++ b/adobe-source-han-code-jp-fonts.spec @@ -4,7 +4,7 @@ Name: adobe-source-han-code-jp-fonts Version: 2.011 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Adobe OpenType UI font for mixed Latin and Japanese text License: OFL @@ -51,6 +51,9 @@ ln -s %{_fontconfig_templatedir}/%{fontconf} \ %doc README.md relnotes.txt %changelog +* Wed Jul 24 2019 Fedora Release Engineering - 2.011-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + * Thu Jan 31 2019 Fedora Release Engineering - 2.011-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild From c42e16d1fd7972953b35687f2db371716f2f2354 Mon Sep 17 00:00:00 2001 From: Akira TAGOH Date: Wed, 20 Nov 2019 17:00:13 +0900 Subject: [PATCH 18/38] Update CI roles --- .../custom-test-fonts/files/run-family-test | 25 +- .../files/run-lang-coverage-test | 286 ++++++++++-------- tests/roles/custom-test-fonts/tasks/main.yml | 14 +- 3 files changed, 191 insertions(+), 134 deletions(-) diff --git a/tests/roles/custom-test-fonts/files/run-family-test b/tests/roles/custom-test-fonts/files/run-family-test index e87cad0..bbbed73 100755 --- a/tests/roles/custom-test-fonts/files/run-family-test +++ b/tests/roles/custom-test-fonts/files/run-family-test @@ -83,13 +83,13 @@ 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') +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." + 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 @@ -114,11 +114,16 @@ clean_exit() { status="ERROR" fi echo "$status $OPT_ALIAS" >> "$OPT_ARTIFACTS_DIR/test.log" - mv "$log_file_path" "$OPT_ARTIFACTS_DIR/${status}_${log_file_name}" + 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" + printf '%s\n' '' \ + "- test: $OPT_ALIAS" \ + " result: $result" \ + " logs:" \ + " - ${status}_${log_file_name}" \ + >> "$results" exit 0 } trap clean_exit SIGINT SIGTERM SIGABRT EXIT @@ -139,15 +144,19 @@ 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) +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-match -f "%{family[0]}" :family=$OPT_ALIAS:lang=$OPT_LANG` +ret=0 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)" + echo "RESULT: FAIL: $OPT_FAMILY wasn't assigned to $OPT_ALIAS (actual result: $res)" + ret=1 fi rm -rf $tmpconfd + +exit $ret diff --git a/tests/roles/custom-test-fonts/files/run-lang-coverage-test b/tests/roles/custom-test-fonts/files/run-lang-coverage-test index 81fefa8..299f06b 100755 --- a/tests/roles/custom-test-fonts/files/run-lang-coverage-test +++ b/tests/roles/custom-test-fonts/files/run-lang-coverage-test @@ -1,13 +1,13 @@ #! /bin/bash -efu debug() { - if [ -n "$DEBUG" ]; then - echo "$*" >&2 - fi + if [ -n "$DEBUG" ]; then + echo "$*" >&2 + fi } msg_usage() { - cat <<_EOF_ + cat <<_EOF_ Run language coverage test. Usage: @@ -28,7 +28,7 @@ _EOF_ PROG="${PROG:-${0##*/}}" DEBUG="${DEBUG:-}" OPT_LANG="${OPT_LANG:-en}" -OPT_PATH="${OPT_PATH:-}" +OPT_PATH=() OPT_ARTIFACTS_DIR="${OPT_ARTIFACTS_DIR:-}" OPT_EXCLUDE=() OPT_INCLUDE=() @@ -37,161 +37,197 @@ 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 + case "$1" in -n|--name) - OPT_NAME="$2" - shift 2 - ;; + OPT_NAME="$2" + shift 2 + ;; -i|--include) - OPT_INCLUDE+=("$2") - shift 2 - ;; + OPT_INCLUDE+=("$2") + shift 2 + ;; -e|--exclude) - OPT_EXCLUDE+=("$2") - shift 2 - ;; + OPT_EXCLUDE+=("$2") + shift 2 + ;; -a|--artifactsdir) - OPT_ARTIFACTS_DIR="$2" - shift 2 - ;; + OPT_ARTIFACTS_DIR="$2" + shift 2 + ;; -p|--path) - OPT_PATH="$2" - shift 2 - ;; + OPT_PATH+=("$2") + shift 2 + ;; -l|--lang) - OPT_LANG="$2" - shift 2 - ;; + OPT_LANG="$2" + shift 2 + ;; -v|--verbose) - DEBUG="-v" - shift - ;; + DEBUG="-v" + shift + ;; -h|--help) - msg_usage - exit 0 - ;; + msg_usage + exit 0 + ;; --) - shift - ;; + shift + ;; *) - msg_usage - exit 1 - esac + 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 + 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') +STR_TEST_DASHED=$(echo "${OPT_NAME:-$OPT_LANG}" | 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" + 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 - 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 + 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_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) +logfile="$OPT_ARTIFACTS_DIR/$STR_TEST_DASHED.log" +logfile="$(realpath "$logfile")" +exec > >(tee -a "$logfile") 2>&1 + +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 + local e match="$1" + shift + for e; do [[ "$e" == "$match" ]] && return 1; done + return 0 } debug "Check language coverage" +ret=0 set +f -for i in `find $OPT_PATH -regex '.*/*\.\(t1\)?\(ttf\)?\(otf\)?\(ttc\)?\(pcf.*\)?\(pfa\)?'`; do -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` + 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_EXCLUDE[@]}" + contains "$n" "${OPT_INCLUDE[@]}" 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." + if [ $ret -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 diff --git a/tests/roles/custom-test-fonts/tasks/main.yml b/tests/roles/custom-test-fonts/tasks/main.yml index 981d3aa..2665795 100644 --- a/tests/roles/custom-test-fonts/tasks/main.yml +++ b/tests/roles/custom-test-fonts/tasks/main.yml @@ -2,15 +2,23 @@ - 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 "')) + '"'}} + environment: + LANG: "en_US.UTF-8" + script: run-lang-coverage-test --lang "{{ item }}" {% if coverage.values is not defined or coverage[item].path_prefix is not defined %} --path {{ path_prefix }} {% 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 }} {{ "" 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 + 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 }} 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" @@ -38,3 +46,7 @@ - include_role: name: str-common-final + + - name: Validate the result + shell: echo "test_results.stdout" + failed_when: test_results.stdout != 'PASS' From 3fe20753ea7b9c026eb218b62770db6180ace11d Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Tue, 28 Jan 2020 11:14:12 +0000 Subject: [PATCH 19/38] - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- adobe-source-han-code-jp-fonts.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/adobe-source-han-code-jp-fonts.spec b/adobe-source-han-code-jp-fonts.spec index 712642c..3067f86 100644 --- a/adobe-source-han-code-jp-fonts.spec +++ b/adobe-source-han-code-jp-fonts.spec @@ -4,7 +4,7 @@ Name: adobe-source-han-code-jp-fonts Version: 2.011 -Release: 3%{?dist} +Release: 4%{?dist} Summary: Adobe OpenType UI font for mixed Latin and Japanese text License: OFL @@ -51,6 +51,9 @@ ln -s %{_fontconfig_templatedir}/%{fontconf} \ %doc README.md relnotes.txt %changelog +* Tue Jan 28 2020 Fedora Release Engineering - 2.011-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + * Wed Jul 24 2019 Fedora Release Engineering - 2.011-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild From 10c4561454c59178b6919a03672d5a2c4a2a02ef Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Mon, 27 Jul 2020 11:45:54 +0000 Subject: [PATCH 20/38] - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- adobe-source-han-code-jp-fonts.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/adobe-source-han-code-jp-fonts.spec b/adobe-source-han-code-jp-fonts.spec index 3067f86..d4cf772 100644 --- a/adobe-source-han-code-jp-fonts.spec +++ b/adobe-source-han-code-jp-fonts.spec @@ -4,7 +4,7 @@ Name: adobe-source-han-code-jp-fonts Version: 2.011 -Release: 4%{?dist} +Release: 5%{?dist} Summary: Adobe OpenType UI font for mixed Latin and Japanese text License: OFL @@ -51,6 +51,9 @@ ln -s %{_fontconfig_templatedir}/%{fontconf} \ %doc README.md relnotes.txt %changelog +* Mon Jul 27 2020 Fedora Release Engineering - 2.011-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + * Tue Jan 28 2020 Fedora Release Engineering - 2.011-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild From 4d88962e16d00938440a32090c01d712facd2d49 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Mon, 25 Jan 2021 23:49:30 +0000 Subject: [PATCH 21/38] - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- adobe-source-han-code-jp-fonts.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/adobe-source-han-code-jp-fonts.spec b/adobe-source-han-code-jp-fonts.spec index d4cf772..e7da3cf 100644 --- a/adobe-source-han-code-jp-fonts.spec +++ b/adobe-source-han-code-jp-fonts.spec @@ -4,7 +4,7 @@ Name: adobe-source-han-code-jp-fonts Version: 2.011 -Release: 5%{?dist} +Release: 6%{?dist} Summary: Adobe OpenType UI font for mixed Latin and Japanese text License: OFL @@ -51,6 +51,9 @@ ln -s %{_fontconfig_templatedir}/%{fontconf} \ %doc README.md relnotes.txt %changelog +* Mon Jan 25 2021 Fedora Release Engineering - 2.011-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + * Mon Jul 27 2020 Fedora Release Engineering - 2.011-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild From c4c7447397e1ccf68bc328c350ec2e58a7ef1829 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 21 Jul 2021 12:21:41 +0000 Subject: [PATCH 22/38] - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild Signed-off-by: Fedora Release Engineering From 12fa38283b68106db74a79e762e87c62dcad78fd Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 21 Jul 2021 17:16:56 +0000 Subject: [PATCH 23/38] - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- adobe-source-han-code-jp-fonts.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/adobe-source-han-code-jp-fonts.spec b/adobe-source-han-code-jp-fonts.spec index e7da3cf..2234de6 100644 --- a/adobe-source-han-code-jp-fonts.spec +++ b/adobe-source-han-code-jp-fonts.spec @@ -4,7 +4,7 @@ Name: adobe-source-han-code-jp-fonts Version: 2.011 -Release: 6%{?dist} +Release: 7%{?dist} Summary: Adobe OpenType UI font for mixed Latin and Japanese text License: OFL @@ -51,6 +51,9 @@ ln -s %{_fontconfig_templatedir}/%{fontconf} \ %doc README.md relnotes.txt %changelog +* Wed Jul 21 2021 Fedora Release Engineering - 2.011-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + * Mon Jan 25 2021 Fedora Release Engineering - 2.011-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild From 9c876300e18dfec51573dec28b3f01c0deccf49f Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 19 Jan 2022 20:57:06 +0000 Subject: [PATCH 24/38] - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- adobe-source-han-code-jp-fonts.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/adobe-source-han-code-jp-fonts.spec b/adobe-source-han-code-jp-fonts.spec index 2234de6..73a7cd7 100644 --- a/adobe-source-han-code-jp-fonts.spec +++ b/adobe-source-han-code-jp-fonts.spec @@ -4,7 +4,7 @@ Name: adobe-source-han-code-jp-fonts Version: 2.011 -Release: 7%{?dist} +Release: 8%{?dist} Summary: Adobe OpenType UI font for mixed Latin and Japanese text License: OFL @@ -51,6 +51,9 @@ ln -s %{_fontconfig_templatedir}/%{fontconf} \ %doc README.md relnotes.txt %changelog +* Wed Jan 19 2022 Fedora Release Engineering - 2.011-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + * Wed Jul 21 2021 Fedora Release Engineering - 2.011-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild From fc3de8c1cd4ba67e7691b97217f1da4d175f5669 Mon Sep 17 00:00:00 2001 From: Akira TAGOH Date: Fri, 17 Jun 2022 19:55:47 +0900 Subject: [PATCH 25/38] Convert spec file etc to satisfy new packaging guidelines --- ... => 68-adobe-source-han-code-jp-fonts.conf | 2 +- adobe-source-han-code-jp-fonts.spec | 113 +++++++++++++----- tests/tests.yml | 2 +- 3 files changed, 82 insertions(+), 35 deletions(-) rename adobe-source-han-code-jp-fonts-fontconfig.conf => 68-adobe-source-han-code-jp-fonts.conf (90%) diff --git a/adobe-source-han-code-jp-fonts-fontconfig.conf b/68-adobe-source-han-code-jp-fonts.conf similarity index 90% rename from adobe-source-han-code-jp-fonts-fontconfig.conf rename to 68-adobe-source-han-code-jp-fonts.conf index 3488f32..4bf1ef6 100644 --- a/adobe-source-han-code-jp-fonts-fontconfig.conf +++ b/68-adobe-source-han-code-jp-fonts.conf @@ -1,5 +1,5 @@ - + diff --git a/adobe-source-han-code-jp-fonts.spec b/adobe-source-han-code-jp-fonts.spec index 73a7cd7..389728d 100644 --- a/adobe-source-han-code-jp-fonts.spec +++ b/adobe-source-han-code-jp-fonts.spec @@ -1,22 +1,69 @@ -%global fontname adobe-source-han-code-jp -%global fontconf 68-%{fontname}.conf -%global archivename source-han-code-jp-%{version}R +# Packaging template: basic single-family fonts packaging. +# +# SPDX-License-Identifier: MIT +# +# This template documents the minimal set of spec declarations, necessary to +# package a single font family, from a single dedicated source archive. +# +# It is part of the following set of packaging templates: +# “fonts-0-simple”: basic single-family fonts packaging +# “fonts-1-full”: less common patterns for single-family fonts packaging +# “fonts-2-multi”: multi-family fonts packaging +# “fonts-3-sub”: packaging fonts, released as part of something else +# +# A font family is composed of font files, that share a single design, and +# differ ONLY in: +# — Weight Bold, Black… +# – Width∕Stretch Narrow, Condensed, Expanded… +# — Slope/Slant Italic, Oblique +# Optical sizing Caption… +# +# Those parameters correspond to the default axes of OpenType variable fonts: +# https://docs.microsoft.com/en-us/typography/opentype/spec/dvaraxisreg#registered-axis-tags +# The variable fonts model is an extension of the WWS model described in the +# WPF Font Selection Model whitepaper (2007): +# https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/02/24/90/36/WPF%20Font%20Selection%20Model.pdf +# +# Do not rely on the naming upstream chose, to define family boundaries, it +# will often be wrong. +# +# Declaration order is chosen to limit divergence between those templates, and +# simplify cut and pasting. +# +Version: 2.011 +Release: 8%{?dist} +URL: https://github.com/adobe-fonts/source-han-code-jp/ -Name: adobe-source-han-code-jp-fonts -Version: 2.011 -Release: 8%{?dist} -Summary: Adobe OpenType UI font for mixed Latin and Japanese text +# The identifier of the entity, that released the font family. +%global foundry adobe +# The font family license identifier. Adjust as necessary. The OFL is our +# recommended font license. +%global fontlicense OFL +# +# The following directives are lists of space-separated shell globs +# – matching files associated with the font family, +# – as they exist in the build root, +# — at the end of the %build stage: +# – legal files (licensing…) +%global fontlicenses LICENSE.txt +# – documentation files +%global fontdocs relnotes.txt README.md README-JP.md +# – exclusions from the ”fontdocs” list +%global fontdocsex %{fontlicenses} -License: OFL -URL: https://github.com/adobe-fonts/source-han-code-jp/ -Source0: https://github.com/adobe-fonts/source-han-code-jp/archive/%{version}R/%{archivename}.zip -Source1: %{name}-fontconfig.conf - -BuildArch: noarch -BuildRequires: fontpackages-devel -Requires: fontpackages-filesystem - -%description +# The human-friendly font family name, whitespace included, restricted to the +# the Basic Latin Unicode block. +%global fontfamily Source Han Code JP +%global fontsummary Adobe OpenType UI font for mixed Latin and Japanese text +# +# More shell glob lists: +# – font family files +%global fonts OTF/SourceHanCodeJP-RegularIt.otf OTF/SourceHanCodeJP-Regular.otf OTF/SourceHanCodeJP-NormalIt.otf OTF/SourceHanCodeJP-Normal.otf OTF/SourceHanCodeJP-MediumIt.otf OTF/SourceHanCodeJP-Medium.otf OTF/SourceHanCodeJP-LightIt.otf OTF/SourceHanCodeJP-Light.otf OTF/SourceHanCodeJP-HeavyIt.otf OTF/SourceHanCodeJP-Heavy.otf OTF/SourceHanCodeJP-ExtraLightIt.otf OTF/SourceHanCodeJP-ExtraLight.otf OTF/SourceHanCodeJP-BoldIt.otf OTF/SourceHanCodeJP-Bold.otf +# – fontconfig files +%global fontconfs %{SOURCE10} +# +# A multi-line description block for the generated package. +%global fontdescription %{expand: Source Han Code JP is a derivative of Source Han Sans that replaces its proportional Latin glyphs with fixed-width 667-unit glyphs from Source Code Pro. The Latin glyphs are scaled to match the glyphs for @@ -25,30 +72,30 @@ Japanese kana and kanji, and their widths are adjusted to be exactly used as a UI font for mixed Latin and Japanese text on displays, for programming, editing HTML/CSS, viewing text or inputing to the command line in a terminal app, and so on. +} + +Source0: https://github.com/adobe-fonts/source-han-code-jp/archive/2.011R/source-han-code-jp-2.011R.zip +# Adjust as necessary. Keeping the filename in sync with the package name is a good idea. +# See the fontconfig templates in fonts-rpm-templates for information on how to +# write good fontconfig files and choose the correct priority [number]. +Source10: 68-adobe-source-han-code-jp-fonts.conf + +%fontpkg %prep -%autosetup -n %{archivename} -chmod 0644 README.md +%setup -q -n source-han-code-jp-2.011R +chmod 0644 README.md README-JP.md %build +%fontbuild %install +%fontinstall -install -m 0755 -d %{buildroot}%{_fontdir} -install -m 0644 -p OTF/*.otf %{buildroot}%{_fontdir} +%check +%fontcheck -install -m 0755 -d %{buildroot}%{_fontconfig_templatedir} \ - %{buildroot}%{_fontconfig_confdir} - -install -m 0644 -p %{SOURCE1} \ - %{buildroot}%{_fontconfig_templatedir}/%{fontconf} -ln -s %{_fontconfig_templatedir}/%{fontconf} \ - %{buildroot}%{_fontconfig_confdir}/%{fontconf} - -%_font_pkg -f %{fontconf} *.otf - -%license LICENSE.txt -%doc README.md relnotes.txt +%fontfiles %changelog * Wed Jan 19 2022 Fedora Release Engineering - 2.011-8 diff --git a/tests/tests.yml b/tests/tests.yml index 53d1cfd..aa1a1c5 100644 --- a/tests/tests.yml +++ b/tests/tests.yml @@ -5,7 +5,7 @@ - role: custom-test-fonts required_packages: - adobe-source-han-code-jp-fonts - path_prefix: /usr/share/fonts/adobe-source-han-code-jp + path_prefix: /usr/share/fonts/adobe-source-han-code-jp-fonts package: adobe-source-han-code-jp-fonts coverage: - ja From 3500d89a989654d8482a22d6ba627ec894f70765 Mon Sep 17 00:00:00 2001 From: Akira TAGOH Date: Tue, 21 Jun 2022 14:39:11 +0900 Subject: [PATCH 26/38] Revise spec file for new packaging guidelines. --- adobe-source-han-code-jp-fonts.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/adobe-source-han-code-jp-fonts.spec b/adobe-source-han-code-jp-fonts.spec index 389728d..5511d3e 100644 --- a/adobe-source-han-code-jp-fonts.spec +++ b/adobe-source-han-code-jp-fonts.spec @@ -31,7 +31,7 @@ # simplify cut and pasting. # Version: 2.011 -Release: 8%{?dist} +Release: 9%{?dist} URL: https://github.com/adobe-fonts/source-han-code-jp/ # The identifier of the entity, that released the font family. @@ -98,6 +98,9 @@ chmod 0644 README.md README-JP.md %fontfiles %changelog +* Tue Jun 21 2022 Akira TAGOH - 2.011-9 +- Revise spec file for new packaging guidelines. + * Wed Jan 19 2022 Fedora Release Engineering - 2.011-8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild From eccd4c39064a33d6572d96094b9919e0c753aa51 Mon Sep 17 00:00:00 2001 From: Akira TAGOH Date: Fri, 24 Jun 2022 20:24:05 +0900 Subject: [PATCH 27/38] trivial fix --- adobe-source-han-code-jp-fonts.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/adobe-source-han-code-jp-fonts.spec b/adobe-source-han-code-jp-fonts.spec index 5511d3e..62edd56 100644 --- a/adobe-source-han-code-jp-fonts.spec +++ b/adobe-source-han-code-jp-fonts.spec @@ -83,7 +83,7 @@ Source10: 68-adobe-source-han-code-jp-fonts.conf %fontpkg %prep -%setup -q -n source-han-code-jp-2.011R +%setup -q -n source-han-code-jp-%{version}R chmod 0644 README.md README-JP.md %build From 68a34201afcdacf09df1fb4d1fa4e8d0da0e9ec3 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 20 Jul 2022 20:27:55 +0000 Subject: [PATCH 28/38] Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- adobe-source-han-code-jp-fonts.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/adobe-source-han-code-jp-fonts.spec b/adobe-source-han-code-jp-fonts.spec index 62edd56..5fb409e 100644 --- a/adobe-source-han-code-jp-fonts.spec +++ b/adobe-source-han-code-jp-fonts.spec @@ -31,7 +31,7 @@ # simplify cut and pasting. # Version: 2.011 -Release: 9%{?dist} +Release: 10%{?dist} URL: https://github.com/adobe-fonts/source-han-code-jp/ # The identifier of the entity, that released the font family. @@ -98,6 +98,9 @@ chmod 0644 README.md README-JP.md %fontfiles %changelog +* Wed Jul 20 2022 Fedora Release Engineering - 2.011-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + * Tue Jun 21 2022 Akira TAGOH - 2.011-9 - Revise spec file for new packaging guidelines. From 46f07a2563b948c7ff69b87962adf98360538e2d Mon Sep 17 00:00:00 2001 From: Akira TAGOH Date: Tue, 29 Nov 2022 17:58:30 +0900 Subject: [PATCH 29/38] Convert License tag to SPDX. --- adobe-source-han-code-jp-fonts.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/adobe-source-han-code-jp-fonts.spec b/adobe-source-han-code-jp-fonts.spec index 5fb409e..deb1c1d 100644 --- a/adobe-source-han-code-jp-fonts.spec +++ b/adobe-source-han-code-jp-fonts.spec @@ -31,14 +31,14 @@ # simplify cut and pasting. # Version: 2.011 -Release: 10%{?dist} +Release: 11%{?dist} URL: https://github.com/adobe-fonts/source-han-code-jp/ # The identifier of the entity, that released the font family. %global foundry adobe # The font family license identifier. Adjust as necessary. The OFL is our # recommended font license. -%global fontlicense OFL +%global fontlicense OFL-1.1 # # The following directives are lists of space-separated shell globs # – matching files associated with the font family, @@ -98,6 +98,9 @@ chmod 0644 README.md README-JP.md %fontfiles %changelog +* Tue Nov 29 2022 Akira TAGOH - 2.011-11 +- Convert License tag to SPDX. + * Wed Jul 20 2022 Fedora Release Engineering - 2.011-10 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild From 0f1e369809cc3c11c509087387440f7a9541e785 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 18 Jan 2023 21:25:13 +0000 Subject: [PATCH 30/38] Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- adobe-source-han-code-jp-fonts.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/adobe-source-han-code-jp-fonts.spec b/adobe-source-han-code-jp-fonts.spec index deb1c1d..fbf7e61 100644 --- a/adobe-source-han-code-jp-fonts.spec +++ b/adobe-source-han-code-jp-fonts.spec @@ -31,7 +31,7 @@ # simplify cut and pasting. # Version: 2.011 -Release: 11%{?dist} +Release: 12%{?dist} URL: https://github.com/adobe-fonts/source-han-code-jp/ # The identifier of the entity, that released the font family. @@ -98,6 +98,9 @@ chmod 0644 README.md README-JP.md %fontfiles %changelog +* Wed Jan 18 2023 Fedora Release Engineering - 2.011-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + * Tue Nov 29 2022 Akira TAGOH - 2.011-11 - Convert License tag to SPDX. From 64c17f25d3ba04ed5c5277f245a8fb7e23788a35 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 19 Jul 2023 12:55:48 +0000 Subject: [PATCH 31/38] Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- adobe-source-han-code-jp-fonts.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/adobe-source-han-code-jp-fonts.spec b/adobe-source-han-code-jp-fonts.spec index fbf7e61..eeaaa76 100644 --- a/adobe-source-han-code-jp-fonts.spec +++ b/adobe-source-han-code-jp-fonts.spec @@ -31,7 +31,7 @@ # simplify cut and pasting. # Version: 2.011 -Release: 12%{?dist} +Release: 13%{?dist} URL: https://github.com/adobe-fonts/source-han-code-jp/ # The identifier of the entity, that released the font family. @@ -98,6 +98,9 @@ chmod 0644 README.md README-JP.md %fontfiles %changelog +* Wed Jul 19 2023 Fedora Release Engineering - 2.011-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + * Wed Jan 18 2023 Fedora Release Engineering - 2.011-12 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild From 70e90635a60b4a5d0d88f1251a80625c1fb7ecf6 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 19 Jan 2024 12:13:42 +0000 Subject: [PATCH 32/38] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- adobe-source-han-code-jp-fonts.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/adobe-source-han-code-jp-fonts.spec b/adobe-source-han-code-jp-fonts.spec index eeaaa76..6658035 100644 --- a/adobe-source-han-code-jp-fonts.spec +++ b/adobe-source-han-code-jp-fonts.spec @@ -31,7 +31,7 @@ # simplify cut and pasting. # Version: 2.011 -Release: 13%{?dist} +Release: 14%{?dist} URL: https://github.com/adobe-fonts/source-han-code-jp/ # The identifier of the entity, that released the font family. @@ -98,6 +98,9 @@ chmod 0644 README.md README-JP.md %fontfiles %changelog +* Fri Jan 19 2024 Fedora Release Engineering - 2.011-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Wed Jul 19 2023 Fedora Release Engineering - 2.011-13 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild From 91863e9e898e37e386a9e18a517319a847db21e2 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Mon, 22 Jan 2024 22:41:25 +0000 Subject: [PATCH 33/38] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- adobe-source-han-code-jp-fonts.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/adobe-source-han-code-jp-fonts.spec b/adobe-source-han-code-jp-fonts.spec index 6658035..52b7799 100644 --- a/adobe-source-han-code-jp-fonts.spec +++ b/adobe-source-han-code-jp-fonts.spec @@ -31,7 +31,7 @@ # simplify cut and pasting. # Version: 2.011 -Release: 14%{?dist} +Release: 15%{?dist} URL: https://github.com/adobe-fonts/source-han-code-jp/ # The identifier of the entity, that released the font family. @@ -98,6 +98,9 @@ chmod 0644 README.md README-JP.md %fontfiles %changelog +* Mon Jan 22 2024 Fedora Release Engineering - 2.011-15 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Fri Jan 19 2024 Fedora Release Engineering - 2.011-14 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From c15407fa5e14cebaacd1fcfa9a85673e0fea7e49 Mon Sep 17 00:00:00 2001 From: Akira TAGOH Date: Tue, 25 Jun 2024 14:38:35 +0900 Subject: [PATCH 34/38] ci: Migrate CI to tmt based --- .fmf/version | 1 + plans/adobe-source-han-code-jp-fonts.fmf | 11 + .../roles/custom-test-fonts/defaults/main.yml | 7 - .../custom-test-fonts/files/run-family-test | 162 ------------ .../files/run-lang-coverage-test | 233 ------------------ tests/roles/custom-test-fonts/meta/main.yml | 4 - tests/roles/custom-test-fonts/tasks/main.yml | 52 ---- tests/tests.yml | 15 -- 8 files changed, 12 insertions(+), 473 deletions(-) create mode 100644 .fmf/version create mode 100644 plans/adobe-source-han-code-jp-fonts.fmf delete mode 100644 tests/roles/custom-test-fonts/defaults/main.yml delete mode 100755 tests/roles/custom-test-fonts/files/run-family-test delete mode 100755 tests/roles/custom-test-fonts/files/run-lang-coverage-test delete mode 100644 tests/roles/custom-test-fonts/meta/main.yml delete mode 100644 tests/roles/custom-test-fonts/tasks/main.yml delete mode 100644 tests/tests.yml diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/plans/adobe-source-han-code-jp-fonts.fmf b/plans/adobe-source-han-code-jp-fonts.fmf new file mode 100644 index 0000000..a136c80 --- /dev/null +++ b/plans/adobe-source-han-code-jp-fonts.fmf @@ -0,0 +1,11 @@ +summary: Fonts related tests +discover: + how: fmf + url: https://src.fedoraproject.org/tests/fonts +execute: + how: tmt +environment: + PACKAGE: adobe-source-han-code-jp-fonts + FONT_ALIAS: monospace + FONT_FAMILY: Source Han Code JP + FONT_LANG: ja diff --git a/tests/roles/custom-test-fonts/defaults/main.yml b/tests/roles/custom-test-fonts/defaults/main.yml deleted file mode 100644 index fe09145..0000000 --- a/tests/roles/custom-test-fonts/defaults/main.yml +++ /dev/null @@ -1,7 +0,0 @@ ---- - -role_pkgs_req: - - fontconfig - - fontconfig-devel - - pkg-config - - rsync diff --git a/tests/roles/custom-test-fonts/files/run-family-test b/tests/roles/custom-test-fonts/files/run-family-test deleted file mode 100755 index bbbed73..0000000 --- a/tests/roles/custom-test-fonts/files/run-family-test +++ /dev/null @@ -1,162 +0,0 @@ -#! /bin/bash -efu - -debug() { - if [ -n "$DEBUG" ]; then - echo "$*" >&2 - fi -} - -msg_usage() { - cat <<_EOF_ -Run family test. - -Usage: -$PROG - -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}_${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 "$i" -done) -cat <<_EOF_> $tmpconfd/fonts.conf - - /usr/share/fonts - $conf - $cachedir - -_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-match -f "%{family[0]}" :family=$OPT_ALIAS:lang=$OPT_LANG` -ret=0 -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)" - ret=1 -fi -rm -rf $tmpconfd - -exit $ret diff --git a/tests/roles/custom-test-fonts/files/run-lang-coverage-test b/tests/roles/custom-test-fonts/files/run-lang-coverage-test deleted file mode 100755 index 299f06b..0000000 --- a/tests/roles/custom-test-fonts/files/run-lang-coverage-test +++ /dev/null @@ -1,233 +0,0 @@ -#! /bin/bash -efu - -debug() { - if [ -n "$DEBUG" ]; then - echo "$*" >&2 - fi -} - -msg_usage() { - cat <<_EOF_ -Run language coverage test. - -Usage: -$PROG - -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_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 - -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 - -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[@]}" - 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 - 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 diff --git a/tests/roles/custom-test-fonts/meta/main.yml b/tests/roles/custom-test-fonts/meta/main.yml deleted file mode 100644 index f6d273c..0000000 --- a/tests/roles/custom-test-fonts/meta/main.yml +++ /dev/null @@ -1,4 +0,0 @@ ---- - -dependencies: - - role: str-common-init diff --git a/tests/roles/custom-test-fonts/tasks/main.yml b/tests/roles/custom-test-fonts/tasks/main.yml deleted file mode 100644 index 2665795..0000000 --- a/tests/roles/custom-test-fonts/tasks/main.yml +++ /dev/null @@ -1,52 +0,0 @@ ---- - -- block: - - name: language coverage - environment: - LANG: "en_US.UTF-8" - script: run-lang-coverage-test --lang "{{ item }}" {% if coverage.values is not defined or coverage[item].path_prefix is not defined %} --path {{ path_prefix }} {% 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 }} {{ "" 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 - 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 }} - 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: 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' diff --git a/tests/tests.yml b/tests/tests.yml deleted file mode 100644 index aa1a1c5..0000000 --- a/tests/tests.yml +++ /dev/null @@ -1,15 +0,0 @@ -- hosts: localhost - tags: - - classic - roles: - - role: custom-test-fonts - required_packages: - - adobe-source-han-code-jp-fonts - path_prefix: /usr/share/fonts/adobe-source-han-code-jp-fonts - package: adobe-source-han-code-jp-fonts - coverage: - - ja - families: - - lang: ja - alias: monospace - family: Source Han Code JP From b965351ad720842625c533ea7df11fd89af5e5dc Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 17 Jul 2024 16:37:30 +0000 Subject: [PATCH 35/38] Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild --- adobe-source-han-code-jp-fonts.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/adobe-source-han-code-jp-fonts.spec b/adobe-source-han-code-jp-fonts.spec index 52b7799..6ab5b20 100644 --- a/adobe-source-han-code-jp-fonts.spec +++ b/adobe-source-han-code-jp-fonts.spec @@ -31,7 +31,7 @@ # simplify cut and pasting. # Version: 2.011 -Release: 15%{?dist} +Release: 16%{?dist} URL: https://github.com/adobe-fonts/source-han-code-jp/ # The identifier of the entity, that released the font family. @@ -98,6 +98,9 @@ chmod 0644 README.md README-JP.md %fontfiles %changelog +* Wed Jul 17 2024 Fedora Release Engineering - 2.011-16 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + * Mon Jan 22 2024 Fedora Release Engineering - 2.011-15 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From 6459d447ff50666faee499ab0e109c44138aa7a1 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 16 Jan 2025 10:36:45 +0000 Subject: [PATCH 36/38] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild --- adobe-source-han-code-jp-fonts.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/adobe-source-han-code-jp-fonts.spec b/adobe-source-han-code-jp-fonts.spec index 6ab5b20..4868462 100644 --- a/adobe-source-han-code-jp-fonts.spec +++ b/adobe-source-han-code-jp-fonts.spec @@ -31,7 +31,7 @@ # simplify cut and pasting. # Version: 2.011 -Release: 16%{?dist} +Release: 17%{?dist} URL: https://github.com/adobe-fonts/source-han-code-jp/ # The identifier of the entity, that released the font family. @@ -98,6 +98,9 @@ chmod 0644 README.md README-JP.md %fontfiles %changelog +* Thu Jan 16 2025 Fedora Release Engineering - 2.011-17 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + * Wed Jul 17 2024 Fedora Release Engineering - 2.011-16 - Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild From c61c7849c7437e3f1ddfbe3df923323203bdcfb6 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 23 Jul 2025 16:46:11 +0000 Subject: [PATCH 37/38] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild --- adobe-source-han-code-jp-fonts.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/adobe-source-han-code-jp-fonts.spec b/adobe-source-han-code-jp-fonts.spec index 4868462..9d1f777 100644 --- a/adobe-source-han-code-jp-fonts.spec +++ b/adobe-source-han-code-jp-fonts.spec @@ -31,7 +31,7 @@ # simplify cut and pasting. # Version: 2.011 -Release: 17%{?dist} +Release: 18%{?dist} URL: https://github.com/adobe-fonts/source-han-code-jp/ # The identifier of the entity, that released the font family. @@ -98,6 +98,9 @@ chmod 0644 README.md README-JP.md %fontfiles %changelog +* Wed Jul 23 2025 Fedora Release Engineering - 2.011-18 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + * Thu Jan 16 2025 Fedora Release Engineering - 2.011-17 - Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild From 8157b9d09858546d42412f89e98d6c5626752bb6 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 16 Jan 2026 03:27:39 +0000 Subject: [PATCH 38/38] Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild --- adobe-source-han-code-jp-fonts.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/adobe-source-han-code-jp-fonts.spec b/adobe-source-han-code-jp-fonts.spec index 9d1f777..6a5d38b 100644 --- a/adobe-source-han-code-jp-fonts.spec +++ b/adobe-source-han-code-jp-fonts.spec @@ -31,7 +31,7 @@ # simplify cut and pasting. # Version: 2.011 -Release: 18%{?dist} +Release: 19%{?dist} URL: https://github.com/adobe-fonts/source-han-code-jp/ # The identifier of the entity, that released the font family. @@ -98,6 +98,9 @@ chmod 0644 README.md README-JP.md %fontfiles %changelog +* Fri Jan 16 2026 Fedora Release Engineering - 2.011-19 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild + * Wed Jul 23 2025 Fedora Release Engineering - 2.011-18 - Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild