# RH 2.2.4-20, SuSE 2.3.1-32 %define name %{cross_prefix}glibc # <epoch>:<version>-<release> tags for glibc main package %define glibccvsversion 2.8 %define glibcversion 2.8 %define __glibcrelease 5 %define glibcepoch 6 # CVS snapshots of glibc %define RELEASE 0 %if %{RELEASE} %define source_package glibc-%{glibcversion} %define source_dir glibc-%{glibcversion} %define _glibcrelease %{__glibcrelease} %else %define snapshot 20080520 %define source_package glibc-%{glibccvsversion}-%{snapshot} %define source_dir glibc-%{glibccvsversion} %define _glibcrelease 1.%{snapshot}.%{__glibcrelease} %endif %if "%{?manbo_mkrel:has_manbo}" == "has_manbo" %define glibcrelease %manbo_mkrel %{_glibcrelease} %else %define glibcrelease %mkrel %{_glibcrelease} %endif # crypt blowfish support %define crypt_bf_ver 1.0.2 # Define "cross" to an architecture to which glibc is to be # cross-compiled %define build_cross 0 %{expand: %{?cross: %%global build_cross 1}} %if %{build_cross} %define target_cpu %{cross} %define cross_prefix cross-%{target_cpu}- %define _prefix /usr/%{target_cpu}-linux %define _lib lib %define _slibdir %{_prefix}/%{_lib} %define _slibdir32 %{_prefix}/lib %else %define target_cpu %{_target_cpu} %define cross_prefix %{nil} %define _slibdir /%{_lib} %define _slibdir32 /lib %endif # Define target (base) architecture %define arch %(echo %{target_cpu}|sed -e "s/\\(i.86\\|athlon\\)/i386/" -e "s/amd64/x86_64/" -e "s/\\(sun4.*\\|sparcv[89]\\)/sparc/") %define isarch() %(case " %* " in (*" %{arch} "*) echo 1;; (*) echo 0;; esac) # Define Xen arches to build with -mno-tls-direct-direct-seg-refs %define xenarches %{ix86} x86_64 # Define to build nscd with selinux support %define build_selinux 0 # Flag for build_pdf_doc: # 1 build glibc with PDF documentation # 0 don't build PDF glibc documentation (e.g. for bootstrap build) %define build_pdf_doc 1 # Enable checking by default for arches where we know tests all pass %define build_check 1 # Allow make check to fail only when running kernels where we know # tests must pass (no missing features or bugs in the kernel) %define check_min_kver 2.6.21 # Define to build a biarch package %define build_biarch 0 %if %isarch sparc64 x86_64 ppc64 %define build_biarch 1 %endif # Define to build glibc-debug package %define build_debug 1 %define _enable_debug_packages 1 %if "%{_enable_debug_packages}" == "1" %define build_debug 0 %endif # Define to bootstrap new glibc %define build_bootstrap 0 %{expand: %{!?build_cross_bootstrap: %global build_cross_bootstrap 0}} %define build_profile 1 %define build_nscd 1 %define build_doc 1 %define build_utils 1 %define build_i18ndata 1 %define build_timezone 0 # Disable a few defaults when cross-compiling a glibc %if %{build_cross} %define build_doc 0 %define build_pdf_doc 0 %define build_biarch 0 %define build_check 0 %define build_debug 0 %define build_nscd 0 %define build_profile 0 %define build_utils 0 %define build_i18ndata 0 %define build_timezone 0 %endif # Allow --with[out] <feature> at rpm command line build %{expand: %{?_without_PDF: %%global build_pdf_doc 0}} %{expand: %{?_without_CHECK: %%global build_check 0}} %{expand: %{?_without_UTILS: %%global build_utils 0}} %{expand: %{?_without_BOOTSTRAP:%%global build_bootstrap 0}} %{expand: %{?_with_PDF: %%global build_pdf_doc 1}} %{expand: %{?_with_CHECK: %%global build_check 1}} %{expand: %{?_with_UTILS: %%global build_utils 1}} %{expand: %{?_with_BOOTSTRAP: %%global build_bootstrap 1}} Summary: The GNU libc libraries Name: %{name} Version: %{glibcversion} Release: %{glibcrelease} Epoch: %{glibcepoch} License: LGPL Group: System/Libraries Url: http://www.gnu.org/software/libc/ # FSF source Source0: http://ftp.gnu.org/gnu/glibc/%{source_package}.tar.bz2 %if %{RELEASE} Source1: http://ftp.gnu.org/gnu/glibc/%{source_package}.tar.bz2.sig %endif # Red Hat tarball Source2: glibc-redhat.tar.bz2 Source3: glibc-manpages.tar.bz2 Source4: glibc-find-requires.sh Source5: glibc-check.sh # If using official FSF release we must get also libidn %if %{RELEASE} Source6: http://ftp.gnu.org/gnu/glibc/glibc-libidn-%{glibcversion}.tar.bz2 Source7: http://ftp.gnu.org/gnu/glibc/glibc-libidn-%{glibcversion}.tar.bz2.sig %endif # wrapper to avoid rpm circular dependencies Source14: glibc-post-wrapper.c # <http://penguinppc.org/dev/glibc/glibc-powerpc-cpu-addon.html> # NOTE: this check is weak. The rationale is: Cell PPU optimized by # default for MDV 2007.0, power5 et al. on Corporate side %define powerpc_cpu_list noarch %if "%{?distsuffix:%{distsuffix}}" == "mlcs4" %define powerpc_cpu_list power5 %endif Source15: glibc-powerpc-cpu-addon-v0.03.tar.bz2 # Blowfish support Source16: crypt_blowfish-%{crypt_bf_ver}.tar.gz Source17: crypt_freesec.c Source18: crypt_freesec.h Buildroot: %{_tmppath}/glibc-%{PACKAGE_VERSION}-root %if %{build_cross} Autoreq: false Autoprov: false %else Obsoletes: zoneinfo, libc-static, libc-devel, libc-profile, libc-headers, Obsoletes: linuxthreads, gencat, locale, glibc-localedata Provides: glibc-crypt_blowfish = %{crypt_bf_ver} Provides: glibc-localedata Provides: should-restart = system %if %isarch %{xenarches} Obsoletes: %{name}-xen Provides: %{name}-xen %endif # The dynamic linker supports DT_GNU_HASH Provides: rtld(GNU_HASH) Autoreq: false %endif BuildRequires: patch, gettext, perl BuildRequires: kernel-headers %if %{build_selinux} BuildRequires: libselinux-devel >= 1.17.10 %endif # we need suitable linker for -Wl,--hash-style=both %define binutils_version 2.16.91.0.7-%{mkrel 6} BuildRequires: %{cross_prefix}binutils >= %{binutils_version} # we need the static dash %define ash_bin /bin/dash.static Requires(pre): dash-static Requires(post): dash-static # we need an rpm with correct db4 lib Conflicts: rpm < 4.2.2 # we need an ldconfig with TLS support %if %{build_cross} BuildRequires: %{cross_prefix}gcc >= 3.2.2-4mdk %endif %ifarch %{ix86} alpha BuildRequires: %{cross_prefix}gcc >= 2.96-0.50mdk %endif %ifarch ia64 BuildRequires: %{cross_prefix}gcc >= 3.2.3-1mdk %endif %ifarch x86_64 BuildRequires: %{cross_prefix}gcc >= 3.1.1-0.5mdk %endif BuildRequires: %{cross_prefix}gcc >= 4.0.1-2mdk %if !%{build_cross} %ifarch alpha Provides: ld.so.2 %endif %ifarch ppc Provides: ld.so.1 %endif %ifarch sparc Obsoletes: libc %endif %endif Conflicts: rpm <= 4.0-0.65 Conflicts: %{name}-devel < 2.2.3 # We need initscripts recent enough to not restart service dm Conflicts: initscripts < 6.91-18mdk # Ease Conectiva upgrades Conflicts: %{name}-base <= 2.3.4 BuildRequires: texinfo %if %{build_pdf_doc} BuildRequires: tetex, tetex-latex %endif %if %{build_utils} BuildRequires: gd-devel %endif BuildRequires: autoconf2.5 Patch1: glibc-2.2.2-fhs.patch Patch2: glibc-2.3.4-ldd-non-exec.patch Patch3: glibc-2.1.95-string2-pointer-arith.patch Patch4: glibc-2.2-nss-upgrade.patch Patch6: glibc-2.2.5-share-locale.patch Patch7: glibc-2.3.6-nsswitch.conf.patch Patch9: glibc-2.2.4-xterm-xvt.patch Patch10: glibc-2.2.4-hack-includes.patch Patch11: glibc-2.4.90-compat-EUR-currencies.patch Patch12: glibc-2.3.6-ppc-build-lddlibc4.patch Patch13: glibc-2.3.3-nscd-enable.patch Patch14: glibc-2.3.2-config-amd64-alias.patch Patch15: glibc-2.2.5-nscd-no-host-cache.patch Patch16: glibc-2.3.1-quota.patch Patch17: glibc-2.4.90-i386-hwcapinfo.patch Patch18: glibc-2.7-provide_CFI_for_the_outermost_function.patch Patch19: glibc-2.8-nscd-init-should-start.patch Patch20: glibc-nscd_fixes.patch Patch22: glibc-2.3.2-tcsetattr-kernel-bug-workaround.patch Patch23: glibc-2.3.4-timezone.patch Patch24: glibc-2.4.90-biarch-cpp-defines.patch Patch25: glibc-2.3.4-run-test-program-prefix.patch Patch26: glibc-2.6-nice_fix.patch Patch27: glibc-2.8-ENOTTY-fr-translation.patch Patch28: glibc-2.4.90-gcc4-fortify.patch Patch29: glibc-2.3.5-biarch-utils.patch Patch30: glibc-2.6-multiarch.patch Patch31: glibc-2.4.90-i586-hptiming.patch Patch32: glibc-2.3.4-i586-if-no-cmov.patch Patch33: glibc-2.3.6-pt_BR-i18nfixes.patch Patch34: glibc-2.4.90-testsuite-ldbl-bits.patch Patch35: glibc-2.8-tst-iconv-fixes.patch Patch38: glibc-2.4.90-testsuite-rt-notparallel.patch Patch39: glibc-2.7-mdv-owl-crypt_freesec.patch Patch40: glibc-2.3.5-avx-relocate_fcrypt.patch Patch41: glibc-2.3.6-avx-increase_BF_FRAME.patch Patch42: glibc-2.7-mdv-avx-owl-crypt.patch Patch43: glibc-2.7-mdv-wrapper_handle_sha.patch # Determine minium kernel versions %define enablekernel 2.6.9 %if %isarch ppc ppc64 # waitid syscall is available in 2.6.12+ there %define enablekernel 2.6.12 %endif Conflicts: kernel < %{enablekernel} # People changed location of rpm scripts... %define rpmscripts /usr/lib/rpm/%{_real_vendor} # Don't try to explicitly provide GLIBC_PRIVATE versioned libraries %define __find_provides %{_builddir}/%{source_dir}/find_provides.sh %define __find_requires %{_builddir}/%{source_dir}/find_requires.sh %if !%{build_cross} Obsoletes: ld.so Provides: ld.so %endif Obsoletes: ldconfig Provides: ldconfig = %{glibcepoch}:%{glibcversion}-%{glibcrelease} /sbin/ldconfig %description The glibc package contains standard libraries which are used by multiple programs on the system. In order to save disk space and memory, as well as to make upgrading easier, common system code is kept in one place and shared between programs. This particular package contains the most important sets of shared libraries: the standard C library and the standard math library. Without these two libraries, a Linux system will not function. The glibc package also contains national language (locale) support. This package now also provides ldconfig which was package seperately in the past. Ldconfig is a basic system program which determines run-time link bindings between ld.so and shared libraries. Ldconfig scans a running system and sets up the symbolic links that are used to load shared libraries properly. It also creates a cache (/etc/ld.so.cache) which speeds the loading of programs which use shared libraries. %package devel Summary: Header and object files for development using standard C libraries Group: Development/C Conflicts: texinfo < 3.11 Requires(post): info-install Requires(preun): info-install Requires(post): coreutils Requires(postun): coreutils, awk Obsoletes: libc-debug, libc-headers, libc-devel, linuxthreads-devel, nptl-devel %if !%{build_debug} Obsoletes: %{name}-debug < 6:2.3.2-15mdk %endif Requires: %{name} = %{glibcepoch}:%{glibcversion}-%{glibcrelease} %if !%{build_cross} Requires: kernel-headers %endif %if !%isarch ppc Conflicts: %{cross_prefix}gcc < 2.96-0.50mdk %endif # needs a gcc4 fortify capable compiler Conflicts: gcc4.0 < 4.0.1-2mdk %if %{build_cross} Autoreq: false Autoprov: false %else Autoreq: true %endif Provides: glibc-crypt_blowfish-devel = %{crypt_bf_ver} %description devel The glibc-devel package contains the header and object 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 header and object files available in order to create the executables. This package also includes the C header files for the Linux kernel. The header files define structures and constants that are needed for building most standard programs. The header files are also needed for rebuilding the kernel. Install glibc-devel if you are going to develop programs which will use the standard C libraries. %package static-devel Summary: Static libraries for GNU C library Group: Development/C Requires: %{name}-devel = %{glibcepoch}:%{glibcversion}-%{glibcrelease} %description static-devel The glibc-static-devel package contains the static libraries necessary for developing programs which use the standard C libraries. Install glibc-static-devel if you need to statically link your program or library. %package profile Summary: The GNU libc libraries, including support for gprof profiling Group: Development/C Obsoletes: libc-profile Provides: libc-profile = %{glibcversion}-%{glibcrelease} Autoreq: true %description profile The glibc-profile package includes the GNU libc libraries and support for profiling using the gprof program. Profiling is analyzing a program's functions to see how much CPU time they use and determining which functions are calling other functions during execution. To use gprof to profile a program, your program needs to use the GNU libc libraries included in glibc-profile (instead of the standard GNU libc libraries included in the glibc package). If you are going to use the gprof program to profile a program, you'll need to install the glibc-profile program. %package -n nscd Summary: A Name Service Caching Daemon (nscd) Group: System/Servers Conflicts: kernel < 2.2.0 Requires(pre): rpm-helper Requires(preun): rpm-helper Requires(post): rpm-helper Requires(postun): rpm-helper Autoreq: true %description -n nscd Nscd caches name service lookups and can dramatically improve performance with NIS+, and may help with DNS as well. Note that you can't use nscd with 2.0 kernels because of bugs in the kernel-side thread support. Unfortunately, nscd happens to hit these bugs particularly hard. Install nscd if you need a name service lookup caching daemon, and you're not using a version 2.0 kernel. %if %{build_debug} %package debug Summary: Shared standard C libraries with debugging information Group: System/Libraries Requires: %{name} = %{glibcepoch}:%{glibcversion}-%{glibcrelease} Autoreq: false %description debug The glibc-debug package contains shared standard C libraries with debugging information. You need this only if you want to step into C library routines during debugging. To use these libraries, you need to add %{_libdir}/debug to your LD_LIBRARY_PATH variable prior to starting the debugger. %endif %package utils Summary: Development utilities from GNU C library Group: Development/Other Requires: %{name} = %{glibcepoch}:%{glibcversion}-%{glibcrelease} %description utils The glibc-utils package contains memusage, a memory usage profiler, mtrace, a memory leak tracer and xtrace, a function call tracer which can be helpful during program debugging. If unsure if you need this, don't install this package. %if %{build_i18ndata} %package i18ndata Summary: Database sources for 'locale' Group: System/Libraries %description i18ndata This package contains the data needed to build the locale data files to use the internationalization features of the GNU libc. %endif %if %{build_timezone} %package -n timezone Summary: Time zone descriptions Group: System/Base Conflicts: glibc < 2.2.5-6mdk %description -n timezone These are configuration files that describe possible time zones. %endif %package doc Summary: GNU C library documentation Group: Development/Other %description doc The glibc-doc package contains documentation for the GNU C library in info format. %if %{build_pdf_doc} %package doc-pdf Summary: GNU C library documentation Group: Development/Other %description doc-pdf The glibc-doc-pdf package contains the printable documentation for the GNU C library in PDF format. %endif %prep %setup -q -n %{source_dir} -a 3 -a 2 -a 15 -a 16 %if %{RELEASE} tar -jxf %{_sourcedir}/glibc-libidn-%{glibcversion}.tar.bz2 mv glibc-libidn-%{glibcversion} libidn %endif %patch1 -p1 -b .fhs %patch2 -p1 -b .ldd-non-exec %patch3 -p1 -b .string2-pointer-arith %patch4 -p1 -b .nss-upgrade %patch6 -p1 -b .share-locale %patch7 -p1 -b .nsswitch.conf %patch9 -p1 -b .xterm-xvt %patch10 -p1 -b .hack-includes %patch11 -p1 -b .compat-EUR-currencies %patch12 -p1 -b .ppc-lddlibc4 %patch13 -p1 -b .nscd-enable %patch14 -p1 -b .config-amd64-alias %patch15 -p1 -b .nscd-no-host-cache %patch16 -p1 -b .quota %patch17 -p1 -b .i386-hwcapinfo %patch18 -p0 -R -b .provide_CFI_for_the_outermost_function %patch19 -p1 -b .nscd-init-should-start %patch20 -p1 -b .nscd-fixes %patch22 -p1 -b .tcsetattr-kernel-bug-workaround %patch23 -p1 -b .timezone %patch24 -p1 -b .biarch-cpp-defines %patch25 -p1 -b .run-test-program-prefix %patch26 -p1 -b .nice-fix %patch27 -p1 -b .ENOTTY-fr-translation %patch28 -p1 -b .gcc4-fortify %patch29 -p1 -b .biarch-utils %patch30 -p1 -b .multiarch-check %patch31 -p1 -b .i586-hptiming %patch32 -p1 -b .i586-if-no-cmov %patch33 -p1 -b .pt_BR-i18nfixes %patch34 -p1 -b .testsuite-ldbl-bits %patch35 -p1 -b .tst-iconv-fixes %patch38 -p1 -b .testsuite-rt-notparallel # copy freesec source cp %{_sourcedir}/crypt_freesec.[ch] crypt/ echo "Applying crypt_blowfish patch:" %patch42 -p1 #patch -p1 -s < crypt_blowfish-%{crypt_bf_ver}/glibc-2.3.2-crypt.diff mv crypt/crypt.h crypt/gnu-crypt.h cp -a crypt_blowfish-%{crypt_bf_ver}/*.[chS] crypt/ ## FreeSec support for extended/new-style/BSDI hashes in crypt(3) %patch39 -p1 %patch40 -p1 %patch41 -p1 # add sha256-crypt and sha512-crypt support to the Openwall wrapper %patch43 -p0 -b .vdanen %if %{build_selinux} # XXX kludge to build nscd with selinux support as it added -nostdinc # so /usr/include/selinux is not found ln -s %{_includedir}/selinux selinux %endif find . -type f -size 0 -o -name "*.orig" -exec rm -f {} \; # (Anssi 03/2008) FIXME: use _provides_exceptions cat > find_provides.sh << EOF #!/bin/sh %{rpmscripts}/find-provides | grep -v GLIBC_PRIVATE exit 0 EOF chmod +x find_provides.sh cat > find_requires.bootstrap.sh << EOF /bin/sh %{SOURCE4} %{buildroot} %{_target_cpu} | grep -v "\(GLIBC_PRIVATE\|linux-gate\|linux-vdso\)" exit 0 EOF chmod +x find_requires.bootstrap.sh # XXX: use better way later to avoid LD_LIBRARY_PATH issue cat %{rpmscripts}/find-requires | sed '/.*LD_LIBRARY_PATH.*/d;' > find_requires chmod +x find_requires # (Anssi 03/2008) FIXME: use _requires_exceptions cat > find_requires.noprivate.sh << EOF %{_builddir}/%{source_dir}/find_requires %{buildroot} %{_target_cpu} | \ grep -v GLIBC_PRIVATE exit 0 EOF chmod +x find_requires.noprivate.sh # FIXME: fix system rpm find-requires to use the prefix cross version %if %{build_bootstrap} || "%{_target_cpu}" != "%{target_cpu}" ln -s find_requires.bootstrap.sh find_requires.sh %else ln -s find_requires.noprivate.sh find_requires.sh %endif %build # Prepare test matrix in the next function CheckList=$PWD/Check.list rm -f $CheckList touch $CheckList # # CompareKver <kernel version> # function to compare the desired kernel version with running kernel # version (package releases not taken into account in comparison). The # function returns: # -1 = <kernel version> is lesser than current running kernel # 0 = <kernel version> is equal to the current running kernel # 1 = <kernel version> is greater than current running kernel # function CompareKver() { v1=`echo $1 | sed 's/\.\?$/./'` v2=`uname -r | sed 's/[^.0-9].*//' | sed 's/\.\?$/./'` n=1 s=0 while true; do c1=`echo "$v1" | cut -d "." -f $n` c2=`echo "$v2" | cut -d "." -f $n` if [ -z "$c1" -a -z "$c2" ]; then break elif [ -z "$c1" ]; then s=-1 break elif [ -z "$c2" ]; then s=1 break elif [ "$c1" -gt "$c2" ]; then s=1 break elif [ "$c2" -gt "$c1" ]; then s=-1 break fi n=$((n + 1)) done echo $s } # # BuildGlibc <arch> [<extra_configure_options>+] # function BuildGlibc() { arch="$1" shift 1 # PowerPC CPU add-on case $arch in cpu-addon,*) cpu=` echo "$arch" | sed -n "/.*,\([^,]*\),.*$/s//\1/p"` arch=`echo "$arch" | sed -n "/.*,.*,\([^,]*\)$/s//\1/p"` ;; *) cpu=$arch ;; esac # Select optimization flags and compiler to use BuildAltArch="no" BuildCompFlags="" BuildFlags="" case $arch in i[3456]86 | athlon) BuildFlags="-march=$arch -mtune=generic" if [[ "`uname -m`" = "x86_64" ]]; then BuildAltArch="yes" BuildCompFlags="-m32" fi ;; x86_64) BuildFlags="-mtune=generic" ;; ppc) if [[ "`uname -m`" = "ppc64" ]]; then BuildAltArch="yes" BuildCompFlags="-m32" # 64-bit processors we support do support power4+ ISA (2.01) if [[ "$cpu" != "$arch" ]]; then BuildFlags="-mcpu=$cpu" else BuildFlags="-mcpu=power4 -mtune=cell" fi fi ;; ppc64) if [[ "$cpu" != "$arch" ]]; then BuildFlags="-mcpu=$cpu" else BuildFlags="-mcpu=power4 -mtune=cell" fi ;; alphaev6) BuildFlags="-mcpu=ev6" ;; sparc) BuildFlags="-fcall-used-g6" BuildCompFlags="-m32" ;; sparcv9) BuildFlags="-mcpu=ultrasparc -fcall-used-g6" BuildCompFlags="-m32" ;; sparc64) BuildFlags="-mcpu=ultrasparc -mvis -fcall-used-g6" BuildCompFlags="-m64 -mcpu=ultrasparc" ;; esac # Determine C & C++ compilers BuildCC="%{__cc} $BuildCompFlags" BuildCXX="%{__cxx} $BuildCompFlags" # Are we supposed to cross-compile? if [[ "%{target_cpu}" != "%{_target_cpu}" ]]; then BuildCC="%{target_cpu}-linux-$BuildCC" BuildCXX="%{target_cpu}-linux-$BuildCXX" BuildCross="--build=%{_target_platform}" export libc_cv_forced_unwind=yes libc_cv_c_cleanup=yes fi BuildFlags="$BuildFlags -DNDEBUG=1 -O2 -finline-functions -g" if $BuildCC -v 2>&1 | grep -q 'gcc version 3.0'; then # gcc3.0 had really poor inlining heuristics causing problems in # resulting ld.so BuildFlags="$BuildFlags -finline-limit=2000" fi # Do not use direct references against %gs when accessing tls data # XXX make it the default in GCC? (for other non glibc specific usage) case $arch in i[3456]86 | x86_64) BuildFlags="$BuildFlags -mno-tls-direct-seg-refs" ;; esac # Disable fortify for glibc builds BuildFlags="$BuildFlags -U_FORTIFY_SOURCE" # Arch specific compilation flags if [[ "$arch" = "ppc64" ]]; then BuildFlags="$BuildFlags -fno-inline-functions -mno-minimal-toc" fi # Extra configure flags ExtraFlags= if [[ "%{build_profile}" != "0" ]]; then ExtraFlags="$ExtraFlags --enable-profile" fi # NPTL+TLS are now the default Pthreads="nptl" TlsFlags="--with-tls --with-__thread" # Add-ons AddOns="$Pthreads,libidn" if [[ "$cpu" != "$arch" ]]; then AddOns="$AddOns,powerpc-cpu" BuildFlags="$BuildFlags -mcpu=$cpu" ExtraFlags="$ExtraFlags --with-cpu=$cpu" fi # Build with selinux support? %if %{build_selinux} SElinuxFlags="--with-selinux" %else SElinuxFlags="--without-selinux" %endif # Kernel headers directory KernelHeaders=%{_includedir} # Determine library name glibc_cv_cc_64bit_output=no if echo ".text" | $BuildCC -c -o test.o -xassembler -; then case `/usr/bin/file test.o` in *"ELF 64"*) glibc_cv_cc_64bit_output=yes ;; esac fi rm -f test.o # Force a separate and clean object dir rm -rf build-$cpu-linux mkdir build-$cpu-linux pushd build-$cpu-linux [[ "$BuildAltArch" = "yes" ]] && touch ".alt" || touch ".main" CC="$BuildCC" CXX="$BuildCXX" CFLAGS="$BuildFlags" ../configure \ $arch-mandriva-linux-gnu $BuildCross \ --prefix=%{_prefix} \ --libexecdir=%{_prefix}/lib \ --infodir=%{_infodir} \ --enable-add-ons=$AddOns --without-cvs \ $TlsFlags $ExtraFlags $SElinuxFlags \ --enable-kernel=%{enablekernel} --with-headers=$KernelHeaders ${1+"$@"} %make -r PARALLELMFLAGS=-s popd # All tests are expected to pass on certain platforms, depending also # on the version of the kernel running case $arch in athlon | ia64 | ppc | ppc64) if [ "`CompareKver %{check_min_kver}`" -lt 0 ]; then check_flags="" else check_flags="-k" fi ;; *) check_flags="-k" ;; esac # Generate test matrix [[ -d "build-$arch-linux" ]] || { echo "ERROR: PrepareGlibcTest: build-$arch-linux does not exist!" return 1 } local BuildJobs="-j`getconf _NPROCESSORS_ONLN`" echo "$BuildJobs -d build-$arch-linux $check_flags" >> $CheckList case $cpu in i686|athlon) base_arch=i586;; power*) base_arch=$arch;; *) base_arch=none;; esac [[ -d "build-$base_arch-linux" ]] && { check_flags="$check_flags -l build-$base_arch-linux/elf/ld.so" echo "$BuildJobs -d build-$arch-linux $check_flags" >> $CheckList } return 0 } # Build main glibc BuildGlibc %{target_cpu} %if %{build_biarch} %if %isarch sparc64 BuildGlibc sparcv9 %endif %if %isarch x86_64 BuildGlibc i686 %endif %if %isarch ppc64 BuildGlibc ppc %endif %endif %if %isarch ppc ppc64 for cpu in %{powerpc_cpu_list}; do [[ "$cpu" = "noarch" ]] && continue BuildGlibc cpu-addon,$cpu,%{_arch} --disable-profile done %endif # Build i686 libraries if not already building for i686/athlon case %{target_cpu} in i686 | athlon) ;; i[3-6]86) BuildGlibc i686 --disable-profile ;; esac make -C crypt_blowfish-%{crypt_bf_ver} man %if %{build_check} export TMPDIR=/tmp export TIMEOUTFACTOR=16 Check="$PWD/glibc-check.sh" cat %{SOURCE5} > $Check chmod +x $Check while read arglist; do $Check $arglist || exit 1 done < $CheckList %endif %install rm -rf $RPM_BUILD_ROOT # force use of _NPROCESSORS_ONLN jobs since RPM_BUILD_NCPUS could be # greater for icecream BuildJobs="-j`getconf _NPROCESSORS_ONLN`" make install_root=$RPM_BUILD_ROOT install -C build-%{target_cpu}-linux %if %{build_i18ndata} (cd build-%{target_cpu}-linux; make $BuildJobs -C ../localedata objdir=`pwd` \ install_root=$RPM_BUILD_ROOT \ install-locales ) %endif sh manpages/Script.sh # Empty filelist for non i686/athlon targets > extralibs.filelist # Install biarch libraries %if %{build_biarch} %if %isarch sparc64 ALT_ARCH=sparcv9-linux %endif %if %isarch x86_64 ALT_ARCH=i686-linux %endif %if %isarch ppc64 ALT_ARCH=ppc-linux %endif mkdir -p $RPM_BUILD_ROOT/$ALT_ARCH make install_root=$RPM_BUILD_ROOT/$ALT_ARCH install -C build-$ALT_ARCH # Dispatch */lib only mv $RPM_BUILD_ROOT/$ALT_ARCH/lib $RPM_BUILD_ROOT/ rm -f $RPM_BUILD_ROOT/$ALT_ARCH%{_prefix}/lib/pt_chown mv $RPM_BUILD_ROOT/$ALT_ARCH%{_prefix}/lib/getconf/* $RPM_BUILD_ROOT%{_prefix}/lib/getconf/ rmdir $RPM_BUILD_ROOT/$ALT_ARCH%{_prefix}/lib/getconf mv $RPM_BUILD_ROOT/$ALT_ARCH%{_prefix}/lib/* $RPM_BUILD_ROOT%{_prefix}/lib/ # We want 32-bit binaries on sparc64 %if %isarch sparc64 mv -f $RPM_BUILD_ROOT/$ALT_ARCH/sbin/* $RPM_BUILD_ROOT/sbin mv -f $RPM_BUILD_ROOT/$ALT_ARCH/%{_bindir}/* $RPM_BUILD_ROOT%{_bindir} mv -f $RPM_BUILD_ROOT/$ALT_ARCH/%{_sbindir}/* $RPM_BUILD_ROOT%{_sbindir} %endif rm -rf $RPM_BUILD_ROOT/$ALT_ARCH # XXX Dispatch 32-bit stubs (sed '/^@/d' include/stubs-prologue.h; LC_ALL=C sort $(find build-$ALT_ARCH -name stubs)) \ > $RPM_BUILD_ROOT%{_includedir}/gnu/stubs-32.h %endif # Install extra glibc libraries function InstallGlibc() { local BuildDir="$1" local SubDir="$2" local LibDir="$3" case $BuildDir in *) Pthreads=nptl ;; esac [[ -z "$LibDir" ]] && LibDir="%{_slibdir}" pushd $BuildDir mkdir -p $RPM_BUILD_ROOT$LibDir/$SubDir/ install -m755 libc.so $RPM_BUILD_ROOT$LibDir/$SubDir/`basename $RPM_BUILD_ROOT$LibDir/libc-*.so` ln -sf `basename $RPM_BUILD_ROOT$LibDir/libc-*.so` $RPM_BUILD_ROOT$LibDir/$SubDir/`basename $RPM_BUILD_ROOT$LibDir/libc.so.*` install -m755 math/libm.so $RPM_BUILD_ROOT$LibDir/$SubDir/`basename $RPM_BUILD_ROOT$LibDir/libm-*.so` ln -sf `basename $RPM_BUILD_ROOT$LibDir/libm-*.so` $RPM_BUILD_ROOT$LibDir/$SubDir/`basename $RPM_BUILD_ROOT$LibDir/libm.so.*` install -m755 $Pthreads/libpthread.so $RPM_BUILD_ROOT$LibDir/$SubDir/`basename $RPM_BUILD_ROOT$LibDir/libpthread-*.so` ln -sf `basename $RPM_BUILD_ROOT$LibDir/libpthread-*.so` $RPM_BUILD_ROOT$LibDir/$SubDir/`basename $RPM_BUILD_ROOT$LibDir/libpthread.so.*` install -m755 ${Pthreads}_db/libthread_db.so $RPM_BUILD_ROOT$LibDir/$SubDir/`basename $RPM_BUILD_ROOT$LibDir/libthread_db-*.so` ln -sf `basename $RPM_BUILD_ROOT$LibDir/libthread_db-*.so` $RPM_BUILD_ROOT$LibDir/$SubDir/`basename $RPM_BUILD_ROOT$LibDir/libthread_db.so.*` install -m755 rt/librt.so $RPM_BUILD_ROOT$LibDir/$SubDir/`basename $RPM_BUILD_ROOT$LibDir/librt-*.so` ln -sf `basename $RPM_BUILD_ROOT$LibDir/librt-*.so` $RPM_BUILD_ROOT$LibDir/$SubDir/`basename $RPM_BUILD_ROOT$LibDir/librt.so.*` echo "%dir $LibDir/$SubDir" >> ../extralibs.filelist find $RPM_BUILD_ROOT$LibDir/$SubDir -maxdepth 1 -type f -o -type l | sed -e "s|$RPM_BUILD_ROOT||" >> ../extralibs.filelist popd } # Install arch-specific optimized libraries %if %isarch %{ix86} case %{target_cpu} in i[3-5]86) InstallGlibc build-i686-linux i686 ;; esac %endif %if %isarch ppc ppc64 for cpu in %{powerpc_cpu_list}; do [[ "$cpu" = "noarch" ]] && continue InstallGlibc build-$cpu-linux $cpu done # Use hardlinks, not symlinks # see upper NOTE if you really want dedicated power5+ hwcap... [[ -d "$RPM_BUILD_ROOT/%{_lib}/power5" ]] && { mkdir -p $RPM_BUILD_ROOT/%{_lib}/power5+ ln -v $RPM_BUILD_ROOT/%{_lib}/power5/*.so \ $RPM_BUILD_ROOT/%{_lib}/power5+/ $RPM_BUILD_ROOT/sbin/ldconfig -n $RPM_BUILD_ROOT/%{_lib}/power5+/ echo "%dir /%{_lib}/power5+" >> extralibs.filelist find $RPM_BUILD_ROOT$LibDir/%{_lib}/power5+/ -maxdepth 1 -type f -o -type l | sed -e "s|$RPM_BUILD_ROOT||" >> extralibs.filelist } %endif # NPTL <bits/stdio-lock.h> is not usable outside of glibc, so include # the generic one (RH#162634) install -m644 bits/stdio-lock.h $RPM_BUILD_ROOT%{_includedir}/bits/stdio-lock.h # Compatibility hack: this locale has vanished from glibc, but some other # programs are still using it. Normally we would handle it in the %pre # section but with glibc that is simply not an option mkdir -p $RPM_BUILD_ROOT%{_datadir}/locale/ru_RU/LC_MESSAGES # Remove the files we don't want to distribute rm -f $RPM_BUILD_ROOT%{_libdir}/libNoVersion* rm -f $RPM_BUILD_ROOT%{_slibdir}/libNoVersion* ln -sf libbsd-compat.a $RPM_BUILD_ROOT%{_libdir}/libbsd.a %if %{build_biarch} ln -sf libbsd-compat.a $RPM_BUILD_ROOT%{_prefix}/lib/libbsd.a %endif %if "%{name}" == "glibc" install -m 644 mandriva/nsswitch.conf $RPM_BUILD_ROOT%{_sysconfdir}/nsswitch.conf %endif # Take care of setuids # -- new security review sez that this shouldn't be needed anymore #chmod 755 $RPM_BUILD_ROOT%{_libdir}/pt_chown # This is for ncsd - in glibc 2.2 %if %{build_nscd} install -m 644 nscd/nscd.conf $RPM_BUILD_ROOT%{_sysconfdir} mkdir -p $RPM_BUILD_ROOT%{_initrddir} install -m 755 nscd/nscd.init $RPM_BUILD_ROOT%{_initrddir}/nscd %endif # These man pages require special attention mkdir -p %{buildroot}%{_mandir}/man3 install -p -m 0644 crypt_blowfish-%{crypt_bf_ver}/*.3 %{buildroot}%{_mandir}/man3/ # Useless and takes place rm -rf %buildroot/%{_datadir}/zoneinfo/{posix,right} # Include ld.so.conf %if "%{name}" == "glibc" echo "include /etc/ld.so.conf.d/*.conf" > $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf chmod 644 $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf.d %endif # ldconfig cache mkdir -p $RPM_BUILD_ROOT%{_var}/cache/ldconfig touch $RPM_BUILD_ROOT%{_var}/cache/ldconfig/aux-cache # automatic ldconfig cache update on rpm installs/removals # (see http://wiki.mandriva.com/en/Rpm_filetriggers) install -d %buildroot%{_var}/lib/rpm/filetriggers cat > %buildroot%{_var}/lib/rpm/filetriggers/ldconfig.filter << EOF ^.((/lib|/usr/lib)(64)?/[^/]*\.so\.|/etc/ld.so.conf.d/[^/]*\.conf) EOF cat > %buildroot%{_var}/lib/rpm/filetriggers/ldconfig.script << EOF #!/bin/sh ldconfig -X EOF chmod 755 %buildroot%{_var}/lib/rpm/filetriggers/ldconfig.script # Include %{_libdir}/gconv/gconv-modules.cache > $RPM_BUILD_ROOT%{_libdir}/gconv/gconv-modules.cache chmod 644 $RPM_BUILD_ROOT%{_libdir}/gconv/gconv-modules.cache # Add libraries to debug sub-package %if %{build_debug} mkdir $RPM_BUILD_ROOT%{_libdir}/debug #cp -a $RPM_BUILD_ROOT%{_libdir}/*.a $RPM_BUILD_ROOT%{_libdir}/debug/ #rm -f $RPM_BUILD_ROOT%{_libdir}/debug/*_p.a cp -a $RPM_BUILD_ROOT%{_slibdir}/lib*.so* $RPM_BUILD_ROOT%{_libdir}/debug/ pushd $RPM_BUILD_ROOT%{_libdir}/debug for lib in *.so*; do [[ -f "$lib" ]] && DEBUG_LIBS="$DEBUG_LIBS %{_libdir}/debug/$lib" done popd %endif # Are we cross-compiling? Strip="strip" if [[ "%{_target_cpu}" != "%{target_cpu}" ]]; then Strip="%{target_cpu}-linux-$Strip" fi # Strip libpthread but keep some symbols find $RPM_BUILD_ROOT%{_slibdir} -type f -name "libpthread-*.so" | \ xargs $Strip -g -R .comment %if %{build_biarch} find $RPM_BUILD_ROOT/lib -type f -name "libpthread-*.so" | \ xargs $Strip -g -R .comment %endif # Strip debugging info from all static libraries pushd $RPM_BUILD_ROOT%{_libdir} for i in *.a; do if [ -f "$i" ]; then case "$i" in *_p.a) ;; *) $Strip -g -R .comment $i ;; esac fi done popd # post install wrapper %__cc -Os -DSLIBDIR="\"%{_slibdir}\"" -DASH_BIN="\"%{ash_bin}\"" %{SOURCE14} -static \ -L $RPM_BUILD_ROOT%{_libdir}/ \ -o $RPM_BUILD_ROOT%{_sbindir}/glibc-post-wrapper chmod 700 $RPM_BUILD_ROOT%{_sbindir}/glibc-post-wrapper # rquota.x and rquota.h are now provided by quota rm -f $RPM_BUILD_ROOT%{_includedir}/rpcsvc/rquota.[hx] # Hardlink identical locale files together %if %{build_i18ndata} gcc -O2 -o build-%{_target_cpu}-linux/hardlink redhat/hardlink.c build-%{_target_cpu}-linux/hardlink -vc $RPM_BUILD_ROOT%{_datadir}/locale %endif rm -rf $RPM_BUILD_ROOT%{_includedir}/netatalk/ # Build file list for devel package find $RPM_BUILD_ROOT%{_includedir} -type f -or -type l > devel.filelist find $RPM_BUILD_ROOT%{_includedir} -type d | sed "s/^/%dir /" | \ grep -v "%{_libdir}/libnss1.*.so$" | \ grep -v "%{_includedir}$" | >> devel.filelist find $RPM_BUILD_ROOT%{_libdir} -maxdepth 1 -name "*.so" -o -name "*.o" | egrep -v "(libmemusage.so|libpcprofile.so)" >> devel.filelist # biarch libs %if %{build_biarch} find $RPM_BUILD_ROOT%{_prefix}/lib -maxdepth 1 -name "*.so" -o -name "*.o" | egrep -v "(libmemusage.so|libpcprofile.so)" >> devel.filelist %endif perl -pi -e "s|$RPM_BUILD_ROOT||" devel.filelist # /etc/localtime - we're proud of our timezone #Well we(mdk) may put Paris %if %{build_timezone} rm -f $RPM_BUILD_ROOT%{_sysconfdir}/localtime cp -f $RPM_BUILD_ROOT%{_datadir}/zoneinfo/US/Eastern $RPM_BUILD_ROOT%{_sysconfdir}/localtime #ln -sf ..%{_datadir}/zoneinfo/US/Eastern $RPM_BUILD_ROOT%{_sysconfdir}/localtime %endif # [gg] build PDF documentation %if %{build_pdf_doc} (cd manual; texi2dvi -p -t @afourpaper -t @finalout libc.texinfo) %endif # the last bit: more documentation rm -rf documentation mkdir documentation cp timezone/README documentation/README.timezone cp ChangeLog* documentation gzip -9 documentation/ChangeLog* mkdir documentation/crypt_blowfish-%{crypt_bf_ver} cp crypt_blowfish-%{crypt_bf_ver}/{README,LINKS,PERFORMANCE} \ documentation/crypt_blowfish-%{crypt_bf_ver} # Generate final rpm filelist, with localized libc.mo files rm -f rpm.filelist %if "%{name}" == "glibc" %find_lang libc perl -ne '/^\s*$/ or print' libc.lang > rpm.filelist %endif cat extralibs.filelist >> rpm.filelist # Remove unpackaged files rm -f $RPM_BUILD_ROOT%{_infodir}/dir.old* rm -f $RPM_BUILD_ROOT%{_prefix}/lib/pt_chown rm -rf $RPM_BUILD_ROOT%{_includedir}/asm-*/mach-*/ rm -f $RPM_BUILD_ROOT%{_datadir}/locale/locale-archive* %if !%{build_utils} %if %{build_biarch} rm -f $RPM_BUILD_ROOT%{_slibdir32}/libmemusage.so rm -f $RPM_BUILD_ROOT%{_slibdir32}/libpcprofile.so %endif rm -f $RPM_BUILD_ROOT%{_slibdir}/libmemusage.so rm -f $RPM_BUILD_ROOT%{_slibdir}/libpcprofile.so rm -f $RPM_BUILD_ROOT%{_bindir}/memusage rm -f $RPM_BUILD_ROOT%{_bindir}/memusagestat rm -f $RPM_BUILD_ROOT%{_bindir}/mtrace rm -f $RPM_BUILD_ROOT%{_bindir}/pcprofiledump rm -f $RPM_BUILD_ROOT%{_bindir}/xtrace %endif %if !%{build_timezone} rm -f $RPM_BUILD_ROOT%{_sysconfdir}/localtime rm -f $RPM_BUILD_ROOT%{_sbindir}/zdump rm -f $RPM_BUILD_ROOT%{_sbindir}/zic rm -f $RPM_BUILD_ROOT%{_mandir}/man1/zdump.1* rm -rf $RPM_BUILD_ROOT%{_datadir}/zoneinfo %endif %if !%{build_i18ndata} rm -rf $RPM_BUILD_ROOT%{_datadir}/i18n %endif %if "%{name}" != "glibc" rm -rf $RPM_BUILD_ROOT/boot rm -rf $RPM_BUILD_ROOT/sbin rm -rf $RPM_BUILD_ROOT/usr/share rm -rf $RPM_BUILD_ROOT%{_bindir} rm -rf $RPM_BUILD_ROOT%{_sbindir} rm -rf $RPM_BUILD_ROOT%{_datadir} rm -rf $RPM_BUILD_ROOT%{_mandir} rm -rf $RPM_BUILD_ROOT%{_infodir} rm -rf $RPM_BUILD_ROOT%{_prefix}/etc rm -rf $RPM_BUILD_ROOT%{_libdir}/gconv %endif # In case we are cross-compiling, don't bother to remake symlinks and # fool spec-helper when stripping files %if "%{name}" != "glibc" export DONT_SYMLINK_LIBS=1 export PATH=%{_bindir}:$PATH %endif EXCLUDE_FROM_STRIP="ld-%{glibcversion}.so libpthread $DEBUG_LIBS" export EXCLUDE_FROM_STRIP %if "%{name}" == "glibc" %define upgradestamp %{_slibdir}/glibc.upgraded %define broken_link %{_slibdir}/libnss_nis.so.1 %{_slibdir}/libnss_files.so.1 %{_slibdir}/libnss_dns.so.1 %{_slibdir}/libnss_compat.so.1 %pre -p %{ash_bin} # test(1) and echo(1) are built-ins if [ -d %{_slibdir} ] && [ ! -f %{_slibdir}/libnss_files-%{glibcversion}.so ]; then echo > %{upgradestamp} fi %post -p %{_sbindir}/glibc-post-wrapper export LC_ALL=C if [ "$1" -gt 1 ]; then # migrate /etc/ld.so.conf to include the new /etc/ld.so.conf.d/ # without external commands but for removing the temporary file ldso_conf=/etc/ld.so.conf while read i; do [ "$i" = "include /etc/ld.so.conf.d/*.conf" ] && keep=1 # Remove previously used include line without absolute path [ "$i" = "include ld.so.conf.d/*.conf" ] || echo $i done < $ldso_conf > $ldso_conf- if [ -z "$keep" ]; then echo "include /etc/ld.so.conf.d/*.conf" > $ldso_conf while read i; do echo $i done < $ldso_conf- >> $ldso_conf fi [ -x /bin/rm ] && /bin/rm -f $ldso_conf- fi /sbin/ldconfig if [ "$1" -gt 1 ]; then # On upgrade the services doesn't work because libnss couldn't be # loaded anymore. if [ -f %{upgradestamp} ]; then if /usr/bin/readlink /proc/1/exe >/dev/null && \ /usr/bin/readlink /proc/1/root >/dev/null; then if [ -x /sbin/telinit -a -p /dev/initctl ]; then /sbin/telinit u fi if [ -x /etc/init.d/sshd -a \ -x /usr/sbin/sshd -a \ -x /bin/bash ]; then /etc/init.d/sshd condrestart fi fi fi if [ -f /bin/rm ]; then for i in %broken_link; do if [ -e $i ] && [ ! -L $i ]; then /bin/rm -f $i fi done fi fi [ -x /bin/rm ] && /bin/rm -f %{upgradestamp} # always generate the gconv-modules.cache %{_sbindir}/iconvconfig -o %{_libdir}/gconv/gconv-modules.cache --nostdlib %{_libdir}/gconv %if %mdkversion < 200900 %postun -p /sbin/ldconfig %endif %endif %pre devel if [ -L %{_includedir}/scsi ]; then rm -f %{_includedir}/scsi fi if [ -L %{_includedir}/sound ]; then rm -f %{_includedir}/sound fi if [ -L %{_includedir}/linux ]; then rm -f %{_includedir}/linux fi if [ -L %{_includedir}/asm ]; then rm -f %{_includedir}/asm fi if [ -L %{_includedir}/asm-generic ]; then rm -f %{_includedir}/asm-generic fi %if %isarch x86_64 if [ -L %{_includedir}/asm-x86_64 ]; then rm -f %{_includedir}/asm-x86_64 fi if [ -L %{_includedir}/asm-i386 ]; then rm -f %{_includedir}/asm-i386 fi %endif %if %isarch ppc64 if [ -L %{_includedir}/asm-ppc64 ]; then rm -f %{_includedir}/asm-ppc64 fi if [ -L %{_includedir}/asm-ppc ]; then rm -f %{_includedir}/asm-ppc fi %endif %if %isarch sparc64 if [ -L %{_includedir}/asm-sparc64 ]; then rm -f %{_includedir}/asm-sparc64 fi if [ -L %{_includedir}/asm-sparc ]; then rm -f %{_includedir}/asm-sparc fi %endif exit 0 %if %{build_doc} %post doc %_install_info libc.info %preun doc %_remove_install_info libc.info %endif %if %{build_utils} %if %mdkversion < 200900 %post utils -p /sbin/ldconfig %endif %if %mdkversion < 200900 %postun utils -p /sbin/ldconfig %endif %endif %if %{build_nscd} %pre -n nscd %_pre_useradd nscd / /bin/false %post -n nscd %_post_service nscd %preun -n nscd %_preun_service nscd %postun -n nscd %_postun_userdel nscd if [ "$1" -ge "1" ]; then /sbin/service nscd condrestart > /dev/null 2>&1 || : fi %endif %clean #rm -rf "$RPM_BUILD_ROOT" #rm -f *.filelist* # # glibc # %files -f rpm.filelist %defattr(-,root,root) %if "%{name}" == "glibc" %if %{build_timezone} %verify(not md5 size mtime) %config(noreplace) %{_sysconfdir}/localtime %endif %verify(not md5 size mtime) %config(noreplace) %{_sysconfdir}/nsswitch.conf %verify(not md5 size mtime) %config(noreplace) %{_sysconfdir}/ld.so.conf %dir %{_sysconfdir}/ld.so.conf.d %config(noreplace) %{_sysconfdir}/rpc %doc posix/gai.conf %{_mandir}/man1/* %{_mandir}/man8/rpcinfo.8* %{_mandir}/man8/ld.so* %{_datadir}/locale/locale.alias /sbin/sln %dir %{_prefix}/lib/getconf %{_prefix}/lib/getconf/* %endif %{_slibdir}/ld-%{glibcversion}.so %if %isarch i386 alpha sparc sparc64 %{_slibdir}/ld-linux.so.2 %endif %if %isarch ppc %{_slibdir}/ld.so.1 %endif %if %isarch ppc64 %{_slibdir}/ld64.so.1 %endif %if %isarch ia64 %{_slibdir}/ld-linux-ia64.so.2 %endif %if %isarch x86_64 %{_slibdir}/ld-linux-x86-64.so.2 %endif %if %isarch m68k %{_slibdir}/ld.so.1 %endif %{_slibdir}/lib*-[.0-9]*.so %{_slibdir}/lib*.so.[0-9]* %{_slibdir}/libSegFault.so %if "%{name}" == "glibc" %dir %{_libdir}/gconv %{_libdir}/gconv/*.so %{_libdir}/gconv/gconv-modules %ghost %{_libdir}/gconv/gconv-modules.cache # Don't package pt_chown. It is only needed if devpts is not used. But # since we are running kernel 2.4+, that's fine without. # (and it never actually worked, aka was not setuid, nor executable) #%{_libdir}/pt_chown %{_bindir}/catchsegv %{_bindir}/gencat %{_bindir}/getconf %{_bindir}/getent #%{_bindir}/glibcbug %{_bindir}/iconv %{_bindir}/ldd %if %isarch i386 ppc sparc sparc64 %{_bindir}/lddlibc4 %endif %{_bindir}/locale %{_bindir}/localedef %{_bindir}/rpcgen %{_bindir}/sprof %{_bindir}/tzselect %{_sbindir}/rpcinfo %{_sbindir}/iconvconfig %{_sbindir}/glibc-post-wrapper %endif %if %{build_biarch} %{_slibdir32}/ld-%{glibcversion}.so %if %isarch ppc64 %{_slibdir32}/ld.so.1 %else %{_slibdir32}/ld-linux*.so.2 %endif %{_slibdir32}/lib*-[.0-9]*.so %{_slibdir32}/lib*.so.[0-9]* %{_slibdir32}/libSegFault.so %dir %{_prefix}/lib/gconv %{_prefix}/lib/gconv/* %endif # # ldconfig # %if "%{name}" == "glibc" %defattr(-,root,root) /sbin/ldconfig %{_mandir}/man8/ldconfig* %ghost %{_sysconfdir}/ld.so.cache %dir %{_var}/cache/ldconfig %ghost %{_var}/cache/ldconfig/aux-cache %{_var}/lib/rpm/filetriggers/ldconfig.* %endif # # glibc-devel # %files devel -f devel.filelist %defattr(-,root,root) %doc README NEWS INSTALL FAQ BUGS NOTES PROJECTS CONFORMANCE %doc COPYING COPYING.LIB %doc documentation/* README.libm %doc hesiod/README.hesiod %doc crypt/README.ufc-crypt %{_mandir}/man3/* %{_libdir}/libbsd-compat.a %{_libdir}/libbsd.a %{_libdir}/libc_nonshared.a %{_libdir}/libg.a %{_libdir}/libieee.a %{_libdir}/libmcheck.a %{_libdir}/libpthread_nonshared.a %if "%{name}" == "glibc" %{_libdir}/librpcsvc.a %endif %if %isarch ppc ppc64 sparc %{_libdir}/libnldbl_nonshared.a %endif %if %{build_biarch} %{_prefix}/lib/libbsd-compat.a %{_prefix}/lib/libbsd.a %{_prefix}/lib/libc_nonshared.a %{_prefix}/lib/libg.a %{_prefix}/lib/libieee.a %{_prefix}/lib/libmcheck.a %{_prefix}/lib/libpthread_nonshared.a %{_prefix}/lib/librpcsvc.a %if %isarch ppc64 sparc64 %{_prefix}/lib/libnldbl_nonshared.a %endif %endif # # glibc-static-devel # %files static-devel %defattr(-,root,root) %doc COPYING COPYING.LIB %{_libdir}/libBrokenLocale.a %{_libdir}/libanl.a %{_libdir}/libc.a %{_libdir}/libcrypt.a %{_libdir}/libdl.a %{_libdir}/libm.a %{_libdir}/libnsl.a %{_libdir}/libpthread.a %{_libdir}/libresolv.a %{_libdir}/librt.a %{_libdir}/libutil.a %if %{build_biarch} %{_prefix}/lib/libBrokenLocale.a %{_prefix}/lib/libanl.a %{_prefix}/lib/libc.a %{_prefix}/lib/libcrypt.a %{_prefix}/lib/libdl.a %{_prefix}/lib/libm.a %{_prefix}/lib/libnsl.a %{_prefix}/lib/libpthread.a %{_prefix}/lib/libresolv.a %{_prefix}/lib/librt.a %{_prefix}/lib/libutil.a %endif # # glibc-doc # %if %{build_doc} %files doc %defattr(-,root,root) %{_infodir}/libc.info* %endif # # glibc-doc-pdf # %if %{build_pdf_doc} %files doc-pdf %defattr(-,root,root) %doc manual/libc.pdf %endif # # glibc-debug # %if %{build_debug} %files debug %defattr(-,root,root) %dir %{_libdir}/debug %{_libdir}/debug/*.so %{_libdir}/debug/*.so.* %endif # # glibc-profile # %if %{build_profile} %files profile %defattr(-,root,root) %{_libdir}/lib*_p.a %if %{build_biarch} %{_prefix}/lib/lib*_p.a %endif %endif # # glibc-utils # %if %{build_utils} %files utils %defattr(-,root,root) %if %{build_biarch} %{_slibdir32}/libmemusage.so %{_slibdir32}/libpcprofile.so %endif %{_slibdir}/libmemusage.so %{_slibdir}/libpcprofile.so %{_bindir}/memusage %{_bindir}/memusagestat %{_bindir}/mtrace %{_bindir}/pcprofiledump %{_bindir}/xtrace %endif # # nscd # %if %{build_nscd} %files -n nscd %defattr(-,root,root) %config(noreplace) %{_sysconfdir}/nscd.conf %config(noreplace) %{_initrddir}/nscd %{_sbindir}/nscd %endif # # timezone # %if %{build_timezone} %files -n timezone %defattr(-,root,root) %{_sbindir}/zdump %{_sbindir}/zic %{_mandir}/man1/zdump.1* %dir %{_datadir}/zoneinfo %{_datadir}/zoneinfo/* %endif # # glibc-i18ndata # %if %{build_i18ndata} %files i18ndata %defattr(-,root,root) %dir %{_datadir}/i18n %dir %{_datadir}/i18n/charmaps %{_datadir}/i18n/charmaps/* %dir %{_datadir}/i18n/locales %{_datadir}/i18n/locales/* %endif %changelog * Fri Aug 29 2008 Herton Ronaldo Krzesinski <herton@mandriva.com.br> 6:2.8-1.20080520.5mnb2 + Revision: 277480 - Handle properly upgrades from ld.so.conf with relative ld.so.conf.d include path after previous commit. + Helio Chissini de Castro <helio@mandriva.com> - Lack of relative path on ld.so.conf is breaking usage of ldconfig -r. Reviewed by Herton + Per Ãyvind Karlsen <peroyvind@mandriva.org> - handle libraries in non-standard locations with ld.so.conf config in /etc/ld.so.conf.d/ - fix file trigger filter match for lib64 * Wed Jul 02 2008 Herton Ronaldo Krzesinski <herton@mandriva.com.br> 6:2.8-1.20080520.4mnb2 + Revision: 230820 - Add more should start entries for nscd init service, reported by Guillaume Rousse (#41055). - Added more upstream nscd fixes. - Add upstream change that replaces glibc-2.8-bug-iconv6_tst-iconv7-localedata.patch (one of bug-iconv6 and tst-iconv7 fixes). I didn't saw that there were already a change that fixed the same issue. + Vincent Danen <vdanen@mandriva.com> - properly use conditionals for build_i18ndata and build_timezone so recent rpm doesn't complain - update the wrapper_handle_sha patch to fully handle sha256c and sha512c; this makes sha256c viable with passwd (although sha512c still needs some work) + Pixel <pixel@mandriva.com> - do not call ldconfig in %%post/%%postun, it is now handled by filetriggers * Thu Jun 05 2008 Pixel <pixel@mandriva.com> 6:2.8-1.20080520.3mnb2 + Revision: 215279 - add rpm filetrigger running "ldconfig -X" when rpm install/remove libraries - drop patch5 since ldconfig is now nicely handled using rpm filetrigger * Mon May 26 2008 Herton Ronaldo Krzesinski <herton@mandriva.com.br> 6:2.8-1.20080520.2mnb2 + Revision: 211410 - Add bug-iconv6 and tst-iconv7 fixes from glibc cvs. Even with them tests would fail: localedata isn't processed before iconvdata, so de_DE.UTF-8 isn't available for the tests. Probably this wasn't catched as this problem is masked if de_DE.UTF-8 is already installed on main system. Made a patch to make iconvdata depend on localedata. - nscd init service should start ldap service if present (mdv bug 41055). - Remove patches not needed anymore for glibc tests related to gcc 4.2 - Cleanup mdkversion uses from spec: there is no reason for backporting or using current package on older distro releases. - Use different numbering scheme in package release for this glibc 2.8 "stable-snapshot" release, discussed on Cooker mailing list (asked by Anssi Hannula, Thierry Vignaud). - Remove uneeded README.upgrade.urpmi message since addition of Provides to "should-restart = system". - Rediffed ENOTTY-fr-translation patch. * Wed May 21 2008 Herton Ronaldo Krzesinski <herton@mandriva.com.br> 6:2.8-1mnb2 + Revision: 209635 - Disable temporarily make check for x86_64. - Update to glibc 2.8 (no official tarball, generated one from glibc-2_8-branch glibc cvs branch). - Drop glibc cvs patches already applied. - Merge glibc-2.3.4-nscd-fixes.patch and glibc-2.6-nscd_HUP.patch into glibc-nscd_fixes.patch and added more updates/fixes from RedHat. - Removed update for perl 5.10 (mtrace-perl-5.10.0 patch), already applied. * Tue May 06 2008 Vincent Danen <vdanen@mandriva.com> 6:2.7-13mnb2 + Revision: 201765 - bump release - imported crypt-blowfish support from Annvix (2.6.1-8123avx): - added crypt-blowfish 1.0.2 - added crypt_freesec.[ch] source files - crypt_freesec.patch which addes support for extended/new-style/BSDI hashes in crypt(3) - relocate_fcrypt.patch relocates the fcrypt definition from crypt-entry.c to crypt_blowfish's wrapper.c to enable gcc4 builds - increase_BF_FRAME.pach increases the BF_FRAME and BF_CLEAN values - crypt.patch is the crypt_blowfish patch for glibc 2.4 (rediffed from the crypt_blowfish package) - packages provide glibc-crypt_blowfish - rediffed crypt.patch - rediffed crypt_freesec.patch - added wrapper_handle_sha.patch to add sha256-crypt and sha512-crypt support to the Openwall wrapper.c file, otherwise sha(256|512)-crypt support won't work * Thu Mar 20 2008 Toshihiro Yamagishi <toshihiro@turbolinux.co.jp> 6:2.7-12mnb1 + Revision: 189119 - use %%_real_vendor macro instead of mandriva as rpmscripts directory name. * Wed Mar 12 2008 Herton Ronaldo Krzesinski <herton@mandriva.com.br> 6:2.7-11mnb1 + Revision: 187259 - Disable again make check failure for i[3456]8: failure happens on build system but not locally here, and 32 bits on x86_64 fails too because missing 32 libs (fixable later with BuildRequires etc.). - Revert again change that causes java programs use too much memory on x86_64 (#38830). - Workaround test-double failure on x86 with gcc 4.2, found out by Makoto Dei (#38794). Also reenable make check failure for i[3456]8. * Mon Mar 10 2008 Herton Ronaldo Krzesinski <herton@mandriva.com.br> 6:2.7-10mnb1 + Revision: 183209 - Added cacheinfo update for Intel Tolapai and fix for bz5541 from glibc cvs. + Anssi Hannula <anssi@mandriva.org> - add comments regarding _(provides|requires)_exceptions * Tue Mar 04 2008 Herton Ronaldo Krzesinski <herton@mandriva.com.br> 6:2.7-9mnb1 + Revision: 178439 - Provides should be used for previous change (not Suggests), reported by Anssi Hannula. * Mon Mar 03 2008 Herton Ronaldo Krzesinski <herton@mandriva.com.br> 6:2.7-8mnb1 + Revision: 178073 - Added "Suggests: should-restart = system" to main glibc package, proposed by Frederic Crozat (see "RFC: add support in packages for notifying user about system reboot needed (or service restart needed)" message on cooker ML). * Wed Feb 27 2008 Herton Ronaldo Krzesinski <herton@mandriva.com.br> 6:2.7-7mnb1 + Revision: 175818 - Require dash-static instead of dash, because dash requires glibc and introduces dependency problems (reported by Pascal Rigaux - pixel). * Tue Feb 26 2008 Herton Ronaldo Krzesinski <herton@mandriva.com.br> 6:2.7-6mnb1 + Revision: 175412 - Added fixes from glibc cvs: bz5465, fix-tzh_version-check, i486-memmove-with-fortify-fix, x86_64-memset-add-missing-sfence, bz5439, bz5441, bz5346. + Pixel <pixel@mandriva.com> - replace %%mkrel with %%manbo_mkrel for Manbo Core 1 * Sun Feb 10 2008 Herton Ronaldo Krzesinski <herton@mandriva.com.br> 6:2.7-5mdv2008.1 + Revision: 164745 - Rebuild glibc with kernel-headers-2.6.24-2mdv2008.1 * Fri Feb 08 2008 Herton Ronaldo Krzesinski <herton@mandriva.com.br> 6:2.7-4mdv2008.1 + Revision: 164302 - Removed kernel-headers, now provided by a standalone package. * Fri Feb 08 2008 Herton Ronaldo Krzesinski <herton@mandriva.com.br> 6:2.7-3mdv2008.1 + Revision: 164149 - Prepare to remove kernel-headers from glibc-devel package (removed provides, obsoletes and header files, to be able to insert separated kernel-headers package on distro). * Fri Feb 01 2008 Herton Ronaldo Krzesinski <herton@mandriva.com.br> 6:2.7-2mdv2008.1 + Revision: 161195 - Added patch to avoid $* deprecated warning when using perl 5.10.0 with mtrace. - Updated kernel-headers to version 2.6.24.1mdv - Added manual fixes from glibc cvs (glibc-2.7-manual_update.patch). Removed glibc-2.6-texi_buildpdf_fix.patch, as this obsoletes it. - Added fixes for bz5222 and bz5600 from glibc cvs. * Fri Jan 04 2008 Herton Ronaldo Krzesinski <herton@mandriva.com.br> 6:2.7-1mdv2008.1 + Revision: 144915 - Updated to version 2.7 - Updated kernel-headers to version 2.6.24-0.rc6.3mdv - Removed glibc-2.4.90-powerpc-no-clock_gettime-vdso.patch, seems to be not needed anymore. - Added patch from upstream cvs to fix i586 build (glibc-2.7-memcpy_chk_i586.patch). - Removed already applied patches in glibc 2.7: glibc-2.5-ldconfig-old-cache.diff glibc-cvs-nscd_dont_cache_ttl0.patch glibc-cvs-utimensat.patch glibc-bz4599.patch glibc-bz4125.patch glibc-cvs-gcc_init_fini.patch glibc-bz4647.patch glibc-bz4773.patch glibc-_nl_explode_name_segfault_fix.patch glibc-bz4776.patch glibc-bz4775.patch glibc-cvs-popen_bug_fix.patch glibc-bz4792.patch glibc-cvs-_cs_posix_v6_width_restricted_envs.patch glibc-bz4813.patch glibc-bz4812.patch glibc-bz4772.patch glibc-cvs-warning_patrol_fixes.patch glibc-cvs-getconf_add_missing_lvl4_cache_linesize.patch glibc-cvs-libc_texinfo_update.patch glibc-cvs-ix86_rwlock_fixes.patch glibc-cvs-gettext_memleak_fixes.patch glibc-cvs-strtod_handle_minuszero.patch glibc-cvs-ar_SA-dz_BT-LC_TIME-fixes.patch glibc-cvs-po_updates.patch glibc-cvs-rh250492.patch - Removed already applied kernel-headers-dvb-video-fix-includes.patch in kernel headers. - Fix test-ldouble with gcc 4.2 on x86. test-double still fails though, so disable make check failure for i[3456]8; it passes on x86_64, not sure if it's related to gcc 4.2, will need a better check later and someone that knows better about complex math. - Rebuild with new lzma to fix permissions of man pages (#36176). + Olivier Blin <oblin@mandriva.com> - restore BuildRoot + Thierry Vignaud <tvignaud@mandriva.com> - kill re-definition of %%buildroot on Pixel's request * Wed Oct 31 2007 Herton Ronaldo Krzesinski <herton@mandriva.com.br> 6:2.6.1-5mdv2008.1 + Revision: 104208 - gconv-modules.cache is volatile (always changed by iconvconfig on post), mark it as ghost in rpm files section, so it's ignored in rpm -V output. - Fix installation of lib{memusage,pcprofile}.so files (#35178). Don't move them around anymore and hack xtrace/memusage, just use upstream defaults avoiding troubles like this in the future. * Thu Sep 27 2007 Herton Ronaldo Krzesinski <herton@mandriva.com.br> 6:2.6.1-4mdv2008.0 + Revision: 93205 - Revert pl_PL LC_TIME changes from glibc 2.6, it's causing problems for polish users, see http://qa.mandriva.com/show_bug.cgi?id=34134 * Fri Aug 31 2007 Herton Ronaldo Krzesinski <herton@mandriva.com.br> 6:2.6.1-3mdv2008.0 + Revision: 76895 - Rebuild for fixed package changelog. * Mon Aug 27 2007 Herton Ronaldo Krzesinski <herton@mandriva.com.br> 6:2.6.1-2mdv2008.0 + Revision: 72022 - Added ldconfig cache speed up patch (added upstream, reported by Pascal Rigaux). - Make package own ld.so.cache. - Added pt_BR-i18nfixes patch, minor translation fixes for pt_BR, see patch for credits. - Provide gai.conf sample. + Thierry Vignaud <tvignaud@mandriva.com> - buildrequires obsoletes buildprereq * Wed Aug 08 2007 Herton Ronaldo Krzesinski <herton@mandriva.com.br> 6:2.6.1-1mdv2008.0 + Revision: 60011 - Updated to version 2.6.1 (technically with previously added patches we were already there, this is more a cosmetic change). - Removed patches already applied in 2.6.1: x86_64-memcpy_cacheinfo, epoll, nscd_get_mapping_crash_fix, sparc_build_fix, provide_CFI_for_the_outermost_function (reverted apply), i386_sync_file_range, bz4745, branch_misc_fixes, malloc, x86_64_dummy_files_prevent_stub, bz4512, bz4514, ld_hwcap_mask_handling_fix, bz4858, pthread_getattr_np_fix, tst_shm_fstat64, ldbl128ibm_fixes, bz4702. - Added the following upstream fixes: rh250492, strtod_handle_minuszero, libc_texinfo_update, ar_SA-dz_BT-LC_TIME-fixes, po_updates, gettext_memleak_fixes, ix86_rwlock_fixes. - Updated warning_patrol_fixes patch with more fixes. - Really enable libidn addon. * Mon Aug 06 2007 Herton Ronaldo Krzesinski <herton@mandriva.com.br> 6:2.6-6mdv2008.0 + Revision: 59528 - Added patch texi_buildpdf_fix, to fix build when build_pdf_doc is enabled (parse error fixes for texi2dvi). - Re-enabled glibc-doc-pdf again (it was fixed in tetex 3.0-23mdk), from Giuseppe Ghib?\195?\178 <ghibo@mandriva.com>. + Anssi Hannula <anssi@mandriva.org> - Really apply kernel-headers-dvb-video-fix-includes.patch. * Thu Aug 02 2007 Herton Ronaldo Krzesinski <herton@mandriva.com.br> 6:2.6-5mdv2008.0 + Revision: 58194 - Updated kernel-headers to version 2.6.22.3mdv. The only change inside it is to add pci_ids.h file, needed by ldetect as reported by Thierry Vignaud. * Mon Jul 30 2007 Herton Ronaldo Krzesinski <herton@mandriva.com.br> 6:2.6-4mdv2008.0 + Revision: 56752 - Fixed missing header on popen_bug_fix patch. - Added one more fix that went upstream related to _nl_explode_name_segfault_fix patch. - Updated nscd_HUP patch from fedora. - Added more fixes/additions that went upstream: bz4813, bz4772, warning_patrol_fixes, sparc_build_fix, bz4812, bz4792, bz4858, _cs_posix_v6_width_restricted_envs, getconf_add_missing_lvl4_cache_linesize. * Wed Jul 25 2007 Herton Ronaldo Krzesinski <herton@mandriva.com.br> 6:2.6-3mdv2008.0 + Revision: 55382 - As reported and found out by Anssi Hannula, revert the following upstream change: 2006-11-30 Jan Kratochvil <jan.kratochvil@redhat.com> * sysdeps/unix/sysv/linux/i386/clone.S: Provide CFI for the * outermost `clone' function to ensure proper unwinding stop of gdb. * sysdeps/unix/sysv/linux/x86_64/clone.S: Likewise. It is causing memory leaks with gcj 4.3 on some cases on x86_64, and probably other problems, may be because of a binutils bug. - Added fix for a popen bug from glibc cvs. * Fri Jul 20 2007 Herton Ronaldo Krzesinski <herton@mandriva.com.br> 6:2.6-2mdv2008.0 + Revision: 53918 - Added patch from Anssi Hannula to fix a kernel header issue (kernel-headers-dvb-video-fix-includes.patch). - Added missing fixes to ldbl128ibm_fixes patch. - Removed hunk from kernel-headers-gnu-extensions.patch that patched linux/byteorder/swab.h, as code changed and isn't needed anymore (no need now for __extension__ as code no more uses "({ ... })" gcc extension). - Updated kernel-headers to version 2.6.22.1mdv. - Replaced init_tls_calls with more complete branch_misc_fixes patch, that includes it along with more fixes from upstream glibc 2.6 branch. - Added upstream fix bz4775. - Don't use echo on post, instead use README.upgrade.urpmi because of rpmdrake, as reported by Anssi Hannula. Also use better warning message. - Removed glibc-post-upgrade, dont't restart all services on update (#21730). Only re-exec init and sshd if possible/needed. + Ademar de Souza Reis Jr <ademar@mandriva.com.br> - remove unecessary 'xset fp=[...]' from %%post, since xfs is not used anymore (besides, it was pointing to the wrong location) * Fri Jul 13 2007 Herton Ronaldo Krzesinski <herton@mandriva.com.br> 2.6-1mdv2008.0 + Revision: 51838 - Only allow make check to fail if current running kernel version is known to work. - Added more fixes from Jakub Jelinek (upstream): _nl_explode_name_segfault_fix, bz4776. - Deal with LD_LIBRARY_PATH bug when building package between major glibc versions. - Added upstream fixes: nscd_get_mapping_crash_fix, bz4599, gcc_init_fini, i386_sync_file_range, init_tls_calls, bz4745, bz4647, x86_64_dummy_files_prevent_stub, ld_hwcap_mask_handling_fix, bz4773, pthread_getattr_np_fix, tst_shm_fstat64, ldbl128ibm_fixes, bz4125, bz4702, nscd_dont_cache_ttl0, utimensat, bz4586. - Replaced amd64-string patch with x86_64-memcpy_cacheinfo that went upstream. - Replaced futex-waiters with bz4512 patch (only test cases added). - Replaced printf diff with glibc-bz4514.patch. - Use new gcc 4.2 -mtune=generic flags for BuildFlags on x86/x86_64. - Updated kernel headers (2.6.21.2mdv). Because of this removed/modified the following patches: * avx-kernel-headers-audit_support: already applied. * kernel-headers-include-2.6.17.1mdk, syscall-mem-clobbers: obsolete, not needed anymore. * gnu-extensions: modified, one hunk is not applying anymore as the file it patches is gone. This new kernel headers use the new scheme of sanitized upstream kernel headers, the tarball is generated from make headers_install_all. - Updated create_asm_headers.sh script for new kernel headers. - Added upstream/redhat patches printf, malloc, futex-waiters, epoll. Fix bugs/incompatibility issues in glibc 2.6 (the diffs are from suse). - Updated to version 2.6. - Redid patches that were not applying anymore: nscd_HUP, nice_fix, multiarch, new-charsets. - Drop patches already applied: hwcap-check-platform, brazil-daylight, slovenia-euro, unicode5, all bz* patches, powerpc-ldbl-fixes, powerpc-hwcaps, fix-nptl-testcases, powerpc-regdump, ttyname-dont-use-isatty, fix-ppc32-setcontext, fix-pthread_mutex_timedlock. - Disabled amd64 patches new-libm, amd64-fix-ceil, amd64-string: don't apply anymore, are not approved upstream yet, no updated version. + Andreas Hasenack <andreas@mandriva.com> - added audit patch, from Vdanen, so we can build audit + Per Ãyvind Karlsen <peroyvind@mandriva.org> - merge ldconfig package with glibc package - replace file dependency /sbin/install-info with package dependency info-install - s/mandrake/mandriva/ - do not build and install localedata for $ALT_ARCH too (fixes #27214) - drop libnldbl_nonshared.a from sparc64 (fixes #30589) - fix reckless usage of s/.bz2// that broke patch names + Pixel <pixel@mandriva.com> - explicit file provide /sbin/ldconfig * Wed Mar 07 2007 Gwenole Beauchesne <gbeauchesne@mandriva.com> 2.4-8mdv2007.1 + Revision: 134573 - split timezone package off glibc - fix pthread_mutex_timedlock() on x86_64 - fix setcontext on ppc32 - fix floor() and ceil() inlines on i386 (BZ#3451) - fix cross-compilation and packaging * Thu Jan 18 2007 Gwenole Beauchesne <gbeauchesne@mandriva.com> 6:2.4-7mdv2007.1 + Revision: 110379 - add Unicode 5.0 support (Pablo) - use Euro in Slovenia - enable DT_GNU_HASH support only for MDK >= 2007.1 - explicitly optimize for Cell on powerpc * Fri Jan 12 2007 Gwenole Beauchesne <gbeauchesne@mandriva.com> 6:2.4-6mdv2007.1 + Revision: 108082 - backport DT_GNU_HASH support - sparc64 updates (Peroyvind) - fix lsb T.ttyname_r (Stew, glibc head) * Tue Oct 24 2006 Gwenole Beauchesne <gbeauchesne@mandriva.com> 2.4-5mdv - update Brazil tzdata (andreas, #26570) - update powerpc-cpu add-on to 0.03 - reintroduce dl-cache AT_PLATFORM check from glibc 2.2.5 - really don't use -frename-registers (workaround rpmb bug) - add selected fixes from 2.5-branch: * fix ppc{32,64} libSegFault.so register dump * fix 2 NPTL testcases * fix ppc{32,64} longjmp (BZ#3225) * use AT_PLATFORM and limit the number of important hwcaps on ppc * fix ppc{32,64} lrintl/lroundl * fix lrint on ppc32 (BZ#3155) * fix lrint, llrint (BZ#2592) * fix pthread_create() called from cancellation handlers (BZ#3124) * fix pthread_cond_{,timed}wait() cancellation (BZ#3123) * fix invalid free in error(3) (BZ#2998) * fix printing of hexadecimal floating point numbers (BZ#2908) * fix too large key check in pthread_setspecific (BZ#2892) * fix pthread_join() in already cancelled thread (BZ#2843) * fix UINT8_C and UINT16_C definitions in <stdint.h> (BZ#2841) * fix mktime() on 32-bit platforms for dates > 2038 (BZ#2821) * fix uninitialized len for alloca in ld.so $ORIGIN/$PLATFORM handling (BZ#2792) * fix malloc(0xFFFFnnnn) corruption from 32-bit wraparound (BZ#2775) * fix insque() to conform to POSIX (BZ#2766) * fix envz_strip() (BZ#2703) * fix dladdr() with SHN_UNDEF symbols (BZ#2683) * provide getlogin prototype even for -D_XOPEN_SOURCE=500 (BZ#2680) * fix cacosh() (BZ#2182) * Mon Jul 24 2006 Gwenole Beauchesne <gbeauchesne@mandriva.com> 2.4-4mdk - update kernel headers to 2.6.17 - --enable-kernel=2.6.12 on powerpc arches - add powerpc-cpu add-on and optimize for power5 and power6 - install generic <bits/stdio-lock.h> header (RH #162634) - cleanups (use new %%isarch) - sparc changes from Per Oyvind Karlsen - buildrequires: texinfo (Christiaan Welvaart) - build glibc-post-wrapper against newly installed libs (Christiaan) * Mon May 22 2006 Arnaud Patard <apatard@mandriva.com> 2.4-3mdk - update kernel-headers to the 2.6.16-2mdk to be able to build applications that are including linux/input.h * Fri May 19 2006 Gwenole Beauchesne <gbeauchesne@mandriva.com> 2.4-2mdk - update new-charsets patch - update kernel-headers to 2.6.16 - update x86_64 strings library from AMD * Thu May 11 2006 Gwenole Beauchesne <gbeauchesne@mandriva.com> 2.4-1mdk - update to glibc 2.4 + CVS (2006/05/11) minus 2.5-specific bits - drop linuxthreads for now, nptl is the default - update x86_64 math library from AMD * Mon Mar 20 2006 Gwenole Beauchesne <gbeauchesne@mandriva.com> 2.3.6-3mdk - refactor nsswitch.conf - fix ENOTTY fr translation (noticed by Rafael) - fix build on sparc32 (Per Oyvind, from Debian) - fix nftw with root directory and FTW_CHDIR (#9121) - fix dlopen() memory leaks (#21691, BZ #2451, from CVS HEAD) * Mon Feb 20 2006 Gwenole Beauchesne <gbeauchesne@mandriva.com> 2.3.6-2mdk - all tests pass on ppc64 - fix localedef for complex LC_COLLATE rules (BZ #368, HEAD) - make -mno-tls-direct-seg-refs the default for x86 Xen arches - don't ship ppc64 asm headers for ppc32 builds - don't provide ld-linux.so.2 on ppc (Christiaan Welvaart) * Thu Feb 16 2006 Gwenole Beauchesne <gbeauchesne@mandriva.com> 2.3.6-1mdk - 2.3.6 - kernel-headers fixes (ppc64, ethtool.h, rsbac_syscall4) - use dedicated macros to handle nscd service (FredL) - fix permissions for */lib/*.so - fix glibc-devel deps (#19145) - fix upgrades from conectiva, aka conflicts glibc-base <= 2.3.4 (#19256) * Wed Oct 19 2005 Gwenole Beauchesne <gbeauchesne@mandriva.com> 2.3.5-6mdk - support kernel 2.6 series only on ppc64 - add missing ppc64 asm headers for newer kernels * Mon Aug 29 2005 Gwenole Beauchesne <gbeauchesne@mandriva.com> 2.3.5-5mdk - update to 2.6.12-11mdk kernel headers - make glibc-utils scripts biarch capable - ship with localised libc.mo files again - ship with 32-bit profile libs on biarch platforms - move Xen optimized libraries to their own subpackage - check for /lib* prior to writing the upgrade stamp (G. Niemeyer) - fix BZ #1188 (Sergio Gelato, mountd crash) * Sat Aug 06 2005 Gwenole Beauchesne <gbeauchesne@mandriva.com> 2.3.5-4mdk - enable fortify with our gcc4 - fix amd64 string routines (latest snapshot from SuSE) - provide nptl libraries suitable when running under Xen - drop build support with distcc, icecream is used instead - run testsuite with _NPROCESSORS_ONLN jobs at most (i.e. local run) * Tue Aug 02 2005 Gwenole Beauchesne <gbeauchesne@mandriva.com> 2.3.5-3mdk - fix requires for shiny new rpm... and its bugs - update to 2.6.12-8mdk kernel headers - support only 2.6+ kernel series on ppc64 - minimal NPTL kernel for 2006 is >= 2.6.9, this brings the following: * getdents syscall returns d_type information as well * ppc adds signal/swapcontext support for VMX instructions & regstate * x86 has a fixed version of posix_fadvise64 * new syscalls: waitid, utimes, tgkill, statfs64 - updates from 2.3-branch (2005/07/21): * avoid dynamically sized stack arrays in regex (BZ #1101) * fix sign-extension issues in xdr_stdio on 64-bit big endian machines + xdr{,_u}_hyper fixes (BZ #1098, #1097) * fix ISO-4217 spec for sr_CS locale, aka add CSD currency (BZ #549) * correctly account for characters of decimal points right after +-, aka scanf fixes (BZ #1110) * fix recursive dlclose (BZ #1081) * add %%z format to strptime (BZ #1105) * fix age calculation in nscd cache pruning (BZ #1094) * fix segfault in regexec (BZ #934) * fix posix_fallocate semantics using ftruncate (BZ #1083) * fix BZs #1099, #1108, #1100, #1103, #1095, #1101, #779, #1087, * Wed Jun 15 2005 Gwenole Beauchesne <gbeauchesne@mandriva.com> 2.3.5-2mdk - generate gconv-modules.cache - requires and post scripts tweaks - add optimized AMD64 strings library - fix tst-cancel17 with newer kernels (CVS HEAD) * Fri Jun 03 2005 Gwenole Beauchesne <gbeauchesne@mandriva.com> 2.3.5-1mdk - factor out test matrix - build 32-bit tls libs on x86_64 - build tls libraries on sparc64 (Stefan) - remove -fno-unit-at-a-time from build flags - fix aliasing in AMD64 new libm - updates from 2.3-branch (2005/04/27): * update from Intel ia64 libm 2005-03-21 * fix BZs #253, #776, #821, #822, #825, #851, #877 * Wed Mar 16 2005 Gwenole Beauchesne <gbeauchesne@mandrakesoft.com> 2.3.4-8mdk - fix initstate_r (#14591) * Thu Mar 10 2005 Gwenole Beauchesne <gbeauchesne@mandrakesoft.com> 2.3.4-7mdk - fix package url (MDK #14468, Zeb) - update to 2.6.11-2mdk kernel headers (inotify 0.20) - update to stable 2.3-branch (2005/03/01): * fix BZs #284, #671, #719, #722, #726, #727, #729, #730, #731, * fix segfault in open_path, aka fix rsync --daemon (BZ #738) * fix powerpc64 set/swap context (BZ #700) * support -mno-tls-direct-seg-refs builds (BZ #737) * update to tz{code,data}2005c (BZ #736) * do not allocate potentially large buffers on the stack * futimes() should not fail with ENOENT (BZ #633) * declare ftruncate for POSIX 2003 (BZ #640) * fix rint on powerpc (BZ #602) * update ia64 libm (BZ #592) * fix round() to round return value to nearest (BZ #626) * fix {,q}ecvt{,_r} on denormals (BZ #725) * fix i386 stack alignment in clone and linuxthreads (BZ #723) * Wed Feb 23 2005 Gwenole Beauchesne <gbeauchesne@mandrakesoft.com> 2.3.4-6mdk - fix fdim() in x86_64 libm, use glibc implementation - really stick with getconf files in /usr/lib/getconf - update kernel headers to 2.6.10-3mdk for new inotify - kernel header fixes (cdp, fddi) * Thu Feb 10 2005 Gwenole Beauchesne <gbeauchesne@mandrakesoft.com> 2.3.4-5mdk - kernel headers fixes (christiaan/ppc, directfb/x86_64, usbutils/any) * Thu Jan 27 2005 Gwenole Beauchesne <gbeauchesne@mandrakesoft.com> 2.3.4-4mdk - add missing getconf files - always propagate pgoff_t definition (workaround kernel header) * Mon Jan 24 2005 Gwenole Beauchesne <gbeauchesne@mandrakesoft.com> 2.3.4-3mdk - relax __le64 and __be64 definitions in kernel headers * Fri Jan 21 2005 Gwenole Beauchesne <gbeauchesne@mandrakesoft.com> 2.3.4-2mdk - update to 2.6.10 kernel headers - add memory clobbers in asm-i386 syscalls as arguments may be pointers to modifiable memory and values need to be reloaded (e.g. _llseek() in util-linux) * Tue Dec 28 2004 Gwenole Beauchesne <gbeauchesne@mandrakesoft.com> 2.3.4-1mdk - 2.3.4 - fix kernel headers (videodev2.h, blkpg.h on ppc64) - bring "compat" only to nsswitch.conf - cosmetics to make check machinery * Thu Nov 25 2004 Gwenole Beauchesne <gbeauchesne@mandrakesoft.com> 2.3.3-23mdk - fix cross bootstrap builds - enable biarch support on ppc64 - enable tls and nptl on ia64 and ppc64 * Fri Oct 08 2004 Gwenole Beauchesne <gbeauchesne@mandrakesoft.com> 2.3.3-22mdk - revert nsswitch.conf change - fix <linux/ijxuser.h> on non x86 platforms - reread /etc/localtime even if just mtime has changed (CVS) * Thu Sep 16 2004 Gwenole Beauchesne <gbeauchesne@mandrakesoft.com> 2.3.3-21mdk - add pcc to nptl arches - fix path to nscd socket - bring "compat" mode to nsswitch.conf - fix kernel headers for usbutils rebuild * Thu Sep 02 2004 Gwenole Beauchesne <gbeauchesne@mandrakesoft.com> 2.3.3-20mdk - add ppc to tls arches (Christiaan Welvaart) - selected fixes from CVS (2004/09/01): * fix locking issues in nscd * fix some IPv6 related bugs * Wed Aug 25 2004 Gwenole Beauchesne <gbeauchesne@mandrakesoft.com> 2.3.3-19mdk - fix nice - fix nscd runlevels - selected fixes from CVS (2004/08/24): * add O_NOATIME to linux <fcntl.h> from 2.6.8+ (BZ #341) * fix nis nss_compat's initgroups handling * fix possible problem with ld.so and brk management (BZ #227) * Wed Aug 18 2004 Gwenole Beauchesne <gbeauchesne@mandrakesoft.com> 2.3.3-18mdk - add missing glibc compat symlinks - add sparc to TLS arches (Per Oyvind) - fix <linux/capi.h> standalone inclusion * Tue Aug 17 2004 Gwenole Beauchesne <gbeauchesne@mandrakesoft.com> 2.3.3-17mdk - enable AMD optimized libm for x86_64 - add pow10 and friends in x86_64 libm * Fri Aug 13 2004 Gwenole Beauchesne <gbeauchesne@mandrakesoft.com> 2.3.3-16mdk - some minor build arrangements - add compat glibc 2.0 for some ancient programs * Fri Aug 13 2004 Gwenole Beauchesne <gbeauchesne@mandrakesoft.com> 2.3.3-15mdk - fix <linux/crc-ccitt.h> - update from CVS (2004/08/12): * fix BZ #150, #198, #217, #218, #219, #230, #231, #232, #262, #263 * fix pthread_rwlock_timedrdlock on x86_64 * fix values for -m32 -D_FILE_OFFSET_BITS=64 on x86_64 * fix psignal() changes from previous CVS syncs * fix backtrace in statically linked programs on ia64/x86-64/s390{,x} * fix possible buffer overflow in crypt() * fix lowmem handling in chroot_canon() (BZ #199) * handle more than 6 args correctly on x86_64 makecontext() * Wed Aug 11 2004 Gwenole Beauchesne <gbeauchesne@mandrakesoft.com> 2.3.3-14mdk - update to 2.6.8 kernel headers (fix #10693) - selected fixes from CVS: * make inet_pton() RFC2133 (BZ #295) * fix strtold() on 32-bit arches with ldbl-96 (BZ #274) * fix pow{,f,l}() on IA-32 and powl() on AMD64 (BZ #258) * Mon Jul 05 2004 Gwenole Beauchesne <gbeauchesne@mandrakesoft.com> 2.3.3-13mdk - fix upgrades for /etc/ld.so.conf.d/* - update to 2.3.4 CVS snapshot (2004/06/01) - update to 2.6.6+ kernel headers, I want POSIX message queues - update patch to handle multiple types of libraries from one ld.so * Tue May 25 2004 Gwenole Beauchesne <gbeauchesne@mandrakesoft.com> 2.3.3-12mdk - Make ldconfig handle "include ld.so.conf.d/*.conf" (2.3.4-cvs) * Thu Apr 15 2004 Gwenole Beauchesne <gbeauchesne@mandrakesoft.com> 2.3.3-11mdk - Enable use of kernel timers for NPTL timer_create() - Fix mathinline.h again - alpha & sparc64 updates (Stefan) - Merge from AMD64 branch: * Fix rwlocks on AMD64 with NPTL * Various fixes to kernel-headers * Really fix build on AMD64 with 2.4 kernel