tags:

views:

243

answers:

1

I have a debian/control file which includes:

Build-Depends: ... libboost1.35-dev, libboost-date-time1.35-dev, ...

This stops the package from building on modern Ubuntu systems.

I could just change all the 1.35s for 1.38s and then it would work on modern Ubuntu, but not older versions.

I would like to do something like:

Build-Depends: ... libboost-dev (>=1.35), libboost-date-time-dev (>=1.35), ...

but it seems that the 1.35 is hardcoded into the package names. i.e. libbost1.35-dev is a different package from libboost1.38m not just a different version of the same package.

Is my understanding correct here? I can understand hardcoding major version numbers into the package name (if the new version's ABI breaks backward compatibility).

Is there a way to write a Debian control file which allows a package to be depend on having a particular version of libboost or higher?

Thanks,

Chris.

+4  A: 

You should "Depends: libboost-dev" unless there is a special reason to target for specific versions of Boost. This libboost-dev package is a pseudo-package that pulls in the suitable version of libboost.

If you really want to target them specifically, use the "or" operator:

Depends: A | B | C 

See: http://www.debian.org/doc/debian-policy/ch-relationships.html

KennyTM
I've just found out about the 'dependency packages' for boost. I can depend on libboost-dev (>=1.35), just hadn't installed it...
chrisdew