From cb878dc48a127cf1216a68ca1782ba1765d0db2c Mon Sep 17 00:00:00 2001 From: Jason ティビツ Date: Feb 27 2020 16:56:31 +0000 Subject: Merge #934 `Fonts packaging policy rewrite` --- diff --git a/guidelines/modules/ROOT/examples/fonts/after-fontconfig-fixes.txt b/guidelines/modules/ROOT/examples/fonts/after-fontconfig-fixes.txt new file mode 100644 index 0000000..068b015 --- /dev/null +++ b/guidelines/modules/ROOT/examples/fonts/after-fontconfig-fixes.txt @@ -0,0 +1,110 @@ +Accanthis ADF Std Regular Accanthis ADF Std 100 80 0 131400 /usr/share/fonts/adf-accanthis-fonts/AccanthisADFStd-Regular.otf +Accanthis ADF Std Italic Accanthis ADF Std Italic 100 80 100 131400 /usr/share/fonts/adf-accanthis-fonts/AccanthisADFStd-Italic.otf +Accanthis ADF Std Bold Accanthis ADF Std Bold 100 200 0 131400 /usr/share/fonts/adf-accanthis-fonts/AccanthisADFStd-Bold.otf +Accanthis ADF Std Bold Italic Accanthis ADF Std Bold Italic 100 200 100 131400 /usr/share/fonts/adf-accanthis-fonts/AccanthisADFStd-BoldItalic.otf +Dai Banna SIL Light Dai Banna SIL Light 100 50 0 1 /usr/share/fonts/sil-dai-banna-fonts/DBSILLR.ttf +Dai Banna SIL Light Italic Dai Banna SIL Light Italic 100 80 100 1 /usr/share/fonts/sil-dai-banna-fonts/DBSILLO.ttf +Dai Banna SIL Medium Italic Dai Banna SIL Medium Italic 100 80 100 2 /usr/share/fonts/sil-dai-banna-fonts/DBSILBO.ttf +Dai Banna SIL Medium Dai Banna SIL Medium 100 100 0 2 /usr/share/fonts/sil-dai-banna-fonts/DBSILBR.ttf +Dai Banna SIL Medium Dai Banna SIL Medium 100 100 0 1 /usr/share/fonts/sil-dai-banna-fonts/DBSILLB.ttf +Dai Banna SIL Black Italic Dai Banna SIL Black Italic 100 200 100 2 /usr/share/fonts/sil-dai-banna-fonts/DBSILBC.ttf +Dai Banna SIL Medium Italic Dai Banna SIL Medium Italic 100 200 100 1 /usr/share/fonts/sil-dai-banna-fonts/DBSILLC.ttf +Dai Banna SIL Black Dai Banna SIL Black 100 210 0 2 /usr/share/fonts/sil-dai-banna-fonts/DBSILBB.ttf +IBM Plex Sans IBM Plex Sans [85 100] [0 200] 0 5 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Roman.ttf +IBM Plex Sans IBM Plex Sans [85 100] [0 200] 100 5 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Italic.ttf +IBM Plex Sans SemiCondensed Thin IBM Plex Sans SemiCondensed Thin 85 0 0 6 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansCondensed-Thin.otf +IBM Plex Sans SemiCondensed Thin IBM Plex Sans SemiCondensed Thin 85 0 0 5 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Roman.ttf +IBM Plex Sans SemiCondensed Thin Italic IBM Plex Sans SemiCondensed Thin Italic 85 0 100 6 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansCondensed-ThinItalic.otf +IBM Plex Sans SemiCondensed Thin Italic IBM Plex Sans SemiCondensed Thin Italic 85 0 100 5 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Italic.ttf +IBM Plex Sans SemiCondensed ExtraLight IBM Plex Sans SemiCondensed ExtraLight 85 40 0 6 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansCondensed-ExtraLight.otf +IBM Plex Sans SemiCondensed ExtraLight IBM Plex Sans SemiCondensed ExtraLight 85 40 0 5 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Roman.ttf +IBM Plex Sans SemiCondensed ExtraLight Italic IBM Plex Sans SemiCondensed ExtraLight Italic 85 40 100 6 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansCondensed-ExtraLightItalic.otf +IBM Plex Sans SemiCondensed ExtraLight Italic IBM Plex Sans SemiCondensed ExtraLight Italic 85 40 100 5 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Italic.ttf +IBM Plex Sans SemiCondensed Light IBM Plex Sans SemiCondensed Light 85 50 0 6 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansCondensed-Light.otf +IBM Plex Sans SemiCondensed Light IBM Plex Sans SemiCondensed Light 85 50 0 5 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Roman.ttf +IBM Plex Sans SemiCondensed Light Italic IBM Plex Sans SemiCondensed Light Italic 85 50 100 6 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansCondensed-LightItalic.otf +IBM Plex Sans SemiCondensed Light Italic IBM Plex Sans SemiCondensed Light Italic 85 50 100 5 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Italic.ttf +IBM Plex Sans SemiCondensed IBM Plex Sans SemiCondensed 85 80 0 6 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansCondensed-Regular.otf +IBM Plex Sans SemiCondensed IBM Plex Sans SemiCondensed 85 80 0 5 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Roman.ttf +IBM Plex Sans SemiCondensed Italic IBM Plex Sans SemiCondensed Italic 85 80 100 6 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansCondensed-Italic.otf +IBM Plex Sans SemiCondensed Italic IBM Plex Sans SemiCondensed Italic 85 80 100 5 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Italic.ttf +IBM Plex Sans SemiCondensed Text IBM Plex Sans SemiCondensed Text 85 90 0 6 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansCondensed-Text.otf +IBM Plex Sans SemiCondensed Text IBM Plex Sans SemiCondensed Text 85 90 0 5 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Roman.ttf +IBM Plex Sans SemiCondensed Text Italic IBM Plex Sans SemiCondensed Text Italic 85 90 100 6 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansCondensed-TextItalic.otf +IBM Plex Sans SemiCondensed Text Italic IBM Plex Sans SemiCondensed Text Italic 85 90 100 5 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Italic.ttf +IBM Plex Sans SemiCondensed Medium IBM Plex Sans SemiCondensed Medium 85 100 0 6 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansCondensed-Medium.otf +IBM Plex Sans SemiCondensed Medium IBM Plex Sans SemiCondensed Medium 85 100 0 5 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Roman.ttf +IBM Plex Sans SemiCondensed Medium Italic IBM Plex Sans SemiCondensed Medium Italic 85 100 100 6 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansCondensed-MediumItalic.otf +IBM Plex Sans SemiCondensed Medium Italic IBM Plex Sans SemiCondensed Medium Italic 85 100 100 5 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Italic.ttf +IBM Plex Sans SemiCondensed SemiBold IBM Plex Sans SemiCondensed SemiBold 85 180 0 6 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansCondensed-SemiBold.otf +IBM Plex Sans SemiCondensed SemiBold IBM Plex Sans SemiCondensed SemiBold 85 180 0 5 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Roman.ttf +IBM Plex Sans SemiCondensed SemiBold Italic IBM Plex Sans SemiCondensed SemiBold Italic 85 180 100 6 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansCondensed-SemiBoldItalic.otf +IBM Plex Sans SemiCondensed SemiBold Italic IBM Plex Sans SemiCondensed SemiBold Italic 85 180 100 5 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Italic.ttf +IBM Plex Sans SemiCondensed Bold IBM Plex Sans SemiCondensed Bold 85 200 0 6 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansCondensed-Bold.otf +IBM Plex Sans SemiCondensed Bold IBM Plex Sans SemiCondensed Bold 85 200 0 5 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Roman.ttf +IBM Plex Sans SemiCondensed Bold Italic IBM Plex Sans SemiCondensed Bold Italic 85 200 100 6 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansCondensed-BoldItalic.otf +IBM Plex Sans SemiCondensed Bold Italic IBM Plex Sans SemiCondensed Bold Italic 85 200 100 5 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Italic.ttf +IBM Plex Sans Thin IBM Plex Sans Thin 100 0 0 7 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSans-Thin.otf +IBM Plex Sans Thin IBM Plex Sans Thin 100 0 0 5 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Roman.ttf +IBM Plex Sans Thin IBM Plex Sans Thin 100 0 0 4 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansArabic-Thin.otf +IBM Plex Sans Thin IBM Plex Sans Thin 100 0 0 3 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansHebrew-Thin.otf +IBM Plex Sans Thin IBM Plex Sans Thin 100 0 0 2 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansThai-Thin.otf +IBM Plex Sans Thin IBM Plex Sans Thin 100 0 0 1 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansDevanagari-Thin.otf +IBM Plex Sans Thin Italic IBM Plex Sans Thin Italic 100 0 100 7 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSans-ThinItalic.otf +IBM Plex Sans Thin Italic IBM Plex Sans Thin Italic 100 0 100 5 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Italic.ttf +IBM Plex Sans ExtraLight IBM Plex Sans ExtraLight 100 40 0 7 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSans-ExtraLight.otf +IBM Plex Sans ExtraLight IBM Plex Sans ExtraLight 100 40 0 5 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Roman.ttf +IBM Plex Sans ExtraLight IBM Plex Sans ExtraLight 100 40 0 4 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansArabic-ExtraLight.otf +IBM Plex Sans ExtraLight IBM Plex Sans ExtraLight 100 40 0 3 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansHebrew-ExtraLight.otf +IBM Plex Sans ExtraLight IBM Plex Sans ExtraLight 100 40 0 2 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansThai-ExtraLight.otf +IBM Plex Sans ExtraLight IBM Plex Sans ExtraLight 100 40 0 1 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansDevanagari-ExtraLight.otf +IBM Plex Sans ExtraLight Italic IBM Plex Sans ExtraLight Italic 100 40 100 7 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSans-ExtraLightItalic.otf +IBM Plex Sans ExtraLight Italic IBM Plex Sans ExtraLight Italic 100 40 100 5 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Italic.ttf +IBM Plex Sans Light IBM Plex Sans Light 100 50 0 7 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSans-Light.otf +IBM Plex Sans Light IBM Plex Sans Light 100 50 0 5 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Roman.ttf +IBM Plex Sans Light IBM Plex Sans Light 100 50 0 4 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansArabic-Light.otf +IBM Plex Sans Light IBM Plex Sans Light 100 50 0 3 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansHebrew-Light.otf +IBM Plex Sans Light IBM Plex Sans Light 100 50 0 2 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansThai-Light.otf +IBM Plex Sans Light IBM Plex Sans Light 100 50 0 1 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansDevanagari-Light.otf +IBM Plex Sans Light Italic IBM Plex Sans Light Italic 100 50 100 7 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSans-LightItalic.otf +IBM Plex Sans Light Italic IBM Plex Sans Light Italic 100 50 100 5 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Italic.ttf +IBM Plex Sans Regular IBM Plex Sans 100 80 0 7 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSans-Regular.otf +IBM Plex Sans Regular IBM Plex Sans 100 80 0 5 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Roman.ttf +IBM Plex Sans Regular IBM Plex Sans 100 80 0 4 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansArabic-Regular.otf +IBM Plex Sans Regular IBM Plex Sans 100 80 0 3 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansHebrew-Regular.otf +IBM Plex Sans Regular IBM Plex Sans 100 80 0 2 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansThai-Regular.otf +IBM Plex Sans Regular IBM Plex Sans 100 80 0 1 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansDevanagari-Regular.otf +IBM Plex Sans Italic IBM Plex Sans Italic 100 80 100 7 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSans-Italic.otf +IBM Plex Sans Italic IBM Plex Sans Italic 100 80 100 5 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Italic.ttf +IBM Plex Sans Text IBM Plex Sans Text 100 90 0 7 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSans-Text.otf +IBM Plex Sans Text IBM Plex Sans Text 100 90 0 5 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Roman.ttf +IBM Plex Sans Text IBM Plex Sans Text 100 90 0 4 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansArabic-Text.otf +IBM Plex Sans Text IBM Plex Sans Text 100 90 0 3 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansHebrew-Text.otf +IBM Plex Sans Text IBM Plex Sans Text 100 90 0 2 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansThai-Text.otf +IBM Plex Sans Text IBM Plex Sans Text 100 90 0 1 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansDevanagari-Text.otf +IBM Plex Sans Text Italic IBM Plex Sans Text Italic 100 90 100 7 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSans-TextItalic.otf +IBM Plex Sans Text Italic IBM Plex Sans Text Italic 100 90 100 5 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Italic.ttf +IBM Plex Sans Medium IBM Plex Sans Medium 100 100 0 7 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSans-Medium.otf +IBM Plex Sans Medium IBM Plex Sans Medium 100 100 0 5 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Roman.ttf +IBM Plex Sans Medium IBM Plex Sans Medium 100 100 0 4 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansArabic-Medium.otf +IBM Plex Sans Medium IBM Plex Sans Medium 100 100 0 3 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansHebrew-Medium.otf +IBM Plex Sans Medium IBM Plex Sans Medium 100 100 0 2 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansThai-Medium.otf +IBM Plex Sans Medium IBM Plex Sans Medium 100 100 0 1 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansDevanagari-Medium.otf +IBM Plex Sans Medium Italic IBM Plex Sans Medium Italic 100 100 100 7 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSans-MediumItalic.otf +IBM Plex Sans Medium Italic IBM Plex Sans Medium Italic 100 100 100 5 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Italic.ttf +IBM Plex Sans SemiBold IBM Plex Sans SemiBold 100 180 0 7 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSans-SemiBold.otf +IBM Plex Sans SemiBold IBM Plex Sans SemiBold 100 180 0 5 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Roman.ttf +IBM Plex Sans SemiBold IBM Plex Sans SemiBold 100 180 0 4 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansArabic-SemiBold.otf +IBM Plex Sans SemiBold IBM Plex Sans SemiBold 100 180 0 3 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansHebrew-SemiBold.otf +IBM Plex Sans SemiBold IBM Plex Sans SemiBold 100 180 0 2 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansThai-SemiBold.otf +IBM Plex Sans SemiBold IBM Plex Sans SemiBold 100 180 0 1 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansDevanagari-SemiBold.otf +IBM Plex Sans SemiBold Italic IBM Plex Sans SemiBold Italic 100 180 100 7 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSans-SemiBoldItalic.otf +IBM Plex Sans SemiBold Italic IBM Plex Sans SemiBold Italic 100 180 100 5 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Italic.ttf +IBM Plex Sans Bold IBM Plex Sans Bold 100 200 0 7 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSans-Bold.otf +IBM Plex Sans Bold IBM Plex Sans Bold 100 200 0 5 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Roman.ttf +IBM Plex Sans Bold IBM Plex Sans Bold 100 200 0 4 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansArabic-Bold.otf +IBM Plex Sans Bold IBM Plex Sans Bold 100 200 0 3 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansHebrew-Bold.otf +IBM Plex Sans Bold IBM Plex Sans Bold 100 200 0 2 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansThai-Bold.otf +IBM Plex Sans Bold IBM Plex Sans Bold 100 200 0 1 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansDevanagari-Bold.otf +IBM Plex Sans Bold Italic IBM Plex Sans Bold Italic 100 200 100 7 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSans-BoldItalic.otf +IBM Plex Sans Bold Italic IBM Plex Sans Bold Italic 100 200 100 5 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Italic.ttf diff --git a/guidelines/modules/ROOT/examples/fonts/before-fontconfig-fixes.txt b/guidelines/modules/ROOT/examples/fonts/before-fontconfig-fixes.txt new file mode 100644 index 0000000..b1579c3 --- /dev/null +++ b/guidelines/modules/ROOT/examples/fonts/before-fontconfig-fixes.txt @@ -0,0 +1,110 @@ +Accanthis ADF Std Regular AccanthisADFStd-Regular 100 80 0 131400 /usr/share/fonts/adf-accanthis-fonts/AccanthisADFStd-Regular.otf +Accanthis ADF Std Italic AccanthisADFStd-Italic 100 80 100 131400 /usr/share/fonts/adf-accanthis-fonts/AccanthisADFStd-Italic.otf +Accanthis ADF Std Bold AccanthisADFStd-Bold 100 200 0 131400 /usr/share/fonts/adf-accanthis-fonts/AccanthisADFStd-Bold.otf +Accanthis ADF Std Bold Italic AccanthisADFStd-BoldItalic 100 200 100 131400 /usr/share/fonts/adf-accanthis-fonts/AccanthisADFStd-BoldItalic.otf +Dai Banna SIL Book Regular Dai Banna SIL Book 100 80 0 144179 /usr/share/fonts/sil-dai-banna-fonts/DBSILBR.ttf +Dai Banna SIL Book Italic Dai Banna SIL Book Italic 100 80 100 144179 /usr/share/fonts/sil-dai-banna-fonts/DBSILBO.ttf +Dai Banna SIL Book Bold Dai Banna SIL Book Bold 100 200 0 144179 /usr/share/fonts/sil-dai-banna-fonts/DBSILBB.ttf +Dai Banna SIL Book Bold Italic Dai Banna SIL Book Bold Italic 100 200 100 144179 /usr/share/fonts/sil-dai-banna-fonts/DBSILBC.ttf +Dai Banna SIL Light Regular Dai Banna SIL Light 100 80 0 144179 /usr/share/fonts/sil-dai-banna-fonts/DBSILLR.ttf +Dai Banna SIL Light Italic Dai Banna SIL Light Italic 100 80 100 144179 /usr/share/fonts/sil-dai-banna-fonts/DBSILLO.ttf +Dai Banna SIL Light Bold Dai Banna SIL Light Bold 100 200 0 144179 /usr/share/fonts/sil-dai-banna-fonts/DBSILLB.ttf +Dai Banna SIL Light Bold Italic Dai Banna SIL Light Bold Italic 100 200 100 144179 /usr/share/fonts/sil-dai-banna-fonts/DBSILLC.ttf +IBM Plex Sans Thin IBM Plex Sans Thin 100 0 0 196673 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSans-Thin.otf +IBM Plex Sans Thin Italic IBM Plex Sans Thin Italic 100 0 100 196673 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSans-ThinItalic.otf +IBM Plex Sans ExtraLight IBM Plex Sans ExtraLight 100 40 0 196673 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSans-ExtraLight.otf +IBM Plex Sans ExtraLight Italic IBM Plex Sans ExtraLight Italic 100 40 100 196673 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSans-ExtraLightItalic.otf +IBM Plex Sans Light IBM Plex Sans Light 100 50 0 196673 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSans-Light.otf +IBM Plex Sans Light Italic IBM Plex Sans Light Italic 100 50 100 196673 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSans-LightItalic.otf +IBM Plex Sans Regular IBM Plex Sans 100 80 0 196673 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSans-Regular.otf +IBM Plex Sans Italic IBM Plex Sans Italic 100 80 100 196673 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSans-Italic.otf +IBM Plex Sans Text IBM Plex Sans Text 100 90 0 196673 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSans-Text.otf +IBM Plex Sans Text Italic IBM Plex Sans Text Italic 100 90 100 196673 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSans-TextItalic.otf +IBM Plex Sans Medium IBM Plex Sans Medium 100 100 0 196673 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSans-Medium.otf +IBM Plex Sans Medium Italic IBM Plex Sans Medium Italic 100 100 100 196673 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSans-MediumItalic.otf +IBM Plex Sans SemiBold IBM Plex Sans SemiBold 100 180 0 196673 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSans-SemiBold.otf +IBM Plex Sans SemiBold Italic IBM Plex Sans SemiBold Italic 100 180 100 196673 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSans-SemiBoldItalic.otf +IBM Plex Sans Bold IBM Plex Sans Bold 100 200 0 196673 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSans-Bold.otf +IBM Plex Sans Bold Italic IBM Plex Sans Bold Italic 100 200 100 196673 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSans-BoldItalic.otf +IBM Plex Sans Arabic Thin IBM Plex Sans Arabic Thin 100 0 0 65601 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansArabic-Thin.otf +IBM Plex Sans Arabic ExtraLight IBM Plex Sans Arabic ExtraLight 100 40 0 65601 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansArabic-ExtraLight.otf +IBM Plex Sans Arabic Light IBM Plex Sans Arabic Light 100 50 0 65601 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansArabic-Light.otf +IBM Plex Sans Arabic Regular IBM Plex Sans Arabic 100 80 0 65601 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansArabic-Regular.otf +IBM Plex Sans Arabic Text IBM Plex Sans Arabic Text 100 90 0 65601 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansArabic-Text.otf +IBM Plex Sans Arabic Medium IBM Plex Sans Arabic Medium 100 100 0 65601 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansArabic-Medium.otf +IBM Plex Sans Arabic SemiBold IBM Plex Sans Arabic SemiBold 100 180 0 65601 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansArabic-SemiBold.otf +IBM Plex Sans Arabic Bold IBM Plex Sans Arabic Bold 100 200 0 65601 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansArabic-Bold.otf +IBM Plex Sans Condensed Thin IBM Plex Sans Condensed Thin 75 0 0 65601 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansCondensed-Thin.otf +IBM Plex Sans Condensed Thin Italic IBM Plex Sans Condensed Thin Italic 75 0 100 65601 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansCondensed-ThinItalic.otf +IBM Plex Sans Condensed ExtraLight IBM Plex Sans Condensed ExtraLight 75 40 0 65601 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansCondensed-ExtraLight.otf +IBM Plex Sans Condensed ExtraLight Italic IBM Plex Sans Condensed ExtraLight Italic 75 40 100 65601 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansCondensed-ExtraLightItalic.otf +IBM Plex Sans Condensed Light IBM Plex Sans Condensed Light 75 50 0 65601 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansCondensed-Light.otf +IBM Plex Sans Condensed Light Italic IBM Plex Sans Condensed Light Italic 75 50 100 65601 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansCondensed-LightItalic.otf +IBM Plex Sans Condensed Regular IBM Plex Sans Condensed 75 80 0 65601 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansCondensed-Regular.otf +IBM Plex Sans Condensed Italic IBM Plex Sans Condensed Italic 75 80 100 65601 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansCondensed-Italic.otf +IBM Plex Sans Condensed Text IBM Plex Sans Condensed Text 75 90 0 65601 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansCondensed-Text.otf +IBM Plex Sans Condensed Text Italic IBM Plex Sans Condensed Text Italic 75 90 100 65601 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansCondensed-TextItalic.otf +IBM Plex Sans Condensed Medium IBM Plex Sans Condensed Medium 75 100 0 65601 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansCondensed-Medium.otf +IBM Plex Sans Condensed Medium Italic IBM Plex Sans Condensed Medium Italic 75 100 100 65601 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansCondensed-MediumItalic.otf +IBM Plex Sans Condensed SemiBold IBM Plex Sans Condensed SemiBold 75 180 0 65601 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansCondensed-SemiBold.otf +IBM Plex Sans Condensed SemiBold Italic IBM Plex Sans Condensed SemiBold Italic 75 180 100 65601 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansCondensed-SemiBoldItalic.otf +IBM Plex Sans Condensed Bold IBM Plex Sans Condensed Bold 75 200 0 65601 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansCondensed-Bold.otf +IBM Plex Sans Condensed Bold Italic IBM Plex Sans Condensed Bold Italic 75 200 100 65601 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansCondensed-BoldItalic.otf +IBM Plex Sans Devanagari Thin IBM Plex Sans Devanagari Thin 100 0 0 65601 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansDevanagari-Thin.otf +IBM Plex Sans Devanagari ExtraLight IBM Plex Sans Devanagari ExtraLight 100 40 0 65601 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansDevanagari-ExtraLight.otf +IBM Plex Sans Devanagari Light IBM Plex Sans Devanagari Light 100 50 0 65601 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansDevanagari-Light.otf +IBM Plex Sans Devanagari Regular IBM Plex Sans Devanagari 100 80 0 65601 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansDevanagari-Regular.otf +IBM Plex Sans Devanagari Text IBM Plex Sans Devanagari Text 100 90 0 65601 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansDevanagari-Text.otf +IBM Plex Sans Devanagari Medium IBM Plex Sans Devanagari Medium 100 100 0 65601 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansDevanagari-Medium.otf +IBM Plex Sans Devanagari SemiBold IBM Plex Sans Devanagari SemiBold 100 180 0 65601 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansDevanagari-SemiBold.otf +IBM Plex Sans Devanagari Bold IBM Plex Sans Devanagari Bold 100 200 0 65601 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansDevanagari-Bold.otf +IBM Plex Sans Hebrew Thin IBM Plex Sans Hebrew Thin 100 0 0 65667 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansHebrew-Thin.otf +IBM Plex Sans Hebrew ExtraLight IBM Plex Sans Hebrew ExtraLight 100 40 0 65667 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansHebrew-ExtraLight.otf +IBM Plex Sans Hebrew Light IBM Plex Sans Hebrew Light 100 50 0 65667 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansHebrew-Light.otf +IBM Plex Sans Hebrew Regular IBM Plex Sans Hebrew 100 80 0 65667 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansHebrew-Regular.otf +IBM Plex Sans Hebrew Text IBM Plex Sans Hebrew Text 100 90 0 65667 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansHebrew-Text.otf +IBM Plex Sans Hebrew Medium IBM Plex Sans Hebrew Medium 100 100 0 65667 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansHebrew-Medium.otf +IBM Plex Sans Hebrew SemiBold IBM Plex Sans Hebrew SemiBold 100 180 0 65667 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansHebrew-SemiBold.otf +IBM Plex Sans Hebrew Bold IBM Plex Sans Hebrew Bold 100 200 0 65667 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansHebrew-Bold.otf +IBM Plex Sans Thai Thin IBM Plex Sans Thai Thin 100 0 0 65601 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansThai-Thin.otf +IBM Plex Sans Thai ExtraLight IBM Plex Sans Thai ExtraLight 100 40 0 65601 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansThai-ExtraLight.otf +IBM Plex Sans Thai Light IBM Plex Sans Thai Light 100 50 0 65601 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansThai-Light.otf +IBM Plex Sans Thai Regular IBM Plex Sans Thai 100 80 0 65601 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansThai-Regular.otf +IBM Plex Sans Thai Text IBM Plex Sans Thai Text 100 90 0 65601 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansThai-Text.otf +IBM Plex Sans Thai Medium IBM Plex Sans Thai Medium 100 100 0 65601 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansThai-Medium.otf +IBM Plex Sans Thai SemiBold IBM Plex Sans Thai SemiBold 100 180 0 65601 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansThai-SemiBold.otf +IBM Plex Sans Thai Bold IBM Plex Sans Thai Bold 100 200 0 65601 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansThai-Bold.otf +IBM Plex Sans Var IBM Plex Sans Var Regular [85 100] [0 200] 0 65536 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Roman.ttf +IBM Plex Sans Var IBM Plex Sans Var Italic [85 100] [0 200] 100 65536 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Italic.ttf +IBM Plex Sans Var Thin Condensed IBM Plex Sans Var Thin Condensed 85 0 0 65536 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Roman.ttf +IBM Plex Sans Var Thin Condensed Italic IBM Plex Sans Var Thin Condensed Italic 85 0 100 65536 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Italic.ttf +IBM Plex Sans Var ExtraLight Condensed IBM Plex Sans Var ExtraLight Condensed 85 40 0 65536 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Roman.ttf +IBM Plex Sans Var ExtraLight Condensed Italic IBM Plex Sans Var ExtraLight Condensed Italic 85 40 100 65536 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Italic.ttf +IBM Plex Sans Var Light Condensed IBM Plex Sans Var Light Condensed 85 50 0 65536 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Roman.ttf +IBM Plex Sans Var Light Condensed Italic IBM Plex Sans Var Light Condensed Italic 85 50 100 65536 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Italic.ttf +IBM Plex Sans Var Condensed IBM Plex Sans Var Condensed 85 80 0 65536 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Roman.ttf +IBM Plex Sans Var Condensed Italic IBM Plex Sans Var Condensed Italic 85 80 100 65536 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Italic.ttf +IBM Plex Sans Var Text Condensed IBM Plex Sans Var Text Condensed 85 90 0 65536 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Roman.ttf +IBM Plex Sans Var Text Condensed Italic IBM Plex Sans Var Text Condensed Italic 85 90 100 65536 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Italic.ttf +IBM Plex Sans Var Medium Condensed IBM Plex Sans Var Medium Condensed 85 100 0 65536 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Roman.ttf +IBM Plex Sans Var Medium Condensed Italic IBM Plex Sans Var Medium Condensed Italic 85 100 100 65536 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Italic.ttf +IBM Plex Sans Var SemiBold Condensed IBM Plex Sans Var SemiBold Condensed 85 180 0 65536 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Roman.ttf +IBM Plex Sans Var SemiBold Condensed Italic IBM Plex Sans Var SemiBold Condensed Italic 85 180 100 65536 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Italic.ttf +IBM Plex Sans Var Bold Condensed IBM Plex Sans Var Bold Condensed 85 200 0 65536 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Roman.ttf +IBM Plex Sans Var Bold Condensed Italic IBM Plex Sans Var Bold Condensed Italic 85 200 100 65536 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Italic.ttf +IBM Plex Sans Var Thin IBM Plex Sans Var Thin 100 0 0 65536 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Roman.ttf +IBM Plex Sans Var Thin Italic IBM Plex Sans Var Thin Italic 100 0 100 65536 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Italic.ttf +IBM Plex Sans Var ExtraLight IBM Plex Sans Var ExtraLight 100 40 0 65536 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Roman.ttf +IBM Plex Sans Var ExtraLight Italic IBM Plex Sans Var ExtraLight Italic 100 40 100 65536 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Italic.ttf +IBM Plex Sans Var Light IBM Plex Sans Var Light 100 50 0 65536 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Roman.ttf +IBM Plex Sans Var Light Italic IBM Plex Sans Var Light Italic 100 50 100 65536 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Italic.ttf +IBM Plex Sans Var Regular IBM Plex Sans Var Regular 100 80 0 65536 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Roman.ttf +IBM Plex Sans Var Italic IBM Plex Sans Var Italic 100 80 100 65536 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Italic.ttf +IBM Plex Sans Var Text IBM Plex Sans Var Text 100 90 0 65536 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Roman.ttf +IBM Plex Sans Var Text Italic IBM Plex Sans Var Text Italic 100 90 100 65536 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Italic.ttf +IBM Plex Sans Var Medium IBM Plex Sans Var Medium 100 100 0 65536 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Roman.ttf +IBM Plex Sans Var Medium Italic IBM Plex Sans Var Medium Italic 100 100 100 65536 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Italic.ttf +IBM Plex Sans Var SemiBold IBM Plex Sans Var SemiBold 100 180 0 65536 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Roman.ttf +IBM Plex Sans Var SemiBold Italic IBM Plex Sans Var SemiBold Italic 100 180 100 65536 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Italic.ttf +IBM Plex Sans Var Bold IBM Plex Sans Var Bold 100 200 0 65536 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Roman.ttf +IBM Plex Sans Var Bold Italic IBM Plex Sans Var Bold Italic 100 200 100 65536 /usr/share/fonts/ibm-plex-sans-fonts/IBMPlexSansVar-Italic.ttf diff --git a/guidelines/modules/ROOT/examples/fonts/spectemplate-fonts-0-simple.spec b/guidelines/modules/ROOT/examples/fonts/spectemplate-fonts-0-simple.spec new file mode 100644 index 0000000..9fed5b2 --- /dev/null +++ b/guidelines/modules/ROOT/examples/fonts/spectemplate-fonts-0-simple.spec @@ -0,0 +1,91 @@ +# 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: +Release: +URL: + +# The identifier of the entity, that released the font family. +%global foundry +# 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 OFL.txt +# – documentation files +%global fontdocs *.txt +# – exclusions from the ”fontdocs” list +%global fontdocsex %{fontlicenses} + +# The human-friendly font family name, whitespace included, restricted to the +# the Basic Latin Unicode block. +%global fontfamily +%global fontsummary +# +# More shell glob lists: +# – font family files +%global fonts *.otf +# – fontconfig files +%global fontconfs %{SOURCE10} +# +# A multi-line description block for the generated package. +%global fontdescription %{expand: +} + +Source0: +# 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: [number]-%{fontpkgname}.conf + +%fontpkg + +%prep +%setup + +%build +%fontbuild + +%install +%fontinstall + +%check +%fontcheck + +%fontfiles + +%changelog diff --git a/guidelines/modules/ROOT/examples/fonts/spectemplate-fonts-1-full.spec b/guidelines/modules/ROOT/examples/fonts/spectemplate-fonts-1-full.spec new file mode 100644 index 0000000..8c74b11 --- /dev/null +++ b/guidelines/modules/ROOT/examples/fonts/spectemplate-fonts-1-full.spec @@ -0,0 +1,95 @@ +# Packaging template: less common patterns for single-family fonts packaging. +# +# SPDX-License-Identifier: MIT +# +# This template documents less common spec declarations, used when packaging 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 +# +Version: +Release: +URL: + +%global foundry +%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 OFL.txt +# – exclusions from the “fontlicenses” list +%global fontlicensesex +# – documentation files +%global fontdocs +# – exclusions from the “fontdocs” list +%global fontdocsex %{fontlicenses} + +%global fontfamily +%global fontsummary +# A container for additional subpackage declarations. +%global fontpkgheader %{expand: +Obsoletes: +} +# +# More shell glob lists: +# – font family files +%global fonts +# – exclusions from the “fonts” list) +%global fontsex +# – fontconfig files +%global fontconfs %{SOURCE10} +# – exclusions from the “fontconfs” list +%global fontconfsex +# – appstream files, if any (generated automatically otherwise) +%global fontappstreams +# – exclusions from the “fontappstreams” list +%global fontappstreamsex +# +%global fontdescription %{expand: +} + +Source0: +Source10: [number]-%{fontpkgname}.conf + +%fontpkg + +# Font creators love to bundle bulky documentation files, that show off their +# font (typically, as pdf specimens). Split those files in a dedicated optional +# doc package. +%package doc +Summary: %{name} optional documentation files +BuildArch: noarch +%description doc +This package provides optional documentation files shipped with %{name}. + +%prep +%setup +# Convert upstream files to UTF-8 and Unix end of lines if necessary +# Optional arguments: +# -e [encoding] source OS encoding (auto-detected otherwise) +# -n do not recode files, only adjust folding and end of lines +%linuxtext *.txt + +%build +%fontbuild + +%install +%fontinstall + +%check +%fontcheck + +%fontfiles + +%files doc +%license OFL.txt +%doc *.pdf + +%changelog diff --git a/guidelines/modules/ROOT/examples/fonts/spectemplate-fonts-2-multi.spec b/guidelines/modules/ROOT/examples/fonts/spectemplate-fonts-2-multi.spec new file mode 100644 index 0000000..a56646b --- /dev/null +++ b/guidelines/modules/ROOT/examples/fonts/spectemplate-fonts-2-multi.spec @@ -0,0 +1,132 @@ +# Packaging template: multi-family fonts packaging. +# +# SPDX-License-Identifier: MIT +# +# This template documents spec declarations, used when packaging multiple font +# families, from a single dedicated source archive. The source rpm is named +# after the first (main) font family). Look up “fonts-3-sub” when the source +# rpm needs to be named some other way. +# +# 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 +# +Version: +Release: +URL: + +# The following declarations will be aliased to [variable]0 and reused for all +# generated *-fonts packages unless overriden by a specific [variable][number] +# declaration. +%global foundry +%global fontlicense +%global fontlicenses +%global fontlicensesex +%global fontdocs +%global fontdocsex %{fontlicenses} + +# A text block that can be reused as part of the description of each generated +# subpackage. +%global common_description %{expand: +} + +# Declaration for the subpackage containing the first font family. Also used as +# source rpm info. All the [variable]0 declarations are equivalent and aliased +# to [variable]. + +%global fontfamily0 +%global fontsummary0 +%global fontpkgheader0 %{expand: +} +%global fonts0 +%global fontsex0 +%global fontconfs0 %{SOURCE10} +%global fontconfsex0 +%global fontappstreams0 +%global fontappstreamsex0 +%global fontdescription0 %{expand: +%{common_description} +Additional text…} + +# Declaration for the subpackage containing the second font family. +%global fontfamily1 +%global fontsummary1 +%global fontpkgheader1 %{expand: +} +%global fonts1 +%global fontsex1 +%global fontconfs1 %{SOURCE11} +%global fontconfsex1 +%global fontappstreams1 +%global fontappstreamsex1 +%global fontdescription1 %{expand: +%{common_description} +Other Additional text…} +# +# Continue as necessary… + +Source0: +Source10: [number]-%{fontpkgname0}.conf +Source11: [number]-%{fontpkgname1}.conf + +# “fontpkg” will generate the font subpackage headers corresponding to the +# elements declared above. +# “fontpkg” accepts the following selection arguments: +# – “-a” process everything +# – “-z [number]” process a specific declaration block +# If no flag is specified it will only process the zero/nosuffix block. +%fontpkg -a + +# “fontmetapkg” will generate a font meta(sub)package header for all the font +# subpackages generated in this spec. Optional arguments: +# – “-n [name]” use [name] as metapackage name +# – “-s [variable]” use the content of [variable] as metapackage summary +# – “-d [variable]” use the content of [variable] as metapackage description +# – “-z [numbers]” restrict metapackaging to [numbers] comma-separated list +# of font package suffixes +%fontmetapkg + +%package doc +Summary: %{name} optional documentation files +BuildArch: noarch +%description doc +This package provides optional documentation files shipped with %{name}. + +%prep +%setup +%linuxtext *.txt + +%build +# “fontbuild” accepts the usual selection arguments: +# – “-a” process everything +# – “-z [number]” process a specific declaration block +# If no flag is specified it will only process the zero/nosuffix block. +%fontbuild -a + +%install +# “fontinstall” accepts the usual selection arguments: +# – “-a” process everything +# – “-z [number]” process a specific declaration block +# If no flag is specified it will only process the zero/nosuffix block. +%fontinstall -a + +%check +# “fontcheck” accepts the usual selection arguments: +# – “-a” process everything +# – “-z [number]” process a specific declaration block +# If no flag is specified it will only process the zero/nosuffix block. +%fontcheck -a + +# “fontfiles” accepts the usual selection arguments: +# – “-a” process everything +# – “-z [number]” process a specific declaration block +# If no flag is specified it will only process the zero/nosuffix block +%fontfiles -a + +%files doc +%license +%doc + +%changelog diff --git a/guidelines/modules/ROOT/examples/fonts/spectemplate-fonts-3-sub.spec b/guidelines/modules/ROOT/examples/fonts/spectemplate-fonts-3-sub.spec new file mode 100644 index 0000000..061db1d --- /dev/null +++ b/guidelines/modules/ROOT/examples/fonts/spectemplate-fonts-3-sub.spec @@ -0,0 +1,108 @@ +# Packaging template: packaging fonts, released as part of something else +# +# SPDX-License-Identifier: MIT +# +# This template documents spec declarations, used when packaging one or several +# font families from a source rpm which is not named after the first packaged +# font family: +# – either because the project name differs from the main font family name +# – or when the source archive and rpm are used to package more than fonts. +# +# 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 +# +# The packaging style is identical to the one documented in “fonts-2-multi”, +# EXCEPT it should not use the zero/nosuffix declaration block, as this block +# will attempt to generate source rpm declarations by default. +# +# Usually appropriate for fonts-only packages +BuildArch: noarch + +Version: +Release: +License: +URL: + +%global foundry +# If different from the main License +%global fontlicense +%global fontlicenses +%global fontlicensesex +%global fontdocs +%global fontdocsex %{fontlicenses} + +%global common_description %{expand: +} + +%global fontfamily1 +%global fontsummary1 +%global fontpkgheader1 %{expand: +} +%global fonts1 +%global fontsex1 +%global fontconfs1 %{SOURCE11} +%global fontconfsex1 +%global fontappstreams1 +%global fontappstreamsex1 +%global fontdescription1 %{expand: +%{common_description} +Additional text…} + +%global fontfamily2 +%global fontsummary2 +%global fontpkgheader2 %{expand: +} +%global fonts2 +%global fontsex2 +%global fontconfs2 %{SOURCE12} +%global fontconfsex2 +%global fontappstreams2 +%global fontappstreamsex2 +%global fontdescription2 %{expand: +%{common_description} +Other Additional text…} +# +# Continue as necessary… + +Source0: +Source11: [number]-%{fontpkgname1}.conf +Source12: [number]-%{fontpkgname2}.conf + +Name: +Summary: +%description +%wordwrap -v common_description + +%fontpkg -a + +%fontmetapkg + +%package doc +Summary: %{name} optional documentation files +BuildArch: noarch +%description doc +This package provides optional documentation files shipped with %{name}. + +%prep +%setup +%linuxtext *.txt + +%build +%fontbuild -a + +%install +%fontinstall -a + +%check +%fontcheck -a + +%fontfiles -a + +%files doc +%license +%doc + +%changelog diff --git a/guidelines/modules/ROOT/pages/FontsPolicy.adoc b/guidelines/modules/ROOT/pages/FontsPolicy.adoc index 1ee7bb4..aa50aed 100644 --- a/guidelines/modules/ROOT/pages/FontsPolicy.adoc +++ b/guidelines/modules/ROOT/pages/FontsPolicy.adoc @@ -1,156 +1,825 @@ -=== Legal considerations += Fonts +:toc: +:toclevels: 4 + +== Foreword + +The bulk of Fedora software relies on OpenType compliance and was tested against compliant fonts. + +Unfortunately, most font makers feel the OpenType specification is a document written by “software people” for “software people”. They spurn its recommendations. They can not be relied upon to release fonts in a software-friendly state, nor to fix the resulting problems, nor to provide useful advice. + +To enable the packaging of fonts by non experts, <> provides a list of sanity rules. Most are short unambiguous one liners, easy to understand and apply. Do read this list, even if it feels long. Unless your upstream is a model of discipline, you WILL need it. Avoid <> if you do not feel ambitious – here be dragons. + +Once you sorted what to package using the checklist, the rpm-specific part of fonts packaging is simple: + +* take our spec templates, +* fill in the blanks with descriptions and the file lists resulting from the sorting. + +Fedora automation will do the rest. + +<> provides in-depth documentation of those templates, and other operational tips. The operational tips are useful. The spec templates documentation, not so much. The templates are commented and will usually be self-explanatory. + +Lastly, <> provides some help, in case a third party attempts to confuse you. A lot of upstreams are dead set against applying OpenType recommendations. They will provide elaborate argumentation, on why the common rule does not apply to them. + +== Checklist + +=== Legal + +* [x] Font files MUST comply with our https://fedoraproject.org/wiki/Licensing:Main?rd=Licensing#Font_Licenses[licensing rules]. +* [x] Trademark uses MUST be authorized by their owners, +** trademarks may occur in font naming or font content (logos…). +* [x] Registered names or trademarks MUST NOT prevent downstream modifications, +** requiring a rename on significant modification is acceptable. + +=== Packaging unit: an ideal font family + +Because fonts upstreams are, on average, extremely messy, a large part of packaging fonts involves sorting files and fixing font file metadata to produce the consistent and reliable font catalog expected by applications and users. + +[IMPORTANT] +==== +.Font family +A **font family** is composed of *font files, that share a single design, and differ ONLY in*: +[horizontal] +Weight:: Bold, Black… +Width∕Stretch:: Narrow, Condensed, Expanded… +Slope/Slant:: Italic, Oblique +https://developer.microsoft.com/en-us/microsoft-edge/testdrive/demos/variable-fonts/#font-optical-sizing[Optical sizing]:: Caption… + +Those parameters correspond to the https://docs.microsoft.com/en-us/typography/opentype/spec/dvaraxisreg#registered-axis-tags[default axes] of OpenType variable fonts. The variable fonts model is an extension of the **WWS** model described in the 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[WPF Font Selection Model] whitepaper (2007). +==== + +* [x] Packagers MUST apply the definition provided in this section to determine font family boundaries, +** it takes precedence over application support concerns, over upstream and packager habits and practices. + +See also the <> section. + +=== Font file formats + +[NOTE] +==== +.OpenType: one standard, five formats +https://en.wikipedia.org/wiki/OpenType[OpenType] uses an _SFNT_ container around bitmaps (`+*.otb+`) and outlines in _TT_ (`+*.ttf+`) or _CFF_ (`+*.otf+`) formats. Multiple fonts can be consolidated in a single collection (`+*.ttc+` or `+*.otc+`). +==== + +* [x] Other font formats MUST be converted to OpenType, +** except for fonts, intended to be used in the console (NOT a terminal emulator): see <>. +* [x] Font packages MUST NOT contain font files in non OpenType formats. + +[NOTE] +==== +.Font packages +A *font package*, is an installation (RPM) package, containing OpenType font files. It MAY be produced by a source (SRPM) package, that also produces other (font or non-font) packages. Other kinds of font packages are out of scope for this document. +==== + +* [x] A font family MUST NOT be packaged in multiple or mixed OpenType formats, +** except for variable font data, +** except when mixing is required, to achieve full symbol (glyph) coverage, +** except as an application workaround; see <>. +* [x] Both variable and non-variable OpenType font files, SHOULD be packaged, for a given font family. +* [x] OpenType format mixing SHOULD be justified in a comment within the `spec` file. +* [x] OpenType collection formats SHOULD be avoided. + +=== Fontconfig + +* [x] Font packages SHOULD include the fontconfig files, that define the selection and substitution rules applying to their font files, +** written by the packager if upstream does not provide them. +* [x] Fontconfig rules MUST rewrite `family` and `style` when they are not compliant with https://docs.microsoft.com/en-us/typography/opentype/spec/name#name-ids[OpenType WWS] rules: +** `family` MUST NOT contain _Weight_, _Width_ or _Slope_ attributes (ideal WWS family name, Name ID 21), +** `style` MUST contain only _Weight_, _Width_ or _Slope_ attributes (ideal WWS subfamily name, Name ID 22), +** refer to the 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[WPF Font Selection Model] whitepaper for extensive WWS attribute documentation, +** Name ID 21 & 22 fields may exist or not in the packaged font files, and may be correct or not. The packager MUST set the correct value at the fontconfig level if the value fontconfig extracts from font files is incorrect. +* [x] Fontconfig rules MUST rewrite `family` to remove format attributes when they exist, +** for exemple: `OT`, `TT`, `Variable`, `Graphite`, `G`, etc, +** except when <>; in that case the removal MUST only be done for the font package providing the default format. +* [x] Fontconfig rules MUST rewrite `family` to remove coverage attributes when they exist, +** for exemple: `Math`, `Emoji`, `Color Emoji`, `Hebrew`, `Arabic`, `Thai`, `LGC`, etc, +** except when several font files provide the same coverage, requiring a qualifier to distinguish between them; in that case the removal MUST be done for the default file, and other files MUST be treated as parts of separate font families. +* [x] Fontconfig rules MUST rewrite `fullname` to `