The preserve_old_lib function in eutils should preserve symlinks so as not to annoy ldconfig: (after upgrading openldap to 2.3.24-r1) # ldconfig ldconfig: /usr/lib/libldap_r-2.2.so.7 is not a symbolic link ldconfig: /usr/lib/libldap-2.2.so.7 is not a symbolic link ldconfig: /usr/lib/liblber-2.2.so.7 is not a symbolic link
Created attachment 89539 [details, diff] use tar instead of cp to copy files in preserve_old_lib Used tar because BSD's cp doesn't have a "-d" flag.
if wanted to preserve libs, you would use the POSIX -P option however, that doesnt change the fact that openldap is broken ... it preserves too many libs
(In reply to comment #2) > if wanted to preserve libs, you would use the POSIX -P option s/libs/links/ ? Forgot about -P (I use cpio for everything. :) For Mac OS X (and presumably FreeBSD), you have to use -RP. GNU cp works with just -P. > however, that doesnt change the fact that openldap is broken ... it preserves > too many libs True, but that doesn't change the fact that preserve_old_lib is busted. Has it been fixed?
spanky: i'd love a better solution regarding preserving less libs, but the root of it was that during a 2.2->2.3 upgrade, if you don't keep the libs, and you happen to use nss_ldap, your system blows up completely.
vapier: please see the comment 4
the problem is you're preserving too many ... you preserve both the major ABI and the minor ABI you're supposed to preserve only the actual lib that is encoded in SONAME ... so replace the wildcards with single libraries you only need: liblber-2.2.so.7 libslapi-2.2.so.7 libldap_r-2.2.so.7 libldap-2.2.so.7 etc...
Applied in all recent ebuilds, just waiting for them to go stable