[OE-core] [PATCH] image.bbclass: Use deltask instead of noexec for package_write_rpm

Richard Purdie richard.purdie at linuxfoundation.org
Sat Mar 3 15:50:15 UTC 2018


On Sat, 2018-03-03 at 12:46 -0300, Otavio Salvador wrote:
> On Fri, Mar 2, 2018 at 5:27 PM, Jason Wessel <jason.wessel at windriver.
> com> wrote:
> > 
> > If you install an image into another image (this is the case for
> > custom initrd for example), it will fail with a non obvious python
> > backtrace.  This patch modifies the package_manager.py print which
> > package causes the failure for the future, if it is missing a
> > manifest.
> > 
> > The error you get looks like this:
> > 
> > oe-core/meta/lib/oe/package_manager.py', lineno: 534, function:
> > create_packages_dir
> >      0530:
> >      0531:    for dep in rpmdeps:
> >      0532:        c = taskdepdata[dep][0]
> >      0533:        manifest, d2 =
> > oe.sstatesig.find_sstate_manifest(c, taskdepdata[dep][2], taskname,
> > d, multilibs)
> >  *** 0534:        if not os.path.exists(manifest):
> >      0535:            continue
> >      0536:        with open(manifest, "r") as f:
> >      0537:            for l in f:
> >      0538:                l = l.strip()
> > File: '/usr/lib/python3.5/genericpath.py', lineno: 19, function:
> > exists
> >      0015:# This is false for dangling symbolic links on systems
> > that support them.
> >      0016:def exists(path):
> >      0017:    """Test whether a path exists.  Returns False for
> > broken symbolic links"""
> >      0018:    try:
> >  *** 0019:        os.stat(path)
> >      0020:    except OSError:
> >      0021:        return False
> >      0022:    return True
> >      0023:
> > Exception: TypeError: stat: can't specify None for path argument
> > 
> > The root cause of the problem was determined to be the noexec
> > clause
> > in the image.bbclass.  When the package_write_rpm task runs it
> > expects
> > that a manifest will be generated.  Not running the task eliminates
> > the problem.
> > 
> > Signed-off-by: Jason Wessel <jason.wessel at windriver.com>
> What about the other image types?

FWIW I'm testing:

http://git.yoctoproject.org/cgit.cgi/poky/commit/?h=master-next&id=d77755d02f23ba410a2c55596c4538b8c5c2f63a

(but haven't posted it yet, I will shortly, just wanted to check it was
roughly going to work first).

I'd propose taking my patch above along with Jason's patch rewritten to
add the bb.fatal().

Cheers,

Richard






More information about the Openembedded-core mailing list