Builder: ppa dependency for source build ok, for binary not?

Asked by Jens Beyer

I am trying to build widelands on precise with g++-4.7 from ppa:ubuntu-toolchain-r/test (precise only ships g++-4.6).

I added the ppa dependency, and in the source build from the recipe, the dependency gets pulled in, the source build is fine.
The following binary build then "fails" (in fact it says dependency wait) because g++-4.7 is not available.
To me this is a very strange behaviour, and I can not explain it. What is the problem here?

Where does it happen? Here: https://code.launchpad.net/~qcumber-some/+recipe/widelands-build-test

The recipe is derived from standard widelands recipe, only with a customized packaging (pulling in g++-4.7 via Build-Depend in the control file), and the ppa with the Toolchain dependency. Check the buildlogs to see the difference (grep for g++).

Thanks for any help you can give me.

Question information

Language:
English Edit question
Status:
Solved
For:
Launchpad itself Edit question
Assignee:
No assignee Edit question
Solved by:
Jens Beyer
Solved:
Last query:
Last reply:
Revision history for this message
William Grant (wgrant) said :
#1

For historical reasons the dependency resolution algorithm for binary builds is deliberately limited. If only one operand of a disjunction is installed, that side will be taken even if the installed package doesn't satisfy the version constraint. You'll need to remove the "| g++ (>= 4:4.7)".

Recipe builds are newer so have less historical baggage, and just use apt to resolve the dependencies. We hope to move binary builds to apt eventually, but there's a bit of testing that needs to be done first.

Revision history for this message
Jens Beyer (qcumber-some) said :
#2

Exact answer, thank you.