summaryrefslogtreecommitdiffstats
path: root/scripts/lib
diff options
context:
space:
mode:
authorPaul Eggleton <paul.eggleton@linux.intel.com>2016-07-14 09:04:19 +1200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-07-20 10:28:49 +0100
commit8be2077a38a0af3dc2b3ccd5e813e5bde840b8f0 (patch)
treedecacc17613f666b773a57940d82a6c30e85ce10 /scripts/lib
parent220a68bfc2cfd4f243706d97e3944f02b2bc01ff (diff)
downloadpoky-8be2077a38a0af3dc2b3ccd5e813e5bde840b8f0.tar.gz
devtool: update-recipe: find and use existing files directories
devtool update-recipe was defaulting to the ${BPN} named directory when adding patches next to a recipe, but that meant if you already had files in a ${BP} named directory (i.e. name and version) or "files" then you'd end up with two directories next to the recipe, which is usually not what you want. To avoid this, look through FILESPATH and take the first one that's the same level or one level down from the recipe and already exists, if any. (From OE-Core rev: c7a8190cf8bdf86ba850b6780b8e951e90232c06) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts/lib')
-rw-r--r--scripts/lib/devtool/standard.py18
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
1042def _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
1042def _update_recipe_srcrev(args, srctree, rd, config_data): 1054def _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),