Blob Blame History Raw
diff -rup createrepo-0.9.5-orig/createrepo/yumbased.py createrepo-0.9.5/createrepo/yumbased.py
--- createrepo-0.9.5-orig/createrepo/yumbased.py	2008-02-18 15:30:13.000000000 -0500
+++ createrepo-0.9.5/createrepo/yumbased.py	2008-10-09 13:51:48.000000000 -0400
@@ -30,6 +30,7 @@ from rpmUtils.transaction import initRea
 from rpmUtils.miscutils import flagToString, stringToVersion
 import libxml2
 import utils
+import tempfile
 
 #FIXME - merge into class with config stuff
 fileglobs = ['.*bin\/.*', '^\/etc\/.*', '^\/usr\/lib\/sendmail$']
@@ -106,9 +107,17 @@ class CreateRepoPackage(YumLocalPackage)
              
         else:
             checksum = misc.checksum('sha', self.localpath)
-            csumo = open(csumfile, 'w')
-            csumo.write(checksum)
-            csumo.close()
+
+            #  This is atomic cache creation via. rename, so we can have two
+            # tasks using the same cachedir ... mash does this.
+            try:
+                (csumo, tmpfilename) = tempfile.mkstemp(dir=self.crp_cachedir)
+                csumo = os.fdopen(csumo, 'w', -1)
+                csumo.write(checksum)
+                csumo.close()
+                os.rename(tmpfilename, csumfile)
+            except:
+                pass
         
         self._checksum = checksum
 
Only in createrepo-0.9.5/createrepo: yumbased.py.orig