rebuild-scripts bumpspecfile.py,1.2,1.3
Michael Schwendt (mschwendt)
fedora-extras-commits at redhat.com
Sat Feb 23 00:43:35 UTC 2008
- Previous message (by thread): rpms/gpicview/F-7 .cvsignore, 1.3, 1.4 gpicview.spec, 1.2, 1.3 sources, 1.3, 1.4
- Next message (by thread): rpms/libuser/devel .cvsignore, 1.48, 1.49 libuser.spec, 1.77, 1.78 sources, 1.50, 1.51
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: mschwendt
Update of /cvs/fedora/rebuild-scripts
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv18846
Modified Files:
bumpspecfile.py
Log Message:
- add support for Fedora jpackage release versions (i.e. bump the number
after the "jpp"
- add a fallback for unsupported/unrecognised release strings (i.e.
try to bump the least-significant number at the very right or add .1)
- remove the Fedora Extras EXIT_ON_WARN flag
- shorten a few functions
Index: bumpspecfile.py
===================================================================
RCS file: /cvs/fedora/rebuild-scripts/bumpspecfile.py,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- bumpspecfile.py 11 Feb 2008 18:21:12 -0000 1.2
+++ bumpspecfile.py 23 Feb 2008 00:43:35 -0000 1.3
@@ -6,7 +6,8 @@
import time
from optparse import OptionParser
-EXIT_ON_WARN = False
+class BumpSpecError(Exception):
+ pass
class SpecFile:
def __init__(self, filename):
@@ -45,38 +46,73 @@
def increaseMain(self, release):
relre = re.compile(r'(?P<pre>0\.)?(?P<rel>\d+)(?P<post>.*)', re.I)
relmatch = relre.search(release)
-
- pre = relmatch.group('pre')
+ pre = relmatch.group('pre') or ''
value = int(relmatch.group('rel'))
post = relmatch.group('post')
- old = ''
- if pre != None:
- old += pre
+ old = pre
old += relmatch.group('rel')+post
- if pre == None:
+ if pre == '':
if post.find('rc')>=0:
- print 'CRUCIAL WARNING: Bad pre-release versioning scheme!'
+ print 'WARNING: Bad pre-release versioning scheme!'
print self.filename
- if EXIT_ON_WARN:
- sys.exit(errno.EIO)
+ raise BumpSpecError
new = `value+1`+post
if True or post != '%{?dist}' and len(post):
self.debugdiff(old, new)
else:
if value == None or value > 10000:
- print 'CRUCIAL WARNING: Bad pre-release versioning scheme!'
+ print 'WARNING: Bad pre-release versioning scheme!'
print self.filename
- if EXIT_ON_WARN:
- sys.exit(errno.EIO)
+ raise BumpSpecError
new = '0.'+`value+1`+post
self.debugdiff(old, new)
return new
+ def increaseJPP(self, release):
+ """Fedora jpackage release versioning scheme"""
+ old = release
+ relre = re.compile(r'(?P<pre>0\.)?(?P<rel>\d+)(?P<jpp>jpp\.)(?P<post>.*)', re.I)
+ relmatch = relre.search(release)
+
+ pre = relmatch.group('pre') or ''
+ value = int(relmatch.group('rel'))
+ jpp = relmatch.group('jpp')
+ post = relmatch.group('post')
+
+ newpost = self.increaseMain(post)
+ new = pre+str(value)+jpp+newpost
+ self.debugdiff(old, new)
+ return new
+
+ def increaseFallback(self, release):
+ """bump at the very-right or add .1 as a last resort"""
+ old = release
+ relre = re.compile(r'(?P<prefix>.+\.)(?P<post>\d+$)', re.I)
+ relmatch = relre.search(release)
+ if relmatch:
+ prefix = relmatch.group('prefix')
+ post = relmatch.group('post')
+ new = prefix+self.increaseMain(post)
+ else:
+ new = old+'.1'
+ self.debugdiff(old, new)
+ return new
+
+ def increaseSafe(self, release):
+ if release.find('jpp')>0:
+ new = self.increaseJPP(release)
+ else:
+ new = self.increaseMain(release)
+ return new
+
def increase(self, match):
old = match.group(1)
- new = self.increaseMain(old)
+ try:
+ new = self.increaseSafe(old)
+ except BumpSpecError:
+ new = self.increaseFallback(old)
return match.group(0).replace(old, new)
def writeFile(self, filename):
- Previous message (by thread): rpms/gpicview/F-7 .cvsignore, 1.3, 1.4 gpicview.spec, 1.2, 1.3 sources, 1.3, 1.4
- Next message (by thread): rpms/libuser/devel .cvsignore, 1.48, 1.49 libuser.spec, 1.77, 1.78 sources, 1.50, 1.51
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-extras-commits
mailing list