Bug#1057405: pynormaliz ftbfs with Python 3.12

Bo YU tsu.yubo at gmail.com
Sun Dec 10 04:09:29 GMT 2023


On Sun, Dec 10, 2023 at 1:28 AM Torrance, Douglas
<dtorrance at piedmont.edu> wrote:
>
> Control: reassign -1 src:nauty  2.8.8+ds-1
>
> On Sun 10 Dec 2023 12:08:31 AM +08, Bo YU <tsu.yubo at gmail.com> wrote:
> > [[PGP Signed Part:Undecided]]
> > On Mon, Dec 04, 2023 at 02:22:43PM +0100, Matthias Klose wrote:
> >>Package: src:pynormaliz
> >>Version: 2.18+ds-1
> >>Severity: serious
> >>Tags: sid trixie
> >>User: debian-python at lists.debian.org
> >>Usertags: python3.12
> >>
> >>pynormaliz ftbfs with Python 3.12:
> >>
> >>
> >>[...]
> >>dh execute_after_dh_auto_build --buildsystem=pybuild
> >>make[1]: Leaving directory '/<<PKGBUILDDIR>>'
> >>   dh_auto_test -a -O--buildsystem=pybuild
> >> I: pybuild base:310: cd
> >> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build;
> >> PYTHONPATH=/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build python3.12
> >>tests/runtests.py
> >>Error: nauty.c version mismatch
> >> E: pybuild pybuild:395: test: plugin distutils failed with: exit
> >> code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build;
> >>PYTHONPATH={build_dir} {interpreter} tests/runtests.py
> >> I: pybuild base:310: cd
> >> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build;
> >> PYTHONPATH=/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build python3.11
> >>tests/runtests.py
> >>Error: nauty.c version mismatch
> >> E: pybuild pybuild:395: test: plugin distutils failed with: exit
> >> code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build;
> >>PYTHONPATH={build_dir} {interpreter} tests/runtests.py
> >> dh_auto_test: error: pybuild --test -i python{version} -p "3.12
> >> 3.11" returned exit code 13
> >>make: *** [debian/rules:9: binary-arch] Error 25
> >>
> >
> > I have spent some time looking at this and I'm more inclined to think
> > about that this issue has nothing to do with python3.12.
> >
> > The error from (lib)nauty, unfortunately I did not find the root cause.
> > The error prototype is defined:
> > https://salsa.debian.org/science-team/nauty/-/blame/master/nauty.c?page=2#L1175
> >
> > pynormaliz use libnormaliz that defined some header files in
> > /usr/include/libnormaliz/ which has relative with nauty.
> >
> > In fact even on python3.12 the pynormaliz package can be built with
> > nauty 2.8.6+ds-2. Now the failed version is on nauty 2.8.8+ds-1. So if
> > you look at the update for nauty and then have a better understand:
> > https://tracker.debian.org/pkg/nauty
> >
> > So I suspected the root cause is that upgrading of nauty. If someone
> > help me to understand the specially call chain or debug method I'm
> > appreciate it.
>
> I think this is really a nauty bug, and so it's showing up in normaliz and consequently pynormaliz.  Here it is in normaliz, for example:
>
> $ cat cube_3.in
> amb_space 3
> constraints 6 symbolic
> x[1] >= 0;
> x[2] >= 0;
> x[3] >= 0;
> x[1] <= 1;
> x[2] <= 1;
> x[3] <= 1;
> EuclideanAutomorphisms
> $ normaliz cube_3.in
> Error: nauty.c version mismatch
>
> I think the underlying problem is that nauty forces all of its reverse dependencies to be built against the latest version with the nauty_check() function.  But currently, we're not bumping the SONAME version when this happens to trigger a transition.  Maybe we should do that.

Yeah, I agree with that. I wondered why we do not have a transition for nauty.:)

At first I thought about libnormaliz did not rebuild based on nauty
2.8.8 then I rebuilt a new verision based on 2.8.8, but the error
still existed, so I have confusion more.

Bo
>
> Doug



More information about the debian-science-maintainers mailing list