[packages/glibc] separate dynamic linker instead of just ldconfig

jajcus jajcus at pld-linux.org
Thu Oct 25 13:27:12 CEST 2018

commit 4139e8458f99923b5290c8ce523d5d801c135ced
Author: Jacek Konieczny <j.konieczny at eggsoft.pl>
Date:   Thu Oct 25 12:34:50 2018 +0200

    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}
 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
-%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
-%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
+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
-%postun	-p /sbin/ldconfig
+%postun	-p /sbin/postshell
-%triggerpostun -p /sbin/postshell -- glibc-misc < 6:2.3.5-7.6
+%post ld -p /sbin/postshell
+%postun	ld -p /sbin/postshell
+%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
@@ -1400,27 +1381,7 @@ fi
 %if %{without cross}
 %attr(755,root,root) /sbin/glibc-postinst
-# 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
-%ifarch ia64
-%attr(755,root,root) /%{_lib}/ld-linux-ia64.so.2
-%ifarch %{x8664}
-%attr(755,root,root) /%{_lib}/ld-linux-x86-64.so.2
-%ifarch x32
-%attr(755,root,root) /%{_lib}/ld-linux-x32.so.2
-%ifarch ppc64 s390x
-%attr(755,root,root) /%{_lib}/ld64.so.1
-%ifnarch %{ix86} sparc sparcv9 sparc64 alpha sh ia64 %{x8664} x32 ppc64 s390x %{arm}
-%attr(755,root,root) /%{_lib}/ld.so.1
 %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
@@ -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
-%files -n ldconfig
+%files ld
 %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
+%ifarch ia64
+%attr(755,root,root) /%{_lib}/ld-linux-ia64.so.2
+%ifarch %{x8664}
+%attr(755,root,root) /%{_lib}/ld-linux-x86-64.so.2
+%ifarch x32
+%attr(755,root,root) /%{_lib}/ld-linux-x32.so.2
+%ifarch ppc64 s390x
+%attr(755,root,root) /%{_lib}/ld64.so.1
+%ifnarch %{ix86} sparc sparcv9 sparc64 alpha sh ia64 %{x8664} x32 ppc64 s390x %{arm}
+%attr(755,root,root) /%{_lib}/ld.so.1
 %attr(755,root,root) /sbin/ldconfig
+%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

---- gitweb:


More information about the pld-cvs-commit mailing list