List Archive: gentoo-soc
An option was added to the missing-rebuild set to allow a user to
emerge the set of packages containing consumers of specified
libraries, similar to the revdep-rebuild --library flag. Since flags
can't currently be passed to packages sets through the portage cli,
the user must set the environment variable LIBRARY to the library's
name or a regular expression to match libraries in order to invoke
this functionality.
A couple bugs related to broken or missing symlinks to libraries were
fixed. There is one known bug remaining related to symlinks, which
was introduced as a result of other fixes. Basically, if a target of
a symlink points to a library that does not provide the soname (for
example, /usr/lib/libfoo.so -> libnotfoo.so), binaries that require
/usr/lib/libfoo.so would be potentially broken and ignored. The fix
that I have in mind is to check the target's soname entry in
LinkageMap._obj_properties; however, fixing it will result in
unnecessary packages in the package set (due to libraries missing an
SONAME in it's NEEDED.ELF.2 entry eg libmix.so). Anyway, I figure it
would be better to have false positives than overlooking potential
broken dependencies.
The MissingLibraryConsumerSet.load method was split into 3 smaller
methods to which I've added docstrings conforming to the Portage
Docstring Spec, which only recently came to attention unfortunately.
The code is hopefully easier to digest now.
I never liked the idea of depending on the masks in
/etc/revdep-rebuild/* to remove false positives, so this week I'll try
a different approach in which binaries not found in PATH or library
directories will be ignored. This should reduce the need for
directory and library masks (or more unlikely remove it entirely).
Although, I suspect that this will miss some broken dependencies, so
I'll have a good bit of testing to do.
Lucian
|
|