Integrate default-fonts-core-sans and default-fonts-LL

only when they are a part of it.
This commit is contained in:
Akira TAGOH 2023-07-10 17:31:06 +09:00
parent 4f5c7fd7d4
commit 08b46f792b

View File

@ -1332,7 +1332,7 @@ end
--
--Package template for fonts metapackage like default-fonts-*
--
local function deffontpkg(pkgname, summary1, summary2, deps)
local function _deffontpkg(pkgname, summary1, summary2, deps, files)
local templ = [[
%package -n %{_pkgname}
Summary: Metapackage to install %{_summary1} for %{_summary2}
@ -1342,22 +1342,41 @@ Summary: Metapackage to install %{_summary1} for %{_summary2}
This package provides %{_summary1} package set(s) for %{_summary2}
%files -n %{_pkgname}
%{_datadir}/metainfo/org.fedoraproject.%{_pkgname}.metainfo.xml
%{_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 defcorefontpkg(target_langs, deps)
local req = ""
local files = {"%{_datadir}/metainfo/org.fedoraproject.default-fonts-core-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])
table.insert(files, "%{_datadir}/metainfo/org.fedoraproject.default-fonts-" .. target_langs[i] .. ".metainfo.xml")
end
_deffontpkg("default-fonts-core-sans", "default sans-serif fonts", "Western characters", build_deps(req, "Requires", drop_duplicate(deps)), files)
end
--
--Package template for langpacks-<lang>
--
@ -1392,7 +1411,8 @@ end
local other_deps = { sans={}, serif={}, mono={} }
local cjk_deps = { sans={}, serif={}, mono={} }
local face = { "sans", "serif", "mono" }
local sans_deps = {}
local core_langs = {}
local core_deps = {}
for i = 1, #langpacks_package_list do
-- dependency list for default-fonts-<lang>
@ -1445,8 +1465,6 @@ for i = 1, #langpacks_package_list do
else
table.insert(other_deps[face[j]], "default-fonts-" .. string.gsub(fclang, "-", "_") .. " = %{version}-%{release}")
end
else
table.insert(sans_deps, "default-fonts-" .. string.gsub(fclang, "-", "_") .. " = %{version}-%{release}")
end
else
for k = 1, #current do
@ -1470,7 +1488,18 @@ for i = 1, #langpacks_package_list do
--Generate extra font package only when lang is recognized by fontconfig
if lowerorth == normlang then
deffontpkg("default-fonts-" .. lang, "default fonts", langname, append_obsolete(default_deps, "langpacks-core-font-" .. lang))
-- Integrate default-fonts-<language code> 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
deffontpkg("default-fonts-" .. lang, "default fonts", langname, append_obsolete(default_deps, "langpacks-core-font-" .. lang))
end
deffontpkg("langpacks-font-" .. lang, "extra fonts", langname, append_obsolete(extra_deps, "default-fonts-extra-" .. lang))
end
defcorepkg(lang, fclang, langname, im)
@ -1489,7 +1518,10 @@ for i = 1, #face do
end
--core font packages except sans - core-sans may want to have special deps to default-fonts-<language code>
deffontpkg("default-fonts-core-sans", "default sans-serif fonts", "Western characters", build_deps("", "Requires", drop_duplicate(sans_deps)))
for i = 1, #core_font_package_list["default"]["sans"] do
table.insert(core_deps, core_font_package_list["default"]["sans"][i])
end
defcorefontpkg(core_langs, core_deps)
local coreface = { "serif", "mono", "emoji", "math" }
for i = 1, #coreface do