/[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 227849 - (show annotations) (download)
Mon Apr 2 10:33:29 2012 UTC (12 years ago) by guillomovitch
Original Path: cauldron/glibc/current/SPECS/glibc.spec
File size: 50032 byte(s)
add systemd support for nscd
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 6
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 Source6: nscd.service
164 Source7: nscd.socket
165
166 # wrapper to avoid rpm circular dependencies
167 Source14: glibc-post-wrapper.c
168
169 # Blowfish support
170 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 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
175 # 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 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
184 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 BuildRequires: kernel-userspace-headers
201 %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 %ifarch mips mipsel
222 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 BuildRequires: texlive
232 %endif
233 %if %{build_utils}
234 BuildRequires: gd-devel
235 %endif
236 BuildRequires: autoconf2.5
237 BuildRequires: libcap-devel
238 BuildRequires: rpm-mageia-setup-build >= 1.147
239 BuildRequires: spec-helper >= 0.31.2
240
241 # make "localedef --add-to-archive" to follow symlink
242 # safe to send ustream, need to be kept for locales
243 Patch00: glibc-2.11.1-localedef-archive-follow-symlinks.patch
244
245 # various path fix, for _PATH_VI and _PATH_VARDB
246 Patch01: glibc-2.12.1-fhs.patch
247 Patch02: glibc-2.9-ldd-non-exec.patch
248 # 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 Patch04: glibc-2.2-nss-upgrade.patch
251
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 Patch05: glibc-2.12.1-assign-global-scope-to-RFC-1918-addresses.patch
255 Patch06: glibc-2.9-share-locale.patch
256
257 # default nsswitch.conf
258 # should be moved out patch and be a regular Source
259 Patch07: glibc-2.3.6-nsswitch.conf.patch
260
261 # use xvt instead of xterm in xtrace.sh
262 # cannot be pushed upstream as xvt is Ma* specific
263 Patch09: glibc-2.2.4-xterm-xvt.patch
264
265 # add transliteration for "COLON SIGN"
266 # ( used for the money of money of san salvador )
267 Patch11: glibc-2.4.90-compat-EUR-currencies.patch
268 Patch12: glibc-2.3.6-ppc-build-lddlibc4.patch
269
270 # fix the chkconfig header, should be sent upstream
271 Patch13: glibc-2.3.3-nscd-enable.patch
272
273 # disable cache for hosts on nscd, as this is seen as insecure
274 # if the system relie on reverse dns for security
275 Patch14: glibc-2.9-nscd-no-host-cache.patch
276
277 Patch17: glibc-2.4.90-i386-hwcapinfo.patch
278 Patch18: glibc-2.7-provide_CFI_for_the_outermost_function.patch
279
280 # another fix for nscd init script, make it start after network, ldap, mysql and ypbind
281 # should be sent upstream
282 Patch19: glibc-2.8-nscd-init-should-start.patch
283
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 Patch22: glibc-2.3.2-tcsetattr-kernel-bug-workaround.patch
287
288 # add some new timezone for various cities
289 # Halifax, Montreal, Johannesburg
290 # should be sent upstream ( I guess )
291 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
295 # fix a typo, safe to send upstream
296 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
300 # remove multiarch header, Ma* specific patch
301 # check if still needed or if the work was finished
302 Patch30: glibc-2.10.1-multiarch.patch
303 Patch31: glibc-2.4.90-i586-hptiming.patch
304
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 Patch32: glibc-2.3.4-i586-if-no-cmov.patch
309
310 # translation fixes, need to be checked with some i18n team member
311 # should be safe to send upstream once checked
312 Patch33: glibc-2.3.6-pt_BR-i18nfixes.patch
313 Patch34: glibc-2.4.90-testsuite-ldbl-bits.patch
314
315 # disable parallel testsuite of rt on powerpc with SMT
316 Patch38: glibc-2.4.90-testsuite-rt-notparallel.patch
317 Patch39: glibc-2.10.1-mdv-owl-crypt_freesec.patch
318 Patch40: glibc-2.14.1-avx-relocate_fcrypt.patch
319 Patch41: glibc-2.14.1-avx-increase_BF_FRAME.patch
320 Patch42: glibc-2.10.1-mdv-avx-owl-crypt.patch
321
322 # add support for sha256 and sha512 in crypt
323 # likely coming from owl
324 Patch43: glibc-2.7-mdv-wrapper_handle_sha.patch
325
326 # check for libcap, even if selinux is disabled
327 # should be sent upstream
328 Patch44: glibc-2.14.1-dont-tie-libcap-with-selinux.patch
329
330 # 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
334 # 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 Patch49: glibc2.14-revert-sunrpc-removal.patch
338 Patch50: crypt_blowfish_arm.patch
339
340 # Determine minium kernel versions
341 %define enablekernel 2.6.33
342 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 BuildArch: noarch
521
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 BuildArch: noarch
531
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 %setup -q -n %{source_dir} -a 3 -a 2 -a 16
539
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) 2011-10-18: disable to verify kernels are fixed.
556 #patch22 -p1 -b .tcsetattr-kernel-bug-workaround
557 %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 %patch48 -p1 -b .fix-segfault-at-dl-lookup
571 %patch49 -p1 -b .revert-rpc-change
572
573 %if %isarch %ports_arch
574 tar xf %{SOURCE20}
575 mv glibc-ports-%{glibcversion} ports
576 %patch46 -p1 -b .pagesize
577 %endif
578
579 # 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 #patch43 -p0 -b .mdv-wrapper_handle_sha
592 %patch50 -p1 -b .crypt_arm_asm
593
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 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 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 # Can't use BuildCC anymore with previous changes.
757 BuildCC="%{cross_program_prefix}gcc $BuildCompFlags"
758 BuildCXX="%{cross_program_prefix}g++ $BuildCompFlags"
759 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 # check for other arches
791 %if %isarch %ports_arch
792 Pthreads="ports nptl"
793 %else
794 Pthreads="nptl"
795 %endif
796 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 $arch-%{_real_vendor}-linux%{gnuext} $BuildCross \
834 --prefix=%{_prefix} \
835 --libexecdir=%{_prefix}/libexec \
836 --infodir=%{_infodir} \
837 --enable-add-ons="$AddOns" --without-cvs \
838 $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 %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
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 %if %{build_biarch} || %isarch mips mipsel
951 %if %isarch x86_64
952 ALT_ARCHES=i686-linux
953 %endif
954 %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 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 case "$ALT_ARCH" in
973 mips32*)
974 LIB="%{_slibdir}32"
975 ;;
976 mips64*)
977 LIB="%{_slibdir}64"
978 ;;
979 *)
980 LIB=/lib
981 ;;
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 mv $RPM_BUILD_ROOT/$ALT_ARCH%{_prefix}/libexec/getconf/* \
987 $RPM_BUILD_ROOT%{_prefix}/libexec/getconf/
988 [ ! -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 rm -f $RPM_BUILD_ROOT/%{_prefix}/libexec/pt_chown
993 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 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 done
1002 %endif
1003 %if %{build_cross}
1004 rm -f $RPM_BUILD_ROOT/%{_prefix}/libexec/pt_chown
1005 %endif
1006
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 %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
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 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 %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 %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 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 ^.((/lib|/usr/lib)(32|64)?/[^/]*\.so\.|/etc/ld.so.conf.d/[^/]*\.conf)
1107 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 %endif
1114
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 %if "%{name}" == "glibc"
1120 touch $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.cache
1121 %endif
1122
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 Strip="%{cross_program_prefix}$Strip"
1141 fi
1142
1143 # Strip debugging info from all static libraries
1144 pushd $RPM_BUILD_ROOT%{_slibdir}
1145 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 gcc -O2 -o build-%{target_cpu}-linux/hardlink redhat/hardlink.c
1167 build-%{target_cpu}-linux/hardlink -vc $RPM_BUILD_ROOT%{_datadir}/locale
1168 %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 %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 perl -pi -e "s|$RPM_BUILD_ROOT||" devel.filelist
1187
1188 # /etc/localtime - we're proud of our timezone #Well we may put Paris
1189 %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 %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 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 %if %build_debug
1276 export EXCLUDE_FROM_STRIP="$DEBUG_LIBS"
1277 %endif
1278
1279 # 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 %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 %{_unitdir}/nscd.service
1724 %{_unitdir}/nscd.socket
1725 %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