diff options
Diffstat (limited to 'scripts/lib/devtool/standard.py')
| -rw-r--r-- | scripts/lib/devtool/standard.py | 18 | 
1 files changed, 14 insertions, 4 deletions
| diff --git a/scripts/lib/devtool/standard.py b/scripts/lib/devtool/standard.py index f2ba69976f..1ec31bcafe 100644 --- a/scripts/lib/devtool/standard.py +++ b/scripts/lib/devtool/standard.py | |||
| @@ -1039,6 +1039,18 @@ def _export_local_files(srctree, rd, destdir): | |||
| 1039 | return (updated, added, removed) | 1039 | return (updated, added, removed) | 
| 1040 | 1040 | ||
| 1041 | 1041 | ||
| 1042 | def _determine_files_dir(rd): | ||
| 1043 | """Determine the appropriate files directory for a recipe""" | ||
| 1044 | recipedir = rd.getVar('FILE_DIRNAME', True) | ||
| 1045 | for entry in rd.getVar('FILESPATH', True).split(':'): | ||
| 1046 | relpth = os.path.relpath(entry, recipedir) | ||
| 1047 | if not os.sep in relpth: | ||
| 1048 | # One (or zero) levels below only, so we don't put anything in machine-specific directories | ||
| 1049 | if os.path.isdir(entry): | ||
| 1050 | return entry | ||
| 1051 | return os.path.join(recipedir, rd.getVar('BPN', True)) | ||
| 1052 | |||
| 1053 | |||
| 1042 | def _update_recipe_srcrev(args, srctree, rd, config_data): | 1054 | def _update_recipe_srcrev(args, srctree, rd, config_data): | 
| 1043 | """Implement the 'srcrev' mode of update-recipe""" | 1055 | """Implement the 'srcrev' mode of update-recipe""" | 
| 1044 | import bb | 1056 | import bb | 
| @@ -1092,8 +1104,7 @@ def _update_recipe_srcrev(args, srctree, rd, config_data): | |||
| 1092 | rd, args.append, files, wildcardver=args.wildcard_version, | 1104 | rd, args.append, files, wildcardver=args.wildcard_version, | 
| 1093 | extralines=patchfields, removevalues=removevalues) | 1105 | extralines=patchfields, removevalues=removevalues) | 
| 1094 | else: | 1106 | else: | 
| 1095 | files_dir = os.path.join(os.path.dirname(recipefile), | 1107 | files_dir = _determine_files_dir(rd) | 
| 1096 | rd.getVar('BPN', True)) | ||
| 1097 | for basepath, path in upd_f.items(): | 1108 | for basepath, path in upd_f.items(): | 
| 1098 | logger.info('Updating file %s' % basepath) | 1109 | logger.info('Updating file %s' % basepath) | 
| 1099 | _move_file(os.path.join(local_files_dir, basepath), path) | 1110 | _move_file(os.path.join(local_files_dir, basepath), path) | 
| @@ -1193,8 +1204,7 @@ def _update_recipe_patch(args, config, workspace, srctree, rd, config_data): | |||
| 1193 | _move_file(patchfn, path) | 1204 | _move_file(patchfn, path) | 
| 1194 | updatefiles = True | 1205 | updatefiles = True | 
| 1195 | # Add any new files | 1206 | # Add any new files | 
| 1196 | files_dir = os.path.join(os.path.dirname(recipefile), | 1207 | files_dir = _determine_files_dir(rd) | 
| 1197 | rd.getVar('BPN', True)) | ||
| 1198 | for basepath, path in new_f.items(): | 1208 | for basepath, path in new_f.items(): | 
| 1199 | logger.info('Adding new file %s' % basepath) | 1209 | logger.info('Adding new file %s' % basepath) | 
| 1200 | _move_file(os.path.join(local_files_dir, basepath), | 1210 | _move_file(os.path.join(local_files_dir, basepath), | 
