diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-11-03 22:00:55 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-11-04 17:04:32 +0000 |
commit | 9e0a21dda24f285a1c4878488e887485a749f3f2 (patch) | |
tree | 198e762d199b9007756f3043a785d4ea1618496b /meta | |
parent | 08b78066bd5a9ff2819a42eb4263ee0a78cddb97 (diff) | |
download | openembedded-core-9e0a21dda24f285a1c4878488e887485a749f3f2.tar.gz openembedded-core-9e0a21dda24f285a1c4878488e887485a749f3f2.tar.bz2 openembedded-core-9e0a21dda24f285a1c4878488e887485a749f3f2.zip |
patch: Convert to use oe_terminal
Unfortunately we can't access oe_terminal directly from patch.py
so we have to pass in the correct terminal function pointer.
[YOCTO #1587]
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
-rw-r--r-- | meta/classes/patch.bbclass | 4 | ||||
-rw-r--r-- | meta/lib/oe/patch.py | 17 |
2 files changed, 9 insertions, 12 deletions
diff --git a/meta/classes/patch.bbclass b/meta/classes/patch.bbclass index 762216345a..86046e1ff8 100644 --- a/meta/classes/patch.bbclass +++ b/meta/classes/patch.bbclass @@ -5,6 +5,8 @@ QUILTRCFILE ?= "${STAGING_BINDIR_NATIVE}/quiltrc" PATCHDEPENDENCY = "${PATCHTOOL}-native:do_populate_sysroot" +inherit terminal + python patch_do_patch() { import oe.patch @@ -124,7 +126,7 @@ python patch_do_patch() { if not patchdir in classes: patchset = cls(patchdir, d) - resolver = rcls(patchset) + resolver = rcls(patchset, oe_terminal) classes[patchdir] = (patchset, resolver) patchset.Clean() else: diff --git a/meta/lib/oe/patch.py b/meta/lib/oe/patch.py index 9768be077f..75fb91e0fb 100644 --- a/meta/lib/oe/patch.py +++ b/meta/lib/oe/patch.py @@ -311,7 +311,7 @@ class QuiltTree(PatchSet): self._runcmd(args) class Resolver(object): - def __init__(self, patchset): + def __init__(self, patchset, terminal): raise NotImplementedError() def Resolve(self): @@ -324,8 +324,9 @@ class Resolver(object): raise NotImplementedError() class NOOPResolver(Resolver): - def __init__(self, patchset): + def __init__(self, patchset, terminal): self.patchset = patchset + self.terminal = terminal def Resolve(self): olddir = os.path.abspath(os.curdir) @@ -341,13 +342,13 @@ class NOOPResolver(Resolver): # resolution, with the exception of refreshing the remote copy of the patch # files (the urls). class UserResolver(Resolver): - def __init__(self, patchset): + def __init__(self, patchset, terminal): self.patchset = patchset + self.terminal = terminal # Force a push in the patchset, then drop to a shell for the user to # resolve any rejected hunks def Resolve(self): - olddir = os.path.abspath(os.curdir) os.chdir(self.patchset.dir) try: @@ -368,16 +369,10 @@ class UserResolver(Resolver): f.write("echo 'Run \"quilt refresh\" when patch is corrected, press CTRL+D to exit.'\n") f.write("echo ''\n") f.write(" ".join(patchcmd) + "\n") - f.write("#" + bb.data.getVar('TERMCMDRUN', self.patchset.d, 1)) f.close() os.chmod(rcfile, 0775) - os.environ['TERMWINDOWTITLE'] = "Bitbake: Please fix patch rejects manually" - os.environ['SHELLCMDS'] = "bash --rcfile " + rcfile - rc = os.system(bb.data.getVar('TERMCMDRUN', self.patchset.d, 1)) - if os.WIFEXITED(rc) and os.WEXITSTATUS(rc) != 0: - bb.msg.fatal("Build", ("Cannot proceed with manual patch resolution - '%s' not found. " \ - + "Check TERMCMDRUN variable.") % bb.data.getVar('TERMCMDRUN', self.patchset.d, 1)) + self.terminal("bash --rcfile " + rcfile, 'Patch Rejects: Please fix patch rejects manually', self.patchset.d) # Construct a new PatchSet after the user's changes, compare the # sets, checking patches for modifications, and doing a remote |