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