]> code.ossystems Code Review - openembedded-core.git/commitdiff
package.bbclass: Create symlinks for packages with different packaged name
authorAndrei Gherzan <andrei@gherzan.ro>
Mon, 23 Jul 2012 21:42:24 +0000 (22:42 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 26 Jul 2012 13:39:48 +0000 (14:39 +0100)
While generating license.manifest package information is searched in:
filename=`ls ${TMPDIR}/pkgdata/*/runtime/${pkg}| head -1`
This is ok as long as package name is the same as the package name
after packaging.
For example dbus is packaged as dbus-1. So, searching
ls ${TMPDIR}/pkgdata/*/runtime/dbus-1 will fail because there is no file
with this package name.

Create a symlink to the pkgdata file in a runtime-reverse directory so
that these reverse lookups are possible.

Fixes [YOCTO #2638].

Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
meta/classes/license.bbclass
meta/classes/package.bbclass

index a2721ab0af31d11034e8a4fd339a551faf58202d..231b4a3ad1c6bb1f7a40a8108c1002c7787786ae 100644 (file)
@@ -86,7 +86,7 @@ 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
-               filename=`ls ${TMPDIR}/pkgdata/*/runtime/${pkg}| head -1`
+               filename=`ls ${TMPDIR}/pkgdata/*/runtime-reverse/${pkg}| head -1`
                pkged_pn="$(sed -n 's/^PN: //p' ${filename})"
                pkged_lic="$(sed -n '/^LICENSE: /{ s/^LICENSE: //; s/[+|&()*]/ /g; s/  */ /g; p }' ${filename})"
                pkged_pv="$(sed -n 's/^PV: //p' ${filename})"
index fc834242dacb72376d20ec020d710e5cee7573e6..ea199d33bd9aff9b2cbdac9e1fa36e65312f5523 100644 (file)
@@ -1124,6 +1124,10 @@ python emit_pkgdata() {
         sf.write('%s_%s: %s\n' % ('PKGSIZE', pkg, get_directory_size(pkgdest + "/%s" % pkg)))
         sf.close()
 
+        # Symlinks needed for reverse lookups (from the final package name)
+        pkgval = d.getVar('PKG_%s' % (pkg), True)
+        subdata_sym = pkgdatadir + "/runtime-reverse/%s" % pkgval
+        oe.path.symlink("../runtime/%s" % pkg, subdata_sym, True)
 
         allow_empty = d.getVar('ALLOW_EMPTY_%s' % pkg, True)
         if not allow_empty:
@@ -1137,7 +1141,7 @@ python emit_pkgdata() {
 
     bb.utils.unlockfile(lf)
 }
-emit_pkgdata[dirs] = "${PKGDESTWORK}/runtime"
+emit_pkgdata[dirs] = "${PKGDESTWORK}/runtime ${PKGDESTWORK}/runtime-reverse"
 
 ldconfig_postinst_fragment() {
 if [ x"$D" = "x" ]; then