there's been some discussion about it. The idea is to move some information
from dynamic handling to static visibility.
Namely, a pattern such as
.if ${ARCH} == "sparc64"
BROKEN = "doesn't work on sparc64, we don't know why"
.endif
has low visibility. Anyone who works on the ports tree outside of sparc64
won't see it.
It's also totally different in intent from ONLY_FOR_ARCHS and NOT_FOR_ARCHS:
something that is completely designed to not work on some architecture is
not really "broken" as "needing lots and lots of work".
For instance, opera is a binary port, saying BROKEN on !i386 is a nonsense.
"Portable" languages such as java which don't work at all outside of a very
limited set of architectures are not broken either (well, one could argue
that they're completely broken in fact...)
The neat thing with BROKEN-* is that, now that I've finished the required
changes, it will show up in sqlports (I had not thought about how to do
it beforehand, so it took a few weeks to explain arch-dependent variables
to dump-vars and to mksqlitedb).
So, now, any enterprising soul can just open the sqlports database with
their favorite sqlitebrowser, peer through the BROKEN table, and have a try
at fixing the issues.
Have fun ;-)