#
# You can define min_kernel macro by "rpm --define 'min_kernel version'"
# default is 2.2.0 (no changes up to 2.3.25)
-
+#
+# _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
+#
+# _with_kernheaders use "kernheaders" as user-space kernel headers
+# (instead of copying from kernel-headers 2.4.x)
+# [broken at the moment]
+#
+# TODO:
+# - localedb-gen man pages(?)
+# - serious problem with upgrade (changing zoneinfo/posix/* dirs into symlinks)
+# are there any other solutions than revert???
+#
+# WARNING:
+# posix zoneinfo dir removed, /etc/rc.d/init.d/timezone must be changed
+# in order to use this version!
+#
%{!?min_kernel:%define min_kernel 2.2.0}
-
+%define rel 2.15
Summary: GNU libc
Summary(de): GNU libc
Summary(fr): GNU libc
+Summary(ja): GNU libc ¥é¥¤¥Ö¥é¥ê
Summary(pl): GNU libc
Summary(ru): GNU libc ×ÅÒÓÉÉ 2.3
Summary(tr): GNU libc
Summary(uk): GNU libc ×ÅÒÓ¦§ 2.3
Name: glibc
-Version: 2.3.1
-Release: 2
+Version: 2.3.2
+Release: %{rel}
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
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
# borrowed from util-linux
Source7: sln.8
+Source8: %{name}-localedb-gen
+# Kernel headers for userspace
+Source9: %{name}-kernheaders.tar.bz2
+# Source9-md5: b48fec281f854627d6b8781cd1dd72d2
Patch0: %{name}-info.patch
-Patch1: %{name}-versions.awk_fix.patch
Patch2: %{name}-pld.patch
Patch3: %{name}-crypt-blowfish.patch
Patch4: %{name}-string2-pointer-arith.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
URL: http://www.gnu.org/software/libc/
BuildRequires: binutils >= 2.13.90.0.2
BuildRequires: gcc >= 3.2
-BuildRequires: gd-devel >= 2.0.1
+%{!?_without_memusage:BuildRequires: gd-devel >= 2.0.1}
BuildRequires: gettext-devel >= 0.10.36
-BuildRequires: kernel-headers
-BuildRequires: libpng-devel
-BuildRequires: perl
+%if 0%{!?_with_kernheaders:1}
+%{!?_without_dist_kernel:BuildRequires: kernel-headers < 2.5}
+%endif
+BuildRequires: perl-base
BuildRequires: rpm-build >= 4.0.2-46
+BuildRequires: rpm-perlprov
+BuildRequires: sed >= 4.0.5
BuildRequires: texinfo
Provides: ld.so.2
Provides: ldconfig
PreReq: basesystem
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
Conflicts: kernel < %{min_kernel}
-Conflicts: man-pages < 1.43
Conflicts: ld.so < 1.9.9-10
+Conflicts: man-pages < 1.43
+Conflicts: rpm < 4.1
%define debugcflags -O1 -g
-%define configuredir %{u2p:%{_builddir}}/%{name}-%{version}/
-#define parallelmkflags PARALLELMFLAGS="-j 4"
-%define parallelmkflags %{nil}
%description
Contains the standard libraries that are used by multiple programs on
Without these, a Linux system will not function. It also contains
national language (locale) support and timezone databases.
+Can be used on: Linux kernel >= %{min_kernel}.
+
%description -l de
Enthält die Standard-Libraries, die von verschiedenen Programmen im
System benutzt werden. Um Festplatten- und Arbeitsspeicher zu sparen
Ferner enthält es den Support für die verschiedenen Sprachgregionen
(locale) und die Zeitzonen-Datenbank.
+Can be used on: Linux kernel >= %{min_kernel}.
+
%description -l fr
Contient les bibliothèques standards utilisées par de nombreux
programmes du système. Afin d'économiser l'espace disque et mémoire,
langues nationales (locales) et les bases de données des zones
horaires.
+Can be used on: Linux kernel >= %{min_kernel}.
+
+%description -l ja
+glibc
+¥Ñ¥Ã¥±¡¼¥¸¤Ï¥·¥¹¥Æ¥à¾å¤ÎÊ£¿ô¤Î¥×¥í¥°¥é¥à¤Ç»È¤ï¤ì¤ëɸ½à¥é¥¤¥Ö¥é¥ê¤ò
+¤Õ¤¯¤ß¤Þ¤¹¡£¥Ç¥£¥¹¥¯¥¹¥Ú¡¼¥¹¤È¥á¥â¥ê¤òÀáÌó¤·¤¿¤ê¡¢¥¢¥Ã¥×¥°¥ì¡¼¥É¤ò
+ÍѰդˤ¹¤ë¤¿¤á¤Ë¡¢¶¦Ä̤Υ·¥¹¥Æ¥à¥³¡¼¥É¤Ï°ì¤Ä¤Î¾ì½ê¤Ë¤ª¤«¤ì¡¢¥×¥í¥°¥é¥à
+´Ö¤Ç¶¦Í¤µ¤ì¤Þ¤¹¡£¤³¤ÎÉôʬŪ¤Ê¥Ñ¥Ã¥±¡¼¥¸¤Ï¥·¥§¥¢¥É¥é¥¤¥Ö¥é¥ê¤Î¤«¤Ê¤ê
+½ÅÍפʥ»¥Ã¥È¤ò¤Õ¤¯¤ß¤Þ¤¹: ɸ½à C ¥é¥¤¥Ö¥é¥ê¤Èɸ½à¿ôÃͥ饤¥Ö¥é¥ê¤Ç¤¹¡£
+¤³¤ÎÆó¤Ä¤Î¥é¥¤¥Ö¥é¥êÈ´¤¤Ç¤Ï¡¢Linux ¥·¥¹¥Æ¥à¤Ïµ¡Ç½¤·¤Þ¤»¤ó¡£ glibc
+¥Ñ¥Ã¥±¡¼¥¸¤Ï¤Þ¤¿ÃÏ°è¸À¸ì (locale) ¥µ¥Ý¡¼¥È¤È¥¿¥¤¥à¥¾¡¼¥ó¥Ç¡¼¥¿¥Ù¡¼¥¹
+¥µ¥Ý¡¼¥È¤ò¤Õ¤¯¤ß¤Þ¤¹¡£
+
+Can be used on: Linux kernel >= %{min_kernel}.
+
%description -l pl
W pakiecie znajduj± siê podstawowe biblioteki, u¿ywane przez ró¿ne
programy w Twoim systemie. U¿ywanie przez programy bibliotek z tego
Znajduj± siê tutaj równie¿ definicje ró¿nych informacji dla wielu
jêzyków (locale) oraz definicje stref czasowych.
+Przeznaczony dla j±dra Linux >= %{min_kernel}.
+
%description -l ru
óÏÄÅÒÖÉÔ ÓÔÁÎÄÁÒÔÎÙÅ ÂÉÂÌÉÏÔÅËÉ, ÉÓÐÏÌØÚÕÅÍÙÅ ÍÎÏÇÏÞÉÓÌÅÎÎÙÍÉ
ÐÒÏÇÒÁÍÍÁÍÉ × ÓÉÓÔÅÍÅ. äÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÓÏÈÒÁÎÉÔØ ÄÉÓËÏ×ÏÅ ÐÒÏÓÔÒÁÎÓÔ×Ï
ÐÁËÅÔ ÓÏÄÅÒÖÉÔ ÐÏÄÄÅÒÖËÕ ÎÁÃÉÏÎÁÌØÎÙÈ ÑÚÙËÏ× (locale) É ÂÁÚÙ ÄÁÎÎÙÈ
×ÒÅÍÅÎÎÙÈ ÚÏÎ (timezone databases).
+Can be used on: Linux kernel >= %{min_kernel}.
+
%description -l tr
Bu paket, birçok programýn kullandýðý standart kitaplýklarý içerir.
Disk alaný ve bellek kullanýmýný azaltmak ve ayný zamanda güncelleme
içerir. Bu kitaplýklar olmadan Linux sistemi çalýþmayacaktýr. Yerel
dil desteði ve zaman dilimi veri tabaný da bu pakette yer alýr.
+Can be used on: Linux kernel >= %{min_kernel}.
+
%description -l uk
í¦ÓÔÉÔØ ÓÔÁÎÄÁÒÔΦ ¦Â̦ÏÔÅËÉ, ËÏÔÒ¦ ×ÉËÏÒÉÓÔÏ×ÕÀÔØÓÑ ÞÉÓÌÅÎÎÉÍÉ
ÐÒÏÇÒÁÍÁÍÉ × ÓÉÓÔÅͦ. äÌÑ ÔÏÇÏ, ÝÏ ÚÂÅÒÅÇÔÉ ÄÉÓËÏ×ÉÊ ÐÒÏÓÔ¦Ò ÔÁ
ôÁËÏÖ ÐÁËÅÔ Í¦ÓÔÉÔØ Ð¦ÄÔÒÉÍËÕ ÎÁæÏÎÁÌØÎÉÈ ÍÏ× (locale) ÔÁ ÂÁÚÉ ÄÁÎÎÉÈ
ÞÁÓÏ×ÉÈ ÚÏÎ (timezone databases).
+Can be used on: Linux kernel >= %{min_kernel}.
+
%package devel
Summary: Additional libraries required to compile
Summary(de): Weitere Libraries zum Kompilieren
Summary(fr): Librairies supplémentaires nécessaires à la compilation
+Summary(ja): ɸ½à C ¥é¥¤¥Ö¥é¥ê¤Ç»È¤ï¤ì¤ë¥Ø¥Ã¥À¡¼¤È¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë
Summary(pl): Dodatkowe biblioteki wymagane podczas kompilacji
Summary(ru): äÏÐÏÌÎÉÔÅÌØÎÙÅ ÂÉÂÌÉÏÔÅËÉ, ÎÅÏÂÈÏÄÉÍÙÅ ÄÌÑ ËÏÍÐÉÌÑÃÉÉ
Summary(tr): Geliþtirme için gerekli diðer kitaplýklar
Summary(uk): äÏÄÁÔËÏצ ¦Â̦ÏÔÅËÉ, ÐÏÔÒ¦ÂΦ ÄÌÑ ËÏÍЦÌÑæ§
Group: Development/Libraries
-Requires: %{name} = %{version}
-Requires: kernel-headers = %(rpm -q kernel-headers --queryformat '%{VERSION}')
+Requires: %{name} = %{epoch}:%{version}
%description devel
To develop programs which use the standard C libraries (which nearly
C (ce que presque tous les programmes font), le système doit posséder
ces fichiers en-têtes et objets standards pour créer les exécutables.
+%description devel -l ja
+glibc-devel ¥Ñ¥Ã¥±¡¼¥¸¤Ï(¤Û¤È¤ó¤É¤¹¤Ù¤Æ¤Î¥×¥í¥°¥é¥à¤Ç»È¤ï¤ì¤ë)ɸ½à C
+¥é¥¤¥Ö¥é¥ê¤ò»ÈÍѤ·¤¿¥×¥í¥°¥é¥à¤ò³«È¯¤¹¤ë¤¿¤á¤Î¥Ø¥Ã¥À¡¼¤È¥ª¥Ö¥¸¥§¥¯¥È
+¥Õ¥¡¥¤¥ë¤ò´Þ¤ß¤Þ¤¹¡£¤â¤·É¸½à C
+¥é¥¤¥Ö¥é¥ê¤ò»ÈÍѤ¹¤ë¥×¥í¥°¥é¥à¤ò³«È¯¤¹¤ë¤Ê¤é
+¼Â¹Ô¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ëÌÜŪ¤Ç¤³¤ì¤é¤Îɸ½à¥Ø¥Ã¥À¤È¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë
+¤¬»ÈÍѤǤ¤Þ¤¹¡£
+
%description devel -l pl
Pakiet ten jest niezbêdny przy tworzeniu w³asnych programów
korzystaj±cych ze standardowej biblioteki C. Znajduj± siê tutaj pliki
ÔÁ ÏÂ'¤ËÔΦ ÆÁÊÌÉ, ÝÏ Í¦ÓÔÑÔØÓÑ × ÃØÏÍÕ ÐÁËÅÔ¦, ÃÏ ÓÔ×ÏÒÀ×ÁÔÉ
×ÉËÏÎÕ×ÁΦ ÆÁÊÌÉ.
+%package kernel-headers
+Summary: Kernel header files the glibc has been built with
+Summary(pl): Pliki nag³ówkowe j±dra, z którymi zosta³a zbudowana ta wersja glibc
+Release: %{rel}
+Group: Development/Libraries
+
+%description kernel-headers
+Kernel header files for userspace.
+
+%description kernel-headers -l pl
+Pliki nag³ówkowe j±dra dla przestrzeni u¿ytkownika
+
%package -n nscd
Summary: Name Service Caching Daemon
+Summary(ja): ¥Í¡¼¥à¥µ¡¼¥Ó¥¹¥¥ã¥Ã¥·¥ó¥°¥Ç¡¼¥â¥ó (nacd)
Summary(pl): Demon zapamiêtuj±cy odpowiedzi serwisów nazw
Summary(ru): ëÜÛÉÒÕÀÝÉÊ ÄÅÍÏÎ ÓÅÒ×ÉÓÏ× ÉÍÅÎ
Summary(uk): ëÅÛÕÀÞÉÊ ÄÅÍÏÎ ÓÅ×¦Ó¦× ¦ÍÅÎ
+Release: %{rel}
Group: Networking/Daemons
-PreReq: /sbin/chkconfig
PreReq: rc-scripts >= 0.2.0
-Requires: %{name} = %{version}
+Requires(post,preun): /sbin/chkconfig
Requires(post): fileutils
+Requires: %{name} = %{epoch}:%{version}
%description -n nscd
nscd caches name service lookups; it can dramatically improve
nscd with 2.0 kernels, due to bugs in the kernel-side thread support.
nscd happens to hit these bugs particularly hard.
+%description -n nscd -l ja
+Nscd ¤Ï¥Í¡¼¥à¥µ¡¼¥Ó¥¹»²¾È¤ò¥¥ã¥Ã¥·¥å¤·¡¢NIS+ ¤Î¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤ò
+¥É¥é¥Þ¥Æ¥£¥Ã¥¯¤Ë²þÁ±¤¹¤ë¤³¤È¤¬¤Ç¤¡¢DNS ¤òƱÍͤËÊä½õ¤·¤Þ¤¹¡£ 2.0
+¥«¡¼¥Í¥ë¤Ç nscd ¤ò»ÈÍѤ¹¤ë¤³¤È¤Ï¤Ç¤¤Ê¤¤¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£
+¤½¤ì¤Ï¡¢¥«¡¼¥Í¥ë¦¤Î¥¹¥ì¥Ã¥É¥µ¥Ý¡¼¥È¤Ë¥Ð¥°¤¬¤¢¤ë¤«¤é¤Ç¤¹¡£ÉÔ¹¬¤Ê¤³¤È¤Ë¡¢
+nscd ¤Ï¤³¤ì¤é¤Î¥Ð¥°¤ËÆäˤϤ²¤·¤¯¤¢¤¿¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£
+
%description -n nscd -l pl
nscd zapamiêtuje zapytania i odpowiedzi NIS oraz DNS. Pozwala
drastycznie poprawiæ szybko¶æ dzia³ania NIS+. Nie jest mo¿liwe
%package -n localedb-src
Summary: locale database source code
Summary(pl): Kod ¼ród³owy bazy locale
+Release: %{rel}
Group: Daemons
-Requires: %{name} = %{version}
+Requires: %{name} = %{epoch}:%{version}
%description -n localedb-src
This add-on package contains the data needed to build the locale data
-files to use the internationalization features of the GNU libc. glibc
-package contains standard set of locale binary database so you need
-this package only when you want to build some non-standard locale
-database.
+files to use the internationalization features of the GNU libc.
%description -n localedb-src -l pl
Pakiet ten zawiera dane niezbêdne do zbudowania binarnych plików
lokalizacyjnych, by móc wykorzystaæ mo¿liwo¶ci oferowane przez GNU
-libc. glibc zawiera standardowy zestaw binarnych baz lokalizacyjnych,
-w zwi±zku z czym ten pakiet jest potrzebny tylko w sytuacji budowania
-jakiej¶ niestandardowej bazy.
+libc.
+
+%package localedb-all
+Summary: locale database for all locales supported by glibc
+Summary(pl): Baza danych locale dla wszystkich lokalizacji obs³ugiwanych przez glibc
+Release: %{rel}
+Group: Libraries
+Requires: %{name} = %{epoch}:%{version}
+
+%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
+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 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
+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æ).
%package -n iconv
Summary: Convert encoding of given files from one encoding to another
Summary(pl): Program do konwersji plików tekstowych z jednego kodowania do innego
+Release: %{rel}
Group: Applications/Text
-Requires: %{name} = %{version}
+Requires: %{name} = %{epoch}:%{version}
%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 = %{version}
+Requires: %{name}-devel = %{epoch}:%{version}
%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 = %{version}
+Requires: %{name}-devel = %{epoch}:%{version}
%description profile
When programs are being profiled used gprof, they must use these
%package pic
Summary: glibc PIC archive
Summary(pl): archiwum PIC glibc
+Release: %{rel}
Group: Development/Libraries/Libc
-Requires: %{name}-devel = %{version}
+Requires: %{name}-devel = %{epoch}:%{version}
%description pic
GNU C Library PIC archive contains an archive library (ar file)
%package -n nss_compat
Summary: Old style NYS NSS glibc module
Summary(pl): Stary modu³ NYS NSS glibc
+Release: %{rel}
Group: Base
-Requires: %{name} = %{version}
+Requires: %{name} = %{epoch}:%{version}
%description -n nss_compat
Old style NYS NSS glibc module.
%package -n nss_dns
Summary: BIND NSS glibc module
Summary(pl): Modu³ BIND NSS glibc
+Release: %{rel}
Group: Base
-Requires: %{name} = %{version}
+Requires: %{name} = %{epoch}:%{version}
%description -n nss_dns
BIND NSS glibc module.
%package -n nss_files
Summary: Traditional files databases NSS glibc module
Summary(pl): Modu³ tradycyjnych plikowych baz danych NSS glibc
+Release: %{rel}
Group: Base
-Requires: %{name} = %{version}
+Requires: %{name} = %{epoch}:%{version}
%description -n nss_files
Traditional files databases NSS glibc module.
%package -n nss_hesiod
Summary: Hesiod NSS glibc module
Summary(pl): Modu³ hesiod NSS glibc
+Release: %{rel}
Group: Base
-Requires: %{name} = %{version}
+Requires: %{name} = %{epoch}:%{version}
%description -n nss_hesiod
glibc NSS (Name Service Switch) module for databases access.
%package -n nss_nis
Summary: NIS(YP) NSS glibc module
Summary(pl): Modu³ NIS(YP) NSS glibc
+Release: %{rel}
Group: Base
-Requires: %{name} = %{version}
+Requires: %{name} = %{epoch}:%{version}
%description -n nss_nis
glibc NSS (Name Service Switch) module for NIS(YP) databases access.
%package -n nss_nisplus
Summary: NIS+ NSS module
Summary(pl): Modu³ NIS+ NSS
+Release: %{rel}
Group: Base
-Requires: %{name} = %{version}
+Requires: %{name} = %{epoch}:%{version}
%description -n nss_nisplus
glibc NSS (Name Service Switch) module for NIS+ databases accesa.
%package memusage
Summary: A toy
Summary(pl): Zabawka
+Release: %{rel}
Group: Applications
-Requires: %{name} = %{version}
+Requires: %{name} = %{epoch}:%{version}
Requires: gd
%description memusage
%description memusage -l pl
Zabawka.
+%package zoneinfo_right
+Summary: Non-POSIX (real) time zones
+Summary(pl): Nie-POSIX-owe (prawdziwe) strefy czasowe
+Release: %{rel}
+Group: Libraries
+Requires: %{name} = %{epoch}:%{version}
+
+%description zoneinfo_right
+You don't want this. Details at:
+http://sources.redhat.com/ml/libc-alpha/2000-12/msg00068.html
+
+%description zoneinfo_right -l pl
+Nie potrzebujesz tego. Szczegó³y pod:
+http://sources.redhat.com/ml/libc-alpha/2000-12/msg00068.html
+
%prep
%setup -q -a 1
%patch0 -p1
-%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch6 -p1
%patch9 -p1
%patch10 -p1
-%patch11 -p1
+#%%patch11 -p1
%patch12 -p1
%patch13 -p1
%patch14 -p1
+%patch16 -p1
+%patch17 -p1
+%patch18 -p1
+# don't know, if it is good idea, for brave ones
+#%patch19 -p1
+%patch20 -p1
+#%patch21 -p1
chmod +x scripts/cpp
+# standardize name
+mv -f localedata/locales/{lug_UG,lg_UG}
+
+#make proper symlink for asm in headers
+#cd usr/include
+#%ifarch %{ix86}
+#ln -s asm-i386 asm
+#%endif
+#cd ../..
+
%build
+#_headers_dir=`pwd`/usr/include; export _headers_dir;
mkdir builddir
cd builddir
# avoid stripping ld.so by -s in rpmldflags
LDFLAGS=" " ; export LDFLAGS
-%configure2_13 \
+#CFLAGS="-I $_headers_dir %{rpmcflags}"; export CFLAGS
+../%configure \
--enable-add-ons=linuxthreads \
--enable-kernel="%{?kernel:%{kernel}}%{!?kernel:%{min_kernel}}" \
--enable-profile \
- --disable-omitfp
+ --%{?_without_fp:en}%{!?_without_fp:dis}able-omitfp \
+%if 0%{!?_with_kernheaders:1}
+ --with-headers=%{_kernelsrcdir}/include
+%else
+# --with-headers=$_headers_dir
+%endif
+
# problem compiling with --enable-bounded (must be reported to libc-alpha)
-%{__make} %{parallelmkflags}
+%{__make} %{?parallelmkflags}
%install
rm -rf $RPM_BUILD_ROOT
env LANGUAGE=C LC_ALL=C \
%{__make} install \
- %{parallelmkflags} \
+ %{?parallelmkflags} \
install_root=$RPM_BUILD_ROOT \
infodir=%{_infodir} \
mandir=%{_mandir}
env LANGUAGE=C LC_ALL=C \
%{__make} localedata/install-locales \
- %{parallelmkflags} \
+ %{?parallelmkflags} \
install_root=$RPM_BUILD_ROOT
PICFILES="libc_pic.a libc.map
install elf/postshell $RPM_BUILD_ROOT/sbin
-mv -f $RPM_BUILD_ROOT/lib/libmemusage.so $RPM_BUILD_ROOT%{_libdir}
+%{!?_without_memusage:mv -f $RPM_BUILD_ROOT/lib/libmemusage.so $RPM_BUILD_ROOT%{_libdir}}
mv -f $RPM_BUILD_ROOT/lib/libpcprofile.so $RPM_BUILD_ROOT%{_libdir}
%{__make} -C ../linuxthreads/man
install ../linuxthreads/man/*.3thr $RPM_BUILD_ROOT%{_mandir}/man3
-rm -rf $RPM_BUILD_ROOT%{_datadir}/zoneinfo/{localtime,posixtime,posixrules}
+rm -rf $RPM_BUILD_ROOT%{_datadir}/zoneinfo/{localtime,posixtime,posixrules,posix/*}
+
+#cd $RPM_BUILD_ROOT%{_datadir}/zoneinfo
+#for i in [A-Z]*; do
+# ln -s ../$i posix
+#done
+#cd -
ln -sf %{_sysconfdir}/localtime $RPM_BUILD_ROOT%{_datadir}/zoneinfo/localtime
ln -sf localtime $RPM_BUILD_ROOT%{_datadir}/zoneinfo/posixtime
# Collect locale files and mark them with %%lang()
rm -f ../glibc.lang
+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
lang=`echo $i | sed -e 's/.*locale\///' -e 's/\/.*//'`
twochar=1
# list of long %%lang values we do support
- for j in de_AT de_BE de_CH de_LU ja_JP.SJIS ko_KR.utf8 pt_BR \
+ for j in de_AT de_BE de_CH de_LU es_AR es_MX ja_JP.SJIS ko_KR.utf8 pt_BR \
zh_CN zh_CN.gbk zh_HK zh_TW ; do
if [ $j = "$lang" ]; then
twochar=
lang=`echo $lang | sed "s,\..*,,"`
else
lang=`echo $lang | sed "s,_.*,,"`
- fi
- fi
+ fi
+ fi
dir=`echo $i | sed "s#$RPM_BUILD_ROOT##"`
echo "%lang($lang) $dir" >> ../glibc.lang
fi
done
-for i in af az bg de_AT el en eo es_ES et eu fi gr he hr hu id is ja_JP.SJIS \
- lt lv ms nn pt ro ru sl sr ta uk wa zh_CN ; do
+# XXX: to be added when become supported by glibc
+# am,bn,ml (present in sources, but incomplete and disabled) (used by GNOME)
+# kn,mn,ia (used by GNOME)
+# nso,ss,ven,xh,zu (used by KDE)
+for i in af ar az be bg br bs cy de_AT el en 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
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/_.*//'`
done
install %{SOURCE7} $RPM_BUILD_ROOT%{_mandir}/man8
+# localedb-gen infrastructure
+install %{SOURCE8} $RPM_BUILD_ROOT%{_bindir}/localedb-gen
+cat > $RPM_BUILD_ROOT/etc/sysconfig/localedb <<EOF
+# list of supported locales
+#SUPPORTED_LOCALES="pl_PL/ISO-8859-2 de_DE/ISO-8859-2 en_GB/ISO-8859-1 en_US/ISO-8859-1"
+EOF
+install ../localedata/SUPPORTED $RPM_BUILD_ROOT%{_datadir}/i18n
+
# shutup check-files
-rm -f $RPM_BUILD_ROOT/%{_mandir}/README.*
-rm -f $RPM_BUILD_ROOT/%{_mandir}/diff.*
-rm -f $RPM_BUILD_ROOT/%{_infodir}/dir
+rm -f $RPM_BUILD_ROOT%{_mandir}/README.*
+rm -f $RPM_BUILD_ROOT%{_mandir}/diff.*
+rm -f $RPM_BUILD_ROOT%{_infodir}/dir
# we don't support kernel without ptys support
-rm -f $RPM_BUILD_ROOT/%{_libdir}/pt_chown
+rm -f $RPM_BUILD_ROOT%{_libdir}/pt_chown
+
+# copy actual kernel headers for glibc-kernel-headers
+%if 0%{!?_with_kernheaders:1}
+%{__mkdir} -p $RPM_BUILD_ROOT%{_includedir}
+%{__cp} -Hr %{_kernelsrcdir}/include/{asm,linux} $RPM_BUILD_ROOT%{_includedir}
+#if [ -d %{_kernelsrcdir}/include/asm-generic ] ; then
+# %{__cp} -Hr %{_kernelsrcdir}/include/asm-generic $RPM_BUILD_ROOT%{_includedir}
+#fi
+%endif
%clean
rm -rf $RPM_BUILD_ROOT
/sbin/ldconfig
-/sbin/telinit u
-%postun -p /sbin/postshell
+%postun -p /sbin/postshell
/sbin/ldconfig
-/sbin/telinit u
%post devel
[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
+echo "Please install glibc-kernel-headers or, if you are a brave man,"
+echo "make appropriate links in /usr/include pointing to an already"
+echo "installed previously chosen kernel-headers package or other"
+echo "kernel headers you have."
%postun devel
[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
+%pre kernel-headers
+# useful if these are symlinks
+if [ -h %{_includedir}/asm ]; then rm -f %{_includedir}/asm; fi
+if [ -h %{_includedir}/linux ]; then rm -f %{_includedir}/linux; fi
+
%post -n nscd
/sbin/chkconfig --add nscd
touch /var/log/nscd && (chmod 000 /var/log/nscd; chown root.root /var/log/nscd; chmod 640 /var/log/nscd)
%dir %{_datadir}/locale
%{_datadir}/locale/locale.alias
%{_datadir}/zoneinfo
+%exclude %{_datadir}/zoneinfo/right
%dir %{_libdir}/locale
-%{_libdir}/locale/locale-archive
-%{_mandir}/man1/[^lsg]*
+%{_mandir}/man1/[!lsg]*
%{_mandir}/man1/getent.1*
%{_mandir}/man1/locale.1*
%{_mandir}/man1/ldd.1*
-%{_mandir}/man5/???[^d]*
+%{_mandir}/man5/???[!d]*
%{_mandir}/man7/*
-%{_mandir}/man8/[^n]*
+%{_mandir}/man8/[!n]*
%lang(cs) %{_mandir}/cs/man[578]/*
%lang(de) %{_mandir}/de/man[578]/*
%lang(es) %{_mandir}/es/man[578]/*
%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(ja) %{_mandir}/ja/man1/[!lsg]*
%lang(ja) %{_mandir}/ja/man1/ldd.1*
-%lang(ja) %{_mandir}/ja/man5/???[^d]*
+%lang(ja) %{_mandir}/ja/man5/???[!d]*
%lang(ja) %{_mandir}/ja/man7/*
-%lang(ja) %{_mandir}/ja/man8/[^n]*
+%lang(ja) %{_mandir}/ja/man8/[!n]*
%lang(ko) %{_mandir}/ko/man[578]/*
# %lang(nl) %{_mandir}/nl/man[578]/*
%lang(pl) %{_mandir}/pl/man1/ldd.1*
%lang(pl) %{_mandir}/pl/man[578]/*
-%lang(pt) %{_mandir}/pt/man5/???[^d]*
+%lang(pt) %{_mandir}/pt/man5/???[!d]*
%lang(pt) %{_mandir}/pt/man7/*
-%lang(pt) %{_mandir}/pt/man8/[^n]*
-%lang(pt_BR) %{_mandir}/pt_BR/man5/???[^d]*
+%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(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_files*.so*
+%files zoneinfo_right
+%defattr(644,root,root,755)
+%{_datadir}/zoneinfo/right
+
%files -n nss_compat
%defattr(644,root,root,755)
%attr(755,root,root) /lib/libnss_compat*.so*
%defattr(644,root,root,755)
%attr(755,root,root) /lib/libnss_nisplus*.so*
+%if %{?_without_memusage:0}%{!?_without_memusage:1}
%files memusage
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/memusage*
%attr(755,root,root) %{_libdir}/libmemusage*
+%endif
%files devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/*prof*
%attr(755,root,root) %{_bindir}/*trace
-%{_includedir}/*
+%{_includedir}/*.h
+%{_includedir}/arpa
+%{_includedir}/bits
+%{_includedir}/gnu
+%{_includedir}/net
+%{_includedir}/netash
+%{_includedir}/netatalk
+%{_includedir}/netax25
+%{_includedir}/neteconet
+%{_includedir}/netinet
+%{_includedir}/netipx
+%{_includedir}/netpacket
+%{_includedir}/netrom
+%{_includedir}/netrose
+%{_includedir}/nfs
+%{_includedir}/protocols
+%{_includedir}/rpc
+%{_includedir}/rpcsvc
+%{_includedir}/scsi
+%{_includedir}/sys
%{_infodir}/libc.info*
-%attr(755,root,root) %{_libdir}/lib[^m]*.so
+%attr(755,root,root) %{_libdir}/lib[!m]*.so
%attr(755,root,root) %{_libdir}/libm.so
%attr(755,root,root) %{_libdir}/*crt*.o
%{_libdir}/libbsd-compat.a
%{_libdir}/libc_nonshared.a
%{_libdir}/libg.a
%{_libdir}/libieee.a
+%{_libdir}/libpthread_nonshared.a
%{_libdir}/librpcsvc.a
%{_mandir}/man1/getconf*
%lang(pt_BR) %{_mandir}/pt_BR/man3/*
%lang(ru) %{_mandir}/ru/man3/*
+%files kernel-headers
+%defattr(644,root,root,755)
+%{_includedir}/asm*
+%{_includedir}/linux
+
%files -n nscd
%defattr(644,root,root,755)
%attr(640,root,root) %config %verify(not md5 size mtime) /etc/sysconfig/nscd
%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*
+%config(noreplace) %verify(not size mtime md5) /etc/sysconfig/localedb
+
+%files localedb-all
+%defattr(644,root,root,755)
+%{_libdir}/locale/locale-archive
%files -n iconv
%defattr(644,root,root,755)