mirror of
https://git.yoctoproject.org/poky
synced 2026-09-19 00:49:33 +02:00
package.bbclass: Improve recommends dependency code to catch all dependencies for -dbg and -dev packages, not just some
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@1409 311d38ba-8fff-0310-9ca6-ca027cbcb966
This commit is contained in:
@@ -805,44 +805,51 @@ python package_depchains() {
|
|||||||
postfixes = (bb.data.getVar('DEPCHAIN_POST', d, 1) or '').split()
|
postfixes = (bb.data.getVar('DEPCHAIN_POST', d, 1) or '').split()
|
||||||
prefixes = (bb.data.getVar('DEPCHAIN_PRE', d, 1) or '').split()
|
prefixes = (bb.data.getVar('DEPCHAIN_PRE', d, 1) or '').split()
|
||||||
|
|
||||||
def pkg_addrrecs(pkg, base, func, d):
|
def pkg_addrrecs(pkg, base, getname, rdepends, d):
|
||||||
rdepends = explode_deps(bb.data.getVar('RDEPENDS_' + base, d, 1) or bb.data.getVar('RDEPENDS', d, 1) or "")
|
def packaged(pkg, d):
|
||||||
# bb.note('rdepends for %s is %s' % (base, rdepends))
|
return os.access(bb.data.expand('${STAGING_DIR}/pkgdata/runtime/%s.packaged' % pkg, d), os.R_OK)
|
||||||
|
|
||||||
rreclist = explode_deps(bb.data.getVar('RRECOMMENDS_' + pkg, d, 1) or bb.data.getVar('RRECOMMENDS', d, 1) or "")
|
rreclist = explode_deps(bb.data.getVar('RRECOMMENDS_' + pkg, d, 1) or bb.data.getVar('RRECOMMENDS', d, 1) or "")
|
||||||
|
|
||||||
for depend in rdepends:
|
for depend in rdepends:
|
||||||
split_depend = depend.split(' (')
|
pkgname = getname(depend)
|
||||||
name = split_depend[0].strip()
|
if not pkgname in rreclist and packaged(pkgname, d):
|
||||||
func(rreclist, name)
|
rreclist.append(pkgname)
|
||||||
|
|
||||||
|
#bb.note('setting: RRECOMMENDS_%s=%s' % (pkg, ' '.join(rreclist)))
|
||||||
bb.data.setVar('RRECOMMENDS_%s' % pkg, ' '.join(rreclist), d)
|
bb.data.setVar('RRECOMMENDS_%s' % pkg, ' '.join(rreclist), d)
|
||||||
|
|
||||||
def packaged(pkg, d):
|
def add_dep(list, dep):
|
||||||
return os.access(bb.data.expand('${STAGING_DIR}/pkgdata/runtime/%s.packaged' % pkg, d), os.R_OK)
|
dep = dep.split(' (')[0].strip()
|
||||||
|
if dep not in list:
|
||||||
|
list.append(dep)
|
||||||
|
|
||||||
|
rdepends = []
|
||||||
|
for dep in explode_deps(bb.data.getVar('RDEPENDS', d, 1) or ""):
|
||||||
|
add_dep(rdepends, dep)
|
||||||
|
|
||||||
|
for pkg in packages.split():
|
||||||
|
for dep in explode_deps(bb.data.getVar('RDEPENDS_' + pkg, d, 1) or ""):
|
||||||
|
add_dep(rdepends, dep)
|
||||||
|
|
||||||
|
#bb.note('rdepends is %s' % rdepends)
|
||||||
|
|
||||||
for pkg in packages.split():
|
for pkg in packages.split():
|
||||||
for postfix in postfixes:
|
for postfix in postfixes:
|
||||||
def func(list, name):
|
def getname(name):
|
||||||
pkg = '%s%s' % (name, postfix)
|
return '%s%s' % (name, postfix)
|
||||||
if not pkg in list:
|
|
||||||
if packaged(pkg, d):
|
|
||||||
list.append(pkg)
|
|
||||||
|
|
||||||
base = pkg[:-len(postfix)]
|
base = pkg[:-len(postfix)]
|
||||||
if pkg.endswith(postfix):
|
if pkg.endswith(postfix):
|
||||||
pkg_addrrecs(pkg, base, func, d)
|
pkg_addrrecs(pkg, base, getname, rdepends, d)
|
||||||
continue
|
|
||||||
|
|
||||||
for prefix in prefixes:
|
for prefix in prefixes:
|
||||||
def func(list, name):
|
def getname(name):
|
||||||
pkg = '%s%s' % (prefix, name)
|
return '%s%s' % (prefix, name)
|
||||||
if not pkg in list:
|
|
||||||
if packaged(pkg, d):
|
|
||||||
list.append(pkg)
|
|
||||||
|
|
||||||
base = pkg[len(prefix):]
|
base = pkg[len(prefix):]
|
||||||
if pkg.startswith(prefix):
|
if pkg.startswith(prefix):
|
||||||
pkg_addrrecs(pkg, base, func, d)
|
pkg_addrrecs(pkg, base, getname, rdepends, d)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user