1
0
mirror of https://github.com/certbot/certbot.git synced 2026-01-26 07:41:33 +03:00

Remove wheel hack in windows installer construction script (#8752)

In #8649 we added some code to trick pynsist and make it understand that `abi3` wheels for Windows are forward compatible, meaning that the cryptography wheel tagged `cp36-abi3` is in fact compatible with Python 3.6+, and not only Python 3.6.

Since pynsist 2.7 the tool now understand `abi3` wheels properly, and this trick is not needed anymore.

Please note that despite modifying the pynsist pinning in `dev_constraints.txt`, it will have no effect since pynsist currently escape the pinning system. This is handled in https://github.com/certbot/certbot/pull/8749.
This commit is contained in:
Adrien Ferrand
2021-04-02 19:37:19 +02:00
committed by GitHub
parent fea0b4e2e5
commit 8a84c88fee
2 changed files with 2 additions and 18 deletions

View File

@@ -83,10 +83,10 @@ PyGithub==1.52
Pygments==2.2.0
pyjwt==1.7.1
pylint==2.4.3
pynacl==1.3.0
# If pynsist version is upgraded, our NSIS template windows-installer/template.nsi
# must be upgraded if necessary using the new built-in one from pynsist.
pynacl==1.3.0
pynsist==2.6
pynsist==2.7
pytest==3.2.5
pytest-cov==2.5.1
pytest-forked==0.2

View File

@@ -1,7 +1,6 @@
#!/usr/bin/env python3
import ctypes
import os
import re
import shutil
import struct
import subprocess
@@ -65,21 +64,6 @@ def _compile_wheels(repo_path, build_path, venv_python):
command.extend(wheels_project)
subprocess.check_call(command, env=env)
# Cryptography uses now a unique wheel name "cryptography-VERSION-cpXX-abi3-win32.whl where
# cpXX is the lowest supported version of Python (eg. cp36 says that the wheel is compatible
# with Python 3.6+). While technically valid to describe a wheel compliant with the Stable
# Application Binary Interface, this naming convention makes pynsist falsely think that the
# wheel is compatible with Python 3.6 only.
# Let's trick pynsist by renaming the wheel until this is fixed upstream.
for file in os.listdir(wheels_path):
# Given that our Python version is 3.8, this rename files like
# cryptography-VERSION-cpXX-abi3-win32.whl into cryptography-VERSION-cp38-abi3-win32.whl
renamed = re.sub(r'^(.*)-cp\d+-abi3-(\w+)\.whl$', r'\1-cp{0}{1}-abi3-\2.whl'
.format(PYTHON_VERSION[0], PYTHON_VERSION[1]), file)
print(renamed)
if renamed != file:
os.replace(os.path.join(wheels_path, file), os.path.join(wheels_path, renamed))
def _prepare_build_tools(venv_path, venv_python, repo_path):
print('Prepare build tools')