This isn't explicitly wrong, but it's a bit ugly in the generated metadata, and I'm not convinced Portage handles duplicates correctly (see e.g. the duplicate || ( ... ) issue in *DEPEND).
This doesn't fix all instances and to be honest, it's a bit dubious given has_iuse doesn't work in global scope, but let's just fix the thing which is definitely wrong (the quoting). This does change the metadata generated in the way I expected, but it doesn't remove *all* duplicates. Signed-off-by: Sam James <s...@gentoo.org> --- eclass/ruby-fakegem.eclass | 42 ++++++++++++++++++++++++++------------ 1 file changed, 29 insertions(+), 13 deletions(-) diff --git a/eclass/ruby-fakegem.eclass b/eclass/ruby-fakegem.eclass index b3262dc5cdb4..8d22c4e3ccf7 100644 --- a/eclass/ruby-fakegem.eclass +++ b/eclass/ruby-fakegem.eclass @@ -150,17 +150,23 @@ RUBY_FAKEGEM_SUFFIX="${RUBY_FAKEGEM_SUFFIX:-}" case ${RUBY_FAKEGEM_RECIPE_DOC} in rake) - IUSE+=" doc" + if ! has doc ${IUSE} ; then + IUSE+=" doc" + fi ruby_add_bdepend "doc? ( dev-ruby/rake )" RUBY_FAKEGEM_DOCDIR="doc" ;; rdoc) - IUSE+=" doc" + if ! has doc ${IUSE} ; then + IUSE+=" doc" + fi ruby_add_bdepend "doc? ( dev-ruby/rdoc )" RUBY_FAKEGEM_DOCDIR="doc" ;; yard) - IUSE+="doc" + if ! has doc ${IUSE} ; then + IUSE+="doc" + fi ruby_add_bdepend "doc? ( dev-ruby/yard )" RUBY_FAKEGEM_DOCDIR="doc" ;; @@ -173,30 +179,40 @@ esac case ${RUBY_FAKEGEM_RECIPE_TEST} in rake) - IUSE+=" test" - RESTRICT+=" !test? ( test )" + if ! has test ${IUSE} ; then + IUSE+=" test" + RESTRICT+=" !test? ( test )" + fi ruby_add_bdepend "test? ( dev-ruby/rake )" ;; rspec) - IUSE+=" test" - RESTRICT+=" !test? ( test )" + if ! has test ${IUSE} ; then + IUSE+=" test" + RESTRICT+=" !test? ( test )" + fi # Also require a new enough rspec-core version that installs the # rspec-2 wrapper. ruby_add_bdepend "test? ( dev-ruby/rspec:2 >=dev-ruby/rspec-core-2.14.8-r2 )" ;; rspec3) - IUSE+=" test" - RESTRICT+=" !test? ( test )" + if ! has test ${IUSE} ; then + IUSE+=" test" + RESTRICT+=" !test? ( test )" + fi ruby_add_bdepend "test? ( dev-ruby/rspec:3 )" ;; cucumber) - IUSE+=" test" - RESTRICT+=" !test? ( test )" + if ! has test ${IUSE} ; then + IUSE+=" test" + RESTRICT+=" !test? ( test )" + fi ruby_add_bdepend "test? ( dev-util/cucumber )" ;; sus) - IUSE+=" test" - RESTRICT+=" !test? ( test )" + if ! has test ${IUSE} ; then + IUSE+=" test" + RESTRICT+=" !test? ( test )" + fi ruby_add_bdepend "test? ( dev-ruby/sus )" ;; none) -- 2.40.0