[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:56:30 UTC 2018


On 03/05/2018 07:52 AM, Jason Wessel wrote:
> 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.
> 

The attachment didn't have the old patch deleted so don't use that.  I sent it to the list separately.

Cheers,
Jason.



More information about the Openembedded-core mailing list