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')

Reply via email to