Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 525376 - repoman: dependency.unknown false positives for profile-specific dependencies on atoms with USE flags forced/masked in other profiles
Summary: repoman: dependency.unknown false positives for profile-specific dependencies...
Status: RESOLVED FIXED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Repoman (show other bugs)
Hardware: All All
: Normal normal (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords: PATCH
: 545294 (view as bug list)
Depends on:
Blocks:
 
Reported: 2014-10-14 05:27 UTC by Arfrever Frehtes Taifersar Arahesis
Modified: 2015-05-19 19:39 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Arfrever Frehtes Taifersar Arahesis 2014-10-14 05:27:44 UTC
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] )
Comment 1 Zac Medico gentoo-dev 2014-10-14 06:23:33 UTC
(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).
Comment 2 Arfrever Frehtes Taifersar Arahesis 2015-04-02 23:05:03 UTC
*** Bug 545294 has been marked as a duplicate of this bug. ***
Comment 3 Zac Medico gentoo-dev 2015-04-02 23:53:47 UTC
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
Comment 4 Ulrich Müller gentoo-dev 2015-04-03 09:52:02 UTC
(In reply to Zac Medico from comment #3)

I can confirm that this fixes the problem I have reported in bug 545294.
Comment 5 Brian Dolbec (RETIRED) gentoo-dev 2015-05-19 19:39:08 UTC
Released in portage-2.2.19