X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=glibc.spec;h=e914515a38afae8dca73802e8d42c5eaf75dca72;hb=6dfe7814c85c6b4283ef6122b597de4b5994d3d8;hp=735223a334c3a2c737f3f8bed255173cdff74a64;hpb=cbf1c4bb0d83e99ee9b0bfd4ac4d9431bed61c05;p=packages%2Fglibc.git diff --git a/glibc.spec b/glibc.spec index 735223a..e914515 100644 --- a/glibc.spec +++ b/glibc.spec @@ -1,3 +1,10 @@ +# TODO: +# - 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. +# [OLD] +# - localedb-gen man pages(?) +# - math/{test-fenv,test-tgmath,test-float,test-ifloat}, +# debug/backtrace-tst(SEGV) fail on alpha # # Conditional build: # min_kernel (default is 2.6.12) @@ -7,14 +14,6 @@ %bcond_without localedb # don't build localedb-all (is time consuming) %bcond_with cross # build using crossgcc (without libgcc_eh) # -# TODO: -# - 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. -# - unbash /usr/bin/ldd (and other scripts?) -# [OLD] -# - localedb-gen man pages(?) -# - math/{test-fenv,test-tgmath,test-float,test-ifloat}, -# debug/backtrace-tst(SEGV) fail on alpha %{!?min_kernel:%global min_kernel 2.6.12} %ifarch sparc64 @@ -33,15 +32,14 @@ Summary(ru.UTF-8): GNU libc версии Summary(tr.UTF-8): GNU libc Summary(uk.UTF-8): GNU libc версії Name: glibc -Version: 2.10.1 -Release: 5 +Version: 2.12 +Release: 3 Epoch: 6 License: LGPL v2.1+ Group: Libraries -Source0: ftp://sources.redhat.com/pub/glibc/releases/%{name}-%{version}.tar.bz2 -# Source0-md5: ee71dedf724dc775e4efec9b823ed3be -Source1: ftp://sources.redhat.com/pub/glibc/releases/%{name}-libidn-%{version}.tar.bz2 -# Source1-md5: 8ef88560ec608d5923ee05eb5f0e15ea +# Source0: ftp://sources.redhat.com/pub/glibc/releases/%{name}-%{version}.tar.bz2 +Source0: %{name}-%{version}.tar.bz2 +# Source0-md5: 37526f1337474dffcf9cda5292957c24 Source2: nscd.init Source3: nscd.sysconfig Source4: nscd.logrotate @@ -72,6 +70,8 @@ Patch22: %{name}-with-stroke.patch Patch23: %{name}-pt_pax.patch Patch25: %{name}-cv_gnu89_inline.patch Patch26: %{name}-posix-sh.patch +Patch27: %{name}-i686.patch +Patch28: %{name}-dl.patch URL: http://www.gnu.org/software/libc/ %{?with_selinux:BuildRequires: audit-libs-devel} BuildRequires: autoconf @@ -83,15 +83,14 @@ BuildRequires: binutils >= 2:2.15.90.0.3 %endif %{!?with_cross:BuildRequires: dietlibc-static} BuildRequires: gawk -BuildRequires: gcc >= 5:3.4 +BuildRequires: gcc >= 6:4.3 %{?with_memusage:BuildRequires: gd-devel >= 2.0.1} BuildRequires: gettext-devel >= 0.10.36 %{?with_selinux:BuildRequires: libselinux-devel >= 1.18} BuildRequires: linux-libc-headers >= %{llh_version} -BuildRequires: nss-devel >= 3.12.3 +BuildRequires: nss-devel >= 1:3.12.3 BuildRequires: perl-base BuildRequires: rpm-build >= 4.3-0.20030610.28 -BuildRequires: rpm-perlprov BuildRequires: rpmbuild(macros) >= 1.413 BuildRequires: sed >= 4.0.5 BuildRequires: texinfo @@ -108,8 +107,8 @@ Obsoletes: glibc64 %endif Suggests: localedb Suggests: tzdata -Conflicts: SysVinit < 2.86-11 Conflicts: %{name}-misc < %{epoch}:%{version}-%{release} +Conflicts: SysVinit < 2.86-11 Conflicts: kernel < %{min_kernel} Conflicts: kernel24 Conflicts: kernel24-smp @@ -126,6 +125,7 @@ BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) # avoid -D_FORTIFY_SOURCE=X %define filterout_cpp -D_FORTIFY_SOURCE=[0-9]+ +%define specflags_sparcv9 -mcpu=ultrasparc -mvis -fcall-used-g6 %define specflags_sparc64 -mcpu=ultrasparc -mvis -fcall-used-g6 # ld.so needs not to be stripped to work @@ -140,8 +140,8 @@ BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) # Xen-friendly glibc %define specflags_ia32 -mno-tls-direct-seg-refs -%define specflags_x86_64 -mno-tls-direct-seg-refs -%define specflags_amd64 -mno-tls-direct-seg-refs +%define specflags_x86_64 -mno-tls-direct-seg-refs -fasynchronous-unwind-tables +%define specflags_amd64 -mno-tls-direct-seg-refs -fasynchronous-unwind-tables %define specflags_ia32e -mno-tls-direct-seg-refs # we don't want perl dependency in glibc-devel @@ -278,12 +278,17 @@ Narzędzia i dane używane przez glibc. %package libcrypt Summary: glibc library for crypt(3) +Summary(pl.UTF-8): Biblioteka glibc z funkcją crypt(3) Group: Libraries Requires: %{name} = %{epoch}:%{version}-%{release} +Provides: crypt(blowfish) %description libcrypt glibc library for crypt(3). +%description libcrypt -l pl.UTF-8 +Biblioteka glibc z funkcją crypt(3). + %package -n ldconfig Summary: Create shared library cache and maintains symlinks Summary(de.UTF-8): Erstellt ein shared library cache und verwaltet symlinks @@ -883,8 +888,7 @@ Un juguete. Zabawka. %prep -%setup -q -a1 -ln -s glibc-libidn-%{version} libidn +%setup -q #%patch1 -p1 %patch2 -p1 %patch3 -p1 @@ -907,6 +911,8 @@ ln -s glibc-libidn-%{version} libidn %patch23 -p0 %patch25 -p1 %patch26 -p1 +%patch27 -p1 +%patch28 -p1 # cleanup backups after patching find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f @@ -914,8 +920,8 @@ find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f chmod +x scripts/cpp # 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 - +ln -s i686 nptl/sysdeps/i386/i786 +ln -s i686 nptl/sysdeps/unix/sysv/linux/i386/i786 %build # glibc has its own way to remove PLT relocations. / H. J. Lu. @@ -939,7 +945,9 @@ AWK="gawk" \ --with%{!?with_selinux:out}-selinux \ --with-tls \ --enable-add-ons=nptl,libidn \ +%if "%{pld_release}" != "ti" --enable-nss-crypt \ +%endif --enable-stackguard-randomization \ --enable-hidden-plt \ --enable-bind-now \ @@ -976,7 +984,7 @@ diet ${CC#*ccache } %{SOURCE7} %{rpmcflags} -Os -static -o glibc-postinst %install rm -rf $RPM_BUILD_ROOT -install -d $RPM_BUILD_ROOT{/etc/{default,logrotate.d,rc.d/init.d,sysconfig},%{_mandir}/man{3,8},/var/log,/var/{lib,run}/nscd} +install -d $RPM_BUILD_ROOT{/etc/{default,logrotate.d,rc.d/init.d,sysconfig},%{_mandir}/man{3,8},/var/log,/var/{lib,run}/nscd,/var/cache/ldconfig} cd builddir env LANGUAGE=C LC_ALL=C \ @@ -995,16 +1003,16 @@ PICFILES="libc_pic.a libc.map math/libm_pic.a libm.map resolv/libresolv_pic.a" -install $PICFILES $RPM_BUILD_ROOT%{_libdir} -install elf/soinit.os $RPM_BUILD_ROOT%{_libdir}/soinit.o -install elf/sofini.os $RPM_BUILD_ROOT%{_libdir}/sofini.o +install -p $PICFILES $RPM_BUILD_ROOT%{_libdir} +install -p elf/soinit.os $RPM_BUILD_ROOT%{_libdir}/soinit.o +install -p elf/sofini.os $RPM_BUILD_ROOT%{_libdir}/sofini.o # Include %{_libdir}/gconv/gconv-modules.cache ./iconv/iconvconfig --nostdlib --prefix=$RPM_BUILD_ROOT %{_libdir}/gconv -o $RPM_BUILD_ROOT%{_libdir}/gconv/gconv-modules.cache cd .. %if %{without cross} -install glibc-postinst $RPM_BUILD_ROOT/sbin +install -p glibc-postinst $RPM_BUILD_ROOT/sbin %endif %{?with_memusage:mv -f $RPM_BUILD_ROOT/%{_lib}/libmemusage.so $RPM_BUILD_ROOT%{_libdir}} @@ -1026,32 +1034,40 @@ done # linking nss modules directly is not supported rm -f $RPM_BUILD_ROOT%{_libdir}/libnss_*.so -install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/nscd -install %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/nscd -install %{SOURCE4} $RPM_BUILD_ROOT/etc/logrotate.d/nscd -install nscd/nscd.conf $RPM_BUILD_ROOT%{_sysconfdir} +install -p %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/nscd +cp -a %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/nscd +cp -a %{SOURCE4} $RPM_BUILD_ROOT/etc/logrotate.d/nscd +cp -a nscd/nscd.conf $RPM_BUILD_ROOT%{_sysconfdir} +cp -a posix/gai.conf $RPM_BUILD_ROOT%{_sysconfdir} +cp -a nis/nss $RPM_BUILD_ROOT/etc/default/nss sed -e 's#\([ \t]\)db\([ \t]\)#\1#g' nss/nsswitch.conf > $RPM_BUILD_ROOT%{_sysconfdir}/nsswitch.conf -install posix/gai.conf $RPM_BUILD_ROOT%{_sysconfdir} -install nis/nss $RPM_BUILD_ROOT/etc/default/nss bzip2 -dc %{SOURCE5} | tar xf - -C $RPM_BUILD_ROOT%{_mandir} -> $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.cache +: > $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 +: > $RPM_BUILD_ROOT/var/cache/ldconfig/aux-cache + rm -f $RPM_BUILD_ROOT%{_mandir}/hu/man7/man.7 -:> $RPM_BUILD_ROOT/var/log/nscd -:> $RPM_BUILD_ROOT/var/lib/nscd/passwd -:> $RPM_BUILD_ROOT/var/lib/nscd/group -:> $RPM_BUILD_ROOT/var/lib/nscd/hosts +# doesn't fit with out tzdata concept and configure.in is stupid assuming bash +# is first posix compatible shell making this script depend on bash. +rm -f $RPM_BUILD_ROOT%{_bindir}/tzselect +rm -f $RPM_BUILD_ROOT%{_mandir}/man8/tzselect.8* +rm -f $RPM_BUILD_ROOT%{_mandir}/*/man8/tzselect.8* + +: > $RPM_BUILD_ROOT/var/log/nscd +: > $RPM_BUILD_ROOT/var/lib/nscd/passwd +: > $RPM_BUILD_ROOT/var/lib/nscd/group +: > $RPM_BUILD_ROOT/var/lib/nscd/hosts rm -rf documentation install -d documentation for f in ANNOUNCE ChangeLog DESIGN-{barrier,condvar,rwlock,sem}.txt TODO{,-kernel,-testing}; do - cp -f nptl/$f documentation/$f.nptl + cp -af nptl/$f documentation/$f.nptl done -cp -f crypt/README.ufc-crypt ChangeLog* documentation +cp -af crypt/README.ufc-crypt ChangeLog* documentation # Collect locale files and mark them with %%lang() echo '%defattr(644,root,root,755)' > glibc.lang @@ -1066,27 +1082,31 @@ done # NOTES: # Languages not supported by glibc locales, but usable via $LANGUAGE: # ang - Old English (gtk+, gnome) +# ca@valencia (gtk+, gnome; as ca_ES@valencia in FileZilla; locale exists in Debian) # tlh - Klingon (bzflag) # and variants: # sr@ije (use LANGUAGE=sr_ME@ije/sr_RS@ije) (gnome) # # To be added when they become supported by glibc: -# az_IR (gtk+) -# ca@valencia (gtk+2; as ca_ES@valencia in FileZilla; locale exists in Debian) -# co (vlc) -# dv (iso-codes) -# gn (gn_BR in gnome, maybe gn_PY) -# la (deluge, gnome, others; patch needed, won't be officially supported) -# my (gaim) +# az_IR (gtk+2) +# bal (newt,pessulus) +# bem (alacarte) +# ckb [or ku_IQ/ku_IR] (vlc,miro) +# co (vlc) +# gn (gn_BR in gnome, maybe gn_PY) # bal (newt) # haw (iso-codes) # ilo (kudzu) +# io (gtk+2, gnome, alacarte) +# jv (gmpc) # kok (iso-codes) +# lb (geany,miro) # man (ccsm; incorrectly named md) # mus (bluez-gnome) -# sco (gnomad2) +# sco (gnomad2, picard) +# swg (sim) # syr (iso-codes) -# ven (kalarm) +# tet (vlc) # # bn is used for bn_BD or bn_IN? Assume bn_IN as nothing for bn_BD appeared # till now. @@ -1096,26 +1116,26 @@ done # sv tr zh_CN zh_TW # for i in aa aa@saaho af am an ang ar ar_TN as ast az be@alternative be@latin \ - bg bn bn_IN br bs byn crh csb cy de_AT de_CH dz en en@boldquot en@quot \ - en_AU en_CA en_NZ en_US eo es_AR es_CL es_CO es_CR es_DO es_EC es_GT \ - es_HN es_MX es_NI es_PA es_PE es_PR es_SV es_UY es_VE et eu fa fil fo \ - fr_BE fr_CA fr_CH fur fy ga gd gez gu gv ha he hi hsb hy ia id ig ik \ - is it_CH iu ka kk kl km kn ks ku kw ky lg li lo lt lv mai mg mi mk ml \ - mn mr ms mt nds ne nl_BE nn nr nso oc om or pa pap ps pt rm ro sa sc \ - se si sid sl so sq sr sr@Latn 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 + bg bn bn_IN br bs byn ca@valencia crh csb cy de_AT de_CH dv dz en \ + en@boldquot en@quot en_AU en_CA en_NZ en_US eo es_AR es_CL es_CO es_CR \ + es_DO es_EC es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_SV es_UY \ + es_VE et eu fa fil fo fr_BE fr_CA fr_CH fur fy ga gd gez gu gv ha he \ + hi hne hsb hy ia id ig ik is it_CH iu ka 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 \ + 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 # use lang() tags with ll_CC@variant (stripping charset and @quot|@boldquot) - lang=`echo $i | sed -e 's/@quot\>\|@boldquot\>//'` + lang=$(echo $i | sed -e 's/@quot\>\|@boldquot\>//') echo "%lang($lang) %{_datadir}/locale/$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 es et eu fi fr ga gl hu id it ja ko lt ms nb nl pl \ - pt pt_BR ru rw sk sl sv tr uk vi zh_CN zh_TW; do +for i in af be bg ca cs da de el en es et eu fi fr ga gl hu id it ja 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 fi @@ -1159,6 +1179,14 @@ rm -rf $RPM_BUILD_ROOT %post memusage -p /sbin/ldconfig %postun memusage -p /sbin/ldconfig +%post -n localedb-src +SUPPORTED_LOCALES= +[ -f /etc/sysconfig/i18n ] && . /etc/sysconfig/i18n +[ -f /etc/sysconfig/localedb ] && . /etc/sysconfig/localedb +if [ "$SUPPORTED_LOCALES" ]; then + localedb-gen || : +fi + %post devel -p /sbin/postshell -/usr/sbin/fix-info-dir -c %{_infodir} @@ -1170,12 +1198,14 @@ rm -rf $RPM_BUILD_ROOT %useradd -P nscd -u 144 -r -d /tmp -s /bin/false -c "Name Service Cache Daemon" -g nscd nscd %post -n nscd +if [ ! -f /var/log/nscd ]; then + umask 027 + touch /var/log/nscd + chown root:root /var/log/nscd + chmod 640 /var/log/nscd +fi /sbin/chkconfig --add nscd -touch /var/log/nscd -chmod 000 /var/log/nscd -chown root:root /var/log/nscd -chmod 640 /var/log/nscd -%service nscd restart "nscd daemon" +%service nscd restart "Name Service Cache Daemon" %preun -n nscd if [ "$1" = "0" ]; then @@ -1399,36 +1429,26 @@ fi %defattr(644,root,root,755) %attr(755,root,root) %{_bindir}/catchsegv %attr(755,root,root) %{_bindir}/ldd -%attr(755,root,root) %{_bindir}/tzselect %{_mandir}/man1/catchsegv.1* %{_mandir}/man1/ldd.1* -%{_mandir}/man8/tzselect.8* %lang(es) %{_mandir}/es/man1/ldd.1* -%lang(es) %{_mandir}/es/man8/tzselect.8* %lang(fi) %{_mandir}/fi/man1/ldd.1* %lang(fr) %{_mandir}/fr/man1/ldd.1* -%lang(fr) %{_mandir}/fr/man8/tzselect.8* %lang(hu) %{_mandir}/hu/man1/ldd.1* -%lang(it) %{_mandir}/it/man8/tzselect.8* %lang(ja) %{_mandir}/ja/man1/ldd.1* -%lang(ja) %{_mandir}/ja/man8/tzselect.8* %lang(ko) %{_mandir}/ko/man1/ldd.1* -%lang(ko) %{_mandir}/ko/man8/tzselect.8* %lang(pl) %{_mandir}/pl/man1/ldd.1* -%lang(pt) %{_mandir}/pt/man8/tzselect.8* %lang(ru) %{_mandir}/ru/man1/ldd.1* -%lang(ru) %{_mandir}/ru/man8/tzselect.8* %lang(tr) %{_mandir}/tr/man1/ldd.1* %lang(zh_CN) %{_mandir}/zh_CN/man1/ldd.1* -%lang(zh_CN) %{_mandir}/zh_CN/man8/tzselect.8* %files libcrypt %defattr(644,root,root,755) %attr(755,root,root) /%{_lib}/libcrypt-%{version}.so %ifarch alpha -%ghost %attr(755,root,root) /%{_lib}/libcrypt.so.1.1 +%attr(755,root,root) %ghost /%{_lib}/libcrypt.so.1.1 %else -%ghost %attr(755,root,root) /%{_lib}/libcrypt.so.1 +%attr(755,root,root) %ghost /%{_lib}/libcrypt.so.1 %endif %files -n ldconfig @@ -1445,6 +1465,8 @@ fi %lang(pl) %{_mandir}/pl/man8/ldconfig.8* %lang(pt) %{_mandir}/pt/man8/ldconfig.8* %lang(ru) %{_mandir}/ru/man8/ldconfig.8* +%dir %attr(700,root,root) /var/cache/ldconfig +%attr(600,root,root) %ghost /var/cache/ldconfig/aux-cache %files -n nss_compat %defattr(644,root,root,755)