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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 173897 - (show 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 # 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 %define glibcversion 2.14.1
6 %define __glibcrelease 2
7 %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 %define portsversion %{glibcversion}
16 %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 %define portsversion 2.9
22 %endif
23
24 %define glibcrelease %mkrel %{_glibcrelease}
25
26 # crypt blowfish support
27 %define crypt_bf_ver 1.2
28
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 %define _prefix /usr/%{target_cpu}-%{_real_vendor}-linux%{gnuext}
38 %define cross_program_prefix %{target_cpu}-%{_real_vendor}-linux%{gnuext}-
39 %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 %define _lib lib
49 %define _libdir %{_exec_prefix}/%{_lib}
50 %define _slibdir %{_exec_prefix}/%{_lib}
51 %define _slibdir32 %{_exec_prefix}/lib
52 %define _includedir %{_prefix}/include
53 %else
54 %define gnuext %{_gnu}
55 %define target_cpu %{_target_cpu}
56 %define cross_prefix %{nil}
57 %define cross_program_prefix %{nil}
58 %define _slibdir /%{_lib}
59 %define _slibdir32 /lib
60 %endif
61
62 # Define target (base) architecture
63 %define arch %(echo %{target_cpu}|sed -e "s/\\(i.86\\|athlon\\)/i386/" -e "s/amd64/x86_64/")
64 %define isarch() %(case " %* " in (*" %{arch} "*) echo 1;; (*) echo 0;; esac)
65
66 %if %{build_cross}
67 %if %isarch %arm
68 %define gnuext -gnueabi
69 %else
70 %define gnuext -gnu
71 %endif
72 %endif
73
74 # Define Xen arches to build with -mno-tls-direct-direct-seg-refs
75 %define xenarches %{ix86} x86_64
76
77 # arches which requires glibc-port
78 %define ports_arch %arm %mips
79
80 # 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 %define check_min_kver 2.6.33
94
95 # Define to build a biarch package
96 %define build_biarch 0
97 %if %isarch x86_64 mips64 mips64el
98 %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 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 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
173 # 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 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
182 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 %ifarch mips mipsel
220 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 BuildRequires: texlive
230 %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 # make "localedef --add-to-archive" to follow symlink
240 # safe to send ustream, need to be kept for locales
241 Patch00: glibc-2.11.1-localedef-archive-follow-symlinks.patch
242
243 # various path fix, for _PATH_VI and _PATH_VARDB
244 Patch01: glibc-2.12.1-fhs.patch
245 Patch02: glibc-2.9-ldd-non-exec.patch
246 # 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 Patch04: glibc-2.2-nss-upgrade.patch
249
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 Patch05: glibc-2.12.1-assign-global-scope-to-RFC-1918-addresses.patch
253 Patch06: glibc-2.9-share-locale.patch
254
255 # default nsswitch.conf
256 # should be moved out patch and be a regular Source
257 Patch07: glibc-2.3.6-nsswitch.conf.patch
258
259 # use xvt instead of xterm in xtrace.sh
260 # cannot be pushed upstream as xvt is Ma* specific
261 Patch09: glibc-2.2.4-xterm-xvt.patch
262
263 # add transliteration for "COLON SIGN"
264 # ( used for the money of money of san salvador )
265 Patch11: glibc-2.4.90-compat-EUR-currencies.patch
266 Patch12: glibc-2.3.6-ppc-build-lddlibc4.patch
267
268 # fix the chkconfig header, should be sent upstream
269 Patch13: glibc-2.3.3-nscd-enable.patch
270
271 # disable cache for hosts on nscd, as this is seen as insecure
272 # if the system relie on reverse dns for security
273 Patch14: glibc-2.9-nscd-no-host-cache.patch
274
275 Patch17: glibc-2.4.90-i386-hwcapinfo.patch
276 Patch18: glibc-2.7-provide_CFI_for_the_outermost_function.patch
277
278 # another fix for nscd init script, make it start after network, ldap, mysql and ypbind
279 # should be sent upstream
280 Patch19: glibc-2.8-nscd-init-should-start.patch
281
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 Patch22: glibc-2.3.2-tcsetattr-kernel-bug-workaround.patch
285
286 # add some new timezone for various cities
287 # Halifax, Montreal, Johannesburg
288 # should be sent upstream ( I guess )
289 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
293 # fix a typo, safe to send upstream
294 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
298 # remove multiarch header, Ma* specific patch
299 # check if still needed or if the work was finished
300 Patch30: glibc-2.10.1-multiarch.patch
301 Patch31: glibc-2.4.90-i586-hptiming.patch
302
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 Patch32: glibc-2.3.4-i586-if-no-cmov.patch
307
308 # translation fixes, need to be checked with some i18n team member
309 # should be safe to send upstream once checked
310 Patch33: glibc-2.3.6-pt_BR-i18nfixes.patch
311 Patch34: glibc-2.4.90-testsuite-ldbl-bits.patch
312
313 # disable parallel testsuite of rt on powerpc with SMT
314 Patch38: glibc-2.4.90-testsuite-rt-notparallel.patch
315 Patch39: glibc-2.10.1-mdv-owl-crypt_freesec.patch
316 Patch40: glibc-2.14.1-avx-relocate_fcrypt.patch
317 Patch41: glibc-2.14.1-avx-increase_BF_FRAME.patch
318 Patch42: glibc-2.10.1-mdv-avx-owl-crypt.patch
319
320 # add support for sha256 and sha512 in crypt
321 # likely coming from owl
322 Patch43: glibc-2.7-mdv-wrapper_handle_sha.patch
323
324 # check for libcap, even if selinux is disabled
325 # should be sent upstream
326 Patch44: glibc-2.14.1-dont-tie-libcap-with-selinux.patch
327
328 # 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
332 # 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 Patch49: glibc2.14-revert-sunrpc-removal.patch
336 Patch50: crypt_blowfish_arm.patch
337
338 # Determine minium kernel versions
339 %define enablekernel 2.6.33
340 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 BuildArch: noarch
519
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 BuildArch: noarch
529
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 %setup -q -n %{source_dir} -a 3 -a 2 -a 16
537
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) 2011-10-18: disable to verify kernels are fixed.
554 #patch22 -p1 -b .tcsetattr-kernel-bug-workaround
555 %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 %patch48 -p1 -b .fix-segfault-at-dl-lookup
569 %patch49 -p1 -b .revert-rpc-change
570
571 %if %isarch %ports_arch
572 tar xf %{SOURCE20}
573 mv glibc-ports-%{glibcversion} ports
574 %patch46 -p1 -b .pagesize
575 %endif
576
577 # 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 #patch43 -p0 -b .mdv-wrapper_handle_sha
590 %patch50 -p1 -b .crypt_arm_asm
591
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 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 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 # Can't use BuildCC anymore with previous changes.
755 BuildCC="%{cross_program_prefix}gcc $BuildCompFlags"
756 BuildCXX="%{cross_program_prefix}g++ $BuildCompFlags"
757 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 # check for other arches
789 %if %isarch %ports_arch
790 Pthreads="ports nptl"
791 %else
792 Pthreads="nptl"
793 %endif
794 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 $arch-%{_real_vendor}-linux%{gnuext} $BuildCross \
832 --prefix=%{_prefix} \
833 --libexecdir=%{_prefix}/libexec \
834 --infodir=%{_infodir} \
835 --enable-add-ons="$AddOns" --without-cvs \
836 $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 %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
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 %if %{build_biarch} || %isarch mips mipsel
949 %if %isarch x86_64
950 ALT_ARCHES=i686-linux
951 %endif
952 %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 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 case "$ALT_ARCH" in
971 mips32*)
972 LIB="%{_slibdir}32"
973 ;;
974 mips64*)
975 LIB="%{_slibdir}64"
976 ;;
977 *)
978 LIB=/lib
979 ;;
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 mv $RPM_BUILD_ROOT/$ALT_ARCH%{_prefix}/libexec/getconf/* \
985 $RPM_BUILD_ROOT%{_prefix}/libexec/getconf/
986 [ ! -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 rm -f $RPM_BUILD_ROOT/%{_prefix}/libexec/pt_chown
991 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 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 done
1000 %endif
1001 %if %{build_cross}
1002 rm -f $RPM_BUILD_ROOT/%{_prefix}/libexec/pt_chown
1003 %endif
1004
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 %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
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 %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 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 ^.((/lib|/usr/lib)(32|64)?/[^/]*\.so\.|/etc/ld.so.conf.d/[^/]*\.conf)
1102 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 %endif
1109
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 %if "%{name}" == "glibc"
1115 touch $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.cache
1116 %endif
1117
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 Strip="%{cross_program_prefix}$Strip"
1136 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 pushd $RPM_BUILD_ROOT%{_slibdir}
1151 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 gcc -O2 -o build-%{target_cpu}-linux/hardlink redhat/hardlink.c
1173 build-%{target_cpu}-linux/hardlink -vc $RPM_BUILD_ROOT%{_datadir}/locale
1174 %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 %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 perl -pi -e "s|$RPM_BUILD_ROOT||" devel.filelist
1193
1194 # /etc/localtime - we're proud of our timezone #Well we may put Paris
1195 %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 %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 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 %endif
1346
1347 %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 %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 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 %if %isarch i386
1438 %{_slibdir}/ld-linux.so.2
1439 %endif
1440 %if %isarch %arm
1441 %{_slibdir}/ld-linux.so.3
1442 %endif
1443 %if %isarch x86_64
1444 %{_slibdir}/ld-linux-x86-64.so.2
1445 %endif
1446 %if %isarch %mips
1447 %{_slibdir}/ld.so.1
1448 %endif
1449 %{_slibdir}/lib*-[.0-9]*.so
1450 %{_slibdir}/lib*.so.[0-9]*
1451 %{_slibdir}/libSegFault.so
1452 %if "%{name}" == "glibc"
1453 %dir %{_libdir}/audit
1454 %{_libdir}/audit/sotruss-lib.so
1455 %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 %if %isarch i386
1467 %{_bindir}/lddlibc4
1468 %endif
1469 %{_bindir}/locale
1470 %{_bindir}/localedef
1471 %{_bindir}/rpcgen
1472 %{_bindir}/sotruss
1473 %{_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 %dir %{_prefix}/lib/audit
1486 %{_prefix}/lib/audit/sotruss-lib.so
1487 %dir %{_prefix}/lib/gconv
1488 %{_prefix}/lib/gconv/*
1489 %endif
1490 %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 #
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 %if "%{name}" == "glibc"
1531 %{_mandir}/man3/*
1532 %endif
1533 %{_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 %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 #
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 %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 #
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 %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 %endif
1671 %endif
1672
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 %if %isarch mips mipsel
1684 %{_libdir}32/lib*_p.a
1685 %{_libdir}64/lib*_p.a
1686 %endif
1687 %endif
1688
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 %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 %endif
1712 %endif
1713
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