This fixes an ugly way I was trying to find pkg runtime
data for package and license manifest creation.

rootfs generation times for core-image-minimal:

Prior to patch
real    0m41.570s
user    1m40.466s
sys     0m6.768s

With patch
real    0m27.527s
user    0m9.833s
sys     0m3.496s

Signed-off-by: Elizabeth Flanagan <[email protected]>
---
 meta/classes/license.bbclass |   40 +++++++++++++++++++---------------------
 1 files changed, 19 insertions(+), 21 deletions(-)

diff --git a/meta/classes/license.bbclass b/meta/classes/license.bbclass
index 6c4a673..d93ddf9 100644
--- a/meta/classes/license.bbclass
+++ b/meta/classes/license.bbclass
@@ -86,28 +86,26 @@ license_create_manifest() {
        # list of installed packages is broken for deb
        for pkg in ${INSTALLED_PKGS}; do
                # not the best way to do this but licenses are not arch 
dependant iirc
-               files=`find ${TMPDIR}/pkgdata/*/runtime -name ${pkg}| head -1`
-               for filename in $files; do
-                       pkged_pn="$(sed -n 's/^PN: //p' ${filename})"
-                       pkged_lic="$(sed -n '/^LICENSE: /{ s/^LICENSE: //; 
s/[+|&()*]/ /g; s/  */ /g; p }' ${filename})"
-                       # check to see if the package name exists in the 
manifest. if so, bail.
-                       if ! grep -q "PACKAGE NAME: ${pkg}" ${filename}; then
-                               # exclude local recipes
-                               if [ ! "${pkged_pn}" = "*locale*" ]; then
-                                       echo "PACKAGE NAME:" ${pkg} >> 
${LICENSE_DIRECTORY}/${IMAGE_NAME}/license.manifest
-                                       echo "RECIPE NAME:" ${pkged_pn} >> 
${LICENSE_DIRECTORY}/${IMAGE_NAME}/license.manifest
-                                       echo "LICENSE: " >> 
${LICENSE_DIRECTORY}/${IMAGE_NAME}/license.manifest
-                                       for lic in ${pkged_lic}; do
-                                               if [ -e 
"${LICENSE_DIRECTORY}/${pkged_pn}/generic_${lic}" ]; then
-                                                       echo ${lic}|sed 
s'/generic_//'g >> ${LICENSE_DIRECTORY}/${IMAGE_NAME}/license.manifest
-                                               else
-                                                       echo "WARNING: The 
license listed, " ${lic} " was not in the licenses collected for " 
${pkged_pn}>> ${LICENSE_DIRECTORY}/${IMAGE_NAME}/license.manifest
-                                               fi
-                                       done
-                                       echo "" >> 
${LICENSE_DIRECTORY}/${IMAGE_NAME}/license.manifest
-                               fi
+               filename=`ls ${TMPDIR}/pkgdata/*/runtime/${pkg}| head -1`
+               pkged_pn="$(sed -n 's/^PN: //p' ${filename})"
+               pkged_lic="$(sed -n '/^LICENSE: /{ s/^LICENSE: //; s/[+|&()*]/ 
/g; s/  */ /g; p }' ${filename})"
+               # check to see if the package name exists in the manifest. if 
so, bail.
+               if ! grep -q "PACKAGE NAME: ${pkg}" ${filename}; then
+                       # exclude local recipes
+                       if [ ! "${pkged_pn}" = "*locale*" ]; then
+                               echo "PACKAGE NAME:" ${pkg} >> 
${LICENSE_DIRECTORY}/${IMAGE_NAME}/license.manifest
+                               echo "RECIPE NAME:" ${pkged_pn} >> 
${LICENSE_DIRECTORY}/${IMAGE_NAME}/license.manifest
+                               echo "LICENSE: " >> 
${LICENSE_DIRECTORY}/${IMAGE_NAME}/license.manifest
+                               for lic in ${pkged_lic}; do
+                                       if [ -e 
"${LICENSE_DIRECTORY}/${pkged_pn}/generic_${lic}" ]; then
+                                               echo ${lic}|sed s'/generic_//'g 
>> ${LICENSE_DIRECTORY}/${IMAGE_NAME}/license.manifest
+                                       else
+                                               echo "WARNING: The license 
listed, " ${lic} " was not in the licenses collected for " ${pkged_pn}>> 
${LICENSE_DIRECTORY}/${IMAGE_NAME}/license.manifest
+                                       fi
+                               done
+                               echo "" >> 
${LICENSE_DIRECTORY}/${IMAGE_NAME}/license.manifest
                        fi
-               done
+               fi
        done
 
        # Two options here:
-- 
1.7.5.4


_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

Reply via email to