Rework filelist construction
Eliminate most pattern matching and list files explicitly. Two
common exceptions are modeled explicitly: libmvec (additional shared
object and static library), libnldbl (additional shared object).
To implement glibc-headers-* and glibc-gconv-extra, pattern matching
is still used, but with helper shell functions that allow splitting
the matching and non-matching files into separate list files. Some
complications arise because the build for glibc32.x86_64 installs
header files into /usr/include that shouldn't land in the regular
development packages.
The remaining differences are bug fixes for directory ownership.
/usr/libexec/glibc-benchtests is now owned by glibc-benchtests.
/lib64/glibc-hwcaps is now owned by glibc.ppc64le.
Differences can be checked with this script:
mkdir -p filelist
for x in "$@" ; do
target="$(rpm -qp --qf 'filelist/%{name}.%{arch}.txt' "$x")"
rpm -qp --qf '[%{filenames} %{filemodes:perms} (%{fileflags:fflags})(%{fileverifyflags:hex}) \{%{filecaps}\} %{fileusername} %{filegroupname}\n]' "$x" > "$target"
done
Note: Delete the *.src.rpm files because %{arch} has unexpected
results for them.