/[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 272795 - (show annotations) (download)
Fri Jul 20 08:44:34 2012 UTC (11 years, 9 months ago) by tmb
Original Path: cauldron/glibc/current/SPECS/glibc.spec
File size: 49588 byte(s)
- drop obsolete glibc-redhat tarball
- add BR on hardlink as that was the only thing we used from
  the old glibc-redhat tarball


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

  ViewVC Help
Powered by ViewVC 1.1.30