Răsfoiți Sursa

Fix bug in .deb creation system

rdb 16 ani în urmă
părinte
comite
a797a5fdfc
1 a modificat fișierele cu 10 adăugiri și 14 ștergeri
  1. 10 14
      direct/src/p3d/InstallerMaker.py

+ 10 - 14
direct/src/p3d/InstallerMaker.py

@@ -54,36 +54,32 @@ class InstallerMaker:
 
         # Create a control.tar.gz file in memory
         controltargz = CachedFile()
-        controltarfile = tarfile.TarFile.gzopen("control.tar.gz", "w", controltargz)
+        controltarfile = tarfile.TarFile.gzopen("control.tar.gz", "w", controltargz, 9)
         controltarfile.add(os.path.join(tempdir, "control"), "control")
         controltarfile.close()
         os.remove(os.path.join(tempdir, "control"))
 
         # Create the data.tar.gz file in the temporary directory
-        datatarfile = tarfile.TarFile.gzopen(os.path.join(tempdir, "data.tar.gz"), "w")
+        datatargz = CachedFile()
+        datatarfile = tarfile.TarFile.gzopen("data.tar.gz", "w", datatargz, 9)
         datatarfile.add(tempdir + "/usr", "/usr")
         datatarfile.close()
 
         # Open the deb file and write to it. It's actually
         # just an AR file, which is very easy to make.
-        modtime = str(int(time.time())).ljust(11)
+        modtime = int(time.time())
         if os.path.isfile(self.shortname + ".deb"):
             os.remove(self.shortname + ".deb")
         debfile = open(self.shortname + ".deb", "wb")
         debfile.write("!<arch>\x0A")
-        debfile.write("debian-binary   %s 0     0     100644  4         \x60\x0A" % modtime)
+        debfile.write("debian-binary   %-12lu0     0     100644  %-10ld\x60\x0A" % (modtime, 4))
         debfile.write("2.0\x0A")
-        debfile.write("control.tar.gz  %s 0     0     100644  %s \x60\x0A" % (modtime, str(len(controltargz.str)).ljust(9)))
+        debfile.write("control.tar.gz  %-12lu0     0     100644  %-10ld\x60\x0A" % (modtime, len(controltargz.str)))
         debfile.write(controltargz.str)
-        debfile.write("data.tar.gz     %s 0     0     100644  %s \x60\x0A" % (modtime, str(os.path.getsize(os.path.join(tempdir, "data.tar.gz"))).ljust(9)))
-
-        # Copy everything from data.tar.gz to the deb file megabyte by megabyte.
-        datatargz = open(os.path.join(tempdir, "data.tar.gz"), "rb")
-        data = datatargz.read(1024 * 1024)
-        while data != "":
-            debfile.write(data)
-            data = datatargz.read(1024 * 1024)
-        datatargz.close()
+        if (len(controltargz.str) & 1): debfile.write("\x0A")
+        debfile.write("data.tar.gz     %-12lu0     0     100644  %-10ld\x60\x0A" % (modtime, len(datatargz.str)))
+        debfile.write(datatargz.str)
+        if (len(datatargz.str) & 1): debfile.write("\x0A")
         debfile.close()
         shutil.rmtree(tempdir)