summaryrefslogtreecommitdiffstats
path: root/meta/classes/license.bbclass
diff options
context:
space:
mode:
authorElizabeth Flanagan <elizabeth.flanagan@intel.com>2012-05-30 12:01:15 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-06-05 23:04:59 +0100
commit885e1f7e6886c783ae481afc7c08bac04843cae9 (patch)
tree1efc4f4d4cc1affd3490f5e3b50bdcc767407362 /meta/classes/license.bbclass
parentf25a6c09daf00bc7d1d6af00998340c76dcc91e1 (diff)
downloadpoky-885e1f7e6886c783ae481afc7c08bac04843cae9.tar.gz
license.bbclass: optimize pkg runtime data
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 (From OE-Core rev: 664bbf3207c229eef5ef94a08713a652f33a8466) Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com> Conflicts: meta/classes/license.bbclass Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes/license.bbclass')
-rw-r--r--meta/classes/license.bbclass44
1 files changed, 21 insertions, 23 deletions
diff --git a/meta/classes/license.bbclass b/meta/classes/license.bbclass
index a5374969dc..e6096a65b3 100644
--- a/meta/classes/license.bbclass
+++ b/meta/classes/license.bbclass
@@ -86,30 +86,28 @@ license_create_manifest() {
86 # list of installed packages is broken for deb 86 # list of installed packages is broken for deb
87 for pkg in ${INSTALLED_PKGS}; do 87 for pkg in ${INSTALLED_PKGS}; do
88 # not the best way to do this but licenses are not arch dependant iirc 88 # not the best way to do this but licenses are not arch dependant iirc
89 files=`find ${TMPDIR}/pkgdata/*/runtime -name ${pkg}| head -1` 89 filename=`ls ${TMPDIR}/pkgdata/*/runtime/${pkg}| head -1`
90 for filename in $files; do 90 pkged_pn="$(sed -n 's/^PN: //p' ${filename})"
91 pkged_pn="$(sed -n 's/^PN: //p' ${filename})" 91 pkged_lic="$(sed -n '/^LICENSE: /{ s/^LICENSE: //; s/[+|&()*]/ /g; s/ */ /g; p }' ${filename})"
92 pkged_lic="$(sed -n '/^LICENSE: /{ s/^LICENSE: //; s/[+|&()*]/ /g; s/ */ /g; p }' ${filename})" 92 pkged_pv="$(sed -n 's/^PV: //p' ${filename})"
93 pkged_pv="$(sed -n 's/^PV: //p' ${filename})" 93 # check to see if the package name exists in the manifest. if so, bail.
94 # check to see if the package name exists in the manifest. if so, bail. 94 if ! grep -q "PACKAGE NAME: ${pkg}" ${filename}; then
95 if ! grep -q "PACKAGE NAME: ${pkg}" ${filename}; then 95 # exclude local recipes
96 # exclude local recipes 96 if [ ! "${pkged_pn}" = "*locale*" ]; then
97 if [ ! "${pkged_pn}" = "*locale*" ]; then 97 echo "PACKAGE NAME:" ${pkg} >> ${LICENSE_DIRECTORY}/${IMAGE_NAME}/license.manifest
98 echo "PACKAGE NAME:" ${pkg} >> ${LICENSE_DIRECTORY}/${IMAGE_NAME}/license.manifest 98 echo "PACKAGE VERSION:" ${pkged_pv} >> ${LICENSE_DIRECTORY}/${IMAGE_NAME}/license.manifest
99 echo "PACKAGE VERSION:" ${pkged_pv} >> ${LICENSE_DIRECTORY}/${IMAGE_NAME}/license.manifest 99 echo "RECIPE NAME:" ${pkged_pn} >> ${LICENSE_DIRECTORY}/${IMAGE_NAME}/license.manifest
100 echo "RECIPE NAME:" ${pkged_pn} >> ${LICENSE_DIRECTORY}/${IMAGE_NAME}/license.manifest 100 echo "LICENSE: " >> ${LICENSE_DIRECTORY}/${IMAGE_NAME}/license.manifest
101 echo "LICENSE: " >> ${LICENSE_DIRECTORY}/${IMAGE_NAME}/license.manifest 101 for lic in ${pkged_lic}; do
102 for lic in ${pkged_lic}; do 102 if [ -e "${LICENSE_DIRECTORY}/${pkged_pn}/generic_${lic}" ]; then
103 if [ -e "${LICENSE_DIRECTORY}/${pkged_pn}/generic_${lic}" ]; then 103 echo ${lic}|sed s'/generic_//'g >> ${LICENSE_DIRECTORY}/${IMAGE_NAME}/license.manifest
104 echo ${lic}|sed s'/generic_//'g >> ${LICENSE_DIRECTORY}/${IMAGE_NAME}/license.manifest 104 else
105 else 105 echo "WARNING: The license listed, " ${lic} " was not in the licenses collected for " ${pkged_pn}>> ${LICENSE_DIRECTORY}/${IMAGE_NAME}/license.manifest
106 echo "WARNING: The license listed, " ${lic} " was not in the licenses collected for " ${pkged_pn}>> ${LICENSE_DIRECTORY}/${IMAGE_NAME}/license.manifest 106 fi
107 fi 107 done
108 done 108 echo "" >> ${LICENSE_DIRECTORY}/${IMAGE_NAME}/license.manifest
109 echo "" >> ${LICENSE_DIRECTORY}/${IMAGE_NAME}/license.manifest
110 fi
111 fi 109 fi
112 done 110 fi
113 done 111 done
114 112
115 # Two options here: 113 # Two options here: