* [PATCH 1/3] devtool: upgrade: handle upgrading recipes with a versioned inc file
2016-05-24 4:18 [PATCH 0/3] Fixes for devtool upgrade Paul Eggleton
@ 2016-05-24 4:18 ` Paul Eggleton
2016-05-24 4:18 ` [PATCH 2/3] devtool: upgrade: tweak conflict handling Paul Eggleton
2016-05-24 4:18 ` [PATCH 3/3] devtool: upgrade: clarify help text for --srcrev option Paul Eggleton
2 siblings, 0 replies; 4+ messages in thread
From: Paul Eggleton @ 2016-05-24 4:18 UTC (permalink / raw)
To: openembedded-core
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].
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
---
scripts/lib/devtool/upgrade.py | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/scripts/lib/devtool/upgrade.py b/scripts/lib/devtool/upgrade.py
index a085f78..e34234a 100644
--- a/scripts/lib/devtool/upgrade.py
+++ b/scripts/lib/devtool/upgrade.py
@@ -77,11 +77,19 @@ def _recipe_contains(rd, var):
def _rename_recipe_dirs(oldpv, newpv, path):
for root, dirs, files in os.walk(path):
+ # Rename directories with the version in their name
for olddir in dirs:
if olddir.find(oldpv) != -1:
newdir = olddir.replace(oldpv, newpv)
if olddir != newdir:
shutil.move(os.path.join(path, olddir), os.path.join(path, newdir))
+ # Rename any inc files with the version in their name (unusual, but possible)
+ for oldfile in files:
+ if oldfile.endswith('.inc'):
+ if oldfile.find(oldpv) != -1:
+ newfile = oldfile.replace(oldpv, newpv)
+ if oldfile != newfile:
+ os.rename(os.path.join(path, oldfile), os.path.join(path, newfile))
def _rename_recipe_file(oldrecipe, bpn, oldpv, newpv, path):
oldrecipe = os.path.basename(oldrecipe)
--
2.5.5
^ permalink raw reply related [flat|nested] 4+ messages in thread* [PATCH 2/3] devtool: upgrade: tweak conflict handling
2016-05-24 4:18 [PATCH 0/3] Fixes for devtool upgrade Paul Eggleton
2016-05-24 4:18 ` [PATCH 1/3] devtool: upgrade: handle upgrading recipes with a versioned inc file Paul Eggleton
@ 2016-05-24 4:18 ` Paul Eggleton
2016-05-24 4:18 ` [PATCH 3/3] devtool: upgrade: clarify help text for --srcrev option Paul Eggleton
2 siblings, 0 replies; 4+ messages in thread
From: Paul Eggleton @ 2016-05-24 4:18 UTC (permalink / raw)
To: openembedded-core
Make a couple of changes to the rebase operation:
1) Only wrap the actual rebase command in try...except since a failure
in any of the other commands should be an error, not a warning
2) If it's a conflict (which unfortunately we can only tell by checking
for the keyword "conflict" since git doesn't return error codes based
on the type of error) then print a message clarifying that the user
needs to resolve the issue themselves to finish the upgrade.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
---
scripts/lib/devtool/upgrade.py | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/scripts/lib/devtool/upgrade.py b/scripts/lib/devtool/upgrade.py
index e34234a..7e6aa42 100644
--- a/scripts/lib/devtool/upgrade.py
+++ b/scripts/lib/devtool/upgrade.py
@@ -236,16 +236,22 @@ def _extract_new_source(newpv, srctree, no_patch, srcrev, branch, keep_temp, tin
for patch in patches:
logger.warn("%s" % os.path.basename(patch))
else:
+ __run('git checkout devtool-patched -b %s' % branch)
+ skiptag = False
try:
- __run('git checkout devtool-patched -b %s' % branch)
__run('git rebase %s' % rev)
+ except bb.process.ExecutionError as e:
+ skiptag = True
+ if 'conflict' in e.stdout:
+ logger.warn('Command \'%s\' failed:\n%s\n\nYou will need to resolve conflicts in order to complete the upgrade.' % (e.command, e.stdout.rstrip()))
+ else:
+ logger.warn('Command \'%s\' failed:\n%s' % (e.command, e.stdout))
+ if not skiptag:
if uri.startswith('git://'):
suffix = 'new'
else:
suffix = newpv
__run('git tag -f devtool-patched-%s' % suffix)
- except bb.process.ExecutionError as e:
- logger.warn('Command \'%s\' failed:\n%s' % (e.command, e.stdout))
if tmpsrctree:
if keep_temp:
--
2.5.5
^ permalink raw reply related [flat|nested] 4+ messages in thread* [PATCH 3/3] devtool: upgrade: clarify help text for --srcrev option
2016-05-24 4:18 [PATCH 0/3] Fixes for devtool upgrade Paul Eggleton
2016-05-24 4:18 ` [PATCH 1/3] devtool: upgrade: handle upgrading recipes with a versioned inc file Paul Eggleton
2016-05-24 4:18 ` [PATCH 2/3] devtool: upgrade: tweak conflict handling Paul Eggleton
@ 2016-05-24 4:18 ` Paul Eggleton
2 siblings, 0 replies; 4+ messages in thread
From: Paul Eggleton @ 2016-05-24 4:18 UTC (permalink / raw)
To: openembedded-core
The -S / --srcrev option must be specified if fetching from a git
repository, so spell that out in the help text.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
---
scripts/lib/devtool/upgrade.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/scripts/lib/devtool/upgrade.py b/scripts/lib/devtool/upgrade.py
index 7e6aa42..07a9018 100644
--- a/scripts/lib/devtool/upgrade.py
+++ b/scripts/lib/devtool/upgrade.py
@@ -385,7 +385,7 @@ def register_commands(subparsers, context):
parser_upgrade.add_argument('recipename', help='Name of recipe to upgrade (just name - no version, path or extension)')
parser_upgrade.add_argument('srctree', nargs='?', help='Path to where to extract the source tree. If not specified, a subdirectory of %s will be used.' % defsrctree)
parser_upgrade.add_argument('--version', '-V', help='Version to upgrade to (PV)')
- parser_upgrade.add_argument('--srcrev', '-S', help='Source revision to upgrade to (if fetching from an SCM such as git)')
+ parser_upgrade.add_argument('--srcrev', '-S', help='Source revision to upgrade to (required if fetching from an SCM such as git)')
parser_upgrade.add_argument('--srcbranch', '-B', help='Branch in source repository containing the revision to use (if fetching from an SCM such as git)')
parser_upgrade.add_argument('--branch', '-b', default="devtool", help='Name for new development branch to checkout (default "%(default)s")')
parser_upgrade.add_argument('--no-patch', action="store_true", help='Do not apply patches from the recipe to the new source code')
--
2.5.5
^ permalink raw reply related [flat|nested] 4+ messages in thread