[oe] [PATCH mete-oe] bbclass: drop gitver.bbclass amd srctree.bbclass which are already in oe-core

Martin Jansa martin.jansa at gmail.com
Fri Dec 30 08:58:09 UTC 2011


On Fri, Dec 30, 2011 at 10:59:36AM +0800, b19537 at freescale.com wrote:
> From: Zhenhua Luo <b19537 at freescale.com>
> 
> Signed-off-by: Zhenhua Luo <b19537 at freescale.com>

Are you sure?

I don't see them in
http://git.openembedded.org/openembedded-core/tree/meta/classes
or patch with them here
http://patchwork.openembedded.org/project/oe-core/list/
but last time I've used srctree it failed like this:

ERROR: Command execution failed: Traceback (most recent call last):
  File "/usr/lib64/python2.7/site-packages/bb/command.py", line 87, in runAsyncCommand
    commandmethod(self.cmds_async, self, options)
  File "/usr/lib64/python2.7/site-packages/bb/command.py", line 182, in buildFile
    command.cooker.buildFile(bfile, task)
  File "/usr/lib64/python2.7/site-packages/bb/cooker.py", line 989, in buildFile
    self.caches_array)
  File "/usr/lib64/python2.7/site-packages/bb/cache.py", line 410, in parse
    datastores = cls.load_bbfile(filename, appends, configdata)
  File "/usr/lib64/python2.7/site-packages/bb/cache.py", line 669, in load_bbfile
    bb_data = parse.handle(bbfile, bb_data)
  File "/usr/lib64/python2.7/site-packages/bb/parse/__init__.py", line 80, in handle
    return h['handle'](fn, data, include)
  File "/usr/lib64/python2.7/site-packages/bb/parse/parse_py/BBHandler.py", line 159, in handle
    return ast.multi_finalize(fn, d)
  File "/usr/lib64/python2.7/site-packages/bb/parse/ast.py", line 379, in multi_finalize
    finalize(fn, d)
  File "/usr/lib64/python2.7/site-packages/bb/parse/ast.py", line 323, in finalize
    bb.utils.simple_exec("\n".join(code), {"d": d})
  File "/usr/lib64/python2.7/site-packages/bb/utils.py", line 387, in simple_exec
    exec(code, _context, context)
  File "<string>", line 9, in <module>
  File "__anon_98__OE_shr_core_meta_openembedded_meta_oe_classes_srctree_bbclass", line 5, in __anon_98__OE_shr_core_meta_openembedded_meta_oe_classes_srctree_bbclass
  File "srctree.bbclass", line 28, in merge_tasks
  File "srctree.bbclass", line 24, in gather_taskdeps
  File "srctree.bbclass", line 18, in __gather_taskdeps
  File "srctree.bbclass", line 18, in __gather_taskdeps
  File "srctree.bbclass", line 18, in __gather_taskdeps
  File "srctree.bbclass", line 18, in __gather_taskdeps
  File "srctree.bbclass", line 18, in __gather_taskdeps
  File "srctree.bbclass", line 16, in __gather_taskdeps
TypeError: 'NoneType' object is not iterable

And unfortunately syntax like this
INHERIT_append_pn-libphone-ui-shr = "srctree gitpkgv"
doesn't work too anymore (that's why I didn't notice sooner), so instead of small .inc 
file for "local" builds you have to add .bbappend

Regards,

>  meta-oe/classes/gitver.bbclass  |   80 -------------------------
>  meta-oe/classes/srctree.bbclass |  123 ---------------------------------------
>  2 files changed, 0 insertions(+), 203 deletions(-)
>  delete mode 100644 meta-oe/classes/gitver.bbclass
>  delete mode 100644 meta-oe/classes/srctree.bbclass
> 
> diff --git a/meta-oe/classes/gitver.bbclass b/meta-oe/classes/gitver.bbclass
> deleted file mode 100644
> index ee8323d..0000000
> --- a/meta-oe/classes/gitver.bbclass
> +++ /dev/null
> @@ -1,80 +0,0 @@
> -# Copyright (C) 2009 Chris Larson <clarson at kergoth.com>
> -# Released under the MIT license (see COPYING.MIT for the terms)
> -#
> -# gitver.bbclass provides a GITVER variable which is a (fairly) sane version,
> -# for use in ${PV}, extracted from the ${S} git checkout, assuming it is one.
> -# This is most useful in concert with srctree.bbclass.
> -
> -def git_drop_tag_prefix(version):
> -    import re
> -    if re.match("v\d", version):
> -        return version[1:]
> -    else:
> -        return version
> -
> -GIT_TAGADJUST = "git_drop_tag_prefix(version)"
> -GITVER = "${@get_git_pv('${S}', d, tagadjust=lambda version:${GIT_TAGADJUST})}"
> -GITSHA = "${@get_git_hash('${S}', d)}"
> -
> -def get_git_hash(path, d):
> -    return oe_run(d, ["git", "rev-parse", "--short", "HEAD"], cwd=path).rstrip()
> -
> -def get_git_pv(path, d, tagadjust=None):
> -    import os
> -    import oe.process
> -
> -    gitdir = os.path.abspath(os.path.join(d.getVar("S", True), ".git"))
> -    def git(cmd):
> -        try:
> -            return oe_run(d, ["git"] + cmd, cwd=gitdir).rstrip()
> -        except oe.process.CmdError, exc:
> -            bb.fatal(str(exc))
> -
> -    try:
> -        ver = oe_run(d, ["git", "describe", "--tags"], cwd=gitdir).rstrip()
> -    except Exception, exc:
> -        bb.fatal(str(exc))
> -
> -    if not ver:
> -        try:
> -            ver = get_git_hash(gitdir, d)
> -        except Exception, exc:
> -            bb.fatal(str(exc))
> -
> -        if ver:
> -            return "0.0+%s" % ver
> -        else:
> -            return "0.0"
> -    else:
> -        if tagadjust:
> -            ver = tagadjust(ver)
> -        return ver
> -
> -def mark_recipe_dependencies(path, d):
> -    from bb.parse import mark_dependency
> -
> -    gitdir = os.path.join(path, ".git")
> -
> -    # Force the recipe to be reparsed so the version gets bumped
> -    # if the active branch is switched, or if the branch changes.
> -    mark_dependency(d, os.path.join(gitdir, "HEAD"))
> -
> -    # Force a reparse if anything in the index changes.
> -    mark_dependency(d, os.path.join(gitdir, "index"))
> -
> -    try:
> -        ref = oe_run(d, ["git", "symbolic-ref", "-q", "HEAD"], cwd=gitdir).rstrip()
> -    except oe.process.CmdError:
> -        pass
> -    else:
> -        if ref:
> -            mark_dependency(d, os.path.join(gitdir, ref))
> -
> -    # Catch new tags.
> -    tagdir = os.path.join(gitdir, "refs", "tags")
> -    if os.path.exists(tagdir):
> -        mark_dependency(d, tagdir)
> -
> -python () {
> -    mark_recipe_dependencies(d.getVar("S", True), d)
> -}
> diff --git a/meta-oe/classes/srctree.bbclass b/meta-oe/classes/srctree.bbclass
> deleted file mode 100644
> index 1457e56..0000000
> --- a/meta-oe/classes/srctree.bbclass
> +++ /dev/null
> @@ -1,123 +0,0 @@
> -# Copyright (C) 2009 Chris Larson <clarson at kergoth.com>
> -# Released under the MIT license (see COPYING.MIT for the terms)
> -#
> -# srctree.bbclass enables operation inside of an existing source tree for a
> -# project, rather than using the fetch/unpack/patch idiom.
> -#
> -# By default, it expects that you're keeping the recipe(s) inside the
> -# aforementioned source tree, but you could override S to point at an external
> -# directory and place the recipes in a normal collection/overlay, if you so
> -# chose.
> -#
> -# It also provides some convenience python functions for assembling your
> -# do_clean, if you want to leverage things like 'git clean' to simplify the
> -# operation.
> -
> -
> -# Grab convenience methods & sane default for do_clean
> -inherit clean
> -
> -# Build here
> -S = "${FILE_DIRNAME}"
> -SRC_URI = ""
> -
> -def remove_tasks(deltasks, d):
> -    for task in filter(lambda k: d.getVarFlag(k, "task"), d.keys()):
> -        deps = d.getVarFlag(task, "deps")
> -        for preptask in deltasks:
> -            if preptask in deps:
> -                deps.remove(preptask)
> -        d.setVarFlag(task, "deps", deps)
> -
> -addtask configure after do_setscene
> -
> -def merge_tasks(d):
> -    """
> -    Merges all of the operations that occur prior to do_populate_sysroot
> -    into do_populate_sysroot.
> -
> -    This is necessary because of recipe variants (normal, native, cross,
> -    sdk).  If a bitbake run happens to want to build more than one of
> -    these variants in a single run, it's possible for them to step on one
> -    another's toes, due to the shared ${S}.  Interleaved
> -    configure/compile/install amongst variants will break things badly.
> -    """
> -    from itertools import chain
> -    from bb import note
> -
> -    def __gather_taskdeps(task, seen):
> -        for dep in d.getVarFlag(task, "deps"):
> -            if not dep in seen:
> -                __gather_taskdeps(dep, seen)
> -        if not task in seen:
> -            seen.append(task)
> -
> -    def gather_taskdeps(task):
> -        items = []
> -        __gather_taskdeps(task, items)
> -        return items
> -
> -    newtask = "do_populate_sysroot_post"
> -    mergedtasks = gather_taskdeps(newtask)
> -    mergedtasks.pop()
> -
> -    for task in (key for key in d.keys()
> -                 if d.getVarFlag(key, "task") and
> -                 not key in mergedtasks):
> -        deps = d.getVarFlag(task, "deps")
> -        for mergetask in mergedtasks:
> -            if mergetask in (d.getVarFlag(task, "recrdeptask"),
> -                             d.getVarFlag(task, "recdeptask"),
> -                             d.getVarFlag(task, "deptask")):
> -                continue
> -
> -            if mergetask in deps:
> -                deps.remove(mergetask)
> -                #note("removing dep on %s from %s" % (mergetask, task))
> -
> -                if not newtask in deps:
> -                    #note("adding dep on %s to %s" % (newtask, task))
> -                    deps.append(newtask)
> -        d.setVarFlag(task, "deps", deps)
> -
> -    # Pull cross recipe task deps over
> -    depends = []
> -    deptask = []
> -    for task in mergedtasks[:-1]:
> -        depends.append(d.getVarFlag(task, "depends") or "")
> -        deptask.append(d.getVarFlag(task, "deptask") or "")
> -
> -    d.setVarFlag("do_populate_sysroot_post", "depends", " ".join(depends))
> -    d.setVarFlag("do_populate_sysroot_post", "deptask", " ".join(deptask))
> -
> -python () {
> -    remove_tasks(["do_patch", "do_unpack", "do_fetch"], d)
> -    b = d.getVar("B", True)
> -    if not b or b == d.getVar("S", True):
> -        merge_tasks(d)
> -}
> -
> -# Manually run do_install & all of its deps
> -python do_populate_sysroot_post () {
> -    from os.path import exists
> -    from bb.build import exec_func, make_stamp
> -    from bb import note
> -
> -    stamp = d.getVar("STAMP", True)
> -
> -    def rec_exec_task(task, seen):
> -        for dep in d.getVarFlag(task, "deps"):
> -            if not dep in seen:
> -                rec_exec_task(dep, seen)
> -        seen.add(task)
> -        if not exists("%s.%s" % (stamp, task)):
> -            note("%s: executing task %s" % (d.getVar("PF", True), task))
> -            exec_func(task, d)
> -            flags = d.getVarFlags(task)
> -            if not flags.get('nostamp') and not flags.get('selfstamp'):
> -                make_stamp(task, d)
> -
> -    rec_exec_task("do_populate_sysroot", set())
> -}
> -addtask populate_sysroot_post after do_populate_sysroot
> -do_populate_sysroot_post[lockfiles] += "${S}/.lock"
> -- 
> 1.7.0.4
> 
> 
> 
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel at lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa at gmail.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.openembedded.org/pipermail/openembedded-devel/attachments/20111230/33facf59/attachment-0002.sig>


More information about the Openembedded-devel mailing list