From 41841f2e66ae7734105738548189865ad846d6a5 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 7 Jun 2011 09:49:33 -0600 Subject: [PATCH] Fix creation of empty dorectories in zip files --- setup/installer/windows/freeze.py | 4 ++-- src/calibre/utils/zipfile.py | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/setup/installer/windows/freeze.py b/setup/installer/windows/freeze.py index 7d1928bd13..d901b51642 100644 --- a/setup/installer/windows/freeze.py +++ b/setup/installer/windows/freeze.py @@ -379,7 +379,7 @@ class Win32Freeze(Command, WixMixIn): name = '%s-portable-%s.zip'%(__appname__, __version__) with zipfile.ZipFile(self.j('dist', name), 'w', zipfile.ZIP_DEFLATED) as zf: - self.add_dir_to_zip(zf, base) + self.add_dir_to_zip(zf, base, 'Calibre Portable') def add_dir_to_zip(self, zf, path, prefix=''): ''' @@ -387,7 +387,7 @@ class Win32Freeze(Command, WixMixIn): ''' if prefix: zi = zipfile.ZipInfo(prefix+'/') - zi.external_attr = 0700 << 16 + zi.external_attr = 16 zf.writestr(zi, '') cwd = os.path.abspath(os.getcwd()) try: diff --git a/src/calibre/utils/zipfile.py b/src/calibre/utils/zipfile.py index 868445d15a..769c3e9bed 100644 --- a/src/calibre/utils/zipfile.py +++ b/src/calibre/utils/zipfile.py @@ -1297,7 +1297,9 @@ class ZipFile: Add a directory recursively to the zip file with an optional prefix. ''' if prefix: - self.writestr(prefix+'/', '', 0700) + zi = ZipInfo(prefix+'/') + zi.external_attr = 16 + self.writestr(zi, '') cwd = os.path.abspath(os.getcwd()) try: os.chdir(path)