
I was also talking to the Gentoo protage developers about this. They had a couple interesting points. They say that automatically picking up optional dependencies is bad, even if they are tracked. That there must be a way to build without some dep even if it's installed and available. eg to build on one machine and move to another. So even if we make picking up optional deps the default, there must be a manual override mechanism. Then for the Gentoo package we would always use that override and have the optional dep controlled by a USE flag. You can simulate automatic optional dependencies with trickery like: build-depends: foo || base (Since base is always available, this means that foo would be used if it's installed and base otherwise. Since || is left biased.) They said that any Gentoo developer caught doing the equivalent of this would be shot. So while || or equivalents are useful for inconsequential variations in dependencies (like the issue of a module moving from one package to another - think base & fps), only social pressure can stop them from being abused. So, with this in mind, can we come up with a syntax & semantics that is close to our current configurations proposals but is not evil? Duncan