Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Bug#549990: dh_makeshlibs: Please use ldconfig -X

1 view
Skip to first unread message

Josselin Mouette

unread,
Oct 6, 2009, 5:10:12 PM10/6/09
to
Package: debhelper
Version: 7.4.2
Severity: wishlist

Hi,

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.

Cheers,
--
.''`. Josselin Mouette
: :' :
`. `' “I recommend you to learn English in hope that you in
`- future understand things” -- Jörg Schilling

--
To UNSUBSCRIBE, email to debian-bugs-...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org

Joey Hess

unread,
Oct 19, 2009, 4:50:02 PM10/19/09
to
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
0 new messages