Hi everyone I'd like to bring bug #229521 to your attention and see whether we can come up with a solution for it.
The problem: A package "foo" depends on a slotted package "bar" _and_ more than one slot of "bar" can satisfy this dependency. Why this is a problem: If the dependency looks like one of the following: * DEPEND=">=cat/bar-2" * DEPEND="<=cat/bar-3" * DEPEND="|| ( cat/bar:2 cat/bar:3 ) then the package manager doesn't know after building "foo" which slot of "bar" has been used to build "foo". On the other hand might this information be needed to debug problems with package "foo". The problem gets even worse as soon as RDEPEND comes in: (assuming the same examples from above but with RDEPEND) * The package manager currently doesn't record which slot has been used and can't therefore track whether the user will destroy something in case he uninstalls one of the slots of "bar" * The package manager can't sanely consider whether an update for a slot is actually needed Furthermore it is possible that a package "foo" which used one slot of "bar" to build may also use a different slot on runtime (think of plugins for a slotted app). (list not necessarily conclusive) Since this has (again) enough potential to result in a flamewar, I'd like to point out what I think we should do/avoid: What I think we should do now: * Complete the list of problems/use cases * Sort the cases by importance * See that we can come up with a common solution to at least 60% of the cases (yes, we may also actively decide to _not_ support certain cases, but we have to be aware of them) * Decide when it should be implemented, what is needed to implement it and who's involved in that What I think we should not discuss (right now): * Which package manager has what implemented (remember: it's more interesting right now _why_ it has been decided to do it like that) * How "|| ( cat/bar:2 cat/bar:3 )" could be expressed in a simpler way. This is pure syntactic sugar * How the implementation should be done or what else it should include. We should concentrate on "what is needed that the package manager devs can implement it properly" Thanks in advance, Tiziano -- ------------------------------------------------------- Tiziano Müller Gentoo Linux Developer Areas of responsibility: Samba, PostgreSQL, CPP, Python, sysadmin E-Mail : [EMAIL PROTECTED] GnuPG FP : F327 283A E769 2E36 18D5 4DE2 1B05 6A63 AE9C 1E30
signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil