[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: recursive build-depends or similar

On Tue, Dec 10, 2002 at 05:54:12PM +0100, Tomas Pospisek's Mailing Lists wrote:
> Mailsync depends on libc-client which can be compiled one way or another
> including or excluding ssl, kerberos etc.
> It happens that libc-client in woody did not include kerberos but
> libc-client in sid does.
> Is there a way to specify this in the build dependecies? Right know I have
> to decide if I want to make mailsync buildable on woody or on sid. I
> wouldn't mind if it could build on both. Is something like this possible:
> Build-Depends: libc-client-ssl2001-dev |
>                ( libc-client2002-dev, libssl-dev, libkrb5-dev )

Apply Boolean algebra to that and you get:

  Build-Depends: libc-client2002-dev | libc-client-ssl2001-dev, libssl-dev | libc-client-ssl2001-dev, libkrb5-dev | libc-client-ssl2001-dev

A bit messy, but it should work.

Note that buildds don't understand |, but buildds won't be building the
newer version on woody anyway. Just remember to put the version needed
for sid first in each alternative.

> OTOH - couldn't the build system figure that out for itself - that is
> check libc-client2002(-dev) and find out that it depends on libkrb5-dev
> and make sure it's installed before building the package?

The buildds just do 'apt-get install libc-client2002-dev', so
dependencies of build-dependencies are processed (but not
build-dependencies of build-dependencies). That should reduce the above
to either:

  Build-Depends: libc-client2002-dev | libc-client-ssl2001-dev

... or:

  Build-Depends: libc-client2002-dev | libc-client-ssl2001-dev, libkrb5-dev | libc-client-ssl2001-dev

(If libc-client2002-dev needs libkrb5-dev, shouldn't it depend on it? Or
is it only for certain specialized cases?)

Colin Watson                                  [cjwatson@flatline.org.uk]

Reply to: