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

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

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.30