예제 #1
0
def loadRecipeClass(
    repos,
    name,
    version,
    flavor,
    trv=None,
    ignoreInstalled=True,
    root=None,
    loadInstalledSource=None,
    overrides=None,
    buildLabel=None,
    cfg=None,
):
    if trv is None:
        trv = repos.getTrove(name, version, deps.parseFlavor(""), withFiles=True)

    if cfg is None:
        cfg = conarycfg.ConaryConfiguration(False)
    else:
        cfg = copy.deepcopy(cfg)
    cfg.initializeFlavors()
    if root:
        cfg.root = root
    branch = version.branch()
    label = version.branch().label()
    cfg.buildLabel = label
    cfg.buildFlavor = flavor
    name = name.split(":")[0]

    use.LocalFlags._clear()
    use.setBuildFlagsFromFlavor(name, flavor, error=False)
    use.resetUsed()
    use.track(True)

    loader = RecipeLoaderFromSourceTrove(
        trv,
        repos,
        cfg,
        name + ":source",
        branch,
        ignoreInstalled=ignoreInstalled,
        db=loadInstalledSource,
        overrides=overrides,
        buildFlavor=flavor,
    )
    recipeClass = loader.getRecipe()
    recipeClass._trove = trv

    use.track(False)
    localFlags = flavorutil.getLocalFlags()
    usedFlags = use.getUsed()
    use.LocalFlags._clear()
    return loader, recipeClass, localFlags, usedFlags
예제 #2
0
def loadRecipeClass(repos,
                    name,
                    version,
                    flavor,
                    trv=None,
                    ignoreInstalled=True,
                    root=None,
                    loadInstalledSource=None,
                    overrides=None,
                    buildLabel=None,
                    cfg=None):
    if trv is None:
        trv = repos.getTrove(name,
                             version,
                             deps.parseFlavor(''),
                             withFiles=True)

    if cfg is None:
        cfg = conarycfg.ConaryConfiguration(False)
    else:
        cfg = copy.deepcopy(cfg)
    cfg.initializeFlavors()
    if root:
        cfg.root = root
    branch = version.branch()
    label = version.branch().label()
    cfg.buildLabel = label
    cfg.buildFlavor = flavor
    name = name.split(':')[0]

    use.LocalFlags._clear()
    use.setBuildFlagsFromFlavor(name, flavor, error=False)
    use.resetUsed()
    use.track(True)

    loader = RecipeLoaderFromSourceTrove(trv,
                                         repos,
                                         cfg,
                                         name + ':source',
                                         branch,
                                         ignoreInstalled=ignoreInstalled,
                                         db=loadInstalledSource,
                                         overrides=overrides,
                                         buildFlavor=flavor)
    recipeClass = loader.getRecipe()
    recipeClass._trove = trv

    use.track(False)
    localFlags = flavorutil.getLocalFlags()
    usedFlags = use.getUsed()
    use.LocalFlags._clear()
    return loader, recipeClass, localFlags, usedFlags
예제 #3
0
파일: usetest.py 프로젝트: pombr/conary
 def testTrack(self):
     Use = use.UseCollection()
     Use._addFlag('foo', value=True) 
     Use._addFlag('bar', value=False) 
     Use._addFlag('bam', value=False) 
     assert(Use._getUsed() == [])
     Use._trackUsed(True)
     assert(bool(Use.foo))
     assert(str(Use._getUsed()) == '[foo: True]')
     Use._trackUsed(False)
     bool(Use.bar)
     assert(str(Use._getUsed()) == '[foo: True]')
     Use._resetUsed()
     assert(Use._getUsed() == [])
     Use.foo._set(False)
     Use._trackUsed(True)
     assert(not bool(Use.foo))
     Use._getUsed()
     assert(str(Use._getUsed()) == '[foo: False]')
     Use._trackUsed(False)
     use.setUsed([Use.bar])
     Use._getUsed()
     assert(str(Use._getUsed()) == '[foo: False, bar: False]')
     Use._resetUsed()
     Use._trackUsed(True)
     Use.bar._set()
     assert(bool(Use.bar))
     Use._getUsed()
     assert(str(Use._getUsed()) == '[bar: True]')
     Use._resetUsed()
     Use.bar._set()
     Use.foo._set(False)
     Use._trackUsed(True)
     assert(Use.bar | Use.foo)
     assert(set(x._name for x in Use._iterUsed())  == set(['bar', 'foo']))
     Use._resetUsed()
     Use._trackUsed(True)
     assert(not Use.foo & Use.bar)
     assert(set(x._name for x in Use._iterUsed())  == set(['bar', 'foo']))
     Use._resetUsed()
     Use._trackUsed(True)
     assert(not (Use.foo & Use.bar & Use.bam))
     sorted(x._name for x in Use._iterUsed())
     assert(set(x._name for x in Use._iterUsed()) == \
             set(['bam', 'bar', 'foo']))
     Use._resetUsed()
     Use._trackUsed(True)
     assert(Use.foo | Use.bar | Use.bam)
     assert(set(x._name for x in Use._iterUsed()) == \
             set(['bam', 'bar', 'foo']))
     Use._resetUsed()
     Use._trackUsed(True)
     assert(not (Use.foo == True))
     assert([x._name for x in Use._iterUsed()] == ['foo'])
     Use._resetUsed()
     Use._trackUsed(True)
     assert(True != Use.foo)
     assert([x._name for x in Use._iterUsed()] == ['foo'])
     Arch = use.Arch
     use.resetUsed()
     use.track(True)
     assert(not bool(Arch.ppc.ppc64))
     use.track(False)
     assert(use.getUsed() == [Arch.getCurrentArch()])
예제 #4
0
파일: usetest.py 프로젝트: tensor5/conary
 def testTrack(self):
     Use = use.UseCollection()
     Use._addFlag('foo', value=True)
     Use._addFlag('bar', value=False)
     Use._addFlag('bam', value=False)
     assert (Use._getUsed() == [])
     Use._trackUsed(True)
     assert (bool(Use.foo))
     assert (str(Use._getUsed()) == '[foo: True]')
     Use._trackUsed(False)
     bool(Use.bar)
     assert (str(Use._getUsed()) == '[foo: True]')
     Use._resetUsed()
     assert (Use._getUsed() == [])
     Use.foo._set(False)
     Use._trackUsed(True)
     assert (not bool(Use.foo))
     Use._getUsed()
     assert (str(Use._getUsed()) == '[foo: False]')
     Use._trackUsed(False)
     use.setUsed([Use.bar])
     Use._getUsed()
     assert (str(Use._getUsed()) == '[foo: False, bar: False]')
     Use._resetUsed()
     Use._trackUsed(True)
     Use.bar._set()
     assert (bool(Use.bar))
     Use._getUsed()
     assert (str(Use._getUsed()) == '[bar: True]')
     Use._resetUsed()
     Use.bar._set()
     Use.foo._set(False)
     Use._trackUsed(True)
     assert (Use.bar | Use.foo)
     assert (set(x._name for x in Use._iterUsed()) == set(['bar', 'foo']))
     Use._resetUsed()
     Use._trackUsed(True)
     assert (not Use.foo & Use.bar)
     assert (set(x._name for x in Use._iterUsed()) == set(['bar', 'foo']))
     Use._resetUsed()
     Use._trackUsed(True)
     assert (not (Use.foo & Use.bar & Use.bam))
     sorted(x._name for x in Use._iterUsed())
     assert(set(x._name for x in Use._iterUsed()) == \
             set(['bam', 'bar', 'foo']))
     Use._resetUsed()
     Use._trackUsed(True)
     assert (Use.foo | Use.bar | Use.bam)
     assert(set(x._name for x in Use._iterUsed()) == \
             set(['bam', 'bar', 'foo']))
     Use._resetUsed()
     Use._trackUsed(True)
     assert (not (Use.foo == True))
     assert ([x._name for x in Use._iterUsed()] == ['foo'])
     Use._resetUsed()
     Use._trackUsed(True)
     assert (True != Use.foo)
     assert ([x._name for x in Use._iterUsed()] == ['foo'])
     Arch = use.Arch
     use.resetUsed()
     use.track(True)
     assert (not bool(Arch.ppc.ppc64))
     use.track(False)
     assert (use.getUsed() == [Arch.getCurrentArch()])