Gentoo Archives: gentoo-portage-dev

From: Edward Catmur <ed@×××××××××.uk>
To: gentoo-portage-dev@l.g.o
Subject: Re: [gentoo-portage-dev] has_version and built_with_use ignore package.provided
Date: Mon, 07 Aug 2006 10:29:29
Message-Id: 1154946524.20668.67.camel@capella.catmur.co.uk
In Reply to: Re: [gentoo-portage-dev] has_version and built_with_use ignore package.provided by Paul Bredbury
1 On Sun, 2006-08-06 at 22:08 +0100, Paul Bredbury wrote:
2 > > Other cases would want it to return TRUE.
3 >
4 > Got an example of those? I expect to be able to show that they're
5 > incorrect.
6
7 Sorry to keep this alive.
8
9 Example: subversion.eclass has
10 if built_with_use dev-util/subversion nowebdav; then
11 die "need webdav support in subversion"
12 ...
13 Clearly, where an ebuild requires that a package be merged *without* a
14 USE flag set, a FALSE return from built_with_use is expected to indicate
15 that that package was merged with that USE flag unset.
16
17 Looking at this logically, you're interpreting built_with_use as the
18 Russell definite designator:
19
20 built_with_use (A, Fl) := Fl set_on (i P. P matches A)
21 == Ex P. (All P'. (P' matches A <=> P' = P) ^ Fl set_on P)
22
23 where A denotes an atom, Fl a flag, P, P' a package.
24
25 Yes, the Russell definite designator has value FALSE if it lacks a
26 referent; however there is no need for built_with_use to behave as the
27 definite designator, since we have a trinary logic (TRUE, FALSE, die)
28 available. The big problem with the Russell definite designator is that
29 it is not self-dual under negation (and its dual under negation is not
30 useful); a trinary definite designator /is/ self-dual. (That is,
31 "built_with_use app-foo/bar shiney" is equivalent to "! built_with_use
32 app-foo/bar -shiney". Which is what ebuild authors want.)
33
34 HTH,
35
36 Ed
37
38 --
39 gentoo-portage-dev@g.o mailing list

Replies