995a44ffad
- make pwdutils a real buildrequire Requires(pre) are used during builds, but don't trigger rebuilds. But to create clearly defined bootstrap projects, it's essential to know what packages are required for others. So move this requires to build to a buildrequire OBS-URL: https://build.opensuse.org/request/show/213147 OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=327
1279 lines
37 KiB
RPMSpec
1279 lines
37 KiB
RPMSpec
#
|
|
# spec file for package glibc-utils
|
|
#
|
|
# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
|
#
|
|
|
|
|
|
# PLEASE run pre_checkin.sh in this directory before submitting
|
|
# this package. Otherwise the .spec and .changes for glibc-testsuite
|
|
# and glibc-utils aren't updated.
|
|
|
|
# Run with osc --with=fast_build to have a shorter turnaround
|
|
# It will avoid building some parts of glibc
|
|
%bcond_with fast_build
|
|
|
|
%define crypt_bf_version 1.2
|
|
|
|
Name: glibc-utils
|
|
%define normal_build ("%{name}" == "glibc")
|
|
%define utils_build ("%{name}" == "glibc-utils")
|
|
%define testsuite_build ("%{name}" == "glibc-testsuite")
|
|
Summary: Development utilities from GNU C library
|
|
License: LGPL-2.1+
|
|
Group: Development/Languages/C and C++
|
|
# UTILS-SUMMARY-END
|
|
BuildRequires: fdupes
|
|
BuildRequires: libselinux-devel
|
|
BuildRequires: makeinfo
|
|
BuildRequires: pwdutils
|
|
BuildRequires: systemd-rpm-macros
|
|
BuildRequires: xz
|
|
%if %{testsuite_build}
|
|
BuildRequires: gcc-c++
|
|
BuildRequires: libstdc++-devel
|
|
%endif
|
|
%if %{utils_build}
|
|
BuildRequires: gd-devel
|
|
%endif
|
|
|
|
%define __filter_GLIBC_PRIVATE 1
|
|
%if %_target_cpu == "i686"
|
|
# For i686 let's only build what's different from i586, so
|
|
# no need to build documentation
|
|
%define build_profile 1
|
|
%define build_locales 1
|
|
%define build_html 0
|
|
%else
|
|
%if %{with fast_build} || %{utils_build}
|
|
%define build_profile 0
|
|
%define build_locales 0
|
|
%define build_html 0
|
|
%else
|
|
# Default:
|
|
%ifarch aarch64
|
|
# aarch64 doesn't support -pg yet
|
|
%define build_profile 0
|
|
%else
|
|
%define build_profile 1
|
|
%endif
|
|
%define build_locales 1
|
|
%define build_html 1
|
|
%endif
|
|
%endif
|
|
|
|
%define disable_assert 0
|
|
%define enable_stackguard_randomization 1
|
|
%ifarch ppc ppc64
|
|
%define optimize_power 1
|
|
%ifarch ppc
|
|
%define powerpc_optimize_base %{nil}
|
|
%define powerpc_optimize_tune power3
|
|
%define powerpc_optimize_cpu_power4 %{normal_build}
|
|
%else
|
|
%define powerpc_optimize_base %{nil}
|
|
%define powerpc_optimize_tune power5
|
|
%define powerpc_optimize_cpu_power4 0
|
|
%endif
|
|
# We are not building Power CPU specific optimizations for openSUSE.
|
|
%define powerpc_optimize_cpu_power6 0
|
|
%define powerpc_optimize_cpu_power7 0
|
|
%define powerpc_optimize_cpu_cell 0
|
|
%else
|
|
%define optimize_power 0
|
|
%define powerpc_optimize_base %{nil}
|
|
%define powerpc_optimize_cpu_power4 0
|
|
%define powerpc_optimize_cpu_power6 0
|
|
%define powerpc_optimize_cpu_power7 0
|
|
%define powerpc_optimize_cpu_cell 0
|
|
%endif # ppc, ppc64
|
|
%ifarch x86_64
|
|
# 2.6.32 is the SLES 11 SP1 kernel
|
|
# 2.6.34 is the openSUSE 11.3 kernel
|
|
%define enablekernel 2.6.32
|
|
%else
|
|
# 2.6.16 is the SLES 10 kernel, use this as oldest supported kernel
|
|
%define enablekernel 2.6.16
|
|
%endif
|
|
Version: 2.18.90
|
|
Release: 0
|
|
%define glibc_major_version 2.18.90
|
|
%define git_id 94c8a4bc574c
|
|
Url: http://www.gnu.org/software/libc/libc.html
|
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
|
Source: glibc-%{version}-%{git_id}.tar.xz
|
|
#Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz
|
|
Source3: noversion.tar.bz2
|
|
Source4: manpages.tar.bz2
|
|
Source5: nsswitch.conf
|
|
Source7: bindresvport.blacklist
|
|
Source8: glibc_post_upgrade.c
|
|
Source9: glibc.rpmlintrc
|
|
Source10: baselibs.conf
|
|
# For systemd
|
|
Source20: nscd.conf
|
|
Source21: nscd.service
|
|
# crypt_blowfish
|
|
Source50: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}.tar.gz
|
|
Source51: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}.tar.gz.sign
|
|
|
|
%if %{normal_build}
|
|
# ngpt was used in 8.1 and SLES8
|
|
Obsoletes: ngpt < 2.2.2
|
|
Obsoletes: ngpt-devel < 2.2.2
|
|
Provides: ngpt = 2.2.2
|
|
Provides: ngpt-devel = 2.2.2
|
|
Conflicts: kernel < %{enablekernel}
|
|
# bug437293 - handle update from SLES10 on PowerPC
|
|
%ifarch ppc64
|
|
Obsoletes: glibc-64bit
|
|
%endif
|
|
%ifarch ppc
|
|
Obsoletes: glibc-32bit
|
|
%endif
|
|
%ifarch armv6hl armv7hl
|
|
# The old runtime linker link gets not provided by rpm find.provides, but it exists
|
|
Provides: ld-linux.so.3
|
|
Provides: ld-linux.so.3(GLIBC_2.4)
|
|
%endif
|
|
Requires(pre): filesystem
|
|
Recommends: glibc-extra
|
|
Provides: rtld(GNU_HASH)
|
|
%endif # %{normal_build}
|
|
%if %{utils_build}
|
|
Requires: glibc = %{version}
|
|
%endif
|
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
|
%if %_target_cpu == "i686"
|
|
# We need to avoid to have only the src rpm from i686 on the media,
|
|
# since it does not work on other architectures.
|
|
NoSource: 0
|
|
%endif
|
|
#
|
|
|
|
###
|
|
# Patches are ordered in the following groups:
|
|
# Patches that we will never upstream or which have not been looked at: 0-999
|
|
# Patches taken from upstream: 1000-2000
|
|
# Patches that are going upstream, waiting approval: 2000-3000
|
|
###
|
|
|
|
###
|
|
# Patches that upstream will not accept
|
|
###
|
|
|
|
###
|
|
# openSUSE specific patches - won't go upstream
|
|
###
|
|
### openSUSE extensions, configuration
|
|
# PATCH-FEATURE-OPENSUSE -- add crypt_blowfish support - bnc#700876
|
|
Patch1: glibc-2.14-crypt.diff
|
|
# PATCH-FEATURE-OPENSUSE constify crypt_blowfish
|
|
Patch2: crypt_blowfish-const.patch
|
|
# PATCH-FEATURE-OPENSUSE -- add sha support to crypt_blowfish lnussel@suse.de
|
|
Patch3: crypt_blowfish-1.2-sha.diff
|
|
# PATCH-FEATURE-OPENSUSE Move crypt_gensalt_rn to separate library
|
|
Patch4: crypt_blowfish-gensalt.patch
|
|
# PATCH-FEATURE-OPENSUSE Avoid build failure on noexecstack marker on ARM dmueller@suse.de
|
|
Patch5: crypt_blowfish-1.2-hack_around_arm.diff
|
|
# PATCH-FIX-OPENSUSE Fix path for nscd databases
|
|
Patch6: glibc-2.3.3-nscd-db-path.diff
|
|
# PATCH-FIX-OPENSUSE Fix path for nss_db (bnc#753657) - aj@suse.de
|
|
Patch7: nss-db-path.patch
|
|
# PATCH-FIX-OPENSUSE adjust nscd.conf
|
|
Patch8: glibc-nscd.conf.patch
|
|
# PATCH-FIX-OPENSUSE do not use compile time in binaries
|
|
Patch9: glibc-nodate.patch
|
|
# PATCH-FIX-OPENSUSE -- add some extra information to version output - kukuk@suse.de
|
|
Patch10: glibc-version.diff
|
|
# PATCH-FIX-OPENSUSE remove lfs test from testsuite aj@suse.de
|
|
Patch11: glibc-testsuite.patch
|
|
# PATCH-FIX-OPENSUSE handle old glibc binaries
|
|
Patch12: glibc-2.3.90-noversion.diff
|
|
# PATCH-FIX-OPENSUSE -- Make --no-archive default for localedef - kukuk@suse.de
|
|
Patch13: glibc-2.3.2.no_archive.diff
|
|
# PATCH-FIX-OPENSUSE -- add blacklist for bindresvport
|
|
Patch14: glibc-bindresvport-blacklist.diff
|
|
# PATCH-FIX-OPENSUSE prefer -lang rpm packages
|
|
Patch15: glibc-2.3.90-langpackdir.diff
|
|
# PATCH-FEATURE-SLE increase cpusetsize to 4096, needs to be kept for compatibility kukuk@suse.de (XXX: Review)
|
|
Patch18: glibc-cpusetsize.diff
|
|
# PATCH-FEATURE-SLE Use nscd user for nscd
|
|
Patch19: nscd-server-user.patch
|
|
|
|
### Locale related patches
|
|
# PATCH-FIX-OPENSUSE Add additional locales
|
|
Patch100: glibc-2.3.locales.diff.bz2
|
|
# PATCH-FIX-OPENSUSE -- Add no_NO back (XXX: Still needed?)
|
|
Patch102: glibc-2.4.90-no_NO.diff
|
|
# PATCH-FIX-OPENSUSE -- Renames for China
|
|
Patch103: glibc-2.4-china.diff
|
|
|
|
### Broken patches in glibc that we revert for now:
|
|
# None
|
|
|
|
### Network related patches
|
|
# PATCH-FIX-OPENSUSE reload /etc/resolv.conf on change
|
|
Patch300: glibc-resolv-reload.diff
|
|
# PATCH-FIX-OPENSUSE Fix hangs in UDP RPC calls bso#5379 bnc#257745 aj@suse.de
|
|
Patch301: glibc-2.2-sunrpc.diff
|
|
# PATCH-FIX-OPENSUSE only use ipv6 if real ipv6 address exists bnc#361697, bnc#684534
|
|
Patch302: getaddrinfo-ipv6-sanity.diff
|
|
# PATCH-FIX-OPENSUSE Warn about usage of mdns in resolv.conv
|
|
Patch304: glibc-resolv-mdnshint.diff
|
|
# PATCH-FIX-OPENSUSE disable rewriting ::1 to 127.0.0.1 for /etc/hosts bnc#684534, bnc#706719
|
|
Patch306: glibc-fix-double-loopback.diff
|
|
|
|
###
|
|
# Patches from upstream
|
|
###
|
|
|
|
###
|
|
# Patches awaiting upstream approval
|
|
###
|
|
# PATCH-FIX-UPSTREAM PowerLE abilist
|
|
Patch2000: ppc64le-abilist.patch
|
|
# PATCH-FIX-UPSTREAM Fix pldd not to leave process stopped after detaching
|
|
Patch2019: pldd-wait-ptrace-stop.patch
|
|
|
|
# Non-glibc patches
|
|
# PATCH-FIX-OPENSUSE Remove debianisms from manpages
|
|
Patch3000: manpages.patch
|
|
|
|
%description
|
|
The glibc-utils package contains mtrace, a memory leak tracer and
|
|
xtrace, a function call tracer which can be helpful during program
|
|
debugging.
|
|
|
|
If you are unsure if you need this, don't install this package.
|
|
|
|
%package info
|
|
Summary: Info Files for the GNU C Library
|
|
License: GFDL-1.1
|
|
Group: Documentation/Other
|
|
Requires(post): %{install_info_prereq}
|
|
Requires(postun): %{install_info_prereq}
|
|
BuildArch: noarch
|
|
|
|
%description info
|
|
This package contains the documentation for the GNU C library stored as
|
|
info files. Due to a lack of resources, this documentation is not
|
|
complete and is partially out of date.
|
|
|
|
%package html
|
|
Summary: HTML Documentation for the GNU C Library
|
|
License: GFDL-1.1
|
|
Group: Documentation/HTML
|
|
BuildArch: noarch
|
|
|
|
%description html
|
|
This package contains the HTML documentation for the GNU C library. Due
|
|
to a lack of resources, this documentation is not complete and is
|
|
partially out of date.
|
|
|
|
%package i18ndata
|
|
Summary: Database Sources for 'locale'
|
|
License: GPL-2.0+ and MIT
|
|
Group: System/Libraries
|
|
BuildArch: noarch
|
|
|
|
%description i18ndata
|
|
This package contains the data needed to build the locale data files to
|
|
use the internationalization features of the GNU libc. It is normally
|
|
not necessary to install this packages, the data files are already
|
|
created.
|
|
|
|
%package locale
|
|
Summary: Locale Data for Localized Programs
|
|
License: GPL-2.0+ and MIT and LGPL-2.1+
|
|
Group: System/Libraries
|
|
Requires(post): /bin/cat
|
|
Requires: glibc = %{version}
|
|
# bug437293
|
|
%ifarch ppc64
|
|
Obsoletes: glibc-locale-64bit
|
|
%endif
|
|
%ifarch ppc
|
|
Obsoletes: glibc-locale-32bit
|
|
%endif
|
|
|
|
%description locale
|
|
Locale data for the internationalisation features of the GNU C library.
|
|
|
|
%package -n nscd
|
|
Summary: Name Service Caching Daemon
|
|
License: GPL-2.0+
|
|
Group: System/Daemons
|
|
Provides: glibc:/usr/sbin/nscd
|
|
Requires: glibc = %{version}
|
|
Obsoletes: unscd <= 0.48
|
|
Requires(pre): pwdutils
|
|
%{?systemd_requires}
|
|
|
|
%description -n nscd
|
|
Nscd caches name service lookups and can dramatically improve
|
|
performance with NIS, NIS+, and LDAP.
|
|
|
|
%package profile
|
|
Summary: Libc Profiling and Debugging Versions
|
|
License: LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+
|
|
Group: Development/Libraries/C and C++
|
|
Requires: glibc = %{version}
|
|
# bug437293
|
|
%ifarch ppc64
|
|
Obsoletes: glibc-profile-64bit
|
|
%endif
|
|
%ifarch ppc
|
|
Obsoletes: glibc-profile-32bit
|
|
%endif
|
|
|
|
%description profile
|
|
This package contains special versions of the GNU C library which are
|
|
necessary for profiling and debugging.
|
|
|
|
%package devel
|
|
Summary: Include Files and Libraries Mandatory for Development
|
|
License: BSD-3-Clause and LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+
|
|
Group: Development/Libraries/C and C++
|
|
Obsoletes: epoll = 1.0
|
|
Provides: epoll < 1.0
|
|
# bug437293
|
|
%ifarch ppc64
|
|
Obsoletes: glibc-devel-64bit
|
|
%endif
|
|
%ifarch ppc
|
|
Obsoletes: glibc-devel-32bit
|
|
%endif
|
|
Requires: glibc = %{version}
|
|
Requires: linux-kernel-headers
|
|
|
|
%description devel
|
|
These libraries are needed to develop programs which use the standard C
|
|
library.
|
|
|
|
%package devel-static
|
|
Summary: C library static libraries for -static linking
|
|
License: BSD-3-Clause and LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+
|
|
Group: Development/Libraries/C and C++
|
|
Requires: %{name}-devel = %{version}
|
|
# Provide Fedora name for package to make packaging easier
|
|
Provides: %{name}-static = %version
|
|
|
|
%description devel-static
|
|
The glibc-devel-static package contains the C library static libraries
|
|
for -static linking. You don't need these, unless you link statically,
|
|
which is highly discouraged.
|
|
|
|
# makedb requires libselinux. We add this program in a separate
|
|
# package so that glibc does not require libselinux.
|
|
%package extra
|
|
Summary: Extra binaries from GNU C Library
|
|
License: LGPL-2.1+
|
|
Group: Development/Languages/C and C++
|
|
Requires: glibc = %{version}
|
|
|
|
%description extra
|
|
The glibc-extra package contains some extra binaries for glibc that
|
|
are not essential but recommend to use.
|
|
|
|
makedb: A program to create a database for nss
|
|
|
|
%package obsolete
|
|
Summary: Obsolete Shared Libraries from the GNU C Library
|
|
License: LGPL-2.0+
|
|
Group: System/Libraries
|
|
Requires: glibc = %{version}
|
|
|
|
%description obsolete
|
|
This package provides some old libraries from the GNU C Library which
|
|
are no longer supported. Additional it provides a compatibility library
|
|
for old binaries linked against glibc 2.0.
|
|
|
|
Install this package if you need one of this libraries to get old
|
|
binaries working, but since this libraries are not supported and there
|
|
is no gurantee that they work for you, you should try to get newer
|
|
versions of your software.
|
|
|
|
%prep
|
|
%setup -n glibc-%{version} -q -a 3 -a 4
|
|
# Owl crypt_blowfish
|
|
tar -xzf %SOURCE50
|
|
pushd crypt_blowfish-%{crypt_bf_version}
|
|
%patch2 -p1
|
|
%patch3 -p1
|
|
%patch4 -p1
|
|
%patch5
|
|
popd
|
|
mv crypt/{crypt.h,gnu-crypt.h}
|
|
mv crypt_blowfish-%crypt_bf_version/*.[chS] crypt/
|
|
#
|
|
%patch1 -p1
|
|
%patch6 -p1
|
|
%patch7 -p1
|
|
%patch8 -p1
|
|
# avoid changing nscd_stat.c mtime to avoid code generation
|
|
# differences on each rebuild
|
|
touch -r nscd/nscd_stat.c nscd/s-stamp
|
|
%patch9 -p1
|
|
touch -r nscd/s-stamp nscd/nscd_stat.c
|
|
rm nscd/s-stamp
|
|
%patch10 -p1
|
|
%patch11 -p1
|
|
%patch12 -p1
|
|
%patch13 -p1
|
|
%patch14 -p1
|
|
%patch15 -p1
|
|
%patch18 -p1
|
|
%patch19 -p1
|
|
|
|
%patch100 -p1
|
|
%patch102 -p1
|
|
%patch103 -p1
|
|
|
|
%patch300 -p1
|
|
%patch301 -p1
|
|
%patch302 -p1
|
|
%patch304 -p1
|
|
%patch306 -p1
|
|
|
|
%patch2000 -p1
|
|
%patch2019 -p1
|
|
|
|
%patch3000
|
|
|
|
#
|
|
# Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed!
|
|
#
|
|
# Glibc 2.8 introduced the HP_TIMING element to the rtld_global_ro struct # definition.
|
|
# If the base is built without power4 the loader won't have this element in
|
|
# the struct whereas the power4/5/6/... libc will, so there will be a disconnect
|
|
# between the size of the rtld_global_ro struct between the two and dl_close
|
|
# ends up getting called incorrectly when it's actually attempting to call a
|
|
# resolver function. This is because the GLRO() macro simply attempts to
|
|
# compute an offset and gets the wrong one.
|
|
# Building the base glibc with --with-cpu=power4 solves this problem.
|
|
# But: ppc32 can not default to -mcpu=power4 because it would emit instructions
|
|
# which are not available on G3, G4 etc.
|
|
#
|
|
# We simply remove the power4 files, and build the base glibc for a generic powerpc cpu
|
|
# Additional cputuned libs can now be used on powerpc32
|
|
#
|
|
rm -fv sysdeps/powerpc/powerpc32/power4/hp-timing.c sysdeps/powerpc/powerpc32/power4/hp-timing.h
|
|
find . -name configure | xargs touch
|
|
|
|
# For ppc64le check-abi requires some files to be named *-le.abilist
|
|
# also for libs that only have an empty abilist, so just copy over
|
|
for f in sysdeps/generic/*.abilist; do
|
|
cp $f ${f/./-le.}
|
|
done
|
|
|
|
#######################################################################
|
|
###
|
|
### BUILD
|
|
###
|
|
#######################################################################
|
|
|
|
%build
|
|
if [ -x /bin/uname.bin ]; then
|
|
/bin/uname.bin -a
|
|
else
|
|
uname -a
|
|
fi
|
|
uptime || :
|
|
ulimit -a
|
|
nice
|
|
# We do not want configure to figure out the system its building one
|
|
# to support a common ground and thus set build and host to the
|
|
# target_cpu.
|
|
%ifarch %arm
|
|
%define target %{_target_cpu}-suse-linux-gnueabi
|
|
%else
|
|
%define target %{_target_cpu}-suse-linux
|
|
%endif
|
|
# Don't use as-needed, it breaks glibc assumptions
|
|
# Before enabling it, run the testsuite and verify that it
|
|
# passes completely
|
|
export SUSE_ASNEEDED=0
|
|
# Adjust glibc version.h
|
|
echo "#define CONFHOST \"%{target}\"" >> version.h
|
|
echo "#define GITID \"%{git_id}\"" >> version.h
|
|
#
|
|
# Default CFLAGS and Compiler
|
|
#
|
|
BuildFlags="%{optflags} -U_FORTIFY_SOURCE"
|
|
BuildFlags="$(echo $BuildFlags | sed -e 's#-fstack-protector##' -e 's#-ffortify=[0-9]*##')"
|
|
BuildCC="%__cc"
|
|
BuildCCplus="%__cxx"
|
|
add_ons=",libidn"
|
|
#
|
|
#now overwrite for some architectures
|
|
#
|
|
%ifarch sparc64
|
|
BuildFlags="-O2 -mcpu=ultrasparc -mvis -fcall-used-g6"
|
|
BuildCC="gcc -m64"
|
|
BuildCCplus="$BuildCCplus -m64"
|
|
%endif
|
|
%ifarch sparc
|
|
BuildFlags="$BuildFlags -fcall-used-g6"
|
|
BuildCC="gcc -m32"
|
|
BuildCCplus="$BuildCCplus -m32"
|
|
%endif
|
|
%ifarch sparcv9
|
|
BuildFlags="$BuildFlags -mcpu=ultrasparc -fcall-used-g6"
|
|
BuildCC="gcc -m32"
|
|
BuildCCplus="$BuildCCplus -m32"
|
|
%endif
|
|
%ifarch alphaev6
|
|
BuildFlags="-mcpu=ev6"
|
|
%endif
|
|
%ifarch ppc ppc64
|
|
BuildFlags="$(echo $BuildFlags | sed 's#-mminimal-toc##')"
|
|
%endif
|
|
%ifarch ppc64
|
|
BuildCC="$BuildCC -m64"
|
|
BuildCCplus="$BuildCCplus -m64"
|
|
%endif
|
|
%ifarch hppa
|
|
BuildFlags="$BuildFlags -mpa-risc-1-1 -fstrict-aliasing"
|
|
%endif
|
|
# Add flags for all plattforms except AXP
|
|
%ifnarch alpha
|
|
BuildFlags="$BuildFlags -g"
|
|
%endif
|
|
%if %{disable_assert}
|
|
BuildFlags="$BuildFlags -DNDEBUG=1"
|
|
%endif
|
|
%ifarch %ix86
|
|
add_ons=$add_ons,noversion
|
|
%endif
|
|
%ifarch %arm aarch64 mipsel ia64 m68k
|
|
add_ons=$add_ons,ports
|
|
%endif
|
|
%ifarch mipsel
|
|
# fails to build otherwise - need to recheck and fix
|
|
%define enable_stackguard_randomization 0
|
|
%endif
|
|
|
|
configure_and_build_glibc() {
|
|
local dirname="$1"; shift
|
|
local cflags="$1"; shift
|
|
local addons="$1"; shift
|
|
mkdir "cc-$dirname"
|
|
cd "cc-$dirname"
|
|
%ifarch %arm aarch64
|
|
# remove asynchronous-unwind-tables during configure as it causes
|
|
# some checks to fail spuriously on arm
|
|
conf_cflags="${cflags/-fasynchronous-unwind-tables/}"
|
|
conf_cflags="${conf_cflags/-funwind-tables/}"
|
|
%else
|
|
conf_cflags="$cflags"
|
|
%endif
|
|
|
|
profile="--disable-profile"
|
|
%if %{build_profile}
|
|
if [ "$dirname" = "base" ] ; then
|
|
profile="--enable-profile"
|
|
fi
|
|
%endif
|
|
CFLAGS="$conf_cflags" BUILD_CFLAGS="$conf_cflags" \
|
|
CC="$BuildCC" CXX="$BuildCCplus" ../configure \
|
|
--prefix=%{_prefix} \
|
|
--libexecdir=%{_libexecdir} --infodir=%{_infodir} \
|
|
--enable-add-ons=nptl$addons \
|
|
$profile \
|
|
"$@" \
|
|
%if %{enable_stackguard_randomization}
|
|
--enable-stackguard-randomization \
|
|
%endif
|
|
--enable-lock-elision \
|
|
--build=%{target} --host=%{target} \
|
|
%ifarch armv7hl ppc ppc64 ppc64le %{ix86} x86_64 sparc sparc64 s390 s390x
|
|
--enable-multi-arch \
|
|
%endif
|
|
%ifarch mipsel
|
|
--without-fp \
|
|
%endif
|
|
%ifarch ppc64p7
|
|
--with-cpu=power7 \
|
|
%endif
|
|
--enable-kernel=%{enablekernel} \
|
|
--with-bugurl=http://bugs.opensuse.org \
|
|
--enable-bind-now --enable-obsolete-rpc
|
|
# Should we enable --enable-systemtap?
|
|
# Should we enable --enable-nss-crypt to build use freebl3 hash functions?
|
|
# explicitly set CFLAGS to use the full CFLAGS (not the reduced one for configure)
|
|
make %{?_smp_mflags} CFLAGS="$cflags" BUILD_CFLAGS="$cflags"
|
|
cd ..
|
|
}
|
|
|
|
%if !%{optimize_power}
|
|
#
|
|
# Build base glibc
|
|
#
|
|
configure_and_build_glibc base "$BuildFlags" "$add_ons"
|
|
%else
|
|
#
|
|
# Build POWER-optimized glibc
|
|
#
|
|
# First, base build:
|
|
pBuildFlags="$BuildFlags -mtune=%{powerpc_optimize_tune}"
|
|
%if "%{powerpc_optimize_base}" != ""
|
|
pBuildFlags+=" -mcpu=%{powerpc_optimize_base}"
|
|
%endif
|
|
%if "%{powerpc_optimize_base}" != ""
|
|
configure_and_build_glibc base "$pBuildFlags" "$add_ons" --with-cpu=%{powerpc_optimize_base}
|
|
%else
|
|
# Use no default CPU
|
|
configure_and_build_glibc base "$pBuildFlags" "$add_ons"
|
|
%endif
|
|
# Then other power variants:
|
|
for pcpu in \
|
|
%if %{powerpc_optimize_cpu_power4}
|
|
power4 \
|
|
%endif
|
|
%if %{powerpc_optimize_cpu_power6}
|
|
power6 \
|
|
%endif
|
|
%if %{powerpc_optimize_cpu_power7}
|
|
power7 \
|
|
%endif
|
|
; do
|
|
configure_and_build_glibc $pcpu "$BuildFlags -mcpu=$pcpu" "$add_ons" \
|
|
--with-cpu=$pcpu
|
|
done
|
|
# Eventually, special Cell variant:
|
|
%if %{powerpc_optimize_cpu_cell}
|
|
configure_and_build_glibc ppc-cell-be "$BuildFlags -mcpu=cell" "$add_ons"
|
|
%endif
|
|
%endif # optimize_power
|
|
|
|
#
|
|
# Build html documentation
|
|
#
|
|
%if %{build_html}
|
|
make -C cc-base html
|
|
%endif
|
|
|
|
#
|
|
# Build glibc_post_upgrade binary
|
|
#
|
|
$BuildCC -static %{optflags} -Os $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glibc_post_upgrade \
|
|
-Lcc-base -Bcc-base/csu \
|
|
'-DREMOVE_TLS_DIRS' '-DREMOVE_PPC_OPTIMIZE_POWER5' \
|
|
%ifarch ppc ppc64
|
|
%if !%{powerpc_optimize_cpu_power4}
|
|
'-DREMOVE_PPC_OPTIMIZE_POWER4' \
|
|
%endif
|
|
%if !%{powerpc_optimize_cpu_power6}
|
|
'-DREMOVE_PPC_OPTIMIZE_POWER6' \
|
|
%endif
|
|
%if !%{powerpc_optimize_cpu_power7}
|
|
'-DREMOVE_PPC_OPTIMIZE_POWER7' \
|
|
%endif
|
|
%if !%{powerpc_optimize_cpu_cell}
|
|
'-DREMOVE_PPC_OPTIMIZE_CELL' \
|
|
%endif
|
|
%endif
|
|
'-DLIBDIR="/%{_lib}"' '-DGCONV_MODULES_DIR="%{_libdir}/gconv"'
|
|
|
|
# crypt_blowfish man pages
|
|
pushd crypt_blowfish-%{crypt_bf_version}
|
|
make man
|
|
popd
|
|
|
|
#######################################################################
|
|
###
|
|
### CHECK
|
|
###
|
|
#######################################################################
|
|
|
|
%check
|
|
%if %{testsuite_build}
|
|
# The testsuite will fail if asneeded is used
|
|
export SUSE_ASNEEDED=0
|
|
# Increase timeout
|
|
export TIMEOUTFACTOR=16
|
|
make -C cc-base -k check ||
|
|
find cc-base -name "*.out" | tar -czf - -T - | base64
|
|
%else
|
|
# This has to pass on all platforms!
|
|
# Exceptions:
|
|
# None!
|
|
make %{?_smp_mflags} -C cc-base check-abi
|
|
%endif
|
|
|
|
#######################################################################
|
|
###
|
|
### INSTALL
|
|
###
|
|
#######################################################################
|
|
|
|
%install
|
|
%if %{normal_build}
|
|
# We don't want to strip the .symtab from our libraries in find-debuginfo.sh,
|
|
# certainly not from libpthread.so.* because it is used by libthread_db to find
|
|
# some non-exported symbols in order to detect if threading support
|
|
# should be enabled. These symbols are _not_ exported, and we can't easily
|
|
# export them retroactively without changing the ABI. So we have to
|
|
# continue to "export" them via .symtab, instead of .dynsym :-(
|
|
# But we also want to keep .symtab and .strtab of other libraries since some
|
|
# debugging tools currently require these sections directly inside the main
|
|
# files - specifically valgrind and PurifyPlus.
|
|
export STRIP_KEEP_SYMTAB=*.so*
|
|
|
|
# Make sure we will create the gconv-modules.cache
|
|
mkdir -p %{buildroot}%{_libdir}/gconv
|
|
touch %{buildroot}%{_libdir}/gconv/gconv-modules.cache
|
|
|
|
# Install base glibc
|
|
make %{?_smp_mflags} install_root=%{buildroot} install -C cc-base
|
|
|
|
install_optimized_variant() {
|
|
local dirname="$1"; shift
|
|
local subdir="$1"; shift
|
|
local subdir_up="$1"; shift
|
|
|
|
cd "cc-$dirname"
|
|
destdir=$RPM_BUILD_ROOT/%{_lib}/$subdir
|
|
mkdir -p $destdir
|
|
# Don't run a complete make install, we know which libraries
|
|
# we want
|
|
for lib in libc math/libm nptl/libpthread rt/librt nptl_db/libthread_db
|
|
do
|
|
libbase=${lib#*/}
|
|
libbaseso=$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}-*.so)
|
|
# Only install if different from base lib
|
|
if cmp -s ${lib}.so ../cc-base/${lib}.so; then
|
|
ln -sf $subdir_up/$libbaseso $destdir/$libbaseso
|
|
else
|
|
cp -a ${lib}.so $destdir/$libbaseso
|
|
fi
|
|
# Emulate ldconfig
|
|
ln -sf $libbaseso $destdir/$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}.so.*)
|
|
done
|
|
cd ..
|
|
}
|
|
|
|
# Install power-optimized glibc
|
|
%if %{optimize_power}
|
|
%if %{powerpc_optimize_cpu_power4}
|
|
install_optimized_variant power4 power4 ".."
|
|
%endif
|
|
%if %{powerpc_optimize_cpu_power6}
|
|
install_optimized_variant power6 power6 ".."
|
|
%endif
|
|
%if %{powerpc_optimize_cpu_power7}
|
|
install_optimized_variant power7 power7 ".."
|
|
%endif
|
|
%if %{powerpc_optimize_cpu_cell}
|
|
install_optimized_variant ppc-cell-be ppc-cell-be ".."
|
|
%endif
|
|
%if %{powerpc_optimize_cpu_power6}
|
|
# power6 is compatible with power6x
|
|
# doing a directory symlink doesnt work, ldconfig follows them and accepts only the first real dir
|
|
if test -d %{buildroot}/%{_lib}/power6; then
|
|
mkdir -p %{buildroot}/%{_lib}/power6x
|
|
for i in %{buildroot}/%{_lib}/power6/*.so; do
|
|
b=`basename $i`
|
|
ln -vs ../power6/$b %{buildroot}/%{_lib}/power6x/$b
|
|
libbase=${b%.so}
|
|
libbaseso=$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}-*.so)
|
|
# Emulate ldconfig
|
|
ln -sf $libbaseso %{buildroot}/%{_lib}/power6x/$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}.so.*)
|
|
done
|
|
fi
|
|
%endif
|
|
%endif # optimize_power
|
|
|
|
# Install locales
|
|
%if %{build_locales}
|
|
# XXX Do not install locales in parallel!
|
|
cd cc-base
|
|
# localedef creates hardlinks to other locales if possible
|
|
# this will not work if we generate them in parallel.
|
|
# thus we need to run fdupes on /usr/lib/locale/
|
|
# Still, on my system this is a speed advantage:
|
|
# non-parallel build for install-locales: 9:34mins
|
|
# parallel build with fdupes: 7:08mins
|
|
make %{?_smp_mflags} install_root=%{buildroot} localedata/install-locales
|
|
%fdupes %{buildroot}/usr/lib/locale
|
|
cd ..
|
|
%endif
|
|
# Create file list for glibc-locale package
|
|
%{find_lang} libc
|
|
|
|
# Prepare obsolete/, used only on some architectures:
|
|
export RPM_BUILD_ROOT
|
|
%ifarch %ix86
|
|
mkdir -p %{buildroot}/%{_lib}/obsolete
|
|
%endif
|
|
|
|
# NPTL <bits/stdio-lock.h> is not usable outside of glibc, so include
|
|
# the generic one (RH#162634)
|
|
cp -av bits/stdio-lock.h %{buildroot}%{_includedir}/bits/stdio-lock.h
|
|
|
|
# Miscelanna:
|
|
|
|
install -m 0700 glibc_post_upgrade %{buildroot}%{_sbindir}
|
|
|
|
install -m 644 %{SOURCE7} %{buildroot}/etc
|
|
install -m 644 %{SOURCE5} %{buildroot}/etc
|
|
install -m 644 posix/gai.conf %{buildroot}/etc
|
|
|
|
mkdir -p %{buildroot}/etc/default
|
|
install -m 644 nis/nss %{buildroot}/etc/default/
|
|
|
|
mkdir -p %{buildroot}%{_includedir}/resolv
|
|
install -m 0644 resolv/mapv4v6addr.h %{buildroot}%{_includedir}/resolv/
|
|
install -m 0644 resolv/mapv4v6hostent.h %{buildroot}%{_includedir}/resolv/
|
|
|
|
%if %{build_html}
|
|
mkdir -p %{buildroot}%{_datadir}/doc/glibc
|
|
cp -p cc-base/manual/libc/*.html %{buildroot}%{_datadir}/doc/glibc
|
|
%endif
|
|
|
|
cd manpages; make install_root=%{buildroot} install; cd ..
|
|
|
|
# crypt_blowfish man pages
|
|
pushd crypt_blowfish-%{crypt_bf_version}
|
|
install -m755 -d %{buildroot}%{_mandir}/man3
|
|
install -m644 *.3 %{buildroot}%{_mandir}/man3
|
|
popd
|
|
|
|
# nscd tools:
|
|
|
|
cp nscd/nscd.conf %{buildroot}/etc
|
|
mkdir -p %{buildroot}/etc/init.d
|
|
ln -sf /sbin/service %{buildroot}/usr/sbin/rcnscd
|
|
mkdir -p %{buildroot}/var/run/nscd
|
|
touch %{buildroot}/var/run/nscd/{passwd,group,hosts}
|
|
touch %{buildroot}/var/run/nscd/{socket,nscd.pid}
|
|
|
|
#
|
|
# Create ld.so.conf
|
|
#
|
|
cat > %{buildroot}/etc/ld.so.conf <<EOF
|
|
%ifarch s390x sparc64 x86_64 ppc64 ppc
|
|
/usr/local/lib64
|
|
%endif
|
|
/usr/local/lib
|
|
include /etc/ld.so.conf.d/*.conf
|
|
# /lib64, /lib, /usr/lib64 and /usr/lib gets added
|
|
# automatically by ldconfig after parsing this file.
|
|
# So, they do not need to be listed.
|
|
EOF
|
|
# Add ldconfig cache directory for directory ownership
|
|
mkdir -p %{buildroot}/var/cache/ldconfig
|
|
# Empty the ld.so.cache:
|
|
rm -f %{buildroot}/etc/ld.so.cache
|
|
touch %{buildroot}/etc/ld.so.cache
|
|
|
|
# libNoVersion belongs only to glibc-obsolete:
|
|
%ifarch %ix86
|
|
rm -f %{buildroot}%{_libdir}/libNoVersion*
|
|
mkdir -p %{buildroot}/%{_lib}/obsolete/noversion
|
|
mv -v %{buildroot}/%{_lib}/libNoVersion* %{buildroot}/%{_lib}/obsolete/noversion/
|
|
%endif
|
|
|
|
# Don't look at ldd! We don't wish a /bin/sh requires
|
|
chmod 644 %{buildroot}%{_bindir}/ldd
|
|
|
|
# Remove timezone data, now coming in standalone package:
|
|
for i in sbin/sln usr/bin/tzselect usr/sbin/zic usr/sbin/zdump etc/localtime; do
|
|
rm -f %{buildroot}/$i
|
|
done
|
|
rm -rf %{buildroot}%{_datadir}/zoneinfo
|
|
|
|
# Remove the buildflags tracking section and the build-id
|
|
for o in %{buildroot}/%{_libdir}/crt[1in].o %{buildroot}/%{_libdir}/lib*_nonshared.a; do
|
|
objcopy -R ".comment.SUSE.OPTs" -R ".note.gnu.build-id" $o
|
|
done
|
|
|
|
mkdir -p %{buildroot}/usr/lib/tmpfiles.d/
|
|
install -m 644 %{SOURCE20} %{buildroot}/usr/lib/tmpfiles.d/
|
|
mkdir -p %{buildroot}/usr/lib/systemd/system
|
|
install -m 644 %{SOURCE21} %{buildroot}/usr/lib/systemd/system
|
|
|
|
%ifarch armv6hl armv7hl
|
|
# Provide compatibility link
|
|
ln -s ld-%{glibc_major_version}.so %{buildroot}/lib/ld-linux.so.3
|
|
%endif
|
|
|
|
# Move getconf to %{_libexecdir}/getconf/ to avoid cross device link
|
|
mv %{buildroot}%{_bindir}/getconf %{buildroot}%{_libexecdir}/getconf/getconf
|
|
ln -s %{_libexecdir}/getconf/getconf %{buildroot}%{_bindir}/getconf
|
|
|
|
# Remove unwanted files (packaged in glibc-utils)
|
|
rm -f %{buildroot}/%{_lib}/libmemusage*
|
|
rm -f %{buildroot}/%{_lib}/libpcprofile*
|
|
rm -f %{buildroot}%{_bindir}/memusage*
|
|
rm -f %{buildroot}%{_bindir}/mtrace
|
|
rm -f %{buildroot}%{_bindir}/pcprofiledump
|
|
rm -f %{buildroot}%{_bindir}/sotruss
|
|
rm -f %{buildroot}%{_bindir}/xtrace
|
|
rm -f %{buildroot}%{_bindir}/pldd
|
|
rm -f %{buildroot}%{_mandir}/man1/mtrace.*
|
|
rm -rf %{buildroot}%{_libdir}/audit
|
|
|
|
%endif # %{normal_build}
|
|
|
|
%if %{utils_build}
|
|
|
|
make %{?_smp_mflags} install_root=%{buildroot} install -C cc-base \
|
|
subdirs='malloc debug elf'
|
|
cd manpages; make install_root=%{buildroot} install; cd ..
|
|
# Remove unwanted files
|
|
rm -f %{buildroot}/%{_lib}/ld*.so* %{buildroot}/%{_lib}/lib[!mp]*
|
|
rm -f %{buildroot}/lib/ld*.so*
|
|
rm -f %{buildroot}%{_libdir}/lib*
|
|
rm -f %{buildroot}%{_bindir}/{catchsegv,ldd*,sprof}
|
|
rm -f %{buildroot}%{_mandir}/man1/[!m]*
|
|
rm -rf %{buildroot}%{_mandir}/man[!1]
|
|
rm -rf %{buildroot}/sbin %{buildroot}%{_includedir}
|
|
|
|
%endif # %{utils_build}
|
|
|
|
#######################################################################
|
|
###
|
|
### ...
|
|
###
|
|
#######################################################################
|
|
|
|
%if %{normal_build}
|
|
%post -p %{_sbindir}/glibc_post_upgrade
|
|
|
|
%postun -p /sbin/ldconfig
|
|
|
|
%endif # %{normal_build}
|
|
|
|
%post locale
|
|
for l in /usr/share/locale/locale.alias %{_libdir}/gconv/gconv-modules; do
|
|
[ -d "$l.d" ] || continue
|
|
echo "###X# The following is autogenerated from extra files in the .d directory:" >>"$l"
|
|
cat "$l.d"/* >>"$l"
|
|
done
|
|
/usr/sbin/iconvconfig
|
|
|
|
%post info
|
|
%install_info --info-dir=%{_infodir} %{_infodir}/libc.info.gz
|
|
|
|
%postun info
|
|
%install_info_delete --info-dir=%{_infodir} %{_infodir}/libc.info.gz
|
|
|
|
%pre -n nscd
|
|
getent group nscd >/dev/null || %{_sbindir}/groupadd -r nscd
|
|
getent passwd nscd >/dev/null || %{_sbindir}/useradd -r -g nscd -c "User for nscd" -s /sbin/nologin -d /var/run/nscd nscd
|
|
%service_add_pre nscd.service
|
|
|
|
%preun -n nscd
|
|
%service_del_preun nscd.service
|
|
|
|
%post -n nscd
|
|
%service_add_post nscd.service
|
|
mkdir -p /var/run/nscd
|
|
# Previously we had nscd.socket, remove it
|
|
test -x /usr/bin/systemctl && /usr/bin/systemctl stop nscd.socket 2>/dev/null || :
|
|
test -x /usr/bin/systemctl && /usr/bin/systemctl disable nscd.socket 2>/dev/null || :
|
|
# Hard removal in case the above did not work
|
|
rm -f /etc/systemd/system/sockets.target.wants/nscd.socket
|
|
exit 0
|
|
|
|
%postun -n nscd
|
|
%service_del_postun nscd.service
|
|
exit 0
|
|
|
|
%if %{normal_build}
|
|
%files
|
|
#######################################################################
|
|
###
|
|
### FILES
|
|
###
|
|
#######################################################################
|
|
|
|
# glibc
|
|
%defattr(-,root,root)
|
|
%doc LICENSES
|
|
%config(noreplace) /etc/bindresvport.blacklist
|
|
%config /etc/ld.so.conf
|
|
%attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /etc/ld.so.cache
|
|
%config(noreplace) /etc/rpc
|
|
%verify(not md5 size mtime) %config(noreplace) /etc/nsswitch.conf
|
|
%verify(not md5 size mtime) %config(noreplace) /etc/gai.conf
|
|
%config(noreplace) /etc/default/nss
|
|
%doc %{_mandir}/man1/gencat.1.gz
|
|
%doc %{_mandir}/man1/getconf.1.gz
|
|
%doc %{_mandir}/man1/locale.1.gz
|
|
%doc %{_mandir}/man1/localedef.1.gz
|
|
%doc %{_mandir}/man5/*
|
|
%doc %{_mandir}/man8/iconvconfig.8.gz
|
|
/%{_lib}/ld-%{glibc_major_version}.so
|
|
|
|
# Each architecture has a different name for the dynamic linker:
|
|
%ifarch %arm
|
|
%ifarch armv6hl armv7hl
|
|
/%{_lib}/ld-linux-armhf.so.3
|
|
# Keep compatibility link
|
|
/%{_lib}/ld-linux.so.3
|
|
%else
|
|
/%{_lib}/ld-linux.so.3
|
|
%endif
|
|
%endif
|
|
%ifarch ia64
|
|
/%{_lib}/ld-linux-ia64.so.2
|
|
%endif
|
|
%ifarch ppc s390 mips hppa m68k
|
|
/%{_lib}/ld.so.1
|
|
%endif
|
|
%ifarch ppc64
|
|
/%{_lib}/ld64.so.1
|
|
%endif
|
|
%ifarch ppc64le
|
|
/%{_lib}/ld64.so.2
|
|
%endif
|
|
%ifarch s390x
|
|
/lib/ld64.so.1
|
|
/%{_lib}/ld64.so.1
|
|
%endif
|
|
%ifarch x86_64
|
|
/%{_lib}/ld-linux-x86-64.so.2
|
|
%endif
|
|
%ifarch %ix86 %sparc
|
|
/%{_lib}/ld-linux.so.2
|
|
%endif
|
|
%ifarch aarch64
|
|
/lib/ld-linux-aarch64.so.1
|
|
/%{_lib}/ld-linux-aarch64.so.1
|
|
%endif
|
|
|
|
/%{_lib}/libBrokenLocale-%{glibc_major_version}.so
|
|
/%{_lib}/libBrokenLocale.so.1
|
|
/%{_lib}/libSegFault.so
|
|
/%{_lib}/libanl-%{glibc_major_version}.so
|
|
/%{_lib}/libanl.so.1
|
|
/%{_lib}/libc-%{glibc_major_version}.so
|
|
/%{_lib}/libc.so.6*
|
|
/%{_lib}/libcidn-%{glibc_major_version}.so
|
|
/%{_lib}/libcidn.so.1
|
|
/%{_lib}/libcrypt-%{glibc_major_version}.so
|
|
/%{_lib}/libcrypt.so.1
|
|
/%{_lib}/libowcrypt-%{glibc_major_version}.so
|
|
/%{_lib}/libowcrypt.so.1
|
|
/%{_lib}/libdl-%{glibc_major_version}.so
|
|
/%{_lib}/libdl.so.2*
|
|
/%{_lib}/libm-%{glibc_major_version}.so
|
|
/%{_lib}/libm.so.6*
|
|
/%{_lib}/libnsl-%{glibc_major_version}.so
|
|
/%{_lib}/libnsl.so.1
|
|
/%{_lib}/libnss_compat-%{glibc_major_version}.so
|
|
/%{_lib}/libnss_compat.so.2
|
|
/%{_lib}/libnss_db-%{glibc_major_version}.so
|
|
/%{_lib}/libnss_db.so.2
|
|
/%{_lib}/libnss_dns-%{glibc_major_version}.so
|
|
/%{_lib}/libnss_dns.so.2
|
|
/%{_lib}/libnss_files-%{glibc_major_version}.so
|
|
/%{_lib}/libnss_files.so.2
|
|
/%{_lib}/libnss_hesiod-%{glibc_major_version}.so
|
|
/%{_lib}/libnss_hesiod.so.2
|
|
/%{_lib}/libnss_nis-%{glibc_major_version}.so
|
|
/%{_lib}/libnss_nis.so.2
|
|
/%{_lib}/libnss_nisplus-%{glibc_major_version}.so
|
|
/%{_lib}/libnss_nisplus.so.2
|
|
/%{_lib}/libpthread-%{glibc_major_version}.so
|
|
/%{_lib}/libpthread.so.0
|
|
/%{_lib}/libresolv-%{glibc_major_version}.so
|
|
/%{_lib}/libresolv.so.2
|
|
/%{_lib}/librt-%{glibc_major_version}.so
|
|
/%{_lib}/librt.so.1
|
|
/%{_lib}/libthread_db-1.0.so
|
|
/%{_lib}/libthread_db.so.1
|
|
/%{_lib}/libutil-%{glibc_major_version}.so
|
|
/%{_lib}/libutil.so.1
|
|
%define optimized_libs() \
|
|
%dir %attr(0755,root,root) /%{_lib}/%1\
|
|
/%{_lib}/%1/libc-%{glibc_major_version}.so\
|
|
/%{_lib}/%1/libc.so.6*\
|
|
/%{_lib}/%1/libm-%{glibc_major_version}.so\
|
|
/%{_lib}/%1/libm.so.6*\
|
|
/%{_lib}/%1/libpthread-%{glibc_major_version}.so\
|
|
/%{_lib}/%1/libpthread.so.0\
|
|
/%{_lib}/%1/librt-%{glibc_major_version}.so\
|
|
/%{_lib}/%1/librt.so.1\
|
|
/%{_lib}/%1/libthread_db-1.0.so\
|
|
/%{_lib}/%1/libthread_db.so.1
|
|
|
|
%if %{optimize_power}
|
|
%if %{powerpc_optimize_cpu_power4}
|
|
%{optimized_libs power4}
|
|
%endif
|
|
%if %{powerpc_optimize_cpu_power6}
|
|
%{optimized_libs power6}
|
|
%{optimized_libs power6x}
|
|
%endif
|
|
%if %{powerpc_optimize_cpu_power7}
|
|
%{optimized_libs power7}
|
|
%endif
|
|
%if %{powerpc_optimize_cpu_cell}
|
|
%{optimized_libs ppc-cell-be}
|
|
%endif
|
|
%endif # optimize_power
|
|
%dir %attr(0700,root,root) /var/cache/ldconfig
|
|
/sbin/ldconfig
|
|
%{_bindir}/gencat
|
|
%{_bindir}/getconf
|
|
%{_bindir}/getent
|
|
%{_bindir}/iconv
|
|
%attr(755,root,root) %{_bindir}/ldd
|
|
%ifarch %ix86 sparc sparcv9 m68k
|
|
%{_bindir}/lddlibc4
|
|
%endif
|
|
%{_bindir}/locale
|
|
%{_bindir}/localedef
|
|
%dir %attr(0755,root,root) %{_libexecdir}/getconf
|
|
%{_libexecdir}/getconf/*
|
|
%{_sbindir}/glibc_post_upgrade
|
|
%{_sbindir}/iconvconfig
|
|
|
|
%ifarch %ix86
|
|
|
|
%files obsolete
|
|
%defattr (755,root,root,755)
|
|
%dir /%{_lib}/obsolete/
|
|
%dir /%{_lib}/obsolete/noversion
|
|
/%{_lib}/obsolete/noversion/libNoVersion-%{glibc_major_version}.so
|
|
/%{_lib}/obsolete/noversion/libNoVersion.so.1
|
|
%endif
|
|
|
|
%files locale -f libc.lang
|
|
%defattr(-,root,root)
|
|
%{_datadir}/locale/locale.alias
|
|
%if %{build_locales}
|
|
/usr/lib/locale
|
|
%endif
|
|
%{_libdir}/gconv
|
|
|
|
%files devel
|
|
%defattr(-,root,root)
|
|
%doc COPYING COPYING.LIB NEWS README BUGS CONFORMANCE
|
|
%doc %{_mandir}/man1/catchsegv.1.gz
|
|
%doc %{_mandir}/man1/rpcgen.1.gz
|
|
%doc %{_mandir}/man1/sprof.1.gz
|
|
%doc %{_mandir}/man3/*
|
|
%{_bindir}/catchsegv
|
|
%{_bindir}/rpcgen
|
|
%{_bindir}/sprof
|
|
%{_includedir}/*
|
|
%{_libdir}/*.o
|
|
%{_libdir}/*.so
|
|
# These static libraries are needed even for shared builds
|
|
%{_libdir}/libc_nonshared.a
|
|
%{_libdir}/libg.a
|
|
%{_libdir}/libieee.a
|
|
%ifarch ppc ppc64 ppc64le s390 s390x sparc sparcv8 sparcv9 sparcv9v
|
|
# This is not built on sparc64.
|
|
%{_libdir}/libnldbl_nonshared.a
|
|
%endif
|
|
%{_libdir}/libmcheck.a
|
|
%{_libdir}/libpthread_nonshared.a
|
|
%{_libdir}/librpcsvc.a
|
|
|
|
%files devel-static
|
|
%defattr(-,root,root)
|
|
%{_libdir}/libBrokenLocale.a
|
|
%{_libdir}/libanl.a
|
|
%{_libdir}/libc.a
|
|
%{_libdir}/libcrypt.a
|
|
%{_libdir}/libowcrypt.a
|
|
%{_libdir}/libdl.a
|
|
%{_libdir}/libm.a
|
|
%{_libdir}/libnsl.a
|
|
%{_libdir}/libpthread.a
|
|
%{_libdir}/libresolv.a
|
|
%{_libdir}/librt.a
|
|
%{_libdir}/libutil.a
|
|
|
|
%files info
|
|
%defattr(-,root,root)
|
|
%doc %{_infodir}/libc.info.gz
|
|
%doc %{_infodir}/libc.info-?.gz
|
|
%doc %{_infodir}/libc.info-??.gz
|
|
|
|
%if %{build_html}
|
|
%files html
|
|
%defattr(-,root,root)
|
|
%doc %{_prefix}/share/doc/glibc
|
|
%endif
|
|
|
|
%files i18ndata
|
|
%defattr(-,root,root)
|
|
%{_prefix}/share/i18n
|
|
|
|
%files -n nscd
|
|
%defattr(-,root,root)
|
|
%config(noreplace) /etc/nscd.conf
|
|
%{_sbindir}/nscd
|
|
%{_sbindir}/rcnscd
|
|
/usr/lib/systemd/system/nscd.service
|
|
%dir /usr/lib/tmpfiles.d
|
|
/usr/lib/tmpfiles.d/nscd.conf
|
|
%dir %attr(0755,root,root) %ghost /var/run/nscd
|
|
%attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/nscd.pid
|
|
%attr(0666,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/socket
|
|
%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/passwd
|
|
%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/group
|
|
%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/hosts
|
|
|
|
%if %{build_profile}
|
|
%files profile
|
|
%defattr(-,root,root)
|
|
%{_libdir}/libc_p.a
|
|
%{_libdir}/libBrokenLocale_p.a
|
|
%{_libdir}/libanl_p.a
|
|
%{_libdir}/libm_p.a
|
|
%{_libdir}/libcrypt_p.a
|
|
%{_libdir}/libowcrypt_p.a
|
|
%{_libdir}/libpthread_p.a
|
|
%{_libdir}/libresolv_p.a
|
|
%{_libdir}/libnsl_p.a
|
|
%{_libdir}/librt_p.a
|
|
%{_libdir}/librpcsvc_p.a
|
|
%{_libdir}/libutil_p.a
|
|
%{_libdir}/libdl_p.a
|
|
%endif
|
|
|
|
%files extra
|
|
%defattr(-,root,root)
|
|
%{_bindir}/makedb
|
|
/var/lib/misc/Makefile
|
|
|
|
%endif # %{normal_build}
|
|
|
|
%if %{utils_build}
|
|
%files
|
|
%defattr(-,root,root)
|
|
/%{_lib}/libmemusage.so
|
|
/%{_lib}/libpcprofile.so
|
|
%dir %{_libdir}/audit
|
|
%{_libdir}/audit/sotruss-lib.so
|
|
%{_bindir}/memusage
|
|
%{_bindir}/memusagestat
|
|
%{_bindir}/mtrace
|
|
%{_bindir}/pcprofiledump
|
|
%{_bindir}/sotruss
|
|
%{_bindir}/xtrace
|
|
%{_bindir}/pldd
|
|
%doc %{_mandir}/man1/mtrace.1.gz
|
|
%endif # %{utils_build}
|
|
|
|
%changelog
|