%bcond_with tests_nptl # perform NPTL tests on dual build (requires 2.6.x kernel)
%bcond_without localedb # don't build localedb-all (is time consuming)
%bcond_with cross # build using crossgcc (without libgcc_eh)
+%bcond_with boot64 # bootstrap *64 using cross* (sparc64 currently)
%bcond_with pax # apply PaX hack
#
# TODO:
%ifarch sparc64
%undefine with_memusage
%endif
+%if %{with boot64}
+%define with_cross 1
+%ifarch sparc64
+%define __cc sparc64-pld-linux-gcc
+%endif
+%endif
%if %{with linuxthreads} && %{with nptl}
%define with_dual 1
Summary(tr): GNU libc
Summary(uk): GNU libc ×ÅÒÓ¦§ 2.3
Name: glibc
-%define snap 20051031
-Version: 2.3.5
-Release: 8.1
+Version: 2.3.6
+Release: 2.9
Epoch: 6
License: LGPL
Group: Libraries
-# Source0: ftp://sources.redhat.com/pub/glibc/releases/%{name}-%{version}.tar.bz2
-Source0: ftp://sources.redhat.com/pub/glibc/snapshots/%{name}-2.3-%{snap}.tar.bz2
-# Source0-md5: 86acd77624a0d699f023f5d1798095fe
+Source0: ftp://sources.redhat.com/pub/glibc/releases/%{name}-%{version}.tar.bz2
+# Source0-md5: bfdce99f82d6dbcb64b7f11c05d6bc96
Source1: ftp://sources.redhat.com/pub/glibc/releases/%{name}-linuxthreads-%{version}.tar.bz2
-# Source1-md5: 77011b0898393c56b799bc011a0f37bf
+# Source1-md5: d4eeda37472666a15cc1f407e9c987a9
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: %{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
-Source7: %{name}-localedb-gen
-Source8: %{name}-LD-path.c
-Source9: postshell.c
+Source5: http://qboosh.cs.net.pl/man/%{name}-man-pages.tar.bz2
+# Source5-md5: f464eadf3cf06761f65639e44a179e6b
+Source6: %{name}-localedb-gen
+Source7: %{name}-LD-path.c
+Source8: postshell.c
Patch0: %{name}-info.patch
Patch1: %{name}-pl.po-update.patch
Patch2: %{name}-pld.patch
Patch27: %{name}-sys-kd.patch
Patch28: %{name}-cross-gcc_eh.patch
Patch29: %{name}-pax_dl-execstack.patch
+Patch30: %{name}-large_collate_tables.patch
+Patch31: %{name}-ctype-compat.patch
+Patch32: %{name}-sparc-mman.h.patch
URL: http://www.gnu.org/software/libc/
+%{?with_selinux:BuildRequires: audit-libs-devel}
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: binutils >= 2:2.15.90.0.3
+%{!?with_cross:BuildRequires: dietlibc-static}
BuildRequires: gcc >= 5:3.2
-BuildRequires: gcc < 5:4.0
%ifarch ppc ppc64 sparc sparcv9 sparc64
%if %{with nptl} || %{with __thread}
BuildRequires: gcc >= 5:3.4
BuildRequires: rpmbuild(macros) >= 1.213
BuildRequires: sed >= 4.0.5
BuildRequires: texinfo
-BuildRequires: dietlibc-static
AutoReq: false
-PreReq: basesystem
-Requires: glibc-misc = %{epoch}:%{version}-%{release}
+Requires: %{name}-misc = %{epoch}:%{version}-%{release}
+Requires: basesystem
%{?with_tls:Provides: glibc(tls)}
Provides: ldconfig
Provides: /sbin/ldconfig
%package misc
Summary: Utilities and data used by glibc
Summary(pl): Narzêdzia i dane u¿ywane przez glibc
-Group: Development/Libraries
+Group: Applications/System
AutoReq: false
-PreReq: %{name} = %{epoch}:%{version}-%{release}
+Requires(pre): %{name} = %{epoch}:%{version}-%{release}
+Requires: %{name} = %{epoch}:%{version}-%{release}
%description misc
Utilities and data used by glibc.
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires: %{name}-headers = %{epoch}:%{version}-%{release}
Requires: %{name}-devel-utils = %{epoch}:%{version}-%{release}
-Requires: %{name}-devel-doc = %{epoch}:%{version}-%{release}
Provides: %{name}-devel(%{_target_cpu}) = %{epoch}:%{version}-%{release}
Obsoletes: libiconv-devel
%package headers
Summary: Header files for development using standard C libraries
Summary(pl): Pliki nag³ówkowe do tworzenia programów przy u¿yciu standardowych bibliotek C
-Group: Development/Libraries
+Group: Development/Building
Provides: %{name}-headers(%{_target_cpu}) = %{epoch}:%{version}-%{release}
%ifarch %{x8664}
# If both -m32 and -m64 is to be supported on AMD64, x86_64 package
Obsoletes: %{name}-headers(pentium3)
Obsoletes: %{name}-headers(pentium4)
%endif
+%ifarch ppc64
+Obsoletes: %{name}-headers(ppc)
+%endif
+%ifarch s390x
+Obsoletes: %{name}-headers(s390)
+%endif
+%ifarch sparc64
+Obsoletes: %{name}-headers(sparc)
+%endif
%{!?with_kernelheaders:Requires: linux-libc-headers >= %{llh_version}}
%description headers
Obsoletes: %{name}-devel-utils(pentium3)
Obsoletes: %{name}-devel-utils(pentium4)
%endif
+%ifarch ppc64
+Obsoletes: %{name}-devel-utils(ppc)
+%endif
+%ifarch s390x
+Obsoletes: %{name}-devel-utils(s390)
+%endif
+%ifarch sparc64
+Obsoletes: %{name}-devel-utils(sparc)
+%endif
%description devel-utils
The glibc-devel-utils package contains utilities necessary for
Pakiet glibc-devel-utils zawiera narzêdzia niezbêdne do rozwijania
programów u¿ywaj±cych standardowych bibliotek C (u¿ywanych przez
prawie wszystkie programy). Je¶li tworzymy programy korzystaj±ce ze
-standardowych bibliotek C, system wymaga dostêpno¶ci tych
-narzêdzi do tworzenia programów wykonywalnych.
+standardowych bibliotek C, system wymaga dostêpno¶ci tych narzêdzi do
+tworzenia programów wykonywalnych.
Ten pakiet nale¿y zainstalowaæ je¶li zamierzamy tworzyæ programy
korzystaj±ce ze standardowych bibliotek C.
Obsoletes: %{name}-devel-doc(pentium3)
Obsoletes: %{name}-devel-doc(pentium4)
%endif
+%ifarch ppc64
+Obsoletes: %{name}-devel-doc(ppc)
+%endif
+%ifarch s390x
+Obsoletes: %{name}-devel-doc(s390)
+%endif
+%ifarch sparc64
+Obsoletes: %{name}-devel-doc(sparc)
+%endif
%description devel-doc
The glibc-devel-doc package contains info and manual pages necessary
Summary(ru): ëÜÛÉÒÕÀÝÉÊ ÄÅÍÏÎ ÓÅÒ×ÉÓÏ× ÉÍÅÎ
Summary(uk): ëÅÛÕÀÞÉÊ ÄÅÍÏÎ ÓÅ×¦Ó¦× ¦ÍÅÎ
Group: Networking/Daemons
-PreReq: rc-scripts >= 0.2.0
Requires(pre): /bin/id
Requires(pre): /usr/bin/getgid
Requires(pre): /usr/sbin/groupadd
Requires(postun): /usr/sbin/userdel
Requires: %{name} = %{epoch}:%{version}-%{release}
%{?with_selinux:Requires: libselinux >= 1.18}
+Requires: rc-scripts >= 0.2.0
Provides: group(nscd)
Provides: user(nscd)
Summary: locale database source code
Summary(es): Código fuente de la base de datos de los locales
Summary(pl): Kod ¼ród³owy bazy locale
-Group: Daemons
+Group: Libraries
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires: gzip
Requires: sed
%package -n iconv
Summary: Convert encoding of given files from one encoding to another
Summary(es): Convierte entre varias codificaciones de los ficheros dados
-Summary(pl): Program do konwersji plików tekstowych z jednego kodowania do innego
-Group: Applications/Text
+Summary(pl): Modu³y do konwersji plików tekstowych z jednego kodowania do innego
+Group: Libraries
Requires: %{name} = %{epoch}:%{version}-%{release}
%description -n iconv
conversión de juegos de caracteres).
%description -n iconv -l pl
-Program do konwersji plików tekstowych z jednego kodowania do innego.
-Musisz mieæ zainstalowany ten pakiet je¿eli wykonujesz konwersjê
-dokumentów z jednego kodowania do innego lub je¿eli masz zainstalowane
-jakie¶ programy, które korzystaj± z Generic Character Set Conversion
-Interface w glibc, czyli z zestawu funkcji z tej biblioteki, które
-umo¿liwiaj± konwersjê kodowania danych z poziomu dowolnego programu.
+Modu³y do konwersji plików tekstowych z jednego kodowania do innego.
+Trzeba mieæ zainstalowany ten pakiet, aby wykonywaæ konwersjê
+dokumentów z jednego kodowania do innego lub do u¿ywania programów
+korzystaj±cych z Generic Character Set Conversion Interface w glibc,
+czyli z zestawu funkcji z tej biblioteki, które umo¿liwiaj± konwersjê
+kodowania danych z poziomu dowolnego programu.
%package static
Summary: Static libraries
Summary(es): GNU libc - bibliotecas de 64 bits
Summary(pl): GNU libc - biblioteki 64-bitowe
Group: Libraries
-PreReq: basesystem
Requires: %{name}-misc = %{epoch}:%{version}-%{release}
+Requires: basesystem
Provides: glibc = %{epoch}:%{version}-%{release}
%{?with_tls:Provides: glibc(tls)}
Provides: ldconfig
Biblioteki 64-bitowe GNU libc dla architektury 64bit.
%prep
-%setup -q -n %{name}-2.3-%{snap}
+%setup -q -a1
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
-# FIXME
-#%patch7 -p1
+#%patch7 -p1 UPDATE/DROP (which kernels cause problems?)
%patch8 -p1
%patch9 -p1
%patch10 -p1
%patch27 -p1
%{?with_cross:%patch28 -p1}
%{?with_pax:%patch29 -p1}
+%patch30 -p1
+%patch31 -p1
+%patch32 -p1
chmod +x scripts/cpp
done
%endif
+%if %{without cross}
# compiling static using diet vs glibc saves 400k
-diet -Os %{__cc} %{SOURCE9} %{rpmcflags} -static -o postshell
-diet -Os %{__cc} %{SOURCE8} %{rpmcflags} -static -o glibc-postinst
+diet -Os %{__cc} %{SOURCE8} %{rpmcflags} -static -o postshell
+diet -Os %{__cc} %{SOURCE7} %{rpmcflags} -static -o glibc-postinst
+%endif
%install
rm -rf $RPM_BUILD_ROOT
install elf/sofini.os $RPM_BUILD_ROOT%{_libdir}/sofini.o
cd ..
+%if %{without cross}
install postshell $RPM_BUILD_ROOT/sbin
install glibc-postinst $RPM_BUILD_ROOT/sbin
+%endif
%if %{with dual}
env LANGUAGE=C LC_ALL=C \
install nss/nsswitch.conf $RPM_BUILD_ROOT%{_sysconfdir}
bzip2 -dc %{SOURCE5} | tar xf - -C $RPM_BUILD_ROOT%{_mandir}
-bzip2 -dc %{SOURCE6} | tar xf - -C $RPM_BUILD_ROOT%{_mandir}
> $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.cache
install -d $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf.d
echo 'include ld.so.conf.d/*.conf'> $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf
# XXX: to be added when become supported by glibc
# as (atk, gail)
# az_IR (gtk+)
-# dv, kok, ps, sw (iso-codes)
-# fy (kde)
+# dv, kok, ps (iso-codes)
# my (gaim)
# tk, ug, yo (used by GNOME)
#
# tr,zh_CN,zh_TW
#
for i in aa af am ang ar az bg bn br bs byn cy de_AT en en@boldquot en@quot \
- en_AU en_CA en_US eo es_AR es_MX es_NI et eu fa fo ga gez gu gv he hi \
+ en_AU en_CA en_US eo es_AR es_MX es_NI et eu fa fo fy ga gez gu gv he hi \
hsb hy ia id is it_CH iu ka kk kl kn ku kw ky leet lg li lo lt lv mi mk \
ml mn mr ms mt nds ne nl_BE nn nso oc om or pa pt rm ro ru rw sa se sid \
- sl so sq sr sr@Latn sr@ije ss syr ta te tg th ti tig tl tlh tt uk ur uz \
- ve vi wa wal xh yi zu ; do
+ sl so sq sr sr@Latn sr@ije ss syr sw ta te tg th ti tig tl tlh tt uk ur \
+ uz ve vi wa wal 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/_.*//'`
cd -
# localedb-gen infrastructure
-install %{SOURCE7} $RPM_BUILD_ROOT%{_bindir}/localedb-gen
+install %{SOURCE6} $RPM_BUILD_ROOT%{_bindir}/localedb-gen
install localedata/SUPPORTED $RPM_BUILD_ROOT%{_datadir}/i18n
# shutup check-files
# don't run iconvconfig in %%postun -n iconv because iconvconfig doesn't exist
# when %%postun is run
+%if %{without cross}
%ifarch %{x8664} ppc64 s390x sparc64
%post -n %{name}64 -p /sbin/postshell
%else
%endif
-/bin/cp -f /etc/ld.so.conf /etc/ld.so.conf.rpmsave
-/bin/sed -i -e '1iinclude ld.so.conf.d/*.conf' /etc/ld.so.conf
+%endif
%post memusage -p /sbin/ldconfig
%postun memusage -p /sbin/ldconfig
%endif
%defattr(644,root,root,755)
%doc README NEWS FAQ BUGS
+%if %{without cross}
%attr(755,root,root) /sbin/postshell
%attr(755,root,root) /sbin/glibc-postinst
+%endif
%attr(755,root,root) /sbin/ldconfig
# ld* and libc.so.6 SONAME symlinks must be in package because of
# chicken-egg problem (postshell is dynamically linked with libc);
%lang(cs) %{_mandir}/cs/man7/*
%lang(de) %{_mandir}/de/man5/tzfile.5*
%lang(de) %{_mandir}/de/man7/*
+%lang(es) %{_mandir}/es/man1/ldd.1*
%lang(es) %{_mandir}/es/man5/locale.5*
%lang(es) %{_mandir}/es/man5/nsswitch.conf.5*
%lang(es) %{_mandir}/es/man5/tzfile.5*
%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/man1/ldd.1*
%lang(ko) %{_mandir}/ko/man5/nsswitch.conf.5*
%lang(ko) %{_mandir}/ko/man5/tzfile.5*
%lang(ko) %{_mandir}/ko/man7/*
%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/man1/getent.1*
+%lang(ru) %{_mandir}/ru/man1/iconv.1*
+%lang(ru) %{_mandir}/ru/man1/ldd.1*
+%lang(ru) %{_mandir}/ru/man1/locale.1*
+%lang(ru) %{_mandir}/ru/man1/rpcgen.1*
+%lang(ru) %{_mandir}/ru/man5/locale.5*
%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/ld*.8*
+%lang(ru) %{_mandir}/ru/man8/rpcinfo.8*
%lang(ru) %{_mandir}/ru/man8/tzselect.8*
%lang(ru) %{_mandir}/ru/man8/zdump.8*
%lang(ru) %{_mandir}/ru/man8/zic.8*
+%lang(tr) %{_mandir}/tr/man1/iconv.1*
+%lang(tr) %{_mandir}/tr/man1/ldd.1*
%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(nl) %{_mandir}/nl/man3/*
%lang(pl) %{_mandir}/pl/man3/*
%lang(pt) %{_mandir}/pt/man3/*
+%lang(ru) %{_mandir}/ru/man1/sprof.1*
%lang(ru) %{_mandir}/ru/man3/*
+%lang(tr) %{_mandir}/tr/man3/*
%lang(uk) %{_mandir}/uk/man3/*
%lang(zh_CN) %{_mandir}/zh_CN/man3/*
%{_mandir}/man5/nscd.conf.5*
%{_mandir}/man8/nscd.8*
%{_mandir}/man8/nscd_nischeck.8*
+%lang(es) %{_mandir}/es/man5/nscd.conf.5*
+%lang(es) %{_mandir}/es/man8/nscd.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*
+%lang(ru) %{_mandir}/ru/man5/nscd.conf.5*
+%lang(ru) %{_mandir}/ru/man8/nscd.8*
+%lang(zh_CN) %{_mandir}/zh_CN/man5/nscd.conf.5*
%files -n localedb-src
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/localedb-gen
%{_datadir}/i18n
%{_mandir}/man1/localedef.1*
+%lang(ru) %{_mandir}/ru/man1/localedef.1*
%if %{with localedb}
%files localedb-all