# - math/{test-fenv,test-tgmath,test-float,test-ifloat}, debug/backtrace-tst(SEGV) fail on alpha
#
# Conditional build:
-# min_kernel (default is 3.4.0 except for x86/x86_64 where 2.6.32 suffices)
+# min_kernel (default is 3.4.0 except for x86/x86_64 where 3.2.0 suffices)
%bcond_without memusage # don't build memusage utility
%bcond_without selinux # without SELinux support (in nscd)
%bcond_with tests # perform "make test"
%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)
#
%ifarch %{ix86} %{x8664}
-%{!?min_kernel:%global min_kernel 2.6.32}
+%{!?min_kernel:%global min_kernel 3.2.0}
%else
%{!?min_kernel:%global min_kernel 3.4.0}
%endif
%ifarch sparc64
%undefine with_memusage
%endif
+%ifnarch i686 %{x8664} x32
+%undefine with_cet
+%endif
-%define core_version 2.24
+%define core_version 2.28
%define llh_version 7:2.6.32.1-1
Summary: GNU libc
Summary(uk.UTF-8): GNU libc версії
Name: glibc
Version: %{core_version}
-Release: 3
+Release: 6
Epoch: 6
License: LGPL v2.1+
Group: Libraries
Source0: http://ftp.gnu.org/gnu/glibc/%{name}-%{version}.tar.xz
-# Source0-md5: 97dc5517f92016f3d70d83e3162ad318
+# Source0-md5: c81d2388896379997bc359d4f2084239
Source2: nscd.init
Source3: nscd.sysconfig
Source4: nscd.logrotate
# from man-pages.spec --with tars
Source5: %{name}-man-pages.tar.xz
-# Source5-md5: 82537aa7f6ee31dd782e7e085cc21018
+# Source5-md5: 78a8f7f8dfc63123f47a614e99136e61
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: db84fc2f3b428f64896dde0c7b0d8856
+# Patch0-md5: 58ef96284acee989798495055657acde
# 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
-Patch5: %{name}-sparc-softfp-gcc.patch
+
Patch6: %{name}-paths.patch
-Patch7: 1070_all_glibc-fadvise64_64.patch
+
Patch8: %{name}-missing-nls.patch
Patch9: %{name}-nss_include_dirs.patch
Patch10: %{name}-info.patch
# fixes mostly pending for upstream merge
Patch18: %{name}-locale_fixes.patch
Patch19: %{name}-ZA_collate.patch
-Patch20: %{name}-thread_start.patch
Patch23: %{name}-pt_pax.patch
Patch29: %{name}-arm-alignment-fix.patch
Patch30: glibc-rh1124987.patch
-
-Patch38: 1055_all_glibc-resolv-dynamic.patch
+# electron is broken but we have no way to fix it so for now lets break glibc again
+Patch31: 0001-Revert-elf-Correct-absolute-SHN_ABS-symbol-run-time-.patch
URL: http://www.gnu.org/software/libc/
%{?with_selinux:BuildRequires: audit-libs-devel}
BuildRequires: autoconf >= 2.69
BuildRequires: automake
-%ifarch alpha
-BuildRequires: binutils >= 2:2.17.50.0.7
-%else
-BuildRequires: binutils >= 2:2.15.90.0.3
-%endif
+BuildRequires: binutils >= 2:2.29
+BuildRequires: bison >= 2.7
%{!?with_cross:BuildRequires: dietlibc-static}
BuildRequires: gawk
+%if %{with cet}
+BuildRequires: gcc >= 6:8.0
+%else
BuildRequires: gcc >= 6:4.7
+%endif
%{?with_memusage:BuildRequires: gd-devel >= 2.0.1}
BuildRequires: gettext-tools >= 0.10.36
%{?with_selinux:BuildRequires: libselinux-devel >= 1.18}
Provides: glibc64
Obsoletes: glibc64
%endif
+Suggests: libidn2 >= 2.0.5
Suggests: localedb
Suggests: tzdata
Conflicts: %{name}-misc < %{epoch}:%{version}-%{release}
%define _noautoprov .*\(GLIBC_PRIVATE\)
%define _noautoreq .*\(GLIBC_PRIVATE\)
+# to avoid multi-arch conflicts on getconf/* files
+%define _libexecdir %{_libdir}
+
%description
Contains the standard libraries that are used by multiple programs on
the system. In order to save disk space and memory, as well as to ease
Stary moduł NYS NSS glibc.
%package -n nss_db
-Summary: Berkeley DB NSS glibc module
+Summary: NSS glibc module that uses hashed key-value database
+Summary(pl.UTF-8): Moduł NSS glibc wykorzystujący haszowaną bazę danych klucz-wartość
Group: Base
Requires: %{name} = %{epoch}:%{version}-%{release}
%description -n nss_db
-Berkeley DB NSS glibc module.
+NSS glibc module that uses hashed key-value database.
+
+%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: Documentation needed for development using standard C libraries
Summary(pl.UTF-8): Dokumentacja do tworzenia programów przy użyciu standardowych bibliotek C
Group: Documentation
-Provides: %{name}-devel-doc(%{_target_cpu}) = %{epoch}:%{version}-%{release}
-%ifarch %{ix86}
-Provides: %{name}-devel-doc(ix86) = %{epoch}:%{version}-%{release}
+Conflicts: man-pages < 4.09
+%if "%{_rpmversion}" >= "5"
+BuildArch: noarch
%endif
-%ifarch %{x8664}
-# If both -m32 and -m64 is to be supported on x86_64, x86_64 package
-# have to be installed, not ix86 one.
-Obsoletes: glibc-devel-doc(athlon)
-Obsoletes: glibc-devel-doc(i386)
-Obsoletes: glibc-devel-doc(i486)
-Obsoletes: glibc-devel-doc(i586)
-Obsoletes: glibc-devel-doc(i686)
-Obsoletes: glibc-devel-doc(ix86)
-Obsoletes: glibc-devel-doc(pentium3)
-Obsoletes: glibc-devel-doc(pentium4)
-%endif
-%ifarch x32
-Obsoletes: glibc-devel-doc(x86_64)
-%endif
-%ifarch ppc64
-Obsoletes: glibc-devel-doc(ppc)
-%endif
-%ifarch s390x
-Obsoletes: glibc-devel-doc(s390)
-%endif
-%ifarch sparc64
-Obsoletes: glibc-devel-doc(sparc)
-%endif
-Conflicts: man-pages < 4.00
%description devel-doc
The glibc-devel-doc package contains info and manual pages necessary
%prep
%setup -q
-%if "%{min_kernel}" < "2.6.32"
-echo "Minimal supported kernel is 2.6.32" >&2
+%if "%{min_kernel}" < "3.2.0"
+echo "Minimal supported kernel is 3.2.0" >&2
exit 1
%endif
%patch2 -p1
%patch3 -p0
%{!?with_bash_nls:%patch4 -p1}
-%patch5 -p1
+
%patch6 -p1
-%patch7 -p1
+
%patch8 -p1
-%patch9 -p0
+%patch9 -p1
%patch10 -p1
%patch11 -p1
%patch17 -p1
%patch18 -p1
%patch19 -p1
-%patch20 -p1
%patch23 -p0
%patch29 -p1
%patch30 -p1
-
-%patch38 -p1
+%patch31 -p1
# cleanup backups after patching
find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
AWK="gawk" \
../%configure \
- --enable-add-ons=libidn \
+%if %{with cet}
+ --enable-cet \
+%endif
--enable-bind-now \
--enable-experimental-malloc \
--enable-hidden-plt \
--enable-kernel="%{min_kernel}" \
--enable-nss-crypt%{!?with_nss_crypt:=no} \
+ --enable-obsolete-nsl \
--enable-obsolete-rpc \
--enable-profile \
+ --enable-stack-protector=strong \
--enable-stackguard-randomization \
+ --enable-static-pie \
+ --enable-tunables \
--with-binutils=$(pwd)/alt-tools \
--with-bugurl=http://bugs.pld-linux.org/ \
--with-headers=%{_includedir} \
mv -f $RPM_BUILD_ROOT/%{_lib}/libpcprofile.so $RPM_BUILD_ROOT%{_libdir}
# make symlinks across top-level directories absolute
-for l in BrokenLocale anl cidn crypt dl \
+for l in BrokenLocale anl crypt dl \
%ifarch %{x8664} x32
mvec \
%endif
rm -rf documentation
install -d documentation
-for f in ChangeLog.old DESIGN-{condvar,rwlock,systemtap-probes}.txt TODO{,-kernel,-testing}; do
+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
# aln (vlc, libreport)
# bal (libosinfo, libreport, newt, pessulus)
# cgg (vlc)
-# co (vlc)
+# co (FileZilla, vlc)
# frp (xfce, lxlauncher, mate)
# gn (gn_BR in gnome, maybe gn_PY)
+# guc (gtk-vnc)
# haw (iso-codes, stellarium)
# hrx (stellarium)
# ilo (kudzu, libosinfo, libreport)
# io (gtk+2, gnome, alacarte)
# jv (gmpc, avant-window-navigator, kdesudo, mate)
+# kab (FileZilla)
+# kok@latin (inkscape)
# kmr (vlc)
# ku_IQ (mate)
# kw@kkcor, kw@uccor (libosinfo - currently empty) - add as supported variants when non-empty?
# man (ccsm; incorrectly named md)
+# mni@beng[ali] (inkscape)
# mus (bluez-gnome)
# nah (mate)
# nqo (mate)
# pms (deluge, mate-tweak)
+# sat@deva[nagari] (inkscape)
# sco (gnomad2, picard, stellarium, mate)
# son (gtkspell3)
# su (terminator)
# fy=fy_NL
# gez=gez_ET (?)
# it=it_IT
+# ks=ks_IN
+# ks@devanagari=ks_IN@devanagari
# ku=ku_TR
# li=li_NL
+# ln=ln_CD
+# lo=lo_LA
# nds=nds_DE
# nl=nl_NL
# om=om_ET
# quz=quz_PE
# ru=ru_RU
# sd=sd_IN
+# sd@devanagari=sd_IN@devanagari
# shn=shn_MM
# so=so_SO
# sr=sr_RS [cyrillic]
en@boldquot en@quot en@shaw en_AU en_CA en_NZ en_US eo es_AR es_CL es_CO es_CR \
es_DO es_EC es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_SV es_UY \
es_VE et eu fa ff fil fo fr_BE fr_CA fr_CH fur fy ga gd gez gu gv ha he \
- hi hne hsb hy ia id ig ik is it_CH iu ka kg kk kl km kn kok ks ku kw ky la lb \
- lg li lo lt lv mai mg mhr mi mk ml mn mni mr ms mt my nds ne nl_BE nn nr nso \
- oc om or pa pap ps pt ps quz rm ro sa sat sc sd se shn si sid sl so sq sr sr@Latn szl tl \
+ hi hne hsb hy ia id ig ik is it_CH iu ka kg kk kl km kn kok ks ks@devanagari ku kw ky la lb \
+ lg li ln lo lt lv mai mg mhr mi mk ml mn mni mr ms mt my nds ne nl_BE nn nr nso \
+ oc om or pa pap ps pt ps quz rm ro sa sat sc sd sd@devanagari se shn si sid sl so sq sr sr@Latn szl tl \
sr@ije sr@ijekavian sr@ijekavianlatin sr@latin ss st sw ta te tg th ti \
tig tk tl tlh tn ts tt tt@iqtelif ug uk ur uz uz@cyrillic ve vi wa wal wo xh yi yo \
zh_HK zu; do
%files -f %{name}.lang
%defattr(644,root,root,755)
-%doc README NEWS BUGS CONFORMANCE
+%doc README NEWS
%if %{without cross}
%attr(755,root,root) /sbin/glibc-postinst
%endif
%else
%attr(755,root,root) /%{_lib}/libc.so.6
%endif
-%attr(755,root,root) /%{_lib}/libcidn-%{core_version}.so
-%attr(755,root,root) /%{_lib}/libcidn.so.1
%attr(755,root,root) /%{_lib}/libdl-%{core_version}.so
%ifarch alpha
%attr(755,root,root) /%{_lib}/libdl.so.2.1
%attr(755,root,root) %{_libdir}/libBrokenLocale.so
%attr(755,root,root) %{_libdir}/libanl.so
%attr(755,root,root) %{_libdir}/libcrypt.so
-%attr(755,root,root) %{_libdir}/libcidn.so
%attr(755,root,root) %{_libdir}/libdl.so
%attr(755,root,root) %{_libdir}/libm.so
%ifarch %{x8664} x32
%attr(755,root,root) %{_libdir}/libthread_db.so
%attr(755,root,root) %{_libdir}/libutil.so
%{_libdir}/crt[1in].o
-%{_libdir}/[MSg]crt1.o
+%{_libdir}/[MSgr]crt1.o
+%{_libdir}/grcrt1.o
# ld scripts
%{_libdir}/libc.so
%{_libdir}/libpthread.so
%endif
%{_libdir}/libc_nonshared.a
%{_libdir}/libg.a
-%{_libdir}/libieee.a
%ifarch alpha ppc sparc
%{_libdir}/libnldbl_nonshared.a
%endif
-%{_libdir}/libpthread_nonshared.a
%{_libdir}/librpcsvc.a
%ifarch %{ix86} %{x8664} x32 ppc ppc64 s390 s390x sparc sparcv9 sparc64
# ABI-dependent headers
%files devel-doc
%defattr(644,root,root,755)
-%doc documentation/* PROJECTS
+%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/complex.7*
%lang(fr) %{_mandir}/fr/man7/feature_test_macros.7*
%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}/libm.a
%{_libdir}/libmcheck.a
%ifarch %{x8664} x32
+%{_libdir}/libm-%{core_version}.a
%{_libdir}/libmvec.a
%endif
%{_libdir}/libnsl.a