[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