On Sat, Dec 08, 2007 at 07:09:52PM -0500, Jason Dixon wrote: > Yes, audio/workman has a BUILD_DEPEND of x11/view/config. I assumed there was > magic with the update target to ignore any BUILD_DEPENDs where the dependency > won't build on ARCH. I guess I'm stuck with SKIPDIR, which should be ok.
> Does that feel like a bug to anyone else, or is it expected behavior? It's a limitation of the current infrastructure. You're slightly mistaken as to what's happening and why. There is no magic in make update. There isn't supposed to be any magic in make update. make update simply does build every package, as it's supposed to, and then reinstalls only whatever is already in the system. If you want to build only what's installed, you have to maintain a list of dirs more or less manually, with the current framework. That's what SRC: in PKGPATH is supposed to do eventually (it kind of works now, in fact). What you're seeing is the fact that NOT_FOR_ARCHS is not inherited from dependencies. So, xview is marked not for amd64, and it will quietly be skipped when built directly, but this is still tagged as an error when you encounter it as a dependency. It's a difficult issue to solve, because there is value in both ways. The current solution assumes non-marked build issues are problems. This is somewhat correct, because you often want to see whether something will build right at the Makefile level, without having to dig in the dependencies. No surprise. On the other hand, this often will require some heavy maintenance when a common dependency changes status, because you will then have to re-edit the broken parts in all ports of show-required-by... The correct solution would probably be to be able to stick a tag that says `warning, may not build because of this port', so that we could have it both ways, even if we forget to eventually update the port. e.g., I would just write: BROKEN_DEPENDS=::x11/xview/config in audio/workman, and it would tell me...