/[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 227986 - (hide annotations) (download)
Mon Apr 2 22:07:26 2012 UTC (12 years ago) by colin
Original Path: cauldron/glibc/current/SPECS/glibc.spec
File size: 50032 byte(s)
Fix PIDFile location in nscd systemd unit.
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 colin 227986 %define __glibcrelease 7
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 guillomovitch 227849 Source6: nscd.service
164     Source7: nscd.socket
165 tmb 180
166     # wrapper to avoid rpm circular dependencies
167     Source14: glibc-post-wrapper.c
168    
169     # Blowfish support
170 tmb 156153 Source16: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_ver}.tar.gz
171     Source17: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_ver}.tar.gz.sign
172 tmb 156157 Source18: http://cvsweb.openwall.com/cgi/cvsweb.cgi/~checkout~/Owl/packages/glibc/crypt_freesec.c
173     Source19: http://cvsweb.openwall.com/cgi/cvsweb.cgi/~checkout~/Owl/packages/glibc/crypt_freesec.h
174 tmb 180
175 rtp 75373 # tarball are at http://ftp.gnu.org/gnu/glibc/
176     # for snapshots :
177     # git clone git://sources.redhat.com/git/glibc-ports.git
178     # git archive --format=tar --prefix=glibc-ports-2.9/ HEAD | bzip2 -c > ../glibc-ports-2.9-$(date +%%Y%%m%%d).tar.bz2
179 tmb 155894 Source20: http://ftp.gnu.org/gnu/glibc/glibc-ports-%{portsversion}.tar.xz
180     %if %{RELEASE}
181     Source21: http://ftp.gnu.org/gnu/glibc/glibc-ports-%{portsversion}.tar.xz.sig
182     %endif
183 rtp 75373
184 tmb 180 Buildroot: %{_tmppath}/glibc-%{PACKAGE_VERSION}-root
185     %if %{build_cross}
186     Autoreq: false
187     Autoprov: false
188     %else
189     Provides: glibc-crypt_blowfish = %{crypt_bf_ver}
190     Provides: should-restart = system
191     %if %isarch %{xenarches}
192     Obsoletes: %{name}-xen
193     Provides: %{name}-xen
194     %endif
195     # The dynamic linker supports DT_GNU_HASH
196     Provides: rtld(GNU_HASH)
197     Autoreq: false
198     %endif
199     BuildRequires: patch, gettext, perl
200 tmb 191550 BuildRequires: kernel-userspace-headers
201 tmb 180 %if %{build_selinux}
202     BuildRequires: libselinux-devel >= 1.17.10
203     %endif
204     # need linker for -Wl,--hash-style=both (>= 2.16.91.0.7-6})
205     # need gnu indirect function for multiarch (>= 2.19.51.0.14-1)
206     %define binutils_version 2.19.51.0.14-1
207     BuildRequires: %{cross_prefix}binutils >= %{binutils_version}
208     # we need the static dash
209     %define ash_bin /bin/dash.static
210     Requires(pre): dash-static
211     Requires(post): dash-static
212     # we need an ldconfig with TLS support
213     %if %{build_cross}
214     BuildRequires: %{cross_prefix}gcc >= 3.2.2-4
215     %endif
216     %ifarch x86_64
217     BuildRequires: %{cross_prefix}gcc >= 3.1.1-0.5
218     %endif
219     BuildRequires: %{cross_prefix}gcc >= 4.0.1-2
220     %if !%{build_cross}
221 tmb 155984 %ifarch mips mipsel
222 tmb 180 Provides: ld.so.1
223     %endif
224     %endif
225    
226     # Old prelink versions brakes the system with glibc 2.11
227     Conflicts: prelink < 1:0.4.2-1.20091104.1
228    
229     BuildRequires: texinfo
230     %if %{build_pdf_doc}
231 tmb 155983 BuildRequires: texlive
232 tmb 180 %endif
233     %if %{build_utils}
234     BuildRequires: gd-devel
235     %endif
236     BuildRequires: autoconf2.5
237     BuildRequires: libcap-devel
238 anssi 188165 BuildRequires: rpm-mageia-setup-build >= 1.147
239 tmb 180 BuildRequires: spec-helper >= 0.31.2
240    
241 misc 58181 # make "localedef --add-to-archive" to follow symlink
242     # safe to send ustream, need to be kept for locales
243 tmb 180 Patch00: glibc-2.11.1-localedef-archive-follow-symlinks.patch
244 misc 58181
245     # various path fix, for _PATH_VI and _PATH_VARDB
246 tmb 180 Patch01: glibc-2.12.1-fhs.patch
247     Patch02: glibc-2.9-ldd-non-exec.patch
248 misc 58181 # try to fallback on loading /lib/libnss_*.so.X.Y when the loading
249     # of /lib/libnss_*.so.X failed. Should be dropped, IMHO.
250 tmb 180 Patch04: glibc-2.2-nss-upgrade.patch
251 misc 58181
252     # patch from https://qa.mandriva.com/show_bug.cgi?id=58834
253     # deferred upstream until rfc is changed, no need to push upstream
254 tmb 180 Patch05: glibc-2.12.1-assign-global-scope-to-RFC-1918-addresses.patch
255     Patch06: glibc-2.9-share-locale.patch
256 misc 58181
257     # default nsswitch.conf
258     # should be moved out patch and be a regular Source
259 tmb 180 Patch07: glibc-2.3.6-nsswitch.conf.patch
260 misc 58181
261     # use xvt instead of xterm in xtrace.sh
262     # cannot be pushed upstream as xvt is Ma* specific
263 tmb 180 Patch09: glibc-2.2.4-xterm-xvt.patch
264 misc 58181
265     # add transliteration for "COLON SIGN"
266     # ( used for the money of money of san salvador )
267 tmb 180 Patch11: glibc-2.4.90-compat-EUR-currencies.patch
268     Patch12: glibc-2.3.6-ppc-build-lddlibc4.patch
269 misc 58181
270     # fix the chkconfig header, should be sent upstream
271 tmb 180 Patch13: glibc-2.3.3-nscd-enable.patch
272 misc 58181
273     # disable cache for hosts on nscd, as this is seen as insecure
274     # if the system relie on reverse dns for security
275 tmb 180 Patch14: glibc-2.9-nscd-no-host-cache.patch
276 misc 58181
277 tmb 180 Patch17: glibc-2.4.90-i386-hwcapinfo.patch
278     Patch18: glibc-2.7-provide_CFI_for_the_outermost_function.patch
279 misc 58181
280     # another fix for nscd init script, make it start after network, ldap, mysql and ypbind
281     # should be sent upstream
282 tmb 180 Patch19: glibc-2.8-nscd-init-should-start.patch
283 misc 58181
284     # according to the patch : "The Linux kernel has a bug which silently ignore the invalid
285     # c_cflag on pty.". Patch is likely fixed in kernel, but this should be checked
286 tmb 180 Patch22: glibc-2.3.2-tcsetattr-kernel-bug-workaround.patch
287 misc 58181
288     # add some new timezone for various cities
289     # Halifax, Montreal, Johannesburg
290     # should be sent upstream ( I guess )
291 tmb 180 Patch23: glibc-2.3.4-timezone.patch
292     Patch24: glibc-2.10.1-biarch-cpp-defines.patch
293     Patch26: glibc-2.6-nice_fix.patch
294 misc 58181
295     # fix a typo, safe to send upstream
296 tmb 180 Patch27: glibc-2.8-ENOTTY-fr-translation.patch
297     Patch28: glibc-2.4.90-gcc4-fortify.patch
298     Patch29: glibc-2.3.5-biarch-utils.patch
299 misc 58181
300     # remove multiarch header, Ma* specific patch
301     # check if still needed or if the work was finished
302 tmb 180 Patch30: glibc-2.10.1-multiarch.patch
303     Patch31: glibc-2.4.90-i586-hptiming.patch
304 misc 58181
305     # do not use i686 optimised library if the processor do not support
306     # cmov ( some i686 cpu don't, from VIA iirc )
307     # shuld be sent upstream, IMHO
308 tmb 180 Patch32: glibc-2.3.4-i586-if-no-cmov.patch
309 misc 58181
310     # translation fixes, need to be checked with some i18n team member
311     # should be safe to send upstream once checked
312 tmb 180 Patch33: glibc-2.3.6-pt_BR-i18nfixes.patch
313     Patch34: glibc-2.4.90-testsuite-ldbl-bits.patch
314 misc 58181
315 tmb 155984 # disable parallel testsuite of rt on powerpc with SMT
316 tmb 180 Patch38: glibc-2.4.90-testsuite-rt-notparallel.patch
317     Patch39: glibc-2.10.1-mdv-owl-crypt_freesec.patch
318 tmb 156310 Patch40: glibc-2.14.1-avx-relocate_fcrypt.patch
319     Patch41: glibc-2.14.1-avx-increase_BF_FRAME.patch
320 tmb 180 Patch42: glibc-2.10.1-mdv-avx-owl-crypt.patch
321 misc 58181
322     # add support for sha256 and sha512 in crypt
323     # likely coming from owl
324 tmb 180 Patch43: glibc-2.7-mdv-wrapper_handle_sha.patch
325 misc 58181
326     # check for libcap, even if selinux is disabled
327     # should be sent upstream
328 tmb 155979 Patch44: glibc-2.14.1-dont-tie-libcap-with-selinux.patch
329 tmb 156969
330 rtp 75373 # change page size to 16k. mandatory for loongson
331     # but not necessary a good idea for other socs
332     Patch46: glibc_mips_16k_page_size.patch
333 tmb 156856
334 tmb 156969 # fix segfault in ld-2.14.1.so (glibc bz #12871)
335     Patch48: glibc-2.14.1-fix-segfault-at-dl-lookup.patch
336    
337 dmorgan 157664 Patch49: glibc2.14-revert-sunrpc-removal.patch
338 rtp 173897 Patch50: crypt_blowfish_arm.patch
339 dmorgan 157664
340 tmb 180 # Determine minium kernel versions
341 tmb 156055 %define enablekernel 2.6.33
342 tmb 180 Conflicts: kernel < %{enablekernel}
343    
344     # People changed location of rpm scripts...
345     %define rpmscripts /usr/lib/rpm/%{_real_vendor}
346    
347     # Don't try to explicitly provide GLIBC_PRIVATE versioned libraries
348     %define __find_provides %{_builddir}/%{source_dir}/find_provides.sh
349     %define __find_requires %{_builddir}/%{source_dir}/find_requires.sh
350    
351     %if !%{build_cross}
352     Obsoletes: ld.so
353     Provides: ld.so
354     %endif
355    
356     Obsoletes: ldconfig
357     Provides: ldconfig = %{glibcepoch}:%{glibcversion}-%{glibcrelease} /sbin/ldconfig
358    
359     %description
360     The glibc package contains standard libraries which are used by
361     multiple programs on the system. In order to save disk space and
362     memory, as well as to make upgrading easier, common system code is
363     kept in one place and shared between programs. This particular package
364     contains the most important sets of shared libraries: the standard C
365     library and the standard math library. Without these two libraries, a
366     Linux system will not function. The glibc package also contains
367     national language (locale) support.
368    
369     This package now also provides ldconfig which was package seperately in
370     the past. Ldconfig is a basic system program which determines run-time
371     link bindings between ld.so and shared libraries. Ldconfig scans a running
372     system and sets up the symbolic links that are used to load shared
373     libraries properly. It also creates a cache (/etc/ld.so.cache) which
374     speeds the loading of programs which use shared libraries.
375    
376     %package devel
377     Summary: Header and object files for development using standard C libraries
378     Group: Development/C
379     Requires(post): info-install
380     Requires(preun): info-install
381     Requires(post): coreutils
382     Requires(postun): coreutils, awk
383     Obsoletes: libc-debug, libc-headers, libc-devel, linuxthreads-devel, nptl-devel
384     %if !%{build_debug}
385     Obsoletes: %{name}-debug < 6:2.3.2-15
386     %endif
387     Requires: %{name} = %{glibcepoch}:%{glibcversion}-%{glibcrelease}
388     %if !%{build_cross}
389     Requires: linux-userspace-headers
390     %endif
391     %if !%isarch ppc
392     Conflicts: %{cross_prefix}gcc < 2.96-0.50
393     %endif
394     # needs a gcc4 fortify capable compiler
395     Conflicts: gcc4.0 < 4.0.1-2
396     %if %{build_cross}
397     Autoreq: false
398     Autoprov: false
399     %else
400     Autoreq: true
401     %endif
402     Provides: glibc-crypt_blowfish-devel = %{crypt_bf_ver}
403    
404     %description devel
405     The glibc-devel package contains the header and object files necessary
406     for developing programs which use the standard C libraries (which are
407     used by nearly all programs). If you are developing programs which
408     will use the standard C libraries, your system needs to have these
409     standard header and object files available in order to create the
410     executables.
411    
412     This package also includes the C header files for the Linux kernel.
413     The header files define structures and constants that are needed for
414     building most standard programs. The header files are also needed for
415     rebuilding the kernel.
416    
417     Install glibc-devel if you are going to develop programs which will
418     use the standard C libraries.
419    
420     %package static-devel
421     Summary: Static libraries for GNU C library
422     Group: Development/C
423     Requires: %{name}-devel = %{glibcepoch}:%{glibcversion}-%{glibcrelease}
424    
425     %description static-devel
426     The glibc-static-devel package contains the static libraries necessary
427     for developing programs which use the standard C libraries. Install
428     glibc-static-devel if you need to statically link your program or
429     library.
430    
431     %package profile
432     Summary: The GNU libc libraries, including support for gprof profiling
433     Group: Development/C
434     Obsoletes: libc-profile
435     Provides: libc-profile = %{glibcversion}-%{glibcrelease}
436     Autoreq: true
437    
438     %description profile
439     The glibc-profile package includes the GNU libc libraries and support
440     for profiling using the gprof program. Profiling is analyzing a
441     program's functions to see how much CPU time they use and determining
442     which functions are calling other functions during execution. To use
443     gprof to profile a program, your program needs to use the GNU libc
444     libraries included in glibc-profile (instead of the standard GNU libc
445     libraries included in the glibc package).
446    
447     If you are going to use the gprof program to profile a program, you'll
448     need to install the glibc-profile program.
449    
450     %package -n nscd
451     Summary: A Name Service Caching Daemon (nscd)
452     Group: System/Servers
453     Requires(pre): rpm-helper
454     Requires(preun): rpm-helper
455     Requires(post): rpm-helper
456     Requires(postun): rpm-helper
457     Autoreq: true
458    
459     %description -n nscd
460     Nscd caches name service lookups and can dramatically improve
461     performance with NIS+, and may help with DNS as well. Note that you
462     can't use nscd with 2.0 kernels because of bugs in the kernel-side
463     thread support. Unfortunately, nscd happens to hit these bugs
464     particularly hard.
465    
466     Install nscd if you need a name service lookup caching daemon, and
467     you're not using a version 2.0 kernel.
468    
469     %if %{build_debug}
470     %package debug
471     Summary: Shared standard C libraries with debugging information
472     Group: System/Libraries
473     Requires: %{name} = %{glibcepoch}:%{glibcversion}-%{glibcrelease}
474     Autoreq: false
475    
476     %description debug
477     The glibc-debug package contains shared standard C libraries with
478     debugging information. You need this only if you want to step into C
479     library routines during debugging.
480    
481     To use these libraries, you need to add %{_libdir}/debug to your
482     LD_LIBRARY_PATH variable prior to starting the debugger.
483     %endif
484    
485     %package utils
486     Summary: Development utilities from GNU C library
487     Group: Development/Other
488     Requires: %{name} = %{glibcepoch}:%{glibcversion}-%{glibcrelease}
489    
490     %description utils
491     The glibc-utils package contains memusage, a memory usage profiler,
492     mtrace, a memory leak tracer and xtrace, a function call tracer which
493     can be helpful during program debugging.
494    
495     If unsure if you need this, don't install this package.
496    
497     %if %{build_i18ndata}
498     %package i18ndata
499     Summary: Database sources for 'locale'
500     Group: System/Libraries
501    
502     %description i18ndata
503     This package contains the data needed to build the locale data files
504     to use the internationalization features of the GNU libc.
505     %endif
506    
507     %if %{build_timezone}
508     %package -n timezone
509     Summary: Time zone descriptions
510     Group: System/Base
511    
512     %description -n timezone
513     These are configuration files that describe possible
514     time zones.
515     %endif
516    
517     %package doc
518     Summary: GNU C library documentation
519     Group: Development/Other
520 tv 137807 BuildArch: noarch
521 tmb 180
522     %description doc
523     The glibc-doc package contains documentation for the GNU C library in
524     info format.
525    
526     %if %{build_pdf_doc}
527     %package doc-pdf
528     Summary: GNU C library documentation
529     Group: Development/Other
530 tv 137807 BuildArch: noarch
531 tmb 180
532     %description doc-pdf
533     The glibc-doc-pdf package contains the printable documentation for the
534     GNU C library in PDF format.
535     %endif
536    
537     %prep
538 tmb 155984 %setup -q -n %{source_dir} -a 3 -a 2 -a 16
539 tmb 180
540     %patch00 -p1 -b .localedef-archive-follow-symlinks
541     %patch01 -p1 -b .fhs
542     %patch02 -p1 -b .ldd-non-exec
543     %patch04 -p1 -b .nss-upgrade
544     %patch05 -p1 -b .assign-global-scope-to-RFC-1918-addresses
545     %patch06 -p1 -b .share-locale
546     %patch07 -p1 -b .nsswitch.conf
547     %patch09 -p1 -b .xterm-xvt
548     %patch11 -p1 -b .compat-EUR-currencies
549     %patch12 -p1 -b .ppc-lddlibc4
550     %patch13 -p1 -b .nscd-enable
551     %patch14 -p1 -b .nscd-no-host-cache
552     %patch17 -p1 -b .i386-hwcapinfo
553     %patch18 -p0 -R -b .provide_CFI_for_the_outermost_function
554     %patch19 -p1 -b .nscd-init-should-start
555 tmb 156310 # (tmb) 2011-10-18: disable to verify kernels are fixed.
556     #patch22 -p1 -b .tcsetattr-kernel-bug-workaround
557 tmb 180 %patch23 -p1 -b .timezone
558     %patch24 -p1 -b .biarch-cpp-defines
559     %patch26 -p1 -b .nice-fix
560     %patch27 -p1 -b .ENOTTY-fr-translation
561     %patch28 -p1 -b .gcc4-fortify
562     %patch29 -p1 -b .biarch-utils
563     %patch30 -p1 -b .multiarch-check
564     %patch31 -p1 -b .i586-hptiming
565     %patch32 -p1 -b .i586-if-no-cmov
566     %patch33 -p1 -b .pt_BR-i18nfixes
567     %patch34 -p1 -b .testsuite-ldbl-bits
568     %patch38 -p1 -b .testsuite-rt-notparallel
569     %patch44 -p1 -b .dont-tie-libcap-with-selinux
570 tmb 156969 %patch48 -p1 -b .fix-segfault-at-dl-lookup
571 dmorgan 157664 %patch49 -p1 -b .revert-rpc-change
572    
573 rtp 75373 %if %isarch %ports_arch
574 tmb 156873 tar xf %{SOURCE20}
575 rtp 75373 mv glibc-ports-%{glibcversion} ports
576 tmb 156873 %patch46 -p1 -b .pagesize
577 rtp 75373 %endif
578    
579 tmb 180 # copy freesec source
580     cp %{_sourcedir}/crypt_freesec.[ch] crypt/
581     echo "Applying crypt_blowfish patch:"
582     %patch42 -p1 -b .mdv-avx-owl-crypt
583     mv crypt/crypt.h crypt/gnu-crypt.h
584     cp -a crypt_blowfish-%{crypt_bf_ver}/*.[chS] crypt/
585    
586     ## FreeSec support for extended/new-style/BSDI hashes in crypt(3)
587     %patch39 -p1 -b .mdv-owl-crypt_freesec
588     %patch40 -p1 -b .avx-relocate_fcrypt
589     %patch41 -p1 -b .avx-increase_BF_FRAME
590     # add sha256-crypt and sha512-crypt support to the Openwall wrapper
591 tmb 156310 #patch43 -p0 -b .mdv-wrapper_handle_sha
592 rtp 173897 %patch50 -p1 -b .crypt_arm_asm
593 tmb 180
594     %if %{build_selinux}
595     # XXX kludge to build nscd with selinux support as it added -nostdinc
596     # so /usr/include/selinux is not found
597     ln -s %{_includedir}/selinux selinux
598     %endif
599    
600     find . -type f -size 0 -o -name "*.orig" -exec rm -f {} \;
601    
602     # (Anssi 03/2008) FIXME: use _provides_exceptions
603     cat > find_provides.sh << EOF
604     #!/bin/sh
605     %{rpmscripts}/find-provides | grep -v GLIBC_PRIVATE
606     exit 0
607     EOF
608     chmod +x find_provides.sh
609    
610     cat > find_requires.bootstrap.sh << EOF
611     /bin/sh %{SOURCE4} %{buildroot} %{_target_cpu} | grep -v "\(GLIBC_PRIVATE\|linux-gate\|linux-vdso\)"
612     exit 0
613     EOF
614     chmod +x find_requires.bootstrap.sh
615    
616     # XXX: use better way later to avoid LD_LIBRARY_PATH issue
617     cat %{rpmscripts}/find-requires | sed '/.*LD_LIBRARY_PATH.*/d;' > find_requires
618     chmod +x find_requires
619     # (Anssi 03/2008) FIXME: use _requires_exceptions
620     cat > find_requires.noprivate.sh << EOF
621     %{_builddir}/%{source_dir}/find_requires %{buildroot} %{_target_cpu} | \
622     grep -v GLIBC_PRIVATE
623     exit 0
624     EOF
625     chmod +x find_requires.noprivate.sh
626    
627     # FIXME: fix system rpm find-requires to use the prefix cross version
628     %if %{build_bootstrap} || "%{_target_cpu}" != "%{target_cpu}"
629     ln -s find_requires.bootstrap.sh find_requires.sh
630     %else
631     ln -s find_requires.noprivate.sh find_requires.sh
632     %endif
633    
634     # Remove patch backups from files we ship in glibc packages
635     rm -f ChangeLog.[^0-9]*
636     rm -f localedata/locales/{???_??,??_??}.*
637     rm -f localedata/locales/[a-z_]*.*
638    
639     %build
640     # Prepare test matrix in the next function
641     CheckList=$PWD/Check.list
642     rm -f $CheckList
643     touch $CheckList
644    
645     #
646     # CompareKver <kernel version>
647     # function to compare the desired kernel version with running kernel
648     # version (package releases not taken into account in comparison). The
649     # function returns:
650     # -1 = <kernel version> is lesser than current running kernel
651     # 0 = <kernel version> is equal to the current running kernel
652     # 1 = <kernel version> is greater than current running kernel
653     #
654     function CompareKver() {
655     v1=`echo $1 | sed 's/\.\?$/./'`
656     v2=`uname -r | sed 's/[^.0-9].*//' | sed 's/\.\?$/./'`
657     n=1
658     s=0
659     while true; do
660     c1=`echo "$v1" | cut -d "." -f $n`
661     c2=`echo "$v2" | cut -d "." -f $n`
662     if [ -z "$c1" -a -z "$c2" ]; then
663     break
664     elif [ -z "$c1" ]; then
665     s=-1
666     break
667     elif [ -z "$c2" ]; then
668     s=1
669     break
670     elif [ "$c1" -gt "$c2" ]; then
671     s=1
672     break
673     elif [ "$c2" -gt "$c1" ]; then
674     s=-1
675     break
676     fi
677     n=$((n + 1))
678     done
679     echo $s
680     }
681    
682     #
683     # BuildGlibc <arch> [<extra_configure_options>+]
684     #
685     function BuildGlibc() {
686     arch="$1"
687     shift 1
688    
689     # PowerPC CPU add-on
690     case $arch in
691     cpu-addon,*)
692     cpu=` echo "$arch" | sed -n "/.*,\([^,]*\),.*$/s//\1/p"`
693     arch=`echo "$arch" | sed -n "/.*,.*,\([^,]*\)$/s//\1/p"`
694     ;;
695     *)
696     cpu=$arch
697     ;;
698     esac
699    
700     # Select optimization flags and compiler to use
701     BuildAltArch="no"
702     BuildCompFlags=""
703     BuildFlags=""
704     case $arch in
705     i[3456]86 | athlon)
706     BuildFlags="-march=$arch -mtune=generic"
707     if [[ "`uname -m`" = "x86_64" ]]; then
708     BuildAltArch="yes"
709     BuildCompFlags="-m32"
710     fi
711     ;;
712     x86_64)
713     BuildFlags="-mtune=generic"
714     ;;
715 rtp 75373 mips|mipsel)
716     BuildFlags="-march=mips3"
717     BuildCompFlags="-march=mips3"
718     ;;
719     mips32|mips32el)
720     BuildFlags="-march=mips3 -mabi=n32"
721     BuildCompFlags="-march=mips3 -mabi=n32"
722     ;;
723     mips64|mips64el)
724     BuildFlags="-march=mips3 -mabi=64"
725     BuildCompFlags="-march=mips3 -mabi=64"
726     ;;
727     armv4t*)
728     BuildFlags="-march=armv4t"
729     BuildCompFlags="-march=armv4t"
730     ;;
731     armv5t*)
732     BuildFlags="-march=armv5t"
733     BuildCompFlags="-march=armv5t"
734     ;;
735     # to check
736     armv7*)
737     BuildFlags="-march=armv7-a"
738     BuildCompFlags="-march=armv7-a"
739     ;;
740 tmb 180 esac
741    
742     # Choose multiarch support
743     MultiArchFlags=
744     case $arch in
745     i686 | x86_64)
746     MultiArchFlags="--enable-multi-arch"
747     ;;
748     esac
749    
750     # Determine C & C++ compilers
751     BuildCC="%{__cc} $BuildCompFlags"
752     BuildCXX="%{__cxx} $BuildCompFlags"
753    
754     # Are we supposed to cross-compile?
755     if [[ "%{target_cpu}" != "%{_target_cpu}" ]]; then
756 rtp 75373 # Can't use BuildCC anymore with previous changes.
757     BuildCC="%{cross_program_prefix}gcc $BuildCompFlags"
758     BuildCXX="%{cross_program_prefix}g++ $BuildCompFlags"
759 tmb 180 BuildCross="--build=%{_target_platform}"
760     export libc_cv_forced_unwind=yes libc_cv_c_cleanup=yes
761     fi
762    
763     BuildFlags="$BuildFlags -DNDEBUG=1 -O2 -finline-functions -g"
764     if $BuildCC -v 2>&1 | grep -q 'gcc version 3.0'; then
765     # gcc3.0 had really poor inlining heuristics causing problems in
766     # resulting ld.so
767     BuildFlags="$BuildFlags -finline-limit=2000"
768     fi
769    
770     # Do not use direct references against %gs when accessing tls data
771     # XXX make it the default in GCC? (for other non glibc specific usage)
772     case $arch in
773     i[3456]86 | x86_64)
774     BuildFlags="$BuildFlags -mno-tls-direct-seg-refs"
775     ;;
776     esac
777    
778     # Arch specific compilation flags
779     if [[ "$arch" = "ppc64" ]]; then
780     BuildFlags="$BuildFlags -fno-inline-functions -mno-minimal-toc"
781     fi
782    
783     # Extra configure flags
784     ExtraFlags=
785     if [[ "%{build_profile}" != "0" ]]; then
786     ExtraFlags="$ExtraFlags --enable-profile"
787     fi
788    
789     # NPTL+TLS are now the default
790 rtp 75373 # check for other arches
791     %if %isarch %ports_arch
792     Pthreads="ports nptl"
793     %else
794     Pthreads="nptl"
795     %endif
796 tmb 180 TlsFlags="--with-tls --with-__thread"
797    
798     # Add-ons
799     AddOns="$Pthreads,libidn"
800     if [[ "$cpu" != "$arch" ]]; then
801     AddOns="$AddOns,powerpc-cpu"
802     BuildFlags="$BuildFlags -mcpu=$cpu"
803     ExtraFlags="$ExtraFlags --with-cpu=$cpu"
804     fi
805    
806     # Build with selinux support?
807     %if %{build_selinux}
808     SElinuxFlags="--with-selinux"
809     %else
810     SElinuxFlags="--without-selinux"
811     %endif
812    
813     # Kernel headers directory
814     KernelHeaders=%{_includedir}
815    
816     # Determine library name
817     glibc_cv_cc_64bit_output=no
818     if echo ".text" | $BuildCC -c -o test.o -xassembler -; then
819     case `/usr/bin/file test.o` in
820     *"ELF 64"*)
821     glibc_cv_cc_64bit_output=yes
822     ;;
823     esac
824     fi
825     rm -f test.o
826    
827     # Force a separate and clean object dir
828     rm -rf build-$cpu-linux
829     mkdir build-$cpu-linux
830     pushd build-$cpu-linux
831     [[ "$BuildAltArch" = "yes" ]] && touch ".alt" || touch ".main"
832     CC="$BuildCC" CXX="$BuildCXX" CFLAGS="$BuildFlags" ../configure \
833 rtp 75373 $arch-%{_real_vendor}-linux%{gnuext} $BuildCross \
834 tmb 180 --prefix=%{_prefix} \
835     --libexecdir=%{_prefix}/libexec \
836     --infodir=%{_infodir} \
837 rtp 75373 --enable-add-ons="$AddOns" --without-cvs \
838 tmb 180 $TlsFlags $ExtraFlags $MultiArchFlags $SElinuxFlags \
839     --enable-experimental-malloc \
840     --enable-kernel=%{enablekernel} \
841     --with-headers=$KernelHeaders ${1+"$@"}
842     %make -r
843     popd
844    
845     # All tests are expected to pass on certain platforms, depending also
846     # on the version of the kernel running
847     case $arch in
848     athlon | ia64 | ppc | ppc64)
849     if [ "`CompareKver %{check_min_kver}`" -lt 0 ]; then
850     check_flags=""
851     else
852     check_flags="-k"
853     fi
854     ;;
855     *)
856     check_flags="-k"
857     ;;
858     esac
859    
860     # Generate test matrix
861     [[ -d "build-$arch-linux" ]] || {
862     echo "ERROR: PrepareGlibcTest: build-$arch-linux does not exist!"
863     return 1
864     }
865     local BuildJobs="-j`getconf _NPROCESSORS_ONLN`"
866     echo "$BuildJobs -d build-$arch-linux $check_flags" >> $CheckList
867    
868     case $cpu in
869     i686|athlon) base_arch=i586;;
870     power*) base_arch=$arch;;
871     *) base_arch=none;;
872     esac
873    
874     [[ -d "build-$base_arch-linux" ]] && {
875     check_flags="$check_flags -l build-$base_arch-linux/elf/ld.so"
876     echo "$BuildJobs -d build-$arch-linux $check_flags" >> $CheckList
877     }
878     return 0
879     }
880    
881     # Build main glibc
882     BuildGlibc %{target_cpu}
883    
884     %if %{build_biarch}
885     %if %isarch x86_64
886     BuildGlibc i686
887     %endif
888     %endif
889 rtp 75373 %if %isarch mips
890     BuildGlibc mips64
891     BuildGlibc mips32
892     %endif
893     %if %isarch mipsel
894     BuildGlibc mips64el
895     BuildGlibc mips32el
896     %endif
897     %if %isarch mips64
898     BuildGlibc mips
899     BuildGlibc mips32
900     %endif
901     %if %isarch mips64el
902     BuildGlibc mipsel
903     BuildGlibc mips32el
904     %endif
905 tmb 180
906     # Build i686 libraries if not already building for i686/athlon
907     case %{target_cpu} in
908     i686 | athlon)
909     ;;
910     i[3-6]86)
911     BuildGlibc i686 --disable-profile
912     ;;
913     esac
914    
915     make -C crypt_blowfish-%{crypt_bf_ver} man
916    
917     %if %{build_check}
918     export TMPDIR=/tmp
919     export TIMEOUTFACTOR=16
920     Check="$PWD/glibc-check.sh"
921     cat %{SOURCE5} > $Check
922     chmod +x $Check
923     while read arglist; do
924     $Check $arglist || exit 1
925     done < $CheckList
926     %endif
927    
928     %install
929     rm -rf $RPM_BUILD_ROOT
930    
931     # force use of _NPROCESSORS_ONLN jobs since RPM_BUILD_NCPUS could be
932     # greater for icecream
933     BuildJobs="-j`getconf _NPROCESSORS_ONLN`"
934    
935     make install_root=$RPM_BUILD_ROOT install -C build-%{target_cpu}-linux
936     %if %{build_i18ndata}
937     (cd build-%{target_cpu}-linux;
938     make $BuildJobs -C ../localedata objdir=`pwd` \
939     install_root=$RPM_BUILD_ROOT \
940     install-locales
941     )
942     install -m 0644 localedata/SUPPORTED $RPM_BUILD_ROOT/%{_datadir}/i18n/
943     %endif
944     sh manpages/Script.sh
945    
946     # Empty filelist for non i686/athlon targets
947     > extralibs.filelist
948    
949     # Install biarch libraries
950 rtp 75373 %if %{build_biarch} || %isarch mips mipsel
951 tmb 180 %if %isarch x86_64
952 rtp 75373 ALT_ARCHES=i686-linux
953 tmb 180 %endif
954 rtp 75373 %if %isarch mips
955     ALT_ARCHES="mips64-linux mips32-linux"
956     %endif
957     %if %isarch mipsel
958     ALT_ARCHES="mips64el-linux mips32el-linux"
959     %endif
960     %if %isarch mips64
961     ALT_ARCHES="mips-linux mips32-linux"
962     %endif
963     %if %isarch mips64el
964     ALT_ARCHES="mipsel-linux mips32el-linux"
965     %endif
966    
967     for ALT_ARCH in $ALT_ARCHES; do
968 tmb 180 mkdir -p $RPM_BUILD_ROOT/$ALT_ARCH
969     make install_root=$RPM_BUILD_ROOT/$ALT_ARCH install -C build-$ALT_ARCH
970    
971     # Dispatch */lib only
972 rtp 75373 case "$ALT_ARCH" in
973     mips32*)
974     LIB="%{_slibdir}32"
975     ;;
976     mips64*)
977     LIB="%{_slibdir}64"
978     ;;
979     *)
980 rtp 75374 LIB=/lib
981 rtp 75373 ;;
982     esac
983     %if !%{build_cross}
984     mv $RPM_BUILD_ROOT/$ALT_ARCH/$LIB $RPM_BUILD_ROOT/$LIB
985     rm -f $RPM_BUILD_ROOT/$ALT_ARCH/%_prefix/lib/pt_chown
986 tmb 180 mv $RPM_BUILD_ROOT/$ALT_ARCH%{_prefix}/libexec/getconf/* \
987     $RPM_BUILD_ROOT%{_prefix}/libexec/getconf/
988 rtp 75373 [ ! -d $RPM_BUILD_ROOT/%{_prefix}/$LIB/ ] && mkdir -p $RPM_BUILD_ROOT/%{_prefix}/$LIB/
989     mv $RPM_BUILD_ROOT/$ALT_ARCH/%{_prefix}/$LIB/* $RPM_BUILD_ROOT/%{_prefix}/$LIB/
990     %else
991     mv $RPM_BUILD_ROOT/$ALT_ARCH/%{_prefix}/lib $RPM_BUILD_ROOT/$LIB
992 rtp 76126 rm -f $RPM_BUILD_ROOT/%{_prefix}/libexec/pt_chown
993 rtp 75373 rm -f $RPM_BUILD_ROOT/$LIB/pt_chown
994     sed -i $RPM_BUILD_ROOT/$LIB/libc.so -e "s!%{_slibdir}!$LIB!g"
995     %endif
996    
997 tmb 180 rm -rf $RPM_BUILD_ROOT/$ALT_ARCH
998     # XXX Dispatch 32-bit stubs
999     (sed '/^@/d' include/stubs-prologue.h; LC_ALL=C sort $(find build-$ALT_ARCH -name stubs)) \
1000     > $RPM_BUILD_ROOT%{_includedir}/gnu/stubs-32.h
1001 rtp 75373 done
1002 tmb 180 %endif
1003 rtp 81873 %if %{build_cross}
1004     rm -f $RPM_BUILD_ROOT/%{_prefix}/libexec/pt_chown
1005     %endif
1006 tmb 180
1007     # Install extra glibc libraries
1008     function InstallGlibc() {
1009     local BuildDir="$1"
1010     local SubDir="$2"
1011     local LibDir="$3"
1012    
1013     case $BuildDir in
1014     *) Pthreads=nptl ;;
1015     esac
1016    
1017     [[ -z "$LibDir" ]] && LibDir="%{_slibdir}"
1018    
1019     pushd $BuildDir
1020     mkdir -p $RPM_BUILD_ROOT$LibDir/$SubDir/
1021     install -m755 libc.so $RPM_BUILD_ROOT$LibDir/$SubDir/`basename $RPM_BUILD_ROOT$LibDir/libc-*.so`
1022     ln -sf `basename $RPM_BUILD_ROOT$LibDir/libc-*.so` $RPM_BUILD_ROOT$LibDir/$SubDir/`basename $RPM_BUILD_ROOT$LibDir/libc.so.*`
1023     install -m755 math/libm.so $RPM_BUILD_ROOT$LibDir/$SubDir/`basename $RPM_BUILD_ROOT$LibDir/libm-*.so`
1024     ln -sf `basename $RPM_BUILD_ROOT$LibDir/libm-*.so` $RPM_BUILD_ROOT$LibDir/$SubDir/`basename $RPM_BUILD_ROOT$LibDir/libm.so.*`
1025     install -m755 $Pthreads/libpthread.so $RPM_BUILD_ROOT$LibDir/$SubDir/`basename $RPM_BUILD_ROOT$LibDir/libpthread-*.so`
1026     ln -sf `basename $RPM_BUILD_ROOT$LibDir/libpthread-*.so` $RPM_BUILD_ROOT$LibDir/$SubDir/`basename $RPM_BUILD_ROOT$LibDir/libpthread.so.*`
1027     install -m755 ${Pthreads}_db/libthread_db.so $RPM_BUILD_ROOT$LibDir/$SubDir/`basename $RPM_BUILD_ROOT$LibDir/libthread_db-*.so`
1028     ln -sf `basename $RPM_BUILD_ROOT$LibDir/libthread_db-*.so` $RPM_BUILD_ROOT$LibDir/$SubDir/`basename $RPM_BUILD_ROOT$LibDir/libthread_db.so.*`
1029     install -m755 rt/librt.so $RPM_BUILD_ROOT$LibDir/$SubDir/`basename $RPM_BUILD_ROOT$LibDir/librt-*.so`
1030     ln -sf `basename $RPM_BUILD_ROOT$LibDir/librt-*.so` $RPM_BUILD_ROOT$LibDir/$SubDir/`basename $RPM_BUILD_ROOT$LibDir/librt.so.*`
1031     echo "%dir $LibDir/$SubDir" >> ../extralibs.filelist
1032     find $RPM_BUILD_ROOT$LibDir/$SubDir -maxdepth 1 -type f -o -type l | sed -e "s|$RPM_BUILD_ROOT||" >> ../extralibs.filelist
1033     popd
1034     }
1035    
1036     # Install arch-specific optimized libraries
1037     %if %isarch %{ix86}
1038     case %{target_cpu} in
1039     i[3-5]86)
1040     InstallGlibc build-i686-linux i686
1041     ;;
1042     esac
1043     %endif
1044    
1045     # NPTL <bits/stdio-lock.h> is not usable outside of glibc, so include
1046     # the generic one (RH#162634)
1047     install -m644 bits/stdio-lock.h $RPM_BUILD_ROOT%{_includedir}/bits/stdio-lock.h
1048    
1049     # Compatibility hack: this locale has vanished from glibc, but some other
1050     # programs are still using it. Normally we would handle it in the %pre
1051     # section but with glibc that is simply not an option
1052     mkdir -p $RPM_BUILD_ROOT%{_datadir}/locale/ru_RU/LC_MESSAGES
1053    
1054     # Remove the files we don't want to distribute
1055     rm -f $RPM_BUILD_ROOT%{_libdir}/libNoVersion*
1056     rm -f $RPM_BUILD_ROOT%{_slibdir}/libNoVersion*
1057    
1058     ln -sf libbsd-compat.a $RPM_BUILD_ROOT%{_libdir}/libbsd.a
1059     %if %{build_biarch}
1060     ln -sf libbsd-compat.a $RPM_BUILD_ROOT%{_prefix}/lib/libbsd.a
1061     %endif
1062 rtp 75373 %if %isarch mips mipsel
1063     ln -sf libbsd-compat.a $RPM_BUILD_ROOT%{_libdir}32/libbsd.a
1064     ln -sf libbsd-compat.a $RPM_BUILD_ROOT%{_libdir}64/libbsd.a
1065     %endif
1066 tmb 180
1067     %if "%{name}" == "glibc"
1068     install -m 644 mageia/nsswitch.conf $RPM_BUILD_ROOT%{_sysconfdir}/nsswitch.conf
1069     %endif
1070    
1071     # This is for ncsd - in glibc 2.2
1072     %if %{build_nscd}
1073     install -m 644 nscd/nscd.conf $RPM_BUILD_ROOT%{_sysconfdir}
1074     mkdir -p $RPM_BUILD_ROOT%{_initrddir}
1075     install -m 755 nscd/nscd.init $RPM_BUILD_ROOT%{_initrddir}/nscd
1076 guillomovitch 227849 install -d -m 755 %{buildroot}%{_unitdir}
1077     install -m 644 %{SOURCE6} %{buildroot}%{_unitdir}/nscd.service
1078     install -m 644 %{SOURCE7} %{buildroot}%{_unitdir}/nscd.socket
1079 tmb 180 %endif
1080    
1081     # These man pages require special attention
1082     mkdir -p %{buildroot}%{_mandir}/man3
1083     install -p -m 0644 crypt_blowfish-%{crypt_bf_ver}/*.3 %{buildroot}%{_mandir}/man3/
1084    
1085     # Useless and takes place
1086     rm -rf %buildroot/%{_datadir}/zoneinfo/{posix,right}
1087    
1088     # Include ld.so.conf
1089     %if "%{name}" == "glibc"
1090 rtp 75373 %if %isarch mips mipsel
1091     # needed to get a ldd which understands o32, n32, 64
1092     install -m 755 $RPM_BUILD_DIR/%{source_dir}/build-mips64el-linux/elf/ldd $RPM_BUILD_ROOT/%{_bindir}/ldd
1093     %endif
1094 tmb 180 echo "include /etc/ld.so.conf.d/*.conf" > $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf
1095     chmod 644 $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf
1096     mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf.d
1097    
1098     # ldconfig cache
1099     mkdir -p $RPM_BUILD_ROOT%{_var}/cache/ldconfig
1100     touch $RPM_BUILD_ROOT%{_var}/cache/ldconfig/aux-cache
1101    
1102     # automatic ldconfig cache update on rpm installs/removals
1103     # (see http://wiki.mandriva.com/en/Rpm_filetriggers)
1104     install -d %buildroot%{_var}/lib/rpm/filetriggers
1105     cat > %buildroot%{_var}/lib/rpm/filetriggers/ldconfig.filter << EOF
1106 rtp 75373 ^.((/lib|/usr/lib)(32|64)?/[^/]*\.so\.|/etc/ld.so.conf.d/[^/]*\.conf)
1107 tmb 180 EOF
1108     cat > %buildroot%{_var}/lib/rpm/filetriggers/ldconfig.script << EOF
1109     #!/bin/sh
1110     ldconfig -X
1111     EOF
1112     chmod 755 %buildroot%{_var}/lib/rpm/filetriggers/ldconfig.script
1113 rtp 75373 %endif
1114 tmb 180
1115     # Include %{_libdir}/gconv/gconv-modules.cache
1116     > $RPM_BUILD_ROOT%{_libdir}/gconv/gconv-modules.cache
1117     chmod 644 $RPM_BUILD_ROOT%{_libdir}/gconv/gconv-modules.cache
1118    
1119 rtp 76126 %if "%{name}" == "glibc"
1120 tmb 180 touch $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.cache
1121 rtp 76126 %endif
1122 tmb 180
1123     # Add libraries to debug sub-package
1124     %if %{build_debug}
1125     mkdir $RPM_BUILD_ROOT%{_libdir}/debug
1126     #cp -a $RPM_BUILD_ROOT%{_libdir}/*.a $RPM_BUILD_ROOT%{_libdir}/debug/
1127     #rm -f $RPM_BUILD_ROOT%{_libdir}/debug/*_p.a
1128     cp -a $RPM_BUILD_ROOT%{_slibdir}/lib*.so* $RPM_BUILD_ROOT%{_libdir}/debug/
1129    
1130     pushd $RPM_BUILD_ROOT%{_libdir}/debug
1131     for lib in *.so*; do
1132     [[ -f "$lib" ]] && DEBUG_LIBS="$DEBUG_LIBS %{_libdir}/debug/$lib"
1133     done
1134     popd
1135     %endif
1136    
1137     # Are we cross-compiling?
1138     Strip="strip"
1139     if [[ "%{_target_cpu}" != "%{target_cpu}" ]]; then
1140 rtp 75373 Strip="%{cross_program_prefix}$Strip"
1141 tmb 180 fi
1142    
1143     # Strip debugging info from all static libraries
1144 rtp 75373 pushd $RPM_BUILD_ROOT%{_slibdir}
1145 tmb 180 for i in *.a; do
1146     if [ -f "$i" ]; then
1147     case "$i" in
1148     *_p.a) ;;
1149     *) $Strip -g -R .comment $i ;;
1150     esac
1151     fi
1152     done
1153     popd
1154    
1155     # post install wrapper
1156     %__cc -Os -DSLIBDIR="\"%{_slibdir}\"" -DASH_BIN="\"%{ash_bin}\"" %{SOURCE14} -static \
1157     -L $RPM_BUILD_ROOT%{_libdir}/ \
1158     -o $RPM_BUILD_ROOT%{_sbindir}/glibc-post-wrapper
1159     chmod 700 $RPM_BUILD_ROOT%{_sbindir}/glibc-post-wrapper
1160    
1161     # rquota.x and rquota.h are now provided by quota
1162     rm -f $RPM_BUILD_ROOT%{_includedir}/rpcsvc/rquota.[hx]
1163    
1164     # Hardlink identical locale files together
1165     %if %{build_i18ndata}
1166 rtp 75373 gcc -O2 -o build-%{target_cpu}-linux/hardlink redhat/hardlink.c
1167     build-%{target_cpu}-linux/hardlink -vc $RPM_BUILD_ROOT%{_datadir}/locale
1168 tmb 180 %endif
1169    
1170     rm -rf $RPM_BUILD_ROOT%{_includedir}/netatalk/
1171    
1172     # Build file list for devel package
1173     find $RPM_BUILD_ROOT%{_includedir} -type f -or -type l > devel.filelist
1174     find $RPM_BUILD_ROOT%{_includedir} -type d | sed "s/^/%dir /" | \
1175     grep -v "%{_libdir}/libnss1.*.so$" | \
1176     grep -v "%{_includedir}$" | >> devel.filelist
1177     find $RPM_BUILD_ROOT%{_libdir} -maxdepth 1 -name "*.so" -o -name "*.o" | egrep -v "(libmemusage.so|libpcprofile.so)" >> devel.filelist
1178     # biarch libs
1179     %if %{build_biarch}
1180     find $RPM_BUILD_ROOT%{_prefix}/lib -maxdepth 1 -name "*.so" -o -name "*.o" | egrep -v "(libmemusage.so|libpcprofile.so)" >> devel.filelist
1181     %endif
1182 rtp 75373 %if %isarch mips mipsel
1183     find $RPM_BUILD_ROOT%{_libdir}32 -maxdepth 1 -name "*.so" -o -name "*.o" | egrep -v "(libmemusage.so|libpcprofile.so)" >> devel.filelist
1184     find $RPM_BUILD_ROOT%{_libdir}64 -maxdepth 1 -name "*.so" -o -name "*.o" | egrep -v "(libmemusage.so|libpcprofile.so)" >> devel.filelist
1185     %endif
1186 tmb 180 perl -pi -e "s|$RPM_BUILD_ROOT||" devel.filelist
1187    
1188 blino 3100 # /etc/localtime - we're proud of our timezone #Well we may put Paris
1189 tmb 180 %if %{build_timezone}
1190     rm -f $RPM_BUILD_ROOT%{_sysconfdir}/localtime
1191     cp -f $RPM_BUILD_ROOT%{_datadir}/zoneinfo/US/Eastern $RPM_BUILD_ROOT%{_sysconfdir}/localtime
1192     #ln -sf ..%{_datadir}/zoneinfo/US/Eastern $RPM_BUILD_ROOT%{_sysconfdir}/localtime
1193     %endif
1194    
1195     # [gg] build PDF documentation
1196     %if %{build_pdf_doc}
1197     (cd manual; texi2dvi -p -t @afourpaper -t @finalout libc.texinfo)
1198     %endif
1199    
1200     # the last bit: more documentation
1201     rm -rf documentation
1202     mkdir documentation
1203     cp timezone/README documentation/README.timezone
1204     cp ChangeLog* documentation
1205     gzip -9 documentation/ChangeLog*
1206     mkdir documentation/crypt_blowfish-%{crypt_bf_ver}
1207     install -m 644 crypt_blowfish-%{crypt_bf_ver}/{README,LINKS,PERFORMANCE} \
1208     documentation/crypt_blowfish-%{crypt_bf_ver}
1209    
1210     # Generate final rpm filelist, with localized libc.mo files
1211     rm -f rpm.filelist
1212     %if "%{name}" == "glibc"
1213     %find_lang libc
1214     perl -ne '/^\s*$/ or print' libc.lang > rpm.filelist
1215     %endif
1216     cat extralibs.filelist >> rpm.filelist
1217    
1218     # Remove unpackaged files
1219     rm -f $RPM_BUILD_ROOT%{_infodir}/dir.old*
1220     rm -rf $RPM_BUILD_ROOT%{_includedir}/asm-*/mach-*/
1221     rm -f $RPM_BUILD_ROOT%{_datadir}/locale/locale-archive*
1222    
1223     %if !%{build_utils}
1224     %if %{build_biarch}
1225     rm -f $RPM_BUILD_ROOT%{_slibdir32}/libmemusage.so
1226     rm -f $RPM_BUILD_ROOT%{_slibdir32}/libpcprofile.so
1227     %endif
1228 rtp 75373 %if %isarch mips mipsel
1229     rm -f $RPM_BUILD_ROOT%{_slibdir}32/libmemusage.so
1230     rm -f $RPM_BUILD_ROOT%{_slibdir}32/libpcprofile.so
1231     rm -f $RPM_BUILD_ROOT%{_slibdir}64/libmemusage.so
1232     rm -f $RPM_BUILD_ROOT%{_slibdir}64/libpcprofile.so
1233     %endif
1234 tmb 180 rm -f $RPM_BUILD_ROOT%{_slibdir}/libmemusage.so
1235     rm -f $RPM_BUILD_ROOT%{_slibdir}/libpcprofile.so
1236     rm -f $RPM_BUILD_ROOT%{_bindir}/memusage
1237     rm -f $RPM_BUILD_ROOT%{_bindir}/memusagestat
1238     rm -f $RPM_BUILD_ROOT%{_bindir}/mtrace
1239     rm -f $RPM_BUILD_ROOT%{_bindir}/pcprofiledump
1240     rm -f $RPM_BUILD_ROOT%{_bindir}/xtrace
1241     %endif
1242    
1243     %if !%{build_timezone}
1244     rm -f $RPM_BUILD_ROOT%{_sysconfdir}/localtime
1245     rm -f $RPM_BUILD_ROOT%{_sbindir}/zdump
1246     rm -f $RPM_BUILD_ROOT%{_sbindir}/zic
1247     rm -f $RPM_BUILD_ROOT%{_mandir}/man1/zdump.1*
1248     rm -rf $RPM_BUILD_ROOT%{_datadir}/zoneinfo
1249     %endif
1250    
1251     %if !%{build_i18ndata}
1252     rm -rf $RPM_BUILD_ROOT%{_datadir}/i18n
1253     %endif
1254    
1255     %if "%{name}" != "glibc"
1256     rm -rf $RPM_BUILD_ROOT/boot
1257     rm -rf $RPM_BUILD_ROOT/sbin
1258     rm -rf $RPM_BUILD_ROOT/usr/share
1259     rm -rf $RPM_BUILD_ROOT%{_bindir}
1260     rm -rf $RPM_BUILD_ROOT%{_sbindir}
1261     rm -rf $RPM_BUILD_ROOT%{_datadir}
1262     rm -rf $RPM_BUILD_ROOT%{_mandir}
1263     rm -rf $RPM_BUILD_ROOT%{_infodir}
1264     rm -rf $RPM_BUILD_ROOT%{_prefix}/etc
1265     rm -rf $RPM_BUILD_ROOT%{_libdir}/gconv
1266     %endif
1267    
1268     # In case we are cross-compiling, don't bother to remake symlinks and
1269     # fool spec-helper when stripping files
1270     %if "%{name}" != "glibc"
1271     export DONT_SYMLINK_LIBS=1
1272     export PATH=%{_bindir}:$PATH
1273     %endif
1274    
1275 anssi 188165 %if %build_debug
1276     export EXCLUDE_FROM_STRIP="$DEBUG_LIBS"
1277     %endif
1278 tmb 180
1279 anssi 188165 # This will make the '-g' argument to be passed to eu-strip for these
1280     # libraries, so that only debug symbols are stripped and gdb/valgrind continue
1281     # to work without needing glibc-debug package to be installed.
1282     export EXCLUDE_FROM_FULL_STRIP="ld-%{glibcversion}.so libpthread libc-%{glibcversion}.so"
1283    
1284 tmb 180 %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 guillomovitch 227849 %{_unitdir}/nscd.service
1724     %{_unitdir}/nscd.socket
1725 tmb 180 %endif
1726    
1727     #
1728     # timezone
1729     #
1730     %if %{build_timezone}
1731     %files -n timezone
1732     %defattr(-,root,root)
1733     %{_sbindir}/zdump
1734     %{_sbindir}/zic
1735     %{_mandir}/man1/zdump.1*
1736     %dir %{_datadir}/zoneinfo
1737     %{_datadir}/zoneinfo/*
1738     %endif
1739    
1740     #
1741     # glibc-i18ndata
1742     #
1743     %if %{build_i18ndata}
1744     %files i18ndata
1745     %defattr(-,root,root)
1746     %dir %{_datadir}/i18n
1747     %dir %{_datadir}/i18n/charmaps
1748     %{_datadir}/i18n/charmaps/*
1749     %dir %{_datadir}/i18n/locales
1750     %{_datadir}/i18n/locales/*
1751     %{_datadir}/i18n/SUPPORTED
1752     %endif

  ViewVC Help
Powered by ViewVC 1.1.30