Commit 87f13b88 authored by Victor Stinner's avatar Victor Stinner

packaging: don't use locale encoding to compute MD5 checksums

Open the file in binary mode or use UTF-8 encoding.
parent b71cfdfb
...@@ -133,9 +133,9 @@ class install_distinfo(Command): ...@@ -133,9 +133,9 @@ class install_distinfo(Command):
writer.writerow((fpath, '', '')) writer.writerow((fpath, '', ''))
else: else:
size = os.path.getsize(fpath) size = os.path.getsize(fpath)
with open(fpath, 'r') as fp: with open(fpath, 'rb') as fp:
hash = hashlib.md5() hash = hashlib.md5()
hash.update(fp.read().encode()) hash.update(fp.read())
md5sum = hash.hexdigest() md5sum = hash.hexdigest()
writer.writerow((fpath, md5sum, size)) writer.writerow((fpath, md5sum, size))
......
...@@ -400,10 +400,10 @@ class MainProgram: ...@@ -400,10 +400,10 @@ class MainProgram:
self.data['description']).lower().encode()) self.data['description']).lower().encode())
ref = ref.digest() ref = ref.digest()
for readme in glob.glob('README*'): for readme in glob.glob('README*'):
with open(readme) as fp: with open(readme, encoding='utf-8') as fp:
contents = fp.read() contents = fp.read()
val = md5(re.sub('\s', '', contents = re.sub('\s', '', contents.lower()).encode()
contents.lower()).encode()).digest() val = md5(contents).digest()
if val == ref: if val == ref:
del data['description'] del data['description']
data['description-file'] = readme data['description-file'] = readme
......
...@@ -168,8 +168,8 @@ class InstallDistinfoTestCase(support.TempdirManager, ...@@ -168,8 +168,8 @@ class InstallDistinfoTestCase(support.TempdirManager,
else: else:
size = os.path.getsize(f) size = os.path.getsize(f)
md5 = hashlib.md5() md5 = hashlib.md5()
with open(f) as fp: with open(f, 'rb') as fp:
md5.update(fp.read().encode()) md5.update(fp.read())
hash = md5.hexdigest() hash = md5.hexdigest()
expected.append([f, hash, str(size)]) expected.append([f, hash, str(size)])
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment