From 612c53fc6c3d9ba2a57f7329baf055f1d59a9246 Mon Sep 17 00:00:00 2001 From: Alexandru Ardelean Date: Wed, 19 Jul 2017 10:19:10 +0300 Subject: [PATCH] python,python3: add host python pip install support To install Python packages host side, that may be needed for a build. The intent, is to try to reduce host-side Python packages being installed via LEDE/OpenWrt build system. Because those seem like a pain to maintain. The idea is adapted from Yousong's `python-packages` package. Signed-off-by: Alexandru Ardelean --- lang/python/python/files/python-host.mk | 13 +++++++++++++ lang/python/python/files/python-package.mk | 3 +++ lang/python/python3/files/python3-host.mk | 13 +++++++++++++ lang/python/python3/files/python3-package.mk | 3 +++ 4 files changed, 32 insertions(+) diff --git a/lang/python/python/files/python-host.mk b/lang/python/python/files/python-host.mk index 17e0758dd..f20dbdeab 100644 --- a/lang/python/python/files/python-host.mk +++ b/lang/python/python/files/python-host.mk @@ -60,6 +60,19 @@ define Build/Compile/HostPyRunHost ) endef +# Note: I shamelessly copied this from Yousong's logic (from python-packages); +HOST_PYTHON_PIP:=$(STAGING_DIR_HOSTPKG)/bin/pip$(PYTHON_VERSION) +define host_python_pip_install + $(HOST_PYTHON_PIP) install \ + --root=$(1) \ + --prefix=$(2) \ + --ignore-installed \ + $(3) +endef + +define host_python_pip_install_host +$(call host_python_pip_install,$(STAGING_DIR_HOSTPKG),"",$(1)) +endef # $(1) => build subdir # $(2) => additional arguments to setup.py diff --git a/lang/python/python/files/python-package.mk b/lang/python/python/files/python-package.mk index 1b82352c1..9c231f6ec 100644 --- a/lang/python/python/files/python-package.mk +++ b/lang/python/python/files/python-package.mk @@ -126,6 +126,9 @@ define Build/Compile/PyMod endef define PyBuild/Compile/Default + $(foreach pkg,$(HOST_PYTHON_PACKAGE_BUILD_DEPENDS), + $(call host_python_pip_install_host,$(pkg)) + ) $(call Build/Compile/PyMod,, \ install --prefix="/usr" --root="$(PKG_INSTALL_DIR)" \ --single-version-externally-managed \ diff --git a/lang/python/python3/files/python3-host.mk b/lang/python/python3/files/python3-host.mk index 487aada30..96bbc19cc 100644 --- a/lang/python/python3/files/python3-host.mk +++ b/lang/python/python3/files/python3-host.mk @@ -60,6 +60,19 @@ define Build/Compile/HostPy3RunHost ) endef +# Note: I shamelessly copied this from Yousong's logic (from python-packages); +HOST_PYTHON3_PIP:=$(STAGING_DIR_HOSTPKG)/bin/pip$(PYTHON3_VERSION) +define host_python3_pip_install + $(HOST_PYTHON3_PIP) install \ + --root=$(1) \ + --prefix=$(2) \ + --ignore-installed \ + $(3) +endef + +define host_python3_pip_install_host +$(call host_python3_pip_install,$(STAGING_DIR_HOSTPKG),"",$(1)) +endef # $(1) => build subdir # $(2) => additional arguments to setup.py diff --git a/lang/python/python3/files/python3-package.mk b/lang/python/python3/files/python3-package.mk index 22ee527a1..93b14fac2 100644 --- a/lang/python/python3/files/python3-package.mk +++ b/lang/python/python3/files/python3-package.mk @@ -126,6 +126,9 @@ define Build/Compile/Py3Mod endef define Py3Build/Compile/Default + $(foreach pkg,$(HOST_PYTHON3_PACKAGE_BUILD_DEPENDS), + $(call host_python3_pip_install_host,$(pkg)) + ) $(call Build/Compile/Py3Mod,, \ install --prefix="/usr" --root="$(PKG_INSTALL_DIR)" \ --single-version-externally-managed \