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/README.md b/README.md new file mode 100644 index 0000000..5369e14 --- /dev/null +++ b/README.md @@ -0,0 +1,43 @@ +# Fedora langpacks package + +This package enables langpacks for glibc, hunspell dictionaries, KDE, +and other packages, as well has default language support +(fonts and input methods) for languages. + +## Meta-package structure + +``` +langpacks-* -> langpacks-{core,fonts}-* -> default-fonts-* +``` + +### Default fonts + +``` +default-fonts -> default-fonts-{core,cjk,other}-* -> default-fonts-* +``` + +``` +default-fonts-core-* = default-core-{sans,mono,serif,emoji,math} +default-fonts-cjk-* = default-fonts-cjk-{sans,mono,serif} +default-fonts-other-* = default-fonts-other-{sans,mono,serif} +``` + +## FAQ + +### [Q] How to remove a default font or langpack meta-package? + +Because of the chains of meta-packages it can be a little daunting to remove +default fonts for example (ie without inducing dnf to remove lots of +default packages). + +But it can be done easily with for example: + +``` +sudo dnf remove google-noto-sans--fonts --noautoremove +``` +or +``` +sudo dnf remove default-fonts-LANGCODE --noautoremove +``` + +Though it is recommended to use the default-fonts in general. diff --git a/langpacks.spec b/langpacks.spec index 8fe25b6..1d2d005 100644 --- a/langpacks.spec +++ b/langpacks.spec @@ -1,11 +1,12 @@ Name: langpacks -Version: 1.0 -Release: 10%{?dist} +Version: 4.3 +Release: 3%{?dist} Summary: Langpacks meta-package -License: GPLv2+ +License: GPL-2.0-or-later BuildArch: noarch -Source0: https://people.freedesktop.org/~hughsient/temp/org.fedoraproject.LangPacks.xml +BuildRequires: python3 fontconfig +Source4: normlang.py # to split up the AppStream file BuildRequires: libappstream-glib >= 0.5.10 @@ -13,121 +14,2035 @@ BuildRequires: libappstream-glib >= 0.5.10 %description Langpack meta-package to provide individual langpacks packages. -# mk_pkg (langcode langname) -# we are using macro to auto-generate subpackages which is -# defined below with %%define so no %%global here -%define mk_pkg() \ -%package -n %{name}-%1\ -Summary: %{?2:%(echo %* | sed -e "s/%1 //")} langpacks meta-package\ -\ -%description -n %{name}-%1\ -This package provides %{?2:%(echo %* | sed -e "s/%1 //")} langpacks meta-package.\ -\ -%files -n %{name}-%1 \ -%{_datadir}/appdata/org.fedoraproject.LangPack-%1.metainfo.xml - # The following language list is generated based on # 1) take the languages where anaconda translations are available # ls /usr/share/locale/*/LC_MESSAGES/anaconda.mo # Then pick those languages which provides at least a single langpack +# Now, Added exception for dz and ku languages which have no anaconda.mo # 2) Added br ga he nn nr ss tn ts ve xh # as per requested in https://bugzilla.redhat.com/show_bug.cgi?id=1310538 # 3) Enabled en langpack https://bugzilla.redhat.com/show_bug.cgi?id=1312890 +# 4) Enabled eo langpack https://bugzilla.redhat.com/show_bug.cgi?id=1644736 +# 5) Enabled bo, dz, ka, km, ku, my, yi +# 6) Enabled zh_HK to set its own input method +# 7) Enabled chr, dv, hy, iu, lo so that its default font be installed at least + +# package list +# +# Writing this in LUA to make it more visible and easy to maintain. +# +# lang: language identifier +# fclang: language identifier in fontconfig. lang will be used if not present +# default: default font sets +# face: default typeface for default-fonts-. +# sans: default sans-serif font package +# serif: default serif font package +# mono: default monospace font package +# recommends: recommended font packages to be installed +# only activated for Fedora +# inputmethod: input method to be pulled by core meta package +# meta: dependencies foe langpacks meta package +# requires: required packages by meta package +# recommends: recommended packages by meta package +# only_default_font: boolean variable to generate only default-fonts package for any language +# +# Adding fedora_ prefix to inputmethod and meta.requires/meta.recommends will be available for Fedora only. +# +# See defcorepkg, deffontpkg, and defmetapkg for package template + +# Note: Adding new ll_cc code (not ll) may needs extra work in gnome-software +# to pick them up properly. +# See https://gitlab.gnome.org/GNOME/gnome-software/-/blob/main/plugins/fedora-langpacks/gs-plugin-fedora-langpacks.c?ref_type=heads#L48 +# + +%{lua: +local core_font_package_list +if tonumber(rpm.expand("0%{?rhel}")) ~= 0 and tonumber(rpm.expand("0%{?rhel}")) > 9 then +core_font_package_list = { + default={ + sans={ "redhat-text-vf-fonts", "google-noto-sans-vf-fonts" }, + serif={ "google-noto-serif-vf-fonts" }, + mono={ "redhat-mono-vf-fonts", "google-noto-sans-mono-vf-fonts" }, + emoji={ "google-noto-emoji-color-fonts" }, + math={ "google-noto-sans-math-fonts", "stix-fonts", "google-noto-sans-symbols-vf-fonts", "google-noto-sans-symbols-2-fonts" } + }, + cjk={ + sans={ "google-noto-sans-cjk-vf-fonts" }, + serif={ "google-noto-serif-cjk-vf-fonts" }, + mono={ "google-noto-sans-mono-cjk-vf-fonts" }, + }, +} +else +core_font_package_list = { + default={ + sans={ "abattis-cantarell-vf-fonts", "google-noto-sans-vf-fonts" }, + serif={ "google-noto-serif-vf-fonts" }, + mono={ "google-noto-sans-mono-vf-fonts" }, + emoji={ "google-noto-emoji-color-fonts" }, + math={ "google-noto-sans-math-fonts", "stix-fonts", "google-noto-sans-symbols-vf-fonts", "google-noto-sans-symbols-2-fonts" } + }, + cjk={ + sans={ "google-noto-sans-cjk-vf-fonts" }, + serif={ "google-noto-serif-cjk-vf-fonts" }, + mono={ "google-noto-sans-mono-cjk-vf-fonts" }, + }, +} +end +local langpacks_package_list = { + { lang="af", fclang="", langname="Afrikaans", default={ + sans="", + serif="", + mono="" }, + recommends={}, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="am", fclang="", langname="Amharic", default={ + sans="google-noto-sans-ethiopic-vf-fonts", + serif="google-noto-serif-ethiopic-vf-fonts", + mono="" }, + recommends={ "senamirmir-washra-fantuwua-fonts", + "senamirmir-washra-fonts", + "senamirmir-washra-hiwua-fonts", + "senamirmir-washra-jiret-fonts", + "senamirmir-washra-tint-fonts", + "senamirmir-washra-wookianos-fonts", + "senamirmir-washra-yebse-fonts", + "senamirmir-washra-yigezu-bisrat-goffer-fonts", + "senamirmir-washra-yigezu-bisrat-gothic-fonts", + "senamirmir-washra-zelan-fonts", + "xorg-x11-fonts-ethiopic", + "sil-abyssinica-fonts" + }, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="ar", fclang="", langname="Arabic", default={ + sans="google-noto-sans-arabic-vf-fonts", + serif="google-noto-naskh-arabic-vf-fonts", + mono="" }, + recommends={ "paktype-naqsh-fonts", + "paktype-tehreer-fonts", + "kacst-art-fonts", + "kacst-book-fonts", + "kacst-decorative-fonts", + "kacst-digital-fonts", + "kacst-farsi-fonts", + "kacst-letter-fonts", + "kacst-naskh-fonts", + "kacst-office-fonts", + "kacst-one-fonts", + "kacst-pen-fonts", + "kacst-poster-fonts", + "kacst-qurn-fonts", + "kacst-screen-fonts", + "kacst-title-fonts", + "kacst-titlel-fonts" + }, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="as", fclang="", langname="Assamese", default={ + sans="google-noto-sans-bengali-vf-fonts", + serif="google-noto-serif-bengali-vf-fonts", + mono="" }, + recommends={ "google-noto-sans-bengali-ui-vf-fonts", + "lohit-assamese-fonts", + }, + inputmethod="ibus-m17n", + meta={ requires={}, + recommends={} + }, + }, + { lang="ast", fclang="", langname="Asturian", default={ + sans="", + serif="", + mono="" }, + recommends={}, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="be", fclang="", langname="Belarusian", default={ + sans="", + serif="", + mono="" }, + recommends={}, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="bg", fclang="", langname="Bulgarian", default={ + sans="", + serif="", + mono="" }, + recommends={}, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="bn", fclang="", langname="Bengali", default={ + sans="google-noto-sans-bengali-vf-fonts", + serif="google-noto-serif-bengali-vf-fonts", + mono="" }, + recommends={ "google-noto-sans-bengali-ui-vf-fonts", + "lohit-bengali-fonts", + }, + inputmethod="ibus-m17n", + meta={ requires={}, + recommends={} + }, + }, + { lang="bo", fclang="", langname="Tibetan", default={ + sans="jomolhari-fonts", + serif="", + mono="" }, + recommends={ "tibetan-machine-uni-fonts" + }, + inputmethod="ibus-m17n", + meta={ requires={}, + recommends={} + }, + }, + { lang="br", fclang="", langname="Breton", default={ + sans="", + serif="", + mono="" }, + recommends={ + }, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="bs", fclang="", langname="Bosnian", default={ + sans="", + serif="", + mono="" }, + recommends={}, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="ca", fclang="", langname="Catalan", default={ + sans="", + serif="", + mono="" }, + recommends={}, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="chr", fclang="", langname="Cherokee", default={ + sans="google-noto-sans-cherokee-vf-fonts", + serif="", + mono="" }, + recommends={}, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="cs", fclang="", langname="Czech", default={ + sans="", + serif="", + mono="" }, + recommends={}, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="cy", fclang="", langname="Welsh", default={ + sans="", + serif="", + mono="" }, + recommends={}, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="da", fclang="", langname="Danish", default={ + sans="", + serif="", + mono="" }, + recommends={}, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="de", fclang="", langname="German", default={ + sans="", + serif="", + mono="" }, + recommends={}, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="dv", fclang="", langname="Divehi", default={ + sans="google-noto-sans-thaana-vf-fonts", + serif="", + mono="" }, + recommends={}, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="dz", fclang="", langname="Bhutanese", default={ + sans="", + serif="", + mono="" }, + recommends={}, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="el", fclang="", langname="Greek", default={ + sans="", + serif="", + mono="" }, + recommends={}, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="en", fclang="", langname="English", default={ + sans="", -- Do not add anything here. default-fonts-en is equivalent to default-fonts-core-sans + serif="", + mono="" }, + recommends={ "liberation-sans-fonts", + "liberation-serif-fonts", + "liberation-mono-fonts", + }, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="en_GB", fclang="en", langname="English (United Kingdom)", default={ + sans="", + serif="", + mono="" }, + recommends={}, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="eo", fclang="", langname="Esperanto", default={ + sans="", + serif="", + mono="" }, + recommends={}, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="es", fclang="", langname="Spanish", default={ + sans="", + serif="", + mono="" }, + recommends={}, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="et", fclang="", langname="Estonian", default={ + sans="", + serif="", + mono="" }, + recommends={}, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="eu", fclang="", langname="Basque", default={ + sans="", + serif="", + mono="" }, + recommends={}, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="fa", fclang="", langname="Persian", default={ + sans="vazirmatn-vf-fonts", + serif="google-noto-naskh-arabic-vf-fonts", + mono="" }, + recommends={ "google-noto-naskh-arabic-vf-fonts" + }, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="fi", fclang="", langname="Finnish", default={ + sans="", + serif="", + mono="" }, + recommends={}, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="fr", fclang="", langname="French", default={ + sans="", + serif="", + mono="" }, + recommends={}, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="ga", fclang="", langname="Irish", default={ + sans="", + serif="", + mono="" }, + recommends={}, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="gl", fclang="", langname="Galician", default={ + sans="", + serif="", + mono="" }, + recommends={}, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="got", fclang="", langname="Gothic", default={ + sans="google-noto-sans-gothic-fonts", + serif="", + mono="" }, + recommends={}, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="gu", fclang="", langname="Gujarati", default={ + sans="google-noto-sans-gujarati-vf-fonts", + serif="google-noto-serif-gujarati-vf-fonts", + mono="" }, + recommends={ "google-noto-sans-gujarati-ui-fonts", + "lohit-gujarati-fonts", + "samyak-gujarati-fonts" + }, + inputmethod="ibus-m17n", + meta={ requires={}, + recommends={} + }, + }, + { lang="he", fclang="", langname="Hebrew", default={ + sans="google-noto-sans-hebrew-vf-fonts", + serif="google-noto-serif-hebrew-vf-fonts", + mono="" }, + recommends={ "culmus-aharoni-clm-fonts", + "culmus-caladings-clm-fonts", + "culmus-david-clm-fonts", + "culmus-drugulin-clm-fonts", + "culmus-ellinia-clm-fonts", + "culmus-frank-ruehl-clm-fonts", + "culmus-hadasim-clm-fonts", + "culmus-keteryg-fonts", + "culmus-miriam-clm-fonts", + "culmus-miriam-mono-clm-fonts", + "culmus-nachlieli-clm-fonts", + "culmus-simple-clm-fonts", + "culmus-stamashkenaz-clm-fonts", + "culmus-stamsefarad-clm-fonts", + "culmus-yehuda-clm-fonts", + }, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="hi", fclang="", langname="Hindi", default={ + sans="google-noto-sans-devanagari-vf-fonts", + serif="google-noto-serif-devanagari-vf-fonts", + mono="" }, + recommends={ "google-noto-sans-devanagari-ui-vf-fonts", + "lohit-devanagari-fonts", + "samyak-devanagari-fonts", + }, + inputmethod="ibus-m17n", + meta={ requires={}, + recommends={} + }, + }, + { lang="hr", fclang="", langname="Croatian", default={ + sans="", + serif="", + mono="" }, + recommends={}, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="hu", fclang="", langname="Hungarian", default={ + sans="", + serif="", + mono="" }, + recommends={}, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="hy", fclang="", langname="Armenian", default={ + sans="google-noto-sans-armenian-vf-fonts", + serif="google-noto-serif-armenian-vf-fonts", + mono="" }, + recommends={}, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="ia", fclang="", langname="Interlingua", default={ + sans="", + serif="", + mono="" }, + recommends={}, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="id", fclang="", langname="Indonesian", default={ + sans="", + serif="", + mono="" }, + recommends={}, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="ii", fclang="ii", langname="Sichuan Yi", default={ + sans="google-noto-sans-yi-fonts", + serif="", + mono="" }, + recommends={ "sil-nuosu-fonts" + }, + inputmethod="ibus-m17n", + meta={ requires={}, + recommends={} + }, + only_default_font=true, + }, + { lang="is", fclang="", langname="Icelandic", default={ + sans="", + serif="", + mono="" }, + recommends={}, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="it", fclang="", langname="Italian", default={ + sans="", + serif="", + mono="" }, + recommends={}, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="iu", fclang="", langname="Inuktitut", default={ + sans="google-noto-sans-canadian-aboriginal-vf-fonts", + serif="", + mono="" }, + recommends={}, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="ja", fclang="", langname="Japanese", default={ + sans="", -- Use core_font_package_list if you want to have common fonts for CJK + serif="", + mono="" }, + recommends={}, + inputmethod="ibus-anthy", + meta={ requires={}, + recommends={}, + fedora_recommends={ "(uim-anthy if uim)" } + }, + }, + { lang="kab", fclang="", langname="Kabyle", default={ + sans="", + serif="", + mono="" }, + recommends={ "google-noto-sans-tifinagh-fonts" }, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="ka", fclang="", langname="Georgian", default={ + sans="google-noto-sans-georgian-vf-fonts", + serif="google-noto-serif-georgian-vf-fonts", + mono="" }, + recommends={ "bpg-chveulebrivi-fonts", + "bpg-courier-fonts", + "bpg-glaho-fonts", + }, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="kk", fclang="", langname="Kazakh", default={ + sans="", + serif="", + mono="" }, + recommends={}, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="km", fclang="", langname="Khmer", default={ + sans="google-noto-sans-khmer-vf-fonts", + serif="google-noto-serif-khmer-vf-fonts", + mono="" }, + recommends={ "khmer-os-system-fonts", + "khmer-os-battambang-fonts", + "khmer-os-bokor-fonts", + "khmer-os-content-fonts", + "khmer-os-fasthand-fonts", + "khmer-os-freehand-fonts", + "khmer-os-handwritten-fonts", + "khmer-os-metal-chrieng-fonts", + "khmer-os-muol-fonts-all", + "khmer-os-siemreap-fonts", + }, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="kn", fclang="", langname="Kannada", default={ + sans="google-noto-sans-kannada-vf-fonts", + serif="google-noto-serif-kannada-vf-fonts", + mono="" }, + recommends={ "google-noto-sans-kannada-ui-vf-fonts", + "gubbi-fonts", + "lohit-kannada-fonts", + "navilu-fonts", + }, + inputmethod="ibus-m17n", + meta={ requires={}, + recommends={} + }, + }, + { lang="ko", fclang="", langname="Korean", default={ + sans="", -- Use core_font_package_list if you want to have common fonts for CJK + serif="", + mono="" }, + recommends={}, + inputmethod="ibus-hangul", + meta={ requires={}, + recommends={} + }, + }, + { lang="ku", fclang="", langname="Kurdish", default={ + sans="", + serif="", + mono="" }, + recommends={}, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="lo", fclang="", langname="Lao", default={ + sans="google-noto-sans-lao-vf-fonts", + serif="google-noto-serif-lao-vf-fonts", + mono="" }, + recommends={}, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="lt", fclang="", langname="Lithuanian", default={ + sans="", + serif="", + mono="" }, + recommends={}, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="lv", fclang="", langname="Latvian", default={ + sans="", + serif="", + mono="" }, + recommends={}, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="mai", fclang="", langname="Maithili", default={ + sans="google-noto-sans-devanagari-vf-fonts", + serif="google-noto-serif-devanagari-vf-fonts", + mono="" }, + recommends={ "google-noto-sans-devanagari-ui-vf-fonts", + "lohit-devanagari-fonts", + }, + inputmethod="ibus-m17n", + meta={ requires={}, + recommends={} + }, + }, + { lang="mk", fclang="", langname="Macedonian", default={ + sans="", + serif="", + mono="" }, + recommends={}, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="ml", fclang="", langname="Malayalam", default={ + sans="rit-meera-new-fonts", + serif="rit-rachana-fonts", + mono="" }, + recommends={ "google-noto-sans-malayalam-vf-fonts", + "google-noto-sans-malayalam-ui-vf-fonts", + "google-noto-serif-malayalam-vf-fonts", + "lohit-malayalam-fonts", + "samyak-malayalam-fonts", + "smc-anjalioldlipi-fonts", + "smc-dyuthi-fonts", + "smc-raghumalayalamsans-fonts", + "smc-suruma-fonts", + "rit-sundar-fonts", + "rit-panmana-fonts", + "rit-ezhuthu-fonts", + "rit-tn-joy-fonts", + }, + inputmethod="ibus-m17n", + meta={ requires={}, + recommends={} + }, + }, + { lang="mni", fclang="", langname="Manipuri", default={ + sans="google-noto-sans-meetei-mayek-vf-fonts", + serif="", + mono="" }, + recommends={}, + inputmethod="ibus-m17n", + meta={ requires={}, + recommends={} + }, + }, + { lang="mr", fclang="", langname="Marathi", default={ + sans="google-noto-sans-devanagari-vf-fonts", + serif="google-noto-serif-devanagari-vf-fonts", + mono="" }, + recommends={ "google-noto-sans-devanagari-ui-vf-fonts", + "lohit-marathi-fonts", + "samyak-devanagari-fonts", + }, + inputmethod="ibus-m17n", + meta={ requires={}, + recommends={} + }, + }, + { lang="ms", fclang="", langname="Malay", default={ + sans="", + serif="", + mono="" }, + recommends={}, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="my", fclang="", langname="Burmese", default={ + sans="sil-padauk-fonts", + serif="", + mono="" }, + recommends={}, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="nb", fclang="", langname="Norwegian", default={ + sans="", + serif="", + mono="" }, + recommends={}, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="ne", fclang="", langname="Nepali", default={ + sans="madan-fonts", + serif="", + mono="" }, + recommends={ "google-noto-sans-devanagari-vf-fonts", + "google-noto-sans-devanagari-ui-vf-fonts", + "google-noto-serif-devanagari-vf-fonts", + }, + inputmethod="ibus-m17n", + meta={ requires={}, + recommends={} + }, + }, + { lang="nl", fclang="", langname="Dutch", default={ + sans="", + serif="", + mono="" }, + recommends={}, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="nn", fclang="", langname="Nynorsk", default={ + sans="", + serif="", + mono="" }, + recommends={}, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="nqo", fclang="", langname="N'Ko", default={ + sans="google-noto-sans-nko-fonts", + serif="", + mono="" }, + recommends={}, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="nr", fclang="", langname="Southern Ndebele", default={ + sans="", + serif="", + mono="" }, + recommends={}, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="nso", fclang="", langname="Northern Sotho", default={ + sans="", + serif="", + mono="" }, + recommends={ + }, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="or", fclang="", langname="Odia", default={ + sans="google-noto-sans-oriya-vf-fonts", + serif="google-noto-serif-oriya-vf-fonts", + mono="" }, + recommends={ "samyak-odia-fonts", + "lohit-odia-fonts", + }, + inputmethod="ibus-m17n", + meta={ requires={}, + recommends={} + }, + }, + { lang="pa", fclang="", langname="Punjabi", default={ + sans="google-noto-sans-gurmukhi-vf-fonts", + serif="google-noto-serif-gurmukhi-vf-fonts", + mono="" }, + recommends={ "saab-fonts", + "lohit-gurmukhi-fonts", + }, + inputmethod="ibus-m17n", + meta={ requires={}, + recommends={} + }, + }, + { lang="pl", fclang="", langname="Polish", default={ + sans="", + serif="", + mono="" }, + recommends={ + }, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="pt_BR", fclang="pt", langname="Portuguese (Brazil)", default={ + sans="", + serif="", + mono="" }, + recommends={ + }, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="pt", fclang="", langname="Portuguese", default={ + sans="", + serif="", + mono="" }, + recommends={ + }, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="ro", fclang="", langname="Romanian", default={ + sans="", + serif="", + mono="" }, + recommends={ + }, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="ru", fclang="", langname="Russian", default={ + sans="", + serif="", + mono="" }, + recommends={ "pt-sans-fonts", + }, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="sat", fclang="", langname="Santali", default={ + sans="google-noto-sans-ol-chiki-vf-fonts", + serif="", + mono="" }, + recommends={ + }, + inputmethod="ibus-m17n", + meta={ requires={}, + recommends={} + }, + }, + { lang="si", fclang="", langname="Sinhala", default={ + sans="google-noto-sans-sinhala-vf-fonts", + serif="google-noto-serif-sinhala-vf-fonts", + mono="" }, + recommends={ + }, + inputmethod="ibus-m17n", + meta={ requires={}, + recommends={} + }, + }, + { lang="sk", fclang="", langname="Slovak", default={ + sans="", + serif="", + mono="" }, + recommends={ + }, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="sl", fclang="", langname="Slovenian", default={ + sans="", + serif="", + mono="" }, + recommends={ + }, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="sq", fclang="", langname="Albanian", default={ + sans="", + serif="", + mono="" }, + recommends={ + }, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="sr", fclang="", langname="Serbian", default={ + sans="", + serif="", + mono="" }, + recommends={ + }, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="ss", fclang="", langname="Swati", default={ + sans="", + serif="", + mono="" }, + recommends={ + }, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="sv", fclang="", langname="Swedish", default={ + sans="", + serif="", + mono="" }, + recommends={ + }, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="syr", fclang="", langname="Syriac", default={ + sans="google-noto-sans-syriac-vf-fonts", + serif="", + mono="" }, + recommends={ + }, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="ta", fclang="", langname="Tamil", default={ + sans="google-noto-sans-tamil-vf-fonts", + serif="google-noto-serif-tamil-vf-fonts", + mono="" }, + recommends={ "google-noto-sans-tamil-ui-vf-fonts", + "lohit-tamil-fonts", + "samyak-tamil-fonts", + "serafettin-cartoon-fonts", + }, + inputmethod="ibus-m17n", + meta={ requires={}, + recommends={} + }, + }, + { lang="te", fclang="", langname="Telugu", default={ + sans="google-noto-sans-telugu-vf-fonts", + serif="google-noto-serif-telugu-vf-fonts", + mono="" }, + recommends={ "google-noto-sans-telugu-ui-vf-fonts", + "lohit-telugu-fonts", + "pothana2000-fonts", + "vemana2000-fonts", + }, + inputmethod="ibus-m17n", + meta={ requires={}, + recommends={} + }, + }, + { lang="th", fclang="", langname="Thai", default={ + sans="google-noto-sans-thai-vf-fonts", + serif="google-noto-serif-thai-vf-fonts", + mono="" }, + recommends={ "tlwg-garuda-fonts", + "tlwg-kinnari-fonts", + "tlwg-laksaman-fonts", + "tlwg-loma-fonts", + "tlwg-mono-fonts", + "tlwg-norasi-fonts", + "tlwg-purisa-fonts", + "tlwg-sawasdee-fonts", + "tlwg-typewriter-fonts", + "tlwg-typist-fonts", + "tlwg-typo-fonts", + "tlwg-umpush-fonts", + "tlwg-waree-fonts", + }, + inputmethod="ibus-m17n", + meta={ requires={}, + recommends={} + }, + }, + { lang="tn", fclang="", langname="Tswana", default={ + sans="", + serif="", + mono="" }, + recommends={ + }, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="tr", fclang="", langname="Turkish", default={ + sans="", + serif="", + mono="" }, + recommends={ + }, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="ts", fclang="", langname="Tsonga", default={ + sans="", + serif="", + mono="" }, + recommends={ + }, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="uk", fclang="", langname="Ukrainian", default={ + sans="", + serif="", + mono="" }, + recommends={ + }, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="ur", fclang="", langname="Urdu", default={ + sans="paktype-naskh-basic-fonts", + serif="google-noto-naskh-arabic-vf-fonts", + mono="" }, + recommends={ "nafees-nastaleeq-fonts", + "nafees-web-naskh-fonts", + }, + inputmethod="ibus-m17n", + meta={ requires={}, + recommends={} + }, + }, + { lang="ve", fclang="", langname="Venda", default={ + sans="", + serif="", + mono="" }, + recommends={ + }, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="vi", fclang="", langname="Vietnamese", default={ + sans="", + serif="", + mono="" }, + recommends={ + }, + fedora_inputmethod="ibus-unikey", + inputmethod="ibus-m17n", + meta={ requires={}, + recommends={} + }, + }, + { lang="xh", fclang="", langname="Xhosa", default={ + sans="", + serif="", + mono="" }, + recommends={ + }, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="yi", fclang="", langname="Yiddish", default={ + sans="google-noto-sans-hebrew-vf-fonts", + serif="google-noto-serif-hebrew-vf-fonts", + mono="" }, + recommends={ "culmus-aharoni-clm-fonts", + "culmus-caladings-clm-fonts", + "culmus-david-clm-fonts", + "culmus-drugulin-clm-fonts", + "culmus-ellinia-clm-fonts", + "culmus-frank-ruehl-clm-fonts", + "culmus-hadasim-clm-fonts", + "culmus-keteryg-fonts", + "culmus-miriam-clm-fonts", + "culmus-miriam-mono-clm-fonts", + "culmus-nachlieli-clm-fonts", + "culmus-simple-clm-fonts", + "culmus-stamashkenaz-clm-fonts", + "culmus-stamsefarad-clm-fonts", + "culmus-yehuda-clm-fonts", + }, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, + { lang="zh_CN", fclang="", langname="Simplified Chinese", default={ + sans="", -- Use core_font_package_list if you want to have common fonts for CJK + serif="", + mono="" }, + recommends={ + }, + inputmethod="ibus-libpinyin", + meta={ requires={}, + recommends={} + }, + }, + { lang="zh_HK", fclang="", langname="Hong Kong Traditional Chinese", default={ + sans="", -- Use core_font_package_list if you want to have common fonts for CJK + serif="", + mono="" }, + recommends={ + }, + inputmethod="ibus-table-chinese-cangjie", + meta={ requires={}, + recommends={ "ibus-table-chinese-quick" }, + fedora_recommends={ "ibus-table-chinese-quick", + "ibus-cangjie-engine-cangjie", + "ibus-cangjie-engine-quick", + } + }, + }, + { lang="zh_TW", fclang="", langname="Taiwan", default={ + sans="", -- Use core_font_package_list if you want to have common fonts for CJK + serif="", + mono="" }, + recommends={ + }, + inputmethod="ibus-chewing", + meta={ requires={}, + recommends={ "ibus-table-chinese-cangjie", + "ibus-table-chinese-quick" + } + }, + }, + { lang="zu", fclang="", langname="Zulu", default={ + sans="", + serif="", + mono="" }, + recommends={ + }, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, +--[[ + { lang="", fclang="", langname="", default={ + sans="", + serif="", + mono="" }, + recommends={ + }, + inputmethod="", + meta={ requires={}, + recommends={} + }, + }, +]] +} + +--Miscellaneous functions +local function is_nonlatin(lang) + local latinlang = { "af", "az", "bs", "ca", "cs", "cy", "da", "de", "en", "es", "et", "fil", "fi", "fo", "fr", "ga", "gd", "gl", "hr", "hu", "id", "is", "it", "kk", "ky", "lb", "lt", "lv", "mk", "mont", "ms", "mt", "nl", "no", "pl", "pt", "ro", "sk", "sl", "sq", "sr", "sv", "sw", "tg", "tk", "tr", "uz" } + + for i = 1, #latinlang do + n, _ = string.find(lang, latinlang[i] .. "[_%a]*") + if n == 1 then + return false + end + end + return true +end + +local function is_cjk(lang) + local pat = { "ja", "ko", "zh" } + for i = 1, #pat do + n, _ = string.find(lang, pat[i] .. "[_%a]*") + if n == 1 then + return true + end + end + return false +end + +local function build_deps(deps, tag, pkgs) + local ret = "" + for i = 1, #pkgs do + ret = ret .. (pkgs[i] ~= "" and (tag .. ": " .. pkgs[i] .. "\n") or "") + end + return deps .. ret +end + +local function drop_duplicate(pkgs) + local hash = {} + local ret = {} + for _, v in ipairs(pkgs) do + if (not hash[v]) then + table.insert(ret, v) + hash[v] = true + end + end + return ret +end + +local function append_fontprov(deps, lang) + return deps .. (lang ~= "" and ("Provides: font(:lang=" .. lang .. ")\n") or "") +end + +local function append_obsolete(deps, pkg) + return deps .. build_deps("", "Obsoletes", {pkg .. " < %{version}-%{release}"}) .. build_deps("", "Provides", {pkg .. " = %{version}-%{release}"}) +end + +-- +--Package template for langpacks-core- +-- +local function defcorepkg(lang, fontlang, langname, inputmethod) + local templ = [[ +%package core-%{_lang} +Summary: %{_langname} langpacks core meta-package +Requires: default-fonts-%{_fontlang} +%{?_req} + +%description core-%{_lang} +This package provides %{_langname} core langpacks packages. + +%files core-%{_lang} +%{_datadir}/metainfo/org.fedoraproject.LangPack-Core-%{_lang}.metainfo.xml + +]] + inputmethod = (not(inputmethod) and "" or inputmethod) + rpm.define("_lang " .. lang) + rpm.define("_fontlang " .. string.gsub(fontlang, "-", "_")) + rpm.define("_langname " .. langname) + if inputmethod ~= "" then + rpm.define("_req " .. "Requires: (" .. inputmethod .. " if service(graphical-login))\n") + end + print(rpm.expand(templ)) + rpm.undefine("_lang") + rpm.undefine("_fontlang") + rpm.undefine("_langname") + rpm.undefine("_req") +end + +-- +--Package template for fonts metapackage like default-fonts-* +-- +local function _deffontpkg(pkgname, summary1, summary2, deps, files) + local templ = [[ +%package -n %{_pkgname} +Summary: Metapackage to install %{_summary1} for %{_summary2} +%{?_req} + +%description -n %{_pkgname} +This package provides %{_summary1} package set(s) for %{_summary2} + +%files -n %{_pkgname} +%{_files} + +]] + local f = table.concat(files, "\n") + rpm.define("_pkgname " .. pkgname) + rpm.define("_summary1 " .. summary1) + rpm.define("_summary2 " .. summary2) + rpm.define("_files %{expand:" .. f .. "}") + if req ~= "" then + rpm.define("_req %{expand:" .. deps .. "}") + end + print(rpm.expand(templ)) + rpm.undefine("_files") + rpm.undefine("_summary1") + rpm.undefine("_summary2") + rpm.undefine("_pkgname") + rpm.undefine("_req") +end + +local function deffontpkg(pkgname, summary1, summary2, deps) + _deffontpkg(pkgname, summary1, summary2, deps, + {"%{_datadir}/metainfo/org.fedoraproject.%{_pkgname}.metainfo.xml"}) +end + +local function defsansfontpkg(cat, summary, target_langs, deps) + local req = "" + local files = {"%{_datadir}/metainfo/org.fedoraproject.default-fonts-" .. cat .. "-sans.metainfo.xml"} + for i = 1, #target_langs do + -- Add Provides: font(:lang=LL) and Obsoletes/Provides: default-fonts-LL + req = append_obsolete(append_fontprov(req, target_langs[i]), "default-fonts-" .. target_langs[i]) + req = append_obsolete(req, "langpacks-core-font-" .. target_langs[i]) + table.insert(files, "%{_datadir}/metainfo/org.fedoraproject.default-fonts-" .. target_langs[i] .. ".metainfo.xml") + end + _deffontpkg("default-fonts-" .. cat .. "-sans", "default sans-serif fonts", summary, build_deps(req, "Requires", drop_duplicate(deps)), files) +end + +-- +--Package template for langpacks- +-- +local function defmetapkg(lang, fontlang, langname, deps) + local templ = [[ +%package %{_lang} +Summary: %{_langname} langpacks meta-package +Requires: %{name}-core-%{_lang} +Requires: %{name}-fonts-%{_fontlang} +%{?_req} + +%description %{_lang} +This package provides %{_langname} langpacks meta-package. + +%files %{_lang} +%{_datadir}/metainfo/org.fedoraproject.LangPack-%{_lang}.metainfo.xml + +]] + rpm.define("_lang " .. lang) + rpm.define("_fontlang " .. string.gsub(fontlang, "-", "_")) + rpm.define("_langname " .. langname) + if deps ~= "" then + rpm.define("_req %{expand:" .. deps .. "}") + end + print(rpm.expand(templ)) + rpm.undefine("_lang") + rpm.undefine("_fontlang") + rpm.undefine("_langname") + rpm.undefine("_req") +end + +-- +--AppStream template +-- +local function defappstream_open(fname) + return "cat <<_EOL_>" .. fname .. "\\\n" .. [[ +\ +\ +]] +end + +local function defappstream_close(f) + local s = f .. [[\ +_EOL_ +]] + return s +end + +local function defappstream_body(f, component, id, lang, fclang, name, summary, desc) + if lang ~= fclang and fclang ~= "" then + return f + end + local _id = (lang == "" and id or id .. "-" .. lang) + local _summary = (lang == "" and summary or summary .. " for " .. name) + local s = f .. [[ + \ + CC0-1.0\ + org.fedoraproject.]] .. _id .. [[\ + ]] .. name .. [[\ + ]] .. _summary .. [[\ + \ +

\ + ]] .. desc .. [[\ +

\ +
\ +
\ +]] + return s +end + +local function defappstream_metabody(f, id, name) + f = defappstream_body(f, "font", "default-fonts-" .. id, "sans", "", name, "sans-serif default font", "sans-serif font package to install default font for " .. name .. " languages.") + f = defappstream_body(f, "font", "default-fonts-" .. id, "serif", "", name, "serif default font", "serif font package to install default font for " .. name .. " languages.") + f = defappstream_body(f, "font", "default-fonts-" .. id, "mono", "", name, "monospace default font", "monospace font package to install default font for " .. name .. " languages.") + return f +end + +local function defappstream(table) + local slpc = defappstream_open("org.fedoraproject.LangPacks-Core.xml") + local slp = defappstream_open("org.fedoraproject.LangPacks.xml") + local sdf = defappstream_open("org.fedoraproject.default-fonts.xml") + local slf = defappstream_open("org.fedoraproject.langpacks-fonts.xml") + + -- + -- default-fonts + -- + sdf = defappstream_body(sdf, "font", "default-fonts", "", "", "default-fonts", "All default fonts for all the languages", "Meta-package to install all the default fonts for all the languages.") + -- + -- default-fonts-core + -- + sdf = defappstream_body(sdf, "font", "default-fonts", "core", "", "Latin", "All variants default fonts", "sans-serif/serif/monospace/emoji/math font packages to install default fonts for Latin.") + sdf = defappstream_metabody(sdf, "core", "Latin") + sdf = defappstream_body(sdf, "font", "default-fonts-core", "emoji", "", "Emoji", "default font", "emoji font package to install default font.") + sdf = defappstream_body(sdf, "font", "default-fonts-core", "math", "", "Math", "default font", "math font package to install default font.") + -- + -- default-fonts-other + -- + sdf = defappstream_body(sdf, "font", "default-fonts", "other", "", "non-CJK", "All variants default fonts", "sans-serif/serif/monospace font packages to install default fonts for non-CJK languages.") + sdf = defappstream_metabody(sdf, "other", "non-CJK") + -- + -- default-fonts-cjk + -- + sdf = defappstream_body(sdf, "font", "default-fonts", "cjk", "", "Chinese/Japanese/Korean", "All variants default fonts", "sans-serif/serif/monospace font packages to install default fonts for CJK languages.") + sdf = defappstream_metabody(sdf, "cjk", "Chinese/Japanese/Korean") + + for i = 1, #table do + sdf = defappstream_body(sdf, "font", "default-fonts", table[i]["lang"], table[i]["fclang"], table[i]["langname"], "Localization Font support", "Core font package to install default font.") + if not table[i]["only_default_font"] then + slpc = defappstream_body(slpc, "localization", "LangPack-Core", table[i]["lang"], table[i]["lang"], table[i]["langname"], "Core Localization support", "Core Meta-package to install default font, glibc locale and input-method if available.") + slp = defappstream_body(slp, "localization", "LangPack", table[i]["lang"], table[i]["lang"], table[i]["langname"], "Localization support", "Meta-package to install available langpacks for the language available for the installed packages.") + slf = defappstream_body(slf, "font", "langpacks-fonts", table[i]["lang"], table[i]["fclang"], table[i]["langname"], "Localization Font support", "Meta-package to install extra font.") + end + end + + rpm.define("langpacks_metainfo_lpc " .. defappstream_close(slpc)) + rpm.define("langpacks_metainfo_lp " .. defappstream_close(slp)) + rpm.define("langpacks_metainfo_df " .. defappstream_close(sdf)) + rpm.define("langpacks_metainfo_lf " .. defappstream_close(slf)) +end + +local other_deps = { sans={}, serif={}, mono={} } +local cjk_deps = { sans={}, serif={}, mono={} } +local face = { "sans", "serif", "mono" } +local core_langs = {} +local core_deps = {} +local cjk_langs = {} +local cjk_sans_deps = {} + +for i = 1, #langpacks_package_list do + -- dependency list for default-fonts- + local default_deps = {} + -- dependency list for langpacks-fonts- + local extra_deps = {} + local lang = langpacks_package_list[i]["lang"] + rpm.define("langcode " .. lang .. "\n") + local orth = rpm.expand("%(python3 %{SOURCE4} %{langcode})") + rpm.undefine("langcode") + local lowerorth = string.lower(orth) + local normlang = string.gsub(string.lower(lang), "_", "-") + local langname = langpacks_package_list[i]["langname"] + local im = (tonumber(rpm.expand("0%{?fedora}")) ~= 0 and langpacks_package_list[i]["fedora_inputmethod"] ~= nil and langpacks_package_list[i]["fedora_inputmethod"] or langpacks_package_list[i]["inputmethod"]) + local fclang = (langpacks_package_list[i]["fclang"] == "" and string.gsub(lang, "_", "-") or langpacks_package_list[i]["fclang"]) + local prov = "" + local only_default_pkg = langpacks_package_list[i]["only_default_font"] + + if orth ~= "" then + --Try to validate orth in table + if fclang ~= orth then + print(rpm.expand("%{error:fclang value is invalid for " .. lang .. "}")) + end + end + + if langpacks_package_list[i]["default"] ~= nil then + local has_default = false + local default_face = langpacks_package_list[i]["default"]["face"] and langpacks_package_list[i]["default"]["face"] or "sans" + for j = 1, #face do + local current = {langpacks_package_list[i]["default"][face[j]]} + if current[1] ~= "" then + has_default = true + end + end + for j = 1, #face do + local current = (has_default and {langpacks_package_list[i]["default"][face[j]]} or (is_cjk(lang) and core_font_package_list["cjk"][face[j]] or core_font_package_list["default"][face[j]])) + + -- Only install a font which is set by "face" or "sans" if not, for default-fonts- + if face[j] == default_face then + for k = 1, #current do + table.insert(default_deps, current[k]) + end + -- Make sure default-fonts- pulled in by langpacks-fonts- + table.insert(extra_deps, "default-fonts-" .. string.gsub(fclang, "-", "_") .. " = %{version}-%{release}") + -- Provide font(:lang=) deps for default face only + prov = append_fontprov("", lowerorth) + + if is_nonlatin(lang) then + if is_cjk(lang) then + table.insert(cjk_deps[face[j]], "default-fonts-" .. string.gsub(fclang, "-", "_") .. " = %{version}-%{release}") + else + table.insert(other_deps[face[j]], "default-fonts-" .. string.gsub(fclang, "-", "_") .. " = %{version}-%{release}") + end + end + else + for k = 1, #current do + table.insert(extra_deps, current[k]) + + if is_cjk(lang) then + table.insert(cjk_deps[face[j]], current[k]) + else + table.insert(other_deps[face[j]], current[k]) + end + end + end + end + + default_deps = build_deps(prov, "Requires", drop_duplicate(default_deps)) + extra_deps = build_deps("", "Requires", drop_duplicate(extra_deps)) + end + if (tonumber(rpm.expand("0%{?fedora}")) ~= 0 and langpacks_package_list[i]["recommends"] ~= nil) then + extra_deps = build_deps(extra_deps, "Recommends", drop_duplicate(langpacks_package_list[i]["recommends"])) + end + + --Generate extra font package only when lang is recognized by fontconfig + if lowerorth == normlang then + -- Integrate default-fonts- into default-fonts-core-sans + -- if it is a latin language and no default fonts is set + if not is_nonlatin(lang) then + if has_default then + -- We may need to take care of them separately. + table.insert(core_deps, "default-fonts-" .. lang .. " = %{version}-%{release}") + else + table.insert(core_langs, lang) + end + else + if is_cjk(lang) then + if has_default then + -- We may need to take care of them separately. + table.insert(cjk_sans_deps, "default-fonts-" .. lang .. " = %{version}-%{release}") + deffontpkg("default-fonts-" .. lang, "default fonts", langname, append_obsolete(default_deps, "langpacks-core-font-" .. lang)) + else + table.insert(cjk_langs, lang) + end + else + deffontpkg("default-fonts-" .. lang, "default fonts", langname, append_obsolete(default_deps, "langpacks-core-font-" .. lang)) + end + end + if only_default_pkg == nil then + deffontpkg("langpacks-fonts-" .. lang, "extra fonts", langname, append_obsolete(extra_deps, "default-fonts-extra-" .. lang)) + end + end + if only_default_pkg == nil then + defcorepkg(lang, fclang, langname, im) + end + + --Generate langpacks-* meta packages + if only_default_pkg == nil then + local metadeps = (tonumber(rpm.expand("0%{?fedora}")) ~= 0 and langpacks_package_list[i]["meta"]["fedora_requires"] ~= nil and langpacks_package_list[i]["meta"]["fedora_requires"] or langpacks_package_list[i]["meta"]["requires"]) + local metarecd = (tonumber(rpm.expand("0%{?fedora}")) ~= 0 and langpacks_package_list[i]["meta"]["fedora_recommends"] ~= nil and langpacks_package_list[i]["meta"]["fedora_recommends"] or langpacks_package_list[i]["meta"]["recommends"]) + local deps = build_deps("", "Requires", drop_duplicate(metadeps)) + deps = build_deps(deps, "Recommends", drop_duplicate(metarecd)) + defmetapkg(lang, fclang, langname, deps) + end +end + +--Generate AppStream files +defappstream(langpacks_package_list) + +--Special care of cjk-sans to reduce extra sub-packages and dependencies like core-sans +for i = 1, #core_font_package_list["cjk"]["sans"] do + table.insert(cjk_sans_deps, core_font_package_list["cjk"]["sans"][i]) +end +defsansfontpkg("cjk", "CJK languages", cjk_langs, cjk_sans_deps) + +for i = 1, #face do + deffontpkg("default-fonts-other-" .. face[i], "default " .. face[i] .. " fonts", "non-CJK languages", build_deps("", "Requires", drop_duplicate(other_deps[face[i]]))) + if face[i] ~= "sans" then + deffontpkg("default-fonts-cjk-" .. face[i], "default " .. face[i] .. " fonts", "CJK languages", build_deps("", "Requires", drop_duplicate(cjk_deps[face[i]]))) + end +end + +--core font packages except sans - core-sans may want to have special deps to default-fonts- +for i = 1, #core_font_package_list["default"]["sans"] do + table.insert(core_deps, core_font_package_list["default"]["sans"][i]) +end +defsansfontpkg("core", "Western characters", core_langs, core_deps) + +local coreface = { "serif", "mono", "emoji", "math" } +for i = 1, #coreface do + local sum1 = "default " .. coreface[i] .. " fonts" + local sum2 = "Western characters" + if coreface[i] == "emoji" or coreface[i] == "math" then + sum1 = "default fonts" + sum2 = coreface[i]:gsub("^%l", string.upper) + end + deffontpkg("default-fonts-core-" .. coreface[i], sum1, sum2, build_deps("", "Requires", drop_duplicate(core_font_package_list["default"][coreface[i]]))) +end +} # %%{lua:} + +%package -n default-fonts +Summary: Meta package to install all the default fonts +Requires: default-fonts-core = %{version}-%{release} +Requires: default-fonts-cjk = %{version}-%{release} +Requires: default-fonts-other = %{version}-%{release} + +%description -n default-fonts +This package provides easier way to install all the default fonts meta packages +for all the languages. + +%files -n default-fonts +%{_datadir}/metainfo/org.fedoraproject.default-fonts.metainfo.xml + +%package -n default-fonts-core +Summary: Meta package to install sans/serif/mono/emoji/math default fonts meta packages for Western characters +Requires: default-fonts-core-sans = %{version}-%{release} +Requires: default-fonts-core-serif = %{version}-%{release} +Requires: default-fonts-core-mono = %{version}-%{release} +Requires: default-fonts-core-emoji = %{version}-%{release} +Requires: default-fonts-core-math = %{version}-%{release} + +%description -n default-fonts-core +This package provides easier way to install all variants of default fonts +meta packages for Western characters. + +%files -n default-fonts-core +%{_datadir}/metainfo/org.fedoraproject.default-fonts-core.metainfo.xml + +%package -n default-fonts-cjk +Summary: Meta package to install sans/serif/mono/emoji/math default fonts meta packages for CJK +Requires: default-fonts-cjk-sans = %{version}-%{release} +Requires: default-fonts-cjk-serif = %{version}-%{release} +Requires: default-fonts-cjk-mono = %{version}-%{release} + +%description -n default-fonts-cjk +This package provides easier way to install all variants of default fonts +meta packages for CJK languages. + +%files -n default-fonts-cjk +%{_datadir}/metainfo/org.fedoraproject.default-fonts-cjk.metainfo.xml + +%package -n default-fonts-other +Summary: Meta package to install sans/serif/mono/emoji/math default fonts meta packages for non-CJK +Requires: default-fonts-other-sans = %{version}-%{release} +Requires: default-fonts-other-serif = %{version}-%{release} +Requires: default-fonts-other-mono = %{version}-%{release} + +%description -n default-fonts-other +This package provides easier way to install all variants of default fonts +meta packages for non-CJK languages. + +%files -n default-fonts-other +%{_datadir}/metainfo/org.fedoraproject.default-fonts-other.metainfo.xml -%mk_pkg af Afrikaans -%mk_pkg am Amharic -%mk_pkg ar Arabic -%mk_pkg as Assamese -%mk_pkg ast Asturian -%mk_pkg be Belarusian -%mk_pkg bg Bulgarian -%mk_pkg bn Bengali -%mk_pkg br Breton -%mk_pkg bs Bosnian -%mk_pkg ca Catalan -%mk_pkg cs Czech -%mk_pkg cy Welsh -%mk_pkg da Danish -%mk_pkg de German -%mk_pkg el Greek -%mk_pkg en English -%mk_pkg en_GB English \(United Kingdom\) -%mk_pkg es Spanish -%mk_pkg et Estonian -%mk_pkg eu Basque -%mk_pkg fa Persian -%mk_pkg fi Finnish -%mk_pkg fr French -%mk_pkg ga Irish -%mk_pkg gl Galician -%mk_pkg gu Gujarati -%mk_pkg he Hebrew -%mk_pkg hi Hindi -%mk_pkg hr Croatian -%mk_pkg hu Hungarian -%mk_pkg ia Interlingua -%mk_pkg id Indonesian -%mk_pkg is Icelandic -%mk_pkg it Italian -%mk_pkg ja Japanese -%mk_pkg kk Kazakh -%mk_pkg kn Kannada -%mk_pkg ko Korean -%mk_pkg lt Lithuanian -%mk_pkg lv Latvian -%mk_pkg mai Maithili -%mk_pkg mk Macedonian -%mk_pkg ml Malayalam -%mk_pkg mr Marathi -%mk_pkg ms Malay -%mk_pkg nb Norwegian Bokmål -%mk_pkg ne Nepali -%mk_pkg nl Dutch -%mk_pkg nn Nynorsk -%mk_pkg nr Southern Ndebele -%mk_pkg nso Northern Sotho -%mk_pkg or Oriya -%mk_pkg pa Punjabi -%mk_pkg pl Polish -%mk_pkg pt Portuguese -%mk_pkg pt_BR Portuguese \(Brazil\) -%mk_pkg ro Romanian -%mk_pkg ru Russian -%mk_pkg si Sinhala -%mk_pkg sk Slovak -%mk_pkg sl Slovenian -%mk_pkg sq Albanian -%mk_pkg ss Swati -%mk_pkg sr Serbian -%mk_pkg sv Swedish -%mk_pkg ta Tamil -%mk_pkg te Telugu -%mk_pkg th Thai -%mk_pkg tn Tswana -%mk_pkg tr Turkish -%mk_pkg ts Tsonga -%mk_pkg uk Ukrainian -%mk_pkg ur Urdu -%mk_pkg ve Venda -%mk_pkg vi Vietnamese -%mk_pkg xh Xhosa -%mk_pkg zh_CN Simplified Chinese -%mk_pkg zh_TW Traditional Chinese -%mk_pkg zu Zulu %prep # nothing to prep %build -# nothing to build +%{langpacks_metainfo_lpc} +%{langpacks_metainfo_lp} +%{langpacks_metainfo_df} +%{langpacks_metainfo_lf} + %install # Explode the metainfo files into the subpackages so they get added to the # distro-specific AppStream metadata -mkdir -p %{buildroot}/usr/share/appdata -DESTDIR=%{buildroot} appstream-util split-appstream %{SOURCE0} +mkdir -p %{buildroot}/usr/share/metainfo +DESTDIR=%{buildroot} appstream-util split-appstream org.fedoraproject.LangPacks-Core.xml +DESTDIR=%{buildroot} appstream-util split-appstream org.fedoraproject.LangPacks.xml +DESTDIR=%{buildroot} appstream-util split-appstream org.fedoraproject.default-fonts.xml +DESTDIR=%{buildroot} appstream-util split-appstream org.fedoraproject.langpacks-fonts.xml %changelog +* Thu Jul 16 2026 Fedora Release Engineering - 4.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild + +* Tue May 12 2026 Parag Nemade - 4.3-2 +- Add functionality to only generate default-fonts for any language + +* Mon Mar 02 2026 Jens Petersen - 4.3-1 +- add ii langpack for Sichuan Yi (Nuosu) +- add README.md (#2237646) + +* Fri Jan 16 2026 Fedora Release Engineering - 4.2-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild + +* Thu Jul 24 2025 Fedora Release Engineering - 4.2-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Tue Jan 21 2025 Yaakov Selkowitz - 4.2-4 +- Recommend ibus-cangjie only on Fedora + +* Fri Jan 17 2025 Fedora Release Engineering - 4.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Thu Nov 14 2024 Mike FABIAN - 4.2-2 +- Resolves: rhbz#2310426 Add ibus-cangjie-engine-cangjie and ibus-cangjie-engine-quick as recommends for zh_HK + +* Tue Oct 22 2024 Akira TAGOH - 4.2-1 +- Add sub-packages: + - got for Gothic + - kab for Kabyle + - nqo for N'Ko + - syr for Syriac + +* Tue Aug 13 2024 Akira TAGOH - 4.1-3 +- Update package names for renaming + google-noto-sans-symbols2-fonts -> google-noto-sans-symbols-2-fonts + google-noto-sans-meeteimayek-vf-fonts -> google-noto-sans-meetei-mayek-vf-fonts + +* Wed Jul 17 2024 Parag Nemade - 4.1-2 +- zh_TW: change default inputmethod to ibus-chewing + https://fedoraproject.org/wiki/Changes/IBusChewingForZhTW + +* Wed Jun 19 2024 Jens Petersen - 4.1-1 +- make IME installation condition on service(graphical-login) + instead of xorg-x11-server-Xorg (RHEL-36747) + +* Fri Jun 7 2024 Jens Petersen - 4.0-14 +- drop sil-mingzat-fonts recommends from fonts-en +- use Hebrew fonts for Yiddish (#2284093) + +* Thu Apr 25 2024 Akira TAGOH - 4.0-13 +- Add some conditional for RHEL. + +* Fri Feb 02 2024 Parag Nemade - 4.0-12 +- Added langpacks for sat and mni languages (#2259991 and #2259995) + +* Thu Jan 25 2024 Fedora Release Engineering - 4.0-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sun Jan 21 2024 Fedora Release Engineering - 4.0-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Wed Aug 23 2023 Akira TAGOH - 4.0-9 +- Drop google-noto-naskh-arabic-vf-fonts from langpacks-fonts-pa. + Resolves: rhbz#2225410 + +* Fri Aug 11 2023 Peng Wu - 4.0-8 +- Update for the tlwg-fonts package + +* Fri Aug 4 2023 Akira TAGOH - 4.0-7 +- Update Indic fonts. + https://fedoraproject.org/wiki/Changes/Indic_Noto_fonts + +* Thu Jul 27 2023 Akira TAGOH - 4.0-6 +- Add google-noto-sans-mono-cjk-vf-fonts as mono for CJK. + +* Mon Jul 24 2023 Akira TAGOH - 4.0-5 +- Simplified sub-packages and dependencies for CJK. +- Update serif font to google-noto-serif-gurmukhi-vf-fonts for Punjabi. + the original serif font for Punjabi, google-noto-naskh-arabic-vf-fonts was + figured out for Punjabi(Pakistan). but we don't have langpacks-pa_pk. + So updating based on Punjabi(Indic). + +* Fri Jul 21 2023 Parag Nemade - 4.0-4 +- Fix wrong deps in langpacks-LL (zh languages) by Akira Tagoh + +* Fri Jul 21 2023 Akira TAGOH - 4.0-3 +- Drop extra dependencies for ELN which is a regression. + +* Thu Jul 20 2023 Fedora Release Engineering - 4.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Tue Jun 27 2023 Akira TAGOH - 4.0-1 +- Bump the version to 4.0. + https://fedoraproject.org/wiki/Changes/ImproveDefaultFontHandling +- New default-fonts metapackages. +- Remove langpacks-core-font-* metapackages. + +* Tue Jun 13 2023 Peng Wu - 3.0-35 +- Rename thai-scalable-fonts to tlwg-fonts + +* Thu Jun 8 2023 Jens Petersen - 3.0-34 +- revert Urdu default font to paktype-naskh-basic-fonts + +* Wed Jun 07 2023 Parag Nemade - 3.0-33 +- Resolves:rhbz#2213106 - Fix rawhide compose by changing default sans for ur language + +* Fri Apr 7 2023 Peng Wu - 3.0-32 +- Rebuild the langpacks package for Fedora 38 + +* Wed Feb 8 2023 Peng Wu - 3.0-31 +- Update for Noto CJK Variable Fonts +- https://fedoraproject.org/wiki/Changes/Noto_CJK_Variable_Fonts + +* Fri Feb 03 2023 Akira TAGOH - 3.0-30 +- Update for https://fedoraproject.org/wiki/Changes/NotoFontsForMoreLang +- Drop outdated google-noto-fonts packages. + +* Thu Jan 19 2023 Parag Nemade - 3.0-29 +- Add serif fonts to some langpacks packages + +* Thu Jan 19 2023 Fedora Release Engineering - 3.0-28 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Thu Dec 01 2022 Parag Nemade - 3.0-27 +- Update license tag to SPDX format + +* Wed Aug 03 2022 Hedayat Vatankhah - 3.0-26 +- langpacks-fa: use vazirmatn-vf-fonts as the default font and recommends Noto + Naskh font + +* Tue Aug 2 2022 Jens Petersen - 3.0-25 +- Hebrew: recommend Noto Serif not Rashi (#2113077) + +* Thu Jul 21 2022 Fedora Release Engineering - 3.0-24 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Tue May 17 2022 Jens Petersen - 3.0-23 +- langpacks-en recommends Noto Serif and Noto Sans Mono fonts + +* Tue Mar 08 2022 Akira TAGOH - 3.0-22 +- langpacks-ar: Requires: google-noto-naskh-arabic-vf-fonts instead of + google-noto-sans-arabic-vf-fonts. +- langpacks-ar: Add Recommends: google-noto-sans-arabic-vf-fonts. + +* Tue Feb 01 2022 Mike FABIAN - 3.0-21 +- zh_HK: add ibus-table-chinese-quick +- zh_TW: add ibus-table-chinese-cangjie, add ibus-table-chinese-quick + +* Mon Jan 24 2022 Parag Nemade - 3.0-20 +- langpacks-th: Add Recommends: thai-scalable-laksaman-fonts (#2035607) + +* Fri Jan 21 2022 Akira TAGOH - 3.0-19 +- Replace dejavu to google-noto (#2041929) + https://fedoraproject.org/wiki/Changes/DefaultToNotoFonts +- Add more sub-packages to make sure the upgrade-path for Noto Default: + Cherokee, Divehi, Armenian, Inuktitut, Lao + +* Thu Jan 20 2022 Fedora Release Engineering - 3.0-18 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Mon Jan 03 2022 Rajeesh K V - 3.0-17 +- Update default fonts for Malayalam (#2036378) + +* Tue Nov 30 2021 Parag Nemade - 3.0-16 +- Resolves: Change pa language default font, https://pagure.io/i18n/issue/146 + +* Thu Jul 22 2021 Fedora Release Engineering - 3.0-15 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Wed Mar 10 2021 Jens Petersen - 3.0-14 +- ja: use ibus-anthy +- zh_HK: use ibus-table-chinese-cangjie + +* Mon Mar 8 2021 Jens Petersen - 3.0-13 +- add subpackages for Hong Kong (zh_HK) + +* Tue Feb 23 2021 Parag Nemade - 3.0-12 +- Revert previous ibus-unikey change for RHEL + +* Mon Feb 22 2021 Parag Nemade - 3.0-11 +- Move Vietnamese to use ibus-unikey as default IME (#1913431) + +* Sat Feb 20 2021 Parag Nemade - 3.0-10 +- Add more entries to previous commit + +* Thu Feb 18 2021 Parag Nemade - 3.0-9 +- Don't Recommends: packages in RHEL which are not available + +* Mon Feb 15 2021 Parag Nemade - 3.0-8 +- Change default for Sinhala and Vietnamese to use ibus-m17n keymaps for Fedora + +* Tue Jan 26 2021 Fedora Release Engineering - 3.0-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Thu Dec 17 2020 Parag Nemade - 3.0-6 +- Change default for Sinhala and Vietnamese to use ibus-m17n keymaps + +* Wed Sep 16 2020 Parag Nemade - 3.0-5 +- Resolves: Fix broken dependency for langpacks-core-font-km (#1879141) + +* Tue Jul 28 2020 Fedora Release Engineering - 3.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Mar 11 2020 Akira TAGOH - 3.0-3 +- Stop shipping core-font sub-packages in lowercase and keep same naming as others. + +* Tue Feb 4 2020 Akira TAGOH - 3.0-2 +- Revert font(familyname) dependency to fix some regressions. + +* Wed Jan 22 2020 Parag Nemade - 3.0-1 +- Added AppStream metainfo files for -core and -core-font subpackages +- Use fontconfig API to normalize the langcode + and sub-package core-font based on ortho (By Akira Tagoh) +- Use dependencies as font(familyname) instead of actual package names +- Added Provides: in langcore_pkg macro (#1792463) +- Added -core-font-xx subpackages + +* Wed Sep 11 2019 Parag Nemade - 2.0-7 +- Fix typo (#1751242) + +* Thu Aug 29 2019 Parag Nemade - 2.0-6 +- Fix the issue detected in rpmdeplint report + +* Mon Aug 12 2019 Akira TAGOH - 2.0-5 +- Replace non variable fonts to variable fonts. (#1739976) + +* Mon Jul 29 2019 Parag Nemade - 2.0-4 +- Resolves:rh#1733929 - 'Requires:' to 'Recommends:' for additional fonts in base langpacks + +* Fri Jul 26 2019 Parag Nemade - 2.0-3 +- Resolves:rh#1554988 - google-noto-sans-gurmkukhi-fonts default for Punjabi + +* Thu Jul 25 2019 Fedora Release Engineering - 2.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Tue Jul 23 2019 Parag Nemade - 2.0-1 +- Should have bumped the version to 2.0 in last build + +* Mon Jul 22 2019 Parag Nemade - 1.0-18 +- Implement F31 Change (rh#1732123) +- Improve langname expansion macro from Jens Petersen +- macronize langpacks-core-* subpackages +- Correct the fonts entry for -core packages +- for now no Recommends: but Requires: + +* Fri Apr 12 2019 Parag Nemade - 1.0-17 +- Resolves: rh#1699210 - langpack-pa: add "Recommends: google-noto-sans-gurmukhi-fonts" + +* Fri Feb 01 2019 Fedora Release Engineering - 1.0-16 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Wed Jan 30 2019 Parag Nemade - 1.0-15 +- Added few new subpackages for bo, dz, ka, km, ku, my, yi +- Added entry for above languages in org.fedoraproject.LangPacks.xml +- Enhance few langpacks to pull input-method packages +- Enhance few langpacks to pull font packages + +* Thu Nov 08 2018 Parag Nemade - 1.0-14 +- Resolves:rh#1644736: Added eo (Esperanto) language + +* Fri Jul 13 2018 Fedora Release Engineering - 1.0-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Wed Feb 07 2018 Fedora Release Engineering - 1.0-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Feb 01 2018 Parag Nemade - 1.0-11 +- Added description in appdata metainfo files (rh#1538105) + * Wed Jul 26 2017 Fedora Release Engineering - 1.0-10 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild @@ -160,4 +2075,3 @@ DESTDIR=%{buildroot} appstream-util split-appstream %{SOURCE0} * Thu Jan 21 2016 Parag Nemade - 1.0-1 - Initial packaging - diff --git a/normlang.py b/normlang.py new file mode 100644 index 0000000..38de6ce --- /dev/null +++ b/normlang.py @@ -0,0 +1,7 @@ +import ctypes +import sys + +fontconfig = ctypes.CDLL("libfontconfig.so.1") +fontconfig.FcLangNormalize.argtypes = [ctypes.c_char_p] +fontconfig.FcLangNormalize.restype = ctypes.c_char_p +print(fontconfig.FcLangNormalize(sys.argv[1].encode('utf-8')).decode('utf-8')) diff --git a/org.fedoraproject.LangPacks.xml b/org.fedoraproject.LangPacks.xml deleted file mode 100644 index 1ed2bcb..0000000 --- a/org.fedoraproject.LangPacks.xml +++ /dev/null @@ -1,484 +0,0 @@ - - - - - CC0-1.0 - org.fedoraproject.LangPack-af - Afrikaans - Localization support for Afrikaans - - - CC0-1.0 - org.fedoraproject.LangPack-am - Amharic - Localization support for Amharic - - - CC0-1.0 - org.fedoraproject.LangPack-ar - Arabic - Localization support for Arabic - - - CC0-1.0 - org.fedoraproject.LangPack-as - Assamese - Localization support for Assamese - - - CC0-1.0 - org.fedoraproject.LangPack-ast - Asturian - Localization support for Asturian - - - CC0-1.0 - org.fedoraproject.LangPack-be - Belarusian - Localization support for Belarusian - - - CC0-1.0 - org.fedoraproject.LangPack-bg - Bulgarian - Localization support for Bulgarian - - - CC0-1.0 - org.fedoraproject.LangPack-bn - Bengali - Localization support for Bengali - - - CC0-1.0 - org.fedoraproject.LangPack-br - Breton - Localization support for Breton - - - CC0-1.0 - org.fedoraproject.LangPack-bs - Bosnian - Localization support for Bosnian - - - CC0-1.0 - org.fedoraproject.LangPack-ca - Catalan - Localization support for Catalan - - - CC0-1.0 - org.fedoraproject.LangPack-cs - Czech - Localization support for Czech - - - CC0-1.0 - org.fedoraproject.LangPack-cy - Welsh - Localization support for Welsh - - - CC0-1.0 - org.fedoraproject.LangPack-da - Danish - Localization support for Danish - - - CC0-1.0 - org.fedoraproject.LangPack-de - German - Localization support for German - - - CC0-1.0 - org.fedoraproject.LangPack-el - Greek - Localization support for Greek - - - CC0-1.0 - org.fedoraproject.LangPack-en - English - Localization support for English - - - CC0-1.0 - org.fedoraproject.LangPack-en_GB - British English - Localization support for English - - - CC0-1.0 - org.fedoraproject.LangPack-es - Spanish - Localization support for Spanish - - - CC0-1.0 - org.fedoraproject.LangPack-et - Estonian - Localization support for Estonian - - - CC0-1.0 - org.fedoraproject.LangPack-eu - Basque - Localization support for Basque - - - CC0-1.0 - org.fedoraproject.LangPack-fa - Persian - Localization support for Persian - - - CC0-1.0 - org.fedoraproject.LangPack-fi - Finnish - Localization support for Finnish - - - CC0-1.0 - org.fedoraproject.LangPack-fr - French - Localization support for French - - - CC0-1.0 - org.fedoraproject.LangPack-ga - Irish - Localization support for Irish - - - CC0-1.0 - org.fedoraproject.LangPack-gl - Galician - Localization support for Galician - - - CC0-1.0 - org.fedoraproject.LangPack-gu - Gujarati - Localization support for Gujarati - - - CC0-1.0 - org.fedoraproject.LangPack-he - Hebrew - Localization support for Hebrew - - - CC0-1.0 - org.fedoraproject.LangPack-hi - Hindi - Localization support for Hindi - - - CC0-1.0 - org.fedoraproject.LangPack-hr - Croatian - Localization support for Croatian - - - CC0-1.0 - org.fedoraproject.LangPack-hu - Hungarian - Localization support for Hungarian - - - CC0-1.0 - org.fedoraproject.LangPack-ia - Interlingua - Localization support for Interlingua - - - CC0-1.0 - org.fedoraproject.LangPack-id - Indonesian - Localization support for Indonesian - - - CC0-1.0 - org.fedoraproject.LangPack-is - Icelandic - Localization support for Icelandic - - - CC0-1.0 - org.fedoraproject.LangPack-it - Italian - Localization support for Italian - - - CC0-1.0 - org.fedoraproject.LangPack-ja - Japanese - Localization support for Japanese - - - CC0-1.0 - org.fedoraproject.LangPack-kk - Kazakh - Localization support for Kazakh - - - CC0-1.0 - org.fedoraproject.LangPack-kn - Kannada - Localization support for Kannada - - - CC0-1.0 - org.fedoraproject.LangPack-ko - Korean - Localization support for Korean - - - CC0-1.0 - org.fedoraproject.LangPack-lt - Lithuanian - Localization support for Lithuanian - - - CC0-1.0 - org.fedoraproject.LangPack-lv - Latvian - Localization support for Latvian - - - CC0-1.0 - org.fedoraproject.LangPack-mai - Maithili - Localization support for Maithili - - - CC0-1.0 - org.fedoraproject.LangPack-mk - Macedonian - Localization support for Macedonian - - - CC0-1.0 - org.fedoraproject.LangPack-ml - Malayalam - Localization support for Malayalam - - - CC0-1.0 - org.fedoraproject.LangPack-mr - Marathi - Localization support for Marathi - - - CC0-1.0 - org.fedoraproject.LangPack-ms - Malay - Localization support for Malay - - - CC0-1.0 - org.fedoraproject.LangPack-nb - Norwegian Bokmål - Localization support for Norwegian Bokmål - - - CC0-1.0 - org.fedoraproject.LangPack-ne - Nepali - Localization support for Nepali - - - CC0-1.0 - org.fedoraproject.LangPack-nl - Dutch - Localization support for Dutch - - - CC0-1.0 - org.fedoraproject.LangPack-nn - Nynorsk - Localization support for Nynorsk - - - CC0-1.0 - org.fedoraproject.LangPack-nr - Southern Ndebele - Localization support for Southern Ndebele - - - CC0-1.0 - org.fedoraproject.LangPack-nso - Northern Sotho - Localization support for Northern Sotho - - - CC0-1.0 - org.fedoraproject.LangPack-or - Oriya - Localization support for Oriya - - - CC0-1.0 - org.fedoraproject.LangPack-pa - Punjabi - Localization support for Punjabi - - - CC0-1.0 - org.fedoraproject.LangPack-pl - Polish - Localization support for Polish - - - CC0-1.0 - org.fedoraproject.LangPack-pt - Portuguese - Localization support for Portuguese - - - CC0-1.0 - org.fedoraproject.LangPack-pt_BR - Brazilian Portuguese - Localization support for Brazilian Portuguese - - - CC0-1.0 - org.fedoraproject.LangPack-ro - Romanian - Localization support for Romanian - - - CC0-1.0 - org.fedoraproject.LangPack-ru - Russian - Localization support for Russian - - - CC0-1.0 - org.fedoraproject.LangPack-si - Sinhala - Localization support for Sinhala - - - CC0-1.0 - org.fedoraproject.LangPack-sk - Slovak - Localization support for Slovak - - - CC0-1.0 - org.fedoraproject.LangPack-sl - Slovenian - Localization support for Slovenian - - - CC0-1.0 - org.fedoraproject.LangPack-sq - Albanian - Localization support for Albanian - - - CC0-1.0 - org.fedoraproject.LangPack-ss - Swati - Localization support for Swati - - - CC0-1.0 - org.fedoraproject.LangPack-sr - Serbian - Localization support for Serbian - - - CC0-1.0 - org.fedoraproject.LangPack-sv - Swedish - Localization support for Swedish - - - CC0-1.0 - org.fedoraproject.LangPack-ta - Tamil - Localization support for Tamil - - - CC0-1.0 - org.fedoraproject.LangPack-te - Telugu - Localization support for Telugu - - - CC0-1.0 - org.fedoraproject.LangPack-th - Thai - Localization support for Thai - - - CC0-1.0 - org.fedoraproject.LangPack-tn - Tswana - Localization support for Tswana - - - CC0-1.0 - org.fedoraproject.LangPack-tr - Turkish - Localization support for Turkish - - - CC0-1.0 - org.fedoraproject.LangPack-ts - Tsonga - Localization support for Tsonga - - - CC0-1.0 - org.fedoraproject.LangPack-uk - Ukrainian - Localization support for Ukrainian - - - CC0-1.0 - org.fedoraproject.LangPack-ur - Urdu - Localization support for Urdu - - - CC0-1.0 - org.fedoraproject.LangPack-ve - Venda - Localization support for Venda - - - CC0-1.0 - org.fedoraproject.LangPack-vi - Vietnamese - Localization support for Vietnamese - - - CC0-1.0 - org.fedoraproject.LangPack-xh - Xhosa - Localization support for Xhosa - - - CC0-1.0 - org.fedoraproject.LangPack-zh_CN - Simplified Chinese - Localization support for Simplified Chinese - - - CC0-1.0 - org.fedoraproject.LangPack-zh_TW - Traditional Chinese - Localization support for Traditional Chinese - - - CC0-1.0 - org.fedoraproject.LangPack-zu - Zulu - Localization support for Zulu - - diff --git a/plans/langpacks.fmf b/plans/langpacks.fmf new file mode 100644 index 0000000..c1627f9 --- /dev/null +++ b/plans/langpacks.fmf @@ -0,0 +1,5 @@ +summary: Basic smoke test +discover: + how: fmf +execute: + how: tmt diff --git a/tests/check-default-font-installed.sh b/tests/check-default-font-installed.sh new file mode 100755 index 0000000..99491ee --- /dev/null +++ b/tests/check-default-font-installed.sh @@ -0,0 +1,36 @@ +#!/bin/bash +set -e + +echo "First check installed langpacks list" +sudo dnf list --installed| grep langpacks + +echo "Check hi language" +sudo dnf list --installed|grep google-noto-sans-devanagari-vf-fonts +retval=$? +echo $retval +if [ $retval -ne 0 ]; then + echo "langpacks-core-hi failed to install google-noto-sans-devanagari-vf-fonts as default font package" +else + echo "langpacks-core-hi installed with default font google-noto-sans-devanagari-vf-fonts package" +fi + +echo "Check ja language" +sudo dnf list --installed|grep google-noto-sans-cjk-vf-fonts +retval=$? +echo $retval +if [ $retval -ne 0 ]; then + echo "langpacks-core-ja failed to install google-noto-sans-cjk-vf-fonts as default font package" +else + echo "langpacks-core-ja installed with default font google-noto-sans-cjk-vf-fonts package" +fi + +echo "Check zh_CN language" +sudo dnf list --installed|grep google-noto-sans-cjk-vf-fonts +retval=$? +echo $retval +if [ $retval -ne 0 ]; then + echo "langpacks-core-zh_CN failed to install google-noto-sans-cjk-vf-fonts as default font package" +else + echo "langpacks-core-zh_CN installed with default font google-noto-sans-cjk-vf-fonts package" +fi + diff --git a/tests/main.fmf b/tests/main.fmf new file mode 100644 index 0000000..a51e055 --- /dev/null +++ b/tests/main.fmf @@ -0,0 +1,4 @@ +require: +- langpacks-core-ja +test: bash ./check-default-font-installed.sh +framework: shell