Source: gnuradio
Version: 3.8.0.0-6
Severity: normal

If the build system has Python 3.6 (as /usr/bin/python3.6) installed while
the libpython3-dev packages uses Python 3.7, the build fails. This can
still be the case on old systems if the user has any dependencies on older
Python.
This does not happen on build daemons or in a normal
pbuilder/sbuild environment, so I'm not marking this as an important bug
(FTBFS).
However: This could easily become an issue if/when Python3.8 starts to
appear, especially if Debian switches the default to Python 3.8 before
getting rid of the need to have Python 3.7 installed.
The root cause is that cmake FindPythonLibs looks
for /usr/lib/x86_64-linux-gnu/libpython3.?m.so where the 3.? part needs to
match the version of the /usr/bin/python* binary it chose before. And for
some reason, it looks for python3.x (with x in ascending order) before
checking for python3. If the python3.6 package is present, it chooses
/usr/bin/python3.6 and would thus expect the libpython3.6m.so library, but
libpython3-dev gets the libpython3.7m.so library installed - so there is a
mismatch, cmake disables the Python support in gnuradio and the package
fails to complete the build because it can't find the python related files
mentioned in the debian/*.install files.

The workaround is simple: Enforce use of /usr/bin/python3 - This is
provided froma binary package (python3-minimal) that comes from the same
source as the libpython3-dev package (python3-defaults) and is thus
guaranteed to always match with the library cmake checks.

Index: gnuradio-3.8.0.0/debian/rules
===================================================================
--- gnuradio-3.8.0.0.orig/debian/rules
+++ gnuradio-3.8.0.0/debian/rules
@@ -6,7 +6,7 @@ export DEB_HOST_MULTIARCH
  dh $@ --with python3 --buildsystem=cmake+ninja

 override_dh_auto_configure:
- dh_auto_configure  --buildsystem=cmake+ninja --
-DLIB_SUFFIX="/$(DEB_HOST_MULTIARCH)" -DENABLE_INTERNAL_VOLK=OFF
+ dh_auto_configure  --buildsystem=cmake+ninja --
-DLIB_SUFFIX="/$(DEB_HOST_MULTIARCH)" -DENABLE_INTERNAL_VOLK=OFF
-DPYTHON_EXECUTABLE="/usr/bin/python3"

 override_dh_python3:
  dh_python3 --no-ext-rename

Reply via email to