# - no more chicken-egg problem (postshell is no more dynamically linked with libc), remove SONAME symlinks? see files section.
# [OLD]
# - localedb-gen man pages(?)
-# - math/{test-fenv,test-tgmath,test-float,test-ifloat},
-# debug/backtrace-tst(SEGV) fail on alpha
+# - math/{test-fenv,test-tgmath,test-float,test-ifloat}, debug/backtrace-tst(SEGV) fail on alpha
#
# Conditional build:
# min_kernel (default is 2.6.12)
%undefine with_memusage
%endif
-%define ports_version 2.12.1
+%define ports_version 2.13
%define llh_version 7:2.6.20.4-1
Summary: GNU libc
Summary(tr.UTF-8): GNU libc
Summary(uk.UTF-8): GNU libc версії
Name: glibc
-Version: 2.13
-Release: 1
+Version: 2.14
+Release: 16
Epoch: 6
License: LGPL v2.1+
Group: Libraries
-#Source0: http://ftp.gnu.org/gnu/glibc/%{name}-%{version}.tar.xz
-Source0: %{name}-%{version}.tar.bz2
-# Source0-md5: 290b14e5ea57bafe19a637037519027c
+Source0: http://ftp.gnu.org/gnu/glibc/%{name}-%{version}.tar.xz
+# Source0-md5: 8f5f6b09f98d17c630819b4845e31e65
Source1: http://ftp.gnu.org/gnu/glibc/%{name}-ports-%{ports_version}.tar.bz2
-# Source1-md5: cb01ab976180e98287cef5079e35359e
+# Source1-md5: 483f37cfdd619e81d8ca9e9d713944b5
Source2: nscd.init
Source3: nscd.sysconfig
Source4: nscd.logrotate
# Source5-md5: f464eadf3cf06761f65639e44a179e6b
Source6: %{name}-localedb-gen
Source7: %{name}-LD-path.c
+Source8: nscd.upstart
+Patch0: %{name}-restore-rpc+nis.patch
Patch1: %{name}-pl.po-update.patch
Patch2: %{name}-pld.patch
Patch3: %{name}-crypt-blowfish.patch
+Patch4: %{name}-sotruss-sh.patch
Patch5: %{name}-sparc-softfp-gcc.patch
Patch6: %{name}-paths.patch
Patch7: %{name}-no_opt_override.patch
Patch26: %{name}-posix-sh.patch
Patch27: %{name}-i686.patch
Patch29: %{name}-arm-alignment-fix.patch
-Patch30: %{name}-static-glro-init.patch
+Patch30: %{name}-bug-12492.patch
Patch31: %{name}-origin.patch
Patch32: %{name}-Os-fail-workaround.patch
+Patch33: 0020_all_glibc-tweak-rfc1918-lookup.patch
+Patch35: 0055_all_glibc-2.12-static-shared-getpagesize.patch
+Patch37: 0061_all_glibc-2.13-static-memset.patch
+Patch38: 1055_all_glibc-resolv-dynamic.patch
+Patch39: %{name}-git.patch
+Patch40: %{name}-bad-fix.patch
+Patch41: %{name}-bug-12684.patch
+Patch42: %{name}-revert-dso-breakout.patch
URL: http://www.gnu.org/software/libc/
%{?with_selinux:BuildRequires: audit-libs-devel}
BuildRequires: autoconf
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}
Provides: crypt(blowfish)
%description libcrypt
utilisant les bibliothčques partagées.
%description -n ldconfig -l pl.UTF-8
-ldconfig testuje uruchominy system i tworzy dowiązania symboliczne,
+ldconfig testuje uruchomiony system i tworzy dowiązania symboliczne,
które są następnie używane do poprawnego ładowania bibliotek
dynamicznych. Program ten tworzy plik /etc/ld.so.cache, który
przyśpiesza ładowanie programów korzystających z bibliotek
Group: Development/Libraries
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires: %{name}-devel-utils = %{epoch}:%{version}-%{release}
+Requires: %{name}-libcrypt(%{_target_cpu}) = %{epoch}:%{version}-%{release}
+%if "%{_lib}" == "lib64"
+Requires: %{name}-headers(64bit) = %{epoch}:%{version}-%{release}
+%else
Requires: %{name}-headers = %{epoch}:%{version}-%{release}
+%endif
Provides: %{name}-devel(%{_target_cpu}) = %{epoch}:%{version}-%{release}
Obsoletes: libiconv-devel
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}
+%if "%{_lib}" == "lib64"
+Provides: %{name}-headers(64bit) = %{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.
Requires(pre): /usr/sbin/useradd
Requires: %{name} = %{epoch}:%{version}-%{release}
%{?with_selinux:Requires: libselinux >= 1.18}
-Requires: rc-scripts >= 0.2.0
+Requires: rc-scripts >= 0.4.3.0
Provides: group(nscd)
Provides: user(nscd)
kodowania danych z poziomu dowolnego programu.
%package static
-Summary: Static libraries
+Summary: Static GNU libc libraries
Summary(es.UTF-8): Bibliotecas estáticas
-Summary(pl.UTF-8): Biblioteki statyczne
+Summary(pl.UTF-8): Biblioteki statyczne GNU libc
Summary(ru.UTF-8): Статические библиотеки glibc
Summary(uk.UTF-8): Статичні бібліотеки glibc
Group: Development/Libraries
Moduł glibc NSS (Name Service Switch) dostępu do baz danych NIS+.
%package memusage
-Summary: A toy
-Summary(es.UTF-8): Un juguete
-Summary(pl.UTF-8): Zabawka
-Group: Applications
+Summary: Memory usage profiler
+Summary(pl.UTF-8): Narzędzie do profilowania zużycia pamięci
+Group: Development/Tools
Requires: %{name} = %{epoch}:%{version}-%{release}
%description memusage
-A toy.
-
-%description memusage -l es.UTF-8
-Un juguete.
+Memory usage profiler.
%description memusage -l pl.UTF-8
-Zabawka.
+Narzędzie do profilowania zużycia pamięci.
%prep
%setup -q -a1
mv %{name}-ports-%{ports_version} ports
-#%patch1 -p1
+%patch0 -p1
+%patch1 -p1
%patch2 -p1
-%patch3 -p1
+%patch3 -p0
+%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%{?with_cross:%patch21 -p1}
%patch22 -p1
%patch23 -p0
+
%patch25 -p1
%patch26 -p1
%patch27 -p1
%patch29 -p1
-%patch30 -p1
+%patch30 -p0
%patch31 -p1
%patch32 -p1
+%patch33 -p1
+
+%patch35 -p1
+
+%patch37 -p1
+%patch38 -p1
+%patch39 -p1
+%patch40 -p1
+# revert broken fix
+%patch41 -p1 -R
+# revert broken fix
+%patch42 -p1
# cleanup backups after patching
find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
AddOns=$AddOns,ports
%endif
+# force ld bfd (instead of gold)
+install -d alt-tools
+ln -sf %{_bindir}/ld.bfd alt-tools/ld
+PATH=$(pwd)/alt-tools:$PATH; export PATH
+
AWK="gawk" \
../%configure \
+ --with-binutils=$(pwd)/alt-tools \
--enable-kernel="%{min_kernel}" \
--enable-omitfp \
--with-headers=%{_includedir} \
%if "%{pld_release}" != "ti"
--enable-nss-crypt \
%endif
+ --enable-experimental-malloc \
--enable-stackguard-randomization \
--enable-hidden-plt \
--enable-bind-now \
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{/etc/{default,logrotate.d,rc.d/init.d,sysconfig},%{_mandir}/man{3,8},/var/log,/var/{lib,run}/nscd,/var/cache/ldconfig}
+install -d $RPM_BUILD_ROOT{/etc/{default,logrotate.d,rc.d/init.d,sysconfig,init},%{_mandir}/man{3,8},/var/log,/var/{lib,run}/nscd,/var/cache/ldconfig}
cd builddir
env LANGUAGE=C LC_ALL=C \
install -p elf/sofini.os $RPM_BUILD_ROOT%{_libdir}/sofini.o
# Include %{_libdir}/gconv/gconv-modules.cache
-./iconv/iconvconfig --nostdlib --prefix=$RPM_BUILD_ROOT %{_libdir}/gconv -o $RPM_BUILD_ROOT%{_libdir}/gconv/gconv-modules.cache
+LD_PRELOAD=$(pwd)/libc.so.6 ./iconv/iconvconfig --nostdlib --prefix=$RPM_BUILD_ROOT %{_libdir}/gconv -o $RPM_BUILD_ROOT%{_libdir}/gconv/gconv-modules.cache
cd ..
%if %{without cross}
rm -f $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}
# Languages not supported by glibc locales, but usable via $LANGUAGE:
# ang - Old English (gtk+, gnome)
# ca@valencia (gtk+, gnome; as ca_ES@valencia in FileZilla; locale exists in Debian)
+# en@shaw - English with Shavian alphabet (gnome)
+# la - Latin
# tlh - Klingon (bzflag)
# and variants:
# sr@ije (use LANGUAGE=sr_ME@ije/sr_RS@ije) (gnome)
# az_IR (gtk+2)
# bal (newt,pessulus)
# bem (alacarte)
-# ckb [or ku_IQ/ku_IR] (vlc,miro)
# co (vlc)
+# fil (stellarium)
+# frp (xfce, lxlauncher)
# gn (gn_BR in gnome, maybe gn_PY)
-# bal (newt)
-# haw (iso-codes)
+# haw (iso-codes, stellarium)
+# hrx (stellarium)
# ilo (kudzu)
# io (gtk+2, gnome, alacarte)
-# jv (gmpc)
+# jv (gmpc, avant-window-navigator, kdesudo)
# kok (iso-codes)
-# lb (geany,miro)
+# lb (geany,miro,deluge)
# man (ccsm; incorrectly named md)
+# mhr (pidgin)
# mus (bluez-gnome)
-# sco (gnomad2, picard)
+# pms (deluge)
+# sco (gnomad2, picard, stellarium)
# swg (sim)
# syr (iso-codes)
# tet (vlc)
#
+# To be removed (after fixing packages still using it):
+# sr@Latn (use sr@latin instead)
+#
+# To be clarified:
+# sr@ije or sr@ijekavian? (currently sr@ije is supported)
+# sr@ijelatin or sr@ijekavianlatin? (currently not supported)
+# sr@ijekavian and sr@ijekavianlatin exist in: akonadi-googledata, amarok, k3b, konversation, ktorrent, wesnoth
+#
# bn is used for bn_BD or bn_IN? Assume bn_IN as nothing for bn_BD appeared
# till now.
#
# 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 be@alternative be@latin \
- bg bn bn_IN br bs byn ca@valencia crh csb cy de_AT de_CH dv dz en \
+for i in aa aa@saaho af am an ang ar ar_TN as ast az be@latin be@tarask \
+ bg bn bn_IN br bs byn ca@valencia ckb crh csb cy de_AT de_CH 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 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 kk kl km kn ks ku kw ky la \
+ hi hne hsb hy ia id ig ik is it_CH iu ka kg kk kl km kn ks ku kw ky la \
lg li lo lt lv mai mg mi mk ml mn mr ms mt my nds ne nl_BE nn nr nso \
- oc om or pa pap ps pt ps rm ro sa sc se si sid sl so sq sr sr@Latn \
+ oc om or pa pap ps pt ps rm ro sa sc se si sid sl so sq sr sr@Latn tl \
sr@ije sr@latin ss st sw ta te tg th ti tig tk tl tlh tn ts tt ug uk \
ur uz uz@cyrillic ve vi wa wal wo xh yi yo zh_HK zu; do
if [ ! -d $RPM_BUILD_ROOT%{_datadir}/locale/$i/LC_MESSAGES ]; then
done
# LC_TIME category, used for localized date formats (at least by coreutils)
-for i in af be bg ca cs da de el en es et eu fi fr ga gl hu id it ja kk ko lg lt \
+for i in af be bg ca cs da de el en eo es et eu fi fr ga gl hu 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
if [ ! -d $RPM_BUILD_ROOT%{_datadir}/locale/$i ]; then
echo "%lang($lang) %{_datadir}/locale/$i" >> glibc.lang
install localedata/SUPPORTED $RPM_BUILD_ROOT%{_datadir}/i18n
# shutup check-files
-rm -f $RPM_BUILD_ROOT%{_mandir}/README.*
-rm -f $RPM_BUILD_ROOT%{_mandir}/diff.*
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/README.*
rm -f $RPM_BUILD_ROOT%{_infodir}/dir
# we don't support kernel without ptys support
-rm -f $RPM_BUILD_ROOT%{_libdir}/pt_chown
-# rpcbind
-rm -f $RPM_BUILD_ROOT%{_mandir}/*/man8/rpcinfo.8
-rm -f $RPM_BUILD_ROOT%{_mandir}/man8/rpcinfo.8
-rm -f $RPM_BUILD_ROOT%{_sbindir}/rpcinfo
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/pt_chown
+# rpcinfo dropped from glibc, provided by rpcbind now
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/{,*/}man8/rpcinfo.8
%clean
rm -rf $RPM_BUILD_ROOT
-/bin/sed -i -e '1iinclude ld.so.conf.d/*.conf' /etc/ld.so.conf
%endif
+%triggerin -- cronie,vixie-cron,hc-cron,fcron,mcron
+# restart crond if glibc is upgraded, LP#721338
+if [ "$1" != 1 ]; then
+ %service -q crond restart
+fi
+
%post libcrypt -p /sbin/ldconfig
%postun libcrypt -p /sbin/ldconfig
%endif
%attr(755,root,root) %{_bindir}/locale
%attr(755,root,root) %{_bindir}/rpcgen
-
+%attr(755,root,root) %{_bindir}/sotruss
%attr(755,root,root) %{_sbindir}/zdump
%attr(755,root,root) %{_sbindir}/zic
%dir %{_libexecdir}/getconf
%attr(755,root,root) %{_libexecdir}/getconf/*
+%dir %{_libdir}/audit
+%attr(755,root,root) %{_libdir}/audit/sotruss-lib.so
+
%dir %{_datadir}/locale
%{_datadir}/locale/locale.alias
%{_mandir}/man5/locale.5*
%{_mandir}/man5/nsswitch.conf.5*
%{_mandir}/man5/tzfile.5*
-%{_mandir}/man7/*
+%{_mandir}/man7/ascii.7*
+%{_mandir}/man7/charsets.7*
+%{_mandir}/man7/iso-8859-*.7*
+%{_mandir}/man7/iso_8859-*.7*
+%{_mandir}/man7/iso_8859_*.7*
+%{_mandir}/man7/koi8-r.7*
+%{_mandir}/man7/latin*.7*
+%{_mandir}/man7/locale.7*
+%{_mandir}/man7/unicode.7*
+%{_mandir}/man7/utf-8.7*
+%{_mandir}/man7/utf8.7*
%{_mandir}/man8/ld-linux.8*
%{_mandir}/man8/ld-linux.so.8*
%{_mandir}/man8/ld.so.8*
%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