tags 324855 + patch thanks Hi,
Attached is the diff for my mini-dinstall 0.6.21-0.2 NMU. Cheers, -- Guido
diff -Nru /tmp/ZmiZtOi7zU/mini-dinstall-0.6.21/debian/changelog /tmp/nVmezSCPyW/mini-dinstall-0.6.21/debian/changelog --- /tmp/ZmiZtOi7zU/mini-dinstall-0.6.21/debian/changelog 2006-08-01 21:13:49.000000000 +0200 +++ /tmp/nVmezSCPyW/mini-dinstall-0.6.21/debian/changelog 2007-08-23 15:51:43.000000000 +0200 @@ -1,3 +1,10 @@ +mini-dinstall (0.6.21-0.2) unstable; urgency=low + + * NMU with maintainers approval + * update packages files atomically (Closes: #324855) + + -- Guido Guenther <[EMAIL PROTECTED]> Thu, 23 Aug 2007 15:51:12 +0200 + mini-dinstall (0.6.21-0.1) unstable; urgency=low * Non-maintainer upload (with maintainer permission). diff -Nru /tmp/ZmiZtOi7zU/mini-dinstall-0.6.21/lib/version.py /tmp/nVmezSCPyW/mini-dinstall-0.6.21/lib/version.py --- /tmp/ZmiZtOi7zU/mini-dinstall-0.6.21/lib/version.py 2006-08-01 21:13:54.000000000 +0200 +++ /tmp/nVmezSCPyW/mini-dinstall-0.6.21/lib/version.py 2007-08-23 15:52:17.000000000 +0200 @@ -1 +1 @@ -pkg_version = "0.6.21-0.1" +pkg_version = "0.6.21-0.2" diff -Nru /tmp/ZmiZtOi7zU/mini-dinstall-0.6.21/mini-dinstall /tmp/nVmezSCPyW/mini-dinstall-0.6.21/mini-dinstall --- /tmp/ZmiZtOi7zU/mini-dinstall-0.6.21/mini-dinstall 2005-02-12 19:09:45.000000000 +0100 +++ /tmp/nVmezSCPyW/mini-dinstall-0.6.21/mini-dinstall 2007-08-23 15:50:54.000000000 +0200 @@ -19,7 +19,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA import os, sys, re, glob, getopt, time, traceback, gzip, getpass, socket -import signal, threading, select, Queue, SocketServer +import shutil, signal, threading, select, Queue, SocketServer import logging, logging.handlers #logging.basicConfig() import apt_pkg @@ -1047,19 +1047,25 @@ os.exit(1) os.close(outfd) stdout = os.fdopen(infd) - packagesfile = open(os.path.join(dir, name), 'w') - zpackagesfile = gzip.GzipFile(os.path.join(dir, name + '.gz'), 'w') + packagesfilename = os.path.join(dir, name) + newpackagesfilename = packagesfilename + '.new' + zpackagesfilename = packagesfilename + '.gz' + newzpackagesfilename = newpackagesfilename + '.gz' + newpackagesfile = open(newpackagesfilename, 'w') + newzpackagesfile = gzip.GzipFile(newzpackagesfilename, 'w') buf = stdout.read(8192) while buf != '': - packagesfile.write(buf) - zpackagesfile.write(buf) + newpackagesfile.write(buf) + newzpackagesfile.write(buf) buf = stdout.read(8192) stdout.close() (pid, status) = os.waitpid(pid, 0) if not (status is None or (os.WIFEXITED(status) and os.WEXITSTATUS(status) == 0)): raise DinstallException("apt-ftparchive exited with status code %d" % (status,)) - packagesfile.close() - zpackagesfile.close() + newpackagesfile.close() + newzpackagesfile.close() + shutil.move(newpackagesfilename, packagesfilename) + shutil.move(newzpackagesfilename, zpackagesfilename) def _make_packagesfile(self, dir): self._make_indexfile(dir, 'packages', 'Packages')