Skip to content

Commit 0a86dea

Browse files
committed
Fix typos
1 parent 52aa582 commit 0a86dea

File tree

2 files changed

+5
-37
lines changed

2 files changed

+5
-37
lines changed

utils/create_xpi.py

Lines changed: 3 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -6,55 +6,22 @@
66
# ZipFile: infolist, write, writestr,
77

88
import os
9-
import zipfile2_6 as zipfile
9+
import zipfile_deterministic as zipfile
1010
import sys
1111
import time
1212
import glob
1313

1414
xpiName = sys.argv[1]
1515
exclusionsFile = sys.argv[2]
1616
exclusions = []
17-
tmpfile = '../pkg/tmp.xpi'
1817
compress = zipfile.ZIP_DEFLATED
1918

2019
with open(exclusionsFile) as f:
2120
for line in f:
2221
exclusions.extend(glob.glob(line.strip()))
22+
exclusions = map(lambda x: './'+x, exclusions)
2323

2424
xpiFile = zipfile.ZipFile(xpiName, mode='w', compression=compress)
2525

26-
def createTmpZipInfo():
27-
"""
28-
Create a non-deterministic zip in order to use the file info
29-
generated to create a deterministic zip
30-
"""
31-
xpiFileTmp = zipfile.ZipFile(tmpfile, mode='w', compression=compress)
32-
for root,subfolders,files in os.walk('.'):
33-
for fi in files:
34-
filename = os.path.join(root,fi)
35-
if filename not in map(lambda x: './'+x, exclusions):
36-
xpiFileTmp.write(filename, compress_type=compress)
37-
xpiFileTmp.close()
38-
xpiFileTmp.infolist().sort(key = lambda x: x.filename)
39-
return xpiFileTmp.infolist()
40-
41-
def constructZipDet():
42-
"""
43-
Create a deterministic zip by setting timestamps,
44-
operating system, and pkzip version info to hard-coded
45-
values. See the pkzip specification at
46-
https://www.pkware.com/documents/casestudies/APPNOTE.TXT
47-
"""
48-
tmpInfo = createTmpZipInfo()
49-
for info in tmpInfo:
50-
info.date_time = time.gmtime(1378343307)
51-
info.create_system = 3 # aka, UNIX
52-
info.create_version = 20
53-
info.extract_version = 20
54-
info.external_attr = 0600 << 16
55-
info.file_size = long(info.file_size) # is int on some OS's
56-
xpiFile.writestr(info, open(info.filename).read())
57-
58-
constructZipDet()
26+
xpiFile.write_from_directory('.', exclusions, compress_type=compress)
5927
xpiFile.close()
60-
os.remove(tmpfile)

utils/zipfile_deterministic.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
import struct, os, time, sys, shutil
99
import binascii, cStringIO, stat
10+
import unicodedata
1011

1112
try:
1213
import zlib # We may need its compression method
@@ -1133,7 +1134,7 @@ def writestr(self, zinfo_or_arcname, bytes):
11331134
self.NameToInfo[zinfo.filename] = zinfo
11341135

11351136
def write_from_directory(self, directory, exclusions=None,
1136-
compress_type=None, date_time=DEFAULT_DATE)
1137+
compress_type=None, date_time=DEFAULT_DATE):
11371138
"""
11381139
Create a ZIP package deterministically from a directory.
11391140
We need to sort the files in an OS-independent way before adding to the archive.

0 commit comments

Comments
 (0)