Re: Building db4.0
On Mon, Oct 07, 2002 at 01:38:25PM +0200, Marcus Brinkmann wrote:
> On Mon, Oct 07, 2002 at 02:17:37PM +0200, Michal 'hramrach' Suchanek wrote:
> > On Sat, Oct 05, 2002 at 01:01:58AM +0200, Marcus Brinkmann wrote:
> > > I think an | is not correct if you specify two disjunct, complementary sets.
> > > It would always be true. I think that should be a comma.
> > >
> > > > +Build-Depends: debhelper (>= 2.1.26), tcl8.3-dev, autoconf, automake, binutils (>= 184.108.40.206.7-1), procps [!hurd-i386] | shellutils (>> 2.0.12-2) [hurd-i386], libdb3-dev | libdb4.0-dev
> > >
> > I agree that | with two complementary sets is redundant and equivalent to comma.
> > On the other hand, it illustrates the fact that shellutils on the Hurd provide
> > the kill binary which is in procps on more 'traditional' systems.
> You agree with something I didn't say :)
> If you write "foo [!hurd-i386] | bar [hurd-i386]" then, on a hurd-i386, you
> can simply take the "foo [!hurd-i386]" which would be _true_, and disregard
> the bar dependency. Or on a non-hurd-i386 system, you could take the "bar
> [hurd-i386]", which would be _true_ and disregard the foo.
> Logically, a "foo [bar]" is equivalent to "IF bar THEN foo". The
> implication is _true_ if bar is false, or if bar is true and foo is true.
> So you have: "(If NOT hurd-i386 THEN foo) OR (IF hurd-i386 THEN bar)"
> This evaluates always to "TRUE OR ?" or "? OR TRUE" depending on hurd-i386,
> and thus is always true.
> I am not sure that the implementation would evaluate it like that, but it
> would be perfectly in the right to do so. This means that you must have
> both dependencies independent of each other.
I see, the implementation could go either way and I cannot find a clear
documentation of this. The manual says the entry for non-matching arch is
'ignored' but I can not find where it says what 'ignored' means with |.