From f94344fb706983952bdcf67faadc1bfd8a614f8e Mon Sep 17 00:00:00 2001 From: rdb Date: Sat, 2 Jan 2010 15:28:48 +0000 Subject: [PATCH] Fix permissions of deb structure in postinst script --- direct/src/p3d/DeploymentTools.py | 9 +++++++++ direct/src/p3d/pdeploy.py | 6 ++++++ 2 files changed, 15 insertions(+) diff --git a/direct/src/p3d/DeploymentTools.py b/direct/src/p3d/DeploymentTools.py index 261a92cd1a..c3c178dbd3 100644 --- a/direct/src/p3d/DeploymentTools.py +++ b/direct/src/p3d/DeploymentTools.py @@ -292,6 +292,12 @@ class Installer: print >>controlfile, "Description: %s" % self.fullname print >>controlfile, "Depends: libc6, libgcc1, libstdc++6, libx11-6" controlfile.close() + postinst = open(Filename(tempdir, "postinst").toOsSpecific(), "w") + print >>postinst, "#!/bin/sh" + print >>postinst, "chmod -R 777 /usr/share/%s" % self.shortname.lower() + print >>postinst, "chmod -R 555 /usr/share/%s/hosts" % self.shortname.lower() + postinst.close() + os.chmod(Filename(tempdir, "postinst").toOsSpecific(), 0755) postrmfile = open(Filename(tempdir, "postrm").toOsSpecific(), "w") print >>postrmfile, "#!/bin/sh" print >>postrmfile, "rm -rf /usr/share/%s" % self.shortname.lower() @@ -313,13 +319,16 @@ class Installer: # Create a control.tar.gz file in memory controlfile = Filename(tempdir, "control") + postinstfile = Filename(tempdir, "postinst") postrmfile = Filename(tempdir, "postrm") controltargz = CachedFile() controltarfile = tarfile.TarFile.gzopen("control.tar.gz", "w", controltargz, 9) controltarfile.add(controlfile.toOsSpecific(), "control") + controltarfile.add(postinstfile.toOsSpecific(), "postinst") controltarfile.add(postrmfile.toOsSpecific(), "postrm") controltarfile.close() controlfile.unlink() + postinstfile.unlink() postrmfile.unlink() # Create the data.tar.gz file in the temporary directory diff --git a/direct/src/p3d/pdeploy.py b/direct/src/p3d/pdeploy.py index b82c8a31f6..8b98111899 100644 --- a/direct/src/p3d/pdeploy.py +++ b/direct/src/p3d/pdeploy.py @@ -202,6 +202,12 @@ if version == '' and deploy_mode == 'installer': if not outputDir: print '\nYou must name the output directory with the -o parameter.\n' sys.exit(1) +if not outputDir.exists(): + print '\nThe specified output directory does not exist!\n' + sys.exit(1) +elif not outputDir.isDirectory(): + print '\nThe specified output directory is a file!\n' + sys.exit(1) if deploy_mode == 'standalone': s = Standalone(appFilename, tokens)