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

Revision 12225, 64.2 KB checked in by tomop, 5 years ago (diff)

updated 4 packages

binutils-2.32-1

gcc-8.3.1-1

glibc-2.30-1

libtool-2.4.6-5

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