Messages in this thread Patch in this message | | | Subject | [PATCH] ketchup - support new -post releases | From | Dave Hansen <> | Date | Fri, 20 Aug 2004 10:06:48 -0700 |
| |
Since 2.6.8.1 came out, I'm sure a lot of automated tools stopped working, ketchup included.
I'm sure this patch isn't complete, but it does work to patch from 2.6.8 -> 2.6.8.1 or 2.6.8.1-mm*, so it is at least a start.
-- Dave --- ketchup-0.8.orig 2004-08-16 15:42:28.000000000 -0700 +++ ketchup-0.8 2004-08-20 10:03:05.000000000 -0700 @@ -126,35 +126,42 @@ return r def pre(ver): - try: return re.match(r'\d+\.\d+\.\d+-((rc|pre)\d+)', ver).group(1) + try: return re.match(r'\d+\.\d+\.\d+(\.\d+)?-((rc|pre)\d+)', ver).group(2) + except: return None + +def post(ver): + try: return re.match(r'(\d+\.\d+\.\d+\.\d+)', ver).group(1) except: return None def pretype(ver): - try: return re.match(r'\d+\.\d+\.\d+-((rc|pre)\d+)', ver).group(2) + try: return re.match(r'\d+\.\d+\.\d+(\.\d+)?-((rc|pre)\d+)', ver).group(3) except: return None def prenum(ver): - try: return int(re.match(r'\d+\.\d+\.\d+-((rc|pre)(\d+))', ver).group(3)) + try: return int(re.match(r'\d+\.\d+\.\d+-((rc|pre)(\d+))', ver).group(4)) except: return None def prebase(ver): - return re.match(r'(\d+\.\d+\.\d+(-(rc|pre)\d+)?)', ver).group(1) + return re.match(r'(\d+\.\d+\.\d+((-(rc|pre)|\.)\d+)?)', ver).group(1) def base(ver): - return "%s.%s" % (tree(ver), rev(ver)) + if post(ver): + return prebase(ver) + else: + return "%s.%s" % (tree(ver), rev(ver)) def forkname(ver): - try: return re.match(r'\d+.\d+.\d+(-(rc|pre)\d+)?(-(\w+?)\d+)?', - ver).group(4) + try: return re.match(r'\d+.\d+.\d+(\.\d+)?(-(rc|pre)\d+)?(-(\w+?)\d+)?', + ver).group(5) except: return None def forknum(ver): - try: return int(re.match(r'\d+.\d+.\d+(-(rc|pre)\d+)?(-(\w+?)(\d+))?', - ver).group(5)) + try: return int(re.match(r'\d+.\d+.\d+(\.\d+)?(-(rc|pre)\d+)?(-(\w+?)(\d+))?', + ver).group(6)) except: return None def fork(ver): - try: return re.match(r'\d+.\d+.\d+(-(rc|pre)\d+)?(-(\w+))?', ver).group(4) + try: return re.match(r'\d+.\d+.\d+(\.\d+)?(-(rc|pre)\d+)?(-(\w+))?', ver).group(4) except: return None def get_ver(makefile): @@ -484,6 +491,11 @@ if pre(a): apply_patch(a, 1) a = base(a) + # need a loop here to apply all of the post patches + if post(b): + apply_patch(prebase(b), 0) + # need a loop here to back out any a post patches + ra, rb = rev(a), rev(b) if ra > rb: for r in range(ra, rb, -1): | |