diff options
Diffstat (limited to 'scripts/lib/devtool/standard.py')
| -rw-r--r-- | scripts/lib/devtool/standard.py | 38 |
1 files changed, 22 insertions, 16 deletions
diff --git a/scripts/lib/devtool/standard.py b/scripts/lib/devtool/standard.py index 4bbf9dd5a5..e2a8335a62 100644 --- a/scripts/lib/devtool/standard.py +++ b/scripts/lib/devtool/standard.py | |||
| @@ -1409,6 +1409,18 @@ def _export_local_files(srctree, rd, destdir, srctreebase): | |||
| 1409 | updated = OrderedDict() | 1409 | updated = OrderedDict() |
| 1410 | added = OrderedDict() | 1410 | added = OrderedDict() |
| 1411 | removed = OrderedDict() | 1411 | removed = OrderedDict() |
| 1412 | |||
| 1413 | # Get current branch and return early with empty lists | ||
| 1414 | # if on one of the override branches | ||
| 1415 | # (local files are provided only for the main branch and processing | ||
| 1416 | # them against lists from recipe overrides will result in mismatches | ||
| 1417 | # and broken modifications to recipes). | ||
| 1418 | stdout, _ = bb.process.run('git rev-parse --abbrev-ref HEAD', | ||
| 1419 | cwd=srctree) | ||
| 1420 | branchname = stdout.rstrip() | ||
| 1421 | if branchname.startswith(override_branch_prefix): | ||
| 1422 | return (updated, added, removed) | ||
| 1423 | |||
| 1412 | local_files_dir = os.path.join(srctreebase, 'oe-local-files') | 1424 | local_files_dir = os.path.join(srctreebase, 'oe-local-files') |
| 1413 | git_files = _git_ls_tree(srctree) | 1425 | git_files = _git_ls_tree(srctree) |
| 1414 | if 'oe-local-files' in git_files: | 1426 | if 'oe-local-files' in git_files: |
| @@ -1638,31 +1650,25 @@ def _update_recipe_patch(recipename, workspace, srctree, rd, appendlayerdir, wil | |||
| 1638 | tempdir = tempfile.mkdtemp(prefix='devtool') | 1650 | tempdir = tempfile.mkdtemp(prefix='devtool') |
| 1639 | try: | 1651 | try: |
| 1640 | local_files_dir = tempfile.mkdtemp(dir=tempdir) | 1652 | local_files_dir = tempfile.mkdtemp(dir=tempdir) |
| 1641 | if filter_patches: | 1653 | upd_f, new_f, del_f = _export_local_files(srctree, rd, local_files_dir, srctreebase) |
| 1642 | upd_f = {} | ||
| 1643 | new_f = {} | ||
| 1644 | del_f = {} | ||
| 1645 | else: | ||
| 1646 | upd_f, new_f, del_f = _export_local_files(srctree, rd, local_files_dir, srctreebase) | ||
| 1647 | |||
| 1648 | remove_files = [] | ||
| 1649 | if not no_remove: | ||
| 1650 | # Get all patches from source tree and check if any should be removed | ||
| 1651 | all_patches_dir = tempfile.mkdtemp(dir=tempdir) | ||
| 1652 | _, _, del_p = _export_patches(srctree, rd, initial_rev, | ||
| 1653 | all_patches_dir) | ||
| 1654 | # Remove deleted local files and patches | ||
| 1655 | remove_files = list(del_f.values()) + list(del_p.values()) | ||
| 1656 | 1654 | ||
| 1657 | # Get updated patches from source tree | 1655 | # Get updated patches from source tree |
| 1658 | patches_dir = tempfile.mkdtemp(dir=tempdir) | 1656 | patches_dir = tempfile.mkdtemp(dir=tempdir) |
| 1659 | upd_p, new_p, _ = _export_patches(srctree, rd, update_rev, | 1657 | upd_p, new_p, _ = _export_patches(srctree, rd, update_rev, |
| 1660 | patches_dir, changed_revs) | 1658 | patches_dir, changed_revs) |
| 1659 | # Get all patches from source tree and check if any should be removed | ||
| 1660 | all_patches_dir = tempfile.mkdtemp(dir=tempdir) | ||
| 1661 | _, _, del_p = _export_patches(srctree, rd, initial_rev, | ||
| 1662 | all_patches_dir) | ||
| 1661 | logger.debug('Pre-filtering: update: %s, new: %s' % (dict(upd_p), dict(new_p))) | 1663 | logger.debug('Pre-filtering: update: %s, new: %s' % (dict(upd_p), dict(new_p))) |
| 1662 | if filter_patches: | 1664 | if filter_patches: |
| 1663 | new_p = OrderedDict() | 1665 | new_p = OrderedDict() |
| 1664 | upd_p = OrderedDict((k,v) for k,v in upd_p.items() if k in filter_patches) | 1666 | upd_p = OrderedDict((k,v) for k,v in upd_p.items() if k in filter_patches) |
| 1665 | remove_files = [f for f in remove_files if f in filter_patches] | 1667 | del_p = OrderedDict((k,v) for k,v in del_p.items() if k in filter_patches) |
| 1668 | remove_files = [] | ||
| 1669 | if not no_remove: | ||
| 1670 | # Remove deleted local files and patches | ||
| 1671 | remove_files = list(del_f.values()) + list(del_p.values()) | ||
| 1666 | updatefiles = False | 1672 | updatefiles = False |
| 1667 | updaterecipe = False | 1673 | updaterecipe = False |
| 1668 | destpath = None | 1674 | destpath = None |
