On Tue, Feb 15, 2005 at 05:18:56PM -0800, Drake Wyrm wrote:
> First, I'd like to suggest a modification to your idea. What portage
> does now is install in an image directory, then merge those files into
> ${ROOT}. What you're suggesting is installing into two image directories
> and merging from them. I think it might be simpler to install into a
> single image directory, then delete the undesired files prior to
> merging. This could be done in a manner similar to the implementation of
> the nodoc, noman, and noinfo FEATURES in dyn_preinstall().
Doing so, may work, but has it's own issue.  If you're wiping files from $D, 
you're allowing only one subpackage to be 
generated per install phase (hacking up ebuild.sh to run multiple installs btw, 
is not a good option :)

> The big complication I see is that some packages will still need the
> files installed by the full version. The DEPEND mechanism will need to
> be improved to allow stating "I need package foo, compiled without the
> noruntimeuserspacecruft FEATURE." and possibly recompiling package foo.
> As I understand, improvements such as this are already on the portage-dev
> todo list.
For the following, figuring the following as the subpackages- runtime (common), 
dev (headers), doc 
(man, /usr/share/doc).

Any subpackaging attempt is going to require either a modification to the 
resolver, and a tweak to vartree (installed 
pkgs db)- this isn't massively horrid though.  For the resolver, since all of 
the required info for which 
subpackage is required is available dependant on which depends metadata key 
you're tracing, that probably is pretty 
straightforward.

If you're processing DEPENDS, you need common and dev.  If you're processing 
RDEPENDS you need just 
common.  Doc's could be enabled via a feature, or use flag.

If in checking DEPENDS, you come across just runtime, either (initially) 
portage just forces a recompile of the pkg, 
or it pulls in the missing devel cruft (trickier).


> This capability would be beautifully accompanied by a companion feature
> that would allow portage to automatically trim anything that was pulled
> in by a DEPEND but isn't in any particular class (e.g. system or world).
Eh?

> Batou: Hey, Major... You ever hear of "human rights"?
> Kusanagi: I understand the concept, but I've never seen it in action.
>   --Ghost in the Shell
^^^ Lovely quote :)
~brian


--
[email protected] mailing list

Reply via email to