Compare commits
	
		
			No commits in common. "c8s" and "c9s" have entirely different histories.
		
	
	
		
	
		
| @ -7,7 +7,7 @@ terminals. | ||||
| 
 | ||||
| Name: bitmap-fonts | ||||
| Version: 0.3 | ||||
| Release: 29%{?dist} | ||||
| Release: 40%{?dist} | ||||
| License: GPLv2 and MIT and Lucida | ||||
| Source0: bitmap-fonts-%{version}.tar.bz2 | ||||
| Source1: fixfont-3.5.tar.bz2 | ||||
| @ -16,27 +16,28 @@ Source3: 66-bitmap-console.conf | ||||
| Source4: 66-bitmap-fangsongti.conf | ||||
| Source5: 66-bitmap-fixed.conf | ||||
| Source6: 66-bitmap-lucida-typewriter.conf | ||||
| BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) | ||||
| BuildArch: noarch | ||||
| Group: User Interface/X | ||||
| Summary: Selected set of bitmap fonts | ||||
| BuildRequires: xorg-x11-font-utils | ||||
| BuildRequires: bdftopcf fonttosfnt | ||||
| BuildRequires: fontpackages-devel | ||||
| BuildRequires: python3 | ||||
| BuildRequires: /usr/bin/ftdump | ||||
| BuildRequires: make | ||||
| 
 | ||||
| 
 | ||||
| %description | ||||
| %common_desc | ||||
| 
 | ||||
| %package -n %{fontname}-fonts-compat | ||||
| Summary:          Compatibility files of bitmap-font families | ||||
| Group:            User Interface/X | ||||
| Provides:        bitmap-fonts = %{version}-%{release} | ||||
| Summary: Compatibility files of bitmap-font families | ||||
| Provides: bitmap-fonts = %{version}-%{release} | ||||
| Requires: %{fontname}-lucida-typewriter-fonts = %{version}-%{release} | ||||
| Requires: %{fontname}-fangsongti-fonts = %{version}-%{release} | ||||
| Requires: %{fontname}-console-fonts = %{version}-%{release} | ||||
| Requires: %{fontname}-fixed-fonts = %{version}-%{release} | ||||
| Requires: ucs-miscfixed-fonts | ||||
| Obsoletes:        bitmap-fonts < %{version}-%{release} | ||||
| Obsoletes: bitmap-fonts < %{version}-%{release} | ||||
| Conflicts: %{fontname}-opentype-fonts-compat | ||||
| 
 | ||||
| %description -n %{fontname}-fonts-compat | ||||
| %common_desc | ||||
| @ -44,16 +45,44 @@ Meta-package for installing all font families of bitmap. | ||||
| 
 | ||||
| %files -n %{fontname}-fonts-compat | ||||
| 
 | ||||
| %package -n %{fontname}-opentype-fonts-compat | ||||
| Summary:  Compatibility files of bitmap-font families (opentype version) | ||||
| Requires: %{fontname}-lucida-typewriter-opentype-fonts = %{version}-%{release} | ||||
| Requires: %{fontname}-fangsongti-opentype-fonts = %{version}-%{release} | ||||
| Requires: %{fontname}-console-opentype-fonts = %{version}-%{release} | ||||
| Requires: %{fontname}-fixed-opentype-fonts = %{version}-%{release} | ||||
| Requires: ucs-miscfixed-opentype-fonts | ||||
| Conflicts: %{fontname}-fonts-compat | ||||
| 
 | ||||
| %description -n %{fontname}-opentype-fonts-compat | ||||
| %common_desc | ||||
| Meta-package for installing all font families of opentype bitmap. | ||||
| 
 | ||||
| %files -n %{fontname}-opentype-fonts-compat | ||||
| 
 | ||||
| %package -n bitmap-lucida-typewriter-fonts | ||||
| Summary: Selected CJK bitmap fonts for Anaconda | ||||
| Requires: fontpackages-filesystem | ||||
| Provides: %{name}-cjk = %{version}-%{release} | ||||
| License: Lucida | ||||
| Conflicts: bitmap-lucida-typewriter-opentype-fonts | ||||
| 
 | ||||
| %description -n bitmap-lucida-typewriter-fonts | ||||
| %common_desc | ||||
| 
 | ||||
| %_font_pkg -n lucida-typewriter -f %{fontconf}-lucida-typewriter.conf lut* | ||||
| %_font_pkg -n lucida-typewriter -f %{fontconf}-lucida-typewriter.conf lut*.pcf.gz | ||||
| %doc LU_LEGALNOTICE | ||||
| 
 | ||||
| %package -n bitmap-lucida-typewriter-opentype-fonts | ||||
| Summary: Selected CJK bitmap fonts for Anaconda (opentype version) | ||||
| Requires: fontpackages-filesystem | ||||
| License: Lucida | ||||
| Conflicts: bitmap-lucida-typewriter-fonts | ||||
| 
 | ||||
| %description -n bitmap-lucida-typewriter-opentype-fonts | ||||
| %common_desc | ||||
| 
 | ||||
| %_font_pkg -n lucida-typewriter-opentype -f %{fontconf}-lucida-typewriter.conf lut*.otb | ||||
| %doc LU_LEGALNOTICE | ||||
| 
 | ||||
| %package -n bitmap-fangsongti-fonts | ||||
| @ -61,35 +90,72 @@ Summary: Selected CJK bitmap fonts for Anaconda | ||||
| Requires: fontpackages-filesystem | ||||
| Provides: %{name}-cjk = %{version}-%{release} | ||||
| License: MIT | ||||
| Conflicts: bitmap-fangsongti-opentype-fonts | ||||
| 
 | ||||
| %description -n %{fontname}-fangsongti-fonts | ||||
| bitmap-fonts-cjk package contains bitmap fonts used by Anaconda. They are | ||||
| selected from the xorg packages, and the font encoding are converted from  | ||||
| native encoding to ISO10646. They are only intended to be used in Anaconda. | ||||
| 
 | ||||
| %_font_pkg -n fangsongti -f %{fontconf}-fangsongti.conf fangsongti* | ||||
| %_font_pkg -n fangsongti -f %{fontconf}-fangsongti.conf fangsongti*.pcf.gz | ||||
| %doc LICENSE | ||||
| 
 | ||||
| %package -n bitmap-fangsongti-opentype-fonts | ||||
| Summary: Selected CJK bitmap fonts for Anaconda (opentype version) | ||||
| Requires: fontpackages-filesystem | ||||
| License: MIT | ||||
| Conflicts: bitmap-fangsongti-fonts | ||||
| 
 | ||||
| %description -n %{fontname}-fangsongti-opentype-fonts | ||||
| %common_desc | ||||
| 
 | ||||
| %_font_pkg -n fangsongti-opentype -f %{fontconf}-fangsongti.conf fangsongti*.otb | ||||
| %doc LICENSE | ||||
| 
 | ||||
| %package -n bitmap-console-fonts | ||||
| Summary: Selected set of bitmap fonts | ||||
| Requires: fontpackages-filesystem | ||||
| License: GPLv2 | ||||
| Conflicts: bitmap-console-opentype-fonts | ||||
| 
 | ||||
| %description -n %{fontname}-console-fonts | ||||
| %common_desc | ||||
| 
 | ||||
| %_font_pkg -n console -f %{fontconf}-console.conf console8x16* | ||||
| %_font_pkg -n console -f %{fontconf}-console.conf console8x16*.pcf.gz | ||||
| 
 | ||||
| %package -n bitmap-console-opentype-fonts | ||||
| Summary: Selected set of bitmap fonts (opentype version) | ||||
| Requires: fontpackages-filesystem | ||||
| License: GPLv2 | ||||
| Conflicts: bitmap-console-fonts | ||||
| 
 | ||||
| %description -n %{fontname}-console-opentype-fonts | ||||
| %common_desc | ||||
| 
 | ||||
| %_font_pkg -n console-opentype -f %{fontconf}-console.conf console8x16*.otb | ||||
| 
 | ||||
| %package -n bitmap-fixed-fonts | ||||
| Summary: Selected set of bitmap fonts | ||||
| Requires: fontpackages-filesystem | ||||
| License: GPLv2 | ||||
| Conflicts: bitmap-fixed-opentype-fonts | ||||
| 
 | ||||
| %description -n %{fontname}-fixed-fonts | ||||
| %common_desc | ||||
| 
 | ||||
| %_font_pkg -n fixed -f %{fontconf}-fixed.conf  console9*  | ||||
| %_font_pkg -n fixed -f %{fontconf}-fixed.conf  console9*.pcf.gz | ||||
| 
 | ||||
| %package -n bitmap-fixed-opentype-fonts | ||||
| Summary: Selected set of bitmap fonts (opentype version) | ||||
| Requires: fontpackages-filesystem | ||||
| License: GPLv2 | ||||
| Conflicts: bitmap-fixed-fonts | ||||
| 
 | ||||
| %description -n %{fontname}-fixed-opentype-fonts | ||||
| %common_desc | ||||
| 
 | ||||
| %_font_pkg -n fixed-opentype -f %{fontconf}-fixed.conf console9*.otb | ||||
| 
 | ||||
| 
 | ||||
| %prep | ||||
| %setup -q -a 1 | ||||
| @ -104,17 +170,34 @@ rm -rf $RPM_BUILD_ROOT | ||||
| 
 | ||||
| make install DESTDIR=$RPM_BUILD_ROOT | ||||
| 
 | ||||
| cd fixfont-3.5 | ||||
| 
 | ||||
| pushd fixfont-3.5 | ||||
| make install DESTDIR=$RPM_BUILD_ROOT | ||||
| popd | ||||
| 
 | ||||
| mkdir -p %{buildroot}%{_fontbasedir} | ||||
| mv $RPM_BUILD_ROOT/usr/share/fonts/bitmap-fonts %{buildroot}%{_fontdir} | ||||
| 
 | ||||
| rm %{buildroot}%{_fontdir}/[0-9]*.pcf | ||||
| rm %{buildroot}%{_fontdir}/console8x8.pcf | ||||
| rm README | ||||
| 
 | ||||
| # Convert to OpenType Bitmap Font | ||||
| rm [0-9]*.bdf fixfont-3.5/[0-9]*.bdf | ||||
| 
 | ||||
| for bdf in `ls *.bdf`; | ||||
| do fonttosfnt -b -c -g 2 -m 2 -o ${bdf%%bdf}otb  $bdf; | ||||
| done | ||||
| install -m 0644 -p *.otb %{buildroot}%{_fontdir} | ||||
| 
 | ||||
| pushd fixfont-3.5 | ||||
| for bdf in `ls *.bdf`; | ||||
| do fonttosfnt -b -c -g 2 -m 2 -o ${bdf%%bdf}otb  $bdf; | ||||
| done | ||||
| # For console9x15.otb | ||||
| fonttosfnt -b -c -g 2 -m 2 -o console9x15.otb console9x15.pcf | ||||
| 
 | ||||
| install -m 0644 -p *.otb %{buildroot}%{_fontdir} | ||||
| popd | ||||
| 
 | ||||
| gzip %{buildroot}%{_fontdir}/*.pcf | ||||
| 
 | ||||
| install -m 0755 -d %{buildroot}%{_fontconfig_templatedir} \ | ||||
| @ -143,12 +226,45 @@ for fconf in %{fontconf}-console.conf \ | ||||
| done | ||||
| 
 | ||||
| 
 | ||||
| %clean | ||||
| rm -rf $RPM_BUILD_ROOT | ||||
| 
 | ||||
| %changelog | ||||
| * Thu Nov 28 2019 Parag Nemade <pnemade AT redhat DOT com> - 0.3-29 | ||||
| - Resolves:rh#1679666 - Added CI tests | ||||
| * Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 0.3-40 | ||||
| - Rebuilt for IMA sigs, glibc 2.34, aarch64 flags | ||||
|   Related: rhbz#1991688 | ||||
| 
 | ||||
| * Thu Apr 15 2021 Mohan Boddu <mboddu@redhat.com> - 0.3-39 | ||||
| - Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 | ||||
| 
 | ||||
| * Tue Mar 02 2021 Parag Nemade <pnemade AT redhat DOT com> - 0.3-38 | ||||
| - Resolves: rhbz#1933563 - Don't BuildRequires xorg-x11-font-utils | ||||
| 
 | ||||
| * Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.3-37 | ||||
| - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild | ||||
| 
 | ||||
| * Tue Dec 29 2020 Peng Wu <pwu@redhat.com> - 0.3-36 | ||||
| - Rebuilt with fonttosfnt 1.2.1 | ||||
| 
 | ||||
| * Fri Sep  4 2020 Peng Wu <pwu@redhat.com> - 0.3-35 | ||||
| - Use BDF fonts for OpenType conversion | ||||
| 
 | ||||
| * Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.3-34 | ||||
| - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild | ||||
| 
 | ||||
| * Thu Feb  6 2020 Peng Wu <pwu@redhat.com> - 0.3-33 | ||||
| - Provide OpenType Bitmap fonts | ||||
| - Use bitmapfonts2otb.py to combine bitmap fonts | ||||
| - Add bitmap-*-opentype-fonts sub packages | ||||
| 
 | ||||
| * Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.3-32 | ||||
| - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild | ||||
| 
 | ||||
| * Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.3-31 | ||||
| - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild | ||||
| 
 | ||||
| * Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.3-30 | ||||
| - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild | ||||
| 
 | ||||
| * Thu Jul 12 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.3-29 | ||||
| - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild | ||||
| 
 | ||||
| * Fri Feb 09 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 0.3-28 | ||||
| - Escape macros in %%changelog | ||||
|  | ||||
							
								
								
									
										62
									
								
								bitmapfonts2otb.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								bitmapfonts2otb.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,62 @@ | ||||
| #!/usr/bin/python3 | ||||
| 
 | ||||
| # Automatically group the font files by family names and style names, | ||||
| # and assume each bitmap font only contains one font face. | ||||
| # | ||||
| # Generates one otb file per (family name, style name) tuple, named | ||||
| # after the tuple. | ||||
| # | ||||
| # This tool requires ftdump and fonttosfnt. | ||||
| 
 | ||||
| # Written by Peng Wu as | ||||
| # https://pwu.fedorapeople.org/fonts/convertbitmap/convertfont.py | ||||
| # Some changes by Hans Ulrich Niedermann. | ||||
| 
 | ||||
| import sys | ||||
| import subprocess | ||||
| 
 | ||||
| usage = ''' | ||||
| bitmapfonts2otb.py [BITMAPFONTFILE]... | ||||
| ''' | ||||
| 
 | ||||
| fontnames = dict() | ||||
| 
 | ||||
| # get font family name and style name by ftdump | ||||
| def getfullname(fontname): | ||||
|     output = subprocess.check_output(['ftdump', fontname]) | ||||
| 
 | ||||
|     output = output.decode('utf8') | ||||
|     # only contain one font face | ||||
|     assert not 'Face number: 1' in output | ||||
|     result = {} | ||||
|     for row in output.split('\n'): | ||||
|         if ':' in row: | ||||
|             key, value = row.split(': ') | ||||
|             result[key.strip()] = value.strip() | ||||
| 
 | ||||
|     familyname, stylename = result['family'], result['style'] | ||||
|     if stylename == 'Regular': | ||||
|         return familyname | ||||
|     else: | ||||
|         return familyname + ' ' + stylename | ||||
| 
 | ||||
| 
 | ||||
| def generate_fonts(): | ||||
|     for fullname, filenames in fontnames.items(): | ||||
|         outputfilename = fullname.replace(' ', '-')  + '.otb' | ||||
|         argv = ['fonttosfnt', '-b', '-c', '-g', '2', '-m', '2', '-o', outputfilename ] | ||||
|         argv.extend(filenames) | ||||
|         print(outputfilename) | ||||
|         print(' '.join(argv)) | ||||
|         print(subprocess.check_output(argv).decode('utf8')) | ||||
| 
 | ||||
| 
 | ||||
| if __name__ == '__main__': | ||||
|     for bitmapfontname in sys.argv[1:]: | ||||
|         fullname = getfullname(bitmapfontname) | ||||
|         if fullname in fontnames: | ||||
|             fontnames[fullname].append(bitmapfontname) | ||||
|         else: | ||||
|             fontnames[fullname] = [bitmapfontname] | ||||
| 
 | ||||
|     generate_fonts() | ||||
| @ -1,6 +1,6 @@ | ||||
| --- !Policy | ||||
| product_versions: | ||||
|   - rhel-8 | ||||
|   - rhel-9 | ||||
| decision_context: osci_compose_gate | ||||
| rules: | ||||
|   - !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional} | ||||
|  | ||||
							
								
								
									
										4
									
								
								sources
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								sources
									
									
									
									
									
								
							| @ -1,2 +1,2 @@ | ||||
| SHA512 (bitmap-fonts-0.3.tar.bz2) = de3e193bdf3830882f5cff42d4e488cd90fc217ccc1a92b2f136bb8121ac54614625934e9879632978389c91a15ee261a49517f0b021cdbc27a429744e4695c7 | ||||
| SHA512 (fixfont-3.5.tar.bz2) = 67194c1b72985a6400e9be957fd0d91168165abbd65ba8781c2353c8334db861fc50169daab87241202c53865885ce5a082c9e0b444e6c4b396bc80e766c3e0c | ||||
| f07548f9668f178e1a6f6ae39d595c8c  bitmap-fonts-0.3.tar.bz2 | ||||
| 008073dee211f94105b2ff2790aa45dc  fixfont-3.5.tar.bz2 | ||||
|  | ||||
| @ -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,91 +37,113 @@ 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 | ||||
| 
 | ||||
| STR_TEST_DASHED=$(echo "${OPT_NAME:-$OPT_LANG}" | sed -e 's/\//-/g') | ||||
| expand_regex() { | ||||
| 	local e ret=() | ||||
| 	local path="$1" | ||||
| 	shift | ||||
| 	(cd $path; | ||||
| 	for e; do | ||||
| 		debug "$e" | ||||
| 		set +f | ||||
| 		local x=$(find -regextype posix-egrep -regex "./$e" -print|sed -e 's,^\./,,g') | ||||
| 		ret+=($x) | ||||
| 		set -f | ||||
| 		echo ${ret[@]} | ||||
| 	done) | ||||
| 	echo ${ret[@]} | ||||
| } | ||||
| 
 | ||||
| OPT_INCLUDE=($(expand_regex $OPT_PATH ${OPT_INCLUDE[@]})) | ||||
| OPT_EXCLUDE=($(expand_regex $OPT_PATH ${OPT_EXCLUDE[@]})) | ||||
| 
 | ||||
| debug "Path: $OPT_PATH" | ||||
| debug "Lang: $OPT_LANG" | ||||
| debug "Artifacts dir: $OPT_ARTIFACTS_DIR" | ||||
| debug "Exclude: ${OPT_EXCLUDE[@]}" | ||||
| debug "Include: ${OPT_INCLUDE[@]}" | ||||
| STR_TEST_DASHED=$(echo "${OPT_NAME:-${OPT_LANG}_${OPT_PATH}}" | sed -e 's/\//-/g') | ||||
| 
 | ||||
| clean_exit() { | ||||
|     rc=$?; | ||||
|     trap - SIGINT SIGTERM SIGABRT EXIT | ||||
|     echo "Run test $OPT_LANG: done." | ||||
|     for pid in $(ps -o pid --no-headers --ppid $$); do | ||||
| 	if [ -n "$(ps -p $pid -o pid=)" ]; then | ||||
| 	    kill -s HUP $pid | ||||
| 	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 | ||||
|     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" | ||||
|     echo "- {result: $result, test: $OPT_LANG}" >> "$results" | ||||
|     exit 0 | ||||
| 	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 | ||||
| 
 | ||||
| @ -131,94 +153,45 @@ 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) | ||||
| 
 | ||||
| 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" | ||||
| set +f | ||||
| for p in ${OPT_PATH[@]}; do | ||||
|     for i in `find $p -regex '.*/*\.\(t1\)?\(ttf\)?\(otf\)?\(ttc\)?\(pcf.*\)?\(pfa\)?'`; do | ||||
| 	set -f | ||||
| for i in `find $OPT_PATH -regex '.*/*\.\(t1\)?\(ttf\)?\(otf\)?\(ttc\)?\(pcf.*\)?\(pfa\)?'`; do | ||||
| set -f | ||||
| 	debug "$i" | ||||
| 	if test -f $i; then | ||||
| 	    n=`basename $i` | ||||
| 	    set +e | ||||
| 	    contains "$n" "${OPT_EXCLUDE[@]}" | ||||
| 	    ret=$? | ||||
| 	    set -e | ||||
| 	    if [ $ret -eq 1 ]; then | ||||
| 		debug "ignoring $i" | ||||
| 		continue | ||||
| 	    fi | ||||
| 	    if [ ${#OPT_INCLUDE[@]} -ne 0 ]; then | ||||
| 		n=`basename $i` | ||||
| 		set +e | ||||
| 		contains "$n" "${OPT_INCLUDE[@]}" | ||||
| 		contains "$n" "${OPT_EXCLUDE[@]}" | ||||
| 		ret=$? | ||||
| 		set -e | ||||
| 		if [ $ret -eq 0 ]; then | ||||
| 		    debug "$i isn't targeted file" | ||||
| 		    continue | ||||
| 		if [ $ret -eq 1 ]; then | ||||
| 			debug "ignoring $i" | ||||
| 			continue | ||||
| 		fi | ||||
| 		if [ ${#OPT_INCLUDE[@]} -ne 0 ]; then | ||||
| 			set +e | ||||
| 			contains "$n" "${OPT_INCLUDE[@]}" | ||||
| 			ret=$? | ||||
| 			set -e | ||||
| 			if [ $ret -eq 0 ]; then | ||||
| 				debug "$i isn't targeted file" | ||||
| 				continue | ||||
| 			fi | ||||
| 		fi | ||||
| 		debug "  $i" | ||||
| 		res=`fc-validate -l $OPT_LANG $i` | ||||
| 		if echo $res | grep -q Missing; then | ||||
| 			echo "RESULT: FAIL: $i doesn't satisfy $OPT_LANG language coverage." | ||||
| 		else | ||||
| 			echo "RESULT: PASS: $i satisfy $OPT_LANG language coverage." | ||||
| 		fi | ||||
| 		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." | ||||
| 	    else | ||||
| 		echo "RESULT: PASS: $i satisfy $OPT_LANG language coverage." | ||||
| 	    fi | ||||
| 	fi | ||||
|     done | ||||
| done | ||||
| 
 | ||||
|  | ||||
| @ -2,7 +2,7 @@ | ||||
| 
 | ||||
| - block: | ||||
|   - name: language coverage | ||||
|     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 "')) + '"'}} | ||||
|     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 | ||||
|  | ||||
| @ -1,14 +1,31 @@ | ||||
| - hosts: localhost | ||||
|   tags: | ||||
|   - classic | ||||
|   become: yes | ||||
|   roles: | ||||
|   - role: custom-test-fonts | ||||
|     required_packages: | ||||
|       - bitmap-console-fonts | ||||
|       - bitmap-fangsongti-fonts | ||||
|       - bitmap-fixed-fonts | ||||
|       - bitmap-lucida-typewriter-fonts | ||||
|     - bitmap-console-fonts | ||||
|     - bitmap-fangsongti-fonts | ||||
|     - bitmap-fixed-fonts | ||||
|     - bitmap-lucida-typewriter-fonts | ||||
|     path_prefix: /usr/share/fonts/bitmap | ||||
|     coverage: | ||||
|     - en | ||||
| 
 | ||||
|      en: | ||||
|     families: | ||||
|     - lang: en | ||||
|       alias: monospace | ||||
|       family: Console | ||||
|       package: bitmap-console-fonts | ||||
|     - lang: en | ||||
|       alias: monospace | ||||
|       family: Fangsong ti | ||||
|       package: bitmap-fangsongti-fonts | ||||
|     - lang: en | ||||
|       alias: monospace | ||||
|       family: Fixed | ||||
|       package: bitmap-fixed-fonts | ||||
|     - lang: en | ||||
|       alias: monospace | ||||
|       family: LucidaTypewriter | ||||
|       package: bitmap-lucida-typewriter-fonts | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user