From 4139e8458f99923b5290c8ce523d5d801c135ced Mon Sep 17 00:00:00 2001 From: Jacek Konieczny Date: Thu, 25 Oct 2018 12:34:50 +0200 Subject: [PATCH] separate dynamic linker instead of just ldconfig /sbin/ldconfig is needed by any shared library package, including glibc itself, but it is tightly coupled with the dynamic linker provided with glibc. More then the linker to the library. --- glibc.spec | 147 +++++++++++++++++++++++------------------------------ 1 file changed, 64 insertions(+), 83 deletions(-) diff --git a/glibc.spec b/glibc.spec index 8ffa21d..0ba07ad 100644 --- a/glibc.spec +++ b/glibc.spec @@ -45,7 +45,7 @@ Summary(tr.UTF-8): GNU libc Summary(uk.UTF-8): GNU libc версії Name: glibc Version: %{core_version} -Release: 6 +Release: 6.1 Epoch: 6 License: LGPL v2.1+ Group: Libraries @@ -117,7 +117,7 @@ BuildRequires: rpm-build >= 4.3-0.20030610.28 BuildRequires: rpmbuild(macros) >= 1.567 BuildRequires: sed >= 4.0.5 BuildRequires: texinfo -Requires(post): ldconfig = %{epoch}:%{version}-%{release} +Requires(post): %{name}-ld = %{epoch}:%{version}-%{release} Requires: filesystem Requires: uname(release) >= %{min_kernel} Provides: %{name}(%{_target_cpu}) = %{epoch}:%{version}-%{release} @@ -126,7 +126,6 @@ Provides: %{name}(ix86) = %{epoch}:%{version}-%{release} %endif Provides: glibc(nptl) Provides: glibc(tls) -Provides: rtld(GNU_HASH) Obsoletes: glibc-common Obsoletes: glibc-debug %ifarch %{x8664} sparc64 ppc64 @@ -332,50 +331,25 @@ glibc library for crypt(3). %description libcrypt -l pl.UTF-8 Biblioteka glibc z funkcją crypt(3). -%package -n ldconfig -Summary: Create shared library cache and maintains symlinks -Summary(de.UTF-8): Erstellt ein shared library cache und verwaltet symlinks -Summary(fr.UTF-8): Crée un cache de bibliothčque partagée et gčre *.so -Summary(pl.UTF-8): Tworzenie cache'u bibliotek dynamicznych i ich dowiązań symbolicznych -Summary(tr.UTF-8): Ortak kitaplýk önbelleđi yaratýr ve bađlantýlarý kurar +%package ld +Summary: Dynamic linker Group: Applications/System Requires: uname(release) >= %{min_kernel} # This is needed because previous package (glibc) had autoreq false and had # provided this manually. Probably poldek bug that have to have it here. +Provides: rtld(GNU_HASH) Provides: /sbin/ldconfig +Provides: ldconfig = %{epoch}:%{version}-%{release} +Obsoletes: ldconfig < 6:2.28-6.1 # we want FHS being installed before ldconfig, altho they are both unrelated to each-other. Requires: FHS -%description -n ldconfig -ldconfig scans a running system and sets up the symbolic links that -are used to load shared libraries properly. It also creates -/etc/ld.so.cache which speeds the loading programs which use shared -libraries. - -%description -n ldconfig -l de.UTF-8 -ldconfig scannt ein laufendes System und richtet die symbolischen -Verknüpfungen zum Laden der gemeinsam genutzten Libraries ein. -Außerdem erstellt es /etc/ld.so.cache, was das Laden von Programmen -mit gemeinsam genutzten Libraries beschleunigt. - -%description -n ldconfig -l fr.UTF-8 -ldconfig analyse un systčme et configure les liens symboliques -utilisés pour charger correctement les bibliothčques partagées. Il -crée aussi /etc/ld.so.cache qui accélčre le chargement des programmes -utilisant les bibliothčques partagées. - -%description -n ldconfig -l pl.UTF-8 -ldconfig testuje uruchomiony system i tworzy dowiązania symboliczne, -które są następnie używane do poprawnego ładowania bibliotek -dynamicznych. Program ten tworzy plik /etc/ld.so.cache, który -przyśpiesza ładowanie programów korzystających z bibliotek -dynamicznych. - -%description -n ldconfig -l tr.UTF-8 -ldconfig, çalýţmakta olan sistemi araţtýrýr ve ortak kitaplýklarýn -düzgün bir ţekilde yüklenmesi için gereken simgesel bađlantýlarý -kurar. Ayrýca ortak kitaplýklarý kullanan programlarýn yüklenmesini -hýzlandýran /etc/ld.so.cache dosyasýný yaratýr. +%description ld +The dynamic linker is used to load shared libraries used by executables linked +dynamically. + +The package also contains the ldconfig tool used to maintain shared library +cache for the linker. %package -n nss_compat Summary: Old style NYS NSS glibc module @@ -1320,11 +1294,18 @@ rm -rf $RPM_BUILD_ROOT %if %{without cross} %post -p /sbin/postshell /sbin/glibc-postinst /%{_lib}/%{_host_cpu} /%{_lib}/tls -/sbin/ldconfig +-/sbin/ldconfig -%postun -p /sbin/ldconfig +%postun -p /sbin/postshell +-/sbin/ldconfig -%triggerpostun -p /sbin/postshell -- glibc-misc < 6:2.3.5-7.6 +%post ld -p /sbin/postshell +-/sbin/ldconfig + +%postun ld -p /sbin/postshell +-/sbin/ldconfig + +%triggerpostun ld -p /sbin/postshell -- glibc-misc < 6:2.3.5-7.6 -/bin/cp -f /etc/ld.so.conf /etc/ld.so.conf.rpmsave -/bin/sed -i -e '1iinclude ld.so.conf.d/*.conf' /etc/ld.so.conf %endif @@ -1400,27 +1381,7 @@ fi %if %{without cross} %attr(755,root,root) /sbin/glibc-postinst %endif -# TODO: package ldconfig symlinks as %ghost -%attr(755,root,root) /%{_lib}/ld-%{core_version}.so # wildly arch-dependent ld.so SONAME symlink -%ifarch %{ix86} sparc sparcv9 sparc64 alpha sh -%attr(755,root,root) /%{_lib}/ld-linux.so.2 -%endif -%ifarch ia64 -%attr(755,root,root) /%{_lib}/ld-linux-ia64.so.2 -%endif -%ifarch %{x8664} -%attr(755,root,root) /%{_lib}/ld-linux-x86-64.so.2 -%endif -%ifarch x32 -%attr(755,root,root) /%{_lib}/ld-linux-x32.so.2 -%endif -%ifarch ppc64 s390x -%attr(755,root,root) /%{_lib}/ld64.so.1 -%endif -%ifnarch %{ix86} sparc sparcv9 sparc64 alpha sh ia64 %{x8664} x32 ppc64 s390x %{arm} -%attr(755,root,root) /%{_lib}/ld.so.1 -%endif %attr(755,root,root) /%{_lib}/libBrokenLocale-%{core_version}.so %ifarch alpha %attr(755,root,root) /%{_lib}/libBrokenLocale.so.1.1 @@ -1538,9 +1499,6 @@ fi %{_mandir}/man7/unicode.7* %{_mandir}/man7/utf-8.7* %{_mandir}/man7/utf8.7* -%{_mandir}/man8/ld-linux.8* -%{_mandir}/man8/ld-linux.so.8* -%{_mandir}/man8/ld.so.8* %{_mandir}/man8/sln.8* %{_mandir}/man8/zdump.8* %{_mandir}/man8/zic.8* @@ -1574,9 +1532,6 @@ fi %lang(es) %{_mandir}/es/man7/unicode.7* %lang(es) %{_mandir}/es/man7/utf-8.7* %lang(es) %{_mandir}/es/man7/utf8.7* -%lang(es) %{_mandir}/es/man8/ld-linux.8* -%lang(es) %{_mandir}/es/man8/ld-linux.so.8* -%lang(es) %{_mandir}/es/man8/ld.so.8* %lang(es) %{_mandir}/es/man8/zdump.8* %lang(es) %{_mandir}/es/man8/zic.8* %lang(fr) %{_mandir}/fr/man5/locale.5* @@ -1594,9 +1549,6 @@ fi %lang(fr) %{_mandir}/fr/man7/unicode.7* %lang(fr) %{_mandir}/fr/man7/utf-8.7* %lang(fr) %{_mandir}/fr/man7/utf8.7* -%lang(fr) %{_mandir}/fr/man8/ld-linux.8* -%lang(fr) %{_mandir}/fr/man8/ld-linux.so.8* -%lang(fr) %{_mandir}/fr/man8/ld.so.8* %lang(fr) %{_mandir}/fr/man8/zdump.8* %lang(fr) %{_mandir}/fr/man8/zic.8* %lang(hu) %{_mandir}/hu/man7/ascii.7* @@ -1607,9 +1559,6 @@ fi %lang(hu) %{_mandir}/hu/man7/locale.7* %lang(hu) %{_mandir}/hu/man7/utf-8.7* %lang(hu) %{_mandir}/hu/man7/utf8.7* -%lang(hu) %{_mandir}/hu/man8/ld-linux.8* -%lang(hu) %{_mandir}/hu/man8/ld-linux.so.8* -%lang(hu) %{_mandir}/hu/man8/ld.so.8* %lang(hu) %{_mandir}/hu/man8/zdump.8* %lang(it) %{_mandir}/it/man5/locale.5* %lang(it) %{_mandir}/it/man7/ascii.7* @@ -1649,9 +1598,6 @@ fi %lang(ja) %{_mandir}/ja/man7/unicode.7* %lang(ja) %{_mandir}/ja/man7/utf-8.7* %lang(ja) %{_mandir}/ja/man7/utf8.7* -%lang(ja) %{_mandir}/ja/man8/ld-linux.8* -%lang(ja) %{_mandir}/ja/man8/ld-linux.so.8* -%lang(ja) %{_mandir}/ja/man8/ld.so.8* %lang(ja) %{_mandir}/ja/man8/sln.8* %lang(ja) %{_mandir}/ja/man8/zdump.8* %lang(ja) %{_mandir}/ja/man8/zic.8* @@ -1676,9 +1622,6 @@ fi %lang(pl) %{_mandir}/pl/man7/unicode.7* %lang(pl) %{_mandir}/pl/man7/utf-8.7* %lang(pl) %{_mandir}/pl/man7/utf8.7* -%lang(pl) %{_mandir}/pl/man8/ld-linux.8* -%lang(pl) %{_mandir}/pl/man8/ld-linux.so.8* -%lang(pl) %{_mandir}/pl/man8/ld.so.8* %lang(pt) %{_mandir}/pt/man5/locale.5* %lang(pt) %{_mandir}/pt/man5/nsswitch.conf.5* %lang(pt) %{_mandir}/pt/man5/rpc.5* @@ -1715,8 +1658,6 @@ fi %lang(ru) %{_mandir}/ru/man7/unicode.7* %lang(ru) %{_mandir}/ru/man7/utf-8.7* %lang(ru) %{_mandir}/ru/man7/utf8.7* -%lang(ru) %{_mandir}/ru/man8/ld-linux.so.8* -%lang(ru) %{_mandir}/ru/man8/ld.so.8* %lang(ru) %{_mandir}/ru/man8/zdump.8* %lang(ru) %{_mandir}/ru/man8/zic.8* %lang(tr) %{_mandir}/tr/man1/iconv.1* @@ -1772,19 +1713,59 @@ fi %attr(755,root,root) %ghost /%{_lib}/libcrypt.so.1 %endif -%files -n ldconfig +%files ld %defattr(644,root,root,755) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/ld.so.conf %dir %{_sysconfdir}/ld.so.conf.d %ghost %{_sysconfdir}/ld.so.cache +# TODO: package ldconfig symlinks as %ghost +%attr(755,root,root) /%{_lib}/ld-%{core_version}.so +%ifarch %{ix86} sparc sparcv9 sparc64 alpha sh +%attr(755,root,root) /%{_lib}/ld-linux.so.2 +%endif +%ifarch ia64 +%attr(755,root,root) /%{_lib}/ld-linux-ia64.so.2 +%endif +%ifarch %{x8664} +%attr(755,root,root) /%{_lib}/ld-linux-x86-64.so.2 +%endif +%ifarch x32 +%attr(755,root,root) /%{_lib}/ld-linux-x32.so.2 +%endif +%ifarch ppc64 s390x +%attr(755,root,root) /%{_lib}/ld64.so.1 +%endif +%ifnarch %{ix86} sparc sparcv9 sparc64 alpha sh ia64 %{x8664} x32 ppc64 s390x %{arm} +%attr(755,root,root) /%{_lib}/ld.so.1 +%endif %attr(755,root,root) /sbin/ldconfig +%{_mandir}/man8/ld-linux.8* +%{_mandir}/man8/ld-linux.so.8* +%{_mandir}/man8/ld.so.8* %{_mandir}/man8/ldconfig.8* +%lang(es) %{_mandir}/es/man8/ld-linux.8* +%lang(es) %{_mandir}/es/man8/ld-linux.so.8* +%lang(es) %{_mandir}/es/man8/ld.so.8* %lang(es) %{_mandir}/es/man8/ldconfig.8* +%lang(fr) %{_mandir}/fr/man8/ld-linux.8* +%lang(fr) %{_mandir}/fr/man8/ld-linux.so.8* +%lang(fr) %{_mandir}/fr/man8/ld.so.8* %lang(fr) %{_mandir}/fr/man8/ldconfig.8* +%lang(hu) %{_mandir}/hu/man8/ld-linux.8* +%lang(hu) %{_mandir}/hu/man8/ld-linux.so.8* +%lang(hu) %{_mandir}/hu/man8/ld.so.8* %lang(hu) %{_mandir}/hu/man8/ldconfig.8* +%lang(ja) %{_mandir}/ja/man8/ld-linux.8* +%lang(ja) %{_mandir}/ja/man8/ld-linux.so.8* +%lang(ja) %{_mandir}/ja/man8/ld.so.8* %lang(ja) %{_mandir}/ja/man8/ldconfig.8* +%lang(pl) %{_mandir}/pl/man8/ld-linux.8* +%lang(pl) %{_mandir}/pl/man8/ld-linux.so.8* +%lang(pl) %{_mandir}/pl/man8/ld.so.8* %lang(pl) %{_mandir}/pl/man8/ldconfig.8* %lang(pt) %{_mandir}/pt/man8/ldconfig.8* +%lang(ru) %{_mandir}/ru/man8/ld-linux.so.8* +%lang(ru) %{_mandir}/ru/man8/ld.so.8* %lang(ru) %{_mandir}/ru/man8/ldconfig.8* %dir %attr(700,root,root) /var/cache/ldconfig %attr(600,root,root) %ghost /var/cache/ldconfig/aux-cache -- 2.44.0