Gentoo Archives: gentoo-dev

From: Jauhien Piatlicki <jauhien@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] Portage dependency solving algorithm
Date: Sat, 08 Nov 2014 21:52:43
Message-Id: 545E9098.8030905@gentoo.org
In Reply to: Re: [gentoo-dev] Portage dependency solving algorithm by hasufell
1 08.11.14 22:47, hasufell написав(ла):
2 > On 11/08/2014 10:30 PM, Rich Freeman wrote:
3 >> On Sat, Nov 8, 2014 at 2:48 PM, hasufell <hasufell@g.o> wrote:
4 >>> On 11/08/2014 08:32 PM, hasufell wrote:
5 >>>>> Sorry to chime in like that but if you don't mind, I'd like to ask for a
6 >>>>> real-life example for badly declared dependencies with a few words why
7 >>>>> those are bad and how to make them actually better?
8 >>>>>
9 >>>>
10 >>>> from dev-haskell/hashtables (note "hashtables" != "hashable"):
11 >>>> || ( ( >=dev-haskell/hashable-1.1:=[profile?]
12 >>>> <dev-haskell/hashable-1.2:=[profile?] )
13 >>>> ( >=dev-haskell/hashable-1.2.1:=[profile?]
14 >>>> <dev-haskell/hashable-1.3:=[profile?] )
15 >>>> )
16 >>>>
17 >>>> Latest stable version of dev-haskell/hashable is 1.2.1.0.
18 >>>> On a stable system (arch) the paludis dep-solver will try to match the
19 >>>> first group first and realize that there is also a stable version
20 >>>> 1.1.2.5 that matches that group. At that point there is a correct
21 >>>> solution, but since that involves downgrading a package, it will require
22 >>>> user-intervention, because it may not be what the user wants.
23 >>>> (this is the easy scenario... if downgrading causes blockers, you get
24 >>>> much more interesting output)
25 >>>>
26 >>>
27 >>> To be more specific... it is assumed that hashable-1.2.1.0 is already
28 >>> installed. Every time the dep solver runs through those packages without
29 >>> specifying what you want, you will hit the downgrade-problem.
30 >>
31 >> I'm missing the problem. The package requires one of two ranges of
32 >> hashable versions. One of them is already installed. The dependency
33 >> is satisfied.
34 >>
35 >
36 > The one that is installed (1.2.1.0) is *excluded* by the first group,
37 > but there is a valid version that fits instead (1.1.2.5).
38 >
39 > That's the point where the assumptions start about what the depstring
40 > means and what the user wants.
41 >
42
43 So the problem is only with intervals? First of all, maintainer would specify higher interval first here and it would solve a problem with possible downgrading. Second, || is rather not for such cases as you've said, so we could ask for a new syntax and solve this problem in the right way in one of the next EAPIs.
44
45 Are there any other problems in current model apart from intervals? I would really like to see a list of them all.
46
47 --
48 Jauhien

Attachments

File name MIME type
signature.asc application/pgp-signature

Replies

Subject Author
Re: [gentoo-dev] Portage dependency solving algorithm hasufell <hasufell@g.o>
Re: [gentoo-dev] Portage dependency solving algorithm Ciaran McCreesh <ciaran.mccreesh@××××××××××.com>