The IUSE parameter of gvim.eclass is duplicated in gvim-6.3 (and 6.2-r9) ebuild. In gvim.eclass it starts on line 41: 41. elif [ ${PN} = gvim ] ; then 42. IUSE="$IUSE gnome gtk gtk2 motif" 43. fi In gvim-6.3.ebuild: 21. IUSE="${IUSE} gnome gtk gtk2 motif nls" Which results in: # emerge -pv gvim [...] [ebuild R ] app-editors/gvim-6.3 -acl -cscope -debug -gnome -gnome +gpm gtk -gtk -gtk2 -gtk2 +motif +motif +ncurses +nls +nls +perl +python -ruby -(selinux) Reproducible: Always Steps to Reproduce: 1. emerge -pv gvim 2. 3.
Horrid, eh? Ok, here's how IUSE should work: * An ebuild sets IUSE="whatever flags it itself uses" * An eclass sets IUSE="whatever flags the eclass uses" * Portage combines these, strips out duplicates, sorts and shows you IUSE="eclass flags it itself the uses whatever" Unfortunately, portage 2.0.50 has a rather nasty bug here. It'll get the IUSE from the first eclass, then overwrite it with the IUSE from the second eclass (and so on), then it'll overwrite it with the IUSE from the ebuild. Result being, a bunch of USE flags don't show up. So... That's where the IUSE="${IUSE} flags the ebuild uses" hack comes from. In portage 2.0.51, which doesn't have the IUSE bug, the ${IUSE} makes no difference. In portage 2.0.50, it means eclass-provided flags will still show up in the emerge -pv list. Unfortunately, 2.0.50 doesn't correctly remove duplicates either, hence the result you're seeing. So, I'm not going to change this. What the ebuild does is correct (aside from that nasty extra ${IUSE}), and it only causes a minor cosmetic problem with portage 2.0.50.
*** Bug 59835 has been marked as a duplicate of this bug. ***
*** Bug 59836 has been marked as a duplicate of this bug. ***
*** Bug 64616 has been marked as a duplicate of this bug. ***