On Monday, 19. September 2011 17:28:26 Alan McKinnon wrote:
> On Mon, 19 Sep 2011 10:58:52 -0400
>
> Allan Gottlieb <[email protected]> wrote:
> > > First one emerges *broken* packages.
> > > Second one emerge packages *using* png14 (not necessarily broken)
> >
> > OK. But the claim was that: if
> >
> > revdep-rebuild
> >
> > with no argument found nothing to build, then
> >
> > revdep-rebuild --library <some-library>
> >
> > will find nothing.
> >
> > This guarantee is apparently no long true as my example in another msg
> > illustrated.
>
> Michael is indeed correct.
>
> A careful reading of the man page reveals the usage of the words
> "broken" and "using" exactly like he said. So I stand humbly corrected.
>
> I find revdep-rebuild's behavior in this respect confusing. Even though
> it is clearly documented it is unexpected. It would never have occurred
> to me to draw that distinction.
I think, it is very useful.
An example:
$ ldd /bin/bash
linux-vdso.so.1 => (0x00007fffbafff000)
libncurses.so.5 => /lib64/libncurses.so.5 (0x00007f0a4c278000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f0a4c074000)
libc.so.6 => /lib64/libc.so.6 (0x00007f0a4bce4000)
/lib64/ld-linux-x86-64.so.2 (0x00007f0a4c4ce000)
Assume ncurses get's an update (new version is libncurses.so.6)
Now if portage decided to *remove* libncurses.so.5 during that update, my bash
would be broken. Very bad, so the ebuild-writer decides to leave
libncurses.so.5 on my system.
Because linking of bash is consistent (it still links to .so.5) a run of
revdep-rebuild without args would return without result.
With revdep-rebuild --library libncurses.so.5 I am now able to find and rebuild
all packages, that use the "ancient" version of ncurses and after that, I can
*safely* remove it.
Best,
Michael