On 07/10/2013 08:43 PM, Robin H. Johnson wrote: > On Wed, Jul 10, 2013 at 11:36:44PM -0400, Rick "Zero_Chaos" Farina wrote: >> On 07/10/2013 10:03 PM, Robin H. Johnson wrote: >>> On Fri, Jul 05, 2013 at 09:27:46PM -0700, Brian Dolbec wrote: >>>> The other thing we needed to do was completely remove the use of >>>> or building of binpkgs during the update_seed stage. Portage has >>>> no capability to check binpkg linking to ensure the binpkg was >>>> properly usable. >>> Can somebody actually please implement this, to run before the >>> binpkg merge phase? >> Please be more specific, this is currently implemented... > I was partially responding to dolsen's comment that it wasn't capable, > as well as a discussion I had with somebody on the ChromeOS team a few > months ago. > > In the ChromeOS case, if a library was removed off the system, but > Portage still thought it was there, and you went to install a binpkg > that had an ELF dependency on the removed library, you'd have broken > binaries on the system.
Ideally, this would be handled entirely by EAPI 5 slot-operator dependencies. However, it seems like we'll need some form of sub-slot pass-through [1] and/or sub-slot dictionaries [2] before we'll be able to achieve complete adoption of slot-operators. Meanwhile, adding a preinst sanity check seems like a good idea. The LinkageMap class that's used for preserve-libs already has all of the info that we need about installed libraries, so it's just a matter of checking the binary package's NEEDED.ELF.2 entries against that. [1] https://bugs.gentoo.org/show_bug.cgi?id=449094 [2] https://bugs.gentoo.org/show_bug.cgi?id=462138 -- Thanks, Zac
