Josselin Mouette wrote: > currently the postinst in dh_makeshlibs calls ldconfig. However, when > called without arguments, it updates symbolic links, which is useless > since they are already correct in the packages themselves. > > It can also trigger bugs like #549714; here the user has a file he > shouldn’t have, but it would not have broken his system without calling > ldconfig. > > Therefore, please call ldconfig -X instead of ldconfig. It will still > rebuild the cache, but not update the symlinks. This might save a few > disk seeks during upgrades as well. I have discussed this with the glibc > maintainers, and they agreed with the idea of this change.
I did some investigation last week to see what unwanted effects this might have: http://lintian.debian.org/tags/ldconfig-symlink-missing-for-shlib.html usr/lib/libgnuintl.so.8 usr/lib/preloadable_libintl.so libgnuintl.so.8 This seems to be a false positive; gettext provides preloadable_libintl.so, but ldconfig does not make a symlink to libgnuintl.so.8. http://lintian.debian.org/tags/ldconfig-symlink-referencing-wrong-file.html usr/lib/libXaw.so.7 -> libXaw7.so.7 instead of libXaw7.so.7.0.0 Another false positive; in libxaw7, libXaw7.so.7.0.0 is the file, and libXaw7.so.7 is the symlink. Policy currently says this: The run-time library package should include the symbolic link that `ldconfig' would create for the shared libraries. For example, the `libgdbm3' package should include a symbolic link from `/usr/lib/libgdbm.so.3' to `libgdbm.so.3.0.0'. This is needed so that the dynamic linker (for example `ld.so' or `ld-linux.so.*') can find the library between the time that `dpkg' installs it and the time that `ldconfig' is run in the `postinst' script.[3] That should not prevent use of ldconfig -X, but it will be out of date once ldconfig -X is in use. If *everything* used ldconfig -X this could in theory fix #224450 for new installs. There are more practical ways to fix that bug though. At the moment, I'm leaning toward making this change. -- see shy jo
signature.asc
Description: Digital signature