diff options
author | Elizabeth Flanagan <elizabeth.flanagan@intel.com> | 2012-05-30 12:01:15 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-06-05 23:04:59 +0100 |
commit | 885e1f7e6886c783ae481afc7c08bac04843cae9 (patch) | |
tree | 1efc4f4d4cc1affd3490f5e3b50bdcc767407362 /meta | |
parent | f25a6c09daf00bc7d1d6af00998340c76dcc91e1 (diff) | |
download | poky-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')
-rw-r--r-- | meta/classes/license.bbclass | 44 |
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: |