1 |
On 24/03/06, Paul de Vrieze <pauldv@g.o> wrote: |
2 |
> On Thursday 23 March 2006 21:35, tvali wrote: |
3 |
> > |
4 |
> > BINSLOT is a new word for me. |
5 |
> |
6 |
> Ok BINSLOT is normally slot. However in some cases packages are in the |
7 |
> same slot, but not binary compatible (like their libraries having a |
8 |
> different SONAME e.g. openssl-0.9.6 and 0.9.7 (iirc)). |
9 |
> |
10 |
> Calculating after build is only for validating configurations. It allows |
11 |
> one to see whether one can merge binary package A on the current system |
12 |
|
13 |
Ok, i'm starting to fully understand it :) |
14 |
|
15 |
So it is something what could be helpful even on other linux systems |
16 |
than gentoo? |
17 |
|
18 |
> Header files come from packages that should be mentioned in the |
19 |
> dependencies. |
20 |
|
21 |
Yes i'm here thinking about my code-deps :) |
22 |
|
23 |
> Calculating dependencies automatically is diabolically hard. The fact that |
24 |
> we have a tree that largely works shows that predicting them works well. |
25 |
> The reason is that the dependencies are statically defined by the source |
26 |
> of the package. At those parts where people make mistakes, or the build |
27 |
> systems are broken, occur the dependencies could be verified by automatic |
28 |
> tools that check most dependencies. Doing that for native code is easiest |
29 |
> done by disecting the libraries and executables. For header files, |
30 |
> inclusion parsing is probably a good approach. But then look at what is |
31 |
> installed, not what was started with. The reason being that at what is |
32 |
> installed is no longer dynamic based on a configure script, but totally |
33 |
> static. The only disadvantage being that this only checks the current |
34 |
> combination of useflags+context. Many checks by many users would however |
35 |
> give a good test coverage. |
36 |
|
37 |
If i can understand you now, then i would think that you didnt |
38 |
understand me fully. I will write my script, then.. |
39 |
|
40 |
> Not really, with a static library A and a static library B that uses the |
41 |
> static A, this dependency is only runtime when the interface of B exposes |
42 |
> the headers of A. If not, one could unmerge both the static library and |
43 |
> the headers and one could still compile against the library. |
44 |
|
45 |
I meant headers as .h or .hpp files, which contain function headers. |
46 |
They're needed, but they are in many cases, included in pack which |
47 |
uses them, even if that means putting some .h's into all libs. |
48 |
|
49 |
> Ok, let me clarify. With a binary dependency I mean the actual |
50 |
> requirements of a package once it has been compiled. In general one could |
51 |
> say that given a depend atom "sys-libs/db-4.*" could be statisfied by |
52 |
> ebuilds in 5 slots: db-4.{0,1,2,3,4}. The sourcecode does not care which |
53 |
> one is used. However, code compiled agaist db-4.0.14 will not run against |
54 |
> any libdb-4.{1,2,3,4}.*. This is because these should libraries live in |
55 |
> different BINSLOT's (in other words, they are incompatible). As these |
56 |
> libraries have different SLOT's they can coexist though. For a binary |
57 |
> package therefore it is necessary to record the version of db it was |
58 |
> actually compiled against. As this might be very strict I also want to |
59 |
> say that any package within the same BINSLOT with a higher version than |
60 |
> the one compiled against also works (as it does). |
61 |
|
62 |
Cant understand it. Do the *headers* change so much through versions? |
63 |
Is there no backward-compability in so many cases? |
64 |
|
65 |
> Paul |
66 |
> |
67 |
> -- |
68 |
> Paul de Vrieze |
69 |
> Gentoo Developer |
70 |
> Mail: pauldv@g.o |
71 |
> Homepage: http://www.devrieze.net |
72 |
> |
73 |
> |
74 |
> |
75 |
|
76 |
|
77 |
-- |
78 |
tvali |
79 |
|
80 |
Measuring programming progress by lines of code is like measuring |
81 |
aircraft building progress by weight. -Bill Gates |
82 |
|
83 |
For every complex problem there is an answer that is clear, simple, |
84 |
and wrong. -H L Mencken |
85 |
|
86 |
Theory is when you know something, but it doesn't work. Practice is |
87 |
when something works, but you don't know why. Programmers combine |
88 |
theory and practice: Nothing works and they don't know why. |
89 |
|
90 |
http://www.eskimo.com/~hottub/software/programming_quotes.html |
91 |
http://www.softwarequotes.com/ |
92 |
|
93 |
-- |
94 |
gentoo-portage-dev@g.o mailing list |