diff --git a/direct/src/p3d/InstallerMaker.py b/direct/src/p3d/InstallerMaker.py index 31421c54c7..9eadbda40a 100644 --- a/direct/src/p3d/InstallerMaker.py +++ b/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("!\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)