Re: [gentoo-user] Re: @preserved-rebuild gone in a loop

2013-12-16 Thread Mick
On Monday 16 Dec 2013 04:04:34 eroen wrote:
 On Sun, 15 Dec 2013 17:37:53 +0100
 
 Benjamin Block b...@zlug.org wrote:
  Most of the times, when some binary packages on my systems do cause
  something like this, then I just unemerge the package that keeps
  recompiling and emerge it again afterwards. This will cause the
  portage to drop the library-references in question and add new ones.
  
  So, this should do the trick:
  emerge -C app-antivirus/avast4workstation
  emerge -1 app-antivirus/avast4workstation
 
 This will make the message from portage and the old library version go
 away, yes. It will also cause the program that used the library
 (/opt/avast4workstation/bin/avastgui in OP's case) crash when you try
 to run it, due to the old library version not being installed.
 
 The correct solution to this is to add the specific (old) version of the
 library to the dependencies (in the ebuild) of the (binary) package that
 uses it. This will prevent an upgrade that uninstalls the old library
 version. Sometimes the maintainer of the library will add a slotted
 version of it, so that non-binary users of it do not have to use the
 outdated version.
 
 If the binary package is not an ebuild, you can manually add the newer
 library version to package.mask, or make sure that the slot for the
 older version is installed if the library is slotted.
 
 Better yet (in all cases), get a more recent version of the binary
 package that is built against the newer version of the library.
 Complain to the vendor if none is available :-)
 
 The preserve-libs feature in portage is intended to let things keep on
 working short-term for source-distributed packages. In that case, the
 currently installed program is linked against the old library version,
 and when the program is rebuilt (with @preserved-rebuild) it will be
 linked against the newer version.

Thank you for a detailed explanation, which makes sense to me.  You are right, 
uninstalling, running @preserved-rebuild and reinstalling this package breaks 
the avastgui because of the missing libpangox-1.0.so.0 library.  Thankfully, 
the command line function is unaffected.

I wouldn't want to keep old libraries around unnecessarily, so I may have to 
chase the dev for this package and see if he's still interested to look after 
it.
-- 
Regards,
Mick


signature.asc
Description: This is a digitally signed message part.


[gentoo-user] Re: @preserved-rebuild gone in a loop

2013-12-15 Thread Nikos Chantziaras

On 15/12/13 11:51, Mick wrote:

Not sure why, but for some reason running emerge @preserved-rebuild does not
seem to fix some preserved libs links:

!!! existing preserved libs:

package: x11-libs/pango-1.34.1

  *  - /usr/lib/libpangox-1.0.so.0
  *  - /usr/lib/libpangox-1.0.so.0.3000.1

This is all caused by some hack I have in my local portage for app-
antivirus/avast4workstation-1.3.0-r2.  No matter how many times I run
@preserved-rebuild the libs in question keep coming up:


Yes, that's to be expected. Avast is a binary, it's not built from 
sources, so there's no link step involved that would link against the 
new pango libs.


I'm not sure if it'll work, by try emerging x11-libs/pangox-compat. If 
that doesn't help, then your only option is to downgrade your pango 
version to the version that doesn't exhibit the problem and mask all 
newer versions.





[gentoo-user] Re: @preserved-rebuild gone in a loop

2013-12-15 Thread eroen
On Sun, 15 Dec 2013 17:37:53 +0100
Benjamin Block b...@zlug.org wrote:

 Most of the times, when some binary packages on my systems do cause
 something like this, then I just unemerge the package that keeps
 recompiling and emerge it again afterwards. This will cause the
 portage to drop the library-references in question and add new ones.
 
 So, this should do the trick:
 
   emerge -C app-antivirus/avast4workstation
   emerge -1 app-antivirus/avast4workstation

This will make the message from portage and the old library version go
away, yes. It will also cause the program that used the library
(/opt/avast4workstation/bin/avastgui in OP's case) crash when you try
to run it, due to the old library version not being installed.

The correct solution to this is to add the specific (old) version of the
library to the dependencies (in the ebuild) of the (binary) package that
uses it. This will prevent an upgrade that uninstalls the old library
version. Sometimes the maintainer of the library will add a slotted
version of it, so that non-binary users of it do not have to use the
outdated version.

If the binary package is not an ebuild, you can manually add the newer
library version to package.mask, or make sure that the slot for the
older version is installed if the library is slotted.

Better yet (in all cases), get a more recent version of the binary
package that is built against the newer version of the library.
Complain to the vendor if none is available :-)

The preserve-libs feature in portage is intended to let things keep on
working short-term for source-distributed packages. In that case, the
currently installed program is linked against the old library version,
and when the program is rebuilt (with @preserved-rebuild) it will be
linked against the newer version.

-- 
eroen


signature.asc
Description: PGP signature