rpms/kernel/devel/scripts bumpspecfile.py,1.4,1.5

Jarod Wilson jwilson at fedoraproject.org
Tue Feb 10 18:28:49 UTC 2009


Author: jwilson

Update of /cvs/pkgs/rpms/kernel/devel/scripts
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv29749/scripts

Modified Files:
	bumpspecfile.py 
Log Message:
* Tue Feb 10 2009 Jarod Wilson <jarod at redhat.com> 2.6.29-0.105.rc4.git1
- Enhance kernel's bumpspecfile.py to add VR to changelog when it can



Index: bumpspecfile.py
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/scripts/bumpspecfile.py,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- bumpspecfile.py	13 Dec 2007 20:46:01 -0000	1.4
+++ bumpspecfile.py	10 Feb 2009 18:28:18 -0000	1.5
@@ -12,6 +12,36 @@
     def __init__(self,filename):
         file=open(filename,"r")
         self.lines=file.readlines()
+        self.vr=""
+
+    def getNextVR(self,aspec):
+         # Get VR for changelog entry.
+        (ver,rel) = os.popen("LC_ALL=C rpm --specfile -q --qf '%%{version} %%{release}\n' --define 'dist %%{nil}' %s | head -1" % aspec).read().strip().split(' ')
+	pos = 0
+        # general released kernel case, bump 1st field
+        fedora_build = rel.split('.')[pos]
+        if fedora_build == "0":
+            # this is a devel kernel, bump 2nd field
+            pos = 1
+        elif rel.split('.')[-1] != fedora_build:
+            # this is a branch, must bump 3rd field
+            pos = 2
+        fedora_build = rel.split('.')[pos]
+        if pos == 1 and len(rel.split('.')) > 4:
+            # uh... what? devel kernel in a branch? private build? just do no VR in clog...
+            print "Warning: not adding any VR to changelog, couldn't tell for sure which field to bump"
+            pos = -1
+        next_fedora_build = int(fedora_build) + 1
+        if pos == 0:
+            nextrel = str(next_fedora_build)
+        elif pos == 1:
+            nextrel = "0." + str(next_fedora_build)
+        elif pos == 2:
+            nextrel = rel.split('.')[0] + "." + rel.split('.')[1] + "." + str(next_fedora_build)
+        if pos >= 0:
+            for s in rel.split('.')[pos + 1:]:
+                nextrel = nextrel + "." + s
+            self.vr = " "+ver+'-'+nextrel
 
     def addChangelogEntry(self,entry):
         user = os.environ.get("GIT_COMMITTER_NAME","unknown")
@@ -20,7 +50,7 @@
             email = os.environ.get("USER","unknown")+"@fedoraproject.org"
         changematch=re.compile(r"^%changelog")
         date=time.strftime("%a %b %d %Y",   time.localtime(time.time()))
-        newchangelogentry="%changelog\n* "+date+" "+user+" <"+email+">"+"\n"+entry+"\n\n"
+        newchangelogentry="%changelog\n* "+date+" "+user+" <"+email+">"+self.vr+"\n"+entry+"\n\n"
         for i in range(len(self.lines)):
             if(changematch.match(self.lines[i])):
                 self.lines[i]=newchangelogentry
@@ -35,6 +65,7 @@
   aspec=(sys.argv[1])
   s=Specfile(aspec)
   entry=(sys.argv[2])
+  s.getNextVR(aspec)
   s.addChangelogEntry(entry)
   s.writeFile(aspec)
 




More information about the scm-commits mailing list