* [gentoo-user] Updating libpng: another libtool cockup? @ 2011-09-18 20:10 walt 2011-09-18 20:48 ` Michael Mol ` (3 more replies) 0 siblings, 4 replies; 34+ messages in thread From: walt @ 2011-09-18 20:10 UTC (permalink / raw To: gentoo-user I just did a routine update on my ~amd64 machine and saw the portage warning that libpng14 has been replaced by libpng15, and I should run revdep-rebuild --library '/usr/lib/libpng14.so' and then delete the obsolete library. That's what I did. I confess I wasn't watching, so I may have missed some important errors during the run. After that I ran plain revdep-rebuild as I do after every update, and saw that two gnome packages failed to rebuild properly because lpng14 couldn't be found :/ From painful experience I've learned that good-old libtool files (*.la) are the usual suspects, and grep found -lpng14 in about ten .la files even after both revdep-rebuilds. Grrr! This fixed the problem for me (as similar moves have done in the past): #find /usr/lib64 -name \*.la -exec sed -i s/png14/png15/ '{}' ';' I ran revdep-rebuild again and the two broken packages emerged nicely this time. I hope no one else will hit this problem, but at least this is a good workaround if you do. ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [gentoo-user] Updating libpng: another libtool cockup? 2011-09-18 20:10 [gentoo-user] Updating libpng: another libtool cockup? walt @ 2011-09-18 20:48 ` Michael Mol 2011-09-18 20:57 ` Thanasis ` (2 subsequent siblings) 3 siblings, 0 replies; 34+ messages in thread From: Michael Mol @ 2011-09-18 20:48 UTC (permalink / raw To: gentoo-user On Sun, Sep 18, 2011 at 4:10 PM, walt <w41ter@gmail.com> wrote: > I just did a routine update on my ~amd64 machine and saw the portage > warning that libpng14 has been replaced by libpng15, and I should run > revdep-rebuild --library '/usr/lib/libpng14.so' and then delete the > obsolete library. > > That's what I did. I confess I wasn't watching, so I may have missed > some important errors during the run. > > After that I ran plain revdep-rebuild as I do after every update, and > saw that two gnome packages failed to rebuild properly because lpng14 > couldn't be found :/ > > From painful experience I've learned that good-old libtool files (*.la) > are the usual suspects, and grep found -lpng14 in about ten .la files > even after both revdep-rebuilds. Grrr! > > This fixed the problem for me (as similar moves have done in the past): > > #find /usr/lib64 -name \*.la -exec sed -i s/png14/png15/ '{}' ';' > > I ran revdep-rebuild again and the two broken packages emerged nicely > this time. > > I hope no one else will hit this problem, but at least this is a good > workaround if you do. If you're not following Diego Pettenò's blog, you probably should. .la files are one of the things he harps on in his blog. http://blog.flameeyes.eu/ -- :wq ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [gentoo-user] Updating libpng: another libtool cockup? 2011-09-18 20:10 [gentoo-user] Updating libpng: another libtool cockup? walt 2011-09-18 20:48 ` Michael Mol @ 2011-09-18 20:57 ` Thanasis 2011-09-18 21:54 ` Mick 2011-09-18 21:58 ` Allan Gottlieb 2011-09-19 21:04 ` [gentoo-user] " Nikos Chantziaras 3 siblings, 1 reply; 34+ messages in thread From: Thanasis @ 2011-09-18 20:57 UTC (permalink / raw To: gentoo-user; +Cc: walt on 09/18/2011 11:10 PM walt wrote the following: > I just did a routine update on my ~amd64 machine and saw the portage > warning that libpng14 has been replaced by libpng15, and I should run > revdep-rebuild --library '/usr/lib/libpng14.so' and then delete the > obsolete library. ><snip> > This fixed the problem for me (as similar moves have done in the past): > > #find /usr/lib64 -name \*.la -exec sed -i s/png14/png15/ '{}' ';' Thanks ! I didn't know we can just edit .la files. ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [gentoo-user] Updating libpng: another libtool cockup? 2011-09-18 20:57 ` Thanasis @ 2011-09-18 21:54 ` Mick 0 siblings, 0 replies; 34+ messages in thread From: Mick @ 2011-09-18 21:54 UTC (permalink / raw To: gentoo-user [-- Attachment #1: Type: Text/Plain, Size: 706 bytes --] On Sunday 18 Sep 2011 21:57:29 Thanasis wrote: > on 09/18/2011 11:10 PM walt wrote the following: > > I just did a routine update on my ~amd64 machine and saw the portage > > warning that libpng14 has been replaced by libpng15, and I should run > > revdep-rebuild --library '/usr/lib/libpng14.so' and then delete the > > obsolete library. > > > ><snip> > > > > This fixed the problem for me (as similar moves have done in the past): > > > > #find /usr/lib64 -name \*.la -exec sed -i s/png14/png15/ '{}' ';' > > Thanks ! I didn't know we can just edit .la files. Isn't something like this that lafilefixer does (and now is part of the default FEATURES in portage)? -- Regards, Mick [-- Attachment #2: This is a digitally signed message part. --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [gentoo-user] Updating libpng: another libtool cockup? 2011-09-18 20:10 [gentoo-user] Updating libpng: another libtool cockup? walt 2011-09-18 20:48 ` Michael Mol 2011-09-18 20:57 ` Thanasis @ 2011-09-18 21:58 ` Allan Gottlieb 2011-09-18 23:39 ` Alan McKinnon 2011-09-19 21:04 ` [gentoo-user] " Nikos Chantziaras 3 siblings, 1 reply; 34+ messages in thread From: Allan Gottlieb @ 2011-09-18 21:58 UTC (permalink / raw To: gentoo-user On Sun, Sep 18 2011, walt wrote: > I just did a routine update on my ~amd64 machine and saw the portage > warning that libpng14 has been replaced by libpng15, and I should run > revdep-rebuild --library '/usr/lib/libpng14.so' and then delete the > obsolete library. > > After that I ran plain revdep-rebuild as I do after every update, and > saw that two gnome packages failed to rebuild properly because lpng14 > couldn't be found :/ > > From painful experience I've learned that good-old libtool files (*.la) > are the usual suspects, and grep found -lpng14 in about ten .la files > even after both revdep-rebuilds. Grrr! > > This fixed the problem for me (as similar moves have done in the past): > > #find /usr/lib64 -name \*.la -exec sed -i s/png14/png15/ '{}' ';' Thanks for the tip. I wonder when a routing update world tells you to run revdep-rebuild --library <some-lib> should you run it before or after the normal revdep-rebuild that we normally run after updates? thanks, allan ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [gentoo-user] Updating libpng: another libtool cockup? 2011-09-18 21:58 ` Allan Gottlieb @ 2011-09-18 23:39 ` Alan McKinnon 2011-09-19 10:06 ` [gentoo-user] " walt 2011-09-19 14:06 ` [gentoo-user] " Allan Gottlieb 0 siblings, 2 replies; 34+ messages in thread From: Alan McKinnon @ 2011-09-18 23:39 UTC (permalink / raw To: gentoo-user On Sun, 18 Sep 2011 17:58:14 -0400 Allan Gottlieb <gottlieb@nyu.edu> wrote: > On Sun, Sep 18 2011, walt wrote: > > > I just did a routine update on my ~amd64 machine and saw the portage > > warning that libpng14 has been replaced by libpng15, and I should > > run revdep-rebuild --library '/usr/lib/libpng14.so' and then delete > > the obsolete library. > > > > After that I ran plain revdep-rebuild as I do after every update, > > and saw that two gnome packages failed to rebuild properly because > > lpng14 couldn't be found :/ > > > > From painful experience I've learned that good-old libtool files > > (*.la) are the usual suspects, and grep found -lpng14 in about > > ten .la files even after both revdep-rebuilds. Grrr! > > > > This fixed the problem for me (as similar moves have done in the > > past): > > > > #find /usr/lib64 -name \*.la -exec sed -i s/png14/png15/ '{}' ';' > > Thanks for the tip. I wonder when a routing update world tells you to > run > revdep-rebuild --library <some-lib> > should you run it before or after the normal > revdep-rebuild > that we normally run after updates? Neither. 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. -- Alan McKinnnon alan.mckinnon@gmail.com ^ permalink raw reply [flat|nested] 34+ messages in thread
* [gentoo-user] Re: Updating libpng: another libtool cockup? 2011-09-18 23:39 ` Alan McKinnon @ 2011-09-19 10:06 ` walt 2011-09-19 14:10 ` Alan McKinnon 2011-09-19 14:06 ` [gentoo-user] " Allan Gottlieb 1 sibling, 1 reply; 34+ messages in thread From: walt @ 2011-09-19 10:06 UTC (permalink / raw To: gentoo-user On Mon, 2011-09-19 at 01:39 +0200, Alan McKinnon wrote: > On Sun, 18 Sep 2011 17:58:14 -0400 > Allan Gottlieb <gottlieb@nyu.edu> wrote: > > > On Sun, Sep 18 2011, walt wrote: > > > > > I just did a routine update on my ~amd64 machine and saw the portage > > > warning that libpng14 has been replaced by libpng15, and I should > > > run revdep-rebuild --library '/usr/lib/libpng14.so' and then delete > > > the obsolete library. > > > > > > After that I ran plain revdep-rebuild as I do after every update, > > > and saw that two gnome packages failed to rebuild properly because > > > lpng14 couldn't be found :/ > > > > > > From painful experience I've learned that good-old libtool files > > > (*.la) are the usual suspects, and grep found -lpng14 in about > > > ten .la files even after both revdep-rebuilds. Grrr! > > > > > > This fixed the problem for me (as similar moves have done in the > > > past): > > > > > > #find /usr/lib64 -name \*.la -exec sed -i s/png14/png15/ '{}' ';' > > > > Thanks for the tip. I wonder when a routing update world tells you to > > run > > revdep-rebuild --library <some-lib> > > should you run it before or after the normal > > revdep-rebuild > > that we normally run after updates? > > Neither. > > 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. ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [gentoo-user] Re: Updating libpng: another libtool cockup? 2011-09-19 10:06 ` [gentoo-user] " walt @ 2011-09-19 14:10 ` Alan McKinnon 2011-09-19 14:20 ` Allan Gottlieb ` (2 more replies) 0 siblings, 3 replies; 34+ messages in thread From: Alan McKinnon @ 2011-09-19 14:10 UTC (permalink / raw To: gentoo-user On Mon, 19 Sep 2011 03:06:30 -0700 walt <w41ter@gmail.com> wrote: > On Mon, 2011-09-19 at 01:39 +0200, Alan McKinnon wrote: > > On Sun, 18 Sep 2011 17:58:14 -0400 > > Allan Gottlieb <gottlieb@nyu.edu> wrote: > > > > > On Sun, Sep 18 2011, walt wrote: > > > > > > > I just did a routine update on my ~amd64 machine and saw the > > > > portage warning that libpng14 has been replaced by libpng15, > > > > and I should run revdep-rebuild --library > > > > '/usr/lib/libpng14.so' and then delete the obsolete library. > > > > > > > > After that I ran plain revdep-rebuild as I do after every > > > > update, and saw that two gnome packages failed to rebuild > > > > properly because lpng14 couldn't be found :/ > > > > > > > > From painful experience I've learned that good-old libtool files > > > > (*.la) are the usual suspects, and grep found -lpng14 in about > > > > ten .la files even after both revdep-rebuilds. Grrr! > > > > > > > > This fixed the problem for me (as similar moves have done in the > > > > past): > > > > > > > > #find /usr/lib64 -name \*.la -exec sed -i s/png14/png15/ '{}' > > > > ';' > > > > > > Thanks for the tip. I wonder when a routing update world tells > > > you to run > > > revdep-rebuild --library <some-lib> > > > should you run it before or after the normal > > > revdep-rebuild > > > that we normally run after updates? > > > > Neither. > > > > 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? -- Alan McKinnnon alan.mckinnon@gmail.com ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [gentoo-user] Re: Updating libpng: another libtool cockup? 2011-09-19 14:10 ` Alan McKinnon @ 2011-09-19 14:20 ` Allan Gottlieb 2011-09-19 14:34 ` Michael Schreckenbauer 2011-09-19 14:36 ` [gentoo-user] Re: Updating libpng: another libtool cockup? Michael Mol 2011-09-19 15:07 ` walt 2011-09-19 15:49 ` David W Noon 2 siblings, 2 replies; 34+ messages in thread From: Allan Gottlieb @ 2011-09-19 14:20 UTC (permalink / raw To: gentoo-user 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. * Collecting system binaries and libraries * Generated new 1_files.rr * Collecting complete LD_LIBRARY_PATH * Generated new 2_ldpath.rr * Checking dynamic linking consistency [ 100% ] * Dynamic linking on your system is consistent... All done. * Configuring search environment for revdep-rebuild * Checking reverse dependencies * Packages containing binaries and libraries using /usr/lib64/libpng14.so.14 * will be emerged. * Collecting system binaries and libraries * Generated new 1_files.rr * Checking dynamic linking [ 8% ] * found /usr/bin/dia [ 46% ] * found /usr/lib64/dia/libaadl_objects.so * found /usr/lib64/dia/libart_filter.so * found /usr/lib64/dia/libcairo_filter.so * found /usr/lib64/dia/libcgm_filter.so * found /usr/lib64/dia/libchronogram_objects.so * found /usr/lib64/dia/libcustom_lines_objects.so * found /usr/lib64/dia/libcustom_objects.so * found /usr/lib64/dia/libdb_objects.so * found /usr/lib64/dia/libdia.so * found /usr/lib64/dia/libdxf_filter.so * found /usr/lib64/dia/liber_objects.so * found /usr/lib64/dia/libflowchart_objects.so * found /usr/lib64/dia/libfs_objects.so * found /usr/lib64/dia/libgrafcet_objects.so * found /usr/lib64/dia/libhpgl_filter.so * found /usr/lib64/dia/libistar_objects.so * found /usr/lib64/dia/libjackson_objects.so * found /usr/lib64/dia/libkaos_objects.so * found /usr/lib64/dia/libmetapost_filter.so * found /usr/lib64/dia/libmisc_objects.so * found /usr/lib64/dia/libnetwork_objects.so * found /usr/lib64/dia/libpgf_filter.so * found /usr/lib64/dia/libpixbuf_filter.so * found /usr/lib64/dia/libpostscript_filter.so * found /usr/lib64/dia/libpstricks_filter.so * found /usr/lib64/dia/libpython_plugin.so ^C * ...terminated. Removing incomplete 3_broken.rr 3_errors.rr. ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [gentoo-user] Re: Updating libpng: another libtool cockup? 2011-09-19 14:20 ` Allan Gottlieb @ 2011-09-19 14:34 ` Michael Schreckenbauer 2011-09-19 14:58 ` [gentoo-user] Re: Updating libpng: another lib tool cockup? Allan Gottlieb 2011-09-19 14:36 ` [gentoo-user] Re: Updating libpng: another libtool cockup? Michael Mol 1 sibling, 1 reply; 34+ messages in thread From: Michael Schreckenbauer @ 2011-09-19 14:34 UTC (permalink / raw To: gentoo-user 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) Best, Michael ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [gentoo-user] Re: Updating libpng: another lib tool cockup? 2011-09-19 14:34 ` Michael Schreckenbauer @ 2011-09-19 14:58 ` Allan Gottlieb 2011-09-19 15:19 ` Michael Schreckenbauer ` (3 more replies) 0 siblings, 4 replies; 34+ messages in thread From: Allan Gottlieb @ 2011-09-19 14:58 UTC (permalink / raw To: gentoo-user 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 ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [gentoo-user] Re: Updating libpng: another lib tool cockup? 2011-09-19 14:58 ` [gentoo-user] Re: Updating libpng: another lib tool cockup? Allan Gottlieb @ 2011-09-19 15:19 ` Michael Schreckenbauer 2011-09-19 15:28 ` Alan McKinnon ` (2 subsequent siblings) 3 siblings, 0 replies; 34+ messages in thread From: Michael Schreckenbauer @ 2011-09-19 15:19 UTC (permalink / raw To: gentoo-user 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 ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [gentoo-user] Re: Updating libpng: another lib tool cockup? 2011-09-19 14:58 ` [gentoo-user] Re: Updating libpng: another lib tool cockup? Allan Gottlieb 2011-09-19 15:19 ` Michael Schreckenbauer @ 2011-09-19 15:28 ` Alan McKinnon 2011-09-19 15:49 ` Michael Schreckenbauer 2011-09-19 15:49 ` Paul Hartman 2011-09-19 16:30 ` covici 3 siblings, 1 reply; 34+ messages in thread From: Alan McKinnon @ 2011-09-19 15:28 UTC (permalink / raw To: gentoo-user 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 ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [gentoo-user] Re: Updating libpng: another lib tool cockup? 2011-09-19 15:28 ` Alan McKinnon @ 2011-09-19 15:49 ` Michael Schreckenbauer 0 siblings, 0 replies; 34+ messages in thread From: Michael Schreckenbauer @ 2011-09-19 15:49 UTC (permalink / raw To: gentoo-user 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 ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [gentoo-user] Re: Updating libpng: another lib tool cockup? 2011-09-19 14:58 ` [gentoo-user] Re: Updating libpng: another lib tool cockup? Allan Gottlieb 2011-09-19 15:19 ` Michael Schreckenbauer 2011-09-19 15:28 ` Alan McKinnon @ 2011-09-19 15:49 ` Paul Hartman 2011-09-19 17:57 ` Allan Gottlieb 2011-09-19 16:30 ` covici 3 siblings, 1 reply; 34+ messages in thread From: Paul Hartman @ 2011-09-19 15:49 UTC (permalink / raw To: gentoo-user 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. :) ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [gentoo-user] Re: Updating libpng: another lib tool cockup? 2011-09-19 15:49 ` Paul Hartman @ 2011-09-19 17:57 ` Allan Gottlieb 2011-09-19 18:19 ` Paul Hartman 2011-09-20 10:38 ` Neil Bothwick 0 siblings, 2 replies; 34+ messages in thread From: Allan Gottlieb @ 2011-09-19 17:57 UTC (permalink / raw To: gentoo-user On Mon, Sep 19 2011, Paul Hartman wrote: > 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. :) 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 ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [gentoo-user] Re: Updating libpng: another lib tool cockup? 2011-09-19 17:57 ` Allan Gottlieb @ 2011-09-19 18:19 ` Paul Hartman 2011-09-19 20:08 ` Allan Gottlieb 2011-09-20 10:38 ` Neil Bothwick 1 sibling, 1 reply; 34+ messages in thread From: Paul Hartman @ 2011-09-19 18:19 UTC (permalink / raw To: gentoo-user On Mon, Sep 19, 2011 at 12:57 PM, Allan Gottlieb <gottlieb@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. ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [gentoo-user] Re: Updating libpng: another lib tool cockup? 2011-09-19 18:19 ` Paul Hartman @ 2011-09-19 20:08 ` Allan Gottlieb 0 siblings, 0 replies; 34+ messages in thread From: Allan Gottlieb @ 2011-09-19 20:08 UTC (permalink / raw To: gentoo-user On Mon, Sep 19 2011, Paul Hartman wrote: > On Mon, Sep 19, 2011 at 12:57 PM, Allan Gottlieb <gottlieb@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 ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [gentoo-user] Re: Updating libpng: another lib tool cockup? 2011-09-19 17:57 ` Allan Gottlieb 2011-09-19 18:19 ` Paul Hartman @ 2011-09-20 10:38 ` Neil Bothwick 2011-09-20 12:57 ` Allan Gottlieb 1 sibling, 1 reply; 34+ messages in thread From: Neil Bothwick @ 2011-09-20 10:38 UTC (permalink / raw To: gentoo-user [-- Attachment #1: Type: text/plain, Size: 798 bytes --] 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 [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [gentoo-user] Re: Updating libpng: another lib tool cockup? 2011-09-20 10:38 ` Neil Bothwick @ 2011-09-20 12:57 ` Allan Gottlieb 0 siblings, 0 replies; 34+ messages in thread From: Allan Gottlieb @ 2011-09-20 12:57 UTC (permalink / raw To: gentoo-user 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 ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [gentoo-user] Re: Updating libpng: another lib tool cockup? 2011-09-19 14:58 ` [gentoo-user] Re: Updating libpng: another lib tool cockup? Allan Gottlieb ` (2 preceding siblings ...) 2011-09-19 15:49 ` Paul Hartman @ 2011-09-19 16:30 ` covici 3 siblings, 0 replies; 34+ messages in thread From: covici @ 2011-09-19 16:30 UTC (permalink / raw To: gentoo-user 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 ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [gentoo-user] Re: Updating libpng: another libtool cockup? 2011-09-19 14:20 ` Allan Gottlieb 2011-09-19 14:34 ` Michael Schreckenbauer @ 2011-09-19 14:36 ` Michael Mol 2011-09-19 20:33 ` Mark Knecht 1 sibling, 1 reply; 34+ messages in thread From: Michael Mol @ 2011-09-19 14:36 UTC (permalink / raw To: gentoo-user On Mon, Sep 19, 2011 at 10:20 AM, Allan Gottlieb <gottlieb@nyu.edu> 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. > > * Collecting system binaries and libraries > * Generated new 1_files.rr > * Collecting complete LD_LIBRARY_PATH > * Generated new 2_ldpath.rr > * Checking dynamic linking consistency > [ 100% ] > > * Dynamic linking on your system is consistent... All done. > * Configuring search environment for revdep-rebuild > > * Checking reverse dependencies > * Packages containing binaries and libraries using /usr/lib64/libpng14.so.14 > * will be emerged. > > * Collecting system binaries and libraries > * Generated new 1_files.rr > * Checking dynamic linking > [ 8% ] * found /usr/bin/dia > [ 46% ] * found /usr/lib64/dia/libaadl_objects.so > * found /usr/lib64/dia/libart_filter.so > * found /usr/lib64/dia/libcairo_filter.so > * found /usr/lib64/dia/libcgm_filter.so > * found /usr/lib64/dia/libchronogram_objects.so > * found /usr/lib64/dia/libcustom_lines_objects.so > * found /usr/lib64/dia/libcustom_objects.so > * found /usr/lib64/dia/libdb_objects.so > * found /usr/lib64/dia/libdia.so > * found /usr/lib64/dia/libdxf_filter.so > * found /usr/lib64/dia/liber_objects.so > * found /usr/lib64/dia/libflowchart_objects.so > * found /usr/lib64/dia/libfs_objects.so > * found /usr/lib64/dia/libgrafcet_objects.so > * found /usr/lib64/dia/libhpgl_filter.so > * found /usr/lib64/dia/libistar_objects.so > * found /usr/lib64/dia/libjackson_objects.so > * found /usr/lib64/dia/libkaos_objects.so > * found /usr/lib64/dia/libmetapost_filter.so > * found /usr/lib64/dia/libmisc_objects.so > * found /usr/lib64/dia/libnetwork_objects.so > * found /usr/lib64/dia/libpgf_filter.so > * found /usr/lib64/dia/libpixbuf_filter.so > * found /usr/lib64/dia/libpostscript_filter.so > * found /usr/lib64/dia/libpstricks_filter.so > * found /usr/lib64/dia/libpython_plugin.so > ^C * ...terminated. Removing incomplete 3_broken.rr 3_errors.rr. Is there no automated way to catch these? --library expects an argument; how do I know which libraries to feed it? -- :wq ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [gentoo-user] Re: Updating libpng: another libtool cockup? 2011-09-19 14:36 ` [gentoo-user] Re: Updating libpng: another libtool cockup? Michael Mol @ 2011-09-19 20:33 ` Mark Knecht 2011-09-19 20:41 ` Michael Mol 0 siblings, 1 reply; 34+ messages in thread From: Mark Knecht @ 2011-09-19 20:33 UTC (permalink / raw To: gentoo-user On Mon, Sep 19, 2011 at 7:36 AM, Michael Mol <mikemol@gmail.com> wrote: > On Mon, Sep 19, 2011 at 10:20 AM, Allan Gottlieb <gottlieb@nyu.edu> wrote: <SNIP> >> ajglap gottlieb # revdep-rebuild; revdep-rebuild --library '/usr/lib64/libpng14.so.14' <SNIP> > > Is there no automated way to catch these? --library expects an > argument; how do I know which libraries to feed it? > > -- > :wq My question exactly. It's not likeyou can look at just names of libraries as I think to do this right you've got to look at every revision of every library on the system, don't you? It's possible that this problem could exist for a long while if a program doesn't get used much... - Mark ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [gentoo-user] Re: Updating libpng: another libtool cockup? 2011-09-19 20:33 ` Mark Knecht @ 2011-09-19 20:41 ` Michael Mol 2011-09-19 20:52 ` Mark Knecht 0 siblings, 1 reply; 34+ messages in thread From: Michael Mol @ 2011-09-19 20:41 UTC (permalink / raw To: gentoo-user On Mon, Sep 19, 2011 at 4:33 PM, Mark Knecht <markknecht@gmail.com> wrote: > On Mon, Sep 19, 2011 at 7:36 AM, Michael Mol <mikemol@gmail.com> wrote: >> On Mon, Sep 19, 2011 at 10:20 AM, Allan Gottlieb <gottlieb@nyu.edu> wrote: > <SNIP> >>> ajglap gottlieb # revdep-rebuild; revdep-rebuild --library '/usr/lib64/libpng14.so.14' > <SNIP> >> >> Is there no automated way to catch these? --library expects an >> argument; how do I know which libraries to feed it? > > My question exactly. It's not likeyou can look at just names of > libraries as I think to do this right you've got to look at every > revision of every library on the system, don't you? > > It's possible that this problem could exist for a long while if a > program doesn't get used much... Based on subsequent discussion since I wrote that question, I think the answer is, "currently, no." Ebuillds would need more metadata, and portage would need to be more aware of deep dependencies. I'm not sure of revdep-rebuild's angle, or how it might be able to be improved to detect errors that don't come from broken linkage. -- :wq ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [gentoo-user] Re: Updating libpng: another libtool cockup? 2011-09-19 20:41 ` Michael Mol @ 2011-09-19 20:52 ` Mark Knecht 2011-09-19 21:10 ` Michael Schreckenbauer 0 siblings, 1 reply; 34+ messages in thread From: Mark Knecht @ 2011-09-19 20:52 UTC (permalink / raw To: gentoo-user On Mon, Sep 19, 2011 at 1:41 PM, Michael Mol <mikemol@gmail.com> wrote: > On Mon, Sep 19, 2011 at 4:33 PM, Mark Knecht <markknecht@gmail.com> wrote: >> On Mon, Sep 19, 2011 at 7:36 AM, Michael Mol <mikemol@gmail.com> wrote: >>> On Mon, Sep 19, 2011 at 10:20 AM, Allan Gottlieb <gottlieb@nyu.edu> wrote: >> <SNIP> >>>> ajglap gottlieb # revdep-rebuild; revdep-rebuild --library '/usr/lib64/libpng14.so.14' >> <SNIP> >>> >>> Is there no automated way to catch these? --library expects an >>> argument; how do I know which libraries to feed it? >> >> My question exactly. It's not likeyou can look at just names of >> libraries as I think to do this right you've got to look at every >> revision of every library on the system, don't you? >> >> It's possible that this problem could exist for a long while if a >> program doesn't get used much... > > Based on subsequent discussion since I wrote that question, I think > the answer is, "currently, no." Ebuillds would need more metadata, and > portage would need to be more aware of deep dependencies. > > I'm not sure of revdep-rebuild's angle, or how it might be able to be > improved to detect errors that don't come from broken linkage. > -- > :wq OK, I saw that comment but didn't grasp that it's the answer. Could be. Alternatively, in Michael's example earlier, I don't think the ldd results for bash are changed (are they?) when ncurses is updated: [QUOTE] $ 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) [/QUOTE] It seems to me this is tending toward something similar to slots, isn't it? If one package (bash) needs a specific version then can't we find it using ldd (on every package on the system unfortunately) and ensure that the needed .so files aren't removed? /lib64/libncurses.so.5 & /lib64/libncurses.so.6 could both exist on the system even if both version of the ncurses package don't. I suspect this is mostly what revdep-rebuild is already doing, and I also suspect my view of the problem is far too remedial... Thanks, Mark ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [gentoo-user] Re: Updating libpng: another libtool cockup? 2011-09-19 20:52 ` Mark Knecht @ 2011-09-19 21:10 ` Michael Schreckenbauer 2011-09-19 21:28 ` Mark Knecht 0 siblings, 1 reply; 34+ messages in thread From: Michael Schreckenbauer @ 2011-09-19 21:10 UTC (permalink / raw To: gentoo-user On Monday, 19. September 2011 13:52:26 Mark Knecht wrote: > On Mon, Sep 19, 2011 at 1:41 PM, Michael Mol <mikemol@gmail.com> wrote: > > On Mon, Sep 19, 2011 at 4:33 PM, Mark Knecht <markknecht@gmail.com> wrote: > >> On Mon, Sep 19, 2011 at 7:36 AM, Michael Mol <mikemol@gmail.com> wrote: > >>> On Mon, Sep 19, 2011 at 10:20 AM, Allan Gottlieb <gottlieb@nyu.edu> wrote: > >> <SNIP> > >> > >>>> ajglap gottlieb # revdep-rebuild; revdep-rebuild --library > >>>> '/usr/lib64/libpng14.so.14'>> > >> <SNIP> > >> > >>> Is there no automated way to catch these? --library expects an > >>> argument; how do I know which libraries to feed it? > >> > >> My question exactly. It's not likeyou can look at just names of > >> libraries as I think to do this right you've got to look at every > >> revision of every library on the system, don't you? > >> > >> It's possible that this problem could exist for a long while if a > >> program doesn't get used much... > > > > Based on subsequent discussion since I wrote that question, I think > > the answer is, "currently, no." Ebuillds would need more metadata, and > > portage would need to be more aware of deep dependencies. > > > > I'm not sure of revdep-rebuild's angle, or how it might be able to be > > improved to detect errors that don't come from broken linkage. > > -- > > > > :wq > > OK, I saw that comment but didn't grasp that it's the answer. Could be. > > Alternatively, in Michael's example earlier, I don't think the ldd > results for bash are changed (are they?) when ncurses is updated: > > [QUOTE] > $ 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) > [/QUOTE] They would change to $ ldd /bin/bash linux-vdso.so.1 => (0x00007fffbafff000) libncurses.so.5 => not found libdl.so.2 => /lib64/libdl.so.2 (0x00007f0a4c074000) libc.so.6 => /lib64/libc.so.6 (0x00007f0a4bce4000) /lib64/ld-linux-x86-64.so.2 (0x00007f0a4c4ce000) if the ebuild maintainer forgets to keep the *.so.5 version on the system in the *.so.6 update. That results in a broken bash. > It seems to me this is tending toward something similar to slots, > isn't it? If one package (bash) needs a specific version then can't we > find it using ldd (on every package on the system unfortunately) and > ensure that the needed .so files aren't removed? That's what ebuild maintainers do, afaik. ~ $ equery b /usr/lib64/libpng14.so.14 * Searching for /usr/lib64/libpng14.so.14 ... media-libs/libpng-1.5.4 (/usr/lib64/libpng14.so.14) See? libpng14 is part of png-1.5.x package, so libpng14 is not removed, when you install the 1.5.x version. That keeps programs going. > /lib64/libncurses.so.5 & /lib64/libncurses.so.6 could both exist on > the system even if both version of the ncurses package don't. That's right. But keep in mind, that the old lib is outdated. Bugs remain bugs, nothing is fixed. Getting fixes, is why we update after all, isn't it? > I suspect this is mostly what revdep-rebuild is already doing, and I > also suspect my view of the problem is far too remedial... > > Thanks, > Mark Best, Michael ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [gentoo-user] Re: Updating libpng: another libtool cockup? 2011-09-19 21:10 ` Michael Schreckenbauer @ 2011-09-19 21:28 ` Mark Knecht 0 siblings, 0 replies; 34+ messages in thread From: Mark Knecht @ 2011-09-19 21:28 UTC (permalink / raw To: gentoo-user On Mon, Sep 19, 2011 at 2:10 PM, Michael Schreckenbauer <grimlog@gmx.de> wrote: > On Monday, 19. September 2011 13:52:26 Mark Knecht wrote: <SNIP> > >> /lib64/libncurses.so.5 & /lib64/libncurses.so.6 could both exist on >> the system even if both version of the ncurses package don't. > > That's right. But keep in mind, that the old lib is outdated. Bugs remain > bugs, nothing is fixed. Getting fixes, is why we update after all, isn't it? > Right, but better that I have a bug until the next update that fixes this than a system that doesn't work because bash crashes, right? I was only thinking very short term and not that the ebuild maintainer shouldn't eventually get things right with all bug fixes. Thanks for getting this issue out there today. It's been very helpful to have you along! Cheers, Mark ^ permalink raw reply [flat|nested] 34+ messages in thread
* [gentoo-user] Re: Updating libpng: another libtool cockup? 2011-09-19 14:10 ` Alan McKinnon 2011-09-19 14:20 ` Allan Gottlieb @ 2011-09-19 15:07 ` walt 2011-09-19 15:49 ` David W Noon 2 siblings, 0 replies; 34+ messages in thread From: walt @ 2011-09-19 15:07 UTC (permalink / raw To: gentoo-user On 09/19/2011 07:10 AM, Alan McKinnon wrote: > On Mon, 19 Sep 2011 03:06:30 -0700 > walt <w41ter@gmail.com> wrote: > >> On Mon, 2011-09-19 at 01:39 +0200, Alan McKinnon wrote: >>> On Sun, 18 Sep 2011 17:58:14 -0400 >>> Allan Gottlieb <gottlieb@nyu.edu> wrote: >>> >>>> On Sun, Sep 18 2011, walt wrote: >>>> >>>>> I just did a routine update on my ~amd64 machine and saw the >>>>> portage warning that libpng14 has been replaced by libpng15, >>>>> and I should run revdep-rebuild --library >>>>> '/usr/lib/libpng14.so' and then delete the obsolete library. >>>>> >>>>> After that I ran plain revdep-rebuild as I do after every >>>>> update, and saw that two gnome packages failed to rebuild >>>>> properly because lpng14 couldn't be found :/ >>>>> >>>>> From painful experience I've learned that good-old libtool files >>>>> (*.la) are the usual suspects, and grep found -lpng14 in about >>>>> ten .la files even after both revdep-rebuilds. Grrr! >>>>> >>>>> This fixed the problem for me (as similar moves have done in the >>>>> past): >>>>> >>>>> #find /usr/lib64 -name \*.la -exec sed -i s/png14/png15/ '{}' >>>>> ';' >>>> >>>> Thanks for the tip. I wonder when a routing update world tells >>>> you to run >>>> revdep-rebuild --library <some-lib> >>>> should you run it before or after the normal >>>> revdep-rebuild >>>> that we normally run after updates? >>> >>> Neither. >>> >>> 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? I think it may have been one of the libs pulled in by the graphite useflag, like ppl or cloog-ppl, but I can't recall the details. I imagine most people wouldn't be affected because most people don't set that flag, I'd guess. Remember, I updated the system and deleted the obsolete lib *before* I ran revdep-rebuild -- and then revdep-rebuild failed because gcc couldn't build *anything* after that. I should have moved the lib to /tmp instead of deleting it. Recovery would have been trivial. ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [gentoo-user] Re: Updating libpng: another libtool cockup? 2011-09-19 14:10 ` Alan McKinnon 2011-09-19 14:20 ` Allan Gottlieb 2011-09-19 15:07 ` walt @ 2011-09-19 15:49 ` David W Noon 2011-09-19 20:54 ` Peter Humphrey 2 siblings, 1 reply; 34+ messages in thread From: David W Noon @ 2011-09-19 15:49 UTC (permalink / raw To: gentoo-user [-- Attachment #1: Type: text/plain, Size: 2131 bytes --] On Mon, 19 Sep 2011 16:10:02 +0200, Alan McKinnon wrote about Re: [gentoo-user] Re: Updating libpng: another libtool cockup?: > On Mon, 19 Sep 2011 03:06:30 -0700 > walt <w41ter@gmail.com> wrote: [snip] > > I don't skip the --library step any more. > > That's odd behaviour, I wonder what caused the difference. I guess your graph theory is out to lunch today. ... :-) The problem is portage determining the dependency graph, but ebuilds do not contain enough information to do this thoroughly. The best example, at least in my memory, was the libexpat upgrade about 4 years ago that trashed everybody's system -- many resorted to complete re-installation. At the end of that upgrade, there was an instruction to preform a revdep-rebuild specifically for libexpat.so. Now, this upgrade coincided with a full upgrade to KDE plus a full upgrade to GNOME, all on the same day. As a result, the message to do a revdep-rebuild specifically on libexpat was buried in other bumpf, plus there was other library breakage out the yin-yang -- an extremely large yin-yang. It was a sysadmin's perfect storm. Doing a simple revdep-rebuild, with no library constraint, caused ebuild breakage by the mile. This was because the subroutines in libexpat are used inside ebuild processing by documentation utilities such as ghostscript, xsltproc, etc. OTOH, if one did a specific revdep-rebuild on libexpat, all of those documentation utilities would be rebuilt before the main revdep-rebuild. After that, the ebuilds all went smoothly. Unfortunately, Portage does not have enough information to infer these deep dependencies. This means it cannot schedule the more fundamental revdep-rebuild ahead of those that depend upon it. We have to do that by hand. I hope this has explained why we should take messages about running "revdep-rebuild --library libXXX" seriously. -- Regards, Dave [RLU #314465] *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* dwnoon@ntlworld.com (David W Noon) *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [gentoo-user] Re: Updating libpng: another libtool cockup? 2011-09-19 15:49 ` David W Noon @ 2011-09-19 20:54 ` Peter Humphrey 2011-09-19 22:29 ` covici 0 siblings, 1 reply; 34+ messages in thread From: Peter Humphrey @ 2011-09-19 20:54 UTC (permalink / raw To: gentoo-user [-- Attachment #1: Type: text/plain, Size: 366 bytes --] On Monday 19 September 2011 16:49:55 David W Noon wrote: > I hope this has explained why we should take messages about running > "revdep-rebuild --library libXXX" seriously. Well, you have me convinced. I had assumed that a bland revdep-rebuild would catch everything including the library specified. Wrong, I see. -- Rgds Peter Linux Counter 5290, 1994-04-23 [-- Attachment #2: Type: text/html, Size: 2380 bytes --] ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [gentoo-user] Re: Updating libpng: another libtool cockup? 2011-09-19 20:54 ` Peter Humphrey @ 2011-09-19 22:29 ` covici 2011-09-20 10:41 ` Neil Bothwick 0 siblings, 1 reply; 34+ messages in thread From: covici @ 2011-09-19 22:29 UTC (permalink / raw To: gentoo-user Peter Humphrey <peter@humphrey.ukfsn.org> wrote: > On Monday 19 September 2011 16:49:55 David W Noon wrote: > > > I hope this has explained why we should take messages about running > > "revdep-rebuild --library libXXX" seriously. > > Well, you have me convinced. I had assumed that a bland revdep-rebuild would > catch everything including the library specified. Wrong, I see. Would preserved-rebuild catch everything that the revdep-rebuild fails to catch? -- 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 ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [gentoo-user] Re: Updating libpng: another libtool cockup? 2011-09-19 22:29 ` covici @ 2011-09-20 10:41 ` Neil Bothwick 0 siblings, 0 replies; 34+ messages in thread From: Neil Bothwick @ 2011-09-20 10:41 UTC (permalink / raw To: gentoo-user [-- Attachment #1: Type: text/plain, Size: 529 bytes --] On Mon, 19 Sep 2011 18:29:44 -0400, covici@ccs.covici.com wrote: > > Well, you have me convinced. I had assumed that a bland > > revdep-rebuild would catch everything including the library > > specified. Wrong, I see. > Would preserved-rebuild catch everything that the revdep-rebuild fails > to catch? In theory yes, in practice it missed a couple of deep dependencies here. -- Neil Bothwick The law of Probability Dispersal decrees that whatever it is that hits the fan will not be evenly distributed. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [gentoo-user] Updating libpng: another libtool cockup? 2011-09-18 23:39 ` Alan McKinnon 2011-09-19 10:06 ` [gentoo-user] " walt @ 2011-09-19 14:06 ` Allan Gottlieb 1 sibling, 0 replies; 34+ messages in thread From: Allan Gottlieb @ 2011-09-19 14:06 UTC (permalink / raw To: gentoo-user On Sun, Sep 18 2011, Alan McKinnon wrote: > On Sun, 18 Sep 2011 17:58:14 -0400 > Allan Gottlieb <gottlieb@nyu.edu> wrote: > >> I wonder when a routine update world tells you to run >> revdep-rebuild --library <some-lib> >> should you run it before or after the full >> revdep-rebuild >> that we normally run after updates? > > Neither. > > 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. thanks, allan ^ permalink raw reply [flat|nested] 34+ messages in thread
* [gentoo-user] Re: Updating libpng: another libtool cockup? 2011-09-18 20:10 [gentoo-user] Updating libpng: another libtool cockup? walt ` (2 preceding siblings ...) 2011-09-18 21:58 ` Allan Gottlieb @ 2011-09-19 21:04 ` Nikos Chantziaras 3 siblings, 0 replies; 34+ messages in thread From: Nikos Chantziaras @ 2011-09-19 21:04 UTC (permalink / raw To: gentoo-user On 09/18/2011 11:10 PM, walt wrote: > I just did a routine update on my ~amd64 machine and saw the portage > warning that libpng14 has been replaced by libpng15, and I should run > revdep-rebuild --library '/usr/lib/libpng14.so' and then delete the > obsolete library. Oh crap. I somehow missed that (and I try to always read the logs with 'elog'). But this somehow skipped past my radar. I still have libpng14.so in /usr/lib. revdep-rebuild lists about 80 packages needing a rebuild. Is there a way to check the system whether old libraries are still around? ^ permalink raw reply [flat|nested] 34+ messages in thread
end of thread, other threads:[~2011-09-20 12:58 UTC | newest] Thread overview: 34+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2011-09-18 20:10 [gentoo-user] Updating libpng: another libtool cockup? walt 2011-09-18 20:48 ` Michael Mol 2011-09-18 20:57 ` Thanasis 2011-09-18 21:54 ` Mick 2011-09-18 21:58 ` Allan Gottlieb 2011-09-18 23:39 ` Alan McKinnon 2011-09-19 10:06 ` [gentoo-user] " walt 2011-09-19 14:10 ` Alan McKinnon 2011-09-19 14:20 ` Allan Gottlieb 2011-09-19 14:34 ` Michael Schreckenbauer 2011-09-19 14:58 ` [gentoo-user] Re: Updating libpng: another lib tool cockup? Allan Gottlieb 2011-09-19 15:19 ` Michael Schreckenbauer 2011-09-19 15:28 ` Alan McKinnon 2011-09-19 15:49 ` Michael Schreckenbauer 2011-09-19 15:49 ` Paul Hartman 2011-09-19 17:57 ` Allan Gottlieb 2011-09-19 18:19 ` Paul Hartman 2011-09-19 20:08 ` Allan Gottlieb 2011-09-20 10:38 ` Neil Bothwick 2011-09-20 12:57 ` Allan Gottlieb 2011-09-19 16:30 ` covici 2011-09-19 14:36 ` [gentoo-user] Re: Updating libpng: another libtool cockup? Michael Mol 2011-09-19 20:33 ` Mark Knecht 2011-09-19 20:41 ` Michael Mol 2011-09-19 20:52 ` Mark Knecht 2011-09-19 21:10 ` Michael Schreckenbauer 2011-09-19 21:28 ` Mark Knecht 2011-09-19 15:07 ` walt 2011-09-19 15:49 ` David W Noon 2011-09-19 20:54 ` Peter Humphrey 2011-09-19 22:29 ` covici 2011-09-20 10:41 ` Neil Bothwick 2011-09-19 14:06 ` [gentoo-user] " Allan Gottlieb 2011-09-19 21:04 ` [gentoo-user] " Nikos Chantziaras
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox