From cd11ca9de3ea8d1c1efaabe0a7d9c4daea56a15b Mon Sep 17 00:00:00 2001 From: Tim Orling Date: Sat, 2 Mar 2024 13:56:03 -0800 Subject: criu: fix pycriu build of wheel Inherit python_setuptools_build_meta instead of setuptools3, as this is the build-backend declared in the pyproject.toml We seem to need python3-protobuf-native as a DEPENDS, but then the dependency check complains because our version in meta-python is python3-protobuf_4.25.bb Workaround this (for now?) by telling python3 -m build to --skip-dependency-check This allows criu to _build_. Whether it is functional and proper is a different story. Signed-off-by: Tim Orling --- recipes-containers/criu/criu_git.bb | 12 +++------ ...04-pycriu-attr-pycriu.version.__version__.patch | 20 +++++++++++++++ ...pycriu-skip-dependency-check-during-build.patch | 30 ++++++++++++++++++++++ 3 files changed, 53 insertions(+), 9 deletions(-) create mode 100644 recipes-containers/criu/files/0004-pycriu-attr-pycriu.version.__version__.patch create mode 100644 recipes-containers/criu/files/0005-pycriu-skip-dependency-check-during-build.patch diff --git a/recipes-containers/criu/criu_git.bb b/recipes-containers/criu/criu_git.bb index c4539e34..b06fa636 100644 --- a/recipes-containers/criu/criu_git.bb +++ b/recipes-containers/criu/criu_git.bb @@ -20,11 +20,13 @@ SRC_URI = "git://github.com/checkpoint-restore/criu.git;branch=master;protocol=h file://0001-criu-Skip-documentation-install.patch \ file://0002-criu-Change-libraries-install-directory.patch \ file://0003-crit-pycriu-build-and-install-wheels.patch \ + file://0004-pycriu-attr-pycriu.version.__version__.patch \ + file://0005-pycriu-skip-dependency-check-during-build.patch \ " COMPATIBLE_HOST = "(x86_64|arm|aarch64).*-linux" -DEPENDS += "libnl libcap protobuf-c-native protobuf-c util-linux-native libbsd libnet" +DEPENDS += "libnl libcap protobuf-c-native protobuf-c util-linux-native libbsd libnet python3-protobuf-native" RDEPENDS:${PN} = "bash cgroup-lite" S = "${WORKDIR}/git" @@ -55,7 +57,6 @@ export HOST_SYS export HOSTCFLAGS = "${BUILD_CFLAGS}" inherit python_setuptools_build_meta -#inherit setuptools3 inherit pkgconfig B = "${S}" @@ -73,10 +74,6 @@ do_compile:prepend() { ln -s ${PKG_CONFIG_SYSROOT_DIR}/usr/include/google/protobuf/descriptor.proto ${S}/images/google/protobuf/descriptor.proto } -#PEP517_SOURCE_PATH ="${S}/lib" - -#do_compile[network] = "1" - do_compile () { #python_pep517_do_compile #export PEP517_SOURCE_PATH="${S}/crit" @@ -87,12 +84,9 @@ do_compile () { oe_runmake FULL_PYTHON=${PYTHON} PYTHON=nativepython3 } -#do_install[network] = "1" - do_install () { export INSTALL_LIB="${libdir}/${PYTHON_DIR}/site-packages" export PEP517_WHEEL_PATH="${PEP517_WHEEL_PATH}" - #oe_runmake PREFIX=${exec_prefix} LIBDIR=${libdir} DESTDIR="${D}" PLUGINDIR="${localstatedir}/lib" PIP_BREAK_SYSTEM_PACKAGES=1 install oe_runmake PREFIX=${exec_prefix} LIBDIR=${libdir} DESTDIR="${D}" PLUGINDIR="${localstatedir}/lib" FULL_PYTHON=${PYTHON} PYTHON=nativepython3 install # python3's distutils has a feature of rewriting the interpeter on setup installed diff --git a/recipes-containers/criu/files/0004-pycriu-attr-pycriu.version.__version__.patch b/recipes-containers/criu/files/0004-pycriu-attr-pycriu.version.__version__.patch new file mode 100644 index 00000000..e05c8835 --- /dev/null +++ b/recipes-containers/criu/files/0004-pycriu-attr-pycriu.version.__version__.patch @@ -0,0 +1,20 @@ +From a2b17e7b082786e2d7b7585b33815572c9c521f0 Mon Sep 17 00:00:00 2001 +From: Tim Orling +Date: Sat, 2 Mar 2024 13:47:46 -0800 +Subject: [PATCH] pycriu: attr pycriu.version.__version__ + +Signed-off-by: Tim Orling +--- + lib/pyproject.toml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/pyproject.toml b/lib/pyproject.toml +index 8eb4b7084..5a92f8540 100644 +--- a/lib/pyproject.toml ++++ b/lib/pyproject.toml +@@ -16,4 +16,4 @@ requires-python = ">=3.6" + packages = ["pycriu", "pycriu.images"] + + [tool.setuptools.dynamic] +-version = {attr = "pycriu.__version__"} ++version = {attr = "pycriu.version.__version__"} diff --git a/recipes-containers/criu/files/0005-pycriu-skip-dependency-check-during-build.patch b/recipes-containers/criu/files/0005-pycriu-skip-dependency-check-during-build.patch new file mode 100644 index 00000000..c293131d --- /dev/null +++ b/recipes-containers/criu/files/0005-pycriu-skip-dependency-check-during-build.patch @@ -0,0 +1,30 @@ +From 2ec745ac11357e3243ef1f23f817c276518ce7cb Mon Sep 17 00:00:00 2001 +From: Tim Orling +Date: Sat, 2 Mar 2024 13:48:54 -0800 +Subject: [PATCH] pycriu: --skip-dependency-check during build + +It complains about needing protobuf<4, python3-protobuf is 4.25 in meta-python + +Signed-off-by: Tim Orling +--- + lib/Makefile | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/lib/Makefile b/lib/Makefile +index b5f147482..e3faa7a06 100644 +--- a/lib/Makefile ++++ b/lib/Makefile +@@ -66,11 +66,11 @@ ifeq ($(PIP_BREAK_SYSTEM_PACKAGES),0) + $(E) " Consider using PIP_BREAK_SYSTEM_PACKAGES=1 make install" + else + $(E) " INSTALL " pycriu +- $(Q) $(PYTHON) -m build --no-isolation --wheel --outdir $(PEP517_WHEEL_PATH) $(PEP517_SOURCE_PATH) $(PEP517_BUILD_OPTS) ++ $(Q) $(PYTHON) -m build --no-isolation --wheel --skip-dependency-check --outdir $(PEP517_WHEEL_PATH) $(PEP517_SOURCE_PATH) $(PEP517_BUILD_OPTS) + endif + else + $(E) " BUILD " pycriu +- $(Q) $(PYTHON) -m build --no-isolation --wheel --outdir $(PEP517_WHEEL_PATH) $(PEP517_SOURCE_PATH) $(PEP517_BUILD_OPTS) ++ $(Q) $(PYTHON) -m build --no-isolation --wheel --skip-dependency-check --outdir $(PEP517_WHEEL_PATH) $(PEP517_SOURCE_PATH) $(PEP517_BUILD_OPTS) + $(E) " INSTALL " pycriu + #nativepython3 -m installer ${INSTALL_WHEEL_COMPILE_BYTECODE} --interpreter "${USRBINPATH}/env ${PEP517_INSTALL_PYTHON}" --destdir=${D} ${PEP517_WHEEL_PATH}/*.whl + -- cgit v1.2.3-54-g00ecf