%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
-Version: 2.3.5
-Release: 7
+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-md5: 93d9c51850e0513aa4846ac0ddcef639
+# 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
Patch24: %{name}-ZA_collate.patch
Patch25: %{name}-tls_fix.patch
Patch26: %{name}-iconvconfig-nxstack.patch
-Patch27: %{name}-execvp.patch
-Patch28: %{name}-sys-kd.patch
-Patch29: %{name}-cross-gcc_eh.patch
-Patch30: %{name}-pax_dl-execstack.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
The glibc-headers package contains the header files necessary for
developing programs which use the standard C libraries (which are used
-by nearly all programs). If you are developing programs which will
-use the standard C libraries, your system needs to have these standard
+by nearly all programs). If you are developing programs which will use
+the standard C libraries, your system needs to have these standard
header files available in order to create the executables.
Install glibc-headers if you are going to develop programs which will
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(uk): óÔÁÔÉÞΦ ¦Â̦ÏÔÅËÉ glibc
Group: Development/Libraries
Requires: %{name}-devel = %{epoch}:%{version}-%{release}
+Provides: %{name}-static(%{_target_cpu}) = %{epoch}:%{version}-%{release}
Obsoletes: libiconv-static
%description static
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
%patch4 -p1
%patch5 -p1
%patch6 -p1
-%patch7 -p1
+#%patch7 -p1 UPDATE/DROP (which kernels cause problems?)
%patch8 -p1
%patch9 -p1
%patch10 -p1
%patch25 -p1
%patch26 -p1
%patch27 -p1
-%patch28 -p1
-%{?with_cross:%patch29 -p1}
-%{?with_pax:%patch30 -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
-> $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf
+install -d $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf.d
+echo 'include ld.so.conf.d/*.conf'> $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf
rm -f $RPM_BUILD_ROOT%{_mandir}/hu/man7/man.7
:> $RPM_BUILD_ROOT/var/log/nscd
# XXX: to be added when become supported by glibc
# as (atk, gail)
# az_IR (gtk+)
+# dv, kok, ps (iso-codes)
# my (gaim)
-# rm (gtkspell)
-# tk, yo (used by GNOME)
+# tk, ug, yo (used by GNOME)
#
# NOTES:
-# bn is used for bn_BD or bn_IN?
+# bn is used for bn_BD or bn_IN? Assume bn_IN as nothing for bn_BD appeared
+# till now
+#
# 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,sk,sv,tr,zh_CN,zh_TW
-for i in af am ang ar az bg bn br bs cy de_AT en en@boldquot en@quot en_AU \
- en_CA en_US eo es_AR es_MX et eu fa fo ga gu he hi hsb ia id is it_CH ka \
- kn ku leet lg li lo lt lv mi mk ml mn mr ms mt nds ne nn nso or pa pt ro \
- ru rw se sl sq sr sr@Latn sr@ije ss ta tg th tl tlh uk uz ve vi wa xh yi \
- zu ; do
+# 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 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 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 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/mv %{_sysconfdir}/ld.so.conf.rpmsave %{_sysconfdir}/ld.so.conf
+%ifarch %{x8664} ppc64 s390x sparc64
+%triggerpostun -n %{name}64 -p /sbin/postshell -- %{name}64 < 6:2.3.5-7.6
+%else
+%triggerpostun -p /sbin/postshell -- %{name} < 6:2.3.5-7.6
+%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);
%endif
%{?with_localedb:%dir %{_libdir}/locale}
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/ld.so.conf
+%dir %{_sysconfdir}/ld.so.conf.d
%ghost %{_sysconfdir}/ld.so.cache
#%files -n nss_dns
%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