/[packages]/updates/3/glibc/current/SPECS/glibc.spec
ViewVC logotype

Annotation of /updates/3/glibc/current/SPECS/glibc.spec

Parent Directory Parent Directory | Revision Log Revision Log


Revision 173897 - (hide annotations) (download)
Mon Nov 28 20:16:03 2011 UTC (12 years, 4 months ago) by rtp
Original Path: cauldron/glibc/current/SPECS/glibc.spec
File size: 49858 byte(s)
- Fix crypt blowfish build failure on arm

1 tmb 180 # RH 2.2.4-20, SuSE 2.3.1-32
2     %define name %{cross_prefix}glibc
3    
4     # <epoch>:<version>-<release> tags for glibc main package
5 tmb 155894 %define glibcversion 2.14.1
6 dmorgan 157664 %define __glibcrelease 2
7 tmb 180 %define glibcepoch 6
8    
9     # CVS snapshots of glibc
10     %define RELEASE 1
11     %if %{RELEASE}
12     %define source_package glibc-%{glibcversion}
13     %define source_dir glibc-%{glibcversion}
14     %define _glibcrelease %{__glibcrelease}
15 rtp 75373 %define portsversion %{glibcversion}
16 tmb 180 %else
17     %define snapshot 20081113
18     %define source_package glibc-%{glibcversion}-%{snapshot}
19     %define source_dir glibc-%{glibcversion}
20     %define _glibcrelease 0.%{snapshot}.%{__glibcrelease}
21 rtp 75373 %define portsversion 2.9
22 tmb 180 %endif
23    
24     %define glibcrelease %mkrel %{_glibcrelease}
25    
26     # crypt blowfish support
27 tmb 156153 %define crypt_bf_ver 1.2
28 tmb 180
29     # Define "cross" to an architecture to which glibc is to be
30     # cross-compiled
31     %define build_cross 0
32     %{expand: %{?cross: %%global build_cross 1}}
33    
34     %if %{build_cross}
35     %define target_cpu %{cross}
36     %define cross_prefix cross-%{target_cpu}-
37 rtp 75373 %define _prefix /usr/%{target_cpu}-%{_real_vendor}-linux%{gnuext}
38 rtp 76126 %define cross_program_prefix %{target_cpu}-%{_real_vendor}-linux%{gnuext}-
39 rtp 75373 %define _exec_prefix %{_prefix}
40     # brain damage alert: should not be needed imho
41     # overriding _prefix and _exec_prefix should be enough
42     %define _bindir %{_exec_prefix}/bin
43     %define _sbindir %{_exec_prefix}/sbin
44     %define _libexecdir %{_exec_prefix}/libexec
45     %define _datadir %{_prefix}/share
46     %define _sharedstatedir %{_prefix}/com
47     %define _localstatedir %{_prefix}/var
48 tmb 180 %define _lib lib
49 rtp 75373 %define _libdir %{_exec_prefix}/%{_lib}
50     %define _slibdir %{_exec_prefix}/%{_lib}
51     %define _slibdir32 %{_exec_prefix}/lib
52     %define _includedir %{_prefix}/include
53 tmb 180 %else
54 rtp 75373 %define gnuext %{_gnu}
55 tmb 180 %define target_cpu %{_target_cpu}
56     %define cross_prefix %{nil}
57 rtp 75373 %define cross_program_prefix %{nil}
58 tmb 180 %define _slibdir /%{_lib}
59     %define _slibdir32 /lib
60     %endif
61    
62     # Define target (base) architecture
63 tmb 155984 %define arch %(echo %{target_cpu}|sed -e "s/\\(i.86\\|athlon\\)/i386/" -e "s/amd64/x86_64/")
64 tmb 180 %define isarch() %(case " %* " in (*" %{arch} "*) echo 1;; (*) echo 0;; esac)
65    
66 rtp 76126 %if %{build_cross}
67     %if %isarch %arm
68     %define gnuext -gnueabi
69     %else
70     %define gnuext -gnu
71     %endif
72     %endif
73    
74 tmb 180 # Define Xen arches to build with -mno-tls-direct-direct-seg-refs
75     %define xenarches %{ix86} x86_64
76    
77 rtp 75373 # arches which requires glibc-port
78     %define ports_arch %arm %mips
79    
80 tmb 180 # Define to build nscd with selinux support
81     %define build_selinux 0
82    
83     # Flag for build_pdf_doc:
84     # 1 build glibc with PDF documentation
85     # 0 don't build PDF glibc documentation (e.g. for bootstrap build)
86     %define build_pdf_doc 1
87    
88     # Enable checking by default for arches where we know tests all pass
89     %define build_check 1
90    
91     # Allow make check to fail only when running kernels where we know
92     # tests must pass (no missing features or bugs in the kernel)
93 tmb 156055 %define check_min_kver 2.6.33
94 tmb 180
95     # Define to build a biarch package
96     %define build_biarch 0
97 tmb 155984 %if %isarch x86_64 mips64 mips64el
98 tmb 180 %define build_biarch 1
99     %endif
100    
101     # Define to build glibc-debug package
102     %define build_debug 1
103     %define _enable_debug_packages 1
104     %if "%{_enable_debug_packages}" == "1"
105     %define build_debug 0
106     %endif
107    
108     # Define to bootstrap new glibc
109     %define build_bootstrap 0
110     %{expand: %{!?build_cross_bootstrap: %global build_cross_bootstrap 0}}
111    
112     %define build_profile 1
113     %define build_nscd 1
114     %define build_doc 1
115     %define build_utils 1
116     %define build_i18ndata 1
117     %define build_timezone 0
118    
119     # Disable a few defaults when cross-compiling a glibc
120     %if %{build_cross}
121     %define build_doc 0
122     %define build_pdf_doc 0
123     %define build_biarch 0
124     %define build_check 0
125     %define build_debug 0
126     %define build_nscd 0
127     %define build_profile 0
128     %define build_utils 0
129     %define build_i18ndata 0
130     %define build_timezone 0
131     %endif
132    
133     # Allow --with[out] <feature> at rpm command line build
134     %{expand: %{?_without_PDF: %%global build_pdf_doc 0}}
135     %{expand: %{?_without_CHECK: %%global build_check 0}}
136     %{expand: %{?_without_UTILS: %%global build_utils 0}}
137     %{expand: %{?_without_BOOTSTRAP:%%global build_bootstrap 0}}
138     %{expand: %{?_with_PDF: %%global build_pdf_doc 1}}
139     %{expand: %{?_with_CHECK: %%global build_check 1}}
140     %{expand: %{?_with_UTILS: %%global build_utils 1}}
141     %{expand: %{?_with_BOOTSTRAP: %%global build_bootstrap 1}}
142    
143     Summary: The GNU libc libraries
144     Name: %{name}
145     Version: %{glibcversion}
146     Release: %{glibcrelease}
147     Epoch: %{glibcepoch}
148     License: LGPL
149     Group: System/Libraries
150     Url: http://www.gnu.org/software/libc/
151    
152     # FSF source
153     Source0: http://ftp.gnu.org/gnu/glibc/%{source_package}.tar.xz
154     %if %{RELEASE}
155     Source1: http://ftp.gnu.org/gnu/glibc/%{source_package}.tar.xz.sig
156     %endif
157    
158     # Red Hat tarball
159     Source2: glibc-redhat.tar.bz2
160     Source3: glibc-manpages.tar.bz2
161     Source4: glibc-find-requires.sh
162     Source5: glibc-check.sh
163    
164     # wrapper to avoid rpm circular dependencies
165     Source14: glibc-post-wrapper.c
166    
167     # Blowfish support
168 tmb 156153 Source16: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_ver}.tar.gz
169     Source17: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_ver}.tar.gz.sign
170 tmb 156157 Source18: http://cvsweb.openwall.com/cgi/cvsweb.cgi/~checkout~/Owl/packages/glibc/crypt_freesec.c
171     Source19: http://cvsweb.openwall.com/cgi/cvsweb.cgi/~checkout~/Owl/packages/glibc/crypt_freesec.h
172 tmb 180
173 rtp 75373 # tarball are at http://ftp.gnu.org/gnu/glibc/
174     # for snapshots :
175     # git clone git://sources.redhat.com/git/glibc-ports.git
176     # git archive --format=tar --prefix=glibc-ports-2.9/ HEAD | bzip2 -c > ../glibc-ports-2.9-$(date +%%Y%%m%%d).tar.bz2
177 tmb 155894 Source20: http://ftp.gnu.org/gnu/glibc/glibc-ports-%{portsversion}.tar.xz
178     %if %{RELEASE}
179     Source21: http://ftp.gnu.org/gnu/glibc/glibc-ports-%{portsversion}.tar.xz.sig
180     %endif
181 rtp 75373
182 tmb 180 Buildroot: %{_tmppath}/glibc-%{PACKAGE_VERSION}-root
183     %if %{build_cross}
184     Autoreq: false
185     Autoprov: false
186     %else
187     Provides: glibc-crypt_blowfish = %{crypt_bf_ver}
188     Provides: should-restart = system
189     %if %isarch %{xenarches}
190     Obsoletes: %{name}-xen
191     Provides: %{name}-xen
192     %endif
193     # The dynamic linker supports DT_GNU_HASH
194     Provides: rtld(GNU_HASH)
195     Autoreq: false
196     %endif
197     BuildRequires: patch, gettext, perl
198     BuildRequires: linux-userspace-headers
199     %if %{build_selinux}
200     BuildRequires: libselinux-devel >= 1.17.10
201     %endif
202     # need linker for -Wl,--hash-style=both (>= 2.16.91.0.7-6})
203     # need gnu indirect function for multiarch (>= 2.19.51.0.14-1)
204     %define binutils_version 2.19.51.0.14-1
205     BuildRequires: %{cross_prefix}binutils >= %{binutils_version}
206     # we need the static dash
207     %define ash_bin /bin/dash.static
208     Requires(pre): dash-static
209     Requires(post): dash-static
210     # we need an ldconfig with TLS support
211     %if %{build_cross}
212     BuildRequires: %{cross_prefix}gcc >= 3.2.2-4
213     %endif
214     %ifarch x86_64
215     BuildRequires: %{cross_prefix}gcc >= 3.1.1-0.5
216     %endif
217     BuildRequires: %{cross_prefix}gcc >= 4.0.1-2
218     %if !%{build_cross}
219 tmb 155984 %ifarch mips mipsel
220 tmb 180 Provides: ld.so.1
221     %endif
222     %endif
223    
224     # Old prelink versions brakes the system with glibc 2.11
225     Conflicts: prelink < 1:0.4.2-1.20091104.1
226    
227     BuildRequires: texinfo
228     %if %{build_pdf_doc}
229 tmb 155983 BuildRequires: texlive
230 tmb 180 %endif
231     %if %{build_utils}
232     BuildRequires: gd-devel
233     %endif
234     BuildRequires: autoconf2.5
235     BuildRequires: libcap-devel
236     BuildRequires: rpm-mageia-setup-build >= 1.104
237     BuildRequires: spec-helper >= 0.31.2
238    
239 misc 58181 # make "localedef --add-to-archive" to follow symlink
240     # safe to send ustream, need to be kept for locales
241 tmb 180 Patch00: glibc-2.11.1-localedef-archive-follow-symlinks.patch
242 misc 58181
243     # various path fix, for _PATH_VI and _PATH_VARDB
244 tmb 180 Patch01: glibc-2.12.1-fhs.patch
245     Patch02: glibc-2.9-ldd-non-exec.patch
246 misc 58181 # try to fallback on loading /lib/libnss_*.so.X.Y when the loading
247     # of /lib/libnss_*.so.X failed. Should be dropped, IMHO.
248 tmb 180 Patch04: glibc-2.2-nss-upgrade.patch
249 misc 58181
250     # patch from https://qa.mandriva.com/show_bug.cgi?id=58834
251     # deferred upstream until rfc is changed, no need to push upstream
252 tmb 180 Patch05: glibc-2.12.1-assign-global-scope-to-RFC-1918-addresses.patch
253     Patch06: glibc-2.9-share-locale.patch
254 misc 58181
255     # default nsswitch.conf
256     # should be moved out patch and be a regular Source
257 tmb 180 Patch07: glibc-2.3.6-nsswitch.conf.patch
258 misc 58181
259     # use xvt instead of xterm in xtrace.sh
260     # cannot be pushed upstream as xvt is Ma* specific
261 tmb 180 Patch09: glibc-2.2.4-xterm-xvt.patch
262 misc 58181
263     # add transliteration for "COLON SIGN"
264     # ( used for the money of money of san salvador )
265 tmb 180 Patch11: glibc-2.4.90-compat-EUR-currencies.patch
266     Patch12: glibc-2.3.6-ppc-build-lddlibc4.patch
267 misc 58181
268     # fix the chkconfig header, should be sent upstream
269 tmb 180 Patch13: glibc-2.3.3-nscd-enable.patch
270 misc 58181
271     # disable cache for hosts on nscd, as this is seen as insecure
272     # if the system relie on reverse dns for security
273 tmb 180 Patch14: glibc-2.9-nscd-no-host-cache.patch
274 misc 58181
275 tmb 180 Patch17: glibc-2.4.90-i386-hwcapinfo.patch
276     Patch18: glibc-2.7-provide_CFI_for_the_outermost_function.patch
277 misc 58181
278     # another fix for nscd init script, make it start after network, ldap, mysql and ypbind
279     # should be sent upstream
280 tmb 180 Patch19: glibc-2.8-nscd-init-should-start.patch
281 misc 58181
282     # according to the patch : "The Linux kernel has a bug which silently ignore the invalid
283     # c_cflag on pty.". Patch is likely fixed in kernel, but this should be checked
284 tmb 180 Patch22: glibc-2.3.2-tcsetattr-kernel-bug-workaround.patch
285 misc 58181
286     # add some new timezone for various cities
287     # Halifax, Montreal, Johannesburg
288     # should be sent upstream ( I guess )
289 tmb 180 Patch23: glibc-2.3.4-timezone.patch
290     Patch24: glibc-2.10.1-biarch-cpp-defines.patch
291     Patch26: glibc-2.6-nice_fix.patch
292 misc 58181
293     # fix a typo, safe to send upstream
294 tmb 180 Patch27: glibc-2.8-ENOTTY-fr-translation.patch
295     Patch28: glibc-2.4.90-gcc4-fortify.patch
296     Patch29: glibc-2.3.5-biarch-utils.patch
297 misc 58181
298     # remove multiarch header, Ma* specific patch
299     # check if still needed or if the work was finished
300 tmb 180 Patch30: glibc-2.10.1-multiarch.patch
301     Patch31: glibc-2.4.90-i586-hptiming.patch
302 misc 58181
303     # do not use i686 optimised library if the processor do not support
304     # cmov ( some i686 cpu don't, from VIA iirc )
305     # shuld be sent upstream, IMHO
306 tmb 180 Patch32: glibc-2.3.4-i586-if-no-cmov.patch
307 misc 58181
308     # translation fixes, need to be checked with some i18n team member
309     # should be safe to send upstream once checked
310 tmb 180 Patch33: glibc-2.3.6-pt_BR-i18nfixes.patch
311     Patch34: glibc-2.4.90-testsuite-ldbl-bits.patch
312 misc 58181
313 tmb 155984 # disable parallel testsuite of rt on powerpc with SMT
314 tmb 180 Patch38: glibc-2.4.90-testsuite-rt-notparallel.patch
315     Patch39: glibc-2.10.1-mdv-owl-crypt_freesec.patch
316 tmb 156310 Patch40: glibc-2.14.1-avx-relocate_fcrypt.patch
317     Patch41: glibc-2.14.1-avx-increase_BF_FRAME.patch
318 tmb 180 Patch42: glibc-2.10.1-mdv-avx-owl-crypt.patch
319 misc 58181
320     # add support for sha256 and sha512 in crypt
321     # likely coming from owl
322 tmb 180 Patch43: glibc-2.7-mdv-wrapper_handle_sha.patch
323 misc 58181
324     # check for libcap, even if selinux is disabled
325     # should be sent upstream
326 tmb 155979 Patch44: glibc-2.14.1-dont-tie-libcap-with-selinux.patch
327 tmb 156969
328 rtp 75373 # change page size to 16k. mandatory for loongson
329     # but not necessary a good idea for other socs
330     Patch46: glibc_mips_16k_page_size.patch
331 tmb 156856
332 tmb 156969 # fix segfault in ld-2.14.1.so (glibc bz #12871)
333     Patch48: glibc-2.14.1-fix-segfault-at-dl-lookup.patch
334    
335 dmorgan 157664 Patch49: glibc2.14-revert-sunrpc-removal.patch
336 rtp 173897 Patch50: crypt_blowfish_arm.patch
337 dmorgan 157664
338 tmb 180 # Determine minium kernel versions
339 tmb 156055 %define enablekernel 2.6.33
340 tmb 180 Conflicts: kernel < %{enablekernel}
341    
342     # People changed location of rpm scripts...
343     %define rpmscripts /usr/lib/rpm/%{_real_vendor}
344    
345     # Don't try to explicitly provide GLIBC_PRIVATE versioned libraries
346     %define __find_provides %{_builddir}/%{source_dir}/find_provides.sh
347     %define __find_requires %{_builddir}/%{source_dir}/find_requires.sh
348    
349     %if !%{build_cross}
350     Obsoletes: ld.so
351     Provides: ld.so
352     %endif
353    
354     Obsoletes: ldconfig
355     Provides: ldconfig = %{glibcepoch}:%{glibcversion}-%{glibcrelease} /sbin/ldconfig
356    
357     %description
358     The glibc package contains standard libraries which are used by
359     multiple programs on the system. In order to save disk space and
360     memory, as well as to make upgrading easier, common system code is
361     kept in one place and shared between programs. This particular package
362     contains the most important sets of shared libraries: the standard C
363     library and the standard math library. Without these two libraries, a
364     Linux system will not function. The glibc package also contains
365     national language (locale) support.
366    
367     This package now also provides ldconfig which was package seperately in
368     the past. Ldconfig is a basic system program which determines run-time
369     link bindings between ld.so and shared libraries. Ldconfig scans a running
370     system and sets up the symbolic links that are used to load shared
371     libraries properly. It also creates a cache (/etc/ld.so.cache) which
372     speeds the loading of programs which use shared libraries.
373    
374     %package devel
375     Summary: Header and object files for development using standard C libraries
376     Group: Development/C
377     Requires(post): info-install
378     Requires(preun): info-install
379     Requires(post): coreutils
380     Requires(postun): coreutils, awk
381     Obsoletes: libc-debug, libc-headers, libc-devel, linuxthreads-devel, nptl-devel
382     %if !%{build_debug}
383     Obsoletes: %{name}-debug < 6:2.3.2-15
384     %endif
385     Requires: %{name} = %{glibcepoch}:%{glibcversion}-%{glibcrelease}
386     %if !%{build_cross}
387     Requires: linux-userspace-headers
388     %endif
389     %if !%isarch ppc
390     Conflicts: %{cross_prefix}gcc < 2.96-0.50
391     %endif
392     # needs a gcc4 fortify capable compiler
393     Conflicts: gcc4.0 < 4.0.1-2
394     %if %{build_cross}
395     Autoreq: false
396     Autoprov: false
397     %else
398     Autoreq: true
399     %endif
400     Provides: glibc-crypt_blowfish-devel = %{crypt_bf_ver}
401    
402     %description devel
403     The glibc-devel package contains the header and object files necessary
404     for developing programs which use the standard C libraries (which are
405     used by nearly all programs). If you are developing programs which
406     will use the standard C libraries, your system needs to have these
407     standard header and object files available in order to create the
408     executables.
409    
410     This package also includes the C header files for the Linux kernel.
411     The header files define structures and constants that are needed for
412     building most standard programs. The header files are also needed for
413     rebuilding the kernel.
414    
415     Install glibc-devel if you are going to develop programs which will
416     use the standard C libraries.
417    
418     %package static-devel
419     Summary: Static libraries for GNU C library
420     Group: Development/C
421     Requires: %{name}-devel = %{glibcepoch}:%{glibcversion}-%{glibcrelease}
422    
423     %description static-devel
424     The glibc-static-devel package contains the static libraries necessary
425     for developing programs which use the standard C libraries. Install
426     glibc-static-devel if you need to statically link your program or
427     library.
428    
429     %package profile
430     Summary: The GNU libc libraries, including support for gprof profiling
431     Group: Development/C
432     Obsoletes: libc-profile
433     Provides: libc-profile = %{glibcversion}-%{glibcrelease}
434     Autoreq: true
435    
436     %description profile
437     The glibc-profile package includes the GNU libc libraries and support
438     for profiling using the gprof program. Profiling is analyzing a
439     program's functions to see how much CPU time they use and determining
440     which functions are calling other functions during execution. To use
441     gprof to profile a program, your program needs to use the GNU libc
442     libraries included in glibc-profile (instead of the standard GNU libc
443     libraries included in the glibc package).
444    
445     If you are going to use the gprof program to profile a program, you'll
446     need to install the glibc-profile program.
447    
448     %package -n nscd
449     Summary: A Name Service Caching Daemon (nscd)
450     Group: System/Servers
451     Requires(pre): rpm-helper
452     Requires(preun): rpm-helper
453     Requires(post): rpm-helper
454     Requires(postun): rpm-helper
455     Autoreq: true
456    
457     %description -n nscd
458     Nscd caches name service lookups and can dramatically improve
459     performance with NIS+, and may help with DNS as well. Note that you
460     can't use nscd with 2.0 kernels because of bugs in the kernel-side
461     thread support. Unfortunately, nscd happens to hit these bugs
462     particularly hard.
463    
464     Install nscd if you need a name service lookup caching daemon, and
465     you're not using a version 2.0 kernel.
466    
467     %if %{build_debug}
468     %package debug
469     Summary: Shared standard C libraries with debugging information
470     Group: System/Libraries
471     Requires: %{name} = %{glibcepoch}:%{glibcversion}-%{glibcrelease}
472     Autoreq: false
473    
474     %description debug
475     The glibc-debug package contains shared standard C libraries with
476     debugging information. You need this only if you want to step into C
477     library routines during debugging.
478    
479     To use these libraries, you need to add %{_libdir}/debug to your
480     LD_LIBRARY_PATH variable prior to starting the debugger.
481     %endif
482    
483     %package utils
484     Summary: Development utilities from GNU C library
485     Group: Development/Other
486     Requires: %{name} = %{glibcepoch}:%{glibcversion}-%{glibcrelease}
487    
488     %description utils
489     The glibc-utils package contains memusage, a memory usage profiler,
490     mtrace, a memory leak tracer and xtrace, a function call tracer which
491     can be helpful during program debugging.
492    
493     If unsure if you need this, don't install this package.
494    
495     %if %{build_i18ndata}
496     %package i18ndata
497     Summary: Database sources for 'locale'
498     Group: System/Libraries
499    
500     %description i18ndata
501     This package contains the data needed to build the locale data files
502     to use the internationalization features of the GNU libc.
503     %endif
504    
505     %if %{build_timezone}
506     %package -n timezone
507     Summary: Time zone descriptions
508     Group: System/Base
509    
510     %description -n timezone
511     These are configuration files that describe possible
512     time zones.
513     %endif
514    
515     %package doc
516     Summary: GNU C library documentation
517     Group: Development/Other
518 tv 137807 BuildArch: noarch
519 tmb 180
520     %description doc
521     The glibc-doc package contains documentation for the GNU C library in
522     info format.
523    
524     %if %{build_pdf_doc}
525     %package doc-pdf
526     Summary: GNU C library documentation
527     Group: Development/Other
528 tv 137807 BuildArch: noarch
529 tmb 180
530     %description doc-pdf
531     The glibc-doc-pdf package contains the printable documentation for the
532     GNU C library in PDF format.
533     %endif
534    
535     %prep
536 tmb 155984 %setup -q -n %{source_dir} -a 3 -a 2 -a 16
537 tmb 180
538     %patch00 -p1 -b .localedef-archive-follow-symlinks
539     %patch01 -p1 -b .fhs
540     %patch02 -p1 -b .ldd-non-exec
541     %patch04 -p1 -b .nss-upgrade
542     %patch05 -p1 -b .assign-global-scope-to-RFC-1918-addresses
543     %patch06 -p1 -b .share-locale
544     %patch07 -p1 -b .nsswitch.conf
545     %patch09 -p1 -b .xterm-xvt
546     %patch11 -p1 -b .compat-EUR-currencies
547     %patch12 -p1 -b .ppc-lddlibc4
548     %patch13 -p1 -b .nscd-enable
549     %patch14 -p1 -b .nscd-no-host-cache
550     %patch17 -p1 -b .i386-hwcapinfo
551     %patch18 -p0 -R -b .provide_CFI_for_the_outermost_function
552     %patch19 -p1 -b .nscd-init-should-start
553 tmb 156310 # (tmb) 2011-10-18: disable to verify kernels are fixed.
554     #patch22 -p1 -b .tcsetattr-kernel-bug-workaround
555 tmb 180 %patch23 -p1 -b .timezone
556     %patch24 -p1 -b .biarch-cpp-defines
557     %patch26 -p1 -b .nice-fix
558     %patch27 -p1 -b .ENOTTY-fr-translation
559     %patch28 -p1 -b .gcc4-fortify
560     %patch29 -p1 -b .biarch-utils
561     %patch30 -p1 -b .multiarch-check
562     %patch31 -p1 -b .i586-hptiming
563     %patch32 -p1 -b .i586-if-no-cmov
564     %patch33 -p1 -b .pt_BR-i18nfixes
565     %patch34 -p1 -b .testsuite-ldbl-bits
566     %patch38 -p1 -b .testsuite-rt-notparallel
567     %patch44 -p1 -b .dont-tie-libcap-with-selinux
568 tmb 156969 %patch48 -p1 -b .fix-segfault-at-dl-lookup
569 dmorgan 157664 %patch49 -p1 -b .revert-rpc-change
570    
571 rtp 75373 %if %isarch %ports_arch
572 tmb 156873 tar xf %{SOURCE20}
573 rtp 75373 mv glibc-ports-%{glibcversion} ports
574 tmb 156873 %patch46 -p1 -b .pagesize
575 rtp 75373 %endif
576    
577 tmb 180 # copy freesec source
578     cp %{_sourcedir}/crypt_freesec.[ch] crypt/
579     echo "Applying crypt_blowfish patch:"
580     %patch42 -p1 -b .mdv-avx-owl-crypt
581     mv crypt/crypt.h crypt/gnu-crypt.h
582     cp -a crypt_blowfish-%{crypt_bf_ver}/*.[chS] crypt/
583    
584     ## FreeSec support for extended/new-style/BSDI hashes in crypt(3)
585     %patch39 -p1 -b .mdv-owl-crypt_freesec
586     %patch40 -p1 -b .avx-relocate_fcrypt
587     %patch41 -p1 -b .avx-increase_BF_FRAME
588     # add sha256-crypt and sha512-crypt support to the Openwall wrapper
589 tmb 156310 #patch43 -p0 -b .mdv-wrapper_handle_sha
590 rtp 173897 %patch50 -p1 -b .crypt_arm_asm
591 tmb 180
592     %if %{build_selinux}
593     # XXX kludge to build nscd with selinux support as it added -nostdinc
594     # so /usr/include/selinux is not found
595     ln -s %{_includedir}/selinux selinux
596     %endif
597    
598     find . -type f -size 0 -o -name "*.orig" -exec rm -f {} \;
599    
600     # (Anssi 03/2008) FIXME: use _provides_exceptions
601     cat > find_provides.sh << EOF
602     #!/bin/sh
603     %{rpmscripts}/find-provides | grep -v GLIBC_PRIVATE
604     exit 0
605     EOF
606     chmod +x find_provides.sh
607    
608     cat > find_requires.bootstrap.sh << EOF
609     /bin/sh %{SOURCE4} %{buildroot} %{_target_cpu} | grep -v "\(GLIBC_PRIVATE\|linux-gate\|linux-vdso\)"
610     exit 0
611     EOF
612     chmod +x find_requires.bootstrap.sh
613    
614     # XXX: use better way later to avoid LD_LIBRARY_PATH issue
615     cat %{rpmscripts}/find-requires | sed '/.*LD_LIBRARY_PATH.*/d;' > find_requires
616     chmod +x find_requires
617     # (Anssi 03/2008) FIXME: use _requires_exceptions
618     cat > find_requires.noprivate.sh << EOF
619     %{_builddir}/%{source_dir}/find_requires %{buildroot} %{_target_cpu} | \
620     grep -v GLIBC_PRIVATE
621     exit 0
622     EOF
623     chmod +x find_requires.noprivate.sh
624    
625     # FIXME: fix system rpm find-requires to use the prefix cross version
626     %if %{build_bootstrap} || "%{_target_cpu}" != "%{target_cpu}"
627     ln -s find_requires.bootstrap.sh find_requires.sh
628     %else
629     ln -s find_requires.noprivate.sh find_requires.sh
630     %endif
631    
632     # Remove patch backups from files we ship in glibc packages
633     rm -f ChangeLog.[^0-9]*
634     rm -f localedata/locales/{???_??,??_??}.*
635     rm -f localedata/locales/[a-z_]*.*
636    
637     %build
638     # Prepare test matrix in the next function
639     CheckList=$PWD/Check.list
640     rm -f $CheckList
641     touch $CheckList
642    
643     #
644     # CompareKver <kernel version>
645     # function to compare the desired kernel version with running kernel
646     # version (package releases not taken into account in comparison). The
647     # function returns:
648     # -1 = <kernel version> is lesser than current running kernel
649     # 0 = <kernel version> is equal to the current running kernel
650     # 1 = <kernel version> is greater than current running kernel
651     #
652     function CompareKver() {
653     v1=`echo $1 | sed 's/\.\?$/./'`
654     v2=`uname -r | sed 's/[^.0-9].*//' | sed 's/\.\?$/./'`
655     n=1
656     s=0
657     while true; do
658     c1=`echo "$v1" | cut -d "." -f $n`
659     c2=`echo "$v2" | cut -d "." -f $n`
660     if [ -z "$c1" -a -z "$c2" ]; then
661     break
662     elif [ -z "$c1" ]; then
663     s=-1
664     break
665     elif [ -z "$c2" ]; then
666     s=1
667     break
668     elif [ "$c1" -gt "$c2" ]; then
669     s=1
670     break
671     elif [ "$c2" -gt "$c1" ]; then
672     s=-1
673     break
674     fi
675     n=$((n + 1))
676     done
677     echo $s
678     }
679    
680     #
681     # BuildGlibc <arch> [<extra_configure_options>+]
682     #
683     function BuildGlibc() {
684     arch="$1"
685     shift 1
686    
687     # PowerPC CPU add-on
688     case $arch in
689     cpu-addon,*)
690     cpu=` echo "$arch" | sed -n "/.*,\([^,]*\),.*$/s//\1/p"`
691     arch=`echo "$arch" | sed -n "/.*,.*,\([^,]*\)$/s//\1/p"`
692     ;;
693     *)
694     cpu=$arch
695     ;;
696     esac
697    
698     # Select optimization flags and compiler to use
699     BuildAltArch="no"
700     BuildCompFlags=""
701     BuildFlags=""
702     case $arch in
703     i[3456]86 | athlon)
704     BuildFlags="-march=$arch -mtune=generic"
705     if [[ "`uname -m`" = "x86_64" ]]; then
706     BuildAltArch="yes"
707     BuildCompFlags="-m32"
708     fi
709     ;;
710     x86_64)
711     BuildFlags="-mtune=generic"
712     ;;
713 rtp 75373 mips|mipsel)
714     BuildFlags="-march=mips3"
715     BuildCompFlags="-march=mips3"
716     ;;
717     mips32|mips32el)
718     BuildFlags="-march=mips3 -mabi=n32"
719     BuildCompFlags="-march=mips3 -mabi=n32"
720     ;;
721     mips64|mips64el)
722     BuildFlags="-march=mips3 -mabi=64"
723     BuildCompFlags="-march=mips3 -mabi=64"
724     ;;
725     armv4t*)
726     BuildFlags="-march=armv4t"
727     BuildCompFlags="-march=armv4t"
728     ;;
729     armv5t*)
730     BuildFlags="-march=armv5t"
731     BuildCompFlags="-march=armv5t"
732     ;;
733     # to check
734     armv7*)
735     BuildFlags="-march=armv7-a"
736     BuildCompFlags="-march=armv7-a"
737     ;;
738 tmb 180 esac
739    
740     # Choose multiarch support
741     MultiArchFlags=
742     case $arch in
743     i686 | x86_64)
744     MultiArchFlags="--enable-multi-arch"
745     ;;
746     esac
747    
748     # Determine C & C++ compilers
749     BuildCC="%{__cc} $BuildCompFlags"
750     BuildCXX="%{__cxx} $BuildCompFlags"
751    
752     # Are we supposed to cross-compile?
753     if [[ "%{target_cpu}" != "%{_target_cpu}" ]]; then
754 rtp 75373 # Can't use BuildCC anymore with previous changes.
755     BuildCC="%{cross_program_prefix}gcc $BuildCompFlags"
756     BuildCXX="%{cross_program_prefix}g++ $BuildCompFlags"
757 tmb 180 BuildCross="--build=%{_target_platform}"
758     export libc_cv_forced_unwind=yes libc_cv_c_cleanup=yes
759     fi
760    
761     BuildFlags="$BuildFlags -DNDEBUG=1 -O2 -finline-functions -g"
762     if $BuildCC -v 2>&1 | grep -q 'gcc version 3.0'; then
763     # gcc3.0 had really poor inlining heuristics causing problems in
764     # resulting ld.so
765     BuildFlags="$BuildFlags -finline-limit=2000"
766     fi
767    
768     # Do not use direct references against %gs when accessing tls data
769     # XXX make it the default in GCC? (for other non glibc specific usage)
770     case $arch in
771     i[3456]86 | x86_64)
772     BuildFlags="$BuildFlags -mno-tls-direct-seg-refs"
773     ;;
774     esac
775    
776     # Arch specific compilation flags
777     if [[ "$arch" = "ppc64" ]]; then
778     BuildFlags="$BuildFlags -fno-inline-functions -mno-minimal-toc"
779     fi
780    
781     # Extra configure flags
782     ExtraFlags=
783     if [[ "%{build_profile}" != "0" ]]; then
784     ExtraFlags="$ExtraFlags --enable-profile"
785     fi
786    
787     # NPTL+TLS are now the default
788 rtp 75373 # check for other arches
789     %if %isarch %ports_arch
790     Pthreads="ports nptl"
791     %else
792     Pthreads="nptl"
793     %endif
794 tmb 180 TlsFlags="--with-tls --with-__thread"
795    
796     # Add-ons
797     AddOns="$Pthreads,libidn"
798     if [[ "$cpu" != "$arch" ]]; then
799     AddOns="$AddOns,powerpc-cpu"
800     BuildFlags="$BuildFlags -mcpu=$cpu"
801     ExtraFlags="$ExtraFlags --with-cpu=$cpu"
802     fi
803    
804     # Build with selinux support?
805     %if %{build_selinux}
806     SElinuxFlags="--with-selinux"
807     %else
808     SElinuxFlags="--without-selinux"
809     %endif
810    
811     # Kernel headers directory
812     KernelHeaders=%{_includedir}
813    
814     # Determine library name
815     glibc_cv_cc_64bit_output=no
816     if echo ".text" | $BuildCC -c -o test.o -xassembler -; then
817     case `/usr/bin/file test.o` in
818     *"ELF 64"*)
819     glibc_cv_cc_64bit_output=yes
820     ;;
821     esac
822     fi
823     rm -f test.o
824    
825     # Force a separate and clean object dir
826     rm -rf build-$cpu-linux
827     mkdir build-$cpu-linux
828     pushd build-$cpu-linux
829     [[ "$BuildAltArch" = "yes" ]] && touch ".alt" || touch ".main"
830     CC="$BuildCC" CXX="$BuildCXX" CFLAGS="$BuildFlags" ../configure \
831 rtp 75373 $arch-%{_real_vendor}-linux%{gnuext} $BuildCross \
832 tmb 180 --prefix=%{_prefix} \
833     --libexecdir=%{_prefix}/libexec \
834     --infodir=%{_infodir} \
835 rtp 75373 --enable-add-ons="$AddOns" --without-cvs \
836 tmb 180 $TlsFlags $ExtraFlags $MultiArchFlags $SElinuxFlags \
837     --enable-experimental-malloc \
838     --enable-kernel=%{enablekernel} \
839     --with-headers=$KernelHeaders ${1+"$@"}
840     %make -r
841     popd
842    
843     # All tests are expected to pass on certain platforms, depending also
844     # on the version of the kernel running
845     case $arch in
846     athlon | ia64 | ppc | ppc64)
847     if [ "`CompareKver %{check_min_kver}`" -lt 0 ]; then
848     check_flags=""
849     else
850     check_flags="-k"
851     fi
852     ;;
853     *)
854     check_flags="-k"
855     ;;
856     esac
857    
858     # Generate test matrix
859     [[ -d "build-$arch-linux" ]] || {
860     echo "ERROR: PrepareGlibcTest: build-$arch-linux does not exist!"
861     return 1
862     }
863     local BuildJobs="-j`getconf _NPROCESSORS_ONLN`"
864     echo "$BuildJobs -d build-$arch-linux $check_flags" >> $CheckList
865    
866     case $cpu in
867     i686|athlon) base_arch=i586;;
868     power*) base_arch=$arch;;
869     *) base_arch=none;;
870     esac
871    
872     [[ -d "build-$base_arch-linux" ]] && {
873     check_flags="$check_flags -l build-$base_arch-linux/elf/ld.so"
874     echo "$BuildJobs -d build-$arch-linux $check_flags" >> $CheckList
875     }
876     return 0
877     }
878    
879     # Build main glibc
880     BuildGlibc %{target_cpu}
881    
882     %if %{build_biarch}
883     %if %isarch x86_64
884     BuildGlibc i686
885     %endif
886     %endif
887 rtp 75373 %if %isarch mips
888     BuildGlibc mips64
889     BuildGlibc mips32
890     %endif
891     %if %isarch mipsel
892     BuildGlibc mips64el
893     BuildGlibc mips32el
894     %endif
895     %if %isarch mips64
896     BuildGlibc mips
897     BuildGlibc mips32
898     %endif
899     %if %isarch mips64el
900     BuildGlibc mipsel
901     BuildGlibc mips32el
902     %endif
903 tmb 180
904     # Build i686 libraries if not already building for i686/athlon
905     case %{target_cpu} in
906     i686 | athlon)
907     ;;
908     i[3-6]86)
909     BuildGlibc i686 --disable-profile
910     ;;
911     esac
912    
913     make -C crypt_blowfish-%{crypt_bf_ver} man
914    
915     %if %{build_check}
916     export TMPDIR=/tmp
917     export TIMEOUTFACTOR=16
918     Check="$PWD/glibc-check.sh"
919     cat %{SOURCE5} > $Check
920     chmod +x $Check
921     while read arglist; do
922     $Check $arglist || exit 1
923     done < $CheckList
924     %endif
925    
926     %install
927     rm -rf $RPM_BUILD_ROOT
928    
929     # force use of _NPROCESSORS_ONLN jobs since RPM_BUILD_NCPUS could be
930     # greater for icecream
931     BuildJobs="-j`getconf _NPROCESSORS_ONLN`"
932    
933     make install_root=$RPM_BUILD_ROOT install -C build-%{target_cpu}-linux
934     %if %{build_i18ndata}
935     (cd build-%{target_cpu}-linux;
936     make $BuildJobs -C ../localedata objdir=`pwd` \
937     install_root=$RPM_BUILD_ROOT \
938     install-locales
939     )
940     install -m 0644 localedata/SUPPORTED $RPM_BUILD_ROOT/%{_datadir}/i18n/
941     %endif
942     sh manpages/Script.sh
943    
944     # Empty filelist for non i686/athlon targets
945     > extralibs.filelist
946    
947     # Install biarch libraries
948 rtp 75373 %if %{build_biarch} || %isarch mips mipsel
949 tmb 180 %if %isarch x86_64
950 rtp 75373 ALT_ARCHES=i686-linux
951 tmb 180 %endif
952 rtp 75373 %if %isarch mips
953     ALT_ARCHES="mips64-linux mips32-linux"
954     %endif
955     %if %isarch mipsel
956     ALT_ARCHES="mips64el-linux mips32el-linux"
957     %endif
958     %if %isarch mips64
959     ALT_ARCHES="mips-linux mips32-linux"
960     %endif
961     %if %isarch mips64el
962     ALT_ARCHES="mipsel-linux mips32el-linux"
963     %endif
964    
965     for ALT_ARCH in $ALT_ARCHES; do
966 tmb 180 mkdir -p $RPM_BUILD_ROOT/$ALT_ARCH
967     make install_root=$RPM_BUILD_ROOT/$ALT_ARCH install -C build-$ALT_ARCH
968    
969     # Dispatch */lib only
970 rtp 75373 case "$ALT_ARCH" in
971     mips32*)
972     LIB="%{_slibdir}32"
973     ;;
974     mips64*)
975     LIB="%{_slibdir}64"
976     ;;
977     *)
978 rtp 75374 LIB=/lib
979 rtp 75373 ;;
980     esac
981     %if !%{build_cross}
982     mv $RPM_BUILD_ROOT/$ALT_ARCH/$LIB $RPM_BUILD_ROOT/$LIB
983     rm -f $RPM_BUILD_ROOT/$ALT_ARCH/%_prefix/lib/pt_chown
984 tmb 180 mv $RPM_BUILD_ROOT/$ALT_ARCH%{_prefix}/libexec/getconf/* \
985     $RPM_BUILD_ROOT%{_prefix}/libexec/getconf/
986 rtp 75373 [ ! -d $RPM_BUILD_ROOT/%{_prefix}/$LIB/ ] && mkdir -p $RPM_BUILD_ROOT/%{_prefix}/$LIB/
987     mv $RPM_BUILD_ROOT/$ALT_ARCH/%{_prefix}/$LIB/* $RPM_BUILD_ROOT/%{_prefix}/$LIB/
988     %else
989     mv $RPM_BUILD_ROOT/$ALT_ARCH/%{_prefix}/lib $RPM_BUILD_ROOT/$LIB
990 rtp 76126 rm -f $RPM_BUILD_ROOT/%{_prefix}/libexec/pt_chown
991 rtp 75373 rm -f $RPM_BUILD_ROOT/$LIB/pt_chown
992     sed -i $RPM_BUILD_ROOT/$LIB/libc.so -e "s!%{_slibdir}!$LIB!g"
993     %endif
994    
995 tmb 180 rm -rf $RPM_BUILD_ROOT/$ALT_ARCH
996     # XXX Dispatch 32-bit stubs
997     (sed '/^@/d' include/stubs-prologue.h; LC_ALL=C sort $(find build-$ALT_ARCH -name stubs)) \
998     > $RPM_BUILD_ROOT%{_includedir}/gnu/stubs-32.h
999 rtp 75373 done
1000 tmb 180 %endif
1001 rtp 81873 %if %{build_cross}
1002     rm -f $RPM_BUILD_ROOT/%{_prefix}/libexec/pt_chown
1003     %endif
1004 tmb 180
1005     # Install extra glibc libraries
1006     function InstallGlibc() {
1007     local BuildDir="$1"
1008     local SubDir="$2"
1009     local LibDir="$3"
1010    
1011     case $BuildDir in
1012     *) Pthreads=nptl ;;
1013     esac
1014    
1015     [[ -z "$LibDir" ]] && LibDir="%{_slibdir}"
1016    
1017     pushd $BuildDir
1018     mkdir -p $RPM_BUILD_ROOT$LibDir/$SubDir/
1019     install -m755 libc.so $RPM_BUILD_ROOT$LibDir/$SubDir/`basename $RPM_BUILD_ROOT$LibDir/libc-*.so`
1020     ln -sf `basename $RPM_BUILD_ROOT$LibDir/libc-*.so` $RPM_BUILD_ROOT$LibDir/$SubDir/`basename $RPM_BUILD_ROOT$LibDir/libc.so.*`
1021     install -m755 math/libm.so $RPM_BUILD_ROOT$LibDir/$SubDir/`basename $RPM_BUILD_ROOT$LibDir/libm-*.so`
1022     ln -sf `basename $RPM_BUILD_ROOT$LibDir/libm-*.so` $RPM_BUILD_ROOT$LibDir/$SubDir/`basename $RPM_BUILD_ROOT$LibDir/libm.so.*`
1023     install -m755 $Pthreads/libpthread.so $RPM_BUILD_ROOT$LibDir/$SubDir/`basename $RPM_BUILD_ROOT$LibDir/libpthread-*.so`
1024     ln -sf `basename $RPM_BUILD_ROOT$LibDir/libpthread-*.so` $RPM_BUILD_ROOT$LibDir/$SubDir/`basename $RPM_BUILD_ROOT$LibDir/libpthread.so.*`
1025     install -m755 ${Pthreads}_db/libthread_db.so $RPM_BUILD_ROOT$LibDir/$SubDir/`basename $RPM_BUILD_ROOT$LibDir/libthread_db-*.so`
1026     ln -sf `basename $RPM_BUILD_ROOT$LibDir/libthread_db-*.so` $RPM_BUILD_ROOT$LibDir/$SubDir/`basename $RPM_BUILD_ROOT$LibDir/libthread_db.so.*`
1027     install -m755 rt/librt.so $RPM_BUILD_ROOT$LibDir/$SubDir/`basename $RPM_BUILD_ROOT$LibDir/librt-*.so`
1028     ln -sf `basename $RPM_BUILD_ROOT$LibDir/librt-*.so` $RPM_BUILD_ROOT$LibDir/$SubDir/`basename $RPM_BUILD_ROOT$LibDir/librt.so.*`
1029     echo "%dir $LibDir/$SubDir" >> ../extralibs.filelist
1030     find $RPM_BUILD_ROOT$LibDir/$SubDir -maxdepth 1 -type f -o -type l | sed -e "s|$RPM_BUILD_ROOT||" >> ../extralibs.filelist
1031     popd
1032     }
1033    
1034     # Install arch-specific optimized libraries
1035     %if %isarch %{ix86}
1036     case %{target_cpu} in
1037     i[3-5]86)
1038     InstallGlibc build-i686-linux i686
1039     ;;
1040     esac
1041     %endif
1042    
1043     # NPTL <bits/stdio-lock.h> is not usable outside of glibc, so include
1044     # the generic one (RH#162634)
1045     install -m644 bits/stdio-lock.h $RPM_BUILD_ROOT%{_includedir}/bits/stdio-lock.h
1046    
1047     # Compatibility hack: this locale has vanished from glibc, but some other
1048     # programs are still using it. Normally we would handle it in the %pre
1049     # section but with glibc that is simply not an option
1050     mkdir -p $RPM_BUILD_ROOT%{_datadir}/locale/ru_RU/LC_MESSAGES
1051    
1052     # Remove the files we don't want to distribute
1053     rm -f $RPM_BUILD_ROOT%{_libdir}/libNoVersion*
1054     rm -f $RPM_BUILD_ROOT%{_slibdir}/libNoVersion*
1055    
1056     ln -sf libbsd-compat.a $RPM_BUILD_ROOT%{_libdir}/libbsd.a
1057     %if %{build_biarch}
1058     ln -sf libbsd-compat.a $RPM_BUILD_ROOT%{_prefix}/lib/libbsd.a
1059     %endif
1060 rtp 75373 %if %isarch mips mipsel
1061     ln -sf libbsd-compat.a $RPM_BUILD_ROOT%{_libdir}32/libbsd.a
1062     ln -sf libbsd-compat.a $RPM_BUILD_ROOT%{_libdir}64/libbsd.a
1063     %endif
1064 tmb 180
1065     %if "%{name}" == "glibc"
1066     install -m 644 mageia/nsswitch.conf $RPM_BUILD_ROOT%{_sysconfdir}/nsswitch.conf
1067     %endif
1068    
1069     # This is for ncsd - in glibc 2.2
1070     %if %{build_nscd}
1071     install -m 644 nscd/nscd.conf $RPM_BUILD_ROOT%{_sysconfdir}
1072     mkdir -p $RPM_BUILD_ROOT%{_initrddir}
1073     install -m 755 nscd/nscd.init $RPM_BUILD_ROOT%{_initrddir}/nscd
1074     %endif
1075    
1076     # These man pages require special attention
1077     mkdir -p %{buildroot}%{_mandir}/man3
1078     install -p -m 0644 crypt_blowfish-%{crypt_bf_ver}/*.3 %{buildroot}%{_mandir}/man3/
1079    
1080     # Useless and takes place
1081     rm -rf %buildroot/%{_datadir}/zoneinfo/{posix,right}
1082    
1083     # Include ld.so.conf
1084     %if "%{name}" == "glibc"
1085 rtp 75373 %if %isarch mips mipsel
1086     # needed to get a ldd which understands o32, n32, 64
1087     install -m 755 $RPM_BUILD_DIR/%{source_dir}/build-mips64el-linux/elf/ldd $RPM_BUILD_ROOT/%{_bindir}/ldd
1088     %endif
1089 tmb 180 echo "include /etc/ld.so.conf.d/*.conf" > $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf
1090     chmod 644 $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf
1091     mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf.d
1092    
1093     # ldconfig cache
1094     mkdir -p $RPM_BUILD_ROOT%{_var}/cache/ldconfig
1095     touch $RPM_BUILD_ROOT%{_var}/cache/ldconfig/aux-cache
1096    
1097     # automatic ldconfig cache update on rpm installs/removals
1098     # (see http://wiki.mandriva.com/en/Rpm_filetriggers)
1099     install -d %buildroot%{_var}/lib/rpm/filetriggers
1100     cat > %buildroot%{_var}/lib/rpm/filetriggers/ldconfig.filter << EOF
1101 rtp 75373 ^.((/lib|/usr/lib)(32|64)?/[^/]*\.so\.|/etc/ld.so.conf.d/[^/]*\.conf)
1102 tmb 180 EOF
1103     cat > %buildroot%{_var}/lib/rpm/filetriggers/ldconfig.script << EOF
1104     #!/bin/sh
1105     ldconfig -X
1106     EOF
1107     chmod 755 %buildroot%{_var}/lib/rpm/filetriggers/ldconfig.script
1108 rtp 75373 %endif
1109 tmb 180
1110     # Include %{_libdir}/gconv/gconv-modules.cache
1111     > $RPM_BUILD_ROOT%{_libdir}/gconv/gconv-modules.cache
1112     chmod 644 $RPM_BUILD_ROOT%{_libdir}/gconv/gconv-modules.cache
1113    
1114 rtp 76126 %if "%{name}" == "glibc"
1115 tmb 180 touch $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.cache
1116 rtp 76126 %endif
1117 tmb 180
1118     # Add libraries to debug sub-package
1119     %if %{build_debug}
1120     mkdir $RPM_BUILD_ROOT%{_libdir}/debug
1121     #cp -a $RPM_BUILD_ROOT%{_libdir}/*.a $RPM_BUILD_ROOT%{_libdir}/debug/
1122     #rm -f $RPM_BUILD_ROOT%{_libdir}/debug/*_p.a
1123     cp -a $RPM_BUILD_ROOT%{_slibdir}/lib*.so* $RPM_BUILD_ROOT%{_libdir}/debug/
1124    
1125     pushd $RPM_BUILD_ROOT%{_libdir}/debug
1126     for lib in *.so*; do
1127     [[ -f "$lib" ]] && DEBUG_LIBS="$DEBUG_LIBS %{_libdir}/debug/$lib"
1128     done
1129     popd
1130     %endif
1131    
1132     # Are we cross-compiling?
1133     Strip="strip"
1134     if [[ "%{_target_cpu}" != "%{target_cpu}" ]]; then
1135 rtp 75373 Strip="%{cross_program_prefix}$Strip"
1136 tmb 180 fi
1137    
1138     # Strip libpthread but keep some symbols
1139     find $RPM_BUILD_ROOT%{_slibdir} -type f -name "libpthread-*.so" \
1140     -o -type f -name "libc-*.so" | \
1141     xargs $Strip -g -R .comment
1142    
1143     %if %{build_biarch}
1144     find $RPM_BUILD_ROOT/lib -type f -name "libpthread-*.so" \
1145     -o -type f -name "libc-*.so" | \
1146     xargs $Strip -g -R .comment
1147     %endif
1148    
1149     # Strip debugging info from all static libraries
1150 rtp 75373 pushd $RPM_BUILD_ROOT%{_slibdir}
1151 tmb 180 for i in *.a; do
1152     if [ -f "$i" ]; then
1153     case "$i" in
1154     *_p.a) ;;
1155     *) $Strip -g -R .comment $i ;;
1156     esac
1157     fi
1158     done
1159     popd
1160    
1161     # post install wrapper
1162     %__cc -Os -DSLIBDIR="\"%{_slibdir}\"" -DASH_BIN="\"%{ash_bin}\"" %{SOURCE14} -static \
1163     -L $RPM_BUILD_ROOT%{_libdir}/ \
1164     -o $RPM_BUILD_ROOT%{_sbindir}/glibc-post-wrapper
1165     chmod 700 $RPM_BUILD_ROOT%{_sbindir}/glibc-post-wrapper
1166    
1167     # rquota.x and rquota.h are now provided by quota
1168     rm -f $RPM_BUILD_ROOT%{_includedir}/rpcsvc/rquota.[hx]
1169    
1170     # Hardlink identical locale files together
1171     %if %{build_i18ndata}
1172 rtp 75373 gcc -O2 -o build-%{target_cpu}-linux/hardlink redhat/hardlink.c
1173     build-%{target_cpu}-linux/hardlink -vc $RPM_BUILD_ROOT%{_datadir}/locale
1174 tmb 180 %endif
1175    
1176     rm -rf $RPM_BUILD_ROOT%{_includedir}/netatalk/
1177    
1178     # Build file list for devel package
1179     find $RPM_BUILD_ROOT%{_includedir} -type f -or -type l > devel.filelist
1180     find $RPM_BUILD_ROOT%{_includedir} -type d | sed "s/^/%dir /" | \
1181     grep -v "%{_libdir}/libnss1.*.so$" | \
1182     grep -v "%{_includedir}$" | >> devel.filelist
1183     find $RPM_BUILD_ROOT%{_libdir} -maxdepth 1 -name "*.so" -o -name "*.o" | egrep -v "(libmemusage.so|libpcprofile.so)" >> devel.filelist
1184     # biarch libs
1185     %if %{build_biarch}
1186     find $RPM_BUILD_ROOT%{_prefix}/lib -maxdepth 1 -name "*.so" -o -name "*.o" | egrep -v "(libmemusage.so|libpcprofile.so)" >> devel.filelist
1187     %endif
1188 rtp 75373 %if %isarch mips mipsel
1189     find $RPM_BUILD_ROOT%{_libdir}32 -maxdepth 1 -name "*.so" -o -name "*.o" | egrep -v "(libmemusage.so|libpcprofile.so)" >> devel.filelist
1190     find $RPM_BUILD_ROOT%{_libdir}64 -maxdepth 1 -name "*.so" -o -name "*.o" | egrep -v "(libmemusage.so|libpcprofile.so)" >> devel.filelist
1191     %endif
1192 tmb 180 perl -pi -e "s|$RPM_BUILD_ROOT||" devel.filelist
1193    
1194 blino 3100 # /etc/localtime - we're proud of our timezone #Well we may put Paris
1195 tmb 180 %if %{build_timezone}
1196     rm -f $RPM_BUILD_ROOT%{_sysconfdir}/localtime
1197     cp -f $RPM_BUILD_ROOT%{_datadir}/zoneinfo/US/Eastern $RPM_BUILD_ROOT%{_sysconfdir}/localtime
1198     #ln -sf ..%{_datadir}/zoneinfo/US/Eastern $RPM_BUILD_ROOT%{_sysconfdir}/localtime
1199     %endif
1200    
1201     # [gg] build PDF documentation
1202     %if %{build_pdf_doc}
1203     (cd manual; texi2dvi -p -t @afourpaper -t @finalout libc.texinfo)
1204     %endif
1205    
1206     # the last bit: more documentation
1207     rm -rf documentation
1208     mkdir documentation
1209     cp timezone/README documentation/README.timezone
1210     cp ChangeLog* documentation
1211     gzip -9 documentation/ChangeLog*
1212     mkdir documentation/crypt_blowfish-%{crypt_bf_ver}
1213     install -m 644 crypt_blowfish-%{crypt_bf_ver}/{README,LINKS,PERFORMANCE} \
1214     documentation/crypt_blowfish-%{crypt_bf_ver}
1215    
1216     # Generate final rpm filelist, with localized libc.mo files
1217     rm -f rpm.filelist
1218     %if "%{name}" == "glibc"
1219     %find_lang libc
1220     perl -ne '/^\s*$/ or print' libc.lang > rpm.filelist
1221     %endif
1222     cat extralibs.filelist >> rpm.filelist
1223    
1224     # Remove unpackaged files
1225     rm -f $RPM_BUILD_ROOT%{_infodir}/dir.old*
1226     rm -rf $RPM_BUILD_ROOT%{_includedir}/asm-*/mach-*/
1227     rm -f $RPM_BUILD_ROOT%{_datadir}/locale/locale-archive*
1228    
1229     %if !%{build_utils}
1230     %if %{build_biarch}
1231     rm -f $RPM_BUILD_ROOT%{_slibdir32}/libmemusage.so
1232     rm -f $RPM_BUILD_ROOT%{_slibdir32}/libpcprofile.so
1233     %endif
1234 rtp 75373 %if %isarch mips mipsel
1235     rm -f $RPM_BUILD_ROOT%{_slibdir}32/libmemusage.so
1236     rm -f $RPM_BUILD_ROOT%{_slibdir}32/libpcprofile.so
1237     rm -f $RPM_BUILD_ROOT%{_slibdir}64/libmemusage.so
1238     rm -f $RPM_BUILD_ROOT%{_slibdir}64/libpcprofile.so
1239     %endif
1240 tmb 180 rm -f $RPM_BUILD_ROOT%{_slibdir}/libmemusage.so
1241     rm -f $RPM_BUILD_ROOT%{_slibdir}/libpcprofile.so
1242     rm -f $RPM_BUILD_ROOT%{_bindir}/memusage
1243     rm -f $RPM_BUILD_ROOT%{_bindir}/memusagestat
1244     rm -f $RPM_BUILD_ROOT%{_bindir}/mtrace
1245     rm -f $RPM_BUILD_ROOT%{_bindir}/pcprofiledump
1246     rm -f $RPM_BUILD_ROOT%{_bindir}/xtrace
1247     %endif
1248    
1249     %if !%{build_timezone}
1250     rm -f $RPM_BUILD_ROOT%{_sysconfdir}/localtime
1251     rm -f $RPM_BUILD_ROOT%{_sbindir}/zdump
1252     rm -f $RPM_BUILD_ROOT%{_sbindir}/zic
1253     rm -f $RPM_BUILD_ROOT%{_mandir}/man1/zdump.1*
1254     rm -rf $RPM_BUILD_ROOT%{_datadir}/zoneinfo
1255     %endif
1256    
1257     %if !%{build_i18ndata}
1258     rm -rf $RPM_BUILD_ROOT%{_datadir}/i18n
1259     %endif
1260    
1261     %if "%{name}" != "glibc"
1262     rm -rf $RPM_BUILD_ROOT/boot
1263     rm -rf $RPM_BUILD_ROOT/sbin
1264     rm -rf $RPM_BUILD_ROOT/usr/share
1265     rm -rf $RPM_BUILD_ROOT%{_bindir}
1266     rm -rf $RPM_BUILD_ROOT%{_sbindir}
1267     rm -rf $RPM_BUILD_ROOT%{_datadir}
1268     rm -rf $RPM_BUILD_ROOT%{_mandir}
1269     rm -rf $RPM_BUILD_ROOT%{_infodir}
1270     rm -rf $RPM_BUILD_ROOT%{_prefix}/etc
1271     rm -rf $RPM_BUILD_ROOT%{_libdir}/gconv
1272     %endif
1273    
1274     # In case we are cross-compiling, don't bother to remake symlinks and
1275     # fool spec-helper when stripping files
1276     %if "%{name}" != "glibc"
1277     export DONT_SYMLINK_LIBS=1
1278     export PATH=%{_bindir}:$PATH
1279     %endif
1280    
1281     EXCLUDE_FROM_STRIP="ld-%{glibcversion}.so libpthread libc-%{glibcversion}.so $DEBUG_LIBS"
1282     export EXCLUDE_FROM_STRIP
1283    
1284     %if "%{name}" == "glibc"
1285     %define upgradestamp %{_slibdir}/glibc.upgraded
1286     %define broken_link %{_slibdir}/libnss_nis.so.1 %{_slibdir}/libnss_files.so.1 %{_slibdir}/libnss_dns.so.1 %{_slibdir}/libnss_compat.so.1
1287    
1288     %pre -p %{ash_bin}
1289     # test(1) and echo(1) are built-ins
1290     if [ -d %{_slibdir} ] && [ ! -f %{_slibdir}/libnss_files-%{glibcversion}.so ]; then
1291     echo > %{upgradestamp}
1292     fi
1293    
1294     %post -p %{_sbindir}/glibc-post-wrapper
1295     export LC_ALL=C
1296    
1297     if [ "$1" -gt 1 ]; then
1298     # migrate /etc/ld.so.conf to include the new /etc/ld.so.conf.d/
1299     # without external commands but for removing the temporary file
1300     ldso_conf=/etc/ld.so.conf
1301     while read i; do
1302     [ "$i" = "include /etc/ld.so.conf.d/*.conf" ] && keep=1
1303     # Remove previously used include line without absolute path
1304     [ "$i" = "include ld.so.conf.d/*.conf" ] || echo $i
1305     done < $ldso_conf > $ldso_conf-
1306     if [ -z "$keep" ]; then
1307     echo "include /etc/ld.so.conf.d/*.conf" > $ldso_conf
1308     while read i; do
1309     echo $i
1310     done < $ldso_conf- >> $ldso_conf
1311     fi
1312     [ -x /bin/rm ] && /bin/rm -f $ldso_conf-
1313     fi
1314     /sbin/ldconfig
1315    
1316     if [ "$1" -gt 1 ]; then
1317     # On upgrade the services doesn't work because libnss couldn't be
1318     # loaded anymore.
1319     if [ -f %{upgradestamp} ]; then
1320     if /usr/bin/readlink /proc/1/exe >/dev/null && \
1321     /usr/bin/readlink /proc/1/root >/dev/null; then
1322     if [ -x /sbin/telinit -a -p /dev/initctl ]; then
1323     /sbin/telinit u
1324     fi
1325     if [ -x /etc/init.d/sshd -a \
1326     -x /usr/sbin/sshd -a \
1327     -x /bin/bash ]; then
1328     /etc/init.d/sshd condrestart
1329     fi
1330     fi
1331     fi
1332     if [ -f /bin/rm ]; then
1333     for i in %broken_link; do
1334     if [ -e $i ] && [ ! -L $i ]; then
1335     /bin/rm -f $i
1336     fi
1337     done
1338     fi
1339     fi
1340     [ -x /bin/rm ] && /bin/rm -f %{upgradestamp}
1341    
1342     # always generate the gconv-modules.cache
1343     %{_sbindir}/iconvconfig -o %{_libdir}/gconv/gconv-modules.cache --nostdlib %{_libdir}/gconv
1344    
1345 blino 3102 %endif
1346    
1347 tmb 180 %pre devel
1348     if [ -L %{_includedir}/scsi ]; then
1349     rm -f %{_includedir}/scsi
1350     fi
1351     if [ -L %{_includedir}/sound ]; then
1352     rm -f %{_includedir}/sound
1353     fi
1354     if [ -L %{_includedir}/linux ]; then
1355     rm -f %{_includedir}/linux
1356     fi
1357     if [ -L %{_includedir}/asm ]; then
1358     rm -f %{_includedir}/asm
1359     fi
1360     if [ -L %{_includedir}/asm-generic ]; then
1361     rm -f %{_includedir}/asm-generic
1362     fi
1363     %if %isarch x86_64
1364     if [ -L %{_includedir}/asm-x86_64 ]; then
1365     rm -f %{_includedir}/asm-x86_64
1366     fi
1367     if [ -L %{_includedir}/asm-i386 ]; then
1368     rm -f %{_includedir}/asm-i386
1369     fi
1370     %endif
1371 rtp 75373 %if %isarch %mips
1372     if [ -L %{_includedir}/asm-mips ]; then
1373     rm -f %{_includedir}/asm-mips
1374     fi
1375     %endif
1376     %if %isarch %arm
1377     if [ -L %{_includedir}/asm-arm ]; then
1378     rm -f %{_includedir}/asm-arm
1379     fi
1380     %endif
1381 tmb 180 exit 0
1382    
1383     %if %{build_doc}
1384     %post doc
1385     %_install_info libc.info
1386    
1387     %preun doc
1388     %_remove_install_info libc.info
1389     %endif
1390    
1391     %if %{build_nscd}
1392     %pre -n nscd
1393     %_pre_useradd nscd / /bin/false
1394    
1395     %post -n nscd
1396     %_post_service nscd
1397    
1398     %preun -n nscd
1399     %_preun_service nscd
1400    
1401     %postun -n nscd
1402     %_postun_userdel nscd
1403    
1404     if [ "$1" -ge "1" ]; then
1405     /sbin/service nscd condrestart > /dev/null 2>&1 || :
1406     fi
1407     %endif
1408    
1409     %clean
1410     #rm -rf "$RPM_BUILD_ROOT"
1411     #rm -f *.filelist*
1412    
1413     #
1414     # glibc
1415     #
1416     %files -f rpm.filelist
1417     %defattr(-,root,root)
1418     %if "%{name}" == "glibc"
1419     %if %{build_timezone}
1420     %verify(not md5 size mtime) %config(noreplace) %{_sysconfdir}/localtime
1421     %endif
1422     %verify(not md5 size mtime) %config(noreplace) %{_sysconfdir}/nsswitch.conf
1423     %verify(not md5 size mtime) %config(noreplace) %{_sysconfdir}/ld.so.conf
1424     %dir %{_sysconfdir}/ld.so.conf.d
1425     %config(noreplace) %{_sysconfdir}/rpc
1426     %doc nis/nss
1427     %doc posix/gai.conf
1428     %{_mandir}/man1/*
1429     %{_mandir}/man8/rpcinfo.8*
1430     %{_mandir}/man8/ld.so*
1431     %{_datadir}/locale/locale.alias
1432     /sbin/sln
1433     %dir %{_prefix}/libexec/getconf
1434     %{_prefix}/libexec/getconf/*
1435     %endif
1436     %{_slibdir}/ld-%{glibcversion}.so
1437 tmb 155984 %if %isarch i386
1438 tmb 180 %{_slibdir}/ld-linux.so.2
1439     %endif
1440 rtp 75373 %if %isarch %arm
1441     %{_slibdir}/ld-linux.so.3
1442     %endif
1443 tmb 180 %if %isarch x86_64
1444     %{_slibdir}/ld-linux-x86-64.so.2
1445     %endif
1446 rtp 75373 %if %isarch %mips
1447     %{_slibdir}/ld.so.1
1448     %endif
1449 tmb 180 %{_slibdir}/lib*-[.0-9]*.so
1450     %{_slibdir}/lib*.so.[0-9]*
1451     %{_slibdir}/libSegFault.so
1452     %if "%{name}" == "glibc"
1453 tmb 156310 %dir %{_libdir}/audit
1454     %{_libdir}/audit/sotruss-lib.so
1455 tmb 180 %dir %{_libdir}/gconv
1456     %{_libdir}/gconv/*.so
1457     %{_libdir}/gconv/gconv-modules
1458     %ghost %{_libdir}/gconv/gconv-modules.cache
1459     %attr(4755,root,root) %{_prefix}/libexec/pt_chown
1460     %{_bindir}/catchsegv
1461     %{_bindir}/gencat
1462     %{_bindir}/getconf
1463     %{_bindir}/getent
1464     %{_bindir}/iconv
1465     %{_bindir}/ldd
1466 tmb 155984 %if %isarch i386
1467 tmb 180 %{_bindir}/lddlibc4
1468     %endif
1469     %{_bindir}/locale
1470     %{_bindir}/localedef
1471     %{_bindir}/rpcgen
1472 tmb 156310 %{_bindir}/sotruss
1473 tmb 180 %{_bindir}/sprof
1474     %{_bindir}/tzselect
1475     %{_sbindir}/iconvconfig
1476     %{_sbindir}/glibc-post-wrapper
1477     %endif
1478    
1479     %if %{build_biarch}
1480     %{_slibdir32}/ld-%{glibcversion}.so
1481     %{_slibdir32}/ld-linux*.so.2
1482     %{_slibdir32}/lib*-[.0-9]*.so
1483     %{_slibdir32}/lib*.so.[0-9]*
1484     %{_slibdir32}/libSegFault.so
1485 tmb 156310 %dir %{_prefix}/lib/audit
1486     %{_prefix}/lib/audit/sotruss-lib.so
1487 tmb 180 %dir %{_prefix}/lib/gconv
1488     %{_prefix}/lib/gconv/*
1489     %endif
1490 rtp 75373 %if %isarch mips mipsel
1491     %{_slibdir}32/ld-%{glibcversion}.so
1492     %{_slibdir}32/ld.so.1
1493     %{_slibdir}32/lib*-[.0-9]*.so
1494     %{_slibdir}32/lib*.so.[0-9]*
1495     %{_slibdir}32/libSegFault.so
1496     %dir %{_libdir}32/gconv
1497     %{_libdir}32/gconv/*
1498     %{_slibdir}64/ld-%{glibcversion}.so
1499     %{_slibdir}64/ld.so.1
1500     %{_slibdir}64/lib*-[.0-9]*.so
1501     %{_slibdir}64/lib*.so.[0-9]*
1502     %{_slibdir}64/libSegFault.so
1503     %dir %{_libdir}64/gconv
1504     %{_libdir}64/gconv/*
1505     %endif
1506    
1507 tmb 180 #
1508     # ldconfig
1509     #
1510     %if "%{name}" == "glibc"
1511     %defattr(-,root,root)
1512     /sbin/ldconfig
1513     %{_mandir}/man8/ldconfig*
1514     %ghost %{_sysconfdir}/ld.so.cache
1515     %dir %{_var}/cache/ldconfig
1516     %ghost %{_var}/cache/ldconfig/aux-cache
1517     %{_var}/lib/rpm/filetriggers/ldconfig.*
1518     %endif
1519    
1520     #
1521     # glibc-devel
1522     #
1523     %files devel -f devel.filelist
1524     %defattr(-,root,root)
1525     %doc README NEWS INSTALL FAQ BUGS NOTES PROJECTS CONFORMANCE
1526     %doc COPYING COPYING.LIB
1527     %doc documentation/* README.libm
1528     %doc hesiod/README.hesiod
1529     %doc crypt/README.ufc-crypt
1530 rtp 75373 %if "%{name}" == "glibc"
1531 tmb 180 %{_mandir}/man3/*
1532 rtp 75373 %endif
1533 tmb 180 %{_libdir}/libbsd-compat.a
1534     %{_libdir}/libbsd.a
1535     %{_libdir}/libc_nonshared.a
1536     %{_libdir}/libg.a
1537     %{_libdir}/libieee.a
1538     %{_libdir}/libmcheck.a
1539     %{_libdir}/libpthread_nonshared.a
1540     %if "%{name}" == "glibc"
1541     %{_libdir}/librpcsvc.a
1542     %endif
1543    
1544     %if %{build_biarch}
1545     %{_prefix}/lib/libbsd-compat.a
1546     %{_prefix}/lib/libbsd.a
1547     %{_prefix}/lib/libc_nonshared.a
1548     %{_prefix}/lib/libg.a
1549     %{_prefix}/lib/libieee.a
1550     %{_prefix}/lib/libmcheck.a
1551     %{_prefix}/lib/libpthread_nonshared.a
1552     %{_prefix}/lib/librpcsvc.a
1553     %endif
1554    
1555 rtp 75373 %if %isarch mips mipsel
1556     %{_libdir}32/libbsd-compat.a
1557     %{_libdir}32/libbsd.a
1558     %{_libdir}32/libc_nonshared.a
1559     %{_libdir}32/libg.a
1560     %{_libdir}32/libieee.a
1561     %{_libdir}32/libmcheck.a
1562     %{_libdir}32/libpthread_nonshared.a
1563     %if "%{name}" == "glibc"
1564     %{_libdir}32/librpcsvc.a
1565     %endif
1566     %{_libdir}64/libbsd-compat.a
1567     %{_libdir}64/libbsd.a
1568     %{_libdir}64/libc_nonshared.a
1569     %{_libdir}64/libg.a
1570     %{_libdir}64/libieee.a
1571     %{_libdir}64/libmcheck.a
1572     %{_libdir}64/libpthread_nonshared.a
1573     %if "%{name}" == "glibc"
1574     %{_libdir}64/librpcsvc.a
1575     %endif
1576     %endif
1577    
1578 tmb 180 #
1579     # glibc-static-devel
1580     #
1581     %files static-devel
1582     %defattr(-,root,root)
1583     %doc COPYING COPYING.LIB
1584     %{_libdir}/libBrokenLocale.a
1585     %{_libdir}/libanl.a
1586     %{_libdir}/libc.a
1587     %{_libdir}/libcrypt.a
1588     %{_libdir}/libdl.a
1589     %{_libdir}/libm.a
1590     %{_libdir}/libnsl.a
1591     %{_libdir}/libpthread.a
1592     %{_libdir}/libresolv.a
1593     %{_libdir}/librt.a
1594     %{_libdir}/libutil.a
1595    
1596     %if %{build_biarch}
1597     %{_prefix}/lib/libBrokenLocale.a
1598     %{_prefix}/lib/libanl.a
1599     %{_prefix}/lib/libc.a
1600     %{_prefix}/lib/libcrypt.a
1601     %{_prefix}/lib/libdl.a
1602     %{_prefix}/lib/libm.a
1603     %{_prefix}/lib/libnsl.a
1604     %{_prefix}/lib/libpthread.a
1605     %{_prefix}/lib/libresolv.a
1606     %{_prefix}/lib/librt.a
1607     %{_prefix}/lib/libutil.a
1608     %endif
1609    
1610 rtp 75373 %if %isarch mips mipsel
1611     %{_libdir}32/libBrokenLocale.a
1612     %{_libdir}32/libanl.a
1613     %{_libdir}32/libc.a
1614     %{_libdir}32/libcrypt.a
1615     %{_libdir}32/libdl.a
1616     %{_libdir}32/libm.a
1617     %{_libdir}32/libnsl.a
1618     %{_libdir}32/libpthread.a
1619     %{_libdir}32/libresolv.a
1620     %{_libdir}32/librt.a
1621     %{_libdir}32/libutil.a
1622    
1623     %{_libdir}64/libBrokenLocale.a
1624     %{_libdir}64/libanl.a
1625     %{_libdir}64/libc.a
1626     %{_libdir}64/libcrypt.a
1627     %{_libdir}64/libdl.a
1628     %{_libdir}64/libm.a
1629     %{_libdir}64/libnsl.a
1630     %{_libdir}64/libpthread.a
1631     %{_libdir}64/libresolv.a
1632     %{_libdir}64/librt.a
1633     %{_libdir}64/libutil.a
1634     %endif
1635    
1636 tmb 180 #
1637     # glibc-doc
1638     #
1639     %if %{build_doc}
1640     %files doc
1641     %defattr(-,root,root)
1642     %{_infodir}/libc.info*
1643     %endif
1644    
1645     #
1646     # glibc-doc-pdf
1647     #
1648     %if %{build_pdf_doc}
1649     %files doc-pdf
1650     %defattr(-,root,root)
1651     %doc manual/libc.pdf
1652     %endif
1653    
1654     #
1655     # glibc-debug
1656     #
1657     %if %{build_debug}
1658     %files debug
1659     %defattr(-,root,root)
1660     %dir %{_libdir}/debug
1661     %{_libdir}/debug/*.so
1662     %{_libdir}/debug/*.so.*
1663 rtp 75373 %if %isarch mips mipsel
1664     %dir %{_libdir}/debug/lib32
1665     %{_libdir}/debug/lib32/*.so
1666     %{_libdir}/debug/lib32/*.so.*
1667     %dir %{_libdir}/debug/lib64
1668     %{_libdir}/debug/lib64/*.so
1669     %{_libdir}/debug/lib64/*.so.*
1670 tmb 180 %endif
1671 rtp 75373 %endif
1672 tmb 180
1673     #
1674     # glibc-profile
1675     #
1676     %if %{build_profile}
1677     %files profile
1678     %defattr(-,root,root)
1679     %{_libdir}/lib*_p.a
1680     %if %{build_biarch}
1681     %{_prefix}/lib/lib*_p.a
1682     %endif
1683 rtp 75373 %if %isarch mips mipsel
1684     %{_libdir}32/lib*_p.a
1685     %{_libdir}64/lib*_p.a
1686 tmb 180 %endif
1687 rtp 75373 %endif
1688 tmb 180
1689     #
1690     # glibc-utils
1691     #
1692     %if %{build_utils}
1693     %files utils
1694     %defattr(-,root,root)
1695     %if %{build_biarch}
1696     %{_slibdir32}/libmemusage.so
1697     %{_slibdir32}/libpcprofile.so
1698     %endif
1699     %{_slibdir}/libmemusage.so
1700     %{_slibdir}/libpcprofile.so
1701     %{_bindir}/memusage
1702     %{_bindir}/memusagestat
1703     %{_bindir}/mtrace
1704     %{_bindir}/pcprofiledump
1705     %{_bindir}/xtrace
1706 rtp 75373 %if %isarch mips mipsel
1707     %{_slibdir}32/libmemusage.so
1708     %{_slibdir}32/libpcprofile.so
1709     %{_slibdir}64/libmemusage.so
1710     %{_slibdir}64/libpcprofile.so
1711 tmb 180 %endif
1712 rtp 75373 %endif
1713 tmb 180
1714     #
1715     # nscd
1716     #
1717     %if %{build_nscd}
1718     %files -n nscd
1719     %defattr(-,root,root)
1720     %config(noreplace) %{_sysconfdir}/nscd.conf
1721     %config(noreplace) %{_initrddir}/nscd
1722     %{_sbindir}/nscd
1723     %endif
1724    
1725     #
1726     # timezone
1727     #
1728     %if %{build_timezone}
1729     %files -n timezone
1730     %defattr(-,root,root)
1731     %{_sbindir}/zdump
1732     %{_sbindir}/zic
1733     %{_mandir}/man1/zdump.1*
1734     %dir %{_datadir}/zoneinfo
1735     %{_datadir}/zoneinfo/*
1736     %endif
1737    
1738     #
1739     # glibc-i18ndata
1740     #
1741     %if %{build_i18ndata}
1742     %files i18ndata
1743     %defattr(-,root,root)
1744     %dir %{_datadir}/i18n
1745     %dir %{_datadir}/i18n/charmaps
1746     %{_datadir}/i18n/charmaps/*
1747     %dir %{_datadir}/i18n/locales
1748     %{_datadir}/i18n/locales/*
1749     %{_datadir}/i18n/SUPPORTED
1750     %endif

  ViewVC Help
Powered by ViewVC 1.1.30