On Wed, Apr 03, 2013 at 12:14:33PM +0200, Martin Jansa wrote: > * when PACKAGE_ARCH is changed e.g. from MACHINE_ARCH to TUNE_PKGARCH > get_subpkgedata_fn is still reading old MACHINE_ARCH directory instead of > newer with TUNE_PKGARCH
This is too strict in some cases, e.g.:
ERROR: More then one pkgdata dir found for pkg 'opkg-collateral'
(
'/OE/shr-core/tmp-eglibc/pkgdata/cortexa8-vfp-neon-oe-linux-gnueabi/runtime/opkg-collateral',
'/OE/shr-core/tmp-eglibc/pkgdata/armv5te-oe-linux-gnueabi/runtime/opkg-collateral'),
returning first
Why do we need to look in all pkgdatadirs? Why not just PACKAGE_ARCH?
> ---
> meta/lib/oe/packagedata.py | 13 +++++++++++--
> 1 file changed, 11 insertions(+), 2 deletions(-)
>
> diff --git a/meta/lib/oe/packagedata.py b/meta/lib/oe/packagedata.py
> index 62fd718..2533700 100644
> --- a/meta/lib/oe/packagedata.py
> +++ b/meta/lib/oe/packagedata.py
> @@ -34,11 +34,18 @@ def get_subpkgedata_fn(pkg, d):
> dirs = all_pkgdatadirs(d)
>
> pkgdata = d.expand('${TMPDIR}/pkgdata/')
> + found = None
> for dir in dirs:
> fn = pkgdata + dir + pkg
> if os.path.exists(fn):
> - return fn
> - return d.expand('${PKGDATA_DIR}/runtime/%s' % pkg)
> + if found:
> + bb.error("More then one pkgdata dir found for pkg '%s'
> ('%s', '%s'), returning first" % (pkg, found, fn))
> + continue
> + found = fn
> + if found:
> + return found
> + else:
> + return d.expand('${PKGDATA_DIR}/runtime/%s' % pkg)
>
> def has_subpkgdata(pkg, d):
> return os.access(get_subpkgedata_fn(pkg, d), os.R_OK)
> @@ -68,6 +75,7 @@ def read_subpkgdata_dict(pkg, d):
> return ret
>
> def _pkgmap(d):
> + import bb
> """Return a dictionary mapping package to recipe name."""
>
> target_os = d.getVar("TARGET_OS", True)
> @@ -85,6 +93,7 @@ def _pkgmap(d):
> continue
>
> for pn in filter(lambda f: not
> os.path.isdir(os.path.join(pkgdatadir, f)), files):
> + bb.warn("Trying path '%s'" % os.path.join(pkgdatadir, pn))
> try:
> pkgdata = read_pkgdatafile(os.path.join(pkgdatadir, pn))
> except OSError:
> --
> 1.8.1.5
>
--
Martin 'JaMa' Jansa jabber: [email protected]
signature.asc
Description: Digital signature
_______________________________________________ Openembedded-core mailing list [email protected] http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
