http://bugs.gentoo.org/show_bug.cgi?id=28448 shows why. End user may prefer ALSA, so should be able to set -oss in USE. But they can have programs already built, or 3rd party which rely on OSS support, so if ALSA is replacing OSS, then it makes more sense to ignore the oss USE flag. It's OSS emulation, not using OSS. Reproducible: Always Steps to Reproduce:
I don't think we should ignore the OSS-flag, otherwise we are decreasing the strength of the USE-mechanism Gentoo uses. If a user doesn't want OSS-support built, then it should be able to do so. If this leads to programs malfunctioning (in this case sound not working), then that is what is the result. The user can then check if that program can be rebuilt with alsa-support, file a report on that program so it can use ALSA, or recompile alsa-driver with OSS.
agreed, we shouldnt ignore oss
I agree there ought to be a way to turn off oss-emulation, for OSS free system, but alsa-driver needs rebuilding after kernel upgrades, and why should the Gentoo end-user, who migrates to ALSA have to remember to switch the flag on/off? ALSA is not using OSS, it's emulating it. If you had a USE="-oss_emulation" flag instead, then those who don't want OSS supported at all, can turn it off, yet you can make things just work, with minimum hassle for most ppl, by defaulting to "+oss_emulation". Without that, what will happen most likely is that "oss" will, just get left enabled by most, and those who try to turn it off, run into the problem mentioned in 28448. Fixing it in documentation, passes the burden to the end-user.
I don't see that oss emulation should be any different from oss support in programs so I'm going to mark this INVALID. You either want oss or you don't, thats what the use flag is for. If you compile lots of programs with mysql support and then remove mysql they will break. This is no different. You compile alsa without oss emulation then things which expect oss will break. The documentation I leave to the honourable Mr Swift :)