dependency.unknown-related code in repoman blindly ignores conditionals in *DEPEND, which results in false positives for profile-specific (usually architecture-specific) dependencies with USE flags forced/masked in any profile related to a keyword in KEYWORDS. KEYWORDS="amd64 x86" or KEYWORDS="x86" DEPEND="amd64? ( app-misc/A[-some_flag_forced_in_x86_profiles] app-misc/B[some_flag_masked_in_x86_profiles] )" portdb.xmatch("match-all", atom) can be changed to portdb.xmatch("match-all", atom.without_use) to avoid this problem, but it would probably break detection of: || ( A B[nonexistent_flag] )
(In reply to Arfrever Frehtes Taifersar Arahesis from comment #0) > portdb.xmatch("match-all", atom) can be changed to > portdb.xmatch("match-all", atom.without_use) to avoid this problem, but it > would probably break detection of: > || ( A B[nonexistent_flag] ) So, if portdb.xmatch("match-all", atom.without_use) returns something while portdb.xmatch("match-all", atom) does not, then we should have it check to see if it's only due to a masked or forced flag (rather than a missing flag).
*** Bug 545294 has been marked as a duplicate of this bug. ***
There's a patch in the following branch: https://github.com/zmedico/portage/tree/bug_525376 You can install the branch like this: ACCEPT_KEYWORDS="**" \ portage_LIVE_REPO="https://github.com/zmedico/portage.git" \ portage_LIVE_BRANCH="bug_525376" emerge -1 =sys-apps/portage-9999 I've posted the patch for review here: http://thread.gmane.org/gmane.linux.gentoo.portage.devel/5408
(In reply to Zac Medico from comment #3) I can confirm that this fixes the problem I have reported in bug 545294.
Released in portage-2.2.19