%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_without crypt # don't build obsolete libcrypt
+%bcond_without static_pie # disable static PIE support
#
%ifarch %{ix86} %{x8664}
%{!?min_kernel:%global min_kernel 3.2.0}
%ifnarch i686 %{x8664} x32
%undefine with_cet
%endif
+%ifarch %{arm}
+%undefine with_static_pie
+%endif
-%define core_version 2.32
+%define core_version 2.33
%define llh_version 7:2.6.32.1-1
Summary: GNU libc
Epoch: 6
License: LGPL v2.1+
Group: Libraries
-Source0: http://ftp.gnu.org/gnu/glibc/%{name}-%{version}.tar.xz
-# Source0-md5: 720c7992861c57cf97d66a2f36d8d1fa
+Source0: https://ftp.gnu.org/gnu/glibc/%{name}-%{version}.tar.xz
+# Source0-md5: 390bbd889c7e8e8a7041564cb6b27cca
Source2: nscd.init
Source3: nscd.sysconfig
Source4: nscd.logrotate
# from man-pages.spec --with tars
Source5: %{name}-man-pages.tar.xz
-# Source5-md5: 852c1c77c7435615c0b17d8e4acf05d8
+# Source5-md5: e66023386d2cc0d6a1d5c29bdbf03550
Source6: %{name}-localedb-gen
Source7: %{name}-LD-path.c
Source9: nscd.tmpfiles
# use branch.sh to update glibc-git.patch
Patch0: glibc-git.patch
-# Patch0-md5: b23f89a8ac84091eee12ac8e764483e6
+# Patch0-md5: 74fe5d1f0d652a5c4d46e4c52edd8694
# against GNU TP (libc domain)
#Patch1: %{name}-pl.po-update.patch
Patch2: %{name}-pld.patch
BuildRequires: python3 >= 1:3.4
BuildRequires: python3-modules >= 1:3.4
BuildRequires: rpm-build >= 4.3-0.20030610.28
-BuildRequires: rpmbuild(macros) >= 1.567
+BuildRequires: rpmbuild(macros) >= 1.752
BuildRequires: sed >= 4.0.5
BuildRequires: texinfo >= 4.7
Requires: %{name}-ld = %{epoch}:%{version}-%{release}
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 aarch64
+ExclusiveArch: i486 i586 i686 pentium3 pentium4 athlon %{x8664} x32 ia64 alpha s390 s390x sparc sparc64 sparcv9 ppc ppc64 armv5tel armv6hl aarch64
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
# avoid -s here (ld.so must not be stripped to allow any program debugging)
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
+%endif
Provides: %{name}-devel(%{_target_cpu}) = %{epoch}:%{version}-%{release}
%ifarch %{ix86}
Provides: %{name}-devel(ix86) = %{epoch}:%{version}-%{release}
Summary: Header files for development using standard C libraries
Summary(pl.UTF-8): Pliki nagłówkowe do tworzenia programów przy użyciu standardowych bibliotek C
Group: Development/Building
-Provides: %{name}-headers(%{_target_cpu}) = %{epoch}:%{version}-%{release}
+Provides: %{name}-header-cpu-%{_target_cpu} = %{epoch}:%{version}-%{release}
%ifarch %{ix86}
-Provides: %{name}-headers(ix86) = %{epoch}:%{version}-%{release}
+Provides: %{name}-headers-cpu-ix86 = %{epoch}:%{version}-%{release}
%endif
%ifarch %{x8664} x32
# If both -m32 and -m64 is to be supported on x86_64, x86_64 package
# have to be installed, not ix86 one.
-Obsoletes: glibc-headers(athlon)
-Obsoletes: glibc-headers(i386)
-Obsoletes: glibc-headers(i486)
-Obsoletes: glibc-headers(i586)
-Obsoletes: glibc-headers(i686)
-Obsoletes: glibc-headers(ix86)
-Obsoletes: glibc-headers(pentium3)
-Obsoletes: glibc-headers(pentium4)
+Obsoletes: glibc-headers-cpu-athlon
+Obsoletes: glibc-headers-cpu-i386
+Obsoletes: glibc-headers-cpu-i486
+Obsoletes: glibc-headers-cpu-i586
+Obsoletes: glibc-headers-cpu-i686
+Obsoletes: glibc-headers-cpu-ix86
+Obsoletes: glibc-headers-cpu-pentium3
+Obsoletes: glibc-headers-cpu-pentium4
%endif
%ifarch x32
-Obsoletes: glibc-headers(x86_64)
+Obsoletes: glibc-headers-cpu-x86_64
%endif
%ifarch ppc64
-Obsoletes: glibc-headers(ppc)
+Obsoletes: glibc-headers-cpu-ppc
%endif
%ifarch s390x
-Obsoletes: glibc-headers(s390)
+Obsoletes: glibc-headers-cpu-s390
%endif
%ifarch sparc64
-Obsoletes: glibc-headers(sparc)
+Obsoletes: glibc-headers-cpu-sparc
%endif
Requires: linux-libc-headers >= %{llh_version}
Summary: Utilities needed for development using standard C libraries
Summary(pl.UTF-8): Narzędzia do tworzenia programów przy użyciu standardowych bibliotek C
Group: Development/Libraries
-Provides: %{name}-devel-utils(%{_target_cpu}) = %{epoch}:%{version}-%{release}
+Provides: %{name}-devel-util-cpu-%{_target_cpu} = %{epoch}:%{version}-%{release}
%ifarch %{ix86}
-Provides: %{name}-devel-utils(ix86) = %{epoch}:%{version}-%{release}
+Provides: %{name}-devel-utils-cpu-ix86 = %{epoch}:%{version}-%{release}
%endif
%ifarch %{x8664} x32
# If both -m32 and -m64 is to be supported on AMD64, x86_64 package
# have to be installed, not ix86 one.
-Obsoletes: glibc-devel-utils(athlon)
-Obsoletes: glibc-devel-utils(i386)
-Obsoletes: glibc-devel-utils(i486)
-Obsoletes: glibc-devel-utils(i586)
-Obsoletes: glibc-devel-utils(i686)
-Obsoletes: glibc-devel-utils(ix86)
-Obsoletes: glibc-devel-utils(pentium3)
-Obsoletes: glibc-devel-utils(pentium4)
+Obsoletes: glibc-devel-utils-cpu-athlon
+Obsoletes: glibc-devel-utils-cpu-i386
+Obsoletes: glibc-devel-utils-cpu-i486
+Obsoletes: glibc-devel-utils-cpu-i586
+Obsoletes: glibc-devel-utils-cpu-i686
+Obsoletes: glibc-devel-utils-cpu-ix86
+Obsoletes: glibc-devel-utils-cpu-pentium3
+Obsoletes: glibc-devel-utils-cpu-pentium4
%endif
%ifarch x32
-Obsoletes: glibc-devel-utils(x86_64)
+Obsoletes: glibc-devel-utils-cpu-x86_64
%endif
%ifarch ppc64
-Obsoletes: glibc-devel-utils(ppc)
+Obsoletes: glibc-devel-utils-cpu-ppc
%endif
%ifarch s390x
-Obsoletes: glibc-devel-utils(s390)
+Obsoletes: glibc-devel-utils-cpu-s390
%endif
%ifarch sparc64
-Obsoletes: glibc-devel-utils(sparc)
+Obsoletes: glibc-devel-utils-cpu-sparc
%endif
Conflicts: man-pages < 4.00
Summary(pl.UTF-8): Dokumentacja do tworzenia programów przy użyciu standardowych bibliotek C
Group: Documentation
Conflicts: man-pages < 4.09
-%if "%{_rpmversion}" >= "5"
-BuildArch: noarch
-%endif
+%{?noarchpackage}
%description devel-doc
The glibc-devel-doc package contains info and manual pages necessary
Summary(uk.UTF-8): Статичні бібліотеки glibc
Group: Development/Libraries
Requires: %{name}-devel = %{epoch}:%{version}-%{release}
+%{!?with_crypt:Requires: libxcrypt-static}
Provides: %{name}-static(%{_target_cpu}) = %{epoch}:%{version}-%{release}
%ifarch %{ix86}
Provides: %{name}-static(ix86) = %{epoch}:%{version}-%{release}
../%configure \
%if %{with cet}
--enable-cet \
+%endif
+%if %{without crypt}
+ --disable-crypt \
%endif
--enable-bind-now \
--enable-experimental-malloc \
--enable-profile \
--enable-stack-protector=strong \
--enable-stackguard-randomization \
- --enable-static-pie \
+ %{?with_static_pie:--enable-static-pie} \
--enable-tunables \
--with-binutils=$(pwd)/alt-tools \
--with-bugurl=http://bugs.pld-linux.org/ \
mv -f $RPM_BUILD_ROOT/%{_lib}/libpcprofile.so $RPM_BUILD_ROOT%{_libdir}
# make symlinks across top-level directories absolute
-for l in BrokenLocale anl crypt dl \
+for l in BrokenLocale anl %{?with_crypt:crypt} dl \
%ifarch %{x8664} x32
mvec \
%endif
cp -a %{SOURCE4} $RPM_BUILD_ROOT/etc/logrotate.d/nscd
cp -a nscd/nscd.conf $RPM_BUILD_ROOT%{_sysconfdir}
cp -a posix/gai.conf $RPM_BUILD_ROOT%{_sysconfdir}
-cp -a nis/nss $RPM_BUILD_ROOT/etc/default/nss
sed -e 's#\([ \t]\)db\([ \t]\)#\1#g' nss/nsswitch.conf > $RPM_BUILD_ROOT%{_sysconfdir}/nsswitch.conf
xz -dc %{SOURCE5} | tar xf - -C $RPM_BUILD_ROOT%{_mandir}
# guc (gtk-vnc)
# haw (iso-codes, stellarium)
# hrx (stellarium)
+# hye (tumbler)
# ie (xfce, cinnamon)
# ilo (kudzu, libosinfo, libreport)
# io (alacarte, gtk+2, gnome, iso-codes)
# nl=nl_NL
# om=om_ET
# or=or_IN
+# os=os_RU
# pa=pa_IN
# pt=pt_PT
# quz=quz_PE
et eu fa ff fil fo fr_BE fr_CA fr_CH fur fy ga gd gez gu gv \
ha he hi hne ht hsb hy ia id ig ik is it_CH iu \
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 nds ne nl_BE nn nr nso oc om or \
+ mai mg mhr mi mjw mk ml mn mni mr ms mt my 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 \
sr sr@Latn sr@ije sr@ijekavian sr@ijekavianlatin sr@latin ss st sw szl \
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/nsswitch.conf
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/gai.conf
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/default/nss
%config %{_sysconfdir}/rpc
%attr(755,root,root) %{_bindir}/getent
%attr(755,root,root) %{_bindir}/iconv
%attr(755,root,root) %{_bindir}/locale
-%attr(755,root,root) %{_sbindir}/zdump
+%attr(755,root,root) %{_bindir}/zdump
%attr(755,root,root) %{_sbindir}/zic
%dir %{_libexecdir}/getconf
%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)
%attr(755,root,root) /%{_lib}/libcrypt-%{core_version}.so
%else
%attr(755,root,root) %ghost /%{_lib}/libcrypt.so.1
%endif
+%endif
%files ld
%defattr(644,root,root,755)
%attr(755,root,root) /lib/ld-linux-aarch64.so.1
%attr(755,root,root) /%{_lib}/ld-linux-aarch64.so.1
%endif
+%ifarch armv6hl
+%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
%attr(755,root,root) /%{_lib}/ld.so.1
%endif
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libBrokenLocale.so
%attr(755,root,root) %{_libdir}/libanl.so
-%attr(755,root,root) %{_libdir}/libcrypt.so
+%{?with_crypt:%attr(755,root,root) %{_libdir}/libcrypt.so}
%attr(755,root,root) %{_libdir}/libdl.so
%attr(755,root,root) %{_libdir}/libm.so
%ifarch %{x8664} x32
%attr(755,root,root) %{_libdir}/libutil.so
%{_libdir}/crt[1in].o
%{_libdir}/[MSgr]crt1.o
-%{_libdir}/grcrt1.o
+%{?with_static_pie:%{_libdir}/grcrt1.o}
# ld scripts
%{_libdir}/libc.so
%{_libdir}/libpthread.so
%ifarch alpha ppc sparc
%{_libdir}/libnldbl_nonshared.a
%endif
-%ifarch %{ix86} %{x8664} x32 ppc ppc64 s390 s390x sparc sparcv9 sparc64 aarch64
+%ifarch %{ix86} %{x8664} x32 ppc ppc64 s390 s390x sparc sparcv9 sparc64 aarch64 armv6hl
# ABI-dependent headers
%{_includedir}/gnu/stubs-*.h
%endif
%attr(755,root,root) %{_bindir}/sprof
%attr(755,root,root) %{_bindir}/xtrace
%{_mandir}/man1/mtrace.1*
+%{_mandir}/man1/sprof.1*
%lang(ja) %{_mandir}/ja/man1/mtrace.1*
+%lang(ja) %{_mandir}/ja/man1/sprof.1*
+%lang(ru) %{_mandir}/ru/man1/sprof.1*
%files devel-doc
%defattr(644,root,root,755)
%doc documentation/*
%{_infodir}/libc.info*
-%{_mandir}/man1/sprof.1*
-# just a link to getcwd.3
-%{_mandir}/man2/getcwd.2*
-# just a link to killpg.3
-%{_mandir}/man2/killpg.2*
%{_mandir}/man3/*
%{_mandir}/man7/aio.7*
%{_mandir}/man7/attributes.7*
%{_mandir}/man7/sem_overview.7*
%{_mandir}/man7/shm_overview.7*
%lang(cs) %{_mandir}/cs/man3/*
-%lang(de) %{_mandir}/de/man2/killpg.2*
%lang(de) %{_mandir}/de/man3/*
-%lang(es) %{_mandir}/es/man2/killpg.2*
%lang(es) %{_mandir}/es/man3/*
%lang(es) %{_mandir}/es/man7/glob.7*
-%lang(fr) %{_mandir}/fr/man2/getcwd.2*
-%lang(fr) %{_mandir}/fr/man2/killpg.2*
%lang(fr) %{_mandir}/fr/man3/*
%lang(fr) %{_mandir}/fr/man7/aio.7*
%lang(fr) %{_mandir}/fr/man7/complex.7*
%lang(hu) %{_mandir}/hu/man3/*
%lang(it) %{_mandir}/it/man3/*
%lang(it) %{_mandir}/it/man7/glob.7*
-%lang(ja) %{_mandir}/ja/man1/sprof.1*
-%lang(ja) %{_mandir}/ja/man2/getcwd.2*
-%lang(ja) %{_mandir}/ja/man2/killpg.2*
%lang(ja) %{_mandir}/ja/man3/*
%lang(ja) %{_mandir}/ja/man7/aio.7*
%lang(ja) %{_mandir}/ja/man7/complex.7*
%lang(ja) %{_mandir}/ja/man7/pthreads.7*
%lang(ja) %{_mandir}/ja/man7/sem_overview.7*
%lang(ja) %{_mandir}/ja/man7/shm_overview.7*
-%lang(ko) %{_mandir}/ko/man2/killpg.2*
%lang(ko) %{_mandir}/ko/man3/*
%lang(nl) %{_mandir}/nl/man3/*
-%lang(pl) %{_mandir}/pl/man2/killpg.2*
%lang(pl) %{_mandir}/pl/man3/*
-%lang(pt) %{_mandir}/pt/man2/killpg.2*
%lang(pt) %{_mandir}/pt/man3/*
%lang(pt) %{_mandir}/pt/man7/glob.7*
-%lang(ru) %{_mandir}/ru/man1/sprof.1*
-%lang(ru) %{_mandir}/ru/man2/killpg.2*
%lang(ru) %{_mandir}/ru/man3/*
%lang(ru) %{_mandir}/ru/man7/glob.7*
%lang(tr) %{_mandir}/tr/man3/*
%{_libdir}/libanl.a
%{_libdir}/libBrokenLocale.a
%{_libdir}/libc.a
-%{_libdir}/libcrypt.a
+%{?with_crypt:%{_libdir}/libcrypt.a}
%{_libdir}/libdl.a
%{_libdir}/libm.a
%{_libdir}/libmcheck.a