base.bbclass, package.bbclass: don destrucively set RDEPENDS and RRECOMMENDS, from...
authorKoen Kooi <koen@openembedded.org>
Sat, 28 Oct 2006 08:56:37 +0000 (08:56 +0000)
committerKoen Kooi <koen@openembedded.org>
Sat, 28 Oct 2006 08:56:37 +0000 (08:56 +0000)
* poky rev 823: 'package.bbclass: depchains: don't -destructively- set the pkg's RRECOMMENDS.'
* poky rev 824: 'base.bbclass: depchains: don't -destructively- set the pkg's RRECOMMENDS.'

classes/base.bbclass
classes/package.bbclass

index eda1b23..f4a0076 100644 (file)
@@ -616,6 +616,10 @@ def explode_deps(s):
                        r.append(i)
        return r
 
+def packaged(pkg, d):
+       import os, bb
+       return os.access(bb.data.expand('${STAGING_DIR}/pkgdata/runtime/%s.packaged' % pkg, d), os.R_OK)
+
 def read_pkgdatafile(fn):
        pkgdata = {}
 
index 652b60e..4909fc6 100644 (file)
@@ -808,7 +808,7 @@ python package_depchains() {
        def pkg_addrrecs(pkg, base, func, d):
                rdepends = explode_deps(bb.data.getVar('RDEPENDS_' + base, d, 1) or bb.data.getVar('RDEPENDS', d, 1) or "")
                # bb.note('rdepends for %s is %s' % (base, rdepends))
-               rreclist = []
+               rreclist = explode_deps(bb.data.getVar('RRECOMMENDS_' + pkg, d, 1) or bb.data.getVar('RRECOMMENDS', d, 1) or "")
 
                for depend in rdepends:
                        split_depend = depend.split(' (')
@@ -824,8 +824,9 @@ python package_depchains() {
                for postfix in postfixes:
                        def func(list, name):
                                pkg = '%s%s' % (name, postfix)
-                               if packaged(pkg, d):
-                                       list.append(pkg)
+                               if not pkg in list:
+                                       if packaged(pkg, d):
+                                               list.append(pkg)
 
                        base = pkg[:-len(postfix)]
                        if pkg.endswith(postfix):
@@ -835,8 +836,9 @@ python package_depchains() {
                for prefix in prefixes:
                        def func(list, name):
                                pkg = '%s%s' % (prefix, name)
-                               if packaged(pkg, d):
-                                       list.append(pkg)
+                               if not pkg in list:
+                                       if packaged(pkg, d):
+                                               list.append(pkg)
 
                        base = pkg[len(prefix):]
                        if pkg.startswith(prefix):