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 (>= 2.11.90.0.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 |. -- Michal Suchanek [EMAIL PROTECTED]