The package rpms/glibc.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/glibc.git/commit/?id=0a6fc45aa5d9....
Change:
+%ifnarch %{auxarches}
Thanks.
Full change:
============
commit 0a6fc45aa5d9bbd96da38d4bef924e31f75f12c5
Author: Florian Weimer <fweimer(a)redhat.com>
Date: Fri Oct 6 15:25:50 2017 +0200
Rewrite langpack generation Lua
The existing shell-based approach required super-linear processing
time for the SUPPORTED file.
diff --git a/glibc.spec b/glibc.spec
index 271db37..7ba34ae 100644
--- a/glibc.spec
+++ b/glibc.spec
@@ -617,36 +617,91 @@ The sources for all locales provided in the language packs.
If you are building custom locales you will most likely use
these sources as the basis for your new locale.
-%define lang_package()\
-%package langpack-%{1}\
-Summary: Locale data for %{1}\
-Provides: glibc-langpack = %{version}-%{release}\
-Requires: %{name} = %{version}-%{release}\
-Requires: %{name}-common = %{version}-%{release}\
-%define supplements_list %(cat %{SOURCE11} | grep ^%{1}_ | cut -d / -f 1 | cut -d @ -f 1
| cut -d . -f 1 | sort -u | tr "\\\\n" " " | sed 's/ $//' |
sed 's/ / or langpacks-/g' | sed 's/^/ or langpacks-/')\
-Supplements: (glibc = %{version}-%{release} and (langpacks-%{1}%{supplements_list}))\
-Group: System Environment/Base\
-%description langpack-%{1}\
-The glibc-langpack-%{1} package includes the basic information required\
-to support the %{1} language in your applications.\
-%ifnarch %{auxarches}\
-%files -f langpack-%{1}.filelist langpack-%{1}\
-%defattr(-,root,root)\
-%endif\
-%{nil}
-
-# language_list will contain a list of all supported language
-# names in iso-639 format, i.e. something like "aa af ... yue zh zu"
-# We add "eo" (Esperanto) manually because currently glibc has no
-# Esperanto locale in SUPPORTED but translations for Esperanto exist.
-# Therefore, we want a glibc-langpack-eo sub-package containing these
-# translations.
-%define language_list eo %(cat %{SOURCE11} | grep -E '^[a-z]+_' | cut -d _ -f 1
| sort -u | tr "\\\\n" " " | sed 's/ $//')
-
%{lua:
-local languages = rpm.expand("%language_list")
-string.gsub(languages, "(%a+)",
- function(i) print(rpm.expand("%lang_package "..i..""))
end)
+-- Array of languages (ISO-639 codes).
+local languages = {}
+-- Dictionary from language codes (as in the languages array) to arrays
+-- of regions.
+local supplements = {}
+do
+ -- Parse the SUPPORTED file. Eliminate duplicates.
+ local lang_region_seen = {}
+ for line in io.lines(rpm.expand("%{SOURCE11}")) do
+ -- Match lines which contain a language (eo) or language/region
+ -- (en_US) strings.
+ local lang_region = string.match(line, "^([a-z][^/@.]+)")
+ if lang_region ~= nil then
+ if lang_region_seen[lang_region] == nil then
+ lang_region_seen[lang_region] = true
+
+ -- Split language/region pair.
+ local lang, region = string.match(lang_region, "^(.+)_(.+)")
+ if lang == nil then
+ -- Region is missing, use only the language.
+ lang = lang_region
+ end
+ local suppl = supplements[lang]
+ if suppl == nil then
+ suppl = {}
+ supplements[lang] = suppl
+ -- New language not seen before.
+ languages[#languages + 1] = lang
+ end
+ if region ~= nil then
+ -- New region because of the check against
+ -- lang_region_seen above.
+ suppl[#suppl + 1] = region
+ end
+ end
+ end
+ end
+ -- Sort for determinism.
+ table.sort(languages)
+ for _, supples in pairs(supplements) do
+ table.sort(supplements)
+ end
+end
+
+-- Compute the Supplements: list for a language, based on the regions.
+local function compute_supplements(lang)
+ result = "langpacks-" .. lang
+ regions = supplements[lang]
+ if regions ~= nil then
+ for i = 1, #regions do
+ result = result .. " or langpacks-" .. lang .. "_" .. regions[i]
+ end
+ end
+ return result
+end
+
+-- Emit the definition of a language pack package.
+local function lang_package(lang)
+ local suppl = compute_supplements(lang)
+ print(rpm.expand([[
+
+%package langpack-]]..lang..[[
+
+Summary: Locale data for ]]..lang..[[
+
+Provides: glibc-langpack = %{version}-%{release}
+Requires: %{name} = %{version}-%{release}
+Requires: %{name}-common = %{version}-%{release}
+Supplements: (glibc = %{version}-%{release} and (]]..suppl..[[))
+%description langpack-]]..lang..[[
+
+The glibc-langpack-]]..lang..[[ package includes the basic information required
+to support the ]]..lang..[[ language in your applications.
+%ifnarch %{auxarches}
+%files -f langpack-]]..lang..[[.filelist langpack-]]..lang..[[
+
+%defattr(-,root,root)
+%endif
+]]))
+end
+
+for i = 1, #languages do
+ lang_package(languages[i])
+end
}
# The glibc-all-langpacks provides the virtual glibc-langpack,