It will now additionally create a new file which will
contain list of licenses of installed packages in a given
image.

The fix to get the package name is there because the packages
which contains epoch PE in the version string were not
being constructed correctly since opkg-cl would dump
'epoch:version' for Version string but the real ipk
did not have 'epoch' in its name. e.g.

for armv5te/libopkg0_0.1.8+svnr609-r2_armv5te.ipk

Package: libopkg0
Version: 1:0.1.8+svnr609-r2

as you can see version contained in ipk is not
containing the 'epoch'

so we have to eliminate 'epoch' from version we get from
opkg-cl to for the installed ipk name correctly.

Signed-off-by: Khem Raj <raj.k...@gmail.com>
---
 meta-oe/classes/testlab.bbclass |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/meta-oe/classes/testlab.bbclass b/meta-oe/classes/testlab.bbclass
index cd59782..fd37242 100644
--- a/meta-oe/classes/testlab.bbclass
+++ b/meta-oe/classes/testlab.bbclass
@@ -36,7 +36,10 @@ if [ -e  ${IMAGE_ROOTFS}/etc/opkg ] && [ 
"${ONLINE_PACKAGE_MANAGEMENT}" = "full"
        echo -e "digraph depends {\n    node [shape=plaintext]" > 
${TESTLAB_DIR}/depends.dot
 
        for pkg in $(opkg-cl ${IPKG_ARGS} list_installed | awk '{print $1}') ; 
do 
-               opkg-cl ${IPKG_ARGS} info $pkg | grep -B 7 -A 7 "^Status.* 
\(\(installed\)\|\(unpacked\)\)" | awk '/^Package/ {printf $2"_"} /^Version/ 
{printf $2"_"} /^Archi/ {print $2".ipk"}'  >> 
${TESTLAB_DIR}/installed-packages.txt
+               name=`opkg-cl ${IPKG_ARGS} info $pkg | grep -B 7 -A 7 
"^Status.* \(\(installed\)\|\(unpacked\)\)" | awk '/^Package/ {printf $2"_"}'`
+               name=$name`opkg-cl ${IPKG_ARGS} info $pkg | grep -B 7 -A 7 
"^Status.* \(\(installed\)\|\(unpacked\)\)" | awk -F: '/^Version/ {printf 
$NF"_"}' | sed 's/^\s*//g'`
+               name=$name`opkg-cl ${IPKG_ARGS} info $pkg | grep -B 7 -A 7 
"^Status.* \(\(installed\)\|\(unpacked\)\)" | awk '/^Archi/ {print $2".ipk"}'`
+               echo $name >>${TESTLAB_DIR}/installed-packages.txt
 
                for depends in $(opkg-cl ${IPKG_ARGS} info $pkg | grep 
^Depends) ; do 
                        echo "$pkg OPP $depends;" | grep -v "(" | grep -v ")" | 
grep -v "$pkg OPP Depends" | sed -e 's:,::g' -e 's:-:_:g' -e 's:\.:_:g' -e 
's:+::g' |sed 's:OPP:->:g' >> ${TESTLAB_DIR}/depends.dot
@@ -65,6 +68,9 @@ if [ -e  ${IMAGE_ROOTFS}/etc/opkg ] && [ 
"${ONLINE_PACKAGE_MANAGEMENT}" = "full"
                du -k $(find ${DEPLOY_DIR_IPK} -name "$file") | head -n1
        done | grep "\.ipk" | sed -e s:${DEPLOY_DIR_IPK}::g | sort -n -r | awk 
'{print $1 "\tKiB " $2}' > ${TESTLAB_DIR}/installed-package-sizes.txt
 
+       for file in $(cat ${TESTLAB_DIR}/installed-packages.txt) ; do
+               echo "`find ${DEPLOY_DIR_IPK} -name "$file" | xargs 
opkg-list-fields | grep ^License | sed -e 's/^.*:[ \t]*//g'`" '=' $file
+       done | awk -F= '{printf("%50s:%s\n", $1, $2)}' > 
${TESTLAB_DIR}/installed-package-licenses.txt
        # Log results to a git controlled directory structure than can be 
pushed to a remote location
        if [ "${TESTLABLOG}" = "remote" ] && [ -n "${TESTLABREMOTEDIR}" ] ; then
                TESTLABLOGDIR="${MACHINE_ARCH}/${TCLIBC}/${IMAGE_BASENAME}"
-- 
1.7.4.1


_______________________________________________
Openembedded-devel mailing list
Openembedded-devel@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel

Reply via email to