isoimage-isohybrid.py: fix cpio working directory

Take `pwd` to be <initial-dir>. The %s path is relative to it. The value
of %s is "output_folder/build". The current code works as follows:

Changing directory to %s and finding the sources (after cd'ing) to cpio
with output redirection to %s/initrd.cpio triggers the following error

"Error: exec_cmd: cd output_folder/build/INITRD && find . | cpio -o -H
newc >output_folder/build/initrd.cpio  returned '1' instead of 0"

This happens because after the cd, `pwd` is <initial-dir>/%s and by the
redirect we write the result to to <initial-dir>/%s/%s/initrd.cpio which
obviously does not exist.

Fix this by getting the sources with "find %s" instead of "cd && find ."

(From OE-Core rev: 07fa4783566d22d46ce719a621eee5404932dbbe)

Signed-off-by: Ioan-Adrian Ratiu <adrian.ratiu@ni.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Ioan-Adrian Ratiu 2016-02-05 15:36:57 +02:00 committed by Richard Purdie
parent 8bedf767aa
commit eb134c6ee6

View File

@ -174,7 +174,7 @@ class IsoImagePlugin(SourcePlugin):
else:
msger.error("Couldn't find or build initrd, exiting.\n")
exec_cmd("cd %s && find . | cpio -o -H newc >%s/initrd.cpio " \
exec_cmd("find %s | cpio -o -H newc >%s/initrd.cpio " \
% (initrd_dir, cr_workdir), as_shell=True)
exec_cmd("gzip -f -9 -c %s/initrd.cpio > %s" \
% (cr_workdir, initrd), as_shell=True)