diff options
Diffstat (limited to 'scripts/lib/devtool/standard.py')
| -rw-r--r-- | scripts/lib/devtool/standard.py | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/scripts/lib/devtool/standard.py b/scripts/lib/devtool/standard.py index beea0d4c27..8e4c7f7b13 100644 --- a/scripts/lib/devtool/standard.py +++ b/scripts/lib/devtool/standard.py | |||
| @@ -734,6 +734,9 @@ def modify(args, config, basepath, workspace): | |||
| 734 | (stdout, _) = bb.process.run('git rev-parse HEAD', cwd=srctree) | 734 | (stdout, _) = bb.process.run('git rev-parse HEAD', cwd=srctree) |
| 735 | initial_rev = stdout.rstrip() | 735 | initial_rev = stdout.rstrip() |
| 736 | 736 | ||
| 737 | # Need to grab this here in case the source is within a subdirectory | ||
| 738 | srctreebase = srctree | ||
| 739 | |||
| 737 | # Check that recipe isn't using a shared workdir | 740 | # Check that recipe isn't using a shared workdir |
| 738 | s = os.path.abspath(rd.getVar('S')) | 741 | s = os.path.abspath(rd.getVar('S')) |
| 739 | workdir = os.path.abspath(rd.getVar('WORKDIR')) | 742 | workdir = os.path.abspath(rd.getVar('WORKDIR')) |
| @@ -748,7 +751,8 @@ def modify(args, config, basepath, workspace): | |||
| 748 | # Local files can be modified/tracked in separate subdir under srctree | 751 | # Local files can be modified/tracked in separate subdir under srctree |
| 749 | # Mostly useful for packages with S != WORKDIR | 752 | # Mostly useful for packages with S != WORKDIR |
| 750 | f.write('FILESPATH_prepend := "%s:"\n' % | 753 | f.write('FILESPATH_prepend := "%s:"\n' % |
| 751 | os.path.join(srctree, 'oe-local-files')) | 754 | os.path.join(srctreebase, 'oe-local-files')) |
| 755 | f.write('# srctreebase: %s\n' % srctreebase) | ||
| 752 | 756 | ||
| 753 | f.write('\ninherit externalsrc\n') | 757 | f.write('\ninherit externalsrc\n') |
| 754 | f.write('# NOTE: We use pn- overrides here to avoid affecting multiple variants in the case where the recipe uses BBCLASSEXTEND\n') | 758 | f.write('# NOTE: We use pn- overrides here to avoid affecting multiple variants in the case where the recipe uses BBCLASSEXTEND\n') |
| @@ -1166,7 +1170,7 @@ def _create_kconfig_diff(srctree, rd, outfile): | |||
| 1166 | return False | 1170 | return False |
| 1167 | 1171 | ||
| 1168 | 1172 | ||
| 1169 | def _export_local_files(srctree, rd, destdir): | 1173 | def _export_local_files(srctree, rd, destdir, srctreebase): |
| 1170 | """Copy local files from srctree to given location. | 1174 | """Copy local files from srctree to given location. |
| 1171 | Returns three-tuple of dicts: | 1175 | Returns three-tuple of dicts: |
| 1172 | 1. updated - files that already exist in SRCURI | 1176 | 1. updated - files that already exist in SRCURI |
| @@ -1186,7 +1190,7 @@ def _export_local_files(srctree, rd, destdir): | |||
| 1186 | updated = OrderedDict() | 1190 | updated = OrderedDict() |
| 1187 | added = OrderedDict() | 1191 | added = OrderedDict() |
| 1188 | removed = OrderedDict() | 1192 | removed = OrderedDict() |
| 1189 | local_files_dir = os.path.join(srctree, 'oe-local-files') | 1193 | local_files_dir = os.path.join(srctreebase, 'oe-local-files') |
| 1190 | git_files = _git_ls_tree(srctree) | 1194 | git_files = _git_ls_tree(srctree) |
| 1191 | if 'oe-local-files' in git_files: | 1195 | if 'oe-local-files' in git_files: |
| 1192 | # If tracked by Git, take the files from srctree HEAD. First get | 1196 | # If tracked by Git, take the files from srctree HEAD. First get |
| @@ -1199,9 +1203,9 @@ def _export_local_files(srctree, rd, destdir): | |||
| 1199 | new_set = list(_git_ls_tree(srctree, tree, True).keys()) | 1203 | new_set = list(_git_ls_tree(srctree, tree, True).keys()) |
| 1200 | elif os.path.isdir(local_files_dir): | 1204 | elif os.path.isdir(local_files_dir): |
| 1201 | # If not tracked by Git, just copy from working copy | 1205 | # If not tracked by Git, just copy from working copy |
| 1202 | new_set = _ls_tree(os.path.join(srctree, 'oe-local-files')) | 1206 | new_set = _ls_tree(local_files_dir) |
| 1203 | bb.process.run(['cp', '-ax', | 1207 | bb.process.run(['cp', '-ax', |
| 1204 | os.path.join(srctree, 'oe-local-files', '.'), destdir]) | 1208 | os.path.join(local_files_dir, '.'), destdir]) |
| 1205 | else: | 1209 | else: |
| 1206 | new_set = [] | 1210 | new_set = [] |
| 1207 | 1211 | ||
| @@ -1266,7 +1270,7 @@ def _determine_files_dir(rd): | |||
| 1266 | return os.path.join(recipedir, rd.getVar('BPN')) | 1270 | return os.path.join(recipedir, rd.getVar('BPN')) |
| 1267 | 1271 | ||
| 1268 | 1272 | ||
| 1269 | def _update_recipe_srcrev(srctree, rd, appendlayerdir, wildcard_version, no_remove): | 1273 | def _update_recipe_srcrev(recipename, workspace, srctree, rd, appendlayerdir, wildcard_version, no_remove): |
| 1270 | """Implement the 'srcrev' mode of update-recipe""" | 1274 | """Implement the 'srcrev' mode of update-recipe""" |
| 1271 | import bb | 1275 | import bb |
| 1272 | import oe.recipeutils | 1276 | import oe.recipeutils |
| @@ -1294,7 +1298,8 @@ def _update_recipe_srcrev(srctree, rd, appendlayerdir, wildcard_version, no_remo | |||
| 1294 | update_srcuri = False | 1298 | update_srcuri = False |
| 1295 | try: | 1299 | try: |
| 1296 | local_files_dir = tempfile.mkdtemp(dir=tempdir) | 1300 | local_files_dir = tempfile.mkdtemp(dir=tempdir) |
| 1297 | upd_f, new_f, del_f = _export_local_files(srctree, rd, local_files_dir) | 1301 | srctreebase = workspace[recipename]['srctreebase'] |
| 1302 | upd_f, new_f, del_f = _export_local_files(srctree, rd, local_files_dir, srctreebase) | ||
| 1298 | if not no_remove: | 1303 | if not no_remove: |
| 1299 | # Find list of existing patches in recipe file | 1304 | # Find list of existing patches in recipe file |
| 1300 | patches_dir = tempfile.mkdtemp(dir=tempdir) | 1305 | patches_dir = tempfile.mkdtemp(dir=tempdir) |
| @@ -1372,7 +1377,8 @@ def _update_recipe_patch(recipename, workspace, srctree, rd, appendlayerdir, wil | |||
| 1372 | tempdir = tempfile.mkdtemp(prefix='devtool') | 1377 | tempdir = tempfile.mkdtemp(prefix='devtool') |
| 1373 | try: | 1378 | try: |
| 1374 | local_files_dir = tempfile.mkdtemp(dir=tempdir) | 1379 | local_files_dir = tempfile.mkdtemp(dir=tempdir) |
| 1375 | upd_f, new_f, del_f = _export_local_files(srctree, rd, local_files_dir) | 1380 | srctreebase = workspace[recipename]['srctreebase'] |
| 1381 | upd_f, new_f, del_f = _export_local_files(srctree, rd, local_files_dir, srctreebase) | ||
| 1376 | 1382 | ||
| 1377 | remove_files = [] | 1383 | remove_files = [] |
| 1378 | if not no_remove: | 1384 | if not no_remove: |
| @@ -1495,7 +1501,7 @@ def _update_recipe(recipename, workspace, rd, mode, appendlayerdir, wildcard_ver | |||
| 1495 | mode = _guess_recipe_update_mode(srctree, rd) | 1501 | mode = _guess_recipe_update_mode(srctree, rd) |
| 1496 | 1502 | ||
| 1497 | if mode == 'srcrev': | 1503 | if mode == 'srcrev': |
| 1498 | updated = _update_recipe_srcrev(srctree, rd, appendlayerdir, wildcard_version, no_remove) | 1504 | updated = _update_recipe_srcrev(recipename, workspace, srctree, rd, appendlayerdir, wildcard_version, no_remove) |
| 1499 | elif mode == 'patch': | 1505 | elif mode == 'patch': |
| 1500 | updated = _update_recipe_patch(recipename, workspace, srctree, rd, appendlayerdir, wildcard_version, no_remove, initial_rev) | 1506 | updated = _update_recipe_patch(recipename, workspace, srctree, rd, appendlayerdir, wildcard_version, no_remove, initial_rev) |
| 1501 | else: | 1507 | else: |
