#194: OverlayRepo doesn't cover the corner case whe the same cpv is present in
multiple slave repos
---------------------+------------------------------------------------------
Reporter: nus | Owner:
Type: defect | Status: new
Priority: normal | Milestone: 0.4.7.3
Component: pkgcore | Version: 0.4.7.2
Keywords: |
---------------------+------------------------------------------------------
{{{
>>> config = pkgcore.config.load_config()
>>> domain = config.get_default('domain')
>>> all_repos=domain.all_repos
>>> restriction = parserestrict.parse_match("x11-libs/libXft::gentoo")
>>> all_repos.trees[1]
<filterTree raw_repo=<pkgcore.ebuild.repository.ConfiguredTree
raw_repo=<pkgcore.ebuild.overlay_repository.OverlayRepo object at
0xaa66cec> wrapped=['provides', 'license', 'fetchables', 'post_rdepends',
'depends', 'rdepends', 'src_uri'] @0xaf4b96c> restriction=<AndRestriction
negate=False type='package' finalized=False restrictions=[<OrRestriction
negate=False type='package' finalized=False
restrictions=[<pkgcore.restrictions.delegated.delegate object at
0xae254ec>, <pkgcore.restrictions.delegated.delegate object at 0xaf434cc>]
@0xa30252c>, <pkgcore.restrictions.delegated.delegate object at
0xaf43c0c>] @0xa30248c> sentinel=True @0xaf4ba8c>
>>> [x for x in r1.raw_repo.itermatch(restriction)]
[]
>>> r1 = all_repos.trees[1].raw_repo
>>> r1
<pkgcore.ebuild.repository.ConfiguredTree
raw_repo=<pkgcore.ebuild.overlay_repository.OverlayRepo object at
0xaa66cec> wrapped=['provides', 'license', 'fetchables', 'post_rdepends',
'depends', 'rdepends', 'src_uri'] @0xaf4b96c>
>>> r1.raw_repo.trees(<ebuild SlavedTree location='/usr/local/layman/pro-
audio' @0xaa66b8c>, <ebuild SlavedTree location='/usr/local/layman
/pkgcore-bzr' @0xabb758c>, <ebuild SlavedTree location='/usr/local/layman
/gentoo-xeffects' @0xacde18c>, <ebuild SlavedTree
location='/usr/local/layman/gentoo-soor' @0xace910c>, <ebuild SlavedTree
location='/usr/local/layman/gentoo-lisp' @0xacf10ec>, <ebuild SlavedTree
location='/usr/local/layman/emacs' @0xacd124c>, <ebuild UnconfiguredTree
location='/usr/portage' @0xacf618c>)
>>> slaved_trees = [ t for t in r1.raw_repo.trees ]
>>> slaved_trees
[<ebuild SlavedTree location='/usr/local/layman/pro-audio' @0xaa66b8c>,
<ebuild SlavedTree location='/usr/local/layman/pkgcore-bzr' @0xabb758c>,
<ebuild SlavedTree location='/usr/local/layman/gentoo-xeffects'
@0xacde18c>, <ebuild SlavedTree location='/usr/local/layman/gentoo-soor'
@0xace910c>, <ebuild SlavedTree location='/usr/local/layman/gentoo-lisp'
@0xacf10ec>, <ebuild SlavedTree location='/usr/local/layman/emacs'
@0xacd124c>, <ebuild UnconfiguredTree location='/usr/portage' @0xacf618c>]
>>> [x for x in slaved_trees[6].itermatch(restriction)]
[<<class 'pkgcore.ebuild.ebuild_src.package'> cpv='x11-libs/libXft-2.1.12'
@0xb46d2d4>]
>>>
}}}
--
Ticket URL: <
http://www.pkgcore.org/trac/pkgcore/ticket/194>
pkgcore <
http://www.pkgcore.org/trac/pkgcore>
pkgcore package manager