summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--wheel/wheelfile.py5
1 files changed, 3 insertions, 2 deletions
diff --git a/wheel/wheelfile.py b/wheel/wheelfile.py
index 93b4bfa..486e17e 100644
--- a/wheel/wheelfile.py
+++ b/wheel/wheelfile.py
@@ -4,6 +4,7 @@ import csv
import hashlib
import os.path
import re
+import stat
import time
from collections import OrderedDict
from distutils import log as logger
@@ -138,14 +139,14 @@ class WheelFile(ZipFile):
data = f.read()
zinfo = ZipInfo(arcname or filename, date_time=get_zipinfo_datetime(st.st_mtime))
- zinfo.external_attr = st.st_mode << 16
+ zinfo.external_attr = (stat.S_IMODE(st.st_mode) | stat.S_IFMT(st.st_mode)) << 16
zinfo.compress_type = ZIP_DEFLATED
self.writestr(zinfo, data, compress_type)
def mkdir(self, filename, arcname):
st = os.stat(filename)
zinfo = ZipInfo(arcname + '/', date_time=get_zipinfo_datetime(st.st_mtime))
- zinfo.external_attr = st.st_mode << 16
+ zinfo.external_attr = (stat.S_IMODE(st.st_mode) | stat.S_IFMT(st.st_mode)) << 16
zinfo.compress_type = ZIP_DEFLATED
self.writestr(zinfo, b'')