Since Qt 4.4.0 is not yet in the Portage tree due to KDE 4 build problems, I built it from source and added the new modular Qt entries to package.provided. Installed Qt4-based applications still work, but I can't emerge new ones due to spurious errors about missing subpackages. (See "Actual Results.") I inspected one such ebuild (net-im/psi-0.11) and qt4.eclass and tracked the problem down to has_version returning failure status. Reproducible: Always Steps to Reproduce: What I did: 1. Install Qt 4.4.0 from source 2. Add entries for x11-libs/qt-4.4.0_rc1 and all of its subpackages to package.provided 3. Attempt to install a package that depends on Qt 4 (i.e. net-im/psi-0.11) Alternative I researched while writing this bug report: 1. Install lua from source 2. Add dev-lang/lua-5.1.2-r2 (or similar atom) to package.provided 3. Attempt to install net-mail/freepops Actual Results: For net-im/psi: * You must first install the x11-libs/qt-qt3support package. * * ERROR: net-im/psi-0.11 failed. * Call stack: * ebuild.sh, line 49: Called pkg_setup * ebuild.sh, line 1244: Called qt4_pkg_setup * qt4.eclass, line 106: Called die * The specific snippet of code: * die "Install x11-libs/qt-${x}" * The die message: * Install x11-libs/qt-qt3support * * If you need support, post the topmost build error, and the call stack if relevant. * A complete build log is located at '/var/tmp/portage/net-im/psi-0.11/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/net-im/psi-0.11/temp/die.env'. * For net-mail/freepops: * * ERROR: net-mail/freepops-0.2.5 failed. * Call stack: * ebuild.sh, line 49: Called pkg_setup * freepops-0.2.5.ebuild, line 24: Called built_with_use 'pkg_setup' 'pkg_setup' * eutils.eclass, line 1698: Called die * The specific snippet of code: * [[ -z ${PKG} ]] && die "Unable to resolve $1 to an installed package" * The die message: * Unable to resolve dev-lang/lua to an installed package * * If you need support, post the topmost build error, and the call stack if relevant. * A complete build log is located at '/var/tmp/portage/net-mail/freepops-0.2.5/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/net-mail/freepops-0.2.5/temp/die.env'. * Expected Results: Since x11-libs/qt-qt3support (or in the alternative, dev-lang/lua) IS actually installed, just not by Portage, I expected the installation to proceed as normal. emerge -p considers the dependencies satisfied. I short-circuited has_version() in /usr/lib/portage/bin/portageq in order to test the actual build process; it worked fine. Note that Qt 4 (and the slight version mismatch between 4.4.0 and 4.4.0_rc1) are irrelevant and other packages have related problems.
(In reply to comment #0) > For net-mail/freepops: > * > * ERROR: net-mail/freepops-0.2.5 failed. > * Call stack: > * ebuild.sh, line 49: Called pkg_setup > * freepops-0.2.5.ebuild, line 24: Called built_with_use This particular case overlaps with bug 142941, but the has_version/best_version request is a more general case.
Another example of this problem is custom patching php, adding it to package.provided, and then trying to add dev-php/PEAR-PEAR. It essentially prevents you from installing security updates to various pecl and pear packages.