From 68361ff7893f5ec1d3b84a35a09e219f9b995767 Mon Sep 17 00:00:00 2001 From: Faik Uygur Date: Thu, 17 Aug 2006 18:56:25 +0000 Subject: [PATCH] tarfile should honor umask. --- pisi/archive.py | 6 ++++++ pisi/constants.py | 3 +++ 2 files changed, 9 insertions(+) diff --git a/pisi/archive.py b/pisi/archive.py index 8d24f89c..8529786e 100644 --- a/pisi/archive.py +++ b/pisi/archive.py @@ -123,6 +123,12 @@ class ArchiveTar(ArchiveBase): self.tar.extract(tarinfo) + # tarfile.extract does not honor umask. It must be honored explicitly. + # see --no-same-permissions option of tar(1), which is the deafult + # behaviour. + if not os.path.islink(tarinfo.name): + os.chmod(tarinfo.name, tarinfo.mode - ctx.const.umask) + os.chdir(oldwd) self.close() diff --git a/pisi/constants.py b/pisi/constants.py index 40445d15..075d7898 100644 --- a/pisi/constants.py +++ b/pisi/constants.py @@ -79,6 +79,9 @@ class Constants: self.__c.install_tar = "install.tar" self.__c.install_tar_lzma = "install.tar.lzma" + #file/directory permissions + self.__c.umask = 0022 + # functions in actions_file self.__c.setup_func = "setup" self.__c.build_func = "build"