# - math/{test-fenv,test-tgmath,test-float,test-ifloat}, debug/backtrace-tst(SEGV) fail on alpha
#
# Conditional build:
-# min_kernel (default is 3.2.0 with arch specific values x32 (3.4.0) aarch64 (3.7.0) ia64 (3.2.18))
+# min_kernel (default is 3.2.0 with arch specific values x32 (3.4.0) aarch64 (3.7.0)
%bcond_without memusage # don't build memusage utility
%bcond_without selinux # without SELinux support (in nscd)
%bcond_with tests # perform "make test"
%bcond_without localedb # don't build localedb-all (is time consuming)
%bcond_with cross # make a cross build, skip native programs
-%bcond_without nss_crypt # disable crypt features based on Mozilla NSS library
%bcond_with bash_nls # use bash NLS in shell scripts (ldd, sotruss); restores /bin/bash dep
%bcond_without cet # Intel Control-flow Enforcement Technology (CET)
-%bcond_with crypt # don't build obsolete libcrypt
#
%ifarch aarch64
%{!?min_kernel:%global min_kernel 3.7.0}
%endif
-%ifarch ia64
-%{!?min_kernel:%global min_kernel 3.2.18}
-%endif
%ifarch x32
%{!?min_kernel:%global min_kernel 3.4.0}
%endif
-%ifnarch aarch64 ia64 x32
+%ifnarch aarch64 x32
%{!?min_kernel:%global min_kernel 3.2.0}
%endif
%ifarch sparc64
%undefine with_memusage
%endif
-%ifnarch i686 %{x8664} x32
+%ifnarch %{x8664}
%undefine with_cet
%endif
%ifnarch %{arm}
%define with_static_pie 1
%endif
-%define core_version 2.38
+%define core_version 2.39
%define llh_version 7:2.6.32.1-1
Summary: GNU libc
Summary(uk.UTF-8): GNU libc версії
Name: glibc
Version: %{core_version}
-Release: 11
+Release: 5
Epoch: 6
License: LGPL v2.1+
Group: Libraries
Source0: https://ftp.gnu.org/gnu/glibc/%{name}-%{version}.tar.xz
-# Source0-md5: 778cce0ea6bf7f84ca8caacf4a01f45b
+# Source0-md5: be81e87f72b5ea2c0ffe2bedfeb680c6
Source2: nscd.init
Source3: nscd.sysconfig
Source4: nscd.logrotate
Source9: nscd.tmpfiles
# use branch.sh to update glibc-git.patch
Patch0: glibc-git.patch
-# Patch0-md5: 7626694ffa506b65bed84158149349f6
+# Patch0-md5: aa35f19b5a327e476cbd7763267c9195
# against GNU TP (libc domain)
#Patch1: %{name}-pl.po-update.patch
Patch2: %{name}-pld.patch
-Patch3: %{name}-crypt-blowfish.patch
+
Patch4: %{name}-no-bash-nls.patch
Patch6: %{name}-paths.patch
-Patch7: fstat.patch
Patch10: %{name}-info.patch
Patch11: %{name}-autoconf.patch
%{?with_selinux:BuildRequires: libselinux-devel >= 1.18}
BuildRequires: linux-libc-headers >= %{llh_version}
BuildRequires: make >= 1:4.0
-%{?with_nss_crypt:BuildRequires: nss-devel >= 1:3.15.1-2}
BuildRequires: perl-base
BuildRequires: python3 >= 1:3.4
BuildRequires: python3-modules >= 1:3.4
Conflicts: rpm < 4.1
Conflicts: util-linux < 2.35.1-2
Conflicts: xorg-driver-video-nvidia-libs < 1:295.33
-ExclusiveArch: i486 i586 i686 pentium3 pentium4 athlon %{x8664} x32 ia64 alpha s390 s390x sparc sparc64 sparcv9 ppc ppc64 armv5tel armv6hl armv7hl armv7hnl aarch64
+ExclusiveArch: i486 i586 i686 pentium3 pentium4 athlon %{x8664} x32 alpha s390 s390x sparc sparc64 sparcv9 ppc ppc64 armv5tel armv6hl armv7hl armv7hnl aarch64
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
# errno, ps_*, __resp, __h_errno symbols
-%define skip_post_check_so libm.so.6 libc_malloc_debug.so.0 libcrypt.so.1 libthread_db.so.1 libresolv.so.2 libnss_db.so.2 libnss_compat.so.2 libnss_hesiod.so.2 libnsl.so.1 librt.so.1
+%define skip_post_check_so libm.so.6 libc_malloc_debug.so.0 libthread_db.so.1 libresolv.so.2 libnss_db.so.2 libnss_compat.so.2 libnss_hesiod.so.2 libnsl.so.1 librt.so.1
# avoid -s here (ld.so must not be stripped to allow any program debugging)
%define filterout_ld (-Wl,)?-[sS] (-Wl,)?--strip.*
%description misc -l pl.UTF-8
Narzędzia i dane używane przez glibc.
-%package libcrypt
-Summary: glibc library for crypt(3)
-Summary(pl.UTF-8): Biblioteka glibc z funkcją crypt(3)
-Group: Libraries
-Requires: %{name} = %{epoch}:%{version}-%{release}
-Provides: %{name}-libcrypt(%{_target_cpu}) = %{epoch}:%{version}-%{release}
-%ifarch %{ix86}
-Provides: %{name}-libcrypt(ix86) = %{epoch}:%{version}-%{release}
-%endif
-Provides: crypt(blowfish)
-
-%description libcrypt
-glibc library for crypt(3).
-
-%description libcrypt -l pl.UTF-8
-Biblioteka glibc z funkcją crypt(3).
-
%package -n ldconfig
Summary: Create shared library cache and maintains symlinks
Summary(de.UTF-8): Erstellt ein shared library cache und verwaltet symlinks
%description -n nss_db -l pl.UTF-8
Moduł NSS glibc wykorzystujący haszowaną bazę danych klucz-wartość.
-%package -n nss_dns
-Summary: BIND NSS glibc module
-Summary(es.UTF-8): Módulo BIND NSS de glibc
-Summary(pl.UTF-8): Moduł BIND NSS glibc
-Group: Base
-Requires: %{name} = %{epoch}:%{version}-%{release}
-
-%description -n nss_dns
-BIND NSS glibc module.
-
-%description -n nss_dns -l es.UTF-8
-Módulo BIND NSS de glibc.
-
-%description -n nss_dns -l pl.UTF-8
-Moduł BIND NSS glibc.
-
-%package -n nss_files
-Summary: Traditional files databases NSS glibc module
-Summary(es.UTF-8): Módulo de tradicionales bases de datos en ficheros para glibc
-Summary(pl.UTF-8): Moduł tradycyjnych plikowych baz danych NSS glibc
-Group: Base
-Requires: %{name} = %{epoch}:%{version}-%{release}
-
-%description -n nss_files
-Traditional files databases NSS glibc module.
-
-%description -n nss_files -l es.UTF-8
-Módulo de tradicionales bases de datos en ficheros para glibc.
-
-%description -n nss_files -l pl.UTF-8
-Moduł tradycyjnych plikowych baz danych NSS glibc.
-
%package -n nss_hesiod
Summary: hesiod NSS glibc module
Summary(es.UTF-8): Módulo hesiod NSS de glibc
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires: %{name}-devel-utils = %{epoch}:%{version}-%{release}
Requires: %{name}-headers = %{epoch}:%{version}-%{release}
-%if %{with crypt}
-Requires: %{name}-libcrypt(%{_target_cpu}) = %{epoch}:%{version}-%{release}
-%else
Requires: libxcrypt-devel >= 4.0.0
-%endif
Provides: %{name}-devel(%{_target_cpu}) = %{epoch}:%{version}-%{release}
%ifarch %{ix86}
Provides: %{name}-devel(ix86) = %{epoch}:%{version}-%{release}
Summary(uk.UTF-8): Статичні бібліотеки glibc
Group: Development/Libraries
Requires: %{name}-devel = %{epoch}:%{version}-%{release}
-%{!?with_crypt:Requires: libxcrypt-static >= 4.0.0}
+Requires: libxcrypt-static >= 4.0.0
Provides: %{name}-static(%{_target_cpu}) = %{epoch}:%{version}-%{release}
%ifarch %{ix86}
Provides: %{name}-static(ix86) = %{epoch}:%{version}-%{release}
%patch0 -p1
%patch2 -p1
-%patch3 -p1
+
%{!?with_bash_nls:%patch4 -p1}
%patch6 -p1
-%patch7 -p1
%patch10 -p1
%patch11 -p1
../%configure \
%if %{with cet}
--enable-cet \
-%endif
-%if %{with crypt}
- --enable-crypt \
%endif
--enable-bind-now \
--enable-hidden-plt \
--enable-kernel="%{min_kernel}" \
- --enable-nss-crypt%{!?with_nss_crypt:=no} \
--enable-obsolete-nsl \
--enable-profile \
--enable-stack-protector=strong \
%{__mv} $RPM_BUILD_ROOT/%{_lib}/libpcprofile.so $RPM_BUILD_ROOT%{_libdir}
# make symlinks across top-level directories absolute
-for l in BrokenLocale anl %{?with_crypt:crypt} c_malloc_debug\
+for l in BrokenLocale anl c_malloc_debug\
%ifarch %{x8664} x32 aarch64
mvec \
%endif
for f in DESIGN-systemtap-probes.txt TODO{,-kernel,-testing}; do
cp -af nptl/$f documentation/$f.nptl
done
-cp -af crypt/README.ufc-crypt ChangeLog* documentation
+cp -af ChangeLog* documentation
# Collect locale files and mark them with %%lang()
echo '%defattr(644,root,root,755)' > glibc.lang
# tzm (iso-codes)
# vec (mate-applet-indicator)
# wba (libosinfo)
-# zgh (cinnamon, xapps)
#
# To be removed (after fixing packages still using it):
# sr@Latn (use sr@latin instead)
# aa=aa_ER
# ab=ab_GE
# ak=ak_GH
+# as=as_IN
# anp=anp_IN
# ar=common? (AE, BH, DZ, EG, IQ, JO, KW, LB, LY, MA, OM, QA, SA, SD, SY, TN, YE)
# ay=ay_PE
# sd=sd_IN
# sd@devanagari=sd_IN@devanagari
# shn=shn_MM
+# sm=sm_WS
# so=so_SO
# sr=sr_RS [cyrillic]
# sr@latin=sr_RS@latin
# tpi=tpi_PG
# tr=tr_TR
# ur=ur_PK (?)
+# zgh=zgh_MA
# zh: no short code used (use zh_CN, zh_HK, zh_SG[not included yet], zh_TW)
#
# Omitted here - already existing (with libc.mo):
ka kab kg kk kl km kn kok ks ks@devanagari ku kw ky la lb lg li ln lo lt lv \
mai mg mhr mi mjw mk ml mn mni mr ms mt my nan nds ne nl_BE nn nr nso oc om or os \
pa pap ps pt ps quz rm ro \
- sa sat sc sd sd@devanagari se shn si sid sl so sq \
+ sa sat sc sd sd@devanagari se shn si sid sl sm so sq \
sr sr@Latn sr@ije sr@ijekavian sr@ijekavianlatin sr@latin ss st sw syr szl \
ta te tg th ti tig tk tl tlh tn tpi ts tt tt@iqtelif \
- ug uk ur uz uz@cyrillic ve vi wa wal wo xh yi yo zh_HK zu; do
+ ug uk ur uz uz@cyrillic ve vi wa wal wo xh yi yo zgh zh_HK zu; do
if [ ! -d $RPM_BUILD_ROOT%{_localedir}/$i/LC_MESSAGES ]; then
install -d $RPM_BUILD_ROOT%{_localedir}/$i/LC_MESSAGES
# use lang() tags with ll_CC@variant (stripping charset and @quot|@boldquot)
%{__rm} $RPM_BUILD_ROOT%{_mandir}/pl/man3/{alphasort,cfgetispeed,cfgetospeed,cfmakeraw,cfsetispeed,cfsetospeed,closelog,dn_comp,dn_expand,fscanf}.3
%{__rm} $RPM_BUILD_ROOT%{_mandir}/tr/man3/{encrypt_r,setkey,setkey_r}.3
-%if %{without crypt}
%{__rm} $RPM_BUILD_ROOT%{_mandir}{,/ja}/man3/crypt{,_r}.3
%{__rm} $RPM_BUILD_ROOT%{_mandir}/{de,es,fr,pl,pt,ru,tr}/man3/crypt.3
-%endif
%clean
rm -rf $RPM_BUILD_ROOT
-/bin/cp -an %{_libdir}/locale/locale-archive %{_prefix}/lib/locale/locale-archive
%endif
-%post libcrypt -p /sbin/ldconfig
-%postun libcrypt -p /sbin/ldconfig
-
%post memusage -p /sbin/ldconfig
%postun memusage -p /sbin/ldconfig
%ifarch %{ix86} sparc sparcv9 sparc64 alpha sh
%attr(755,root,root) /%{_lib}/ld-linux.so.2
%endif
-%ifarch ia64
-%attr(755,root,root) /%{_lib}/ld-linux-ia64.so.2
-%endif
%ifarch %{x8664}
%attr(755,root,root) /%{_lib}/ld-linux-x86-64.so.2
%endif
%ifarch armv6hl armv7hl armv7hnl
%attr(755,root,root) /lib/ld-linux-armhf.so.3
%endif
-%ifnarch %{ix86} sparc sparcv9 sparc64 alpha sh ia64 %{x8664} x32 ppc64 s390x %{arm} aarch64
+%ifnarch %{ix86} sparc sparcv9 sparc64 alpha sh %{x8664} x32 ppc64 s390x %{arm} aarch64
%attr(755,root,root) /%{_lib}/ld.so.1
%endif
%ifarch alpha
%attr(755,root,root) /%{_lib}/libBrokenLocale.so.1
%endif
%attr(755,root,root) /%{_lib}/libanl.so.1
-%ifarch alpha ia64
+%ifarch alpha
%attr(755,root,root) /%{_lib}/libc.so.6.1
%else
%attr(755,root,root) /%{_lib}/libc.so.6
%else
%attr(755,root,root) /%{_lib}/libdl.so.2
%endif
-%ifarch alpha ia64
+%ifarch alpha
%attr(755,root,root) /%{_lib}/libm.so.6.1
%else
%attr(755,root,root) /%{_lib}/libm.so.6
%endif
%dir %{_prefix}/lib/locale
-#%files -n nss_dns
-%defattr(644,root,root,755)
%attr(755,root,root) /%{_lib}/libnss_dns.so.2
-
-#%files -n nss_files
-%defattr(644,root,root,755)
%attr(755,root,root) /%{_lib}/libnss_files.so.2
-%defattr(644,root,root,755)
-
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/nsswitch.conf
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/gai.conf
%lang(zh_CN) %{_mandir}/zh_CN/man1/ldd.1*
%lang(zh_TW) %{_mandir}/zh_TW/man1/ldd.1*
-%if %{with crypt}
-%files libcrypt
-%defattr(644,root,root,755)
-%ifarch alpha
-%attr(755,root,root) /%{_lib}/libcrypt.so.1.1
-%else
-%attr(755,root,root) /%{_lib}/libcrypt.so.1
-%endif
-%endif
-
%files -n ldconfig
%defattr(644,root,root,755)
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/ld.so.conf
%files devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libBrokenLocale.so
-%{?with_crypt:%attr(755,root,root) %{_libdir}/libcrypt.so}
# for dlopen and not linking
%attr(755,root,root) %{_libdir}/libanl.so
%attr(755,root,root) %{_libdir}/libm.so
%defattr(644,root,root,755)
%{_libdir}/libBrokenLocale.a
%{_libdir}/libc.a
-%{?with_crypt:%{_libdir}/libcrypt.a}
%{_libdir}/libm.a
%{_libdir}/libmcheck.a
%ifarch %{x8664} x32 aarch64
%{_libdir}/libBrokenLocale_p.a
%{_libdir}/libanl_p.a
%{_libdir}/libc_p.a
-%{?with_crypt:%{_libdir}/libcrypt_p.a}
%{_libdir}/libdl_p.a
%{_libdir}/libm_p.a
%ifarch %{x8664} x32 aarch64