diff options
| author | Jeffery To <jeffery.to@gmail.com> | 2020-08-15 14:33:30 +0800 |
|---|---|---|
| committer | Jeffery To <jeffery.to@gmail.com> | 2020-08-17 23:05:49 +0800 |
| commit | 722a5b8efa19fd54728af462441dce08cd7e545b (patch) | |
| tree | b5aff4cf8a2cdd88c56ef7c6215594ae712ed4e5 /lang/python/python3-package.mk | |
| parent | 6855683e3e1ce0c5e710c4cf67f4373aedddd6b2 (diff) | |
python3: Use hash-checking mode when installing host pip packages
In hash-checking mode[1], pip will verify downloaded package archives
(source tarballs in our case) against known SHA256 hashes before
installing the packages.
As a consequence, this requires the use of requirements files[2] and
pinning packages to known versions.
The syntax for package Makefiles has changed slightly;
HOST_PYTHON3_PACKAGE_BUILD_DEPENDS no longer accepts requirement
specifiers like "foo>=1.0", only requirements file names (which are the
same as package names in the most common case).
This also updates affected packages, in particular:
* python-zipp: "setuptools_scm[toml]" has been split into
"setuptools-scm toml" to reuse the requirements file for
setuptools-scm (the extra depends installed by "setuptools_scm[toml]"
is toml).
* python-pycparser: This previously used ply 3.10, whereas the
requirements file will now install 3.11.
[1]: https://pip.pypa.io/en/stable/reference/pip_install/#hash-checking-mode
[2]: https://pip.pypa.io/en/stable/user_guide/#requirements-files
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
Diffstat (limited to 'lang/python/python3-package.mk')
| -rw-r--r-- | lang/python/python3-package.mk | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/lang/python/python3-package.mk b/lang/python/python3-package.mk index 36f4ab07e..5673d15bb 100644 --- a/lang/python/python3-package.mk +++ b/lang/python/python3-package.mk @@ -194,13 +194,19 @@ PYTHON3_PKG_SETUP_GLOBAL_ARGS ?= PYTHON3_PKG_SETUP_ARGS ?= --single-version-externally-managed PYTHON3_PKG_SETUP_VARS ?= +PYTHON3_PKG_HOST_PIP_INSTALL_ARGS = \ + $(foreach req,$(HOST_PYTHON3_PACKAGE_BUILD_DEPENDS), \ + --requirement \ + $(if $(findstring /,$(req)),$(req),$(python3_mk_path)host-pip-requirements/$(req).txt) \ + ) + define Py3Build/FindStdlibDepends $(SHELL) $(python3_mk_path)python3-find-stdlib-depends.sh -n "$(PKG_NAME)" "$(PKG_BUILD_DIR)" endef define Py3Build/Compile/Default - $(if $(HOST_PYTHON3_PACKAGE_BUILD_DEPENDS), - $(call HostPython3/PipInstall,$(HOST_PYTHON3_PACKAGE_BUILD_DEPENDS)) + $(if $(PYTHON3_PKG_HOST_PIP_INSTALL_ARGS), \ + $(call HostPython3/PipInstall,$(PYTHON3_PKG_HOST_PIP_INSTALL_ARGS)) \ ) $(call Python3/ModSetup, \ $(PYTHON3_PKG_SETUP_DIR), \ |
