Gentoo Archives: gentoo-dev

From: "Michał Górny" <mgorny@g.o>
To: Sergei Trofimovich <slyfox@g.o>
Cc: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] [RFC] Problems and limitations of the current version dependency specs
Date: Tue, 01 Nov 2016 13:16:35
Message-Id: 20161101141618.72f7c939.mgorny@gentoo.org
In Reply to: Re: [gentoo-dev] [RFC] Problems and limitations of the current version dependency specs by Sergei Trofimovich
1 On Tue, 1 Nov 2016 09:29:09 +0000
2 Sergei Trofimovich <slyfox@g.o> wrote:
3
4 > > 4. What are the common tasks that you find unnecessarily complex /
5 > > lengthy with the current version specifications?
6 >
7 > Problem 1:
8 >
9 > Sometimes upstream decides that one of their dependencies
10 > is broken on a version range (package compiles but does
11 > horrible things due to accidental semantic change in a dependency)
12 >
13 > Common example is aeson. Upstream dependency looks like:
14 > || ( ( >=aeson-0.5 <aeson-0.10 )
15 > ( >=aeson-0.11 <aeson-1.2 ) )
16
17 So version ranges with exclusions. How many versions usually need to be
18 excluded? Is this usually limited to a few versions? Are the versions
19 very specific or would you need to restrict them e.g. 0.10*?
20
21 > Problem 2:
22 >
23 > Haskell ABI it a SUM of:
24 > - ABIs of its dependency libraries
25 > - own exports
26 > Library version is a part of that library ABI.
27 > Thus library ABI is guaranteed to change every library release.
28 >
29 > It means that once end user merges a library version bump
30 > user needs to rebuild all library's transitive reverse dependencies.
31 > Sometimes library is deep in the dependency chain (5-10 levels deep).
32 >
33 > There is no way to express that style of dependency in portage:
34 > https://bugs.gentoo.org/show_bug.cgi?id=449094
35 > and app-admin/haskell-updater is still a needed thing to restore
36 > world sanity after a library upgrade.
37
38 Just to be clear, I was asking purely about versions and not
39 slots/subslots and other magic like that. However, while at it I should
40 point out that the spec doesn't really cover pure-DEPEND :=, so there
41 is no guarantee that Haskell := operators will work at all.
42
43 --
44 Best regards,
45 Michał Górny
46 <http://dev.gentoo.org/~mgorny/>

Replies