yocto-kernel: handle SRC_URIs in .bb files
Previously we assumed we were always dealing with .bbappends. With custom kernels, we now have SRC_URIs in .bb files, so add .bb files to the list of file types we examine and modify. (From meta-yocto rev: 4200c5c99b7d61e05b0d9d1580e267e7d6d49760) Signed-off-by: Tom Zanussi <tom.zanussi@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
6c7f426663
commit
8a1d25cdce
|
@ -295,11 +295,11 @@ def find_current_kernel(bsp_layer, machine):
|
||||||
|
|
||||||
def find_bsp_kernel_src_uri(scripts_path, machine, start_end_only = False):
|
def find_bsp_kernel_src_uri(scripts_path, machine, start_end_only = False):
|
||||||
"""
|
"""
|
||||||
Parse the SRC_URI append in the kernel .bbappend, returing a list
|
Parse the SRC_URI append in the kernel .bb or .bbappend, returing
|
||||||
of individual components, and the start/end positions of the
|
a list of individual components, and the start/end positions of
|
||||||
SRC_URI statement, so it can be regenerated in the same position.
|
the SRC_URI statement, so it can be regenerated in the same
|
||||||
If start_end_only is True, don't return the list of elements, only
|
position. If start_end_only is True, don't return the list of
|
||||||
the start and end positions.
|
elements, only the start and end positions.
|
||||||
|
|
||||||
Returns (SRC_URI start line, SRC_URI end_line, list of split
|
Returns (SRC_URI start line, SRC_URI end_line, list of split
|
||||||
SRC_URI items).
|
SRC_URI items).
|
||||||
|
@ -318,9 +318,17 @@ def find_bsp_kernel_src_uri(scripts_path, machine, start_end_only = False):
|
||||||
print "Couldn't determine the kernel for this BSP, exiting."
|
print "Couldn't determine the kernel for this BSP, exiting."
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
kernel_bbappend = os.path.join(layer, "recipes-kernel/linux/" + kernel + ".bbappend")
|
kernel_bbfile = os.path.join(layer, "recipes-kernel/linux/" + kernel + ".bbappend")
|
||||||
|
try:
|
||||||
|
f = open(kernel_bbfile, "r")
|
||||||
|
except IOError:
|
||||||
|
kernel_bbfile = os.path.join(layer, "recipes-kernel/linux/" + kernel + ".bb")
|
||||||
|
try:
|
||||||
|
f = open(kernel_bbfile, "r")
|
||||||
|
except IOError:
|
||||||
|
print "Couldn't find a .bb or .bbappend file for this BSP's kernel, exiting."
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
f = open(kernel_bbappend, "r")
|
|
||||||
src_uri_line = ""
|
src_uri_line = ""
|
||||||
in_src_uri = False
|
in_src_uri = False
|
||||||
lines = f.readlines()
|
lines = f.readlines()
|
||||||
|
@ -561,12 +569,16 @@ def kernel_contents_changed(scripts_path, machine):
|
||||||
print "Couldn't determine the kernel for this BSP, exiting."
|
print "Couldn't determine the kernel for this BSP, exiting."
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
kernel_bbappend = os.path.join(layer, "recipes-kernel/linux/" + kernel + ".bbappend")
|
kernel_bbfile = os.path.join(layer, "recipes-kernel/linux/" + kernel + ".bbappend")
|
||||||
kernel_bbappend_prev = kernel_bbappend + ".prev"
|
if not os.path.isfile(kernel_bbfile):
|
||||||
shutil.copyfile(kernel_bbappend, kernel_bbappend_prev)
|
kernel_bbfile = os.path.join(layer, "recipes-kernel/linux/" + kernel + ".bb")
|
||||||
|
if not os.path.isfile(kernel_bbfile):
|
||||||
|
return
|
||||||
|
kernel_bbfile_prev = kernel_bbfile + ".prev"
|
||||||
|
shutil.copyfile(kernel_bbfile, kernel_bbfile_prev)
|
||||||
|
|
||||||
ifile = open(kernel_bbappend_prev, "r")
|
ifile = open(kernel_bbfile_prev, "r")
|
||||||
ofile = open(kernel_bbappend, "w")
|
ofile = open(kernel_bbfile, "w")
|
||||||
ifile_lines = ifile.readlines()
|
ifile_lines = ifile.readlines()
|
||||||
for ifile_line in ifile_lines:
|
for ifile_line in ifile_lines:
|
||||||
if ifile_line.strip().startswith("PR"):
|
if ifile_line.strip().startswith("PR"):
|
||||||
|
@ -588,14 +600,19 @@ def write_kernel_src_uri(scripts_path, machine, src_uri):
|
||||||
print "Couldn't determine the kernel for this BSP, exiting."
|
print "Couldn't determine the kernel for this BSP, exiting."
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
kernel_bbappend = os.path.join(layer, "recipes-kernel/linux/" + kernel + ".bbappend")
|
kernel_bbfile = os.path.join(layer, "recipes-kernel/linux/" + kernel + ".bbappend")
|
||||||
|
if not os.path.isfile(kernel_bbfile):
|
||||||
|
kernel_bbfile = os.path.join(layer, "recipes-kernel/linux/" + kernel + ".bb")
|
||||||
|
if not os.path.isfile(kernel_bbfile):
|
||||||
|
print "Couldn't find a .bb or .bbappend file for this BSP's kernel, exiting."
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
(uri_start_line, uri_end_line, unused) = find_bsp_kernel_src_uri(scripts_path, machine, True)
|
(uri_start_line, uri_end_line, unused) = find_bsp_kernel_src_uri(scripts_path, machine, True)
|
||||||
|
|
||||||
kernel_bbappend_prev = kernel_bbappend + ".prev"
|
kernel_bbfile_prev = kernel_bbfile + ".prev"
|
||||||
shutil.copyfile(kernel_bbappend, kernel_bbappend_prev)
|
shutil.copyfile(kernel_bbfile, kernel_bbfile_prev)
|
||||||
ifile = open(kernel_bbappend_prev, "r")
|
ifile = open(kernel_bbfile_prev, "r")
|
||||||
ofile = open(kernel_bbappend, "w")
|
ofile = open(kernel_bbfile, "w")
|
||||||
|
|
||||||
ifile_lines = ifile.readlines()
|
ifile_lines = ifile.readlines()
|
||||||
if uri_start_line == -1:
|
if uri_start_line == -1:
|
||||||
|
|
Loading…
Reference in New Issue