Not sure how involved this would be but:
When rebuilding or unmerging a "-meta" package, emerge should at least have an option to apply the same process to the packages pulled in by the -meta package.
(Obvious example: kdebase-meta-9999 from the kde4 overlay. I can install all of the "kdebase" SVN packages - once - with "emerge =kdebase-meta-9999". However, to rebuild, update, or uninstall all of the kdebase SVN packages, I have to track down the individual builds manually and feed their named individually to emerge in some form. (I use this example because unlike the stable kdebase-
Would it be possible to get, say, a "--deep-meta" option to apply the emerge command to all packages associated with a -meta ebuild?
Steps to Reproduce:
1.emerge -v kdewebdev-meta
2.emerge -v --unmerge kdewebdev-meta
3.examine the associated packages (e.g. quanta-3.5.9) - they appear to be left behind.
"-meta" associated packages are not rebuilt or unmerged when "-meta" packages are rebuilt or unmerged
associated packages should optionally be rebuilt or unmerged
The closest thing we have now is to use --depclean with no arguments (global depclean). I can add an option that will make --depclean behave how you want when given one or more atoms.
Well, that would solve the "--unmerge" issue. How hard would it be to do something similar with rebuilding/re-emerging? (i.e. if "kdebase-meta-3.5.9" and its associated packages are already installed and I want, for example, to rebuild it with different USE flags, I'd like to be able to do something like "emerge --deepmeta =kdebase-meta-3.5.9" and have all the associated packages rebuilt)
Perhaps I should also/instead file a request for gentoolkit? Basically what's missing here is a convenient way to get a listing of ebuilds associated with a -meta ebuild. If equery provided an xargs-compatible listing of "reverse dependencies" or something I could get equery to list the packages associated with -meta package and use that listing to unmerge or re-emerge them...
What's wrong with --emptytree?
The problem with --emptytree is that it wants to rebuild far too much - "emerge -v --emptytree =kdebase-meta-4.1.0" wants to re-do 470 different packages on my system, including things like apache, apache-tools, gcc, gentoo-sources, qt, most or all of X.org, etc. etc.
In addition to taking WAY too long, it also makes it difficult to (for example) enable the "debug" flag for just this one build on just the kdebase-meta-associated packages without risking unintentionally toggling a "debug" flag on a bunch of unrelated stuff that gets rebuilt with the --emptytree option.
There really isn't a middle ground with meta packages. However, with sets, this would be far easier to accomplish.
This is a very good request. Since portage 2.2 is not stable yet you can use a custom script to do that . Something like
for i in $(qlist -C -I kde-base/);do emerge =$i-3.5.10;done
Adapt it to your needs
Lets hope portage 2.2 will be stable soon :)
One possible solution for this bug would be to implement PROPERTIES=set as discussed here: