Re: [gentoo-user] Re: Updating libpng: another lib tool cockup?

2011-09-20 Thread Neil Bothwick
On Mon, 19 Sep 2011 13:57:03 -0400, Allan Gottlieb wrote:

 When revdep-rebuild --library is suggested should we run it
 before or after the ordinary revdep-rebuild that we typically
 run after each update world?
 (That was actually my original question :-)

You should run it first, because the elog message is telling you to run
that command, not revdep-rebuild, which is usually unnecessary. The
reason revdep-rebuild alone finds nothing to rebuild is because portage
has ensured that nothing is broken by preserving the old library version.

With a recent enough portage, emerge @preserved-rebuild should avoid the
need for revdep-rebuild entirely, although in this case it doesn't quite
manage that.


-- 
Neil Bothwick

WinErr 004: Erroneous error - Nothing is wrong


signature.asc
Description: PGP signature


Re: [gentoo-user] Re: Updating libpng: another lib tool cockup?

2011-09-20 Thread Allan Gottlieb
On Tue, Sep 20 2011, Neil Bothwick wrote:

 On Mon, 19 Sep 2011 13:57:03 -0400, Allan Gottlieb wrote:

 When revdep-rebuild --library is suggested should we run it
 before or after the ordinary revdep-rebuild that we typically
 run after each update world?
 (That was actually my original question :-)

 You should run it first, because the elog message is telling you to run
 that command, not revdep-rebuild, which is usually unnecessary. The
 reason revdep-rebuild alone finds nothing to rebuild is because portage
 has ensured that nothing is broken by preserving the old library version.

 With a recent enough portage, emerge @preserved-rebuild should avoid the
 need for revdep-rebuild entirely, although in this case it doesn't quite
 manage that.

Thank you.
allan



Re: [gentoo-user] Re: Updating libpng: another lib tool cockup?

2011-09-19 Thread Allan Gottlieb
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.

allan



Re: [gentoo-user] Re: Updating libpng: another lib tool cockup?

2011-09-19 Thread Michael Schreckenbauer
On Monday, 19. September 2011 10:58:52 Allan Gottlieb 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 is not true.
revdep-rebuild without --library argument checks for packages with *broken* 
linking, eg a library changed it's name and the original one was removed by an 
update.
revdep-rebuild --library checks for packages using that library.

If the first one returns nothing, that means, your linking is all ok.
If the second one returns nothing, it tells you, that nothing is using that 
library at all.

 This guarantee is apparently no long true as my example in another msg
 illustrated.

I doubt it was true in the past.

Best,
Michael




Re: [gentoo-user] Re: Updating libpng: another lib tool cockup?

2011-09-19 Thread Alan McKinnon
On Mon, 19 Sep 2011 10:58:52 -0400
Allan Gottlieb gottl...@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.mckin...@gmail.com



Re: [gentoo-user] Re: Updating libpng: another lib tool cockup?

2011-09-19 Thread Michael Schreckenbauer
On Monday, 19. September 2011 17:28:26 Alan McKinnon wrote:
 On Mon, 19 Sep 2011 10:58:52 -0400
 
 Allan Gottlieb gottl...@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 =  (0x7fffbafff000)

  
libncurses.so.5 = /lib64/libncurses.so.5 (0x7f0a4c278000)  

  
libdl.so.2 = /lib64/libdl.so.2 (0x7f0a4c074000)

  
libc.so.6 = /lib64/libc.so.6 (0x7f0a4bce4000)  

  
/lib64/ld-linux-x86-64.so.2 (0x7f0a4c4ce000)

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




Re: [gentoo-user] Re: Updating libpng: another lib tool cockup?

2011-09-19 Thread Paul Hartman
On Mon, Sep 19, 2011 at 9:58 AM, Allan Gottlieb gottl...@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. :)



Re: [gentoo-user] Re: Updating libpng: another lib tool cockup?

2011-09-19 Thread covici

Allan Gottlieb gottl...@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
 cov...@ccs.covici.com



Re: [gentoo-user] Re: Updating libpng: another lib tool cockup?

2011-09-19 Thread Allan Gottlieb
On Mon, Sep 19 2011, Paul Hartman wrote:

 On Mon, Sep 19, 2011 at 9:58 AM, Allan Gottlieb gottl...@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. :)

Thanks for the clarification.

When revdep-rebuild --library is suggested should we run it
before or after the ordinary revdep-rebuild that we typically
run after each update world?
(That was actually my original question :-)

thanks,
allan




Re: [gentoo-user] Re: Updating libpng: another lib tool cockup?

2011-09-19 Thread Paul Hartman
On Mon, Sep 19, 2011 at 12:57 PM, Allan Gottlieb gottl...@nyu.edu wrote:
 When revdep-rebuild --library is suggested should we run it
 before or after the ordinary revdep-rebuild that we typically
 run after each update world?

I think you should run it with --library first. There exists the
possiblity that --library will rebuild something that a normal
revdep-rebuild would have also wanted to rebuild, so running --library
first could potentially save you from repeat rebuilding.



Re: [gentoo-user] Re: Updating libpng: another lib tool cockup?

2011-09-19 Thread Allan Gottlieb
On Mon, Sep 19 2011, Paul Hartman wrote:

 On Mon, Sep 19, 2011 at 12:57 PM, Allan Gottlieb gottl...@nyu.edu wrote:
 When revdep-rebuild --library is suggested should we run it
 before or after the ordinary revdep-rebuild that we typically
 run after each update world?

 I think you should run it with --library first. There exists the
 possiblity that --library will rebuild something that a normal
 revdep-rebuild would have also wanted to rebuild, so running --library
 first could potentially save you from repeat rebuilding.

thanks,
allan