pkg-python: ignore user site-packages directory
authorYegor Yefremov <yegorslists@googlemail.com>
Thu, 6 Apr 2017 18:46:08 +0000 (20:46 +0200)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Sat, 8 Apr 2017 13:45:41 +0000 (15:45 +0200)
According to PEP 370 Python will also search for the packages in the
user site-packages directory. This can affect build reproducibility.

The solution is to use PYTHONNOUSERSITE=1 for all Python packages,
i.e. both host and target variants.

Fixes bug #9791.

Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
package/pkg-python.mk

index fb124e1dd36e1e98db0acc0233b3a1e8f3ae1ba3..2418f5dfa41821a242f6d93e566790e95b66d184 100644 (file)
@@ -32,6 +32,7 @@ PKG_PYTHON_DISTUTILS_ENV = \
        LDFLAGS="$(TARGET_LDFLAGS)" \
        LDSHARED="$(TARGET_CROSS)gcc -shared" \
        PYTHONPATH="$(if $(BR2_PACKAGE_PYTHON3),$(PYTHON3_PATH),$(PYTHON_PATH))" \
+       PYTHONNOUSERSITE=1 \
        _PYTHON_SYSCONFIGDATA_NAME="$(PKG_PYTHON_SYSCONFIGDATA_NAME)" \
        _python_sysroot=$(STAGING_DIR) \
        _python_prefix=/usr \
@@ -48,7 +49,8 @@ PKG_PYTHON_DISTUTILS_INSTALL_STAGING_OPTS = \
 
 # Host distutils-based packages
 HOST_PKG_PYTHON_DISTUTILS_ENV = \
-       PATH=$(BR_PATH)
+       PATH=$(BR_PATH) \
+       PYTHONNOUSERSITE=1
 
 HOST_PKG_PYTHON_DISTUTILS_INSTALL_OPTS = \
        --prefix=$(HOST_DIR)/usr
@@ -58,6 +60,7 @@ PKG_PYTHON_SETUPTOOLS_ENV = \
        _PYTHON_SYSCONFIGDATA_NAME="$(PKG_PYTHON_SYSCONFIGDATA_NAME)" \
        PATH=$(BR_PATH) \
        PYTHONPATH="$(if $(BR2_PACKAGE_PYTHON3),$(PYTHON3_PATH),$(PYTHON_PATH))" \
+       PYTHONNOUSERSITE=1 \
        _python_sysroot=$(STAGING_DIR) \
        _python_prefix=/usr \
        _python_exec_prefix=/usr
@@ -76,7 +79,8 @@ PKG_PYTHON_SETUPTOOLS_INSTALL_STAGING_OPTS = \
 
 # Host setuptools-based packages
 HOST_PKG_PYTHON_SETUPTOOLS_ENV = \
-       PATH=$(BR_PATH)
+       PATH=$(BR_PATH) \
+       PYTHONNOUSERSITE=1
 
 HOST_PKG_PYTHON_SETUPTOOLS_INSTALL_OPTS = \
        --prefix=$(HOST_DIR)/usr