Currently, "most" packages seem to evaluate the USE flag 'xml' whether to enable XML support (i.e. wine, texlive, postgresql-server, python, imagemagick, vlc, ...). But there are a small number of packages that control XML support through their 'expat' USE flag; most prominently 'gdb'. I stumbled upon this when trying to understand why on a system with '+xml' globally gdb would complain about missing XML support; and only after looking thrice did I understand that gdb wants to be compiled with 'expat' for XML support. I think this difference is unfortunate. I suggest to use the 'xml' USE flag whereever XML support is to be enabled/disabled. If there are any packages that allow switching between different XML support implementations, 'expat' could be used there to select the implementation.
can you give some more specific examples?
Created attachment 353356 [details] List of packages using the 'xml' USE flag
Created attachment 353358 [details] List of packages using the 'expat' USE flag
At least sys-devel/gdb, app-arch/rpm5, x11-wm/matchbox-window-manager, media-video/kmplayer seem to use 'expat' to enable XML support. In net-libs/neon, 'expat' toggles between expat and libxml2. net-misc/sitecopy evaluates both 'xml' and 'expat' and apparently toggles, but to be frank I don't really understand what the intended result is. Most of the other packages in my list I don't know well enough to be able to say what they do with expat.
I guess packages should tend to use "xml" when possible and only "expat" to allow choosing between the implementations, right?