From 08b46f792b577be02fb38d8ce335bd2e1aaa1530 Mon Sep 17 00:00:00 2001 From: Akira TAGOH Date: Mon, 10 Jul 2023 17:31:06 +0900 Subject: [PATCH] Integrate default-fonts-core-sans and default-fonts-LL only when they are a part of it. --- langpacks.spec | 46 +++++++++++++++++++++++++++++++++++++++------- 1 file changed, 39 insertions(+), 7 deletions(-) diff --git a/langpacks.spec b/langpacks.spec index fe66e1d..fba5fcc 100644 --- a/langpacks.spec +++ b/langpacks.spec @@ -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- -- @@ -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- @@ -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- 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- -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