Re: [gentoo-user] Re: guvcview update produces an executable with missing lib...

2016-09-03 Thread Meino . Cramer
Kai Krakow  [16-09-02 03:52]:
> Am Tue, 30 Aug 2016 03:55:32 +0200
> schrieb meino.cra...@gmx.de:
> 
> > Daniel Frey  [16-08-30 03:48]:
> > > On 08/29/2016 11:11 AM, waltd...@waltdnes.org wrote:  
> > > > On Mon, Aug 29, 2016 at 06:29:50PM +0200, meino.cra...@gmx.de
> > > > wrote  
> >  [...]  
> >  [...]  
> >  [...]  
> > > > 
> > > >   The first suggestion in a case like this is to run
> > > > revdep-rebuild.  As a matter of fact, it probably wouldn't hurt
> > > > to run revdep-rebuild after every update.
> > > >   
> > > 
> > > Yes, I do. Portage occasionally misses a rebuild. It's a lot better
> > > now at catching them but it still misses them.
> > > 
> > > 
> > > 
> > > Dan
> > >   
> > 
> > Ok, we now know that depclean and redep rebuild are needed after each
> > update. It is someting, which I put together into one script which 
> > I run after each update.
> > 
> > And we know that portage seems to be guilty. And that it should not be
> > guilty. And that it does better in this cases.
> > 
> > One thing remains:
> > How can I get that guvcview up and running?
> 
> Try "emerge -1a @preserved-rebuild". It should catch preserved libs
> that revdep-rebuild cannot see at missing but doesn't scan neither
> because it doesn't consider them as part of the installed files.
> 
> Usually, after rebuilding everything to new metadata, you no longer use
> revdep-rebuild because the preserved-libs feature renders it mostly
> useless. Instead, @preserved-rebuild jumps in to rebuild and cleanup.
> 
> You may, however, catch a situation where the configure phase detects
> the new version of a lib but the linker phase uses the preserved lib of
> an older version of a dependent package. I'd consider this a bug of the
> ebuild or the package's build system usually. The way out here is do
> forcefully uninstall the package with the "broken" preserved lib, then
> reinstall what is not working.
> 
> It'd try this:
> 
> # Try to unmerge the package that portage thinks the file belongs to:
> $ emerge -Ca /usr/lib/libgviewv4l2core-1.0.so.1
> (or whereever this file should be, you can use pfl for finding out)
> 
> # rebuild binary broken packages now (we used -C, not -c)
> $ revdep-rebuild
> 
> # rebuild packages using preserved libs
> $ emerge -1a @preserved-rebuild
> 
> # rebuild your package now, it should now link to the correct lib
> $ emerge -1a guvcview
> 
> If that still doesn't help, try "qcheck -BHTP" to find packages with
> missing files. Rebuild those:
> 
> $ emerge -1a $(qcheck -BHTP)
> 
> If that also doesn't help, pretend that no dependencies are installed -
> this may rebuild A LOT of packages:
> 
> $ emerge -1e guvcview
> 
> -- 
> Regards,
> Kai
> 
> Replies to list-only preferred.
> 
> 

Hi Kai,

thank you very much for your useful help!!! :) 8)

This procedure finally fixed that problem.
I saved your posting to my "HowTo"s... :)

Have a nice weekend!
Best regards,
Meino





[gentoo-user] Re: guvcview update produces an executable with missing lib...

2016-09-01 Thread Kai Krakow
Am Tue, 30 Aug 2016 03:55:32 +0200
schrieb meino.cra...@gmx.de:

> Daniel Frey  [16-08-30 03:48]:
> > On 08/29/2016 11:11 AM, waltd...@waltdnes.org wrote:  
> > > On Mon, Aug 29, 2016 at 06:29:50PM +0200, meino.cra...@gmx.de
> > > wrote  
>  [...]  
>  [...]  
>  [...]  
> > > 
> > >   The first suggestion in a case like this is to run
> > > revdep-rebuild.  As a matter of fact, it probably wouldn't hurt
> > > to run revdep-rebuild after every update.
> > >   
> > 
> > Yes, I do. Portage occasionally misses a rebuild. It's a lot better
> > now at catching them but it still misses them.
> > 
> > 
> > 
> > Dan
> >   
> 
> Ok, we now know that depclean and redep rebuild are needed after each
> update. It is someting, which I put together into one script which 
> I run after each update.
> 
> And we know that portage seems to be guilty. And that it should not be
> guilty. And that it does better in this cases.
> 
> One thing remains:
> How can I get that guvcview up and running?

Try "emerge -1a @preserved-rebuild". It should catch preserved libs
that revdep-rebuild cannot see at missing but doesn't scan neither
because it doesn't consider them as part of the installed files.

Usually, after rebuilding everything to new metadata, you no longer use
revdep-rebuild because the preserved-libs feature renders it mostly
useless. Instead, @preserved-rebuild jumps in to rebuild and cleanup.

You may, however, catch a situation where the configure phase detects
the new version of a lib but the linker phase uses the preserved lib of
an older version of a dependent package. I'd consider this a bug of the
ebuild or the package's build system usually. The way out here is do
forcefully uninstall the package with the "broken" preserved lib, then
reinstall what is not working.

It'd try this:

# Try to unmerge the package that portage thinks the file belongs to:
$ emerge -Ca /usr/lib/libgviewv4l2core-1.0.so.1
(or whereever this file should be, you can use pfl for finding out)

# rebuild binary broken packages now (we used -C, not -c)
$ revdep-rebuild

# rebuild packages using preserved libs
$ emerge -1a @preserved-rebuild

# rebuild your package now, it should now link to the correct lib
$ emerge -1a guvcview

If that still doesn't help, try "qcheck -BHTP" to find packages with
missing files. Rebuild those:

$ emerge -1a $(qcheck -BHTP)

If that also doesn't help, pretend that no dependencies are installed -
this may rebuild A LOT of packages:

$ emerge -1e guvcview

-- 
Regards,
Kai

Replies to list-only preferred.




[gentoo-user] Re: guvcview update produces an executable with missing lib...

2016-09-01 Thread Kai Krakow
Am Mon, 29 Aug 2016 12:05:51 -0700
schrieb Daniel Frey :

> On 08/29/2016 11:11 AM, waltd...@waltdnes.org wrote:
> > On Mon, Aug 29, 2016 at 06:29:50PM +0200, meino.cra...@gmx.de
> > wrote  
> >> Hi,
> >>
> >> after updateing my system, beside others guvcview was updated:
> >>
> >> from qlop
> >> Mon Aug 29 17:44:08 2016 >>> media-video/guvcview-2.0.4
> >>
> >> After ldconfig as root and rehash (zsh) as user I got:
> >>  
>  [...]  
> >> guvcview: error while loading shared libraries:
> >> libgviewv4l2core-1.0.so.1: cannot open shared object file: No such
> >> file or directory [1]23848 exit 127   guvcview
> >>
> >>
> >> ...h.
> >>
> >> What did I wrong?
> >>
> >> Best regards,
> >> mcc  
> > 
> >   The first suggestion in a case like this is to run
> > revdep-rebuild.  As a matter of fact, it probably wouldn't hurt to
> > run revdep-rebuild after every update.
> >   
> 
> Yes, I do. Portage occasionally misses a rebuild. It's a lot better
> now at catching them but it still misses them.

I think this mainly happens for very old packages not built in a long
time. The install database simply misses the relevant info. Rebuilding
the package should catch up on this.

I usually see this on old packages installed but not updated for a long
time. "emerge @preserved-rebuild" usually doesn't see them,
revdep-rebuild most of the time sees them but may miss packages which
@preserved-rebuild sees (because revdep-rebuild does only detect
missing binary deps but cannot identify orphaned libs which are still
there but should be removed). And some simply need to rebuild once to
migrate to new installation meta data.

Packages caught in such a way are from then on usually seen by
@preserved-rebuild.

I'm using only "emerge @preserved-rebuild" in a long time now, without
falling back to revdep-rebuild. The latter is quite obsolete to me.

-- 
Regards,
Kai

Replies to list-only preferred.