From b61eb49f301ad1e476c2ab99445fa0e6c7287f2e Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Dec 04 2021 06:54:40 +0000 Subject: import glibc-2.28-174.el8 --- diff --git a/SOURCES/SUPPORTED b/SOURCES/SUPPORTED index 952f13d..a4bf79c 100644 --- a/SOURCES/SUPPORTED +++ b/SOURCES/SUPPORTED @@ -159,6 +159,7 @@ en_SG/ISO-8859-1 \ en_US.UTF-8/UTF-8 \ en_US/ISO-8859-1 \ en_US.ISO-8859-15/ISO-8859-15 \ +en_US@ampm.UTF-8/UTF-8 \ en_ZA.UTF-8/UTF-8 \ en_ZA/ISO-8859-1 \ en_ZM/UTF-8 \ diff --git a/SOURCES/glibc-rh1934162-1.patch b/SOURCES/glibc-rh1934162-1.patch new file mode 100644 index 0000000..3a50009 --- /dev/null +++ b/SOURCES/glibc-rh1934162-1.patch @@ -0,0 +1,159 @@ +From 332421312576bd7095e70589154af99b124dd2d1 Mon Sep 17 00:00:00 2001 +From: Carlos O'Donell +Date: Fri, 12 Mar 2021 16:44:47 +0100 +Subject: elf: Always set l in _dl_init_paths (bug 23462) + +After d1d5471579eb0426671bf94f2d71e61dfb204c30 ("Remove dead +DL_DST_REQ_STATIC code.") we always setup the link map l to make the +static and shared cases the same. The bug is that in elf/dl-load.c +(_dl_init_paths) we conditionally set l only in the #ifdef SHARED +case, but unconditionally use it later. The simple solution is to +remove the #ifdef SHARED conditional, because it's no longer needed, +and unconditionally setup l for both the static and shared cases. A +regression test is added to run a static binary with +LD_LIBRARY_PATH='$ORIGIN' which crashes before the fix and runs after +the fix. + +Co-Authored-By: Florian Weimer + +diff --git a/elf/Makefile b/elf/Makefile +--- a/elf/Makefile 2021-11-02 16:28:14.720143774 -0400 ++++ b/elf/Makefile 2021-11-02 18:42:38.763843571 -0400 +@@ -151,7 +151,8 @@ endif + tests-static-normal := tst-leaks1-static tst-array1-static tst-array5-static \ + tst-dl-iter-static \ + tst-tlsalign-static tst-tlsalign-extern-static \ +- tst-linkall-static tst-env-setuid tst-env-setuid-tunables ++ tst-linkall-static tst-env-setuid tst-env-setuid-tunables \ ++ tst-dst-static + tests-static-internal := tst-tls1-static tst-tls2-static \ + tst-ptrguard1-static tst-stackguard1-static \ + tst-tls1-static-non-pie tst-libc_dlvsym-static +@@ -1811,3 +1812,5 @@ $(objpfx)tst-glibc-hwcaps-mask.out: \ + # Generic dependency for sysdeps implementation of + # tst-glibc-hwcaps-cache. + $(objpfx)tst-glibc-hwcaps-cache.out: $(objpfx)tst-glibc-hwcaps ++ ++tst-dst-static-ENV = LD_LIBRARY_PATH='$$ORIGIN' +diff --git a/elf/dl-load.c b/elf/dl-load.c +index 9e2089cfaa..376a2e64d6 100644 +--- a/elf/dl-load.c ++++ b/elf/dl-load.c +@@ -758,50 +758,45 @@ _dl_init_paths (const char *llp, const char *source, + max_dirnamelen = SYSTEM_DIRS_MAX_LEN; + *aelem = NULL; + +-#ifdef SHARED + /* This points to the map of the main object. */ + l = GL(dl_ns)[LM_ID_BASE]._ns_loaded; +- if (l != NULL) ++ assert (l->l_type != lt_loaded); ++ ++ if (l->l_info[DT_RUNPATH]) ++ { ++ /* Allocate room for the search path and fill in information ++ from RUNPATH. */ ++ decompose_rpath (&l->l_runpath_dirs, ++ (const void *) (D_PTR (l, l_info[DT_STRTAB]) ++ + l->l_info[DT_RUNPATH]->d_un.d_val), ++ l, "RUNPATH"); ++ /* During rtld init the memory is allocated by the stub malloc, ++ prevent any attempt to free it by the normal malloc. */ ++ l->l_runpath_dirs.malloced = 0; ++ ++ /* The RPATH is ignored. */ ++ l->l_rpath_dirs.dirs = (void *) -1; ++ } ++ else + { +- assert (l->l_type != lt_loaded); ++ l->l_runpath_dirs.dirs = (void *) -1; + +- if (l->l_info[DT_RUNPATH]) ++ if (l->l_info[DT_RPATH]) + { + /* Allocate room for the search path and fill in information +- from RUNPATH. */ +- decompose_rpath (&l->l_runpath_dirs, ++ from RPATH. */ ++ decompose_rpath (&l->l_rpath_dirs, + (const void *) (D_PTR (l, l_info[DT_STRTAB]) +- + l->l_info[DT_RUNPATH]->d_un.d_val), +- l, "RUNPATH"); +- /* During rtld init the memory is allocated by the stub malloc, +- prevent any attempt to free it by the normal malloc. */ +- l->l_runpath_dirs.malloced = 0; +- +- /* The RPATH is ignored. */ +- l->l_rpath_dirs.dirs = (void *) -1; ++ + l->l_info[DT_RPATH]->d_un.d_val), ++ l, "RPATH"); ++ /* During rtld init the memory is allocated by the stub ++ malloc, prevent any attempt to free it by the normal ++ malloc. */ ++ l->l_rpath_dirs.malloced = 0; + } + else +- { +- l->l_runpath_dirs.dirs = (void *) -1; +- +- if (l->l_info[DT_RPATH]) +- { +- /* Allocate room for the search path and fill in information +- from RPATH. */ +- decompose_rpath (&l->l_rpath_dirs, +- (const void *) (D_PTR (l, l_info[DT_STRTAB]) +- + l->l_info[DT_RPATH]->d_un.d_val), +- l, "RPATH"); +- /* During rtld init the memory is allocated by the stub +- malloc, prevent any attempt to free it by the normal +- malloc. */ +- l->l_rpath_dirs.malloced = 0; +- } +- else +- l->l_rpath_dirs.dirs = (void *) -1; +- } ++ l->l_rpath_dirs.dirs = (void *) -1; + } +-#endif /* SHARED */ + + if (llp != NULL && *llp != '\0') + { +diff --git a/elf/tst-dst-static.c b/elf/tst-dst-static.c +new file mode 100644 +index 0000000000..56eb371c96 +--- /dev/null ++++ b/elf/tst-dst-static.c +@@ -0,0 +1,32 @@ ++/* Test DST expansion for static binaries doesn't carsh. Bug 23462. ++ Copyright (C) 2021 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++/* The purpose of this test is to exercise the code in elf/dl-loac.c ++ (_dl_init_paths) or thereabout and ensure that static binaries ++ don't crash when expanding DSTs. ++ ++ If the dynamic loader code linked into the static binary cannot ++ handle expanding the DSTs e.g. null-deref on an incomplete link ++ map, then it will crash before reaching main, so the test harness ++ is unnecessary. */ ++ ++int ++main (void) ++{ ++ return 0; ++} diff --git a/SOURCES/glibc-rh1934162-2.patch b/SOURCES/glibc-rh1934162-2.patch new file mode 100644 index 0000000..aad6dab --- /dev/null +++ b/SOURCES/glibc-rh1934162-2.patch @@ -0,0 +1,74 @@ +From 4e6db99c665d3b82a70a3e218860ef087b1555b4 Mon Sep 17 00:00:00 2001 +From: Florian Weimer +Date: Mon, 15 Mar 2021 10:33:43 +0100 +Subject: elf: ld.so --help calls _dl_init_paths without a main map [BZ #27577] + +In this case, use the link map of the dynamic loader itself as +a replacement. This is more than just a hack: if we ever support +DT_RUNPATH/DT_RPATH for the dynamic loader, reporting it for +ld.so --help (without further command line arguments) would be the +right thing to do. + +Fixes commit 332421312576bd7095e70589154af99b124dd2d1 ("elf: Always +set l in _dl_init_paths (bug 23462)"). + +diff --git a/elf/Makefile b/elf/Makefile +index 4c9e63dac9..ba4689a7fa 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -231,7 +231,7 @@ tests += $(tests-execstack-$(have-z-execstack)) + ifeq ($(run-built-tests),yes) + tests-special += $(objpfx)tst-leaks1-mem.out \ + $(objpfx)tst-leaks1-static-mem.out $(objpfx)noload-mem.out \ +- $(objpfx)tst-ldconfig-X.out ++ $(objpfx)tst-ldconfig-X.out $(objpfx)tst-rtld-help.out + endif + tlsmod17a-suffixes = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + tlsmod18a-suffixes = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 +@@ -409,7 +409,8 @@ endif + ifeq (yes,$(build-shared)) + ifeq ($(run-built-tests),yes) + tests-special += $(objpfx)tst-pathopt.out $(objpfx)tst-rtld-load-self.out \ +- $(objpfx)tst-rtld-preload.out $(objpfx)argv0test.out ++ $(objpfx)tst-rtld-preload.out $(objpfx)argv0test.out \ ++ $(objpfx)tst-rtld-help.out + endif + tests-special += $(objpfx)check-textrel.out $(objpfx)check-execstack.out \ + $(objpfx)check-wx-segment.out \ +@@ -1814,3 +1815,16 @@ $(objpfx)list-tunables.out: tst-rtld-list-tunables.sh $(objpfx)ld.so + $(objpfx)tst-glibc-hwcaps-cache.out: $(objpfx)tst-glibc-hwcaps + + tst-dst-static-ENV = LD_LIBRARY_PATH='$$ORIGIN' ++ ++$(objpfx)tst-rtld-help.out: $(objpfx)ld.so ++ $(test-wrapper) $(rtld-prefix) --help > $@; \ ++ status=$$?; \ ++ echo "info: ld.so exit status: $$status" >> $@; \ ++ if ! grep -q 'Legacy HWCAP subdirectories under library search path directories' $@; then \ ++ echo "error: missing subdirectory pattern" >> $@; \ ++ if test $$status -eq 0; then \ ++ status=1; \ ++ fi; \ ++ fi; \ ++ (exit $$status); \ ++ $(evaluate-test) +diff --git a/elf/dl-load.c b/elf/dl-load.c +index 376a2e64d6..2f760503c5 100644 +--- a/elf/dl-load.c ++++ b/elf/dl-load.c +@@ -758,8 +758,14 @@ _dl_init_paths (const char *llp, const char *source, + max_dirnamelen = SYSTEM_DIRS_MAX_LEN; + *aelem = NULL; + +- /* This points to the map of the main object. */ ++ /* This points to the map of the main object. If there is no main ++ object (e.g., under --help, use the dynamic loader itself as a ++ stand-in. */ + l = GL(dl_ns)[LM_ID_BASE]._ns_loaded; ++#ifdef SHARED ++ if (l == NULL) ++ l = &GL (dl_rtld_map); ++#endif + assert (l->l_type != lt_loaded); + + if (l->l_info[DT_RUNPATH]) diff --git a/SOURCES/glibc-rh2000374.patch b/SOURCES/glibc-rh2000374.patch new file mode 100644 index 0000000..1d510ae --- /dev/null +++ b/SOURCES/glibc-rh2000374.patch @@ -0,0 +1,205 @@ +Bug RHEL #2000374 +Bugs Upstream #24046, #25923 + +This patch provides 12-hour time for the English language UTF-8 locale as a +new locale en_US@ampm.UTF-8. + +Two upstream commits were applied to en_US to create the new file en_US@ampm: + Upstream commit: 7395f3a0efad9fc51bb54fa383ef6524702e0c49 + Upstream commit: 8cde977077b3568310c743b21a905ca9ab286724 + +en_US remains unchanged and the new file en_US@ampm is now supported. + + +diff -Nrup a/localedata/locales/en_US@ampm b/localedata/locales/en_US@ampm +--- a/localedata/locales/en_US@ampm 1969-12-31 19:00:00.000000000 -0500 ++++ b/localedata/locales/en_US@ampm 2021-11-17 17:19:15.338720307 -0500 +@@ -0,0 +1,177 @@ ++comment_char % ++escape_char / ++ ++% This file is part of the GNU C Library and contains locale data. ++% The Free Software Foundation does not claim any copyright interest ++% in the locale data contained in this file. The foregoing does not ++% affect the license of the GNU C Library as a whole. It does not ++% exempt you from the conditions of the license if your use would ++% otherwise be governed by that license. ++ ++% Locale for English locale in the USA ++% Contributed by Ulrich Drepper , 2000 ++ ++LC_IDENTIFICATION ++title "English locale for the USA" ++source "Free Software Foundation, Inc." ++address "http:////www.gnu.org//software//libc//" ++contact "" ++email "bug-glibc-locales@gnu.org" ++tel "" ++fax "" ++language "American English" ++territory "United States" ++revision "1.0" ++date "2000-06-24" ++ ++category "i18n:2012";LC_IDENTIFICATION ++category "i18n:2012";LC_CTYPE ++category "i18n:2012";LC_COLLATE ++category "i18n:2012";LC_TIME ++category "i18n:2012";LC_NUMERIC ++category "i18n:2012";LC_MONETARY ++category "i18n:2012";LC_MESSAGES ++category "i18n:2012";LC_PAPER ++category "i18n:2012";LC_NAME ++category "i18n:2012";LC_ADDRESS ++category "i18n:2012";LC_TELEPHONE ++category "i18n:2012";LC_MEASUREMENT ++END LC_IDENTIFICATION ++ ++LC_CTYPE ++copy "en_GB" ++END LC_CTYPE ++ ++LC_COLLATE ++ ++% Copy the template from ISO/IEC 14651 ++copy "iso14651_t1" ++ ++END LC_COLLATE ++ ++LC_MONETARY ++int_curr_symbol "USD " ++currency_symbol "$" ++mon_decimal_point "." ++mon_thousands_sep "," ++mon_grouping 3;3 ++positive_sign "" ++negative_sign "-" ++int_frac_digits 2 ++frac_digits 2 ++p_cs_precedes 1 ++int_p_sep_by_space 1 ++p_sep_by_space 0 ++n_cs_precedes 1 ++int_n_sep_by_space 1 ++n_sep_by_space 0 ++p_sign_posn 1 ++n_sign_posn 1 ++% ++END LC_MONETARY ++ ++LC_NUMERIC ++decimal_point "." ++thousands_sep "," ++grouping 3;3 ++END LC_NUMERIC ++ ++LC_TIME ++abday "Sun";"Mon";"Tue";"Wed";"Thu";"Fri";"Sat" ++day "Sunday";/ ++ "Monday";/ ++ "Tuesday";/ ++ "Wednesday";/ ++ "Thursday";/ ++ "Friday";/ ++ "Saturday" ++ ++week 7;19971130;1 ++abmon "Jan";"Feb";/ ++ "Mar";"Apr";/ ++ "May";"Jun";/ ++ "Jul";"Aug";/ ++ "Sep";"Oct";/ ++ "Nov";"Dec" ++mon "January";/ ++ "February";/ ++ "March";/ ++ "April";/ ++ "May";/ ++ "June";/ ++ "July";/ ++ "August";/ ++ "September";/ ++ "October";/ ++ "November";/ ++ "December" ++% Appropriate date and time representation (%c) ++d_t_fmt "%a %d %b %Y %r %Z" ++% ++% Appropriate date representation (%x) ++d_fmt "%m//%d//%Y" ++% ++% Appropriate time representation (%X) ++t_fmt "%r" ++% ++% Appropriate AM/PM time representation (%r) ++t_fmt_ampm "%I:%M:%S %p" ++% ++% Appropriate date and time representation for date(1). This is ++% different from d_t_fmt for historical reasons and has been different ++% since 2000 when date_fmt was added as a GNU extension. At the end ++% of 2018 it was adjusted to use 12H time (bug 24046) instead of 24H. ++date_fmt "%a %b %e %r %Z %Y" ++% ++% Strings for AM/PM ++% ++am_pm "AM";"PM" ++END LC_TIME ++ ++LC_MESSAGES ++yesexpr "^[+1yY]" ++noexpr "^[-0nN]" ++yesstr "yes" ++nostr "no" ++END LC_MESSAGES ++ ++LC_PAPER ++height 279 ++width 216 ++END LC_PAPER ++ ++LC_NAME ++name_fmt "%d%t%g%t%m%t%f" ++name_miss "Miss." ++name_mr "Mr." ++name_mrs "Mrs." ++name_ms "Ms." ++END LC_NAME ++ ++ ++LC_ADDRESS ++postal_fmt "%a%N%f%N%d%N%b%N%h %s %e %r%N%T, %S %z%N%c%N" ++country_name "United States" ++country_post "USA" ++country_ab2 "US" ++country_ab3 "USA" ++country_num 840 ++country_car "USA" ++country_isbn 0 ++lang_name "English" ++lang_ab "en" ++lang_term "eng" ++lang_lib "eng" ++END LC_ADDRESS ++ ++LC_TELEPHONE ++tel_int_fmt "+%c (%a) %l" ++tel_dom_fmt "(%a) %l" ++int_select "11" ++int_prefix "1" ++END LC_TELEPHONE ++ ++LC_MEASUREMENT ++% US customary units. ++measurement 2 ++END LC_MEASUREMENT +diff -Nrup a/localedata/SUPPORTED b/localedata/SUPPORTED +--- a/localedata/SUPPORTED 2021-11-17 17:14:33.831631483 -0500 ++++ b/localedata/SUPPORTED 2021-11-17 17:21:16.418188595 -0500 +@@ -159,6 +159,7 @@ en_SG/ISO-8859-1 \ + en_US.UTF-8/UTF-8 \ + en_US/ISO-8859-1 \ + en_US.ISO-8859-15/ISO-8859-15 \ ++en_US@ampm.UTF-8/UTF-8 \ + en_ZA.UTF-8/UTF-8 \ + en_ZA/ISO-8859-1 \ + en_ZM/UTF-8 \ diff --git a/SOURCES/glibc-rh2021452.patch b/SOURCES/glibc-rh2021452.patch index 404296e..3dad2df 100644 --- a/SOURCES/glibc-rh2021452.patch +++ b/SOURCES/glibc-rh2021452.patch @@ -1,8 +1,6 @@ -Based on the following patch posted upstream and awaiting IBM review: -https://sourceware.org/pipermail/libc-alpha/2021-November/132856.html - +commit 98966749f2b418825ff2ea496a0ee89fe63d2cc8 Author: Florian Weimer -Date: Tue Nov 9 18:50:55 2021 +0100 +Date: Wed Nov 10 15:21:37 2021 +0100 s390: Use long branches across object boundaries (jgh instead of jh) @@ -11,8 +9,8 @@ Date: Tue Nov 9 18:50:55 2021 +0100 Analysis of the linker failure was carried out by Nick Clifton. - Tested on a z13 and z15, s390x-linux-gnu only. Reviewed-by: Carlos O'Donell + Reviewed-by: Stefan Liebler diff --git a/sysdeps/s390/memmem-arch13.S b/sysdeps/s390/memmem-arch13.S index b59d60acf0f6aaa0..4faede0cd2f942e3 100644 diff --git a/SPECS/glibc.spec b/SPECS/glibc.spec index 09cbe36..c45e1e3 100644 --- a/SPECS/glibc.spec +++ b/SPECS/glibc.spec @@ -1,6 +1,6 @@ %define glibcsrcdir glibc-2.28 %define glibcversion 2.28 -%define glibcrelease 170%{?dist} +%define glibcrelease 174%{?dist} # Pre-release tarballs are pulled in from git using a command that is # effectively: # @@ -780,6 +780,9 @@ Patch602: glibc-rh1983203-1.patch Patch603: glibc-rh1983203-2.patch Patch604: glibc-rh2021452.patch Patch605: glibc-rh1937515.patch +Patch606: glibc-rh1934162-1.patch +Patch607: glibc-rh1934162-2.patch +Patch608: glibc-rh2000374.patch ############################################################################## # Continued list of core "glibc" package information: @@ -809,11 +812,6 @@ Recommends: (nss_db(x86-32) if nss_db(x86-64)) BuildRequires: gd-devel libpng-devel zlib-devel %endif %if %{with docs} -# Removing texinfo will cause check-safety.sh test to fail because it seems to -# trigger documentation generation based on dependencies. We need to fix this -# upstream in some way that doesn't depend on generating docs to validate the -# texinfo. I expect it's simply the wrong dependency for that target. -BuildRequires: texinfo >= 5.0 %endif %if %{without bootstrap} BuildRequires: libselinux-devel >= 1.33.4-3 @@ -962,6 +960,26 @@ Install glibc-devel if you are going to develop programs which will use the standard C libraries. ############################################################################## +# glibc "doc" sub-package +############################################################################## +%if %{with docs} +%package doc +Summary: Documentation for GNU libc +BuildArch: noarch +Requires: %{name} = %{version}-%{release} + +# Removing texinfo will cause check-safety.sh test to fail because it seems to +# trigger documentation generation based on dependencies. We need to fix this +# upstream in some way that doesn't depend on generating docs to validate the +# texinfo. I expect it's simply the wrong dependency for that target. +BuildRequires: texinfo >= 5.0 + +%description doc +The glibc-doc package contains The GNU C Library Reference Manual in info +format. Additional package documentation is also provided. +%endif + +############################################################################## # glibc "static" sub-package ############################################################################## %package static @@ -1676,6 +1694,9 @@ fi # Compress all of the info files. gzip -9nvf %{glibc_sysroot}%{_infodir}/libc* +# Copy the debugger interface documentation over to the right location +mkdir -p %{glibc_sysroot}%{_docdir}/glibc +cp elf/rtld-debugger-interface.txt %{glibc_sysroot}%{_docdir}/glibc %else rm -f %{glibc_sysroot}%{_infodir}/dir rm -f %{glibc_sysroot}%{_infodir}/libc.info* @@ -1789,7 +1810,14 @@ touch -r %{SOURCE0} %{glibc_sysroot}/etc/ld.so.conf touch -r sunrpc/etc.rpc %{glibc_sysroot}/etc/rpc pushd build-%{target} -$GCC -Os -g -static -o build-locale-archive %{SOURCE1} \ +$GCC -Os -g \ +%ifarch %{pie_arches} + -fPIE \ + -static-pie \ +%else + -static \ +%endif + -o build-locale-archive %{SOURCE1} \ ../build-%{target}/locale/locarchive.o \ ../build-%{target}/locale/md5.o \ ../build-%{target}/locale/record-status.o \ @@ -1799,12 +1827,6 @@ $GCC -Os -g -static -o build-locale-archive %{SOURCE1} \ install -m 700 build-locale-archive %{glibc_sysroot}%{_prefix}/sbin/build-locale-archive popd -# Lastly copy some additional documentation for the packages. -rm -rf documentation -mkdir documentation -cp timezone/README documentation/README.timezone -cp posix/gai.conf documentation/ - %ifarch s390x # Compatibility symlink mkdir -p %{glibc_sysroot}/lib @@ -1923,6 +1945,8 @@ ar cr %{glibc_sysroot}%{_prefix}/%{_lib}/libpthread_nonshared.a # - Files for the nscd subpackage. # * devel.filelist # - Files for the devel subpackage. +# * doc.filelist +# - Files for the documentation subpackage. # * headers.filelist # - Files for the headers subpackage. # * static.filelist @@ -1952,6 +1976,7 @@ touch utils.filelist touch gconv.filelist touch nscd.filelist touch devel.filelist +touch doc.filelist touch headers.filelist touch static.filelist touch libnsl.filelist @@ -2094,15 +2119,10 @@ done # glibc-devel ############################################################################### -%if %{with docs} -# Put the info files into the devel file list, but exclude the generated dir. -grep '%{_infodir}' master.filelist | grep -v '%{_infodir}/dir' > devel.filelist -%endif - # Put some static files into the devel package. grep '%{_libdir}/lib.*\.a' master.filelist \ | grep '/lib\(\(c\|pthread\|nldbl\|mvec\)_nonshared\|g\|ieee\|mcheck\)\.a$' \ - >> devel.filelist + > devel.filelist # Put all of the object files and *.so (not the versioned ones) into the # devel package. @@ -2117,6 +2137,16 @@ sed -i -e '\,libmemusage.so,d' \ devel.filelist ############################################################################### +# glibc-doc +############################################################################### + +%if %{with docs} +# Put the info files into the doc file list, but exclude the generated dir. +grep '%{_infodir}' master.filelist | grep -v '%{_infodir}/dir' > doc.filelist +grep '%{_docdir}' master.filelist >> doc.filelist +%endif + +############################################################################### # glibc-headers ############################################################################### @@ -2158,12 +2188,14 @@ grep '%{_prefix}/sbin' master.filelist \ # multilib-independent. # Exceptions: # - The actual share directory, not owned by us. -# - The info files which go in devel, and the info directory. +# - The info files which go into doc, and the info directory. +# - All documentation files, which go into doc. grep '%{_prefix}/share' master.filelist \ | grep -v \ -e '%{_prefix}/share/info/libc.info.*' \ -e '%%dir %{prefix}/share/info' \ -e '%%dir %{prefix}/share' \ + -e '%{_docdir}' \ >> common.filelist # Add the binary to build locales to the common subpackage. @@ -2652,7 +2684,6 @@ fi %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/cache/ldconfig/aux-cache %attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /etc/ld.so.cache %attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /etc/gai.conf -%doc README NEWS INSTALL elf/rtld-debugger-interface.txt # If rpm doesn't support %license, then use %doc instead. %{!?_licensedir:%global license %%doc} %license COPYING COPYING.LIB LICENSES @@ -2662,8 +2693,6 @@ fi %dir %{_prefix}/lib/locale %dir %{_prefix}/lib/locale/C.utf8 %{_prefix}/lib/locale/C.utf8/* -%doc documentation/README.timezone -%doc documentation/gai.conf %files all-langpacks %attr(0644,root,root) %verify(not md5 size mtime) %{_prefix}/lib/locale/locale-archive.tmpl @@ -2677,6 +2706,10 @@ fi %files -f devel.filelist devel +%if %{with docs} +%files -f doc.filelist doc +%endif + %files -f static.filelist static %files -f headers.filelist headers @@ -2730,6 +2763,22 @@ fi %files -f compat-libpthread-nonshared.filelist -n compat-libpthread-nonshared %changelog +* Thu Nov 25 2021 Arjun Shankar - 2.28-174 +- Introduce new glibc-doc.noarch subpackage (#2021671) +- Move the reference manual info pages from glibc-devel to glibc-doc +- Move debugger interface documentation from glibc to glibc-doc +- Remove unnecessary README, INSTALL, NEWS files from glibc +- Remove unnecessary README.timezone and gai.conf files from glibc-common + +* Wed Nov 17 2021 Patsy Griffin - 2.28-173 +- Add new English-language 12 hour time locale en_US@ampm.UTF-8 (#2000374) + +* Tue Nov 16 2021 Siddhesh Poyarekar - 2.28-172 +- Build build-locale-archive with -static-pie when supported (#1965377) + +* Wed Nov 10 2021 DJ Delorie - 2.28-171 +- elf: Always set link map in _dl_init_paths (#1934162) + * Wed Nov 10 2021 Arjun Shankar - 2.28-170 - x86: Properly disable XSAVE related features when its use is disabled via tunables (#1937515)