# TODO:
+# - --enable-systemtap
# - look at locale fixes/updates in bugzilla
# - no more chicken-egg problem (postshell is no more dynamically linked with libc), remove SONAME symlinks? see files section.
# [OLD]
%undefine with_memusage
%endif
-%define ports_version 2.14.1
+%define core_version 2.16
+%define ports_version 2.16.0
%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.14.1
-Release: 1.1
+Version: %{core_version}.0
+Release: 2
Epoch: 6
License: LGPL v2.1+
Group: Libraries
Source0: http://ftp.gnu.org/gnu/glibc/%{name}-%{version}.tar.xz
-# Source0-md5: 55501b8d037a4f1d330312b30fd6d4bc
+# Source0-md5: 80b181b02ab249524ec92822c0174cf7
Source1: http://ftp.gnu.org/gnu/glibc/%{name}-ports-%{ports_version}.tar.xz
-# Source1-md5: 3b3afcb6b99fea9e3a2474cc4778ec88
+# Source1-md5: 9a2439641be7ca8b01a3175324013031
Source2: nscd.init
Source3: nscd.sysconfig
Source4: nscd.logrotate
Source6: %{name}-localedb-gen
Source7: %{name}-LD-path.c
Source8: nscd.upstart
-Patch0: %{name}-restore-rpc+nis.patch
-Patch1: %{name}-pl.po-update.patch
+Source9: nscd.tmpfiles
+# against GNU TP (libc domain)
+#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
+Patch7: 1070_all_glibc-fadvise64_64.patch
Patch8: %{name}-missing-nls.patch
Patch9: %{name}-java-libc-wait.patch
Patch10: %{name}-info.patch
-Patch11: %{name}-no_debuggable_objects.patch
+Patch11: %{name}-format.patch
+Patch12: %{name}-rh-bug-769421.patch
Patch14: %{name}-sparc-errno_fix.patch
Patch15: %{name}-new-charsets.patch
Patch16: %{name}-tzfile-noassert.patch
Patch23: %{name}-pt_pax.patch
Patch25: %{name}-cv_gnu89_inline.patch
Patch26: %{name}-posix-sh.patch
-Patch27: %{name}-i686.patch
+
Patch29: %{name}-arm-alignment-fix.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}-pr12892.patch
+
+Patch42: %{name}-pr13013.patch
URL: http://www.gnu.org/software/libc/
%{?with_selinux:BuildRequires: audit-libs-devel}
BuildRequires: autoconf
%define filterout_ld (-Wl,)?-[sS] (-Wl,)?--strip.*
# avoid -D_FORTIFY_SOURCE=X
%define filterout_cpp -D_FORTIFY_SOURCE=[0-9]+
+%define filterout_c (-Wp,)?-D_FORTIFY_SOURCE=[0-9]+ -fstack-protector(-all)?
%define specflags_sparcv9 -mcpu=ultrasparc -mvis -fcall-used-g6
%define specflags_sparc64 -mcpu=ultrasparc -mvis -fcall-used-g6
%prep
%setup -q -a1
mv %{name}-ports-%{ports_version} ports
-%patch0 -p1
-%patch1 -p1
+
%patch2 -p1
%patch3 -p0
%patch4 -p1
%patch9 -p1
%patch10 -p1
%patch11 -p1
+%patch12 -p1
%patch14 -p0
%patch15 -p1
%patch16 -p1
%patch25 -p1
%patch26 -p1
-%patch27 -p1
+
%patch29 -p1
%patch30 -p0
%patch31 -p1
%patch32 -p1
%patch33 -p1
-%patch35 -p1
-
-%patch37 -p1
%patch38 -p1
-%patch39 -p1
-%patch40 -p1
-# revert broken fix
-%patch41 -p1
+
+%patch42 -p1
# cleanup backups after patching
find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
../%configure \
--with-binutils=$(pwd)/alt-tools \
--enable-kernel="%{min_kernel}" \
- --enable-omitfp \
--with-headers=%{_includedir} \
--with%{!?with_selinux:out}-selinux \
--with-tls \
+ --enable-obsolete-rpc \
--enable-add-ons=$AddOns \
%if "%{pld_release}" != "ti"
--enable-nss-crypt \
%install
rm -rf $RPM_BUILD_ROOT
-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}
+install -d $RPM_BUILD_ROOT/etc/{default,logrotate.d,rc.d/init.d,sysconfig,init} \
+ $RPM_BUILD_ROOT{%{_mandir}/man{3,8},/var/log,/var/{lib,run}/nscd} \
+ $RPM_BUILD_ROOT{/var/cache/ldconfig,/usr/lib/tmpfiles.d}
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
-LD_PRELOAD=$(pwd)/libc.so.6 ./iconv/iconvconfig --nostdlib --prefix=$RPM_BUILD_ROOT %{_libdir}/gconv -o $RPM_BUILD_ROOT%{_libdir}/gconv/gconv-modules.cache
+LD_PRELOAD=$(pwd)/elf/ld.so:$(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}
: > $RPM_BUILD_ROOT/var/lib/nscd/group
: > $RPM_BUILD_ROOT/var/lib/nscd/hosts
+install %{SOURCE9} $RPM_BUILD_ROOT/usr/lib/tmpfiles.d/nscd.conf
+
rm -rf documentation
install -d documentation
# sr@ije (use LANGUAGE=sr_ME@ije/sr_RS@ije) (gnome)
#
# To be added when they become supported by glibc:
+# ach (vlc)
# az_IR (gtk+2)
# bal (newt,pessulus)
# bem (alacarte)
+# cgg (vlc)
# co (vlc)
# fil (stellarium)
# frp (xfce, lxlauncher)
# ilo (kudzu)
# io (gtk+2, gnome, alacarte)
# jv (gmpc, avant-window-navigator, kdesudo)
+# kmr (vlc)
# kok (iso-codes)
# lb (geany,miro,deluge)
# man (ccsm; incorrectly named md)
# 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.
+# Short forms (omitted country code, used instead of long form) for ambiguous or unclear cases:
+# aa=aa_ER
+# ar=common? (AE, BH, DZ, EG, IQ, JO, KW, LB, LY, MA, OM, QA, SA, SD, SY, TN, YE)
+# bn=bn_BD
+# bo=bo_CN? (or common for CN, IN?)
+# ca=ca_ES
+# ckb=ckb_IQ
+# de=de_DE
+# en=common? (en_AU, en_CA, en_GB, en_NZ, en_US are used for particular variants)
+# eo=common
+# es=es_ES
+# eu=eu_ES
+# ff=ff_SN
+# fr=fr_FR
+# fy=fy_NL
+# gez=gez_ET (?)
+# it=it_IT
+# li=li_NL
+# nds=nds_DE
+# nl=nl_NL
+# om=om_ET
+# pa=pa_IN
+# pt=pt_PT
+# ru=ru_RU
+# so=so_SO
+# sr=sr_RS [cyrillic]
+# sv=sv_SE
+# sw=sw_TZ (or common for KE, TZ, UG?)
+# ta=ta_IN
+# te=te_IN
+# ti=ti_ER (?)
+# tr=tr_TR
+# ur=ur_PK (?)
+# zh: no short code used (use zh_CN, zh_HK, zh_SG[not included yet], zh_TW)
#
# Omitted here - already existing (with libc.mo):
# 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@latin be@tarask \
- bg bn bn_IN br bs byn ca@valencia ckb crh csb cy de_AT de_CH dv dz en \
+ bg bn bn_IN bo 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 \
+ 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 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 tl \
%files -f %{name}.lang
%defattr(644,root,root,755)
-%doc README NEWS FAQ BUGS
+%doc README NEWS BUGS CONFORMANCE
%if %{without cross}
%attr(755,root,root) /sbin/glibc-postinst
%endif
# TODO: package ldconfig symlinks as %ghost
-%attr(755,root,root) /%{_lib}/ld-%{version}.so
+%attr(755,root,root) /%{_lib}/ld-%{core_version}.so
# wildly arch-dependent ld.so SONAME symlink
%ifarch %{ix86} sparc sparcv9 sparc64 alpha sh
%attr(755,root,root) /%{_lib}/ld-linux.so.2
%ifnarch %{ix86} sparc sparcv9 sparc64 alpha sh ia64 %{x8664} ppc64 s390x %{arm}
%attr(755,root,root) /%{_lib}/ld.so.1
%endif
-%attr(755,root,root) /%{_lib}/libBrokenLocale-%{version}.so
+%attr(755,root,root) /%{_lib}/libBrokenLocale-%{core_version}.so
%ifarch alpha
%attr(755,root,root) /%{_lib}/libBrokenLocale.so.1.1
%else
%attr(755,root,root) /%{_lib}/libBrokenLocale.so.1
%endif
%attr(755,root,root) /%{_lib}/libSegFault.so
-%attr(755,root,root) /%{_lib}/libanl-%{version}.so
+%attr(755,root,root) /%{_lib}/libanl-%{core_version}.so
%attr(755,root,root) /%{_lib}/libanl.so.1
-%attr(755,root,root) /%{_lib}/libc-%{version}.so
+%attr(755,root,root) /%{_lib}/libc-%{core_version}.so
%ifarch alpha ia64
%attr(755,root,root) /%{_lib}/libc.so.6.1
%else
%attr(755,root,root) /%{_lib}/libc.so.6
%endif
-%attr(755,root,root) /%{_lib}/libcidn-%{version}.so
+%attr(755,root,root) /%{_lib}/libcidn-%{core_version}.so
%attr(755,root,root) /%{_lib}/libcidn.so.1
-%attr(755,root,root) /%{_lib}/libdl-%{version}.so
+%attr(755,root,root) /%{_lib}/libdl-%{core_version}.so
%ifarch alpha
%attr(755,root,root) /%{_lib}/libdl.so.2.1
%else
%attr(755,root,root) /%{_lib}/libdl.so.2
%endif
-%attr(755,root,root) /%{_lib}/libm-%{version}.so
+%attr(755,root,root) /%{_lib}/libm-%{core_version}.so
%ifarch alpha ia64
%attr(755,root,root) /%{_lib}/libm.so.6.1
%else
%attr(755,root,root) /%{_lib}/libm.so.6
%endif
-%attr(755,root,root) /%{_lib}/libnsl-%{version}.so
+%attr(755,root,root) /%{_lib}/libnsl-%{core_version}.so
%ifarch alpha
%attr(755,root,root) /%{_lib}/libnsl.so.1.1
%else
%attr(755,root,root) /%{_lib}/libnsl.so.1
%endif
-%attr(755,root,root) /%{_lib}/libpthread-%{version}.so
+%attr(755,root,root) /%{_lib}/libpthread-%{core_version}.so
%attr(755,root,root) /%{_lib}/libpthread.so.0
-%attr(755,root,root) /%{_lib}/libresolv-%{version}.so
+%attr(755,root,root) /%{_lib}/libresolv-%{core_version}.so
%ifarch alpha
%attr(755,root,root) /%{_lib}/libresolv.so.2.1
%else
%attr(755,root,root) /%{_lib}/libresolv.so.2
%endif
-%attr(755,root,root) /%{_lib}/librt-%{version}.so
+%attr(755,root,root) /%{_lib}/librt-%{core_version}.so
%attr(755,root,root) /%{_lib}/librt.so.1
%attr(755,root,root) /%{_lib}/libthread_db-1.0.so
%attr(755,root,root) /%{_lib}/libthread_db.so.1
-%attr(755,root,root) /%{_lib}/libutil-%{version}.so
+%attr(755,root,root) /%{_lib}/libutil-%{core_version}.so
%ifarch alpha
%attr(755,root,root) /%{_lib}/libutil.so.1.1
%else
%endif
%{?with_localedb:%dir %{_libdir}/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-%{version}.so
+%attr(755,root,root) /%{_lib}/libnss_dns-%{core_version}.so
%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-%{version}.so
+%attr(755,root,root) /%{_lib}/libnss_files-%{core_version}.so
%attr(755,root,root) /%{_lib}/libnss_files.so.2
%defattr(644,root,root,755)
%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
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/catchsegv
%attr(755,root,root) %{_bindir}/ldd
+%attr(755,root,root) %{_bindir}/pldd
+%attr(755,root,root) %{_bindir}/sotruss
+%dir %{_libdir}/audit
+%attr(755,root,root) %{_libdir}/audit/sotruss-lib.so
+
%{_mandir}/man1/catchsegv.1*
%{_mandir}/man1/ldd.1*
%lang(es) %{_mandir}/es/man1/ldd.1*
%files libcrypt
%defattr(644,root,root,755)
-%attr(755,root,root) /%{_lib}/libcrypt-%{version}.so
+%attr(755,root,root) /%{_lib}/libcrypt-%{core_version}.so
%ifarch alpha
%attr(755,root,root) %ghost /%{_lib}/libcrypt.so.1.1
%else
%files -n nss_compat
%defattr(644,root,root,755)
-%attr(755,root,root) /%{_lib}/libnss_compat-%{version}.so
+%attr(755,root,root) /%{_lib}/libnss_compat-%{core_version}.so
%attr(755,root,root) /%{_lib}/libnss_compat.so.2
%files -n nss_hesiod
%defattr(644,root,root,755)
-%attr(755,root,root) /%{_lib}/libnss_hesiod-%{version}.so
+%attr(755,root,root) /%{_lib}/libnss_hesiod-%{core_version}.so
%attr(755,root,root) /%{_lib}/libnss_hesiod.so.2
%files -n nss_nis
%defattr(644,root,root,755)
-%attr(755,root,root) /%{_lib}/libnss_nis-%{version}.so
+%attr(755,root,root) /%{_lib}/libnss_nis-%{core_version}.so
%attr(755,root,root) /%{_lib}/libnss_nis.so.2
%files -n nss_nisplus
%defattr(644,root,root,755)
-%attr(755,root,root) /%{_lib}/libnss_nisplus-%{version}.so
+%attr(755,root,root) /%{_lib}/libnss_nisplus-%{core_version}.so
%attr(755,root,root) /%{_lib}/libnss_nisplus.so.2
%if %{with memusage}
%files devel-doc
%defattr(644,root,root,755)
-%doc documentation/* NOTES PROJECTS
+%doc documentation/* PROJECTS
%{_infodir}/libc.info*
%{_mandir}/man1/sprof.1*
%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
+/usr/lib/tmpfiles.d/nscd.conf
%dir /var/run/nscd
%dir /var/lib/nscd
%attr(600,root,root) %ghost /var/lib/nscd/passwd