[oe-commits] Bruce Ashfield : linux-yocto: locate and use out of tree features specified on the SRC_URI

git at git.openembedded.org git at git.openembedded.org
Wed Feb 8 00:50:05 UTC 2012


Module: openembedded-core.git
Branch: master
Commit: 3e2ce87566124db8c78472f9a4f00ab26410f213
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=3e2ce87566124db8c78472f9a4f00ab26410f213

Author: Bruce Ashfield <bruce.ashfield at windriver.com>
Date:   Wed Feb  1 09:25:03 2012 -0500

linux-yocto: locate and use out of tree features specified on the SRC_URI

In a similar manner to calling the patch.bbclass to locate patches that
were listed on the SRC_URI, it is also useful to query about 'other' items
that are on the SRC_URI. In the case of linux-yocto, it allows us to
know about kernel features that were specific on the URI and then apply
them to the current tree.

Signed-off-by: Bruce Ashfield <bruce.ashfield at windriver.com>

---

 meta/classes/kernel-yocto.bbclass |   21 +++++++++++++++++++++
 1 files changed, 21 insertions(+), 0 deletions(-)

diff --git a/meta/classes/kernel-yocto.bbclass b/meta/classes/kernel-yocto.bbclass
index 7fdefcf..3130bf4 100644
--- a/meta/classes/kernel-yocto.bbclass
+++ b/meta/classes/kernel-yocto.bbclass
@@ -10,6 +10,16 @@ def find_patches(d):
 
 	return patch_list
 
+def find_sccs(d):
+	sources=src_patches(d, True)
+	sources_list=[]
+	for s in sources:
+		base, ext = os.path.splitext(os.path.basename(s))
+		if ext and ext in ('.scc'):
+			sources_list.append(s)
+
+	return sources_list
+
 do_patch() {
 	cd ${S}
 	if [ -f ${WORKDIR}/defconfig ]; then
@@ -42,6 +52,7 @@ do_patch() {
 	fi
 
 	patches="${@" ".join(find_patches(d))}"
+	sccs="${@" ".join(find_sccs(d))}"
 
 	# This loops through all patches, and looks for directories that do
 	# not already have feature descriptions. If a directory doesn't have
@@ -81,6 +92,16 @@ do_patch() {
 		fi
 	done
 
+	# look for any found scc files, and ensure they are added to the list
+	# of directories passsed to updateme
+	for s in ${sccs}; do
+		sdir=`dirname ${s}`
+		echo ${patch_dirs} | grep -q ${sdir}
+		if [ $? -ne 0 ]; then
+			patch_dirs="${patch_dirs} ${sdir}"
+		fi
+	done
+
 	# go through the patch directories and look for any scc feature files
 	# that were constructed above. If one is found, rename it to ".scc" so
 	# the kernel patching can see it.





More information about the Openembedded-commits mailing list