The problem is to try to understand USE flags labeling the flags themselves as "global" or "local". If you turn the issue upside down, it becomes a lot clearer.
"Global" USE flag
descriptions are those listed in $PORTDIR/profiles/use.desc - while "local" USE flag
descriptions are listed in the packages metadata.xml (which are used to (still) generate $PORTDIR/profiles/use.local.desc btw.).
What is meant with global/local description? I try it with a theoretical example:
The "global" description for the USE flag "tiff" is: "
Adds support for the TIFF image format".
Now lets say you write an ebuild for package media-gfx/foo, and this program generates some graphics that are saved in png format. You find a configure option to change this from png to tiff. This means that the
behavior of your program changes if you enable "tiff" (which you added as a USE flag to allow users to toggle this configuration option).
You can not leave it as this, because the USE flag "tiff" does not the same to your package media-gfx/foo as is described in use.desc.
So you add an entry to your packages metadata.xml that reads:
Code: Select all
<flag name='tiff'>Write files in TIFF format instead of PNG</flag>
Now, while there is the "global" USE flag "tiff", it is a "local" USE flag for your package.
A real world example would be the "calendar" USE flag. While this flag "globally" enables support for calendars (not using mcal), it has a special meaning for dev-scheme/bigloo : It enables the build of an embedded library for calendar programming.
Or the "global" flag "pdf" should add
general support for pdf files, but for app-doc/tldp-howto it means to
install the documentation in PDF format. Which is something different.
Conclusion: For any USE flag a package supports, a special description (metadata.xml) is "local", otherwise the "global" description is in affect. Thus not the flag itself, but its meaning for a specific package changes.