How do USE flags work?
Can someone explain to me how USE flags actually work? I'm familiar with the idea that some programs contain code for extra bells and whistles that not everyone wants, so those sections only compile if a certain flag is set. But that's at the discretion of the programmer. How can gentoo assume that something like gnome support will always be conditionally compiled in programs that come from so many different sources? Do they patch all the programs?
If you will notice in Debian, they have many packages that have support for other things such as apache. They have apache-mod-php, apache-mod-ssl, etc... Those packages may not be exact, but you get my point.
In Gentoo, instead of installing those separate packages, they use USE flags. If you want an option built in, you set its USE flag. If you don't, you unset it.
It is an easier way to not build support for things you don't want.
The default USE flags enabled will depend on the profile you selected when you installed. I usually just leave it at default and select everything I want in my make.conf.
Gentoo Linux Documentation -- USE flags
That link explains them very well.
We also had a small discussion on which combination of USE flags work well for us, if you want to have a gander at them.