Bug#946233: Non-deterministic build depending on presence of cmake

Joachim Reichel reichel at debian.org
Thu Dec 5 22:37:25 GMT 2019


Source: pygalmesh
Version: 0.4.0
Severity: normal

Hi,

as already pointed in bug #933848: the build system behaves completely
different based on the presence or absence of cmake.

With cmake:

---
 debian/rules build
dh build --with python3 --buildsystem=pybuild
   dh_update_autotools_config -O--buildsystem=pybuild
   dh_autoreconf -O--buildsystem=pybuild
   dh_auto_configure -O--buildsystem=pybuild
I: pybuild base:217: dh_auto_configure --buildsystem=cmake --builddirectory="/mnt/debian/packages/cgal/rdeps/pygalmesh-0.4.0/.pybuild/cpython3_3.8_pygalmesh/build" -- -DPYTHON_EXECUTABLE:FILEPATH=/usr/bin/python3.8 -DPYTHON_LIBRARY:FILEPATH=/usr/lib/python3.8/config-3.8-x86_64-linux-gnu/libpython3.8.so -DPYTHON_INCLUDE_DIR:PATH=/usr/include/python3.8 
        cd .pybuild/cpython3_3.8_pygalmesh/build && cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_SYSCONFDIR=/etc -DCMAKE_INSTALL_LOCALSTATEDIR=/var -DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON -DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON -DCMAKE_INSTALL_RUNSTATEDIR=/run "-GUnix Makefiles" -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_INSTALL_LIBDIR=lib/x86_64-linux-gnu -DPYTHON_EXECUTABLE:FILEPATH=/usr/bin/python3.8 -DPYTHON_LIBRARY:FILEPATH=/usr/lib/python3.8/config-3.8-x86_64-linux-gnu/libpython3.8.so -DPYTHON_INCLUDE_DIR:PATH=/usr/include/python3.8 ../../..
---

Without cmake:

---
 debian/rules build
dh build --with python3 --buildsystem=pybuild
   dh_update_autotools_config -O--buildsystem=pybuild
   dh_autoreconf -O--buildsystem=pybuild
   dh_auto_configure -O--buildsystem=pybuild
I: pybuild base:217: python3.8 setup.py config 
running config
I: pybuild base:217: python3.7 setup.py config 
running config
   debian/rules override_dh_auto_build
make[1]: Entering directory '/mnt/debian/packages/cgal/rdeps/pygalmesh-0.4.0'
dh_auto_build
I: pybuild base:217: /usr/bin/python3.8 setup.py build 
running build
running build_py
creating /mnt/debian/packages/cgal/rdeps/pygalmesh-0.4.0/.pybuild/cpython3_3.8_pygalmesh/build/pygalmesh
copying pygalmesh/__about__.py -> /mnt/debian/packages/cgal/rdeps/pygalmesh-0.4.0/.pybuild/cpython3_3.8_pygalmesh/build/pygalmesh
copying pygalmesh/cli.py -> /mnt/debian/packages/cgal/rdeps/pygalmesh-0.4.0/.pybuild/cpython3_3.8_pygalmesh/build/pygalmesh
copying pygalmesh/main.py -> /mnt/debian/packages/cgal/rdeps/pygalmesh-0.4.0/.pybuild/cpython3_3.8_pygalmesh/build/pygalmesh
copying pygalmesh/__init__.py -> /mnt/debian/packages/cgal/rdeps/pygalmesh-0.4.0/.pybuild/cpython3_3.8_pygalmesh/build/pygalmesh
[...]
---

You should either add a Build-Depends or Build-Conflicts on cmake to make the
build deterministic.

With cmake, a binNMU would have been sufficient for the CGAL 5.0 transition.
Without cmake (which is likely the case on the buildds), a sourceful upload is
necessary.

Best regards,
  Joachim



More information about the debian-science-maintainers mailing list