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: