# TODO:
+# - restore --with-pkgversion when tcl upstream fixes the #3599098 (broken platform::identify).
# - --enable-systemtap
# - look at locale fixes/updates in bugzilla
# - no more chicken-egg problem (postshell is no more dynamically linked with libc), remove SONAME symlinks? see files section.
%undefine with_memusage
%endif
-%define core_version 2.17
+%define core_version 2.18
%define llh_version 7:2.6.20.4-1
Summary: GNU libc
Summary(uk.UTF-8): GNU libc версії
Name: glibc
Version: %{core_version}
-Release: 0.1
+Release: 1
Epoch: 6
License: LGPL v2.1+
Group: Libraries
Source0: http://ftp.gnu.org/gnu/glibc/%{name}-%{version}.tar.xz
-# Source0-md5: 87bf675c8ee523ebda4803e8e1cec638
+# Source0-md5: 88fbbceafee809e82efd52efa1e3c58f
Source2: nscd.init
Source3: nscd.sysconfig
Source4: nscd.logrotate
Patch9: %{name}-java-libc-wait.patch
Patch10: %{name}-info.patch
Patch11: %{name}-autoconf.patch
+Patch12: %{name}-format.patch
Patch14: %{name}-sparc-errno_fix.patch
Patch15: %{name}-new-charsets.patch
Patch26: %{name}-posix-sh.patch
Patch29: %{name}-arm-alignment-fix.patch
-Patch30: %{name}-bug-12492.patch
+
Patch31: %{name}-origin.patch
Patch32: %{name}-Os-fail-workaround.patch
BuildRequires: gettext-devel >= 0.10.36
%{?with_selinux:BuildRequires: libselinux-devel >= 1.18}
BuildRequires: linux-libc-headers >= %{llh_version}
-BuildRequires: nss-devel >= 1:3.12.3
+BuildRequires: nss-devel >= 1:3.15.1-2
BuildRequires: perl-base
BuildRequires: rpm-build >= 4.3-0.20030610.28
BuildRequires: rpmbuild(macros) >= 1.567
BuildRequires: sed >= 4.0.5
BuildRequires: texinfo
Requires(post): ldconfig = %{epoch}:%{version}-%{release}
+Requires: filesystem
Requires: uname(release) >= %{min_kernel}
Provides: glibc(nptl)
Provides: glibc(tls)
Conflicts: poldek < 0.18.8-5
Conflicts: rc-scripts < 0.3.1-13
Conflicts: rpm < 4.1
+Conflicts: xorg-driver-video-nvidia-libs < 1:295.33
ExclusiveArch: i486 i586 i686 pentium3 pentium4 athlon %{x8664} ia64 alpha s390 s390x sparc sparc64 sparcv9 ppc ppc64 armv5tel
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%patch9 -p1
%patch10 -p1
%patch11 -p1
+%patch12 -p1
%patch14 -p0
%patch15 -p1
%patch16 -p1
-# CHECK ME
-#%patch17 -p1
+%patch17 -p1
%patch18 -p1
%patch19 -p1
%patch20 -p1
%patch26 -p1
%patch29 -p1
-%patch30 -p0
+
%patch31 -p1
%patch32 -p1
AWK="gawk" \
../%configure \
--with-bugurl=http://bugs.pld-linux.org/ \
- --with-pkgversion=%{name}-%{epoch}:%{version}-%{release} \
--with-binutils=$(pwd)/alt-tools \
--enable-kernel="%{min_kernel}" \
--with-headers=%{_includedir} \
%if %{with tests}
cd builddir
env LANGUAGE=C LC_ALL=C \
-%{__make} tests 2>&1 | awk '
+%{__make} -j1 tests 2>&1 | awk '
BEGIN { file = "" }
{
if (($0 ~ /\*\*\* \[.*\.out\] Error/) && ($0 !~ /annexc/) && (file == "")) {
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT/etc/{default,logrotate.d,rc.d/init.d,sysconfig,init} \
+install -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,sysconfig,default,logrotate.d,init} \
$RPM_BUILD_ROOT{%{_mandir}/man{3,8},/var/log,/var/{lib,run}/nscd} \
- $RPM_BUILD_ROOT{/var/cache/ldconfig,/usr/lib/tmpfiles.d}
+ $RPM_BUILD_ROOT{/var/cache/ldconfig,%{systemdtmpfilesdir}}
cd builddir
env LANGUAGE=C LC_ALL=C \
install -p elf/sofini.os $RPM_BUILD_ROOT%{_libdir}/sofini.o
# Include %{_libdir}/gconv/gconv-modules.cache
-LD_PRELOAD=$(pwd)/elf/ld.so:$(pwd)/libc.so.6 ./iconv/iconvconfig --nostdlib --prefix=$RPM_BUILD_ROOT %{_libdir}/gconv -o $RPM_BUILD_ROOT%{_libdir}/gconv/gconv-modules.cache
+$(pwd)/elf/ld.so --library-path $(pwd) ./iconv/iconvconfig --nostdlib --prefix=$RPM_BUILD_ROOT %{_libdir}/gconv -o $RPM_BUILD_ROOT%{_libdir}/gconv/gconv-modules.cache
cd ..
%if %{without cross}
: > $RPM_BUILD_ROOT/var/lib/nscd/group
: > $RPM_BUILD_ROOT/var/lib/nscd/hosts
-install %{SOURCE9} $RPM_BUILD_ROOT/usr/lib/tmpfiles.d/nscd.conf
+install %{SOURCE9} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/nscd.conf
rm -rf documentation
install -d documentation
# Collect locale files and mark them with %%lang()
echo '%defattr(644,root,root,755)' > glibc.lang
-for i in $RPM_BUILD_ROOT%{_datadir}/locale/*; do
+for i in $RPM_BUILD_ROOT%{_localedir}/*; do
if [ -d $i ]; then
lang=$(basename $i)
dir="${i#$RPM_BUILD_ROOT}"
#
# To be removed (after fixing packages still using it):
# sr@Latn (use sr@latin instead)
-#
-# To be clarified:
-# sr@ije or sr@ijekavian? (currently sr@ije is supported)
-# sr@ijelatin or sr@ijekavianlatin? (currently not supported)
-# sr@ijekavian and sr@ijekavianlatin exist in: akonadi-googledata, amarok, k3b, konversation, ktorrent, wesnoth
+# sr@ije (use sr@ijekavian instead)
#
# Short forms (omitted country code, used instead of long form) for ambiguous or unclear cases:
# aa=aa_ER
# eo=common
# es=es_ES
# eu=eu_ES
+# fa=fa_IR
# ff=ff_SN
# fr=fr_FR
# fy=fy_NL
# nds=nds_DE
# nl=nl_NL
# om=om_ET
+# or=or_IN
# pa=pa_IN
# pt=pt_PT
# ru=ru_RU
# so=so_SO
# sr=sr_RS [cyrillic]
+# sr@latin=sr_RS@latin
+# sr@ijekavian=sr_BA@ijekavian
+# sr@ijekavianlatin=sr_BA@ijekavianlatin
# sv=sv_SE
# sw=sw_TZ (or common for KE, TZ, UG?)
# ta=ta_IN
hi hne hsb hy ia id ig ik is it_CH iu ka kg kk kl km kn ks ku kw ky la \
lg li lo lt lv mai mg mi mk ml mn mr ms mt my nds ne nl_BE nn nr nso \
oc om or pa pap ps pt ps rm ro sa sc se si sid sl so sq sr sr@Latn tl \
- sr@ije sr@latin ss st sw ta te tg th ti tig tk tl tlh tn ts tt ug uk \
- ur uz uz@cyrillic ve vi wa wal wo xh yi yo zh_HK zu; do
- if [ ! -d $RPM_BUILD_ROOT%{_datadir}/locale/$i/LC_MESSAGES ]; then
- install -d $RPM_BUILD_ROOT%{_datadir}/locale/$i/LC_MESSAGES
+ sr@ije sr@ijekavian sr@ijekavianlatin sr@latin ss st sw ta te tg th ti \
+ tig tk tl tlh tn ts tt ug uk ur uz uz@cyrillic ve vi wa wal wo xh yi yo \
+ zh_HK zu; do
+ if [ ! -d $RPM_BUILD_ROOT%{_localedir}/$i/LC_MESSAGES ]; then
+ install -d $RPM_BUILD_ROOT%{_localedir}/$i/LC_MESSAGES
# use lang() tags with ll_CC@variant (stripping charset and @quot|@boldquot)
lang=$(echo $i | sed -e 's/@quot\>\|@boldquot\>//')
- echo "%lang($lang) %{_datadir}/locale/$i" >> glibc.lang
+ echo "%lang($lang) %{_localedir}/$i" >> glibc.lang
fi
done
# LC_TIME category, used for localized date formats (at least by coreutils)
-for i in af be bg ca cs da de el en eo es et eu fi fr ga gl hr hu id it ja kk ko lg lt \
+for i in af be bg ca cs da de el en eo es et eu fi fr ga gl hr hu ia id it ja kk ko lg lt \
ms nb nl pl pt pt_BR ro ru rw sk sl sv tr uk vi zh_CN zh_TW; do
- if [ ! -d $RPM_BUILD_ROOT%{_datadir}/locale/$i ]; then
- echo "%lang($lang) %{_datadir}/locale/$i" >> glibc.lang
+ if [ ! -d $RPM_BUILD_ROOT%{_localedir}/$i ]; then
+ echo "%lang($lang) %{_localedir}/$i" >> glibc.lang
fi
- install -d $RPM_BUILD_ROOT%{_datadir}/locale/$i/LC_TIME
+ install -d $RPM_BUILD_ROOT%{_localedir}/$i/LC_TIME
done
# localedb-gen infrastructure
# shutup check-files
%{__rm} $RPM_BUILD_ROOT%{_mandir}/README.*
rm -f $RPM_BUILD_ROOT%{_infodir}/dir
-# we don't support kernel without ptys support
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/pt_chown
# rpcinfo dropped from glibc, provided by rpcbind now
%{__rm} $RPM_BUILD_ROOT%{_mandir}/{,*/}man8/rpcinfo.8
+# stub for man page from man-pages package to make rpm consistency check happy
+# don't package them here
+install -d $RPM_BUILD_ROOT%{_mandir}{/,/ru,/es,/fr,/ja}/man2
+:>$RPM_BUILD_ROOT%{_mandir}/man2/syslog.2
+:>$RPM_BUILD_ROOT%{_mandir}/ru/man2/syslog.2
+:>$RPM_BUILD_ROOT%{_mandir}/es/man2/syslog.2
+:>$RPM_BUILD_ROOT%{_mandir}/fr/man2/syslog.2
+:>$RPM_BUILD_ROOT%{_mandir}/ja/man2/syslog.2
+
+# remove links to non existant translations
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/pl/man3/{alphasort,cfgetispeed,cfgetospeed,cfmakeraw,cfsetispeed,cfsetospeed,closelog,dn_comp,dn_expand,fscanf}.3
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/it/man7/latin2.7
+
%clean
rm -rf $RPM_BUILD_ROOT
%dir %{_libexecdir}/getconf
%attr(755,root,root) %{_libexecdir}/getconf/*
-%dir %{_datadir}/locale
-%{_datadir}/locale/locale.alias
+%dir %{_localedir}
+%{_localedir}/locale.alias
%{_mandir}/man1/getconf.1*
%{_mandir}/man1/getent.1*
%attr(755,root,root) %{_sbindir}/nscd*
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/nscd
%attr(640,root,root) %ghost /var/log/nscd
-/usr/lib/tmpfiles.d/nscd.conf
+%{systemdtmpfilesdir}/nscd.conf
%dir /var/run/nscd
%dir /var/lib/nscd
%attr(600,root,root) %ghost /var/lib/nscd/passwd