From e066fdaf1147c0ce361ee1f08a4e56170be26e1b Mon Sep 17 00:00:00 2001 From: Alexandru Ardelean Date: Sun, 16 Jul 2017 18:46:36 +0300 Subject: python,python3: handle install script errors better Depending on execution order the `python-package-install.sh` script would return a non-zero err code. So, this enforces that all commands in the script don't fail (via the `set -e` directive). Signed-off-by: Alexandru Ardelean --- .../python/python3/files/python3-package-install.sh | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) (limited to 'lang/python/python3/files') diff --git a/lang/python/python3/files/python3-package-install.sh b/lang/python/python3/files/python3-package-install.sh index ae5e17280..cbb84ab1c 100644 --- a/lang/python/python3/files/python3-package-install.sh +++ b/lang/python/python3/files/python3-package-install.sh @@ -1,4 +1,5 @@ #!/bin/sh +set -e process_filespec() { local src_dir="$1" @@ -50,10 +51,13 @@ find "$dst_dir" -name "*.egg-info" | xargs rm -rf if [ "$mode" == "sources" ] ; then # Copy only python source files - find $dst_dir -not -name "*\.py" | xargs rm -f + find $dst_dir -type f -not -name "*\.py" | xargs rm -f + # Delete empty folders (if the case) - find $dst_dir/usr -type d | xargs rmdir &> /dev/null - rmdir $dst_dir/usr &> /dev/null + if [ -d "$dst_dir/usr" ] ; then + find $dst_dir/usr -type d | xargs rmdir --ignore-fail-on-non-empty + rmdir --ignore-fail-on-non-empty $dst_dir/usr + fi exit 0 fi @@ -67,6 +71,15 @@ $python -m compileall -b -d '/' $dst_dir || { echo "python -m compileall err-ed" exit 1 } + # Delete source files and pyc [ un-optimized bytecode files ] # We may want to make this optimization thing configurable later, but not sure atm -find $dst_dir -name "*\.py" | xargs rm -f +find $dst_dir -type f -name "*\.py" | xargs rm -f + +# Delete empty folders (if the case) +if [ -d "$dst_dir/usr" ] ; then + find $dst_dir/usr -type d | xargs rmdir --ignore-fail-on-non-empty + rmdir --ignore-fail-on-non-empty $dst_dir/usr +fi + +exit 0 -- cgit From 93a6545591cb5208f297c0b95d56470ae26f45b3 Mon Sep 17 00:00:00 2001 From: Alexandru Ardelean Date: Wed, 19 Jul 2017 10:07:35 +0300 Subject: python,python3: drop HostPy/Compile/Default rules Not used, and will not be used. Signed-off-by: Alexandru Ardelean --- lang/python/python/files/python-host.mk | 7 ------- lang/python/python3/files/python3-host.mk | 7 ------- 2 files changed, 14 deletions(-) (limited to 'lang/python/python3/files') diff --git a/lang/python/python/files/python-host.mk b/lang/python/python/files/python-host.mk index 6953a09d9..17e0758dd 100644 --- a/lang/python/python/files/python-host.mk +++ b/lang/python/python/files/python-host.mk @@ -71,11 +71,4 @@ define Build/Compile/HostPyMod $(3)) endef -define HostPy/Compile/Default - $(call Build/Compile/HostPyMod,,\ - install --root="$(STAGING_DIR_HOSTPKG)" --prefix="" \ - --single-version-externally-managed \ - ) -endef - endif # __python_host_mk_inc diff --git a/lang/python/python3/files/python3-host.mk b/lang/python/python3/files/python3-host.mk index 3abf6aa5f..487aada30 100644 --- a/lang/python/python3/files/python3-host.mk +++ b/lang/python/python3/files/python3-host.mk @@ -71,11 +71,4 @@ define Build/Compile/HostPy3Mod $(3)) endef -define HostPy3/Compile/Default - $(call Build/Compile/HostPy3Mod,,\ - install --root="$(STAGING_DIR_HOSTPKG)" --prefix="" \ - --single-version-externally-managed \ - ) -endef - endif # __python3_host_mk_inc -- cgit From 612c53fc6c3d9ba2a57f7329baf055f1d59a9246 Mon Sep 17 00:00:00 2001 From: Alexandru Ardelean Date: Wed, 19 Jul 2017 10:19:10 +0300 Subject: 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(+) (limited to 'lang/python/python3/files') 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 \ -- cgit