Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 43902 - A possible solution to reverse dependency issues
Summary: A possible solution to reverse dependency issues
Status: RESOLVED DUPLICATE of bug 2938
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Conceptual/Abstract Ideas (show other bugs)
Hardware: All All
: High normal (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-03-06 11:47 UTC by Charles Phoenix
Modified: 2005-08-06 09:44 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Charles Phoenix 2004-03-06 11:47:19 UTC
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 
-----
Comment 1 Alec Warner (RETIRED) archtester gentoo-dev Security 2005-08-06 09:44:20 UTC

*** This bug has been marked as a duplicate of 2938 ***