diff options
author | Andreas Oberritter <obi@opendreambox.org> | 2012-09-05 09:55:52 +0200 |
---|---|---|
committer | Andreas Oberritter <obi@opendreambox.org> | 2012-09-05 09:55:52 +0200 |
commit | 633be8890db7d357e5794522b1285f3e83f54286 (patch) | |
tree | 59bdadec48b29268ade66770b127440def3bb0b2 | |
parent | 0ba8294b3746980b7b93c2dbb9b9cba235c67c67 (diff) | |
download | openembedded-core-contrib-633be8890db7d357e5794522b1285f3e83f54286.tar.gz |
fixup! sstate.bbclass: don't remove shared pkgdata if PACKAGE_ARCH changed to MACHINE_ARCH
-rw-r--r-- | meta/classes/sstate.bbclass | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass index a9d70e6cd9..becb3a0521 100644 --- a/meta/classes/sstate.bbclass +++ b/meta/classes/sstate.bbclass @@ -222,7 +222,13 @@ def sstate_clean_manifest(manifest, d): from glob import glob import oe.path - check_package_arch = manifest.endswith('.package') + manifest_ending = '.package' + check_package_arch = manifest.endswith(manifest_ending) + if not check_package_arch: + deploy_pos = manifest.find('.deploy-') + check_package_arch = deploy_pos != -1 + else: + deploy_pos = 0 if check_package_arch: package_arch = d.getVar('PACKAGE_ARCH', True) machine = d.getVar('MACHINE', True) @@ -231,8 +237,15 @@ def sstate_clean_manifest(manifest, d): pkg_set = set() pn = d.getVar('PN', True) sstate_manifests = d.getVar('SSTATE_MANIFESTS', True) - pkgdata_dir = d.getVar('PKGDATA_DIR', True) - pkgdata_root = '/'.join(pkgdata_dir.split('/')[:-1]) + '/' + if deploy_pos: + pkg_type = manifest[deploy_pos+8:] + manifest_ending = '.deploy-' + pkg_type + pkgdata_root = d.getVar('DEPLOY_DIR', True) + '/' + pkg_type + '/' + pkgdata_split_char = '/' + else: + pkgdata_dir = d.getVar('PKGDATA_DIR', True) + pkgdata_root = '/'.join(pkgdata_dir.split('/')[:-1]) + '/' + pkgdata_split_char = '-' mfile = open(manifest) entries = mfile.readlines() @@ -241,11 +254,11 @@ def sstate_clean_manifest(manifest, d): for entry in entries: if check_package_arch: if not package_arch_old and entry.startswith(pkgdata_root): - package_arch_old = entry[len(pkgdata_root):].split('-')[0] + package_arch_old = entry[len(pkgdata_root):].split(pkgdata_split_char)[0] if package_arch_old: if package_arch_old != package_arch: if not dir_scanned: - for f in glob('%s/manifest-*-%s.package' % (sstate_manifests, pn)): + for f in glob('%s/manifest-*-%s%s' % (sstate_manifests, pn, manifest_ending)): if f == manifest: continue tfile = open(f) |