public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] Multislot dependencies
@ 2008-06-28 14:37 Tiziano Müller
  2008-06-28 15:13 ` Bernd Steinhauser
  0 siblings, 1 reply; 15+ messages in thread
From: Tiziano Müller @ 2008-06-28 14:37 UTC (permalink / raw
  To: gentoo-dev; +Cc: genone, solar, ferringb, jokey, ciaran.mccreesh, ferdy

[-- Attachment #1: Type: text/plain, Size: 2509 bytes --]

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     : dev-zero@gentoo.org
GnuPG FP   : F327 283A E769 2E36 18D5  4DE2 1B05 6A63 AE9C 1E30

[-- Attachment #2: Dies ist ein digital signierter Nachrichtenteil --]
[-- Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2008-07-01 17:01 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-06-28 14:37 [gentoo-dev] Multislot dependencies Tiziano Müller
2008-06-28 15:13 ` Bernd Steinhauser
2008-06-28 17:57   ` [gentoo-dev] " Tiziano Müller
2008-06-28 18:23     ` Bernd Steinhauser
2008-06-28 18:52       ` [gentoo-dev] " Tiziano Müller
2008-06-28 19:27         ` Bernd Steinhauser
2008-06-30 17:01           ` Enrico Weigelt
2008-06-30 20:07             ` Gilles Dartiguelongue
2008-06-30 20:21               ` [gentoo-dev] " Tiziano Müller
2008-07-01 12:47               ` [gentoo-dev] " Enrico Weigelt
2008-07-01 17:00                 ` Santiago M. Mola
2008-06-28 21:10     ` [gentoo-dev] " Ciaran McCreesh
2008-06-28 21:41       ` [gentoo-dev] " Tiziano Müller
2008-06-28 21:46         ` Ciaran McCreesh
2008-06-30  6:36           ` [gentoo-dev] " Tiziano Müller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox