# - math/{test-fenv,test-tgmath,test-float,test-ifloat}, debug/backtrace-tst(SEGV) fail on alpha
#
# Conditional build:
-# min_kernel (default is 2.6.32)
+# 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_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
#
-%ifarch x32
-%{!?min_kernel:%global min_kernel 3.4.0}
+%ifarch %{ix86} %{x8664}
+%{!?min_kernel:%global min_kernel 3.2.0}
%else
-%{!?min_kernel:%global min_kernel 2.6.32}
+%{!?min_kernel:%global min_kernel 3.4.0}
%endif
%ifarch sparc64
%undefine with_memusage
%endif
-%define core_version 2.22
+%define core_version 2.26
%define llh_version 7:2.6.32.1-1
Summary: GNU libc
Summary(uk.UTF-8): GNU libc версії
Name: glibc
Version: %{core_version}
-Release: 1
+Release: 11
Epoch: 6
License: LGPL v2.1+
Group: Libraries
Source0: http://ftp.gnu.org/gnu/glibc/%{name}-%{version}.tar.xz
-# Source0-md5: e51e02bf552a0a1fbbdc948fb2f5e83c
+# Source0-md5: 102f637c3812f81111f48f2427611be1
Source2: nscd.init
Source3: nscd.sysconfig
Source4: nscd.logrotate
# from man-pages.spec --with tars
Source5: %{name}-man-pages.tar.xz
-# Source5-md5: 3a4eabb7d28db7d35d8204fdb471a863
+# Source5-md5: 78a8f7f8dfc63123f47a614e99136e61
Source6: %{name}-localedb-gen
Source7: %{name}-LD-path.c
-Source8: nscd.upstart
Source9: nscd.tmpfiles
+# use branch.sh to update glibc-git.patch
+Patch0: glibc-git.patch
+# Patch0-md5: 870116e19a36b22ce35806d01fd75f26
# against GNU TP (libc domain)
#Patch1: %{name}-pl.po-update.patch
Patch2: %{name}-pld.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
-Patch22: %{name}-with-stroke.patch
+
Patch23: %{name}-pt_pax.patch
-Patch25: %{name}-cv_gnu89_inline.patch
-Patch27: %{name}-locale-C.patch.xz
-# Patch27-md5: 34ebe52a2afb923e33af0fb7c541f540
-Patch28: %{name}-locale-C-pld.patch
+
+# http://pkgs.fedoraproject.org/cgit/rpms/glibc.git/plain/glibc-c-utf8-locale.patch
+Patch27: %{name}-c-utf8-locale.patch
+
Patch29: %{name}-arm-alignment-fix.patch
Patch30: glibc-rh1124987.patch
-
-Patch38: 1055_all_glibc-resolv-dynamic.patch
URL: http://www.gnu.org/software/libc/
%{?with_selinux:BuildRequires: audit-libs-devel}
-BuildRequires: autoconf
+BuildRequires: autoconf >= 2.69
BuildRequires: automake
%ifarch alpha
BuildRequires: binutils >= 2:2.17.50.0.7
%endif
%{!?with_cross:BuildRequires: dietlibc-static}
BuildRequires: gawk
-BuildRequires: gcc >= 6:4.6
+BuildRequires: gcc >= 6:4.7
%{?with_memusage:BuildRequires: gd-devel >= 2.0.1}
BuildRequires: gettext-tools >= 0.10.36
%{?with_selinux:BuildRequires: libselinux-devel >= 1.18}
Conflicts: kernel24-smp
Conflicts: ld.so < 1.9.9-10
Conflicts: man-pages < 4.00
-Conflicts: poldek < 0.18.8-5
+Conflicts: poldek < 0.30.1-9
Conflicts: rc-scripts < 0.3.1-13
Conflicts: rpm < 4.1
Conflicts: xorg-driver-video-nvidia-libs < 1:295.33
%description -n nss_compat -l pl.UTF-8
Stary moduł NYS NSS glibc.
+%package -n nss_db
+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
+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(es.UTF-8): Módulo BIND NSS de glibc
Provides: %{name}-devel(ix86) = %{epoch}:%{version}-%{release}
%endif
Obsoletes: libiconv-devel
+%ifarch %{x8664}
+# see http://lists.pld-linux.org/mailman/pipermail/pld-devel-en/2016-May/024902.html
+%if "%(rpm -q --qf '%{E}:%{V}' binutils)" >= "4:2.26"
+Conflicts: binutils < 4:2.26
+%endif
+%endif
%description devel
To develop programs which use the standard C libraries (which nearly
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}
-%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)
+Conflicts: man-pages < 4.09
+%if "%{_rpmversion}" >= "5"
+BuildArch: noarch
%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
+%patch0 -p1
+
%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
-%patch22 -p1
+
%patch23 -p0
-%patch25 -p1
%patch27 -p1
-%patch28 -p1
+
%patch29 -p1
%patch30 -p1
-%patch38 -p1
-
# cleanup backups after patching
find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
--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-tunables \
--with-binutils=$(pwd)/alt-tools \
--with-bugurl=http://bugs.pld-linux.org/ \
--with-headers=%{_includedir} \
%{__make} \
AWK="gawk" \
- localedir=%{_prefix}/lib/locale \
+ complocaledir=%{_prefix}/lib/locale \
sLIBdir=%{_libdir}
cd ..
%if %{without cross}
CC="%{__cc}"
-diet ${CC#*ccache } %{SOURCE7} %{rpmcflags} -Os -static -o glibc-postinst
+CC=${CC#*ccache }
+CC=${CC#%{_libdir}/ccache/}
+diet ${CC} %{SOURCE7} %{rpmcflags} -Os -static -o glibc-postinst
%endif
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,sysconfig,default,logrotate.d,init} \
+install -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,sysconfig,default,logrotate.d} \
$RPM_BUILD_ROOT{%{_mandir},/var/log,/var/{lib,run}/nscd} \
$RPM_BUILD_ROOT{/var/cache/ldconfig,%{systemdtmpfilesdir}}
env LANGUAGE=C LC_ALL=C \
%{__make} install \
install_root=$RPM_BUILD_ROOT \
- localedir=%{_prefix}/lib/locale \
+ complocaledir=%{_prefix}/lib/locale \
infodir=%{_infodir} \
mandir=%{_mandir}
%if %{with localedb}
env LANGUAGE=C LC_ALL=C \
%{__make} localedata/install-locales \
- localedir=%{_prefix}/lib/locale \
+ complocaledir=%{_prefix}/lib/locale \
install_root=$RPM_BUILD_ROOT
%else
install -d $RPM_BUILD_ROOT%{_prefix}/lib/locale
%{__rm} $RPM_BUILD_ROOT%{_libdir}/libnss_*.so
install -p %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/nscd
-cp -p %{SOURCE8} $RPM_BUILD_ROOT/etc/init/nscd.conf
cp -a %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/nscd
cp -a %{SOURCE4} $RPM_BUILD_ROOT/etc/logrotate.d/nscd
cp -a nscd/nscd.conf $RPM_BUILD_ROOT%{_sysconfdir}
rm -rf documentation
install -d documentation
-for f in ChangeLog.old DESIGN-{barrier,condvar,rwlock,systemtap-probes}.txt TODO{,-kernel,-testing}; do
+for f in ChangeLog.old DESIGN-systemtap-probes.txt TODO{,-kernel,-testing}; do
cp -af nptl/$f documentation/$f.nptl
done
cp -af crypt/README.ufc-crypt ChangeLog* documentation
# tlh - Klingon (bzflag)
#
# To be added when they become supported by glibc:
-# ach (vlc)
-# ak (gtkspell3)
-# bal (newt,pessulus)
+# ach (vlc, libreport)
+# aln (vlc, libreport)
+# bal (libosinfo, libreport, newt, pessulus)
# cgg (vlc)
-# co (vlc)
-# frp (xfce, lxlauncher)
+# 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)
+# ilo (kudzu, libosinfo, libreport)
# io (gtk+2, gnome, alacarte)
-# jv (gmpc, avant-window-navigator, kdesudo)
+# jv (gmpc, avant-window-navigator, kdesudo, mate)
+# kab (FileZilla)
+# kok@latin (inkscape)
# kmr (vlc)
-# ku_IQ (mate-menus,mozo)
+# 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-system-monitor)
-# pms (deluge)
-# sco (gnomad2, picard, stellarium)
+# nah (mate)
+# nqo (mate)
+# pms (deluge, mate-tweak)
+# sat@deva[nagari] (inkscape)
+# sco (gnomad2, picard, stellarium, mate)
# son (gtkspell3)
+# su (terminator)
# swg (sim)
# syr (iso-codes)
# tet (vlc)
+# tpi (mate-tweak)
+# tw (libosinfo)
# vec (mate-applet-indicator)
+# wba (libosinfo)
#
# To be removed (after fixing packages still using it):
# sr@Latn (use sr@latin instead)
#
# Short forms (omitted country code, used instead of long form) for ambiguous or unclear cases:
# aa=aa_ER
+# ak=ak_GH
+# anp=anp_IN
# ar=common? (AE, BH, DZ, EG, IQ, JO, KW, LB, LY, MA, OM, QA, SA, SD, SY, TN, YE)
# az=az_AZ
# bn=bn_BD
# 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]
# sr@latin=sr_RS@latin
# be ca cs da de el en_GB es fi fr gl hr hu it ja ko nb nl pl pt_BR ru rw sk
# sv tr zh_CN zh_TW
#
-for i in aa aa@saaho af am an ang ar ar_TN as ast az az_IR be@latin be@tarask bem \
+for i in aa aa@saaho af ak am an ang anp ar ar_TN as ast az az_IR be@latin be@tarask bem \
bg bho bn bn_IN bo br brx bs byn ca@valencia ckb cmn crh csb cv cy de_AT de_CH doi dv dz en \
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 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
# LC_TIME category, used for localized date formats (at least by coreutils)
for i in af be bg ca cs da de el en eo es et eu fi fr ga gl hr hu ia id it ja kk ko lg lt \
- ms nb nl pl pt pt_BR ro ru rw sk sl sv tr uk vi zh_CN zh_TW; do
+ ms nb nl pl pt pt_BR ro ru rw sk sl sr sv tr uk vi zh_CN zh_TW; do
if [ ! -d $RPM_BUILD_ROOT%{_localedir}/$i ]; then
echo "%lang($lang) %{_localedir}/$i" >> glibc.lang
fi
%service -q crond restart
fi
+%triggerin -- apache-base
+if [ "$1" != 1 ]; then
+ %service -q httpd restart
+fi
+
%ifarch %{x8664}
# when upgrading from glibc < 6:2.19-3 copy locale-archive
# from /usr/lib64/locale to /usr/lib/locale
%endif
%dir %{_prefix}/lib/locale
-#%files -n nss_db
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/makedb
-%attr(755,root,root) /%{_lib}/libnss_db-%{core_version}.so
-%attr(755,root,root) /%{_lib}/libnss_db.so.2
-%{_var}/db/Makefile
-
#%files -n nss_dns
%defattr(644,root,root,755)
%attr(755,root,root) /%{_lib}/libnss_dns-%{core_version}.so
%attr(755,root,root) /%{_lib}/libnss_compat-%{core_version}.so
%attr(755,root,root) /%{_lib}/libnss_compat.so.2
+%files -n nss_db
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/makedb
+%attr(755,root,root) /%{_lib}/libnss_db-%{core_version}.so
+%attr(755,root,root) /%{_lib}/libnss_db.so.2
+%{_var}/db/Makefile
+
%files -n nss_hesiod
%defattr(644,root,root,755)
%attr(755,root,root) /%{_lib}/libnss_hesiod-%{core_version}.so
%{_libdir}/libc.so
%{_libdir}/libpthread.so
# static-only libs
+%ifarch %{x8664} x32
+%{_libdir}/libmvec_nonshared.a
+%endif
%{_libdir}/libc_nonshared.a
%{_libdir}/libg.a
%{_libdir}/libieee.a
%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
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/nscd
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/nscd.*
%attr(754,root,root) /etc/rc.d/init.d/nscd
-%config(noreplace) %verify(not md5 mtime size) /etc/init/nscd.conf
%attr(755,root,root) %{_sbindir}/nscd*
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/nscd
%attr(640,root,root) %ghost /var/log/nscd