I am building a package for my ppa that requires a newer implementation of libboost than what is provided in my target distro (precise). I've copied libboost1.55 from the boost ppa into my ppa. I'm using pbuilder-dist to test my package build. I have successfully used the answer to this question to get pbuilder to get libboost packages from the ppa into the chroot environment.
Unfortunately, while all the dependencies can be installed from the ppa as libboost-libname1.55-dev
, none of them satisfy the meta package libboost-libname-dev
and the pbuilder-dist
build fails due to unsatisfied dependencies.
So, this question is not necessarily only tied to pbuilder-dist
, but how would I either let pbuilder ignore the packages for dependencies (as I'm sure the dependency is met), or make apt-get consider the meta package dependency satisfied? I would prefer not to mess with the debian/control
unless there is no other way.
Because the main metapackage that is updated to depend on Boost 1.55 libraries isn't supplied through the PPA, you get the dependency errors. No builder (
pbuilder
orsbuild
) or package manager (apt-get
) will allow building/installing a package where the dependencies aren't met, as this indicates that the package will fail to build or work. Therefore, you will have to go intodebian/control
. To get around the error, try using dependency alternatives to specify using either the main metapackage if it is of a sufficient version or the alternative version.To do this, in the case of a Boost module called name, the dependency for that module would look like
libboost-name-dev (>= 1.55.0) | libboost-name1.55-dev
. In this case, thelibboost-name-dev
will be used if it is at least version 1.55; otherwise, it will uselibboost-name1.55-dev
.Note that you may need to manually enable using alternatives in
pbuilder
.