source: projects/specs/trunk/g/glibc/glibc-vl.spec @ 12342

Revision 12342, 64.5 KB checked in by tomop, 4 years ago (diff)

updated 5 packages

binutils-2.34-1

gcc-9.3.1-1

gdb-9.1-1

glibc-2.31-1

libtool-2.4.6-6

RevLine 
[12020]1%bcond_with gcc5
2%bcond_with systemd
3
[12342]4%define glibcversion 2.31
[5290]5%define glibcsrcdir glibc-%{glibcversion}
6%define build_compat32 %{?_with_compat32:1}%{!?_with_compat32:0}
[521]7### glibc.spec.in follows:
8%define run_glibc_tests 1
9%define auxarches athlon sparcv9v sparc64v alphaev6
[5290]10%if %{build_compat32}
11%define auxarches i586 athlon sparcv9 alphaev6
12%endif
[521]13%define xenarches i686 athlon
14%ifarch %{xenarches}
15%define buildxen 1
16%define xenpackage 0
17%else
18%define buildxen 0
19%define xenpackage 0
20%endif
[5290]21%ifarch ppc64
22%define buildpower6 1
[521]23%else
24%define buildpower6 0
25%endif
[5290]26%define biarcharches %{ix86} x86_64 ppc ppc64 s390 s390x
27%define debuginfocommonarches %{biarcharches} alpha alphaev6
28%define multiarcharches ppc ppc64 %{ix86} x86_64 %{sparc}
29# Remove -s to get verbose output.
30%define silentrules PARALLELMFLAGS=-s
[521]31
32Summary: The GNU libc libraries
33Summary(ja): GNU libc ライブラリ
34Name: glibc
35Version: %{glibcversion}
[12020]36Release: 1%{?_dist_release}
[521]37# GPLv2+ is used in a bunch of programs, LGPLv2+ is used for libraries.
38# Things that are linked directly into dynamically linked programs
39# and shared libraries (e.g. crt files, lib*_nonshared.a) have an additional
40# exception which allows linking it into any kind of programs or shared
41# libraries without restrictions.
42License: LGPLv2+ and LGPLv2+ with exceptions and GPLv2+
43Group: System Environment/Libraries
[5290]44URL: http://www.gnu.org/software/glibc/
[12342]45Source0: https://ftp.gnu.org/gnu/glibc/%{glibcsrcdir}.tar.xz
[7961]46Source1: build-locale-archive.c
[12020]47Source4: nscd.conf
[7961]48Source7: nsswitch.conf.vine
[12020]49Source8: power6emul.c
50Source9: bench.mk
51Source10: glibc-bench-compare
52# A copy of localedata/SUPPORTED in the Source0 tarball.  The
53# SUPPORTED file is used below to generate the list of locale
54# packages, using a Lua snippet.
55Source11: SUPPORTED
[5300]56
[12020]57Source1000: rpm-old-changelog.txt
[5300]58
[12020]59# patched form upstream
[12342]60Patch0: glibc-2.31-20200319.patch
[12020]61
[7961]62# patches from Fedora
[12020]63Patch1: glibc-post_upgrade.patch
64Patch2: glibc-fedora-nscd.patch
65Patch3: glibc-rh697421.patch
66Patch4: glibc-fedora-linux-tcsetattr.patch
67Patch5: glibc-rh741105.patch
68Patch6: glibc-fedora-localedef.patch
69Patch7: glibc-fedora-nis-rh188246.patch
70Patch8: glibc-fedora-manual-dircategory.patch
71Patch9: glibc-rh827510.patch
[12342]72# needed by build-locale-archive.c
[12020]73Patch10: glibc-fedora-locarchive.patch
74Patch12: glibc-rh819430.patch
75Patch13: glibc-fedora-localedata-rh61908.patch
76Patch14: glibc-fedora-__libc_multiple_libcs.patch
77Patch15: glibc-rh1070416.patch
78Patch16: glibc-nscd-sysconfig.patch
79Patch17: glibc-cs-path.patch
80Patch18: glibc-c-utf8-locale.patch
81Patch23: glibc-python3.patch
[12342]82#Patch28: glibc-rh1615608.patch
83Patch29: glibc-fedora-nsswitch.patch
[7961]84
85# patch for Vine
[12020]86#Patch10001: glibc-2.18-vine-build-env.patch
[7961]87
[10738]88# security
[7961]89
[521]90Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
91Obsoletes: glibc-profile < 2.4
92Provides: ldconfig
93# The dynamic linker supports DT_GNU_HASH
94Provides: rtld(GNU_HASH)
95Requires: glibc-common = %{version}-%{release}
96# Require libgcc in case some program calls pthread_cancel in its %%post
97Requires(pre): basesystem, libgcc
98# This is for building auxiliary programs like memusage, nscd
99# For initial glibc bootstraps it can be commented out
100BuildRequires: gd-devel libpng-devel zlib-devel texinfo
101BuildRequires: audit-libs-devel >= 1.1.3, sed >= 3.95, libcap-devel, gettext, nss-devel
[12225]102BuildRequires: python3-devel
[12020]103BuildRequires: bison
[521]104BuildRequires: /bin/ps, /bin/kill, /bin/awk
105# This is to ensure that __frame_state_for is exported by glibc
106# will be compatible with egcs 1.x.y
107BuildRequires: gcc >= 3.2
[12020]108%define enablekernel 3.2
[5290]109Conflicts: kernel < %{enablekernel}
[521]110%ifarch i386
[7961]111%define target_cpu i486
[521]112%else
[7961]113%define target_cpu %{_target_cpu}
[521]114%endif
[7961]115
116%define target %{_target_cpu}-vine-linux
117%ifarch %{arm}
118%define target %{_target_cpu}-vine-linuxeabi
119%endif
120%ifarch %{power64}
121%define target ppc64-vine-linux
122%endif
123
[521]124%ifarch %{multiarcharches}
125# Need STT_IFUNC support
126%ifarch ppc ppc64
127BuildRequires: binutils >= 2.20.51.0.2
128Conflicts: binutils < 2.20.51.0.2
129%else
130BuildRequires: binutils >= 2.19.51.0.10
131Conflicts: binutils < 2.19.51.0.10
132%endif
133# Earlier releases have broken support for IRELATIVE relocations
134Conflicts: prelink < 0.4.2
135%else
136# Need AS_NEEDED directive
137# Need --hash-style=* support
138BuildRequires: binutils >= 2.17.50.0.2-5
139%endif
140BuildRequires: gcc >= 3.2.1-5
141%ifarch ppc s390 s390x
142BuildRequires: gcc >= 4.1.0-0.17
143%endif
144%if 0%{?_enable_debug_packages}
145BuildRequires: elfutils >= 0.72
146BuildRequires: rpm >= 4.2-0.56
147%endif
[7961]148
149# The testsuite builds static C++ binaries that require a static
150# C++ runtime from libstdc++-static.
151BuildRequires: libstdc++-static
152
153BuildRequires: tzdata
154
[521]155%define __find_provides %{SOURCE10}
156%define __find_requires %{SOURCE11}
157%define _filter_GLIBC_PRIVATE 1
158
[4312]159Vendor: Project Vine
160Distribution: Vine Linux
161
[521]162%description
163The glibc package contains standard libraries which are used by
164multiple programs on the system. In order to save disk space and
165memory, as well as to make upgrading easier, common system code is
166kept in one place and shared between programs. This particular package
167contains the most important sets of shared libraries: the standard C
168library and the standard math library. Without these two libraries, a
169Linux system will not function.
170
171%description -l ja
172glibc パッケージはシステム上の複数のプログラムで使われる標準ライブラリを
173ふくみます。ディスクスペースとメモリを節約したり、アップグレードを
174用意にするために、共通のシステムコードは一つの場所におかれ、プログラム
175間で共有されます。この部分的なパッケージはシェアドライブラリのかなり
176重要なセットをふくみます: 標準 C ライブラリと標準数値ライブラリです。
177この二つのライブラリ抜きでは、Linux システムは機能しません。
178
179%package -n compat32-%{name}
180Summary: The GNU libc libraries.
181Summary(ja): GNU libc ライブラリ
182Group: System Environment/Libraries
[5290]183Requires: %{name} >= %{version}-%{release}
[521]184
185%description -n compat32-%{name}
186The glibc package contains standard libraries which are used by
187multiple programs on the system. In order to save disk space and
188memory, as well as to make upgrading easier, common system code is
189kept in one place and shared between programs. This particular package
190contains the most important sets of shared libraries: the standard C
191library and the standard math library. Without these two libraries, a
192Linux system will not function.
193
194%description -n compat32-%{name} -l ja
195glibc パッケージはシステム上の複数のプログラムで使われる標準ライブラリを
196ふくみます。ディスクスペースとメモリを節約したり、アップグレードを
197用意にするために、共通のシステムコードは一つの場所におかれ、プログラム
198間で共有されます。この部分的なパッケージはシェアドライブラリのかなり
199重要なセットをふくみます: 標準 C ライブラリと標準数値ライブラリです。
200この二つのライブラリ抜きでは、Linux システムは機能しません。
201
202%if %{xenpackage}
203%package xen
204Summary: The GNU libc libraries (optimized for running under Xen)
205Group: System Environment/Libraries
206Requires: glibc = %{version}-%{release}, glibc-utils = %{version}-%{release}
207
208%description xen
209The standard glibc package is optimized for native kernels and does not
210perform as well under the Xen hypervisor.  This package provides alternative
211library binaries that will be selected instead when running under Xen.
212
213Install glibc-xen if you might run your system under the Xen hypervisor.
214%endif
215
216%package devel
217Summary: Object files for development using standard C libraries.
218Summary(ja): 標準 C ライブラリで使われるオブジェクトファイル
219Group: Development/Libraries
220Requires(pre): /sbin/install-info
221Requires(pre): %{name}-headers
222Requires: %{name}-headers = %{version}-%{release}
223Requires: %{name} = %{version}-%{release}
224
225%description devel
226The glibc-devel package contains the object files necessary
227for developing programs which use the standard C libraries (which are
228used by nearly all programs).  If you are developing programs which
229will use the standard C libraries, your system needs to have these
230standard object files available in order to create the
231executables.
232
233Install glibc-devel if you are going to develop programs which will
234use the standard C libraries.
235
236%description devel -l ja
237glibc-devel パッケージには (ほとんどすべてのプログラムで使われる)
238標準 C ライブラリを使用したプログラムを開発するためのオブジェクトファイルが
239含まれます。標準 C ライブラリを使用するプログラムを開発する場合には、
240これらオブジェクトファイルを使用して実行ファイルを作成できます。
241
242標準 C ライブラリを使用するプログラムを開発するなら glibc-devel
243をインストールしてください。
244
245%package -n compat32-%{name}-devel
246Summary: Object files for development using standard C libraries.
247Summary(ja): 標準 C ライブラリで使われるオブジェクトファイル
248Group: Development/Libraries
[5290]249Requires: %{name}-devel = %{version}-%{release}
[521]250Requires: compat32-%{name} = %{version}-%{release}
251
252%description -n compat32-%{name}-devel
253The glibc-devel package contains the object files necessary
254for developing programs which use the standard C libraries (which are
255used by nearly all programs).  If you are developing programs which
256will use the standard C libraries, your system needs to have these
257standard object files available in order to create the
258executables.
259
260Install glibc-devel if you are going to develop programs which will
261use the standard C libraries.
262
263%description -n compat32-%{name}-devel -l ja
264glibc-devel パッケージには (ほとんどすべてのプログラムで使われる)
265標準 C ライブラリを使用したプログラムを開発するためのオブジェクトファイルが
266含まれます。標準 C ライブラリを使用するプログラムを開発する場合には、
267これらオブジェクトファイルを使用して実行ファイルを作成できます。
268
269標準 C ライブラリを使用するプログラムを開発するなら glibc-devel
270をインストールしてください。
271
272%package static
273Summary: C library static libraries for -static linking.
274Summary(ja): -static リンクのための静的 C ライブラリ
275Group: Development/Libraries
276Requires: %{name}-devel = %{version}-%{release}
277
278%description static
279The glibc-static package contains the C library static libraries
280for -static linking.  You don't need these, unless you link statically,
281which is highly discouraged.
282
283%description static -l ja
284glibc-static パッケージには -static リンクで使用する静的 C ライブラリが
285入っています。
286静的ライブラリが必要な場合でなければ、このパッケージをインストールする
287ことは避けて下さい。
288
[3081]289%package -n compat32-%{name}-static
290Summary: C library static libraries for -static linking.
291Summary(ja): -static リンクのための静的 C ライブラリ
292Group: Development/Libraries
293Requires: %{name}-devel = %{version}-%{release}
294Requires: %{name}-static = %{version}-%{release}
295Requires: compat32-%{name}-devel = %{version}-%{release}
296
297%description -n compat32-%{name}-static
298The glibc-static package contains the C library static libraries
299for -static linking.  You don't need these, unless you link statically,
300which is highly discouraged.
301
302%description -n compat32-%{name}-static -l ja
303glibc-static パッケージには -static リンクで使用する静的 C ライブラリが
304入っています。
305静的ライブラリが必要な場合でなければ、このパッケージをインストールする
306ことは避けて下さい。
307
[521]308%package headers
309Summary: Header files for development using standard C libraries.
310Summary(ja): 標準 C ライブラリで使われるヘッダーファイル
311Group: Development/Libraries
312Provides: %{name}-headers(%{_target_cpu})
313%ifarch x86_64
314# If both -m32 and -m64 is to be supported on AMD64, x86_64 glibc-headers
315# have to be installed, not i586 ones.
316Obsoletes: %{name}-headers(i586)
317Obsoletes: %{name}-headers(i686)
318%endif
319Requires(pre): kernel-headers
320Requires: kernel-headers >= 2.2.1, %{name} = %{version}-%{release}
321BuildRequires: kernel-headers >= 2.6.22
322
323%description headers
324The glibc-headers package contains the header files necessary
325for developing programs which use the standard C libraries (which are
326used by nearly all programs).  If you are developing programs which
327will use the standard C libraries, your system needs to have these
328standard header files available in order to create the
329executables.
330
331Install glibc-headers if you are going to develop programs which will
332use the standard C libraries.
333
[5290]334%description headers -l ja
[521]335glibc-headers パッケージには (ほとんどすべてのプログラムで使われる)
336標準 C ライブラリを使用したプログラムを開発するためのヘッダーファイルが
337含まれます。標準 C ライブラリを使用するプログラムを開発する場合には、
338これら標準ヘッダーファイルを使用して実行ファイルを作成できます。
339
340標準 C ライブラリを使用するプログラムを開発するなら glibc-headers
341をインストールしてください。
342
343%package common
344Summary: Common binaries and locale data for glibc
345Summary(ja): glibc 用共通バイナリとロケールデータ
346Requires: %{name} = %{version}-%{release}
347Requires: tzdata >= 2003a
348Group: System Environment/Base
349
350%description common
351The glibc-common package includes common binaries for the GNU libc
352libraries, as well as national language (locale) support.
353This package include ja and en locale-archive.
354
355%description common -l ja
356glibc-common パッケージには GNU libc ライブラリ用の共用バイナリに
357加えて、言語(ロケール)サポートや時間帯データベースが収められています。
358このパッケージには日本語と英語のみの locale-archive が含まれます。
359
360%package common-extra
361Summary: Extra Locale data for glibc
362Summary(ja): glibc 用ロケールデータ(日本語以外)
363Autoreq: false
364Requires(pre): %{name}-common = %{version}-%{release}
365Group: System Environment/Base
366
367%description common-extra
368The glibc-common-extra package includes national language (locale)
369support except for English and Japanese.
370
371%description common-extra -l ja
372glibc-common-extra パッケージには GNU libc ライブラリ用の英語と
373日本語以外の言語(ロケール)が収められています。
374
[12020]375%package locale-source
376Summary: The sources for the locales of glibc
377Summary(ja): glibc 用ロケールデータのソース
378Requires: %{name} = %{version}-%{release}
379Requires: %{name}-common = %{version}-%{release}
380
381%description locale-source
382The sources for all locales provided in glibc. If you are building
383custom locales you will most likely use these sources as the basis
384for your new locale.
385
[521]386%package -n nscd
387Summary: A Name Service Caching Daemon (nscd).
388Summary(ja): ネームサービスキャッシングデーモン (nscd)
389Group: System Environment/Daemons
[5290]390Requires: %{name} = %{version}-%{release}
[521]391Requires: audit-libs >= 1.1.3
392Requires(pre): /sbin/chkconfig, /usr/sbin/useradd, /usr/sbin/userdel, sh-utils
393
394%description -n nscd
395Nscd caches name service lookups and can dramatically improve
396performance with NIS+, and may help with DNS as well.
397
398%description -n nscd -l ja
399nscd はネームサービス参照をキャッシュし、NIS+ のパフォーマンスを
400劇的にに改善することができます。DNS のパフォーマンス向上にも同様に寄与します。
401
402%package utils
403Summary: Development utilities from GNU C library
404Summary(ja): GNU C ライブラリの開発ユーティリティ
405Group: Development/Tools
406Requires: %{name} = %{version}-%{release}
407
408%description utils
409The glibc-utils package contains memusage, a memory usage profiler,
410mtrace, a memory leak tracer and xtrace, a function call tracer
411which can be helpful during program debugging.
412
413If unsure if you need this, don't install this package.
414
415%description utils -l ja
416glibc-utils にはプログラムのデバッグに便利な以下のツールが収録されています:
417memusage (メモリ使用量プロファイラ)、mtrace (メモリリークトレーサ)、
418xtrace (関数呼出しトレーサ)。
419
420これらが必要かどうか分からない場合は、インストールする必要はありません。
421
422%if 0%{?_enable_debug_packages}
423%define debug_package %{nil}
424%define __debug_install_post %{nil}
425%global __debug_package 1
426
427%package debuginfo
428Summary: Debug information for package %{name}
429Group: Development/Debug
430AutoReqProv: no
431%ifarch %{debuginfocommonarches}
432Requires: glibc-debuginfo-common = %{version}-%{release}
433%else
434%ifarch %{ix86}
435Obsoletes: glibc-debuginfo-common
436%endif
437%endif
438
439%description debuginfo
440This package provides debug information for package %{name}.
441Debug information is useful when developing applications that use this
442package or when debugging this package.
443
444This package also contains static standard C libraries with
445debugging information.  You need this only if you want to step into
446C library routines during debugging programs statically linked against
447one or more of the standard C libraries.
448To use this debugging information, you need to link binaries
449with -static -L%{_prefix}/lib/debug%{_prefix}/%{_lib} compiler options.
450
451%ifarch %{debuginfocommonarches}
452
453%package debuginfo-common
454Summary: Debug information for package %{name}
455Group: Development/Debug
456AutoReqProv: no
457
458%description debuginfo-common
459This package provides debug information for package %{name}.
460Debug information is useful when developing applications that use this
461package or when debugging this package.
462
463%endif
464%endif
465
466%prep
[12020]467%autosetup -n %{glibcsrcdir} -p1
[7961]468
[12020]469# Make benchmark scripts executable
470chmod +x benchtests/scripts/*.py scripts/pylint
[521]471
[12020]472# Remove all files generated from patching.
[521]473find . -type f -size 0 -o -name "*.orig" -exec rm -f {} \;
[12020]474
475# Ensure timestamps on configure files are current to prevent
476# regenerating them.
[521]477touch `find . -name configure`
[12020]478
479# Ensure *-kw.h files are current to prevent regenerating them.
[521]480touch locale/programs/*-kw.h
481
[12020]482# Verify that our copy of localedata/SUPPORTED matches the glibc
483# version.
484#
485# The separate file copy is used by the Lua parser above.
486# Patches or new upstream versions may change the list of locales,
487# which changes the set of langpacks we need to build.  Verify the
488# differences then update the copy of SUPPORTED.  This approach has
489# two purposes: (a) avoid spurious changes to the set of langpacks,
490# and (b) the Lua snippet can use a fully patched-up version
491# of the localedata/SUPPORTED file.
492diff -u %{SOURCE11} localedata/SUPPORTED
493
494cp -f %{SOURCE1000} ./
495
[521]496%build
[12020]497
498# We build using the native system compilers.
[521]499GCC=gcc
500GXX=g++
[12020]501
502# Part of rpm_inherit_flags.  Is overridden below.
503rpm_append_flag ()
504{
505    BuildFlags="$BuildFlags $*"
506}
507
508# Propagates the listed flags to rpm_append_flag if supplied by
509# redhat-rpm-config.
510BuildFlags="-O2 -g"
511rpm_inherit_flags ()
512{
513        local reference=" $* "
514        local flag
515        for flag in $RPM_OPT_FLAGS $RPM_LD_FLAGS ; do
516                if echo "$reference" | grep -q -F " $flag " ; then
517                        rpm_append_flag "$flag"
518                fi
519        done
520}
521
522# Propgate select compiler flags from redhat-rpm-config.  These flags
523# are target-dependent, so we use only those which are specified in
524# redhat-rpm-config.  We keep the -m32/-m32/-m64 flags to support
525# multilib builds.
526#
527# Note: For building alternative run-times, care is required to avoid
528# overriding the architecture flags which go into CC/CXX.  The flags
529# below are passed in CFLAGS.
530
531rpm_inherit_flags \
532        "-Wp,-D_GLIBCXX_ASSERTIONS" \
533        "-fasynchronous-unwind-tables" \
534%if %{without gcc5}
535        "-fstack-clash-protection" \
[521]536%endif
[12020]537        "-funwind-tables" \
538        "-m31" \
539        "-m32" \
540        "-m64" \
541        "-march=i686" \
542        "-march=x86-64" \
543        "-march=z13" \
544        "-march=z14" \
545        "-march=zEC12" \
546        "-mfpmath=sse" \
547        "-msse2" \
548        "-mstackrealign" \
549        "-mtune=generic" \
550        "-mtune=z13" \
551        "-mtune=z14" \
552        "-mtune=zEC12" \
553        "-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1" \
[521]554
[12020]555# Propagate additional build flags to BuildFlagsNonshared.  This is
556# very special because some of these files are part of the startup
557# code.  We essentially hope that these flags have little effect
558# there, and only specify the, for consistency, so that annobin
559# records the expected compiler flags.
560BuildFlagsNonshared=
561rpm_append_flag () {
562    BuildFlagsNonshared="$BuildFlagsNonshared $*"
563}
564rpm_inherit_flags \
565        "-Wp,-D_FORTIFY_SOURCE=2" \
566
567# Special flag to enable annobin annotations for statically linked
568# assembler code.  Needs to be passed to make; not preserved by
569# configure.
570%define glibc_make_flags_as ASFLAGS="-g -Wa,--generate-missing-build-notes=yes"
571%define glibc_make_flags %{glibc_make_flags_as}
572
573##############################################################################
574# %%build - Generic options.
575##############################################################################
[521]576EnableKernel="--enable-kernel=%{enablekernel}"
[12020]577# Save the used compiler and options into the file "Gcc" for use later
578# by %%install.
[521]579echo "$GCC" > Gcc
580
[12020]581##############################################################################
582# build()
583#       Build glibc in `build-%{target}$1', passing the rest of the arguments
584#       as CFLAGS to the build (not the same as configure CFLAGS). Several
585#       global values are used to determine build flags, kernel version,
586#       system tap support, etc.
587##############################################################################
[7961]588build()
[521]589{
[12020]590        local builddir=build-%{target}${1:+-$1}
591        ${1+shift}
592        rm -rf $builddir
593        mkdir $builddir
594        pushd $builddir
595        ../configure CC="$GCC" CXX="$GXX" CFLAGS="$BuildFlags $*" \
596                --prefix=%{_prefix} \
597                --with-headers=%{_prefix}/include $EnableKernel \
598                --with-nonshared-cflags="$BuildFlagsNonshared" \
599                --enable-bind-now \
600                --build=%{target} \
601                --enable-stack-protector=strong \
602%ifarch %{pie_arches}
603                --enable-static-pie \
[521]604%endif
[12020]605                --enable-tunables \
606%if 0
607                --enable-systemtap \
608%endif
609                ${core_with_options} \
610%ifarch x86_64 %{ix86}
611%if %{without gcc5}
612               --enable-cet \
613%endif
614%endif
615%ifarch %{ix86}
616                --disable-multi-arch \
617%endif
618%if %{without werror}
619                --disable-werror \
620%endif
621                --disable-profile \
622                --without-selinux \
623                --disable-crypt ||
624                { cat config.log; false; }
[521]625
[12020]626        make %{?_smp_mflags} -O -r %{glibc_make_flags}
627        popd
[521]628}
629
[12020]630# Default set of compiler options.
[7961]631build
[521]632
633
[12020]634%install
635rm -rf %{buildroot}
636# The built glibc is installed into a subdirectory of $RPM_BUILD_ROOT.
637# For a system glibc that subdirectory is "/" (the root of the filesystem).
638# This is called a sysroot (system root) and can be changed if we have a
639# distribution that supports multiple installed glibc versions.
640%define glibc_sysroot $RPM_BUILD_ROOT
[521]641
[12020]642# Remove existing file lists.
643find . -type f -name '*.filelist' -exec rm -rf {} \;
[521]644
[12020]645# Ensure the permissions of errlist.c do not change.  When the file is
646# regenerated the Makefile sets the permissions to 444. We set it to 644
647# to match what comes out of git. The tarball of the git archive won't have
648# correct permissions because git doesn't track all of the permissions
649# accurately (see git-cache-meta if you need that). We also set it to 644 to
650# match pre-existing rpms. We do this *after* the build because the build
651# might regenerate the file and set the permissions to 444.
652chmod 644 sysdeps/gnu/errlist.c
653
654# Reload compiler and build options that were used during %%build.
[521]655GCC=`cat Gcc`
656
[12020]657# Build and install:
658make -j1 install_root=%{glibc_sysroot} install -C build-%{target}
659
660# If we are not building an auxiliary arch then install all of the supported
661# locales.
[521]662%ifnarch %{auxarches}
[12020]663pushd build-%{target}
664# Do not use a parallel make here because the hardlink optimization in
665# localedef is not fully reproducible when running concurrently.
666make install_root=%{glibc_sysroot} \
667        install-locales -C ../localedata objdir=`pwd`
668popd
[521]669%endif
670
671
[12020]672# install_different:
673#       Install all core libraries into DESTDIR/SUBDIR. Either the file is
674#       installed as a copy or a symlink to the default install (if it is the
675#       same). The path SUBDIR_UP is the prefix used to go from
676#       DESTDIR/SUBDIR to the default installed libraries e.g.
677#       ln -s SUBDIR_UP/foo.so DESTDIR/SUBDIR/foo.so.
678#       When you call this function it is expected that you are in the root
679#       of the build directory, and that the default build directory is:
680#       "../build-%{target}" (relatively).
681#       The primary use of this function is to install alternate runtimes
682#       into the build directory and avoid duplicating this code for each
683#       runtime.
[7961]684install_different()
685{
[12020]686        local lib libbase libbaseso dlib
687        local destdir="$1"
688        local subdir="$2"
689        local subdir_up="$3"
690        local libdestdir="$destdir/$subdir"
691        # All three arguments must be non-zero paths.
692        if ! [ "$destdir" \
693               -a "$subdir" \
694               -a "$subdir_up" ]; then
695                echo "One of the arguments to install_different was emtpy."
696                exit 1
697        fi
698        # Create the destination directory and the multilib directory.
699        mkdir -p "$destdir"
700        mkdir -p "$libdestdir"
701        # Walk all of the libraries we installed...
702        for lib in libc math/libm nptl/libpthread rt/librt nptl_db/libthread_db
703        do
704                libbase=${lib#*/}
705                # Take care that `libbaseso' has a * that needs expanding so
706                # take care with quoting.
707                libbaseso=$(basename %{glibc_sysroot}/%{_lib}/${libbase}-*.so)
708                # Only install if different from default build library.
709                if cmp -s ${lib}.so ../build-%{target}/${lib}.so; then
710                        ln -sf "$subdir_up"/$libbaseso $libdestdir/$libbaseso
711                else
712                        cp -a ${lib}.so $libdestdir/$libbaseso
713                fi
714                dlib=$libdestdir/$(basename %{glibc_sysroot}/%{_lib}/${libbase}.so.*)
715                ln -sf $libbaseso $dlib
716        done
[7961]717}
718
[12020]719##############################################################################
[521]720# Remove the files we don't want to distribute
[12020]721##############################################################################
[521]722
[12020]723# Remove the libNoVersion files.
724# XXX: This looks like a bug in glibc that accidentally installed these
725#      wrong files. We probably don't need this today.
726rm -f %{glibc_sysroot}/%{_libdir}/libNoVersion*
727rm -f %{glibc_sysroot}/%{_lib}/libNoVersion*
[521]728
[12020]729# Remove the old nss modules.
730rm -f %{glibc_sysroot}/%{_lib}/libnss1-*
731rm -f %{glibc_sysroot}/%{_lib}/libnss-*.so.1
[521]732
[12020]733# This statically linked binary is no longer necessary in a world where
734# the default Fedora install uses an initramfs, and further we have rpm-ostree
735# which captures the whole userspace FS tree.
736# Further, see https://github.com/projectatomic/rpm-ostree/pull/1173#issuecomment-355014583
737rm -f %{glibc_sysroot}/{usr/,}sbin/sln
[521]738
[12020]739######################################################################
740# Run ldconfig to create all the symbolic links we need
741######################################################################
[521]742
[12020]743# Note: This has to happen before creating /etc/ld.so.conf.
[521]744
[12020]745mkdir -p %{glibc_sysroot}/var/cache/ldconfig
746truncate -s 0 %{glibc_sysroot}/var/cache/ldconfig/aux-cache
[521]747
[12020]748# ldconfig is statically linked, so we can use the new version.
749%{glibc_sysroot}/sbin/ldconfig -N -r %{glibc_sysroot}
[521]750
[12020]751##############################################################################
752# Install info files
753##############################################################################
[521]754
[12020]755%if %{with docs}
756# Move the info files if glibc installed them into the wrong location.
757if [ -d %{glibc_sysroot}%{_prefix}/info -a "%{_infodir}" != "%{_prefix}/info" ]; then
758  mkdir -p %{glibc_sysroot}%{_infodir}
759  mv -f %{glibc_sysroot}%{_prefix}/info/* %{glibc_sysroot}%{_infodir}
760  rm -rf %{glibc_sysroot}%{_prefix}/info
761fi
[521]762
[12020]763# Compress all of the info files.
764gzip -9nvf %{glibc_sysroot}%{_infodir}/libc*
[521]765
[12020]766%else
767rm -f %{glibc_sysroot}%{_infodir}/dir
768rm -f %{glibc_sysroot}%{_infodir}/libc.info*
769%endif
[521]770
[12020]771##############################################################################
772# Create locale sub-package file lists
773##############################################################################
[521]774
[12020]775rm -f %{glibc_sysroot}/etc/localtime
776cp -f %{_datadir}/zoneinfo/Asia/Tokyo %{glibc_sysroot}/etc/localtime
[521]777
778%ifnarch %{auxarches}
779olddir=`pwd`
[12020]780pushd %{glibc_sysroot}%{_prefix}/lib/locale
781rm -f locale-archive
[521]782# Intentionally we do not pass --alias-file=, aliases will be added
783# by build-locale-archive.
[7961]784$olddir/build-%{target}/elf/ld.so \
785        --library-path $olddir/build-%{target}/ \
[12020]786        $olddir/build-%{target}/locale/localedef \
787        --prefix %{glibc_sysroot} --add-to-archive \
788        eo *_*
789# Setup the locale-archive template for use by glibc-all-langpacks.
[521]790mv locale-archive{,-extra.tmpl}
[7961]791$olddir/build-%{target}/elf/ld.so \
792        --library-path $olddir/build-%{target}/ \
[12020]793        $olddir/build-%{target}/locale/localedef \
794        --prefix %{glibc_sysroot} --add-to-archive \
795        ja_JP* en_US*
[521]796mv locale-archive{,.tmpl}
797cp -a locale-archive{.tmpl,-ja.tmpl}
[12020]798# Create the file lists for the language specific sub-packages:
799for i in eo *_*
800do
801    lang=${i%%_*}
802#    if [ ! -e langpack-${lang}.filelist ]; then
803#        echo "%dir %{_prefix}/lib/locale" >> locales.filelist
804#    fi
805    echo "%dir  %{_prefix}/lib/locale/$i" >> locales.filelist
806    echo "%{_prefix}/lib/locale/$i/*" >> locales.filelist
807done
[521]808popd
[12020]809pushd %{glibc_sysroot}%{_prefix}/share/locale
810for i in */LC_MESSAGES/libc.mo
811do
812    locale=${i%%%%/*}
813    lang=${locale%%%%_*}
814    echo "%lang($lang) %{_prefix}/share/locale/${i}" \
815         >> %{glibc_sysroot}%{_prefix}/lib/locale/locales.filelist
816done
817popd
818mv  %{glibc_sysroot}%{_prefix}/lib/locale/*.filelist .
[521]819%endif
820
[12020]821##############################################################################
822# Install configuration files for services
823##############################################################################
[521]824
[12020]825install -p -m 644 %{SOURCE7} %{glibc_sysroot}/etc/nsswitch.conf
[521]826
[12020]827mkdir -p %{glibc_sysroot}/etc/default
828install -p -m 644 nis/nss %{glibc_sysroot}/etc/default/nss
[521]829
[12020]830%ifnarch %{auxarches}
831# This is for ncsd - in glibc 2.2
832install -m 644 nscd/nscd.conf %{glibc_sysroot}/etc
833%if %{with systemd}
834mkdir -p %{glibc_sysroot}%{_tmpfilesdir}
835install -m 644 %{SOURCE4} %{buildroot}%{_tmpfilesdir}
836mkdir -p %{glibc_sysroot}/lib/systemd/system
837install -m 644 nscd/nscd.service nscd/nscd.socket %{glibc_sysroot}/lib/systemd/system
838%else
839mkdir -p %{glibc_sysroot}/etc/rc.d/init.d
840install -m 755 nscd/nscd.init %{glibc_sysroot}/etc/rc.d/init.d/nscd
841%endif
842%endif
[521]843
[12020]844# Include ld.so.conf
845echo 'include ld.so.conf.d/*.conf' > %{glibc_sysroot}/etc/ld.so.conf
846truncate -s 0 %{glibc_sysroot}/etc/ld.so.cache
847chmod 644 %{glibc_sysroot}/etc/ld.so.conf
848mkdir -p %{glibc_sysroot}/etc/ld.so.conf.d
849%ifnarch %{auxarches}
850mkdir -p %{glibc_sysroot}/etc/sysconfig
851truncate -s 0 %{glibc_sysroot}/etc/sysconfig/nscd
852truncate -s 0 %{glibc_sysroot}/etc/gai.conf
853%endif
[521]854
[12020]855# Include %{_libdir}/gconv/gconv-modules.cache
856truncate -s 0 %{glibc_sysroot}%{_libdir}/gconv/gconv-modules.cache
857chmod 644 %{glibc_sysroot}%{_libdir}/gconv/gconv-modules.cache
[521]858
[12020]859# Install the upgrade program
860install -m 700 build-%{target}/elf/glibc_post_upgrade \
861  %{glibc_sysroot}%{_prefix}/sbin/glibc_post_upgrade.%{_target_cpu}
[521]862
[12020]863##############################################################################
864# Install debug copies of unstripped static libraries
865# - This step must be last in order to capture any additional static
866#   archives we might have added.
867##############################################################################
[521]868
[12020]869# If we are building a debug package then copy all of the static archives
870# into the debug directory to keep them as unstripped copies.
871%if 0%{?_enable_debug_packages}
872mkdir -p %{glibc_sysroot}%{_prefix}/lib/debug%{_libdir}
873cp -a %{glibc_sysroot}%{_libdir}/*.a \
874        %{glibc_sysroot}%{_prefix}/lib/debug%{_libdir}/
875rm -f %{glibc_sysroot}%{_prefix}/lib/debug%{_libdir}/*_p.a
[521]876%endif
877
[12020]878# Remove any zoneinfo files; they are maintained by tzdata.
879rm -rf %{glibc_sysroot}%{_prefix}/share/zoneinfo
[521]880
[12020]881# Make sure %config files have the same timestamp across multilib packages.
882#
883# XXX: Ideally ld.so.conf should have the timestamp of the spec file, but there
884# doesn't seem to be any macro to give us that.  So we do the next best thing,
885# which is to at least keep the timestamp consistent.  The choice of using
886# glibc_post_upgrade.c is arbitrary.
887touch -r %{SOURCE0} %{glibc_sysroot}/etc/ld.so.conf
888touch -r sunrpc/etc.rpc %{glibc_sysroot}/etc/rpc
[521]889
[7961]890pushd build-%{target}
[12020]891$GCC -Os -g -static -o build-locale-archive %{SOURCE1} \
[7961]892        ../build-%{target}/locale/locarchive.o \
893        ../build-%{target}/locale/md5.o \
[12020]894        ../build-%{target}/locale/record-status.o \
[7961]895        -I. -DDATADIR=\"%{_datadir}\" -DPREFIX=\"%{_prefix}\" \
896        -L../build-%{target} \
897        -B../build-%{target}/csu/ -lc -lc_nonshared
[12020]898install -m 700 build-locale-archive %{glibc_sysroot}%{_prefix}/sbin/build-locale-archive
[7961]899popd
[521]900
[12020]901# Lastly copy some additional documentation for the packages.
[521]902rm -rf documentation
903mkdir documentation
904cp timezone/README documentation/README.timezone
905cp posix/gai.conf documentation/
906
907%ifarch s390x
908# Compatibility symlink
[12020]909mkdir -p %{glibc_sysroot}/lib
910ln -sf /%{_lib}/ld64.so.1 %{glibc_sysroot}/lib/ld64.so.1
[521]911%endif
912
[12020]913%if %{with benchtests}
914# Build benchmark binaries.  Ignore the output of the benchmark runs.
[7961]915pushd build-%{target}
[12020]916make BENCH_DURATION=1 bench-build
[7961]917popd
918
[12020]919# Copy over benchmark binaries.
920mkdir -p %{glibc_sysroot}%{_prefix}/libexec/glibc-benchtests
921cp $(find build-%{target}/benchtests -type f -executable) %{glibc_sysroot}%{_prefix}/libexec/glibc-benchtests/
922# ... and the makefile.
923for b in %{SOURCE9} %{SOURCE10}; do
924        cp $b %{glibc_sysroot}%{_prefix}/libexec/glibc-benchtests/
925done
926# .. and finally, the comparison scripts.
927cp benchtests/scripts/benchout.schema.json %{glibc_sysroot}%{_prefix}/libexec/glibc-benchtests/
928cp benchtests/scripts/compare_bench.py %{glibc_sysroot}%{_prefix}/libexec/glibc-benchtests/
929cp benchtests/scripts/import_bench.py %{glibc_sysroot}%{_prefix}/libexec/glibc-benchtests/
930cp benchtests/scripts/validate_benchout.py %{glibc_sysroot}%{_prefix}/libexec/glibc-benchtests/
[521]931%endif
[7961]932
[12020]933%if 0%{?_enable_debug_packages}
934# The #line directives gperf generates do not give the proper
935# file name relative to the build directory.
936pushd locale
937ln -s programs/*.gperf .
[7961]938popd
[12020]939pushd iconv
940ln -s ../locale/programs/charmap-kw.gperf .
941popd
942%endif # %{?_enable_debug_packages}
943
944%if %{with docs}
945# Remove the `dir' info-heirarchy file which will be maintained
946# by the system as it adds info files to the install.
947rm -f %{glibc_sysroot}%{_infodir}/dir
[521]948%endif
949
[12020]950%ifnarch %{auxarches}
951truncate -s 0 %{glibc_sysroot}/%{_prefix}/lib/locale/locale-archive
952mkdir -p %{glibc_sysroot}/var/{db,run}/nscd
953touch %{glibc_sysroot}/var/{db,run}/nscd/{passwd,group,hosts,services}
954touch %{glibc_sysroot}/var/run/nscd/{socket,nscd.pid}
[521]955%endif
956
[12020]957# Move libpcprofile.so and libmemusage.so into the proper library directory.
958# They can be moved without any real consequences because users would not use
959# them directly.
960mkdir -p %{glibc_sysroot}%{_libdir}
961mv -f %{glibc_sysroot}/%{_lib}/lib{pcprofile,memusage}.so \
962        %{glibc_sysroot}%{_libdir}
963
964# Strip all of the installed object files.
965strip -g %{glibc_sysroot}%{_libdir}/*.o
966
[7961]967###############################################################################
968# Rebuild libpthread.a using --whole-archive to ensure all of libpthread
969# is included in a static link. This prevents any problems when linking
970# statically, using parts of libpthread, and other necessary parts not
971# being included. Upstream has decided that this is the wrong approach to
972# this problem and that the full set of dependencies should be resolved
973# such that static linking works and produces the most minimally sized
974# static application possible.
975###############################################################################
[12020]976pushd %{glibc_sysroot}%{_prefix}/%{_lib}/
[521]977$GCC -r -nostdlib -o libpthread.o -Wl,--whole-archive ./libpthread.a
978rm libpthread.a
979ar rcs libpthread.a libpthread.o
980rm libpthread.o
981popd
[12020]982
983# The xtrace and memusage scripts have hard-coded paths that need to be
984# translated to a correct set of paths using the $LIB token which is
985# dynamically translated by ld.so as the default lib directory.
986for i in %{glibc_sysroot}%{_prefix}/bin/{xtrace,memusage}; do
987%if %{with bootstrap}
988  test -w $i || continue
989%endif
990  sed -e 's~=/%{_lib}/libpcprofile.so~=%{_libdir}/libpcprofile.so~' \
991      -e 's~=/%{_lib}/libmemusage.so~=%{_libdir}/libmemusage.so~' \
992      -e 's~='\''/\\\$LIB/libpcprofile.so~='\''%{_prefix}/\\$LIB/libpcprofile.so~' \
993      -e 's~='\''/\\\$LIB/libmemusage.so~='\''%{_prefix}/\\$LIB/libmemusage.so~' \
994      -i $i
995done
996
997##############################################################################
998# Build an empty libpthread_nonshared.a for compatiliby with applications
999# that have old linker scripts that reference this file. We ship this only
1000# in compat-libpthread-nonshared sub-package.
1001##############################################################################
1002ar cr %{glibc_sysroot}%{_prefix}/%{_lib}/libpthread_nonshared.a
1003
1004##############################################################################
1005# Beyond this point in the install process we no longer modify the set of
1006# installed files, with one exception, for auxarches we cleanup the file list
1007# at the end and remove files which we don't intend to ship. We need the file
1008# list to effect a proper cleanup, and so it happens last.
1009##############################################################################
1010
1011##############################################################################
1012# Build the file lists used for describing the package and subpackages.
1013##############################################################################
1014# There are several main file lists (and many more for
1015# the langpack sub-packages (langpack-${lang}.filelist)):
1016# * master.filelist
1017#       - Master file list from which all other lists are built.
1018# * glibc.filelist
1019#       - Files for the glibc packages.
1020# * common.filelist
1021#       - Flies for the common subpackage.
1022# * utils.filelist
1023#       - Files for the utils subpackage.
1024# * nscd.filelist
1025#       - Files for the nscd subpackage.
1026# * devel.filelist
1027#       - Files for the devel subpackage.
1028# * headers.filelist
1029#       - Files for the headers subpackage.
1030# * static.filelist
1031#       - Files for the static subpackage.
1032# * libnsl.filelist
1033#       - Files for the libnsl subpackage
1034# * nss_db.filelist
1035# * nss_hesiod.filelist
1036#       - File lists for nss_* NSS module subpackages.
1037# * nss-devel.filelist
1038#       - File list with the .so symbolic links for NSS packages.
1039# * compat-libpthread-nonshared.filelist.
1040#       - File list for compat-libpthread-nonshared subpackage.
1041# * debuginfo.filelist
1042#       - Files for the glibc debuginfo package.
1043# * debuginfocommon.filelist
1044#       - Files for the glibc common debuginfo package.
1045#
1046
1047# Create the main file lists. This way we can append to any one of them later
1048# wihtout having to create it. Note these are removed at the start of the
1049# install phase.
1050touch master.filelist
1051touch glibc.filelist
1052touch common.filelist
1053touch utils.filelist
1054touch nscd.filelist
1055touch devel.filelist
1056touch headers.filelist
1057touch static.filelist
1058touch libnsl.filelist
1059touch nss_db.filelist
1060touch nss_hesiod.filelist
1061touch nss-devel.filelist
1062touch compat-libpthread-nonshared.filelist
1063touch debuginfo.filelist
1064touch debuginfocommon.filelist
1065
[7961]1066###############################################################################
[12020]1067# Master file list, excluding a few things.
1068###############################################################################
1069{
1070  # List all files or links that we have created during install.
1071  # Files with 'etc' are configuration files, likewise 'gconv-modules'
1072  # and 'gconv-modules.cache' are caches, and we exclude them.
1073  find %{glibc_sysroot} \( -type f -o -type l \) \
1074       \( \
1075         -name etc -printf "%%%%config " -o \
1076         -name gconv-modules \
1077         -printf "%%%%verify(not md5 size mtime) %%%%config(noreplace) " -o \
1078         -name gconv-modules.cache \
1079         -printf "%%%%verify(not md5 size mtime) " \
1080         , \
1081         ! -path "*/lib/debug/*" -printf "/%%P\n" \)
1082  # List all directories with a %%dir prefix.  We omit the info directory and
1083  # all directories in (and including) /usr/share/locale.
1084  find %{glibc_sysroot} -type d \
1085       \( -path '*%{_prefix}/share/locale' -prune -o \
1086       \( -path '*%{_prefix}/share/*' \
1087%if %{with docs}
1088        ! -path '*%{_infodir}' -o \
1089%endif
1090          -path "*%{_prefix}/include/*" \
1091       \) -printf "%%%%dir /%%P\n" \)
1092} | {
1093  # Also remove the *.mo entries.  We will add them to the
1094  # language specific sub-packages.
1095  # libnss_ files go into subpackages related to NSS modules.
1096  # and .*/share/i18n/charmaps/.*), they go into the sub-package
1097  # "locale-source":
1098  sed -e '\,.*/share/locale/\([^/_]\+\).*/LC_MESSAGES/.*\.mo,d' \
1099      -e '\,.*/share/i18n/locales/.*,d' \
1100      -e '\,.*/share/i18n/charmaps/.*,d' \
1101      -e '\,.*/etc/\(localtime\|nsswitch.conf\|ld\.so\.conf\|ld\.so\.cache\|default\|rpc\|gai\.conf\),d' \
1102      -e '\,.*/%{_libdir}/lib\(pcprofile\|memusage\)\.so,d' \
1103      -e '\,.*/bin/\(memusage\|mtrace\|xtrace\|pcprofiledump\),d'
1104} | sort > master.filelist
[521]1105
[12020]1106# The master file list is now used by each subpackage to list their own
1107# files. We go through each package and subpackage now and create their lists.
1108# Each subpackage picks the files from the master list that they need.
1109# The order of the subpackage list generation does not matter.
[521]1110
[12020]1111# Make the master file list read-only after this point to avoid accidental
1112# modification.
1113chmod 0444 master.filelist
[521]1114
[12020]1115###############################################################################
1116# glibc
1117###############################################################################
[521]1118
[12020]1119# Add all files with the following exceptions:
1120# - The info files '%{_infodir}/dir'
1121# - The partial (lib*_p.a) static libraries, include files.
1122# - The static files, objects, unversioned DSOs, and nscd.
1123# - The bin, locale, some sbin, and share.
1124#   - The use of [^gi] is meant to exclude all files except glibc_post_upgrade,
1125#     and iconvconfig, which we want in the main packages.
1126# - All the libnss files (we add back the ones we want later).
1127# - All bench test binaries.
1128# - The aux-cache, since it's handled specially in the files section.
1129# - The build-locale-archive binary since it's in the common package.
1130cat master.filelist \
1131        | grep -v \
1132        -e '%{_infodir}' \
1133        -e '%{_libdir}/lib.*_p.a' \
1134        -e '%{_prefix}/include' \
1135        -e '%{_libdir}/lib.*\.a' \
1136        -e '%{_libdir}/.*\.o' \
1137        -e '%{_libdir}/lib.*\.so' \
1138        -e 'nscd' \
1139        -e '%{_prefix}/bin' \
1140        -e '%{_prefix}/lib/locale' \
1141        -e '%{_prefix}/sbin/[^gi]' \
1142        -e '%{_prefix}/share' \
1143        -e '/var/db/Makefile' \
1144        -e '/libnss_.*\.so[0-9.]*$' \
1145        -e '/libnsl' \
1146        -e 'glibc-benchtests' \
1147        -e 'aux-cache' \
1148        -e 'build-locale-archive' \
1149        > glibc.filelist
1150
1151# Add specific files:
1152# - The nss_files, nss_compat, and nss_db files.
1153# - The libmemusage.so and libpcprofile.so used by utils.
1154for module in compat files db dns hesiod; do
1155    cat master.filelist \
1156        | grep -E \
1157        -e "/libnss_$module(\.so\.[0-9.]+|-[0-9.]+\.so)$" \
1158        >> glibc.filelist
1159done
1160grep -e "libmemusage.so" -e "libpcprofile.so" master.filelist >> glibc.filelist
1161
1162###############################################################################
1163# glibc-devel
1164###############################################################################
1165
1166%if %{with docs}
1167# Put the info files into the devel file list, but exclude the generated dir.
1168grep '%{_infodir}' master.filelist | grep -v '%{_infodir}/dir' > devel.filelist
1169%endif
1170
1171# Put some static files into the devel package.
1172grep '%{_libdir}/lib.*\.a' master.filelist \
1173  | grep '/lib\(\(c\|pthread\|nldbl\|mvec\)_nonshared\|g\|ieee\|mcheck\)\.a$' \
1174  >> devel.filelist
1175
1176# Put all of the object files and *.so (not the versioned ones) into the
1177# devel package.
1178grep '%{_libdir}/.*\.o' < master.filelist >> devel.filelist
1179grep '%{_libdir}/lib.*\.so' < master.filelist >> devel.filelist
1180# The exceptions are:
1181# - libmemusage.so and libpcprofile.so in glibc used by utils.
1182# - libnss_*.so which are in nss-devel.
1183sed -i -e '\,libmemusage.so,d' \
1184        -e '\,libpcprofile.so,d' \
1185        -e '\,/libnss_[a-z]*\.so$,d' \
1186        devel.filelist
1187
1188###############################################################################
1189# glibc-headers
1190###############################################################################
1191
1192# The glibc-headers package includes only common files which are identical
1193# across all multilib packages. We must keep gnu/stubs.h and gnu/lib-names.h
1194# in the glibc-headers package, but the -32, -64, -64-v1, and -64-v2 versions
1195# go into the development packages.
1196grep '%{_prefix}/include/gnu/stubs-.*\.h$' < master.filelist >> devel.filelist || :
1197grep '%{_prefix}/include/gnu/lib-names-.*\.h$' < master.filelist >> devel.filelist || :
1198# Put the include files into headers file list.
1199grep '%{_prefix}/include' < master.filelist \
1200  | egrep -v '%{_prefix}/include/gnu/stubs-.*\.h$' \
1201  | egrep -v '%{_prefix}/include/gnu/lib-names-.*\.h$' \
1202  > headers.filelist
1203
1204###############################################################################
1205# glibc-static
1206###############################################################################
1207
1208# Put the rest of the static files into the static package.
1209grep '%{_libdir}/lib.*\.a' < master.filelist \
1210  | grep -v '/lib\(\(c\|pthread\|nldbl\|mvec\)_nonshared\|g\|ieee\|mcheck\)\.a$' \
1211  > static.filelist
1212
1213###############################################################################
1214# glibc-common
1215###############################################################################
1216
1217# All of the bin and certain sbin files go into the common package except
1218# glibc_post_upgrade.* and iconvconfig which need to go in glibc. Likewise
1219# nscd is excluded because it goes in nscd.
1220grep '%{_prefix}/bin' master.filelist >> common.filelist
1221grep '%{_prefix}/sbin/[^gi]' master.filelist \
1222        | grep -v 'nscd' >> common.filelist
1223# All of the files under share go into the common package since they should be
1224# multilib-independent.
1225# Exceptions:
1226# - The actual share directory, not owned by us.
1227# - The info files which go in devel, and the info directory.
1228grep '%{_prefix}/share' master.filelist \
1229        | grep -v \
1230        -e '%{_prefix}/share/info/libc.info.*' \
1231        -e '%%dir %{_prefix}/share/info' \
1232        -e '%%dir %{_prefix}/share' \
1233        >> common.filelist
1234
1235# Add the binary to build locales to the common subpackage.
1236#echo '%{_prefix}/sbin/build-locale-archive' >> common.filelist
1237grep -e "/en_US/" -e "/ja_JP" -e "/ja/" locales.filelist >> common.filelist
1238grep -v -e "/en_US/" -e "/ja_JP" -e "/ja/" locales.filelist >> common-extra.filelist
1239
1240###############################################################################
1241# nscd
1242###############################################################################
1243
1244# The nscd binary must go into the nscd subpackage.
1245echo '%{_prefix}/sbin/nscd' > nscd.filelist
1246
1247###############################################################################
1248# glibc-utils
1249###############################################################################
1250
1251# Add the utils scripts and programs to the utils subpackage.
1252cat > utils.filelist <<EOF
1253%if %{without bootstrap}
1254%{_prefix}/bin/memusage
1255%{_prefix}/bin/memusagestat
1256%endif
1257%{_prefix}/bin/mtrace
1258%{_prefix}/bin/pcprofiledump
1259%{_prefix}/bin/xtrace
1260EOF
1261
1262###############################################################################
1263# nss_db, nss_hesiod
1264###############################################################################
1265
1266# Move the NSS-related files to the NSS subpackages.  Be careful not
1267# to pick up .debug files, and the -devel symbolic links.
1268for module in db hesiod; do
1269  grep -E "/libnss_$module(\.so\.[0-9.]+|-[0-9.]+\.so)$" \
1270    master.filelist > nss_$module.filelist
1271done
1272
1273###############################################################################
1274# nss-devel
1275###############################################################################
1276
1277# Symlinks go into the nss-devel package (instead of the main devel
1278# package).
1279grep '/libnss_[a-z]*\.so$' master.filelist > nss-devel.filelist
1280grep '/libnss_[a-z]*\.so$' master.filelist >> devel.filelist
1281
1282###############################################################################
1283# libnsl
1284###############################################################################
1285
1286# Prepare the libnsl-related file lists.
1287grep '/libnsl-[0-9.]*.so$' master.filelist > libnsl.filelist
1288test $(wc -l < libnsl.filelist) -eq 1
1289grep '/libnsl-[0-9.]*.so$' master.filelist >> devel.filelist
1290
1291###############################################################################
1292# glibc-benchtests
1293###############################################################################
1294%if %{with benchtests}
1295
1296# List of benchmarks.
1297find build-%{target}/benchtests -type f -executable | while read b; do
1298        echo "%{_prefix}/libexec/glibc-benchtests/$(basename $b)"
1299done >> benchtests.filelist
1300# ... and the makefile.
1301for b in %{SOURCE9} %{SOURCE10}; do
1302        echo "%{_prefix}/libexec/glibc-benchtests/$(basename $b)" >> benchtests.filelist
1303done
1304# ... and finally, the comparison scripts.
1305echo "%{_prefix}/libexec/glibc-benchtests/benchout.schema.json" >> benchtests.filelist
1306echo "%{_prefix}/libexec/glibc-benchtests/compare_bench.py*" >> benchtests.filelist
1307echo "%{_prefix}/libexec/glibc-benchtests/import_bench.py*" >> benchtests.filelist
1308echo "%{_prefix}/libexec/glibc-benchtests/validate_benchout.py*" >> benchtests.filelist
1309%endif
1310
1311###############################################################################
1312# compat-libpthread-nonshared
1313###############################################################################
1314echo "%{_libdir}/libpthread_nonshared.a" >> compat-libpthread-nonshared.filelist
1315
1316###############################################################################
1317# glibc-debuginfocommon, and glibc-debuginfo
1318###############################################################################
1319%if 0%{?_enable_debug_packages}
1320
[521]1321find_debuginfo_args='--strict-build-id -g'
1322%ifarch %{debuginfocommonarches}
1323find_debuginfo_args="$find_debuginfo_args \
[12020]1324        -l common.filelist \
1325        -l utils.filelist \
1326        -l nscd.filelist \
1327        -p '.*/(sbin|libexec)/.*' \
1328        -o debuginfocommon.filelist \
1329        -l nss_db.filelist -l nss_hesiod.filelist \
1330        -l libnsl.filelist -l glibc.filelist \
1331%if %{with benchtests}
1332        -l benchtests.filelist
[521]1333%endif
[12020]1334        "
1335%endif
[521]1336
[12020]1337/usr/lib/rpm/find-debuginfo.sh $find_debuginfo_args -o debuginfo.filelist
1338
1339# List all of the *.a archives in the debug directory.
[521]1340list_debug_archives()
1341{
[12020]1342        local dir=%{_prefix}/lib/debug%{_libdir}
1343        find %{glibc_sysroot}$dir -name "*.a" -printf "$dir/%%P\n"
[521]1344}
1345
1346%ifarch %{debuginfocommonarches}
1347
[12020]1348# Remove the source files from the common package debuginfo.
1349sed -i '\#^%{glibc_sysroot}%{_prefix}/src/debug/#d' debuginfocommon.filelist
1350
1351# Create a list of all of the source files we copied to the debug directory.
1352find %{glibc_sysroot}%{_prefix}/src/debug \
1353     \( -type d -printf '%%%%dir ' \) , \
1354     -printf '%{_prefix}/src/debug/%%P\n' > debuginfocommon.sources
1355
1356%ifarch %{biarcharches}
1357
1358# Add the source files to the core debuginfo package.
1359cat debuginfocommon.sources >> debuginfo.filelist
1360
1361%else
1362
[521]1363%ifarch %{ix86}
1364%define basearch i686
1365%endif
1366%ifarch sparc sparcv9
1367%define basearch sparc
1368%endif
1369
[7961]1370# The auxarches get only these few source files.
[521]1371auxarches_debugsources=\
1372'/(generic|linux|%{basearch}|nptl(_db)?)/|/%{glibcsrcdir}/build|/dl-osinfo\.h'
1373
[7961]1374# Place the source files into the core debuginfo pakcage.
[521]1375egrep "$auxarches_debugsources" debuginfocommon.sources >> debuginfo.filelist
1376
[7961]1377# Remove the source files from the common debuginfo package.
[521]1378egrep -v "$auxarches_debugsources" \
1379  debuginfocommon.sources >> debuginfocommon.filelist
[5290]1380
[7961]1381%endif # %{biarcharches}
[521]1382
[7961]1383# Add the list of *.a archives in the debug directory to
1384# the common debuginfo package.
[521]1385list_debug_archives >> debuginfocommon.filelist
1386
[12020]1387%endif # %{debuginfocommonarches}
[521]1388
[12020]1389# Remove some common directories from the common package debuginfo so that we
1390# don't end up owning them.
1391exclude_common_dirs()
1392{
1393        exclude_dirs="%{_prefix}/src/debug"
1394        exclude_dirs="$exclude_dirs $(echo %{_prefix}/lib/debug{,/%{_lib},/bin,/sbin})"
1395        exclude_dirs="$exclude_dirs $(echo %{_prefix}/lib/debug%{_prefix}{,/%{_lib},/libexec,/bin,/sbin})"
[7961]1396
[12020]1397        for d in $(echo $exclude_dirs | sed 's/ /\n/g'); do
1398                sed -i "\|^%%dir $d/\?$|d" $1
1399        done
1400}
[521]1401
[12020]1402%ifarch %{debuginfocommonarches}
1403exclude_common_dirs debuginfocommon.filelist
1404%endif
1405exclude_common_dirs debuginfo.filelist
[7961]1406
[12020]1407##############################################################################
1408# Delete files that we do not intended to ship with the auxarch.
1409# This is the only place where we touch the installed files after generating
1410# the file lists.
1411##############################################################################
[521]1412%ifarch %{auxarches}
1413echo Cutting down the list of unpackaged files
1414sed -e '/%%dir/d;/%%config/d;/%%verify/d;s/%%lang([^)]*) //;s#^/*##' \
[12020]1415        common.filelist devel.filelist static.filelist headers.filelist \
1416        utils.filelist nscd.filelist \
1417%ifarch %{debuginfocommonarches}
1418        debuginfocommon.filelist \
1419%endif
1420        | (cd %{glibc_sysroot}; xargs --no-run-if-empty rm -f 2> /dev/null || :)
1421%endif # %{auxarches}
[521]1422
[12020]1423%endif # %{?_enable_debug_packages}
[521]1424
[12020]1425%check
1426%if %{with testsuite}
[521]1427
[12020]1428# Run the glibc tests. If any tests fail to build we exit %check with
1429# an error, otherwise we print the test failure list and the failed
1430# test output and continue.  Write to standard error to avoid
1431# synchronization issues with make and shell tracing output if
1432# standard output and standard error are different pipes.
1433run_tests () {
1434  # This hides a test suite build failure, which should be fatal.  We
1435  # check "Summary of test results:" below to verify that all tests
1436  # were built and run.
1437  make %{?_smp_mflags} -O check |& tee rpmbuild.check.log >&2
1438  test -n tests.sum
1439  if ! grep -q '^Summary of test results:$' rpmbuild.check.log ; then
1440    echo "FAIL: test suite build of target: $(basename "$(pwd)")" >& 2
1441    exit 1
1442  fi
1443  set +x
1444  grep -v ^PASS: tests.sum > rpmbuild.tests.sum.not-passing || true
1445  if test -n rpmbuild.tests.sum.not-passing ; then
1446    echo ===================FAILED TESTS===================== >&2
1447    echo "Target: $(basename "$(pwd)")" >& 2
1448    cat rpmbuild.tests.sum.not-passing >&2
1449    while read failed_code failed_test ; do
1450      for suffix in out test-result ; do
1451        if test -e "$failed_test.$suffix"; then
1452          echo >&2
1453          echo "=====$failed_code $failed_test.$suffix=====" >&2
1454          cat -- "$failed_test.$suffix" >&2
1455          echo >&2
1456        fi
1457      done
1458    done <rpmbuild.tests.sum.not-passing
1459  fi
1460
1461  # Unconditonally dump differences in the system call list.
1462  echo "* System call consistency checks:" >&2
1463  cat misc/tst-syscall-list.out >&2
1464  set -x
1465}
1466
1467# Increase timeouts
1468export TIMEOUTFACTOR=16
1469parent=$$
1470echo ====================TESTING=========================
1471
1472# Default libraries.
1473pushd build-%{target}
1474run_tests
1475popd
1476
1477
1478echo ====================TESTING END=====================
1479PLTCMD='/^Relocation section .*\(\.rela\?\.plt\|\.rela\.IA_64\.pltoff\)/,/^$/p'
1480echo ====================PLT RELOCS LD.SO================
1481readelf -Wr %{glibc_sysroot}/%{_lib}/ld-*.so | sed -n -e "$PLTCMD"
1482echo ====================PLT RELOCS LIBC.SO==============
1483readelf -Wr %{glibc_sysroot}/%{_lib}/libc-*.so | sed -n -e "$PLTCMD"
1484echo ====================PLT RELOCS END==================
1485
1486# Finally, check if valgrind runs with the new glibc.
1487# We want to fail building if valgrind is not able to run with this glibc so
1488# that we can then coordinate with valgrind to get it fixed before we update
1489# glibc.
1490pushd build-%{target}
1491
1492# Show the auxiliary vector as seen by the new library
1493# (even if we do not perform the valgrind test).
1494LD_SHOW_AUXV=1 elf/ld.so --library-path .:elf:nptl:dlfcn /bin/true
1495
1496%if %{with valgrind}
1497elf/ld.so --library-path .:elf:nptl:dlfcn \
1498        /usr/bin/valgrind --error-exitcode=1 \
1499        elf/ld.so --library-path .:elf:nptl:dlfcn /usr/bin/true
[521]1500%endif
[12020]1501popd
[521]1502
[12020]1503%endif # %{run_glibc_tests}
[521]1504
[12020]1505
[5290]1506%pre -p <lua>
1507-- Check that the running kernel is new enough
1508required = '%{enablekernel}'
1509rel = posix.uname("%r")
1510if rpm.vercmp(rel, required) < 0 then
1511  error("FATAL: kernel too old", 0)
1512end
1513
[521]1514%post -p /usr/sbin/glibc_post_upgrade.%{_target_cpu}
1515
1516%postun -p /sbin/ldconfig
1517
1518%post -n compat32-%{name} -p /sbin/ldconfig
1519
1520%postun -n compat32-%{name} -p /sbin/ldconfig
1521
[5290]1522%triggerin common -p <lua> -- glibc
1523if posix.stat("%{_prefix}/lib/locale/locale-archive.tmpl", "size") > 0 then
1524  pid = posix.fork()
1525  if pid == 0 then
1526    posix.exec("%{_prefix}/sbin/build-locale-archive")
1527  elseif pid > 0 then
1528    posix.wait(pid)
1529  end
1530end
[521]1531
[5290]1532%post common -p <lua>
1533if posix.access("/etc/ld.so.cache") then
1534  if posix.stat("%{_prefix}/lib/locale/locale-archive.tmpl", "size") > 0 then
1535    pid = posix.fork()
1536    if pid == 0 then
1537      posix.exec("%{_prefix}/sbin/build-locale-archive")
1538    elseif pid > 0 then
1539      posix.wait(pid)
1540    end
1541  end
1542end
[521]1543
[5290]1544%triggerin common -p <lua> -- tzdata
1545function update (filename, new_data)
1546  local fd = io.open(filename)
1547  if not fd then return end
1548  local data = fd:read("*a")
1549  fd:close()
1550  if not data then return end
1551  -- Don't update the file unnecessarily.
1552  if data == new_data then return end
1553  local tempfilename = filename .. ".tzupdate"
1554  fd = io.open(tempfilename, "w")
1555  if not fd then return end
1556  fd:write(new_data)
1557  fd:close()
1558  posix.chmod(tempfilename, 0644)
1559  if not os.rename(tempfilename, filename) then
1560    os.remove(tempfilename)
1561  end
1562end
1563fd = io.open("/etc/sysconfig/clock")
1564if not fd then return end
1565zonename = nil
1566for l in fd:lines() do
1567  zone = string.match(l, "^[ \t]*ZONE[ \t]*=[ \t]*\"?([^ \t\n\"]*)");
1568  if zone then
1569    zonename = "/usr/share/zoneinfo/" .. zone
1570    break
1571  end
1572end
1573fd:close()
1574if not zonename then return end
1575fd = io.open(zonename)
1576if not fd then return end
1577data = fd:read("*a")
1578fd:close()
1579if not data then return end
1580update("/etc/localtime", data)
1581update("/var/spool/postfix/etc/localtime", data)
[521]1582
[5290]1583%post common-extra -p <lua>
1584-- cp -f /usr/lib/locale/locale-archive-extra.tmpl /usr/lib/locale/locale-archive.tmpl
1585if posix.access("/etc/ld.so.cache") then
1586  if posix.stat("%{_prefix}/lib/locale/locale-archive.tmpl", "size") > 0 then
1587    pid = posix.fork()
1588    if pid == 0 then
1589      posix.exec("%{_prefix}/sbin/build-locale-archive")
1590    elseif pid > 0 then
1591      posix.wait(pid)
1592    end
1593  end
1594end
[521]1595
[5290]1596%postun common-extra -p <lua>
1597posix.exec("cp -f /usr/lib/locale/locale-archive-ja.tmpl /usr/lib/locale/locale-archive.tmpl")
1598if posix.access("/etc/ld.so.cache") then
1599  if posix.stat("%{_prefix}/lib/locale/locale-archive.tmpl", "size") > 0 then
1600    pid = posix.fork()
1601    if pid == 0 then
1602      posix.exec("%{_prefix}/sbin/build-locale-archive")
1603    elseif pid > 0 then
1604      posix.wait(pid)
1605    end
1606  end
1607end
1608
[521]1609%triggerun -- common-extra
[5290]1610posix.exec("cp -f /usr/lib/locale/locale-archive-ja.tmpl /usr/lib/locale/locale-archive.tmpl")
1611if posix.access("/etc/ld.so.cache") then
1612  if posix.stat("%{_prefix}/lib/locale/locale-archive.tmpl", "size") > 0 then
1613    pid = posix.fork()
1614    if pid == 0 then
1615      posix.exec("%{_prefix}/sbin/build-locale-archive")
1616    elseif pid > 0 then
1617      posix.wait(pid)
1618    end
1619  end
1620end
[521]1621
[7961]1622
[521]1623%post devel
1624/sbin/install-info %{_infodir}/libc.info.gz %{_infodir}/dir > /dev/null 2>&1 || :
1625
1626%pre headers
1627# this used to be a link and it is causing nightmares now
1628if [ -L %{_prefix}/include/scsi ] ; then
1629  rm -f %{_prefix}/include/scsi
1630fi
1631
1632%preun devel
1633if [ "$1" = 0 ]; then
1634  /sbin/install-info --delete %{_infodir}/libc.info.gz %{_infodir}/dir > /dev/null 2>&1 || :
1635fi
1636
1637%post utils -p /sbin/ldconfig
1638
1639%postun utils -p /sbin/ldconfig
1640
1641%pre -n nscd
[5290]1642getent group nscd >/dev/null || /usr/sbin/groupadd -g 28 -r nscd
1643getent passwd nscd >/dev/null ||
1644  /usr/sbin/useradd -M -o -r -d / -s /sbin/nologin \
1645                    -c "NSCD Daemon" -u 28 -g nscd nscd
[521]1646
1647%post -n nscd
1648/sbin/chkconfig --add nscd
1649
1650%preun -n nscd
1651if [ $1 = 0 ] ; then
[5290]1652  /sbin/service nscd stop > /dev/null 2>&1
[521]1653  /sbin/chkconfig --del nscd
1654fi
1655
1656%postun -n nscd
1657if [ $1 = 0 ] ; then
1658  /usr/sbin/userdel nscd > /dev/null 2>&1 || :
1659fi
1660if [ "$1" -ge "1" ]; then
1661  service nscd condrestart > /dev/null 2>&1 || :
1662fi
1663
1664%if %{xenpackage}
1665%post xen -p /sbin/ldconfig
1666%postun xen -p /sbin/ldconfig
1667%endif
1668
1669%clean
1670rm -rf "$RPM_BUILD_ROOT"
1671rm -f *.filelist*
1672
[12020]1673%files -f glibc.filelist
[521]1674%defattr(-,root,root)
[12020]1675/%{_lib}/libnsl.so.*
1676%dir %{_prefix}/%{_lib}/audit
1677%if %{without systemd}
[521]1678%verify(not md5 size mtime) %config(noreplace) /etc/localtime
[12020]1679%endif
[521]1680%verify(not md5 size mtime) %config(noreplace) /etc/nsswitch.conf
1681%verify(not md5 size mtime) %config(noreplace) /etc/ld.so.conf
[5290]1682%verify(not md5 size mtime) %config(noreplace) /etc/rpc
[521]1683%dir /etc/ld.so.conf.d
1684%dir %{_prefix}/libexec/getconf
1685%dir %{_prefix}/%{_lib}/gconv
[12020]1686%dir %{_localstatedir}/db
1687%{_localstatedir}/db/Makefile
[521]1688%dir %attr(0700,root,root) /var/cache/ldconfig
1689%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/cache/ldconfig/aux-cache
1690%attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /etc/ld.so.cache
[5290]1691%attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /etc/gai.conf
[12020]1692%doc rpm-old-changelog.txt
1693%doc README NEWS INSTALL elf/rtld-debugger-interface.txt
[12342]1694%license COPYING COPYING.LIB LICENSES
[521]1695
1696%if %{build_compat32}
[12020]1697%files -f glibc.filelist -n compat32-%{name}
1698/%{_lib}/libnsl.so.*
[521]1699%endif
1700
1701%ifnarch %{auxarches}
1702%files -f common.filelist common
1703%defattr(-,root,root)
[12020]1704%dir %{_datadir}/locale
[521]1705%dir %{_prefix}/lib/locale
[12020]1706%dir %{_prefix}/lib/locale/C.utf8
1707%{_prefix}/lib/locale/C.utf8/*
[521]1708%attr(0644,root,root) %verify(not md5 size mtime) %{_prefix}/lib/locale/locale-archive-ja.tmpl
1709%attr(0644,root,root) %verify(not md5 size mtime) %{_prefix}/lib/locale/locale-archive.tmpl
1710%attr(0644,root,root) %verify(not md5 size mtime mode) %ghost %config(missingok,noreplace) %{_prefix}/lib/locale/locale-archive
[12020]1711%dir %{_prefix}/share/locale
1712%dir %{_prefix}/share/locale/ja
[521]1713%dir %attr(755,root,root) /etc/default
1714%verify(not md5 size mtime) %config(noreplace) /etc/default/nss
[12020]1715%doc documentation/README.timezone
1716%doc documentation/gai.conf
[521]1717
[12020]1718%files common-extra -f common-extra.filelist
[521]1719%defattr(-,root,root)
1720%attr(0644,root,root) %verify(not md5 size mtime) %{_prefix}/lib/locale/locale-archive-extra.tmpl
1721
[12020]1722%files locale-source
1723%defattr(-,root,root)
1724%dir %{_prefix}/share/i18n/locales
1725%{_prefix}/share/i18n/locales/*
1726%dir %{_prefix}/share/i18n/charmaps
1727%{_prefix}/share/i18n/charmaps/*
1728
[521]1729%files -f devel.filelist devel
1730%defattr(-,root,root)
1731
[3081]1732%files -f static.filelist static
1733%defattr(-,root,root)
1734
[521]1735%if %{build_compat32}
1736%files -f devel.filelist -n compat32-%{name}-devel
1737%defattr(-,root,root)
1738%exclude %{_prefix}/share
1739
[3081]1740%files -f static.filelist -n compat32-%{name}-static
[521]1741%defattr(-,root,root)
[3081]1742%endif
[521]1743
1744%files -f headers.filelist headers
1745%defattr(-,root,root)
1746
1747%files -f utils.filelist utils
1748%defattr(-,root,root)
1749
1750%files -f nscd.filelist -n nscd
1751%defattr(-,root,root)
1752%config(noreplace) /etc/nscd.conf
[12020]1753%if %{without systemd}
[521]1754%config /etc/rc.d/init.d/nscd
[12020]1755%endif
[521]1756%dir %attr(0755,root,root) /var/run/nscd
1757%dir %attr(0755,root,root) /var/db/nscd
1758%attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/nscd.pid
1759%attr(0666,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/socket
1760%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/passwd
1761%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/group
1762%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/hosts
1763%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/services
1764%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/db/nscd/passwd
1765%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/db/nscd/group
1766%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/db/nscd/hosts
1767%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/db/nscd/services
1768%ghost %config(missingok,noreplace) /etc/sysconfig/nscd
1769%endif
1770
1771%if 0%{?_enable_debug_packages}
1772%files debuginfo -f debuginfo.filelist
1773%defattr(-,root,root)
1774%ifarch %{debuginfocommonarches}
1775%ifnarch %{auxarches}
1776%files debuginfo-common -f debuginfocommon.filelist
1777%defattr(-,root,root)
1778%endif
1779%endif
1780%endif
1781
1782%changelog
[12342]1783* Thu Mar 19 2020 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 2.31-1
1784- updated to 2.31.
1785- updated Patch0.
1786- dropped Patch28.
1787- imported Patch29 from rawhide.
1788- updated Patch5 and 23.
1789- updated Source11.
1790
[12225]1791* Sun Sep 22 2019 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 2.30-1
1792- updated to 2.30.
1793- updated Patch0.
1794- dropped Patch11, 24 and 25.
1795
[12020]1796* Sun Jan 20 2019 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 2.28-1
1797- updated to 2.28.
1798- dropped Source2, 3, 10 and 11.
1799- imported Source8-11 from rawhide.
1800- dropped Patch11-13.
1801- imported Patch1-28 from rawhide.
1802- dropped Patch10000.
1803- trimmed %%changelog: old logs are rpm-old-changelog.txt.
1804
[11690]1805* Tue Jun 20 2017 Satoshi IWAMOTO <satoshi.iwamoto@nifty.ne.jp> 2.23-5
1806- add patch20005 for fix CVE-2017-1000366
1807
[10738]1808* Mon Aug  1 2016 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 2.23-4
1809- added Patch20000-20004 to fix vulnerabilities.
1810  - CVE-2016-1234
1811  - CVE-2016-3075
1812  - CVE-2016-3706
1813  - CVE-2016-4429
1814
[10405]1815* Sun Jun 26 2016 Yoji TOYODA <bsyamato@sea.plala.or.jp> 2.23-3
1816- rebuilt with gcc-5.4.0
1817
[10331]1818* Tue May 24 2016 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 2.23-2
1819- rebuilt with new binutils.
1820
[10250]1821* Sat May 07 2016 Yoji TOYODA <bsyamato@sea.plala.or.jp> 2.23-1
1822- update to 2.23
1823- remove Patch14-18
1824- update SOURCE1 from fedora
Note: See TracBrowser for help on using the repository browser.