FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Gentoo > Gentoo User

 
 
LinkBack Thread Tools
 
Old 09-19-2011, 03:28 PM
Alan McKinnon
 
Default Updating libpng: another lib tool cockup?

On Mon, 19 Sep 2011 10:58:52 -0400
Allan Gottlieb <gottlieb@nyu.edu> 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.

--
Alan McKinnnon
alan.mckinnon@gmail.com
 
Old 09-19-2011, 03:49 PM
Michael Schreckenbauer
 
Default Updating libpng: another lib tool cockup?

On Monday, 19. September 2011 17:28:26 Alan McKinnon wrote:
> On Mon, 19 Sep 2011 10:58:52 -0400
>
> Allan Gottlieb <gottlieb@nyu.edu> 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
 
Old 09-19-2011, 03:49 PM
Paul Hartman
 
Default Updating libpng: another lib tool cockup?

On Mon, Sep 19, 2011 at 9:58 AM, Allan Gottlieb <gottlieb@nyu.edu> wrote:
> 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.

I think what everyone (except Michael S) seems to be confused about is:

Normal revdep-rebuild (with no options) looks for broken shared
library dependencies and rebuilds them. If you run it again, it won't
rebuild anything, because the dependency has been fixed.

Using the --library switch, however, it looks for everything built
against that library, regardless of whether or not the dependency is
broken, and rebuilds it. If you run this command 10 times in a row
it'll rebuild the same libraries 10 times.

Presumably, there are cases (like libpng) when it is desirable to
rebuild dependencies but they aren't "broken" in the way that
revdep-rebuild normally can detect. So using --library will
brute-force rebuild everything that depends on that library, just to
make sure they are built against the new version.

Moral of the story; if an ebuild tells you to revdep-rebuild
--library, do it.
 
Old 09-19-2011, 04:30 PM
 
Default Updating libpng: another lib tool cockup?

Allan Gottlieb <gottlieb@nyu.edu> wrote:

> On Mon, Sep 19 2011, Michael Schreckenbauer wrote:
>
> > On Monday, 19. September 2011 10:20:25 Allan Gottlieb wrote:
> >> On Mon, Sep 19 2011, Alan McKinnon wrote:
> >> >> > revdep-rebuild checks everything, revdep-rebuild --library
> >> >> > checks just some things.
> >> >> >
> >> >> > ebuilds sometimes issue messages to check just the libraries known
> >> >> > to have been updated, but a full revdep-rebuild after an update
> >> >> > will catch those anyway.
> >> >>
> >> >> Until recently I skipped the "--library" step exactly because I knew
> >> >> revdep-rebuild will find and fix the broken packages after I delete
> >> >> the old library. So, why bother with the --library step, right?
> >> >>
> >> >> However. A few weeks ago I got caught when I deleted one of those
> >> >> obsolete libraries and only then did I find out that gcc is one of
> >> >> the packages that depend on it
> >> >>
> >> >> I don't skip the --library step any more.
> >> >
> >> > That's odd behaviour, I wonder what caused the difference.
> >> >
> >> > Surely revdep-rebuild itself can't do this different just because you
> >> > specified a library to compare? I wonder if that lib was maybe in the
> >> > revdep-rebuild exclude list.
> >> >
> >> > I'd be interested to track it down for reference, do you remember the
> >> > library involved?
> >>
> >> It occurs exactly in the case we are discussing libpng
> >>
> >> ajglap gottlieb # revdep-rebuild; revdep-rebuild --library
> >> '/usr/lib64/libpng14.so.14' * Configuring search environment for
> >> revdep-rebuild
> >>
> >> * Checking reverse dependencies
> >> * Packages containing binaries and libraries broken by a package update
> >> * will be emerged.
> >> ...
> >> * Checking reverse dependencies
> >> * Packages containing binaries and libraries using
> >> /usr/lib64/libpng14.so.14 * will be emerged.
> >
> > 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.
Will emerge @preserved-rebuild catch the second case here?


--
Your life is like a penny. You're going to lose it. The question is:
How do
you spend it?

John Covici
covici@ccs.covici.com
 

Thread Tools




All times are GMT. The time now is 05:13 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org