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

  ViewVC Help
Powered by ViewVC 1.1.26