1 |
On Sunday 17 December 2006 10:27, Alec Warner wrote: |
2 |
> If your package is 'not important' meaning it will never be in 'system' for |
3 |
> any profile, you should not depend on anything in 'system', as stuff in |
4 |
> system should already be installed in a given (sane) configuration. |
5 |
|
6 |
Except if the package is fussy on what version it needs. |
7 |
|
8 |
> If your package may be in 'system' in a given profile, you need to ensure |
9 |
> your package builds in the proper order, with regards to other system |
10 |
> packages. The classic example is zlib; if you need zlib to uncompress |
11 |
> something, then you should put zlib in the deps; that way when someone is |
12 |
> building say, a stage1, your package will build after zlib, instead of |
13 |
> before it. |
14 |
|
15 |
Given your point above, this should only be important as far as bootstrapping |
16 |
goes. After bootstrapping, "stuff in system should already be installed". |
17 |
However, 'system' becomes quite an extensive list of packages after enabling |
18 |
all use flags that didn't begin with 'no'. I've attached the list that |
19 |
results from my current tree. So are packages such as qt, nvidia-drivers, |
20 |
courier-imap, samba and jack-audio-connection-kit also part of 'system' or |
21 |
is 'system' only limited to the profile-defined USE flags at the time of |
22 |
bootstrapping? |
23 |
|
24 |
> You have to be careful in deciding what to specify, as doing things |
25 |
> incorrectly in this case can often cause dependency loops which are |
26 |
> sometimes fun to debug; perl and openssl were infamous back in the day for |
27 |
> this. |
28 |
|
29 |
This stopped applying with recent versions of portage. I'm pretty sure the |
30 |
current stable version of portage detects circular deps and tries to resolve |
31 |
them utilizing installed packages but I've lost track of what's made it to |
32 |
stable and what hasn't. As far as I know, both palidus and pkgcore do or will |
33 |
also support this, so your point here doesn't hold. |
34 |
|
35 |
> Enterprising users would specify the 'doc' useflag. openssl requires perl |
36 |
> to generate its docs and perl requires openssl for some encryption stuff. |
37 |
[snipped] |
38 |
|
39 |
This example is not a reason to leave out appropriate dependencies. |
40 |
|
41 |
I've tried to be objective here so if my viewpoint isn't obvious I'll state |
42 |
it outright. I think all packages should depend on every package that they |
43 |
need to build and/or run. Whether this is done explicitly or with |
44 |
meta-packages, I don't really care. The only reason for not being explicit |
45 |
with deps is to cater for old sloppy versions of portage. Unless there are |
46 |
other reasons not stated here? |
47 |
|
48 |
-- |
49 |
Jason Stubbs |