The following change keeps the glibc-headers package identical in both
content and file lists across multilibs. I add in a specific comment
stating why we want it this way. To reiterate we do it to reduce download
size (allowing any glibc-headers package to be installed), and to keep
from having glibc-devel packages overlap files (even though rpm should handle
identical content correctly).
The strongest argument to date for keeping glibc-headers is to reduce
download size during install.
I've committed this to rawhide.
Cheers
Carlos.
diff --git a/glibc.spec b/glibc.spec
index 4390557..2f6180b 100644
--- a/glibc.spec
+++ b/glibc.spec
@@ -1,6 +1,6 @@
%define glibcsrcdir glibc-2.21-357-gb40a4e1
%define glibcversion 2.21.90
-%define glibcrelease 15%{?dist}
+%define glibcrelease 16%{?dist}
# Pre-release tarballs are pulled in from git using a command that is
# effectively:
#
@@ -95,7 +95,7 @@
Summary: The GNU libc libraries
Name: glibc
Version: %{glibcversion}
-Release: %{glibcrelease}.1
+Release: %{glibcrelease}
# GPLv2+ is used in a bunch of programs, LGPLv2+ is used for libraries.
# Things that are linked directly into dynamically linked programs
# and shared libraries (e.g. crt files, lib*_nonshared.a) have an additional
@@ -419,6 +419,13 @@ which is highly discouraged.
##############################################################################
# glibc "headers" sub-package
+# - The headers package includes all common headers that are shared amongst
+# the multilib builds. It was created to reduce the download size, and
+# thus avoid downloading one header package per multilib. The package is
+# identical both in content and file list, any difference is an error.
+# Files like gnu/stubs.h which have gnu/stubs-32.h (i686) and gnu/stubs-64.h
+# are included in glibc-headers, but the -32 and -64 files are in their
+# respective i686 and x86_64 devel packages.
##############################################################################
%package headers
Summary: Header files for development using standard C libraries.
@@ -1169,13 +1176,17 @@ done
# Put the info files into the devel file list.
grep '%{_infodir}' < rpm.filelist | grep -v '%{_infodir}/dir' > devel.filelist
-# Put the stub headers into the devel file list.
-grep '%{_prefix}/include/gnu/stubs-[^.]\+\.h' < rpm.filelist >> devel.filelist || :
-
+# The glibc-headers package includes only common files which are identical
+# across all multilib packages. We must keep gnu/stubs.h and gnu/lib-names.h
+# in the glibc-headers package, but the -32, -64, -64-v1, and -64-v2 versions
+# go into the development packages.
+grep '%{_prefix}/include/gnu/stubs-.*\.h$' < rpm.filelist >> devel.filelist || :
+grep '%{_prefix}/include/gnu/lib-names-.*\.h$' < rpm.filelist >> devel.filelist || :
# Put the include files into headers file list.
-grep '%{_prefix}/include' < rpm.filelist |
- egrep -v '%{_prefix}/include/(linuxthreads|gnu/stubs-[^.]+\.h)' \
- > headers.filelist
+grep '%{_prefix}/include' < rpm.filelist \
+ | egrep -v '%{_prefix}/include/(linuxthreads|gnu/stubs-.*\.h$)' \
+ | egrep -v '%{_prefix}/include/(linuxthreads|gnu/lib-names-.*\.h$)' \
+ > headers.filelist
# Remove partial (lib*_p.a) static libraries, include files, and info files from
# the core glibc package.
@@ -1814,6 +1825,11 @@ rm -f *.filelist*
%endif
%changelog
+* Wed Jun 17 2015 Carlos O'Donell <carlos(a)redhat.com> - 2.21.90-16
+- Move split out architecture-dependent header files into devel package
+ and keep generic variant in headers package, thus keeping headers package
+ content and file list identical across multilib rpms.
+
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.21.90-15.1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
---