# default is 2.4.6
#
# Conditional build:
-%bcond_without fp # build without frame pointer (pass \--enable-omitfp)
+%bcond_with omitfp # build without frame pointer (pass \--enable-omitfp)
%bcond_without memusage # don't build memusage utility
%bcond_with kernelheaders # use headers from kernel-headers instead of
- # glibc-kernel-headers (evil, breakage etc., don't use)
+ # linux-libc-headers (evil, breakage etc., don't use)
%bcond_without dist_kernel # for above, allow non-distribution kernel
-%bcond_with nptl # use nptl instead of linuxthreads
-%bcond_with tls # use tls
-%bcond_with tests # do not perform "make test"
+%bcond_with nptl # use nptl instead of linuxthreads (implies tls)
+%bcond_with tls # use tls
+%bcond_with tests # perform "make test"
#
# TODO:
%if %{with nptl}
# it seems that nptl uses cmpxchgl (available since i486) on x86
-%ifarch i486 i586 i686 athlon amd64 ia64 s390 s390x sparcv9 ppc ppc64
+%ifarch i486 i586 i686 pentium3 pentium4 athlon amd64 ia64 s390 s390x sparcv9 ppc ppc64
%if "%{min_kernel}" < "2.6.0"
%global min_kernel 2.6.0
%endif
+# NPTL requires TLS
+%define with_tls 1
%else
-%undefine with_nptl
+%undefine with_nptl
%endif
%endif
%if %{with tls}
%ifnarch %{ix86} amd64 ia64 s390 s390x sparc sparcv9 ppc ppc64
-%undefine with_tls
+%undefine with_tls
%endif
%endif
-%define gkh_version 7:2.6.0.3
+%define llh_version 7:2.6.4.0
+%define _snap 20040603
+
Summary: GNU libc
Summary(de): GNU libc
Summary(es): GNU libc
Summary(tr): GNU libc
Summary(uk): GNU libc ×ÅÒÓ¦§ 2.3
Name: glibc
-Version: 2.3.3
-Release: 0.20040101.10%{?with_nptl:+nptl}
+Version: 2.3.4
+Release: 0.%{_snap}.1%{?with_nptl:+nptl}
Epoch: 6
License: LGPL
Group: Libraries
-# 20040101 snapshot
#Source0: ftp://sources.redhat.com/pub/glibc/releases/%{name}-%{version}.tar.bz2
-Source0: %{name}-%{version}.tar.bz2
-# Source0-md5: b4e3f037a0b36afc705af344033a91c7
+Source0: %{name}-%{_snap}.tar.bz2
+# Source0-md5: 8564ff95873944201e4bb6317ea070d6
#Source1: ftp://sources.redhat.com/pub/glibc/releases/%{name}-linuxthreads-%{version}.tar.bz2
-Source1: %{name}-linuxthreads-%{version}.tar.bz2
-# Source1-md5: 97c30992592f854a67107579dcef61dd
+#Source1: %{name}-linuxthreads-2.3.3.tar.bz2
Source2: nscd.init
Source3: nscd.sysconfig
Source4: nscd.logrotate
-Source5: http://www.mif.pg.gda.pl/homepages/ankry/man-PLD/%{name}-man-pages.tar.bz2
-# Source5-md5: ddba280857330dabba4d8c16d24a6dfd
-Source6: http://www.mif.pg.gda.pl/homepages/ankry/man-PLD/%{name}-non-english-man-pages.tar.bz2
-# Source6-md5: 2e3992c2e1bc94212c2cd33236de6058
+#Source5: http://www.mif.pg.gda.pl/homepages/ankry/man-PLD/%{name}-man-pages.tar.bz2
+Source5: %{name}-man-pages.tar.bz2
+# Source5-md5: 03bee93e9786b3e7dad2570ccb0cbc5c
+#Source6: http://www.mif.pg.gda.pl/homepages/ankry/man-PLD/%{name}-non-english-man-pages.tar.bz2
+Source6: %{name}-non-english-man-pages.tar.bz2
+# Source6-md5: 6159f0a9b6426b5f6fc1b0d8d21b9b76
# borrowed from util-linux
-Source7: sln.8
-Source8: %{name}-localedb-gen
+Source7: %{name}-localedb-gen
Patch0: %{name}-info.patch
Patch1: %{name}-pl.po-update.patch
Patch2: %{name}-pld.patch
Patch4: %{name}-linuxthreads-lock.patch
Patch5: %{name}-pthread_create-manpage.patch
Patch6: %{name}-paths.patch
-Patch7: %{name}-getaddrinfo-workaround.patch
+Patch7: %{name}-i786.patch
Patch8: %{name}-postshell.patch
Patch9: %{name}-missing-nls.patch
Patch10: %{name}-java-libc-wait.patch
Patch13: %{name}-kernel_includes.patch
Patch14: %{name}-includes.patch
Patch15: %{name}-soinit-EH_FRAME.patch
-Patch16: %{name}-fix-asserts.patch
Patch17: %{name}-sparc-errno_fix.patch
Patch18: %{name}-make.patch
-Patch19: %{name}-tests-io-tmp.patch
Patch20: %{name}-tests-noproc.patch
Patch21: %{name}-linuxthreads-ppc-fix.patch
-Patch22: %{name}-alpha-sigaction.patch
Patch23: %{name}-new-charsets.patch
-Patch24: %{name}-lg_UG.patch
-Patch25: %{name}-UTF8-locales.patch
Patch26: %{name}-sr_CS.patch
+Patch27: %{name}-alpha-div.patch
+# PaX
+Patch30: %{name}-pax_iconvconfig.patch
+Patch31: %{name}-pax_dl-execstack.patch
URL: http://www.gnu.org/software/libc/
BuildRequires: automake
BuildRequires: binutils >= 2.13.90.0.2
%if %{with kernelheaders}
%{?with_dist_kernel:BuildRequires: kernel-headers < 2.5}
%else
-BuildRequires: glibc-kernel-headers >= %{gkh_version}
+BuildRequires: linux-libc-headers >= %{llh_version}
%endif
BuildRequires: perl-base
BuildRequires: rpm-build >= 4.3-0.20030610.28
AutoReq: false
PreReq: basesystem
Requires: glibc-misc = %{epoch}:%{version}-%{release}
+%{?with_tls:Provides: glibc(tls)}
Provides: ld.so.2
Provides: ldconfig
Provides: /sbin/ldconfig
Summary(uk): äÏÄÁÔËÏצ ¦Â̦ÏÔÅËÉ, ÐÏÔÒ¦ÂΦ ÄÌÑ ËÏÍЦÌÑæ§
Group: Development/Libraries
Requires: %{name} = %{epoch}:%{version}-%{release}
-%{!?with_kernelheaders:Requires: glibc-kernel-headers >= %{gkh_version}}
+%{!?with_kernelheaders:Requires: linux-libc-headers >= %{llh_version}}
+Obsoletes: libiconv-devel
%description devel
To develop programs which use the standard C libraries (which nearly
Summary(pl): Kod ¼ród³owy bazy locale
Group: Daemons
Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires: sed
%description -n localedb-src
This add-on package contains the data needed to build the locale data
Summary(es): Base de datos de todos los locales soportados por glibc
Summary(pl): Baza danych locale dla wszystkich lokalizacji obs³ugiwanych przez glibc
Group: Libraries
+Requires: iconv = %{epoch}:%{version}-%{release}
Requires: %{name} = %{epoch}:%{version}-%{release}
%description localedb-all
Summary(uk): óÔÁÔÉÞΦ ¦Â̦ÏÔÅËÉ glibc
Group: Development/Libraries
Requires: %{name}-devel = %{epoch}:%{version}-%{release}
+Obsoletes: libiconv-static
%description static
GNU libc static libraries.
Statyczne 64-bitowe biblioteki GNU libc.
%prep
-%setup -q -a 1
+#setup -q -a 1 -n libc
+%setup -q -n libc
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
-#%%patch7 -p1
+%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
%{?with_kernelheaders:%patch13}
%{?!with_kernelheaders:%patch14 -p1}
%patch15 -p1
-%patch16 -p1
-%patch17
+%patch17 -p0
%patch18 -p1
-%patch19 -p1
%patch20 -p1
%patch21 -p1
-%patch22 -p1
%patch23 -p1
-mv -f localedata/locales/{lug_UG,lg_UG}
-%patch24 -p0
-%patch25 -p1
-# not applied yet - not sure about default encodings
-#%patch26 -p1
+%patch26 -p1
+%patch27 -p1
+
+%patch30 -p1
+%patch31 -p1
chmod +x scripts/cpp
# Build glibc
cp /usr/share/automake/config.sub .
cp /usr/share/automake/config.sub scripts
+%{__aclocal}
+%{__autoconf}
+# i786 (aka pentium4) hack
+cd nptl/sysdeps/i386 && ln -s i686 i786 && cd -
+cd nptl/sysdeps/unix/sysv/linux/i386 && ln -s i686 i786 && cd -
+#
[ -d builddir ] || mkdir builddir
cd builddir
# avoid stripping ld.so by -s in rpmldflags
LDFLAGS=" " ; export LDFLAGS
../%configure \
--enable-kernel="%{min_kernel}" \
- --%{!?with_fp:en}%{?with_fp:dis}able-omitfp \
+ --%{?with_omitfp:en}%{!?with_omitfp:dis}able-omitfp \
+ %{?with_tls:--with-tls} \
%if %{with nptl}
--enable-add-ons=nptl \
- --with-tls \
--disable-profile \
%else
- %{?with_tls:--with-tls} \
--enable-add-ons=linuxthreads \
--enable-profile \
%endif
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{/etc/{logrotate.d,rc.d/init.d,sysconfig},%{_mandir}/man{3,8},/var/log}
+install -d $RPM_BUILD_ROOT{/etc/{logrotate.d,rc.d/init.d,sysconfig},%{_mandir}/man{3,8},/var/log,/var/run/nscd}
cd builddir
# Collect locale files and mark them with %%lang()
rm -f ../glibc.lang
-# bokmaal has been renamed (no_NO -> nb_NO) in 2.3.3, but not in po
-mv -f $RPM_BUILD_ROOT%{_datadir}/locale/{no,nb}
echo '%defattr(644,root,root,755)' > ../glibc.lang
for i in $RPM_BUILD_ROOT%{_datadir}/locale/* $RPM_BUILD_ROOT%{_libdir}/locale/* ; do
if [ -d $i ]; then
fi
done
# XXX: to be added when become supported by glibc
-# ia,li,sr@Latn (used by GNOME)
-# note: GNOME2 uses sr (and probably uz) as cyrillic!
+# ia,li (used by GNOME)
# nso,ss,ven (used by KDE)
# NOTES:
# bn is used for bn_BD or bn_IN?
# be,ca,cs,da,de,el,en_GB,es,fi,fr,gl,hr,hu,it,ja,ko,nb,nl,pl,pt_BR,sk,sv,tr,zh_CN,zh_TW
for i in af am ar az bg bn br bs cy de_AT en en_AU eo es_AR es_MX et eu fa ga \
gr he hi id is ja_JP.SJIS ka kn lg lt lv mk ml mn ms mt nn pt ro ru \
- se sl sq sr sr@cyrillic ta tg th uk uz vi wa xh yi zu ; do
+ se sl sq sr sr@Latn ta tg th uk uz vi wa xh yi zu ; do
if [ ! -d $RPM_BUILD_ROOT%{_datadir}/locale/$i/LC_MESSAGES ]; then
install -d $RPM_BUILD_ROOT%{_datadir}/locale/$i/LC_MESSAGES
lang=`echo $i | sed -e 's/_.*//'`
echo "%lang($lang) %{_datadir}/locale/$i" >> ../glibc.lang
fi
done
-install %{SOURCE7} $RPM_BUILD_ROOT%{_mandir}/man8
# localedb-gen infrastructure
-install %{SOURCE8} $RPM_BUILD_ROOT%{_bindir}/localedb-gen
+install %{SOURCE7} $RPM_BUILD_ROOT%{_bindir}/localedb-gen
install ../localedata/SUPPORTED $RPM_BUILD_ROOT%{_datadir}/i18n
# shutup check-files
# we don't support kernel without ptys support
rm -f $RPM_BUILD_ROOT%{_libdir}/pt_chown
+# no longer supported (/dev/null has the same, but expected behaviour)
+rm -f $RPM_BUILD_ROOT%{_bindir}/glibcbug
%clean
rm -rf $RPM_BUILD_ROOT
%attr(755,root,root) /%{_lib}/libnsl*
%attr(755,root,root) /%{_lib}/lib[BScmprtu]*
%dir %{_libdir}/locale
+%config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/ld.so.conf
+%ghost %{_sysconfdir}/ld.so.cache
#%files -n nss_dns
%defattr(644,root,root,755)
%files misc -f %{name}.lang
%defattr(644,root,root,755)
-%config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/ld.so.conf
%config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/nsswitch.conf
%config %{_sysconfdir}/rpc
-%ghost %{_sysconfdir}/ld.so.cache
%attr(755,root,root) /sbin/sln
%attr(755,root,root) %{_bindir}/catchsegv
%attr(755,root,root) %{_bindir}/getent
-%attr(755,root,root) %{_bindir}/glibcbug
%attr(755,root,root) %{_bindir}/iconv
%attr(755,root,root) %{_bindir}/ldd
%ifnarch alpha ppc sparc64 amd64
%{_datadir}/zoneinfo
%exclude %{_datadir}/zoneinfo/right
-
-%{_mandir}/man1/[!lsg]*
+%{_mandir}/man1/catchsegv.1*
%{_mandir}/man1/getent.1*
-%{_mandir}/man1/locale.1*
+%{_mandir}/man1/iconv.1*
%{_mandir}/man1/ldd.1*
-%{_mandir}/man5/???[!d]*
+%{_mandir}/man1/locale.1*
+%{_mandir}/man1/rpcgen.1*
+%{_mandir}/man5/locale.5*
+%{_mandir}/man5/nsswitch.conf.5*
+%{_mandir}/man5/tzfile.5*
%{_mandir}/man7/*
-%{_mandir}/man8/[!n]*
-%lang(cs) %{_mandir}/cs/man[578]/*
-%lang(de) %{_mandir}/de/man[578]/*
-%lang(es) %{_mandir}/es/man[578]/*
+%{_mandir}/man8/ld*.8*
+%{_mandir}/man8/rpcinfo.8*
+%{_mandir}/man8/sln.8*
+%{_mandir}/man8/tzselect.8*
+%{_mandir}/man8/zdump.8*
+%{_mandir}/man8/zic.8*
+%lang(cs) %{_mandir}/cs/man7/*
+%lang(de) %{_mandir}/de/man5/tzfile.5*
+%lang(de) %{_mandir}/de/man7/*
+%lang(es) %{_mandir}/es/man5/locale.5*
+%lang(es) %{_mandir}/es/man5/nsswitch.conf.5*
+%lang(es) %{_mandir}/es/man5/tzfile.5*
+%lang(es) %{_mandir}/es/man7/*
+%lang(es) %{_mandir}/es/man8/ld*.8*
+%lang(es) %{_mandir}/es/man8/tzselect.8*
+%lang(es) %{_mandir}/es/man8/zdump.8*
+%lang(es) %{_mandir}/es/man8/zic.8*
%lang(fi) %{_mandir}/fi/man1/ldd.1*
%lang(fr) %{_mandir}/fr/man1/ldd.1*
-%lang(fr) %{_mandir}/fr/man[578]/*
+%lang(fr) %{_mandir}/fr/man5/locale.5*
+%lang(fr) %{_mandir}/fr/man5/nsswitch.conf.5*
+%lang(fr) %{_mandir}/fr/man5/tzfile.5*
+%lang(fr) %{_mandir}/fr/man7/*
+%lang(fr) %{_mandir}/fr/man8/ld*.8*
+%lang(fr) %{_mandir}/fr/man8/tzselect.8*
+%lang(fr) %{_mandir}/fr/man8/zdump.8*
+%lang(fr) %{_mandir}/fr/man8/zic.8*
%lang(hu) %{_mandir}/hu/man1/ldd.1*
-%lang(hu) %{_mandir}/hu/man[578]/*
-%lang(it) %{_mandir}/it/man[578]/*
-%lang(ja) %{_mandir}/ja/man1/[!lsg]*
+%lang(hu) %{_mandir}/hu/man7/*
+%lang(hu) %{_mandir}/hu/man8/ld*.8*
+%lang(hu) %{_mandir}/hu/man8/zdump.8*
+%lang(it) %{_mandir}/it/man5/locale.5*
+%lang(it) %{_mandir}/it/man7/*
+%lang(it) %{_mandir}/it/man8/tzselect.8*
+%lang(it) %{_mandir}/it/man8/zdump.8*
%lang(ja) %{_mandir}/ja/man1/ldd.1*
-%lang(ja) %{_mandir}/ja/man5/???[!d]*
+%lang(ja) %{_mandir}/ja/man1/rpcgen.1*
+%lang(ja) %{_mandir}/ja/man5/locale.5*
+%lang(ja) %{_mandir}/ja/man5/nsswitch.conf.5*
+%lang(ja) %{_mandir}/ja/man5/tzfile.5*
%lang(ja) %{_mandir}/ja/man7/*
-%lang(ja) %{_mandir}/ja/man8/[!n]*
-%lang(ko) %{_mandir}/ko/man[578]/*
-# %lang(nl) %{_mandir}/nl/man[578]/*
+%lang(ja) %{_mandir}/ja/man8/ld*.8*
+%lang(ja) %{_mandir}/ja/man8/rpcinfo.8*
+%lang(ja) %{_mandir}/ja/man8/sln.8*
+%lang(ja) %{_mandir}/ja/man8/tzselect.8*
+%lang(ja) %{_mandir}/ja/man8/zdump.8*
+%lang(ja) %{_mandir}/ja/man8/zic.8*
+%lang(ko) %{_mandir}/ko/man5/nsswitch.conf.5*
+%lang(ko) %{_mandir}/ko/man5/tzfile.5*
+%lang(ko) %{_mandir}/ko/man7/*
+%lang(ko) %{_mandir}/ko/man8/tzselect.8*
+%lang(ko) %{_mandir}/ko/man8/zdump.8*
%lang(pl) %{_mandir}/pl/man1/ldd.1*
-%lang(pl) %{_mandir}/pl/man[578]/*
-%lang(pt) %{_mandir}/pt/man5/???[!d]*
+%lang(pl) %{_mandir}/pl/man5/locale.5*
+%lang(pl) %{_mandir}/pl/man7/*
+%lang(pl) %{_mandir}/pl/man8/ld*.8*
+%lang(pt) %{_mandir}/pt/man5/locale.5*
+%lang(pt) %{_mandir}/pt/man5/nsswitch.conf.5*
+%lang(pt) %{_mandir}/pt/man5/tzfile.5*
%lang(pt) %{_mandir}/pt/man7/*
-%lang(pt) %{_mandir}/pt/man8/[!n]*
-%lang(pt_BR) %{_mandir}/pt_BR/man5/???[!d]*
-%lang(pt_BR) %{_mandir}/pt_BR/man7/*
-%lang(pt_BR) %{_mandir}/pt_BR/man8/[!n]*
-%lang(ru) %{_mandir}/ru/man[578]/*
+%lang(pt) %{_mandir}/pt/man8/ld*.8*
+%lang(pt) %{_mandir}/pt/man8/tzselect.8*
+%lang(pt) %{_mandir}/pt/man8/zdump.8*
+%lang(pt) %{_mandir}/pt/man8/zic.8*
+%lang(ru) %{_mandir}/ru/man5/nsswitch.conf.5*
+%lang(ru) %{_mandir}/ru/man5/tzfile.5*
+%lang(ru) %{_mandir}/ru/man7/*
+%lang(ru) %{_mandir}/ru/man8/tzselect.8*
+%lang(ru) %{_mandir}/ru/man8/zdump.8*
+%lang(ru) %{_mandir}/ru/man8/zic.8*
+%lang(zh_CN) %{_mandir}/zh_CN/man1/iconv.1*
+%lang(zh_CN) %{_mandir}/zh_CN/man1/ldd.1*
+%lang(zh_CN) %{_mandir}/zh_CN/man5/locale.5*
+%lang(zh_CN) %{_mandir}/zh_CN/man5/tzfile.5*
+%lang(zh_CN) %{_mandir}/zh_CN/man7/*
+%lang(zh_CN) %{_mandir}/zh_CN/man8/tzselect.8*
+%lang(zh_CN) %{_mandir}/zh_CN/man8/zdump.8*
+%lang(zh_CN) %{_mandir}/zh_CN/man8/zic.8*
%files zoneinfo_right
%defattr(644,root,root,755)
%{_libdir}/libpthread_nonshared.a
%{_libdir}/librpcsvc.a
-%{_mandir}/man1/getconf*
-%{_mandir}/man1/sprof*
+%{_mandir}/man1/getconf.1*
+%{_mandir}/man1/sprof.1*
%{_mandir}/man3/*
%lang(cs) %{_mandir}/cs/man3/*
%lang(de) %{_mandir}/de/man3/*
%lang(es) %{_mandir}/es/man3/*
%lang(fr) %{_mandir}/fr/man3/*
%lang(hu) %{_mandir}/hu/man3/*
-# %lang(it) %{_mandir}/it/man3/*
+%lang(it) %{_mandir}/it/man3/*
%lang(ja) %{_mandir}/ja/man3/*
%lang(ko) %{_mandir}/ko/man3/*
%lang(nl) %{_mandir}/nl/man3/*
%lang(pl) %{_mandir}/pl/man3/*
%lang(pt) %{_mandir}/pt/man3/*
-%lang(pt_BR) %{_mandir}/pt_BR/man3/*
%lang(ru) %{_mandir}/ru/man3/*
+%lang(uk) %{_mandir}/uk/man3/*
+%lang(zh_CN) %{_mandir}/zh_CN/man3/*
%files -n nscd
%defattr(644,root,root,755)
%attr(755,root,root) %{_sbindir}/nscd*
%attr(640,root,root) /etc/logrotate.d/nscd
%attr(640,root,root) %ghost /var/log/nscd
-%attr(640,root,root) /var/run/nscd
-%{_mandir}/man5/nscd.conf*
-%{_mandir}/man8/nscd*
-%lang(ja) %{_mandir}/ja/man5/nscd.conf*
-%lang(ja) %{_mandir}/ja/man8/nscd*
-%lang(pt) %{_mandir}/pt/man5/nscd.conf*
-%lang(pt) %{_mandir}/pt/man8/nscd*
-%lang(pt_BR) %{_mandir}/pt_BR/man5/nscd.conf*
-%lang(pt_BR) %{_mandir}/pt_BR/man8/nscd*
+%dir /var/run/nscd
+%{_mandir}/man5/nscd.conf.5*
+%{_mandir}/man8/nscd.8*
+%{_mandir}/man8/nscd_nischeck.8*
+%lang(fr) %{_mandir}/fr/man5/nscd.conf.5*
+%lang(fr) %{_mandir}/fr/man8/nscd.8*
+%lang(ja) %{_mandir}/ja/man5/nscd.conf.5*
+%lang(ja) %{_mandir}/ja/man8/nscd.8*
+%lang(pt) %{_mandir}/pt/man5/nscd.conf.5*
+%lang(pt) %{_mandir}/pt/man8/nscd.8*
%files -n localedb-src
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/localedef
%attr(755,root,root) %{_bindir}/localedb-gen
%{_datadir}/i18n
-%{_mandir}/man1/localedef*
+%{_mandir}/man1/localedef.1*
%files localedb-all
%defattr(644,root,root,755)