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

Jason Wessel jason.wessel at windriver.com
Mon Mar 5 13:52:07 UTC 2018


On 03/03/2018 09:50 AM, Richard Purdie wrote:
> 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().
> 


I agree.

Reviewed-by: Jason Wessel <jason.wessel at windriver.com>

Attached is the revised bbfatal patch.

Jason.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-package_manager.py-Print-offending-package-instead-o.patch
Type: text/x-patch
Size: 2829 bytes
Desc: not available
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20180305/014693f2/attachment-0002.bin>


More information about the Openembedded-core mailing list