This is the wrong way to write an ebuild: src_compile() { if ! use mysql && ! use postgres; then eerror "MyDNS needs either MySQL or PostgreSQL." eerror "Please set USE=\"mysql\" or USE=\"postgres\", and try again." die fi Instead mydns should use one or the other as default if neither of the USE variables are specified. This is standard within portage; when you have a dependency with multiple options, you choose the best one if there is no USE variable specifying otherwise.
Fixed in mydns-0.11.0. in cvs.