python3-package.mk: add check for dependencies in host-pip-requirements
authorAlexandru Ardelean <ardeleanalex@gmail.com>
Wed, 25 Aug 2021 12:59:56 +0000 (15:59 +0300)
committerAlexandru Ardelean <ardeleanalex@gmail.com>
Mon, 30 Aug 2021 07:01:48 +0000 (10:01 +0300)
It often happens that we update a package to a new version (e.g. cffi) to a
newer version, but we forget to update the version for cffi in the
`lang/python/host-pip-requirements/cffi.txt` file.

This check adds a minimal check, so that when a build occurs for a Python
package, if there is a mention/listing of this package in
`lang/python/host-pip-requirements/` it will check that the versions match.

This way, when we update a package, we get a build failure and update the
host version as well.

This will omit packages (like Cython) that are not packaged for OpenWrt,
but are host-side dependencies only.
But until we find some mechanism to check for those, we will probably only
notice to update them when another build occurs (at the very least).

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
lang/python/python3-package.mk

index 5673d15bb003285294a8f5f2595fc25e5b08a245..96fafe445031df948f69842211b898230308bc69 100644 (file)
@@ -204,6 +204,17 @@ define Py3Build/FindStdlibDepends
        $(SHELL) $(python3_mk_path)python3-find-stdlib-depends.sh -n "$(PKG_NAME)" "$(PKG_BUILD_DIR)"
 endef
 
+ifneq ($(strip $(PYPI_NAME)),)
+define Py3Build/CheckHostPipVersionMatch
+       if grep -q "$(PYPI_NAME)==" $(python3_mk_path)host-pip-requirements/*.txt ; then \
+               if ! grep -q "$(PYPI_NAME)==$(PKG_VERSION)" $(python3_mk_path)host-pip-requirements/*.txt ; then \
+                       printf "\nPlease update version of $(PYPI_NAME) to $(PKG_VERSION) in 'host-pip-requirements'/\n\n" ; \
+                       exit 1 ; \
+               fi \
+       fi
+endef
+endif
+
 define Py3Build/Compile/Default
        $(if $(PYTHON3_PKG_HOST_PIP_INSTALL_ARGS), \
                $(call HostPython3/PipInstall,$(PYTHON3_PKG_HOST_PIP_INSTALL_ARGS)) \
@@ -226,5 +237,6 @@ ifeq ($(strip $(PYTHON3_PKG_BUILD)),1)
   ifeq ($(PY3),stdlib)
     Hooks/Configure/Post+=Py3Build/FindStdlibDepends
   endif
+  Hooks/Configure/Post+=Py3Build/CheckHostPipVersionMatch
   Build/Compile=$(Py3Build/Compile)
 endif