patch.bbclass:
authorChris Larson <clarson@kergoth.com>
Wed, 30 Aug 2006 07:29:56 +0000 (07:29 +0000)
committerChris Larson <clarson@kergoth.com>
Wed, 30 Aug 2006 07:29:56 +0000 (07:29 +0000)
* Add NOOPResolver class, which simply passes the patch failure on up, not
  doing any actual patch resolution.  Set PATCHRESOLVE = "noop" to make use of
  it.  Most useful for unattended builds.

classes/patch.bbclass

index c62a8eb..7bb0900 100644 (file)
@@ -309,6 +309,19 @@ def patch_init(d):
                def Finalize(self):
                        raise NotImplementedError()
 
+       class NOOPResolver(Resolver):
+               def __init__(self, patchset):
+                       self.patchset = patchset
+
+               def Resolve(self):
+                       olddir = os.path.abspath(os.curdir)
+                       os.chdir(self.patchset.dir)
+                       try:
+                               self.patchset.Push()
+                       except Exception:
+                               os.chdir(olddir)
+                               raise sys.exc_value
+
        # Patch resolver which relies on the user doing all the work involved in the
        # resolution, with the exception of refreshing the remote copy of the patch
        # files (the urls).
@@ -360,20 +373,13 @@ def patch_init(d):
                                raise
                        os.chdir(olddir)
 
-               # Throw away the changes to the patches in the patchset made by resolve()
-               def Revert(self):
-                       raise NotImplementedError()
-
-               # Apply the changes to the patches in the patchset made by resolve()
-               def Finalize(self):
-                       raise NotImplementedError()
-
        g = globals()
        g["PatchSet"] = PatchSet
        g["PatchTree"] = PatchTree
        g["QuiltTree"] = QuiltTree
        g["Resolver"] = Resolver
        g["UserResolver"] = UserResolver
+       g["NOOPResolver"] = NOOPResolver
        g["NotFoundError"] = NotFoundError
        g["CmdError"] = CmdError
 
@@ -397,6 +403,7 @@ python patch_do_patch() {
        cls = patchsetmap[bb.data.getVar('PATCHTOOL', d, 1) or 'quilt']
 
        resolvermap = {
+               "noop": NOOPResolver,
                "user": UserResolver,
        }