On Wednesday 15 March 2006 16:13, Gustavo Sverzut Barbieri wrote:
> Hello,
> There is any provision for binary dependency on Gentoo/Portage? The
> way it works now is quite messy with things like revdep-rebuild.
> I have an idea to "solve" this problem: after software is build, you
> check which files it links (ldd binaries libraries) and check the used
> against installed packages. If a library is not provided by  an
> installed package we could have a policy to inform user or just abort
> installation.
> Also, if we implement these dependencies in rpm-generator, we could
> just generate RPM packages and install it in the RPM-DB and let it
> handle these kind of things.
> With these in place emerge would handle the build stage (where it
> excels), but rpm would handle the binary installation and dependencies
> (where it excels).

Solving this is not trivial. Basically suppose application X depends on 

This can be resolved by differently slotted libraries. We need to record 
which one was actually used (not easy by itself, but more an issue of the 
ebuild itself, if more than 1 candidate is available). But suppose that 
we know that the application was compiled to use db-4.3.29. We must then 
know that it is ok to replace the db-4.3.29 package with 4.3.30, but that 
it isn't ok to replace it by 4.3.28 or 4.4.20.

To make this things worse, the above example assumes that within a slot, 
the libraries are binary compatible. There are examples of libraries that 
are not. And what about a library whose interface is dependent on a third 
library: B uses A, C uses B, but B exports A. So B is dependent on A, and 
the binary package of C must record that B was compiled with A.

In short, welcome to binary package hell. This is the reason that binary 
distributions must use versions. Even debian. It is just very very hard 
to fix these kinds of indirect dependencies.


Paul de Vrieze
Gentoo Developer
Homepage: http://www.devrieze.net

Attachment: pgpqRcIBYHhbT.pgp
Description: PGP signature

Reply via email to