#
# You can define min_kernel macro by "rpm --define 'min_kernel version'"
-# default is 2.2.0 (no changes up to 2.3.25)
+# default is 2.4.6
#
# Conditional build:
-# _without_dist_kernel build without kernel from the distribution;
-# headers will be searched in %_kernelsrcdir/include.
-# _without_fp build without frame pointer (pass --enable-omitfp)
-# _without_memusage build without memusage
-#
-%bcond_with kernelheaders # use headers from kernel-headers instead of
- # glibc-kernel-headers
-%bcond_with idn # build with included libidn
+%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
+ # 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 (implies tls)
+%bcond_with tls # use tls
+%bcond_with tests # perform "make test"
+
#
# TODO:
# - localedb-gen man pages(?)
# - fix what trojan broke while upgreading (getaddrinfo-workaround)
-#
+# - fix ld.so.conf (while upgrading glibc it do NOW mv ld.so.conf ld.so.conf.rpmsave)
#
# WARNING:
# posix zoneinfo dir removed, /etc/rc.d/init.d/timezone must be changed
# in order to use this version!
#
-%{!?min_kernel:%global min_kernel 2.2.0}
+
+%{!?min_kernel:%global min_kernel 2.4.6}
+
+%if %{with nptl}
+# it seems that nptl uses cmpxchgl (available since i486) on x86
+%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
+%endif
+%endif
+
+%if %{with tls}
+%ifnarch %{ix86} amd64 ia64 s390 s390x sparc sparcv9 ppc ppc64
+%undefine with_tls
+%endif
+%endif
+
+%define llh_version 7:2.6.4.0
+%define _snap 20040612
+
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.2
-%define rel 9
-Release: %{rel}
+Version: 2.3.4
+Release: 0.%{_snap}.2%{?with_nptl:+nptl}
Epoch: 6
License: LGPL
Group: Libraries
-Source0: ftp://sources.redhat.com/pub/glibc/releases/%{name}-%{version}.tar.bz2
-# Source0-md5: ede969aad568f48083e413384f20753c
-Source1: ftp://sources.redhat.com/pub/glibc/releases/%{name}-linuxthreads-%{version}.tar.bz2
-# Source1-md5: 894b8969cfbdf787c73e139782167607
+#Source0: ftp://sources.redhat.com/pub/glibc/releases/%{name}-%{version}.tar.bz2
+Source0: %{name}-%{_snap}.tar.bz2
+# Source0-md5: 60535f129045dc1176388e930b1998d2
+#Source1: ftp://sources.redhat.com/pub/glibc/releases/%{name}-linuxthreads-%{version}.tar.bz2
+#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
-Source10: http://josefsson.org/libidn/releases/libidn-0.3.0rc3.tar.gz
-# Source10-md5: ded0b439efe16dd29ce5a24d3d3dcebf
+Source7: %{name}-localedb-gen
Patch0: %{name}-info.patch
-Patch1: %{name}-initgroups-overflow.patch
+Patch1: %{name}-pl.po-update.patch
Patch2: %{name}-pld.patch
Patch3: %{name}-crypt-blowfish.patch
-Patch4: %{name}-string2-pointer-arith.patch
-Patch5: %{name}-linuxthreads-lock.patch
-Patch6: %{name}-pthread_create-manpage.patch
-Patch9: %{name}-paths.patch
-Patch10: %{name}-vaargs.patch
-Patch11: %{name}-getaddrinfo-workaround.patch
-Patch12: %{name}-postshell.patch
-Patch13: %{name}-pl.po-update.patch
-Patch14: %{name}-missing-nls.patch
-Patch16: %{name}-java-libc-wait.patch
-Patch17: %{name}-morelocales.patch
-Patch18: %{name}-lthrds_noomit.patch
-Patch19: %{name}-no_opt_override.patch
-Patch20: %{name}-gcc33.patch
-#Patch21: %{name}-sanity.patch
-Patch22: %{name}-secureexec.patch
-Patch23: %{name}-kernel_includes.patch
-Patch24: %{name}-sparc64_pause.patch
-Patch25: %{name}-linuxthreads.patch
-Patch26: %{name}-alpha-fix-as-syntax.patch
-Patch27: %{name}-soinit-EH_FRAME.patch
+Patch4: %{name}-linuxthreads-lock.patch
+Patch5: %{name}-pthread_create-manpage.patch
+Patch6: %{name}-paths.patch
+Patch7: %{name}-i786.patch
+Patch8: %{name}-postshell.patch
+Patch9: %{name}-missing-nls.patch
+Patch10: %{name}-java-libc-wait.patch
+Patch11: %{name}-lthrds_noomit.patch
+Patch12: %{name}-no_opt_override.patch
+# this is broken (hardcoded /usr/src/linux)
+Patch13: %{name}-kernel_includes.patch
+Patch14: %{name}-includes.patch
+Patch15: %{name}-soinit-EH_FRAME.patch
+Patch16: %{name}-sparc-errno_fix.patch
+Patch17: %{name}-make.patch
+Patch18: %{name}-tests-noproc.patch
+Patch19: %{name}-new-charsets.patch
+Patch20: %{name}-sr_CS.patch
+Patch21: %{name}-alpha-div.patch
+Patch22: %{name}-alpha-relro.patch
+Patch23: %{name}-sparc64-dl-machine.patch
+Patch24: %{name}-csu-quotes.patch
+# PaX
+Patch30: %{name}-pax_iconvconfig.patch
+Patch31: %{name}-pax_dl-execstack.patch
URL: http://www.gnu.org/software/libc/
-BuildRequires: binutils >= 2.13.90.0.2
+BuildRequires: automake
+BuildRequires: binutils >= 2.15.90.0.3
BuildRequires: gcc >= 3.2
-%{!?_without_memusage:BuildRequires: gd-devel >= 2.0.1}
+%{?with_memusage:BuildRequires: gd-devel >= 2.0.1}
BuildRequires: gettext-devel >= 0.10.36
%if %{with kernelheaders}
-%{!?_without_dist_kernel:BuildRequires: kernel-headers < 2.5}
+%{?with_dist_kernel:BuildRequires: kernel-headers < 2.5}
%else
-BuildRequires: glibc-kernel-headers >= 1:1-2
+BuildRequires: linux-libc-headers >= %{llh_version}
%endif
BuildRequires: perl-base
-BuildRequires: rpm-build >= 4.0.2-46
+BuildRequires: rpm-build >= 4.3-0.20030610.28
BuildRequires: rpm-perlprov
BuildRequires: sed >= 4.0.5
BuildRequires: texinfo
+AutoReq: false
PreReq: basesystem
+Requires: glibc-misc = %{epoch}:%{version}-%{release}
+%{?with_tls:Provides: glibc(tls)}
Provides: ld.so.2
Provides: ldconfig
Provides: /sbin/ldconfig
Obsoletes: %{name}-common
Obsoletes: %{name}-debug
Obsoletes: ldconfig
-AutoReq: false
-Requires: glibc-misc = %{epoch}:%{version}
-BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
Conflicts: kernel < %{min_kernel}
Conflicts: ld.so < 1.9.9-10
Conflicts: man-pages < 1.43
Conflicts: rc-scripts < 0.3.1-13
Conflicts: rpm < 4.1
+BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define debugcflags -O1 -g
%ifarch sparc64
-%define _without_memusage 1
+%undefine with_memusage
%define specflags_sparc64 -mvis -fcall-used-g6
%define _libdir /usr/lib64
%endif
+# hack: don't depend on rpmlib(PartialHardlinkSets) for easier upgrade from Ra
+# (hardlinks here are unlikely to be "partial"... and rpm 4.0.2 from Ra was
+# patched not to crash on partial hardlinks too)
+%define _hack_dontneed_PartialHardlinkSets 1
%description
Contains the standard libraries that are used by multiple programs on
Can be used on: Linux kernel >= %{min_kernel}.
%description -l es
-Contiene las bibliotecas estándared que son usadas por varios programas
-del sistema. Para ahorrar el espacio en el disco y la memoria, igual que
-para facilitar actualizaciones, código común del sistema se guarda en un
-sitio y es compartido entre los programas. Este paquete contiene las
-bibliotecas compartidas más importantes, es decir la biblioteca C estándar
-y la biblioteca estándar de matemática. Sin éstas, un sistema Linux no
-podrá funcionar. También está incluido soporte de idiomas nacionales
-(locale) y bases de datos de zona de tiempo.
+Contiene las bibliotecas estándared que son usadas por varios
+programas del sistema. Para ahorrar el espacio en el disco y la
+memoria, igual que para facilitar actualizaciones, código común del
+sistema se guarda en un sitio y es compartido entre los programas.
+Este paquete contiene las bibliotecas compartidas más importantes, es
+decir la biblioteca C estándar y la biblioteca estándar de matemática.
+Sin éstas, un sistema Linux no podrá funcionar. También está incluido
+soporte de idiomas nacionales (locale) y bases de datos de zona de
+tiempo.
Puede usarse con: núcleo Linux >= %{min_kernel}.
%package misc
Summary: Utilities and data used by glibc
+Summary(pl): Narzêdzia i dane u¿ywane przez glibc
Group: Development/Libraries
-Requires: %{name} = %{epoch}:%{version}
+AutoReq: false
+Requires: %{name} = %{epoch}:%{version}-%{release}
%description misc
-Utilities and data used by glibc
+Utilities and data used by glibc.
+
+%description misc -l pl
+Narzêdzia i dane u¿ywane przez glibc.
%package devel
Summary: Additional libraries required to compile
Summary(tr): Geliþtirme için gerekli diðer kitaplýklar
Summary(uk): äÏÄÁÔËÏצ ¦Â̦ÏÔÅËÉ, ÐÏÔÒ¦ÂΦ ÄÌÑ ËÏÍЦÌÑæ§
Group: Development/Libraries
-Requires: %{name} = %{epoch}:%{version}
+Requires: %{name} = %{epoch}:%{version}-%{release}
+%{!?with_kernelheaders:Requires: linux-libc-headers >= %{llh_version}}
+Obsoletes: libiconv-devel
%description devel
To develop programs which use the standard C libraries (which nearly
und Objektdateien zum Erstellen der ausführbaren Programme.
%description devel -l es
-Para desarrollar programas que utilizan las bibliotecas C estándar
-(lo cual hacen prácticamente todos los programas), el sistema necesita
+Para desarrollar programas que utilizan las bibliotecas C estándar (lo
+cual hacen prácticamente todos los programas), el sistema necesita
disponer de estos ficheros de cabecera y de objetos para crear los
ejecutables.
Summary(pl): Demon zapamiêtuj±cy odpowiedzi serwisów nazw
Summary(ru): ëÜÛÉÒÕÀÝÉÊ ÄÅÍÏÎ ÓÅÒ×ÉÓÏ× ÉÍÅÎ
Summary(uk): ëÅÛÕÀÞÉÊ ÄÅÍÏÎ ÓÅ×¦Ó¦× ¦ÍÅÎ
-Release: %{rel}
Group: Networking/Daemons
PreReq: rc-scripts >= 0.2.0
Requires(post,preun): /sbin/chkconfig
Requires(post): fileutils
-Requires: %{name} = %{epoch}:%{version}
+Requires: %{name} = %{epoch}:%{version}-%{release}
%description -n nscd
nscd caches name service lookups; it can dramatically improve
nscd happens to hit these bugs particularly hard.
%description -n nscd -l es
-nscd guarda las peticiones del servicio de nombres en una caché; eso puede
-aumentar drásticamente las prestaciones de NIS+, y también puede ayudar
-con DNS. No puede usar nscd con núcleos 2.0, por contener éstos errores
-en el soporte de hilos. Resulta que estos errores impactan el nscd de manera
-realmente grave.
+nscd guarda las peticiones del servicio de nombres en una caché; eso
+puede aumentar drásticamente las prestaciones de NIS+, y también puede
+ayudar con DNS. No puede usar nscd con núcleos 2.0, por contener éstos
+errores en el soporte de hilos. Resulta que estos errores impactan el
+nscd de manera realmente grave.
%description -n nscd -l ja
Nscd ¤Ï¥Í¡¼¥à¥µ¡¼¥Ó¥¹»²¾È¤ò¥¥ã¥Ã¥·¥å¤·¡¢NIS+ ¤Î¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤ò
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
-Release: %{rel}
Group: Daemons
-Requires: %{name} = %{epoch}:%{version}
+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: locale database for all locales supported by glibc
Summary(es): Base de datos de todos los locales soportados por glibc
Summary(pl): Baza danych locale dla wszystkich lokalizacji obs³ugiwanych przez glibc
-Release: %{rel}
Group: Libraries
-Requires: %{name} = %{epoch}:%{version}
+Requires: iconv = %{epoch}:%{version}-%{release}
+Requires: %{name} = %{epoch}:%{version}-%{release}
%description localedb-all
This package contains locale database for all locales supported by
-glibc. In glibc 2.3.x it's one large file (about 19MB) - if you want
+glibc. In glibc 2.3.x it's one large file (about 39MB) - if you want
something smaller with support for chosen locales only, consider
installing localedb-src and regenerating database using localedb-gen
script (when database is generated, localedb-src can be uninstalled).
%description localedb-all -l es
-Este paquete contiene una base de datos de todos los locales soportados
-por glibc. En glibc 2.3.x ése es un fichero grande (aprox. 19 MB) -- si
-prefiere algo más pequeño, sólo con soporte de unos locales elegidos,
-considérese instalar localedb-src y regenerar la base de datos usando
-el escript localedb-gen (una vez que la base de datos esté creada,
-localedb-src se podrá desinstalar).
+Este paquete contiene una base de datos de todos los locales
+soportados por glibc. En glibc 2.3.x ése es un fichero grande (aprox.
+39 MB) -- si prefiere algo más pequeño, sólo con soporte de unos
+locales elegidos, considérese instalar localedb-src y regenerar la
+base de datos usando el escript localedb-gen (una vez que la base de
+datos esté creada, localedb-src se podrá desinstalar).
%description localedb-all -l pl
Ten pakiet zawiera bazê danych locale dla wszystkich lokalizacji
obs³ugiwanych przez glibc. W glibc 2.3.x jest to jeden du¿y plik
-(oko³o 19MB); aby mieæ co¶ mniejszego, z obs³ug± tylko wybranych
+(oko³o 39MB); aby mieæ co¶ mniejszego, z obs³ug± tylko wybranych
lokalizacji, nale¿y zainstalowaæ pakiet localedb-src i przegenerowaæ
bazê danych przy u¿yciu skryptu localedb-gen (po wygenerowaniu bazy
pakiet localedb-src mo¿na odinstalowaæ).
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
-Release: %{rel}
Group: Applications/Text
-Requires: %{name} = %{epoch}:%{version}
+Requires: %{name} = %{epoch}:%{version}-%{release}
%description -n iconv
Convert encoding of given files from one encoding to another. You need
Summary(pl): Biblioteki statyczne
Summary(ru): óÔÁÔÉÞÅÓËÉÅ ÂÉÂÌÉÏÔÅËÉ glibc
Summary(uk): óÔÁÔÉÞΦ ¦Â̦ÏÔÅËÉ glibc
-Release: %{rel}
Group: Development/Libraries
-Requires: %{name}-devel = %{epoch}:%{version}
+Requires: %{name}-devel = %{epoch}:%{version}-%{release}
+Obsoletes: libiconv-static
%description static
GNU libc static libraries.
Summary(ru): GNU libc Ó ÐÏÄÄÅÒÖËÏÊ ÐÒÏÆÁÊÌÅÒÁ
Summary(tr): Ölçüm desteði olan glibc
Summary(uk): GNU libc Ú Ð¦ÄÔÒÉÍËÏÀ ÐÒÏÆÁÊÌÅÒÁ
-Release: %{rel}
Group: Development/Libraries/Libc
Obsoletes: libc-profile
-Requires: %{name}-devel = %{epoch}:%{version}
+Requires: %{name}-devel = %{epoch}:%{version}-%{release}
%description profile
When programs are being profiled using gprof, they must use these
Summary: glibc PIC archive
Summary(es): Archivo PIC de glibc
Summary(pl): Archiwum PIC glibc
-Release: %{rel}
Group: Development/Libraries/Libc
-Requires: %{name}-devel = %{epoch}:%{version}
+Requires: %{name}-devel = %{epoch}:%{version}-%{release}
%description pic
GNU C Library PIC archive contains an archive library (ar file)
library which is a smaller subset of the standard libc shared library.
%description pic -l es
-El archivo PIC de la biblioteca glibc contiene una biblioteca archivada
-(un fichero ar) compuesta de individuales objetos compartidos. Es usado
-para crear una biblioteca que sea un subconjunto más pequeño de la
-biblioteca libc compartida estándar.
+El archivo PIC de la biblioteca glibc contiene una biblioteca
+archivada (un fichero ar) compuesta de individuales objetos
+compartidos. Es usado para crear una biblioteca que sea un subconjunto
+más pequeño de la biblioteca libc compartida estándar.
%description pic -l pl
Archiwum PIC biblioteki GNU C zawiera archiwaln± bibliotekê (plik ar)
Summary: Old style NYS NSS glibc module
Summary(es): El antiguo módulo NYS NSS de glibc
Summary(pl): Stary modu³ NYS NSS glibc
-Release: %{rel}
Group: Base
-Requires: %{name} = %{epoch}:%{version}
+Requires: %{name} = %{epoch}:%{version}-%{release}
%description -n nss_compat
Old style NYS NSS glibc module.
Summary: BIND NSS glibc module
Summary(es): Módulo BIND NSS de glibc
Summary(pl): Modu³ BIND NSS glibc
-Release: %{rel}
Group: Base
-Requires: %{name} = %{epoch}:%{version}
+Requires: %{name} = %{epoch}:%{version}-%{release}
%description -n nss_dns
BIND NSS glibc module.
Summary: Traditional files databases NSS glibc module
Summary(es): Módulo de tradicionales bases de datos en ficheros para glibc
Summary(pl): Modu³ tradycyjnych plikowych baz danych NSS glibc
-Release: %{rel}
Group: Base
-Requires: %{name} = %{epoch}:%{version}
+Requires: %{name} = %{epoch}:%{version}-%{release}
%description -n nss_files
Traditional files databases NSS glibc module.
Summary: hesiod NSS glibc module
Summary(es): Módulo hesiod NSS de glibc
Summary(pl): Modu³ hesiod NSS glibc
-Release: %{rel}
Group: Base
-Requires: %{name} = %{epoch}:%{version}
+Requires: %{name} = %{epoch}:%{version}-%{release}
%description -n nss_hesiod
glibc NSS (Name Service Switch) module for databases access.
Summary: NIS(YP) NSS glibc module
Summary(es): Módulo NIS(YP) NSS de glibc
Summary(pl): Modu³ NIS(YP) NSS glibc
-Release: %{rel}
Group: Base
-Requires: %{name} = %{epoch}:%{version}
+Requires: %{name} = %{epoch}:%{version}-%{release}
%description -n nss_nis
glibc NSS (Name Service Switch) module for NIS(YP) databases access.
Summary: NIS+ NSS module
Summary(es): Módulo NIS+ NSS
Summary(pl): Modu³ NIS+ NSS
-Release: %{rel}
Group: Base
-Requires: %{name} = %{epoch}:%{version}
+Requires: %{name} = %{epoch}:%{version}-%{release}
%description -n nss_nisplus
glibc NSS (Name Service Switch) module for NIS+ databases access.
%description -n nss_nisplus -l es
-Módulo NSS (Name Service Switch) de glibc para acceder las bases de datos NIS+.
+Módulo NSS (Name Service Switch) de glibc para acceder las bases de
+datos NIS+.
%description -n nss_nisplus -l pl
Modu³ glibc NSS (Name Service Switch) dostêpu do baz danych NIS+.
Summary: A toy
Summary(es): Un juguete
Summary(pl): Zabawka
-Release: %{rel}
Group: Applications
-Requires: %{name} = %{epoch}:%{version}
+Requires: %{name} = %{epoch}:%{version}-%{release}
Requires: gd
%description memusage
Summary: Non-POSIX (real) time zones
Summary(es): Zonas de tiempo reales (no de POSIX)
Summary(pl): Nie-POSIX-owe (prawdziwe) strefy czasowe
-Release: %{rel}
Group: Libraries
-Requires: %{name} = %{epoch}:%{version}
+Requires: %{name} = %{epoch}:%{version}-%{release}
%description zoneinfo_right
You don't want this. Details at:
Summary: GNU libc - 64-bit libraries
Summary(es): GNU libc - bibliotecas de 64 bits
Summary(pl): GNU libc - biblioteki 64-bitowe
-Release: %{rel}
Group: Libraries
%ifarch amd64
-Provides: glibc = %{epoch}:%{version}
+Provides: glibc = %{epoch}:%{version}-%{release}
+Requires: glibc-misc = %{epoch}:%{version}-%{release}
%else
-Requires: %{name} = %{epoch}:%{version}
+Requires: %{name} = %{epoch}:%{version}-%{release}
%endif
%description -n %{name}64
-64-bit GNU libc libraries for sparc64 architecture.
+64-bit GNU libc libraries for 64bit architecture.
%description -n %{name}64 -l es
-Bibliotecas GNU libc de 64 bits para la arquitectura sparc64.
+Bibliotecas GNU libc de 64 bits para la arquitectura 64bit.
%description -n %{name}64 -l pl
-Biblioteki 64-bitowe GNU libc dla architektury sparc64.
+Biblioteki 64-bitowe GNU libc dla architektury 64bit.
%package -n %{name}64-devel
Summary: Development files for 64-bit GNU libc libraries
Summary(es): Ficheros de desarrollo para bibliotecas GNU libc de 64 bits
Summary(pl): Pliki do programowania z u¿yciem 64-bitowych bibliotek GNU libc
-Release: %{rel}
Group: Development/Libraries
-Requires: %{name}-devel = %{epoch}:%{version}
+Requires: %{name}-devel = %{epoch}:%{version}-%{release}
%description -n %{name}64-devel
-Development files for 64-bit GNU libc libraries for sparc64
+Development files for 64-bit GNU libc libraries for 64bit
architecture.
%description -n %{name}64-devel -l es
-Ficheros de desarrollo para las bibliotecas GNU libc de 64 bits para la
-arquitectura sparc64.
+Ficheros de desarrollo para las bibliotecas GNU libc de 64 bits para
+la arquitectura 64bit.
%description -n %{name}64-devel -l pl
Pliki do programowania z u¿yciem 64-bitowych bibliotek GNU libc dla
-architektury sparc64.
+architektury 64bit.
%package -n %{name}64-static
Summary: Static 64-bit GNU libc libraries
Summary(es): Bibliotecas estáticas GNU libc de 64 bits
Summary(pl): Statyczne 64-bitowe biblioteki GNU libc
-Release: %{rel}
Group: Development/Libraries
-Requires: %{name}64-devel = %{epoch}:%{version}
+Requires: %{name}64-devel = %{epoch}:%{version}-%{release}
%description -n %{name}64-static
Static 64-bit GNU libc libraries.
Statyczne 64-bitowe biblioteki GNU libc.
%prep
-%setup -q -a 1 -a 10
+#setup -q -a 1 -n libc
+%setup -q -n libc
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
+%patch7 -p1
+%patch8 -p1
%patch9 -p1
%patch10 -p1
-#%%patch11 -p1
-%patch12 -p1
-%patch13 -p1
-%patch14 -p1
-%patch16 -p1
+%patch11 -p1
+# don't know, if it is good idea, for brave ones
+#%patch12 -p1
+%{?with_kernelheaders:%patch13}
+%{?!with_kernelheaders:%patch14 -p1}
+%patch15 -p1
+%patch16 -p0
%patch17 -p1
%patch18 -p1
-# don't know, if it is good idea, for brave ones
-#%patch19 -p1
+%patch19 -p1
%patch20 -p1
-#%patch21 -p1
+%patch21 -p1
%patch22 -p1
-%{?with_kernelheaders:%patch23}
+%patch23 -p1
%patch24 -p1
-# updated - lt
-%ifnarch alpha
-%patch25 -p1
-%endif
-%patch26 -p1
-%patch27 -p1
-
-chmod +x scripts/cpp
-
-# standardize name
-mv -f localedata/locales/{lug_UG,lg_UG}
-
-%if %{with idn}
-cp -r libidn-*/lib libidn
-cp libidn-*/libc/{Makefile,configure,Banner,Versions} libidn
-cp libidn-*/lib/*.{c,h} libidn
-sed -e 's/idn-int.h/stdint.h/g' libidn-*/lib/idna.h > libidn/idna.h
-ln -sf ../libidn/idna.h include/idna.h
-sed -e 's/idn-int.h/stdint.h/g' libidn-*/lib/stringprep.h > libidn/stringprep.h
-sed -e 's/idn-int.h/stdint.h/g' libidn-*/lib/punycode.h > libidn/punycode.h
-sed -e 's/stringprep_generic/rfc3454/g' libidn-*/libc/Makefile > libidn/Makefile
-#cp libidn-*/libc/getaddrinfo.c sysdeps/posix/
-#cp libidn-*/libc/netdb.h resolv/
+%patch30 -p1
+%patch31 -p1
-cp libidn-*/libc/*.patch libc-idn.patch
-patch -p0 < libc-idn.patch
-
-touch libidn/libidn.texi
-%endif
-
-#make proper symlink for asm in headers
-#cd usr/include
-#%ifarch %{ix86}
-#ln -s asm-i386 asm
-#%endif
-#cd ../..
+chmod +x scripts/cpp
%build
# Build glibc
+cp %{_datadir}/automake/config.sub .
+cp %{_datadir}/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-add-ons=linuxthreads%{?with_idn:,libidn} \
--enable-kernel="%{min_kernel}" \
+ --%{?with_omitfp:en}%{!?with_omitfp:dis}able-omitfp \
+ %{?with_tls:--with-tls} \
+%if %{with nptl}
+ --enable-add-ons=nptl \
+ --disable-profile \
+%else
+ --enable-add-ons=linuxthreads \
--enable-profile \
- --%{?_without_fp:en}%{!?_without_fp:dis}able-omitfp \
+%endif
%if %{with kernelheaders}
CPPFLAGS="-I%{_kernelsrcdir}/include" \
--with-headers=%{_kernelsrcdir}/include
%{__make} %{?parallelmkflags}
+%if %{with tests}
+env LANGUAGE=C LC_ALL=C \
+%{__make} tests 2>&1 | awk '
+BEGIN { file = "" }
+{
+ if (($0 ~ /\*\*\* \[.*\.out\] Error/) && (file == "")) {
+ file=$0;
+ gsub(/.*\[/, NIL, file);
+ gsub(/\].*/, NIL, file);
+ }
+ print $0;
+}
+END { if (file != "") { print "ERROR OUTPUT FROM " file; system("cat " file); exit(1); } }'
+%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
install elf/soinit.os $RPM_BUILD_ROOT%{_libdir}/soinit.o
install elf/sofini.os $RPM_BUILD_ROOT%{_libdir}/sofini.o
-install elf/postshell $RPM_BUILD_ROOT/%{_lib}
-mv $RPM_BUILD_ROOT/sbin/ldconfig $RPM_BUILD_ROOT/%{_lib}
-ln -s /%{_lib}/ldconfig $RPM_BUILD_ROOT/sbin
+install elf/postshell $RPM_BUILD_ROOT/sbin
-%{!?_without_memusage:mv -f $RPM_BUILD_ROOT/%{_lib}/libmemusage.so $RPM_BUILD_ROOT%{_libdir}}
+%{?with_memusage:mv -f $RPM_BUILD_ROOT/%{_lib}/libmemusage.so $RPM_BUILD_ROOT%{_libdir}}
%ifnarch sparc64
mv -f $RPM_BUILD_ROOT/%{_lib}/libpcprofile.so $RPM_BUILD_ROOT%{_libdir}
%endif
+%if %{without nptl}
%{__make} -C ../linuxthreads/man
install ../linuxthreads/man/*.3thr $RPM_BUILD_ROOT%{_mandir}/man3
+%endif
rm -rf $RPM_BUILD_ROOT%{_datadir}/zoneinfo/{localtime,posixtime,posixrules,posix/*}
rm -rf ../documentation
install -d ../documentation
+%if %{without nptl}
cp -f ../linuxthreads/ChangeLog ../documentation/ChangeLog.threads
cp -f ../linuxthreads/Changes ../documentation/Changes.threads
cp -f ../linuxthreads/README ../documentation/README.threads
+%endif
cp -f ../crypt/README.ufc-crypt ../documentation/
cp -f ../ChangeLog* ../documentation
fi
done
# XXX: to be added when become supported by glibc
-# am,bn,ml (present in sources, but incomplete and disabled) (used by GNOME)
-# ia,kn,li,mn,sr@Latn (used by GNOME)
-# note: GNOME2 uses sr as cyrillic!
-# nso,ss,ven,xh,zu (used by KDE)
-for i in af ar az be bg br bs cy de_AT el en en_AU eo es_AR es_MX et eu fa fi \
- ga gr he hi hr hu id is ja_JP.SJIS ka lg lt lv mk ms mt nn pt ro ru \
- se sl sq sr sr@cyrillic ta tg th uk uz vi wa yi zh_CN ; do
+# ia,li (used by GNOME)
+# nso,ss,ven (used by KDE)
+# NOTES:
+# bn is used for bn_BD or bn_IN?
+# 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 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@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
# when %%postun is run
%ifnarch sparc64
-%post -p /%{_lib}/postshell
-/%{_lib}/ldconfig
+%ifarch amd64
+%post -n %{name}64 -p /sbin/postshell
+%else
+%post -p /sbin/postshell
+%endif
+/sbin/ldconfig
-/sbin/telinit u
-%postun -p /%{_lib}/postshell
-/%{_lib}/ldconfig
+%ifarch amd64
+%postun -n %{name}64 -p /sbin/postshell
+%else
+%postun -p /sbin/postshell
+%endif
+/sbin/ldconfig
-/sbin/telinit u
+%ifarch amd64
+%triggerpostun -n %{name}64 -p /sbin/postshell -- glibc-misc < 6:2.3.4-0.20040505.1
+%else
+%triggerpostun -p /sbin/postshell -- glibc-misc < 6:2.3.4-0.20040505.1
+%endif
+-/bin/mv %{_sysconfdir}/ld.so.conf.rpmsave %{_sysconfdir}/ld.so.conf
+
%post memusage -p /sbin/ldconfig
%postun memusage -p /sbin/ldconfig
%ifnarch sparc64
%ifarch amd64
%files -n glibc64
+%defattr(644,root,root,755)
%else
-%files
+%files
+%defattr(644,root,root,755)
%endif
%defattr(644,root,root,755)
%doc README NEWS FAQ BUGS
+%attr(755,root,root) /sbin/postshell
+%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);
# ld-*.so SONAME is ld.so.1 on ppc, ld-linux.so.2 on other archs
-%attr(755,root,root) /%{_lib}/postshell
%attr(755,root,root) /%{_lib}/ld*
%attr(755,root,root) /%{_lib}/libanl*
%attr(755,root,root) /%{_lib}/libdl*
%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)
+%attr(755,root,root) /%{_lib}/libnss_dns*.so*
+
+#%files -n nss_files
+%defattr(644,root,root,755)
+%attr(755,root,root) /%{_lib}/libnss_files*.so*
+
%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/*
+%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]/*
-
-#%files -n nss_dns
-%defattr(644,root,root,755)
-%attr(755,root,root) /%{_lib}/libnss_dns*.so*
-
-#%files -n nss_files
-%defattr(644,root,root,755)
-%attr(755,root,root) /%{_lib}/libnss_files*.so*
+%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)
%defattr(644,root,root,755)
%attr(755,root,root) /%{_lib}/libnss_nisplus*.so*
-%if %{?_without_memusage:0}%{!?_without_memusage:1}
+%if %{with memusage}
%files memusage
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/memusage*
-%attr(755,root,root) %{_libdir}/libmemusage*
+%attr(755,root,root) %{_libdir}/libmemusage.so
%endif
%files devel
%{_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
-%{_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)
%{_libdir}/librt.a
%{_libdir}/libutil.a
+%if %{without nptl}
%files profile
%defattr(644,root,root,755)
%{_libdir}/lib*_p.a
+%endif
%files pic
%defattr(644,root,root,755)