Compare commits

..

No commits in common. "rawhide" and "f43" have entirely different histories.

8 changed files with 255 additions and 169 deletions

View file

@ -1 +0,0 @@
1

View file

@ -1,43 +0,0 @@
# 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-<LANG>-fonts --noautoremove
```
or
```
sudo dnf remove default-fonts-LANGCODE --noautoremove
```
Though it is recommended to use the default-fonts in general.

View file

@ -1,6 +1,6 @@
Name: langpacks
Version: 4.3
Release: 3%{?dist}
Version: 4.2
Release: 5%{?dist}
Summary: Langpacks meta-package
License: GPL-2.0-or-later
@ -44,17 +44,10 @@ Langpack meta-package to provide individual langpacks packages.
# 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
@ -164,7 +157,8 @@ local langpacks_package_list = {
sans="",
serif="",
mono="" },
recommends={},
recommends={
},
inputmethod="",
meta={ requires={},
recommends={}
@ -174,7 +168,8 @@ local langpacks_package_list = {
sans="",
serif="",
mono="" },
recommends={},
recommends={
},
inputmethod="",
meta={ requires={},
recommends={}
@ -184,7 +179,8 @@ local langpacks_package_list = {
sans="",
serif="",
mono="" },
recommends={},
recommends={
},
inputmethod="",
meta={ requires={},
recommends={}
@ -228,7 +224,8 @@ local langpacks_package_list = {
sans="",
serif="",
mono="" },
recommends={},
recommends={
},
inputmethod="",
meta={ requires={},
recommends={}
@ -238,7 +235,8 @@ local langpacks_package_list = {
sans="",
serif="",
mono="" },
recommends={},
recommends={
},
inputmethod="",
meta={ requires={},
recommends={}
@ -248,7 +246,8 @@ local langpacks_package_list = {
sans="google-noto-sans-cherokee-vf-fonts",
serif="",
mono="" },
recommends={},
recommends={
},
inputmethod="",
meta={ requires={},
recommends={}
@ -258,7 +257,8 @@ local langpacks_package_list = {
sans="",
serif="",
mono="" },
recommends={},
recommends={
},
inputmethod="",
meta={ requires={},
recommends={}
@ -268,7 +268,8 @@ local langpacks_package_list = {
sans="",
serif="",
mono="" },
recommends={},
recommends={
},
inputmethod="",
meta={ requires={},
recommends={}
@ -278,7 +279,8 @@ local langpacks_package_list = {
sans="",
serif="",
mono="" },
recommends={},
recommends={
},
inputmethod="",
meta={ requires={},
recommends={}
@ -288,7 +290,8 @@ local langpacks_package_list = {
sans="",
serif="",
mono="" },
recommends={},
recommends={
},
inputmethod="",
meta={ requires={},
recommends={}
@ -298,7 +301,8 @@ local langpacks_package_list = {
sans="google-noto-sans-thaana-vf-fonts",
serif="",
mono="" },
recommends={},
recommends={
},
inputmethod="",
meta={ requires={},
recommends={}
@ -308,7 +312,8 @@ local langpacks_package_list = {
sans="",
serif="",
mono="" },
recommends={},
recommends={
},
inputmethod="",
meta={ requires={},
recommends={}
@ -318,7 +323,8 @@ local langpacks_package_list = {
sans="",
serif="",
mono="" },
recommends={},
recommends={
},
inputmethod="",
meta={ requires={},
recommends={}
@ -341,7 +347,8 @@ local langpacks_package_list = {
sans="",
serif="",
mono="" },
recommends={},
recommends={
},
inputmethod="",
meta={ requires={},
recommends={}
@ -351,7 +358,8 @@ local langpacks_package_list = {
sans="",
serif="",
mono="" },
recommends={},
recommends={
},
inputmethod="",
meta={ requires={},
recommends={}
@ -361,7 +369,8 @@ local langpacks_package_list = {
sans="",
serif="",
mono="" },
recommends={},
recommends={
},
inputmethod="",
meta={ requires={},
recommends={}
@ -371,7 +380,8 @@ local langpacks_package_list = {
sans="",
serif="",
mono="" },
recommends={},
recommends={
},
inputmethod="",
meta={ requires={},
recommends={}
@ -381,7 +391,8 @@ local langpacks_package_list = {
sans="",
serif="",
mono="" },
recommends={},
recommends={
},
inputmethod="",
meta={ requires={},
recommends={}
@ -402,7 +413,8 @@ local langpacks_package_list = {
sans="",
serif="",
mono="" },
recommends={},
recommends={
},
inputmethod="",
meta={ requires={},
recommends={}
@ -412,7 +424,8 @@ local langpacks_package_list = {
sans="",
serif="",
mono="" },
recommends={},
recommends={
},
inputmethod="",
meta={ requires={},
recommends={}
@ -422,7 +435,8 @@ local langpacks_package_list = {
sans="",
serif="",
mono="" },
recommends={},
recommends={
},
inputmethod="",
meta={ requires={},
recommends={}
@ -432,7 +446,8 @@ local langpacks_package_list = {
sans="",
serif="",
mono="" },
recommends={},
recommends={
},
inputmethod="",
meta={ requires={},
recommends={}
@ -442,7 +457,8 @@ local langpacks_package_list = {
sans="google-noto-sans-gothic-fonts",
serif="",
mono="" },
recommends={},
recommends={
},
inputmethod="",
meta={ requires={},
recommends={}
@ -503,7 +519,8 @@ local langpacks_package_list = {
sans="",
serif="",
mono="" },
recommends={},
recommends={
},
inputmethod="",
meta={ requires={},
recommends={}
@ -513,7 +530,8 @@ local langpacks_package_list = {
sans="",
serif="",
mono="" },
recommends={},
recommends={
},
inputmethod="",
meta={ requires={},
recommends={}
@ -523,7 +541,8 @@ local langpacks_package_list = {
sans="google-noto-sans-armenian-vf-fonts",
serif="google-noto-serif-armenian-vf-fonts",
mono="" },
recommends={},
recommends={
},
inputmethod="",
meta={ requires={},
recommends={}
@ -533,7 +552,8 @@ local langpacks_package_list = {
sans="",
serif="",
mono="" },
recommends={},
recommends={
},
inputmethod="",
meta={ requires={},
recommends={}
@ -543,29 +563,19 @@ local langpacks_package_list = {
sans="",
serif="",
mono="" },
recommends={},
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={},
recommends={
},
inputmethod="",
meta={ requires={},
recommends={}
@ -575,7 +585,8 @@ local langpacks_package_list = {
sans="",
serif="",
mono="" },
recommends={},
recommends={
},
inputmethod="",
meta={ requires={},
recommends={}
@ -585,7 +596,8 @@ local langpacks_package_list = {
sans="google-noto-sans-canadian-aboriginal-vf-fonts",
serif="",
mono="" },
recommends={},
recommends={
},
inputmethod="",
meta={ requires={},
recommends={}
@ -595,11 +607,12 @@ local langpacks_package_list = {
sans="", -- Use core_font_package_list if you want to have common fonts for CJK
serif="",
mono="" },
recommends={},
recommends={
},
inputmethod="ibus-anthy",
meta={ requires={},
recommends={},
fedora_recommends={ "(uim-anthy if uim)" }
fedora_recommends={ "(uim-anthy if uim)" }
},
},
{ lang="kab", fclang="", langname="Kabyle", default={
@ -629,7 +642,8 @@ local langpacks_package_list = {
sans="",
serif="",
mono="" },
recommends={},
recommends={
},
inputmethod="",
meta={ requires={},
recommends={}
@ -673,7 +687,8 @@ local langpacks_package_list = {
sans="", -- Use core_font_package_list if you want to have common fonts for CJK
serif="",
mono="" },
recommends={},
recommends={
},
inputmethod="ibus-hangul",
meta={ requires={},
recommends={}
@ -683,7 +698,8 @@ local langpacks_package_list = {
sans="",
serif="",
mono="" },
recommends={},
recommends={
},
inputmethod="",
meta={ requires={},
recommends={}
@ -693,7 +709,8 @@ local langpacks_package_list = {
sans="google-noto-sans-lao-vf-fonts",
serif="google-noto-serif-lao-vf-fonts",
mono="" },
recommends={},
recommends={
},
inputmethod="",
meta={ requires={},
recommends={}
@ -703,7 +720,8 @@ local langpacks_package_list = {
sans="",
serif="",
mono="" },
recommends={},
recommends={
},
inputmethod="",
meta={ requires={},
recommends={}
@ -713,7 +731,8 @@ local langpacks_package_list = {
sans="",
serif="",
mono="" },
recommends={},
recommends={
},
inputmethod="",
meta={ requires={},
recommends={}
@ -735,7 +754,8 @@ local langpacks_package_list = {
sans="",
serif="",
mono="" },
recommends={},
recommends={
},
inputmethod="",
meta={ requires={},
recommends={}
@ -768,7 +788,8 @@ local langpacks_package_list = {
sans="google-noto-sans-meetei-mayek-vf-fonts",
serif="",
mono="" },
recommends={},
recommends={ "",
},
inputmethod="ibus-m17n",
meta={ requires={},
recommends={}
@ -791,7 +812,8 @@ local langpacks_package_list = {
sans="",
serif="",
mono="" },
recommends={},
recommends={
},
inputmethod="",
meta={ requires={},
recommends={}
@ -801,7 +823,8 @@ local langpacks_package_list = {
sans="sil-padauk-fonts",
serif="",
mono="" },
recommends={},
recommends={
},
inputmethod="",
meta={ requires={},
recommends={}
@ -811,7 +834,8 @@ local langpacks_package_list = {
sans="",
serif="",
mono="" },
recommends={},
recommends={
},
inputmethod="",
meta={ requires={},
recommends={}
@ -834,7 +858,8 @@ local langpacks_package_list = {
sans="",
serif="",
mono="" },
recommends={},
recommends={
},
inputmethod="",
meta={ requires={},
recommends={}
@ -844,7 +869,8 @@ local langpacks_package_list = {
sans="",
serif="",
mono="" },
recommends={},
recommends={
},
inputmethod="",
meta={ requires={},
recommends={}
@ -854,7 +880,8 @@ local langpacks_package_list = {
sans="google-noto-sans-nko-fonts",
serif="",
mono="" },
recommends={},
recommends={
},
inputmethod="",
meta={ requires={},
recommends={}
@ -864,7 +891,8 @@ local langpacks_package_list = {
sans="",
serif="",
mono="" },
recommends={},
recommends={
},
inputmethod="",
meta={ requires={},
recommends={}
@ -1528,12 +1556,10 @@ local function defappstream(table)
sdf = defappstream_metabody(sdf, "cjk", "Chinese/Japanese/Korean")
for i = 1, #table do
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.")
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
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
rpm.define("langpacks_metainfo_lpc " .. defappstream_close(slpc))
@ -1565,7 +1591,6 @@ for i = 1, #langpacks_package_list do
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
@ -1647,22 +1672,16 @@ for i = 1, #langpacks_package_list do
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)
deffontpkg("langpacks-fonts-" .. lang, "extra fonts", langname, append_obsolete(extra_deps, "default-fonts-extra-" .. lang))
end
defcorepkg(lang, fclang, langname, im)
--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
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
--Generate AppStream files
@ -1774,19 +1793,6 @@ DESTDIR=%{buildroot} appstream-util split-appstream org.fedoraproject.default-fo
DESTDIR=%{buildroot} appstream-util split-appstream org.fedoraproject.langpacks-fonts.xml
%changelog
* Thu Jul 16 2026 Fedora Release Engineering <releng@fedoraproject.org> - 4.3-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild
* Tue May 12 2026 Parag Nemade <pnemade AT redhat DOT com> - 4.3-2
- Add functionality to only generate default-fonts for any language
* Mon Mar 02 2026 Jens Petersen <petersen@redhat.com> - 4.3-1
- add ii langpack for Sichuan Yi (Nuosu)
- add README.md (#2237646)
* Fri Jan 16 2026 Fedora Release Engineering <releng@fedoraproject.org> - 4.2-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
* Thu Jul 24 2025 Fedora Release Engineering <releng@fedoraproject.org> - 4.2-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild

View file

@ -1,5 +0,0 @@
summary: Basic smoke test
discover:
how: fmf
execute:
how: tmt

28
tests/check-default-font-installed.sh Executable file → Normal file
View file

@ -1,36 +1,34 @@
#!/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
for pkg in `cat /tmp/langpacks-packages-list.txt`; do
sudo dnf install $pkg -y --quiet
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"
echo "$pkg is not installed"
else
echo "langpacks-core-hi installed with default font google-noto-sans-devanagari-vf-fonts package"
echo "$pkg is successfully installed"
fi
done
echo "Check ja language"
sudo dnf list --installed|grep google-noto-sans-cjk-vf-fonts
# Check hi language
sudo dnf list installed|grep lohit-devanagari-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"
echo "default-fonts-hi failed to install lohit-devanagari-fonts as default font package"
else
echo "langpacks-core-ja installed with default font google-noto-sans-cjk-vf-fonts package"
echo "default-fonts-hi installed with default font lohit-devanagari-fonts package"
fi
echo "Check zh_CN language"
sudo dnf list --installed|grep google-noto-sans-cjk-vf-fonts
# 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"
echo "default-fonts-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"
echo "default-fonts-zh_CN installed with default font google-noto-sans-cjk-vf-fonts package"
fi

View file

@ -0,0 +1,96 @@
default-fonts-af
default-fonts-am
default-fonts-ar
default-fonts-as
default-fonts-ast
default-fonts-be
default-fonts-bg
default-fonts-bn
default-fonts-bo
default-fonts-br
default-fonts-bs
default-fonts-ca
default-fonts-chr
default-fonts-cs
default-fonts-cy
default-fonts-da
default-fonts-de
default-fonts-dv
default-fonts-dz
default-fonts-el
default-fonts-en
default-fonts-eo
default-fonts-es
default-fonts-et
default-fonts-eu
default-fonts-fa
default-fonts-fi
default-fonts-fr
default-fonts-ga
default-fonts-gl
default-fonts-got
default-fonts-gu
default-fonts-he
default-fonts-hi
default-fonts-hr
default-fonts-hu
default-fonts-hy
default-fonts-ia
default-fonts-id
default-fonts-is
default-fonts-it
default-fonts-iu
default-fonts-ja
default-fonts-ka
default-fonts-kab
default-fonts-kk
default-fonts-km
default-fonts-kn
default-fonts-ko
default-fonts-ku
default-fonts-lo
default-fonts-lt
default-fonts-lv
default-fonts-mai
default-fonts-mk
default-fonts-ml
default-fonts-mr
default-fonts-ms
default-fonts-my
default-fonts-nb
default-fonts-ne
default-fonts-nl
default-fonts-nn
default-fonts-nqo
default-fonts-nr
default-fonts-nso
default-fonts-or
default-fonts-pa
default-fonts-pl
default-fonts-pt
default-fonts-ro
default-fonts-ru
default-fonts-si
default-fonts-sk
default-fonts-sl
default-fonts-sq
default-fonts-sr
default-fonts-ss
default-fonts-sv
default-fonts-syr
default-fonts-ta
default-fonts-te
default-fonts-th
default-fonts-tn
default-fonts-tr
default-fonts-ts
default-fonts-uk
default-fonts-ur
default-fonts-ve
default-fonts-vi
default-fonts-xh
default-fonts-yi
default-fonts-zh_CN
default-fonts-zh_HK
default-fonts-zh_TW
default-fonts-zu

View file

@ -1,4 +0,0 @@
require:
- langpacks-core-ja
test: bash ./check-default-font-installed.sh
framework: shell

39
tests/tests.yml Normal file
View file

@ -0,0 +1,39 @@
- hosts: localhost
vars:
- artifacts: "{{ lookup('env', 'TEST_ARTIFACTS')|default('./artifacts', true) }}"
tags:
- classic
remote_user: root
tasks:
- name: Install required packages
dnf:
name:
- langpacks-core-hi
- langpacks-core-zh_CN
- name: Install the test files
copy: src={{ item.file }} dest=/tmp/{{ item.dest }} mode=0755
with_items:
- {file: check-default-font-installed.sh, dest: check-default-font-installed.sh }
- name: Install the test data files
copy: src={{ item.file }} dest=/tmp/{{ item.dest }} mode=0644
with_items:
- {file: langpacks-packages-list.txt, dest: langpacks-packages-list.txt }
- name: Test block
block:
- name: Execute the tests
shell: |
/tmp/check-default-font-installed.sh &> /tmp/test.log && result=pass || result=fail
echo -e "results:\n- {result: $result, test: simple}" > /tmp/results.yml
always:
- name: Pull out the logs
fetch:
dest: "{{ artifacts }}/"
src: "{{ item }}"
flat: yes
with_items:
- /tmp/test.log
- /tmp/results.yml