Re: [gentoo-user] Re: @preserved-rebuild gone in a loop
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
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
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