First the disclaimer, I do not know how emerge does it now so I will just explain my idea. It is implied that other operators would be accounted than just '='. In this real-life example I have an explict association between khacc-1.7.8 and qhacc-2.9.8. Emerge will allow me to downgrade khacc-1.7.8 but does not warn of the association ignoring it completely. The result is it *will* break. Part 1) Calls X dependency checks For each installed build, have either a text file or parse the ebuild for associations. In the khacc-1.7.8 "calls" text file would be '=qhacc-2.9.8' - a direct association. Emerge will not allow the downgrade (or upgrade) of khacc without an explict overide. Cannot stop people from shooting themselves in the foot. :) As for upgrades, let's say that khacc-1.7.9 has an explict association with qhacc-2.9.9. If qhacc-2.9.9 is available then dependency check between qhacc-2.9.8 and khacc-1.7.8 is ignored and both new versions are installed. Of course removing khacc-1.7.8 would intiate the following check. 2) Called by dependency checks Each time an ebuild depends on another app, the called app's "called by" file is updated. So qhacc-2.9.8 "called by" file would have '=khacc-1.7.8'. If I change qhacc, emerge would flag the break. Again needs explict override. I also think it would then be possible to scan for breakage, and most likely correct errors automatically - quasi-self-healing. --- An example of how it would work I am in the process of trying to break apart the KDE modules into their separate apps. (Bug #43760) In this case, kdelibs would have 10s of called by references (part 2) so any change to kdelibs would issue the same amount of warnings. As for a kde-{app} it would not be possible to upgrade/downgrade without the associated kdelib. Thus the scenario is... (KDE 3.2 and kdegames-kbattleship-3.2 already installed)... emerge kdegames-kbattleship-3.2.1 1) checks for kdelib-3.2.1, requires upgrade 2) checks for kdelib-3.2 calledbys 3) issues 10s of breakage warnings emerge -U kdegames-kbattleship-3.2.1 4) intiates a major upgrade of all the other kde-{apps} and basically kde itself -----
*** This bug has been marked as a duplicate of 2938 ***