diff options
author | Mikko Ylinen <mikko.ylinen@linux.intel.com> | 2017-06-05 17:42:51 +0300 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-06-06 19:52:25 +0100 |
commit | 069b12591439b16e7b11394157d0686cf423f898 (patch) | |
tree | 93c7af266321083211a6b082bdeb07f735f8cab2 /meta/classes | |
parent | 1c8cfd074ba2c888e57af1792ed834eb267d70a1 (diff) | |
download | poky-069b12591439b16e7b11394157d0686cf423f898.tar.gz |
archiver.bbclass: adapt do_unpack_and_patch to RSS
do_unpack_and_patch was not correctly run until recently
("archiver.bbclass: various fixes for original+diff mode") but
with the fix applied, the errors we get indicate the function
is not adapted to work with recipe specific sysroots.
do_unpack_and_patch sets WORKDIR to ARCHIVER_WORKDIR which
affects all path settings relative to WORKDIR, inluding the paths
to recipes' sysroots. IOW, when do_unpack and do_patch are run, they
cannot find the necessary native tools and files located in the
sysroot (e.g., quiltrc) because the paths point to ARCHIVER_WORKDIR.
Adapt do_unpack_and_patch to RSS by restoring the original
STAGING_DIR_NATIVE after WORKDIR is changed to ARCHIVER_WORKDIR.
(From OE-Core rev: db7d2cc5a4df3c2077ba874c7ae395c73fd9ed13)
Signed-off-by: Mikko Ylinen <mikko.ylinen@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes')
-rw-r--r-- | meta/classes/archiver.bbclass | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/meta/classes/archiver.bbclass b/meta/classes/archiver.bbclass index 37a21fe61b..1319f4df08 100644 --- a/meta/classes/archiver.bbclass +++ b/meta/classes/archiver.bbclass | |||
@@ -315,12 +315,15 @@ python do_unpack_and_patch() { | |||
315 | return | 315 | return |
316 | ar_outdir = d.getVar('ARCHIVER_OUTDIR') | 316 | ar_outdir = d.getVar('ARCHIVER_OUTDIR') |
317 | ar_workdir = d.getVar('ARCHIVER_WORKDIR') | 317 | ar_workdir = d.getVar('ARCHIVER_WORKDIR') |
318 | ar_sysroot_native = d.getVar('STAGING_DIR_NATIVE') | ||
318 | pn = d.getVar('PN') | 319 | pn = d.getVar('PN') |
319 | 320 | ||
320 | # The kernel class functions require it to be on work-shared, so we dont change WORKDIR | 321 | # The kernel class functions require it to be on work-shared, so we dont change WORKDIR |
321 | if not (bb.data.inherits_class('kernel-yocto', d) or pn.startswith('gcc-source')): | 322 | if not (bb.data.inherits_class('kernel-yocto', d) or pn.startswith('gcc-source')): |
322 | # Change the WORKDIR to make do_unpack do_patch run in another dir. | 323 | # Change the WORKDIR to make do_unpack do_patch run in another dir. |
323 | d.setVar('WORKDIR', ar_workdir) | 324 | d.setVar('WORKDIR', ar_workdir) |
325 | # Restore the original path to recipe's native sysroot (it's relative to WORKDIR). | ||
326 | d.setVar('STAGING_DIR_NATIVE', ar_sysroot_native) | ||
324 | 327 | ||
325 | # The changed 'WORKDIR' also caused 'B' changed, create dir 'B' for the | 328 | # The changed 'WORKDIR' also caused 'B' changed, create dir 'B' for the |
326 | # possibly requiring of the following tasks (such as some recipes's | 329 | # possibly requiring of the following tasks (such as some recipes's |