Skip to content

Commit

Permalink
Sort file lists
Browse files Browse the repository at this point in the history
to generate reproducible zip files
that do not differ depending on (random) filesystem order

See https://reproducible-builds.org/ for why this matters.
  • Loading branch information
bmwiedemann committed Jun 21, 2017
1 parent 995d309 commit ffe351a
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions setuptools/command/bdist_egg.py
Expand Up @@ -303,10 +303,10 @@ def get_ext_outputs(self):

paths = {self.bdist_dir: ''}
for base, dirs, files in os.walk(self.bdist_dir):
for filename in files:
for filename in sorted(files):
if os.path.splitext(filename)[1].lower() in NATIVE_EXTENSIONS:
all_outputs.append(paths[base] + filename)
for filename in dirs:
for filename in sorted(dirs):
paths[os.path.join(base, filename)] = (paths[base] +
filename + '/')

Expand Down Expand Up @@ -464,9 +464,9 @@ def visit(z, dirname, names):
if not dry_run:
z = zipfile.ZipFile(zip_filename, mode, compression=compression)
for dirname, dirs, files in os.walk(base_dir):
visit(z, dirname, files)
visit(z, dirname, sorted(files))
z.close()
else:
for dirname, dirs, files in os.walk(base_dir):
visit(None, dirname, files)
visit(None, dirname, sorted(files))
return zip_filename

0 comments on commit ffe351a

Please sign in to comment.