Gentoo Archives: gentoo-portage-dev

From: Paul de Vrieze <pauldv@g.o>
To: gentoo-portage-dev@l.g.o
Subject: Re: [gentoo-portage-dev] DB and binary dependency
Date: Thu, 16 Mar 2006 13:58:48
Message-Id: 200603161458.07654.pauldv@gentoo.org
In Reply to: [gentoo-portage-dev] DB and binary dependency by Gustavo Sverzut Barbieri
1 On Wednesday 15 March 2006 16:13, Gustavo Sverzut Barbieri wrote:
2 > Hello,
3 >
4 > There is any provision for binary dependency on Gentoo/Portage? The
5 > way it works now is quite messy with things like revdep-rebuild.
6 >
7 > I have an idea to "solve" this problem: after software is build, you
8 > check which files it links (ldd binaries libraries) and check the used
9 > against installed packages. If a library is not provided by an
10 > installed package we could have a policy to inform user or just abort
11 > installation.
12 >
13 > Also, if we implement these dependencies in rpm-generator, we could
14 > just generate RPM packages and install it in the RPM-DB and let it
15 > handle these kind of things.
16 >
17 > With these in place emerge would handle the build stage (where it
18 > excels), but rpm would handle the binary installation and dependencies
19 > (where it excels).
20
21 Solving this is not trivial. Basically suppose application X depends on
22 sys-libs/db-4.*
23
24 This can be resolved by differently slotted libraries. We need to record
25 which one was actually used (not easy by itself, but more an issue of the
26 ebuild itself, if more than 1 candidate is available). But suppose that
27 we know that the application was compiled to use db-4.3.29. We must then
28 know that it is ok to replace the db-4.3.29 package with 4.3.30, but that
29 it isn't ok to replace it by 4.3.28 or 4.4.20.
30
31 To make this things worse, the above example assumes that within a slot,
32 the libraries are binary compatible. There are examples of libraries that
33 are not. And what about a library whose interface is dependent on a third
34 library: B uses A, C uses B, but B exports A. So B is dependent on A, and
35 the binary package of C must record that B was compiled with A.
36
37 In short, welcome to binary package hell. This is the reason that binary
38 distributions must use versions. Even debian. It is just very very hard
39 to fix these kinds of indirect dependencies.
40
41 Paul
42
43 --
44 Paul de Vrieze
45 Gentoo Developer
46 Mail: pauldv@g.o
47 Homepage: http://www.devrieze.net

Replies

Subject Author
Re: [gentoo-portage-dev] DB and binary dependency tvali <qtvali@×××××.com>
Re: [gentoo-portage-dev] DB and binary dependency Brian Harring <ferringb@×××××.com>
Re: [gentoo-portage-dev] DB and binary dependency Gustavo Sverzut Barbieri <barbieri@×××××.com>