Fix LinkageMap.findConsumers() to check whether the master link for a lib
authorZac Medico <zmedico@gentoo.org>
Sat, 26 Jul 2008 11:33:18 +0000 (11:33 -0000)
committerZac Medico <zmedico@gentoo.org>
Sat, 26 Jul 2008 11:33:18 +0000 (11:33 -0000)
commit5036b05df01cea1911a8c431b18cedce1423f7c2
tree75d2748ce264e7733060a01321a7c43dab58c99c
parent29b86c987aba118e75428fd01b8e4261a3eba685
Fix LinkageMap.findConsumers() to check whether the master link for a lib
providing a given soname actually points to that lib. If there is another
version of this lib with the same soname and the master link points to
that other version, this lib will be shadowed and won't have any consumers.
By eliminating false, positives this way, we avoid the following state
after upgrade from media-libs/mesa-7.0.3 to media-libs/mesa-7.1_rc3:

# scanelf -S /usr/lib64/libGLU.so*
 TYPE   SONAME FILE
ET_DYN libGLU.so.1 /usr/lib64/libGLU.so
ET_DYN libGLU.so.1 /usr/lib64/libGLU.so.1
ET_DYN libGLU.so.1 /usr/lib64/libGLU.so.1.3
ET_DYN libGLU.so.1 /usr/lib64/libGLU.so.1.3.070003
ET_DYN libGLU.so.1 /usr/lib64/libGLU.so.1.3.070100 <- shadowed lib

Thanks to Diego "Flameeyes" Pettenò for reporting this issue.

svn path=/main/trunk/; revision=11200
pym/portage/dbapi/vartree.py