All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] Fixes for devtool upgrade
@ 2016-05-24  4:18 Paul Eggleton
  2016-05-24  4:18 ` [PATCH 1/3] devtool: upgrade: handle upgrading recipes with a versioned inc file Paul Eggleton
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Paul Eggleton @ 2016-05-24  4:18 UTC (permalink / raw)
  To: openembedded-core

The following changes since commit d6241e4c94a0a72acfc57e96a59918c0b2146d65:

  useradd: Fix infinite build loop (2016-05-23 10:33:39 +0100)

are available in the git repository at:

  git://git.openembedded.org/openembedded-core-contrib paule/devtool-upgrade-fixes
  http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=paule/devtool-upgrade-fixes

Paul Eggleton (3):
  devtool: upgrade: handle upgrading recipes with a versioned inc file
  devtool: upgrade: tweak conflict handling
  devtool: upgrade: clarify help text for --srcrev option

 scripts/lib/devtool/upgrade.py | 22 ++++++++++++++++++----
 1 file changed, 18 insertions(+), 4 deletions(-)

-- 
2.5.5



^ permalink raw reply	[flat|nested] 4+ messages in thread

* [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

end of thread, other threads:[~2016-05-24  4:19 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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 ` [PATCH 3/3] devtool: upgrade: clarify help text for --srcrev option Paul Eggleton

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.