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