Source: assimp Version: 5.0.1~ds0-3 Tags: patch Control: clone -1 -2 Control: retitle -2 rules-require-build-prerequisite gives bogus advice Control: reassign -2 lintian Control: severity -2 important Control: tags -2 - patch Control: affects -2 src:assimp User: [email protected] Usertags: ftcbfs X-Debbugs-Cc: [email protected] X-Debbugs-Cc: [email protected]
assimp fails to cross build from source. It attempts to build a python module, but it ultimately fails doing so. While inspecting this, I discovered that assimp "Build-Depends: python3:any | python3-all:any | python3-dev:any | python3-all-dev:any | dh-sequence-python3". This is wrong on so many levels. For starters, sbuild ignores any alternative in unstable, so in practice, this happens to become "python3:any". Any other alternative is simply ignored and shouldn't be there. Then, issuing a dependency on python3-dev:any without libpython3-dev is practically never correct. That could be a separate lintian tag, but that's not too bad here as python3-dev isn't needed. Either you go python3-dev or you go python3-dev:any, libpython3-dev or you have a very special and unusual use case that I have never encountered anywhere. Also listing dh-sequence-python3 there is bogus. You already added "--with python3" in debian/rules. This is duplicate at best. Either should be dropped, but enabling a dh-addon in an alternative is clearly not right, and debhelper should likely fail hard when encountering that. Niels, do you agree? I wondered how one would come up with such a strange dependency and asked #debian-mentors for help. Kindly, a user named "itd" pointed me at the lintian tag rules-require-build-prerequisite, which very likely is the cause for this. Please disable the tag right now as it does more harm than good. While the tag isn't bad per-se, the advice it gives misleads users and produces broken packages. I request hiding or disabling it now and then figuring out what it really should say. Back to assimp. I looked into this to make it cross buildable, right? And it was failing in Python-ish stuff. So why do we actually build the Python module? Did I say module? It's not an extension? No, it isn't. And we really don't have to build it in an arch-only build. So the key to making assimp cross buildable is to make an arch-only build fully skip the Python stuff. And once you do that, you don't care about :any annotations anymore as those are practically irrelevant in Build-Depends-Indep. So I've attached a patch for assimp to fix the cross build and the strange build dependency. Please consider applying it. Helmut
diff --minimal -Nru assimp-5.0.1~ds0/debian/changelog assimp-5.0.1~ds0/debian/changelog --- assimp-5.0.1~ds0/debian/changelog 2021-10-06 09:02:14.000000000 +0200 +++ assimp-5.0.1~ds0/debian/changelog 2021-10-08 20:49:28.000000000 +0200 @@ -1,3 +1,15 @@ +assimp (5.0.1~ds0-3.1) UNRELEASED; urgency=medium + + * Non-maintainer upload. + * Fix python build dependency. (Closes: #-1) + + Alternatives in Build-Depends are ignored. + + Enable the python3 dh addon once only. + + Build python module in indep build only. + + Move python Build-Depends to B-D-I. + + Drop the :any nonsense. + + -- Helmut Grohne <[email protected]> Fri, 08 Oct 2021 20:49:28 +0200 + assimp (5.0.1~ds0-3) unstable; urgency=medium [ Debian Janitor ] diff --minimal -Nru assimp-5.0.1~ds0/debian/control assimp-5.0.1~ds0/debian/control --- assimp-5.0.1~ds0/debian/control 2021-10-06 09:02:14.000000000 +0200 +++ assimp-5.0.1~ds0/debian/control 2021-10-08 20:49:28.000000000 +0200 @@ -15,8 +15,10 @@ libstb-dev, libutfcpp-dev, zlib1g-dev | libz-dev, - python3:any | python3-all:any | python3-dev:any | python3-all-dev:any | dh-sequence-python3, doxygen, +Build-Depends-Indep: + dh-sequence-python3, + python3, Rules-Requires-Root: no Vcs-Git: https://salsa.debian.org/debian/assimp.git Vcs-Browser: https://salsa.debian.org/debian/assimp diff --minimal -Nru assimp-5.0.1~ds0/debian/rules assimp-5.0.1~ds0/debian/rules --- assimp-5.0.1~ds0/debian/rules 2021-10-06 09:02:14.000000000 +0200 +++ assimp-5.0.1~ds0/debian/rules 2021-10-08 20:49:28.000000000 +0200 @@ -33,7 +33,7 @@ export PYBUILD_NAME=pyassimp %: - dh $@ --with python3 --buildsystem=cmake + dh $@ --buildsystem=cmake override_dh_auto_configure: dh_auto_configure -- \ @@ -50,8 +50,10 @@ override_dh_auto_build: dh_auto_build +ifneq ($(filter python3-pyassimp,$(shell dh_listpackages)),) dh_auto_build --buildsystem=pybuild -- \ -d port/PyAssimp/ +endif cd obj-$(DEB_HOST_GNU_TYPE)/doc && doxygen Doxyfile cd doc && doxygen Doxyfile_Cmd @@ -61,8 +63,10 @@ override_dh_auto_install: dh_auto_install +ifneq ($(filter python3-pyassimp,$(shell dh_listpackages)),) dh_auto_install --buildsystem=pybuild -- \ -d port/PyAssimp/ +endif # IrrXML is not packaged for Debian, so drop the wrapper find debian/*/usr -name irrXMLWrapper.h -delete

