From 8a1d25cdce6dd7e3f03587382127676f95dadf30 Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Wed, 12 Dec 2012 22:56:39 -0600 Subject: 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 Signed-off-by: Richard Purdie --- scripts/lib/bsp/kernel.py | 51 +++++++++++++++++++++++++++++++---------------- 1 file changed, 34 insertions(+), 17 deletions(-) (limited to 'scripts') diff --git a/scripts/lib/bsp/kernel.py b/scripts/lib/bsp/kernel.py index f2ec9fd64f..d2e4f403d6 100644 --- a/scripts/lib/bsp/kernel.py +++ b/scripts/lib/bsp/kernel.py @@ -295,11 +295,11 @@ def find_current_kernel(bsp_layer, machine): 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 - of individual components, and the start/end positions of the - SRC_URI statement, so it can be regenerated in the same position. - If start_end_only is True, don't return the list of elements, only - the start and end positions. + Parse the SRC_URI append in the kernel .bb or .bbappend, returing + a list of individual components, and the start/end positions of + the SRC_URI statement, so it can be regenerated in the same + position. If start_end_only is True, don't return the list of + elements, only the start and end positions. Returns (SRC_URI start line, SRC_URI end_line, list of split 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." 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 = "" in_src_uri = False lines = f.readlines() @@ -561,12 +569,16 @@ def kernel_contents_changed(scripts_path, machine): print "Couldn't determine the kernel for this BSP, exiting." sys.exit(1) - kernel_bbappend = os.path.join(layer, "recipes-kernel/linux/" + kernel + ".bbappend") - kernel_bbappend_prev = kernel_bbappend + ".prev" - shutil.copyfile(kernel_bbappend, kernel_bbappend_prev) + 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): + return + kernel_bbfile_prev = kernel_bbfile + ".prev" + shutil.copyfile(kernel_bbfile, kernel_bbfile_prev) - ifile = open(kernel_bbappend_prev, "r") - ofile = open(kernel_bbappend, "w") + ifile = open(kernel_bbfile_prev, "r") + ofile = open(kernel_bbfile, "w") ifile_lines = ifile.readlines() for ifile_line in ifile_lines: 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." 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) - kernel_bbappend_prev = kernel_bbappend + ".prev" - shutil.copyfile(kernel_bbappend, kernel_bbappend_prev) - ifile = open(kernel_bbappend_prev, "r") - ofile = open(kernel_bbappend, "w") + kernel_bbfile_prev = kernel_bbfile + ".prev" + shutil.copyfile(kernel_bbfile, kernel_bbfile_prev) + ifile = open(kernel_bbfile_prev, "r") + ofile = open(kernel_bbfile, "w") ifile_lines = ifile.readlines() if uri_start_line == -1: -- cgit v1.2.3-54-g00ecf