python: Better host pip options 20657/head
authorJeffery To <jeffery.to@gmail.com>
Mon, 20 Feb 2023 11:10:39 +0000 (19:10 +0800)
committerJeffery To <jeffery.to@gmail.com>
Fri, 31 Mar 2023 05:08:39 +0000 (13:08 +0800)
pip by default will read system-wide and per-user configuration
files[1]. Setting PIP_CONFIG_FILE=/dev/null instructs pip to not read
any config files[2].

pip will spawn child processes of itself to do work, but not all options
are passed down to the child processes[3]. Setting global options as
environment variables[4] ensures they are passed down to any child
processes.

[1]: https://pip.pypa.io/en/stable/topics/configuration/#configuration-files
[2]: https://pip.pypa.io/en/stable/topics/configuration/#pip-config-file
[3]: https://github.com/pypa/pip/issues/9081#issue-733819665
[4]: https://pip.pypa.io/en/stable/topics/configuration/#environment-variables

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
lang/python/python3-host.mk
lang/python/python3/Makefile

index 8dc5e732fda3ba3d379b1a895f67a92d426e475a..54f9bde1e1a44f8706bffbe956e91b45b6682a2b 100644 (file)
@@ -93,6 +93,11 @@ HOST_PYTHON3_PIP:=$(STAGING_DIR_HOSTPKG)/bin/pip$(PYTHON3_VERSION)
 
 HOST_PYTHON3_PIP_CACHE_DIR:=$(DL_DIR)/pip-cache
 
+HOST_PYTHON3_PIP_VARS:= \
+       PIP_CACHE_DIR="$(HOST_PYTHON3_PIP_CACHE_DIR)" \
+       PIP_CONFIG_FILE=/dev/null \
+       PIP_DISABLE_PIP_VERSION_CHECK=1
+
 define SetupPyShim
        if [ -f $(1)/pyproject.toml ] && [ ! -f $(1)/setup.py ] ; then \
                $(CP) $(python3_mk_path)setup.py.shim $(1)setup.py ; \
@@ -104,11 +109,11 @@ endef
 define HostPython3/PipInstall
        $(call locked, \
                $(HOST_PYTHON3_VARS) \
+               $(HOST_PYTHON3_PIP_VARS) \
                $(HOST_PYTHON3_PIP) \
-                       --cache-dir "$(HOST_PYTHON3_PIP_CACHE_DIR)" \
-                       --disable-pip-version-check \
                        install \
                        --no-binary :all: \
+                       --progress-bar off \
                        --require-hashes \
                        $(1) \
                $(if $(CONFIG_PYTHON3_HOST_PIP_CACHE_WORLD_READABLE), \
index aa2f2624f031a5276232a65ffa5d96c31dbe2ed0..b666c411213fe3fdc1b5787acc6378d659166839 100644 (file)
@@ -179,11 +179,11 @@ endif
 
 ifeq ($(PYTHON3_SETUPTOOLS_BUILD),1)
 define Build/Compile/python3-setuptools
+       $(HOST_PYTHON3_PIP_VARS) \
        $(HOST_PYTHON3_PIP) \
-               --disable-pip-version-check \
-               --cache-dir "$(DL_DIR)/pip-cache" \
                install \
                --ignore-installed \
+               --progress-bar off \
                --root=$(PKG_BUILD_DIR)/install-setuptools \
                --prefix=/usr \
                $(PKG_BUILD_DIR)/Lib/ensurepip/_bundled/setuptools-$(PYTHON3_SETUPTOOLS_VERSION)-py3-none-any.whl
@@ -197,11 +197,11 @@ endif # CONFIG_PACKAGE_python3-setuptools
 
 ifdef CONFIG_PACKAGE_python3-pip
 define Build/Compile/python3-pip
+       $(HOST_PYTHON3_PIP_VARS) \
        $(HOST_PYTHON3_PIP) \
-               --disable-pip-version-check \
-               --cache-dir "$(DL_DIR)/pip-cache" \
                install \
                --ignore-installed \
+               --progress-bar off \
                --root=$(PKG_BUILD_DIR)/install-pip \
                --prefix=/usr \
                $(PKG_BUILD_DIR)/Lib/ensurepip/_bundled/pip-$(PYTHON3_PIP_VERSION)-py3-none-any.whl