diff options
author | Paul Eggleton <paul.eggleton@linux.intel.com> | 2016-05-24 16:18:50 +1200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-05-25 07:50:16 +0100 |
commit | ab227452c79eda9a30c1461a2b611b2453e0c650 (patch) | |
tree | 7aec10fd987ab0c70d98a5220eab4991306ae526 /scripts/lib | |
parent | c7e614c438706fb3ed7520b4990ebb3973366942 (diff) | |
download | poky-ab227452c79eda9a30c1461a2b611b2453e0c650.tar.gz |
devtool: upgrade: handle upgrading recipes with a versioned inc file
The gdb recipe in OE-Core has an inc file with the version in it;
since the inc file is pulled in with a "require ${PV}.inc", when
upgrading the recipe we need to also rename the inc file it will fail to
parse and the upgrade itself will fail.
Fixes [YOCTO #9574].
(From OE-Core rev: 3c623aac9333d20a62475279c72b6b6ec3d7dd6b)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts/lib')
-rw-r--r-- | scripts/lib/devtool/upgrade.py | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/scripts/lib/devtool/upgrade.py b/scripts/lib/devtool/upgrade.py index a085f78c43..e34234a34f 100644 --- a/scripts/lib/devtool/upgrade.py +++ b/scripts/lib/devtool/upgrade.py | |||
@@ -77,11 +77,19 @@ def _recipe_contains(rd, var): | |||
77 | 77 | ||
78 | def _rename_recipe_dirs(oldpv, newpv, path): | 78 | def _rename_recipe_dirs(oldpv, newpv, path): |
79 | for root, dirs, files in os.walk(path): | 79 | for root, dirs, files in os.walk(path): |
80 | # Rename directories with the version in their name | ||
80 | for olddir in dirs: | 81 | for olddir in dirs: |
81 | if olddir.find(oldpv) != -1: | 82 | if olddir.find(oldpv) != -1: |
82 | newdir = olddir.replace(oldpv, newpv) | 83 | newdir = olddir.replace(oldpv, newpv) |
83 | if olddir != newdir: | 84 | if olddir != newdir: |
84 | shutil.move(os.path.join(path, olddir), os.path.join(path, newdir)) | 85 | shutil.move(os.path.join(path, olddir), os.path.join(path, newdir)) |
86 | # Rename any inc files with the version in their name (unusual, but possible) | ||
87 | for oldfile in files: | ||
88 | if oldfile.endswith('.inc'): | ||
89 | if oldfile.find(oldpv) != -1: | ||
90 | newfile = oldfile.replace(oldpv, newpv) | ||
91 | if oldfile != newfile: | ||
92 | os.rename(os.path.join(path, oldfile), os.path.join(path, newfile)) | ||
85 | 93 | ||
86 | def _rename_recipe_file(oldrecipe, bpn, oldpv, newpv, path): | 94 | def _rename_recipe_file(oldrecipe, bpn, oldpv, newpv, path): |
87 | oldrecipe = os.path.basename(oldrecipe) | 95 | oldrecipe = os.path.basename(oldrecipe) |