sagemath/sage

upgrade Normaliz to 3.8.8, PyNormaliz to 2.12, add script package libnauty

videlec opened this issue · 204 comments

Tarballs: see checksums.ini

These new releases include dynamic bitset classes that allow dynamic h-representation computations.

We also install nauty header and library in order that Normaliz compile with nauty support (for computing automorphism group).

Depends on #30262

Upstream: Fixed upstream, but not in a stable release.

CC: @mkoeppe @jplab @isuruf @w-bruns @tscrim @kliem @LaisRast @slel

Component: packages: standard

Keywords: package upgrade days101

Author: Vincent Delecroix, Jonathan Kliem, Matthias Koeppe

Branch: c55a701

Reviewer: Jonathan Kliem, Matthias Koeppe

Issue created by migration from https://trac.sagemath.org/ticket/27952

New commits:

fdb67b5upgrade normaliz to 3.7.3

Commit: fdb67b5

Description changed:

--- 
+++ 
@@ -1,4 +1,4 @@
 Tarballs
 
 - Normaliz: https://github.com/Normaliz/Normaliz/releases/download/v3.7.3/normaliz-3.7.3.tar.gz
-- PyNormaliz: ?
+- PyNormaliz: https://files.pythonhosted.org/packages/b3/2a/6bf3717ff75f4b6dd8cbcba3dffdf75e65162c7aaad4ff95a64b4a768e7e/PyNormaliz-2.7.tar.gz

Changed keywords from none to package upgrade

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

7b7168bupgrade normaliz to 3.7.3 and PyNormaliz to 2.7

Changed commit from fdb67b5 to 7b7168b

Author: Vincent Delecroix

Description changed:

--- 
+++ 
@@ -1,4 +1,4 @@
 Tarballs
 
 - Normaliz: https://github.com/Normaliz/Normaliz/releases/download/v3.7.3/normaliz-3.7.3.tar.gz
-- PyNormaliz: https://files.pythonhosted.org/packages/b3/2a/6bf3717ff75f4b6dd8cbcba3dffdf75e65162c7aaad4ff95a64b4a768e7e/PyNormaliz-2.7.tar.gz
+

Dependencies: #27920

Description changed:

--- 
+++ 
@@ -1,4 +1,4 @@
 Tarballs
 
 - Normaliz: https://github.com/Normaliz/Normaliz/releases/download/v3.7.3/normaliz-3.7.3.tar.gz
-
+- PyNormaliz: https://files.pythonhosted.org/packages/6b/92/f0074f58dc8a36529b374e3b18a7f21557bf113fb3480bb3d327d4fc5a2f/PyNormaliz-2.8.tar.gz

Description changed:

comment:9

Self tests do not pass on my computer

$ python3 setup.py test
/opt/sage/sage-py3-gcc/local/lib/python3.7/distutils/dist.py:274: UserWarning: Unknown distribution option: 'long_description_content_type'
  warnings.warn(msg)
running test
Doctest must_be_matrices-39.txt
  2 tests
Doctest test_rational_cones.txt
  34 tests
Doctest segfault-45.txt
  3 tests
Doctest autom.txt
Doctest failures
comment:10

And I confirm the segfault in a Python3 console

$ python3
Python 3.7.3 (default, May 26 2019, 12:00:16) 
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from PyNormaliz import Cone, NmzCone, NmzResult
>>> V = [[-1, -1, 1], [-1, 0, 1], [-1, 1, 1], [0, -1, 1], [0, 0, 1], [0, 1, 1], [1, -1, 1], [1, 0, 1], [1, 1, 1]]
>>> cube2 = NmzCone(vertices=V)
>>> NmzResult(cube2,"Automorphisms") == [8, [[[], []], []], [[[0, 2, 1, 3], [1, 0, 3, 2]], [[0, 1, 2, 3]]], [[[1, 0, 3, 2], [0, 2, 1, 3]], [[0, 1, 2, 3]]]]
Erreur de segmentation (core dumped)

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

72af741normaliz 3.7.3 upgrade / PyNormaliz 2.8 upgrade

Changed commit from 7b7168b to 72af741

Description changed:

--- 
+++ 
@@ -1,4 +1,5 @@
 Tarballs
 
+- e-antic: TO COME
 - Normaliz: https://github.com/Normaliz/Normaliz/releases/download/v3.7.3/normaliz-3.7.3.tar.gz
 - PyNormaliz: https://files.pythonhosted.org/packages/6b/92/f0074f58dc8a36529b374e3b18a7f21557bf113fb3480bb3d327d4fc5a2f/PyNormaliz-2.8.tar.gz
comment:12

segfault probably due to e-antic version. I am about to release 0.1.3

comment:13

Most probably, the segfault is due to the fact that Normaliz was not built with nauty support

checking whether nauty headers and library are available... checking for densenauty in -lnauty... no
comment:14

Tickets still needing working or clarification should be moved to the next release milestone at the soonest (please feel free to revert if you think the ticket is close to being resolved).

Description changed:

--- 
+++ 
@@ -1,5 +1,4 @@
 Tarballs
 
-- e-antic: TO COME
 - Normaliz: https://github.com/Normaliz/Normaliz/releases/download/v3.7.3/normaliz-3.7.3.tar.gz
 - PyNormaliz: https://files.pythonhosted.org/packages/6b/92/f0074f58dc8a36529b374e3b18a7f21557bf113fb3480bb3d327d4fc5a2f/PyNormaliz-2.8.tar.gz

Description changed:

--- 
+++ 
@@ -2,3 +2,5 @@
 
 - Normaliz: https://github.com/Normaliz/Normaliz/releases/download/v3.7.3/normaliz-3.7.3.tar.gz
 - PyNormaliz: https://files.pythonhosted.org/packages/6b/92/f0074f58dc8a36529b374e3b18a7f21557bf113fb3480bb3d327d4fc5a2f/PyNormaliz-2.8.tar.gz
+
+We also install nauty header and library in order that Normaliz compile with nauty support (for computing automorphism group).

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

026e069upgrade e-antic to 0.1.3
cef606binstall nauty header and library
36f640enormaliz 3.7.3 upgrade / PyNormaliz 2.8 upgrade

Changed commit from 72af741 to 36f640e

Changed dependencies from #27920 to #28006

comment:19

What's this business with nauty.a? Shouldn't a shared library be built?

comment:20

If you suceed in doing so, please go on. Nauty makefile is extremly basic.

Changed keywords from package upgrade to package upgrade days101

comment:22

Debian seems to have an autotoolized build system for nauty.
https://sources.debian.org/patches/nauty/2.5r9+ds-1/

comment:23

They also do not build shared library as far a I see.

comment:24

Their "upstream autotoolization.patch " has lib_LTLIBRARIES = libnauty.la ....

comment:25

Then you are welcome to port their patch to Sage and propose a patch to normaliz!

jplab commented
comment:27

FWIW: Normaliz 3.7.4 is out and fixes an f-vector issue (that came up with algebraic polytopes). It might be worth to grab this version right away and not wait for another ticket. This newer version should not be a quantum step...

comment:28

Ticket retargeted after milestone closed

comment:29

Also we need a version of e-antic that finds Debian's install name of arb, flint-arb.
This seems to be in e-antic master but not in the 0.x branch

comment:30

(see https://github.com/mkoeppe/sage/runs/430688755?check_suite_focus=true, where Sage recognizes libflint-arb but the e-antic install fails.)

Description changed:

--- 
+++ 
@@ -4,3 +4,5 @@
 - PyNormaliz: https://files.pythonhosted.org/packages/6b/92/f0074f58dc8a36529b374e3b18a7f21557bf113fb3480bb3d327d4fc5a2f/PyNormaliz-2.8.tar.gz
 
 We also install nauty header and library in order that Normaliz compile with nauty support (for computing automorphism group).
+
+We also patch or upgrade e-antic so that it finds `arb` on Debian (https://github.com/videlec/e-antic/pull/82)
comment:33

Replying to @mkoeppe:

Also we need a version of e-antic that finds Debian's install name of arb, flint-arb.
This seems to be in e-antic master but not in the 0.x branch

Fixed in merged pull request https://github.com/videlec/e-antic/pull/82; now we only need a new release!

comment:34

Needs to be merged with #28799.

Description changed:

--- 
+++ 
@@ -3,6 +3,10 @@
 - Normaliz: https://github.com/Normaliz/Normaliz/releases/download/v3.7.3/normaliz-3.7.3.tar.gz
 - PyNormaliz: https://files.pythonhosted.org/packages/6b/92/f0074f58dc8a36529b374e3b18a7f21557bf113fb3480bb3d327d4fc5a2f/PyNormaliz-2.8.tar.gz
 
+These new releases include dynamic bitset classes that allow dynamic h-representation computations.
+
 We also install nauty header and library in order that Normaliz compile with nauty support (for computing automorphism group).
 
-We also patch or upgrade e-antic so that it finds `arb` on Debian (https://github.com/videlec/e-antic/pull/82)
+We also patch e-antic so that it finds `arb` on Debian (https://github.com/videlec/e-antic/pull/82).
+
+

Description changed:

--- 
+++ 
@@ -1,7 +1,7 @@
 Tarballs
 
-- Normaliz: https://github.com/Normaliz/Normaliz/releases/download/v3.7.3/normaliz-3.7.3.tar.gz
-- PyNormaliz: https://files.pythonhosted.org/packages/6b/92/f0074f58dc8a36529b374e3b18a7f21557bf113fb3480bb3d327d4fc5a2f/PyNormaliz-2.8.tar.gz
+- Normaliz: https://github.com/Normaliz/Normaliz/releases/download/v3.8.4/normaliz-3.8.4.tar.gz
+- PyNormaliz: https://files.pythonhosted.org/packages/a6/4b/43fa5e9a993e683b960ade003918bb5fa2180932fc8ac39daea1364163a8/PyNormaliz-2.10.tar.gz
 
 These new releases include dynamic bitset classes that allow dynamic h-representation computations.
 
kliem commented
comment:38

The challenge with upgrading Normaliz and PyNormaliz one basically has to rewrite _cone_from_Vrepresentation_and_Hrepresentation in backend_normaliz.py (and then pickling fails again), as initialization from precomputed data of normaliz cones works a bit different now.

I have mostly figured out how to do this, I think. So unless someone want to, I would like to take care of that part.


New commits:

b9b8222install nauty header and library
b482276normaliz 3.7.3 upgrade / PyNormaliz 2.8 upgrade
1860af0Update Normaliz to 3.8.4, PyNormaliz to 2.10
2e1b0e8normaliz: Remove dependency on boost_cropped
3543b73Add e-antic patch
kliem commented

Changed commit from 36f640e to 3543b73

comment:39

Replying to @kliem:

The challenge with upgrading Normaliz and PyNormaliz one basically has to rewrite _cone_from_Vrepresentation_and_Hrepresentation in backend_normaliz.py (and then pickling fails again), as initialization from precomputed data of normaliz cones works a bit different now.

I have mostly figured out how to do this, I think. So unless someone want to, I would like to take care of that part.

Sounds good.

comment:40

I assume you are referring to these kinds of errors:

File "src/sage/geometry/polyhedron/backend_normaliz.py", line 675, in sage.geometry.polyhedron.backend_normaliz.Polyhedron_normaliz._cone_from_Vrepresentation_and_Hrepresentation
Failed example:
    cone = P._cone_from_Vrepresentation_and_Hrepresentation(P.vertices(),P.rays(),P.inequalities(),P.equations())   # optional - pynormaliz
Exception raised:
    Traceback (most recent call last):
      File "/Users/mkoeppe/s/sage/sage-rebasing/worktree-algebraic-2018-spring/local/lib/python3.7/site-packages/sage/doctest/forker.py", line 681, in _run
        self.compile_and_execute(example, compiler, test.globs)
      File "/Users/mkoeppe/s/sage/sage-rebasing/worktree-algebraic-2018-spring/local/lib/python3.7/site-packages/sage/doctest/forker.py", line 1123, in compile_and_execute
        exec(compiled, globs)
      File "<doctest sage.geometry.polyhedron.backend_normaliz.Polyhedron_normaliz._cone_from_Vrepresentation_and_Hrepresentation[2]>", line 1, in <module>
        cone = P._cone_from_Vrepresentation_and_Hrepresentation(P.vertices(),P.rays(),P.inequalities(),P.equations())   # optional - pynormaliz
      File "/Users/mkoeppe/s/sage/sage-rebasing/worktree-algebraic-2018-spring/local/lib/python3.7/site-packages/sage/geometry/polyhedron/backend_normaliz.py", line 790, in _cone_from_Vrepresentation_and_Hrepresentation
        return self._cone_from_normaliz_data(data, verbose=verbose)
      File "/Users/mkoeppe/s/sage/sage-rebasing/worktree-algebraic-2018-spring/local/lib/python3.7/site-packages/sage/geometry/polyhedron/backend_normaliz.py", line 414, in _cone_from_normaliz_data
        cone = PyNormaliz.NmzCone(**data)
    PyNormaliz_cpp.NormalizError: Some error in the normaliz input data detected: Input type not allowed with precomputed data
comment:41

I will not make further changes at this point.
The branch needs the first part of commit 9dd22ef4f79228fdb9e0e012b98046349922d6fb (from #28799).

Changed author from Vincent Delecroix to Vincent Delecroix, Matthias Koeppe

kliem commented
comment:43

@w-bruns: I'm having trouble with the new version of normaliz for the following reason:

When initializing a cone from precomputed data, it asks me to specify generated_lattice. However, sometimes we do not have access to this (e.g. when we want to change backends and have never done the computations in normaliz or when combinatorially obtaining the new double description is much cheaper).

How do I obtain generated_lattice from extreme_rays and maximal_subspace? (Or even as a cone property from any normaliz cone).

I'm puzzled for example how I could obtain the 2-dimensional permutahedron e.g.. The following doesn't seem to work:

sage: import PyNormaliz
sage: cone = PyNormaliz.NmzCone(
....:     dehomogenization=[[0, 0, 0, 1]],
....:     extreme_rays=[
....:         [1, 2, 3, 1], [1, 3, 2, 1], [2, 1, 3, 1],
....:         [2, 3, 1, 1], [3, 1, 2, 1], [3, 2, 1, 1]],
....:     generated_lattice=[[1, 0, -1, 0], [0, 1, -1, 0], [0, 0, 6, 1]],
....:     maximal_subspace=[],
....:     support_hyperplanes=[
....:         [-1, -1, 0, 5], [-1, 0, 0, 3], [0, -1, 0, 3],
....:         [0, 1, 0, -1], [1, 0, 0, -1], [1, 1, 0, -3]])

It initializes the empty cone for some reason. (At least Dimension of this thing is -1.)

How do I modify the generated lattice to make this work?

Work Issues: patch e-antic configure

Changed commit from 3543b73 to 2aaeccc

Branch pushed to git repo; I updated commit sha1. New commits:

e1c224cbuild/pkgs/nauty: Increase patchlevel
60bad9abuild/pkgs/normaliz: Update configure options
2aaecccbuild/pkgs/pynormaliz: Update spkg-check
kliem commented

Changed work issues from patch e-antic configure to patch e-antic configure, patch normaliz

kliem commented

Changed author from Vincent Delecroix, Matthias Koeppe to Vincent Delecroix, Jonathan Kliem, Matthias Koeppe

kliem commented

Changed commit from 2aaeccc to f40437f

kliem commented
comment:46

As for the trouble with normaliz 3.8.4:

Winfried Bruns figured out the error, one needs to patch normaliz somehow like this

Add a missing dual in normaliz 3.8.4
diff --git a/source/libnormaliz/cone.cpp b/source/libnormaliz/cone.cpp
index 4e416a75e1..9ba2b2ba40 100644
--- a/source/libnormaliz/cone.cpp
+++ b/source/libnormaliz/cone.cpp
@@ -1034,7 +1034,7 @@ void Cone<Integer>::process_multi_input_inner(map<InputType, vector<vector<Integ
         setComputed(ConeProperty::SupportHyperplanes);

         size_t test_rank=BasisChangePointed.getRank();
-        if( test_rank != BasisChangePointed.to_sublattice(Generators).rank() ||
+        if( test_rank != BasisChangePointed.to_sublattice_dual(Generators).rank() ||
                 test_rank != BasisChangePointed.to_sublattice_dual(SupportHyperplanes).rank())
             throw BadInputException("Precomputed data do not define pointed cone modulo maximal subspace");
         create_convex_hull_data();

I couldn't figure out, how to apply this patch though. So I manually changed the tarball and then udpated the checksums. So my last commit is most likely not helpful.


New commits:

2565849fixed pickling of normaliz polyhedra
f40437fchecksum for patched normaliz
kliem commented
comment:47

All tests passing for me.

comment:49

I've put in the patch


New commits:

1f534cabuild/pkgs/normaliz: Add patch from Winfried

Changed commit from f40437f to 1f534ca

comment:50

I get this (on macOS):

sage -t src/sage/geometry/polyhedron/backend_normaliz.py
**********************************************************************
File "src/sage/geometry/polyhedron/backend_normaliz.py", line 1242, in sage.geometry.polyhedron.backend_normaliz.Polyhedron_normaliz.__setstate__
Failed example:
    P1.volume(measure='induced_lattice', engine='normaliz')  # optional - pynormaliz
Expected:
    96
Got:
    0
**********************************************************************
File "src/sage/geometry/polyhedron/backend_normaliz.py", line 1251, in sage.geometry.polyhedron.backend_normaliz.Polyhedron_normaliz.__setstate__
Failed example:
    P2 == P # optional - pynormaliz
Expected:
    True
Got:
    False
**********************************************************************
1 item had failures:
   2 of  27 in sage.geometry.polyhedron.backend_normaliz.Polyhedron_normaliz.__setstate__
    [317 tests, 2 failures, 2.46 s]

Changed work issues from patch e-antic configure, patch normaliz to none

Work Issues: patch e-antic configure

comment:53

Vincent, could you make a new e-antic 0.x release?

kliem commented
comment:54

This means you didn't apply the patch before installing normaliz (?)

Replying to @mkoeppe:

I get this (on macOS):

sage -t src/sage/geometry/polyhedron/backend_normaliz.py
**********************************************************************
File "src/sage/geometry/polyhedron/backend_normaliz.py", line 1242, in sage.geometry.polyhedron.backend_normaliz.Polyhedron_normaliz.__setstate__
Failed example:
    P1.volume(measure='induced_lattice', engine='normaliz')  # optional - pynormaliz
Expected:
    96
Got:
    0
**********************************************************************
File "src/sage/geometry/polyhedron/backend_normaliz.py", line 1251, in sage.geometry.polyhedron.backend_normaliz.Polyhedron_normaliz.__setstate__
Failed example:
    P2 == P # optional - pynormaliz
Expected:
    True
Got:
    False
**********************************************************************
1 item had failures:
   2 of  27 in sage.geometry.polyhedron.backend_normaliz.Polyhedron_normaliz.__setstate__
    [317 tests, 2 failures, 2.46 s]
comment:55

The patch was applied in that build:

sage-logger -p 'sage-spkg   normaliz-3.8.4' '/Users/mkoeppe/s/sage/sage-rebasing/worktree-algebraic-2018-spring/logs/pkgs/normaliz-3.8.4.log'
[normaliz-3.8.4] Found local metadata for normaliz-3.8.4
[normaliz-3.8.4] Using cached file /Users/mkoeppe/s/sage/sage-rebasing/worktree-algebraic-2018-spring/upstream/normaliz-3.8.4.tar.gz
[normaliz-3.8.4] normaliz-3.8.4
[normaliz-3.8.4] ====================================================
[normaliz-3.8.4] Setting up build directory for normaliz-3.8.4
[normaliz-3.8.4] Finished extraction
[normaliz-3.8.4] Applying patches from ../patches...
[normaliz-3.8.4] Applying ../patches/patch_test_rank.patch
[normaliz-3.8.4] patching file source/libnormaliz/cone.cpp
[normaliz-3.8.4] Hunk #1 succeeded at 1034 with fuzz 2.
kliem commented
comment:56

This is the same issue that I had and why I said, I couldn't do a patch.

When I manually modified the tarball in upstream and updated the checksums it worked just fine.

comment:57

Attach your modified tarball please

comment:58

Attachment: normaliz-3.8.4.tar.gz

Well your tarball has a different patch.

kliem commented
comment:59

Sorry, my bad. I used an editor without line numbers, because it is not configured to delete trailing spaces.

This is Winfrieds mail:

An einer Stelle ein _dual vergessen. Ersetze Zeile 4287 in cone.cpp durch

vector HelpDehom=BasisChangePointed.to_sublattice_dual(Dehomogenization);

Winfried

kliem commented
comment:60

I guess when making the diff file for the patch, I got it wrong. That explains, why the patch was successfully applied but it still didn't work.

comment:61

I'll push a fix in a second

Changed commit from 1f534ca to 586617c

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

586617cbuild/pkgs/normaliz: Add compute_recession_rank.patch (from upstream)
comment:63

Replying to @kliem:

I guess when making the diff file for the patch, I got it wrong. That explains, why the patch was successfully applied but it still didn't work.

I recommend this procedure: https://doc.sagemath.org/html/en/developer/packaging.html#how-to-maintain-a-set-of-patches

Changed commit from 586617c to ab81f9f

Branch pushed to git repo; I updated commit sha1. New commits:

ab81f9fRemove changes to Makefile.am (trigger autoreconf)
comment:65

This fixes the doctest failures for me.

kliem commented

New commits:

06d45f3fixed optional flags; better documentation
kliem commented

Changed commit from ab81f9f to 06d45f3

kliem commented
comment:67

How about

-sdh_make
+sdh_make CFLAGS=-fPIC

Doesn't that overwrite previously configured CFLAGS?

Changed commit from 06d45f3 to 1587063

comment:69

Replying to @kliem:

How about

-sdh_make
+sdh_make CFLAGS=-fPIC

Doesn't that overwrite previously configured CFLAGS?

Good point. I have revised this.


New commits:

c8d0043build/pkgs/nauty/spkg-install: Put -fPIC in CC at connfigure time
1587063Merge tag '9.1.beta5' into t/27952/normaliz
comment:70

There are still build failures on various platforms:

ubuntu-trusty:

In file included from ./libnormaliz/list_operations.cpp:31:0,
                 from libnormaliz/cone_and_control.cpp:31:
./libnormaliz/matrix.h: In function 'libnormaliz::Matrix<Number> libnormaliz::LLL_red(const libnormaliz::Matrix<Number>&, libnormaliz::Matrix<Integer>&, libnormaliz::Matrix<Integer>&)':
./libnormaliz/matrix.h:647:30: error: call of overloaded 'isnan(__gnu_cxx::__alloc_traits<std::allocator<double> >::value_type&)' is ambiguous
             if (isnan(M[i][j])) {

ubuntu-{xenial,bionic}-standard, fedora-26-standard etc.:

checking nauty/nauty.h presence... no
checking for nauty/nauty.h... no
configure: error: nauty is not available but was requested

ubuntu-{eoan,focal}-standard, debian-sid-standard etc.:

... renf_elem/.libs/cmp_fmpq.o renf_elem/.libs/floor_ceil.o renf_elem/.libs/gen.o renf_elem/.libs/get_cfrac.o renf_elem/.libs/get_str_pretty.o renf_elem/.libs/init.o renf_elem/.libs/print_pretty.o renf_elem/.libs/randtest.o renf_elem/.libs/set_evaluation.o renf_elem/.libs/set_fmpq_poly.o renf_elem/.libs/sgn.o renf_elem/.libs/get_d.o renf_elem/.libs/get_arb.o renf_elem/.libs/relative_condition_number_2exp.o   -L/sage/local/lib -larb -lflint-arb -lflint -lgmp  -fopenmp -g -O2 -Wl,-rpath -Wl,/sage/local/lib   -fopenmp -Wl,-soname -Wl,libeantic.so.0 -o .libs/libeantic.so.0.0.0
/usr/bin/ld: cannot find -larb
collect2: error: ld returned 1 exit status
make[3]: *** [Makefile:1899: libeantic.la] Error 1
comment:71

nauty's spkg-configure.m4only looks for the executables, not the library

comment:72

Replying to @mkoeppe:

There are still build failures on various platforms:

ubuntu-trusty:

In file included from ./libnormaliz/list_operations.cpp:31:0,
                 from libnormaliz/cone_and_control.cpp:31:
./libnormaliz/matrix.h: In function 'libnormaliz::Matrix<Number> libnormaliz::LLL_red(const libnormaliz::Matrix<Number>&, libnormaliz::Matrix<Integer>&, libnormaliz::Matrix<Integer>&)':
./libnormaliz/matrix.h:647:30: error: call of overloaded 'isnan(__gnu_cxx::__alloc_traits<std::allocator<double> >::value_type&)' is ambiguous
             if (isnan(M[i][j])) {

Winfried, do you know about this compile error related to isnan? This is with the ancient gcc on Ubuntu trusty.

comment:73

Replying to @mkoeppe:

There are still build failures on various platforms:
ubuntu-{eoan,focal}-standard, debian-sid-standard etc.:

... renf_elem/.libs/cmp_fmpq.o renf_elem/.libs/floor_ceil.o renf_elem/.libs/gen.o renf_elem/.libs/get_cfrac.o renf_elem/.libs/get_str_pretty.o renf_elem/.libs/init.o renf_elem/.libs/print_pretty.o renf_elem/.libs/randtest.o renf_elem/.libs/set_evaluation.o renf_elem/.libs/set_fmpq_poly.o renf_elem/.libs/sgn.o renf_elem/.libs/get_d.o renf_elem/.libs/get_arb.o renf_elem/.libs/relative_condition_number_2exp.o   -L/sage/local/lib -larb -lflint-arb -lflint -lgmp  -fopenmp -g -O2 -Wl,-rpath -Wl,/sage/local/lib   -fopenmp -Wl,-soname -Wl,libeantic.so.0 -o .libs/libeantic.so.0.0.0
/usr/bin/ld: cannot find -larb
collect2: error: ld returned 1 exit status
make[3]: *** [Makefile:1899: libeantic.la] Error 1

This will be fixed by https://github.com/videlec/e-antic/pull/85

comment:74

Replying to @mkoeppe:

nauty's spkg-configure.m4only looks for the executables, not the library

Discussing this issue on #28958.

comment:75

nauty header file location varies between distributions, Normaliz/Normaliz#332

Changed commit from 1587063 to 7378372

Branch pushed to git repo; I updated commit sha1. This was a forced push. Last 10 new commits:

5cb779cUpdate Normaliz to 3.8.4, PyNormaliz to 2.10
4ba88efnormaliz: Remove dependency on boost_cropped
cbffb6cbuild/pkgs/normaliz: Update configure options
32906febuild/pkgs/pynormaliz: Update spkg-check
5a8205bfixed pickling of normaliz polyhedra
c9be0c4build/pkgs/normaliz: Add compute_recession_rank.patch (from upstream)
3a69847fixed optional flags; better documentation
a2112c2build/pkgs/nauty/spkg-install: Put -fPIC in CC at connfigure time
69351acUpdate e-antic to 0.1.5
7378372Add libnauty script package, dependency for normaliz

Changed work issues from patch e-antic configure to figure out libnauty configure

Branch pushed to git repo; I updated commit sha1. This was a forced push. Last 10 new commits:

ce78b1bUpdate Normaliz to 3.8.4, PyNormaliz to 2.10
8061156normaliz: Remove dependency on boost_cropped
fe957a6build/pkgs/normaliz: Update configure options
ec93c82build/pkgs/pynormaliz: Update spkg-check
787c4dffixed pickling of normaliz polyhedra
3605788build/pkgs/normaliz: Add compute_recession_rank.patch (from upstream)
63fafd0fixed optional flags; better documentation
bdbd6c9build/pkgs/nauty/spkg-install: Put -fPIC in CC at connfigure time
c6f353bUpdate e-antic to 0.1.5
efcc1caAdd libnauty script package, dependency for normaliz

Changed commit from 7378372 to efcc1ca

comment:79

Rebased on 9.1.beta8

Description changed:

--- 
+++ 
@@ -1,5 +1,6 @@
 Tarballs
 
+- e-antic: https://www.labri.fr/perso/vdelecro/e-antic/e-antic-0.1.5.tar.gz
 - Normaliz: https://github.com/Normaliz/Normaliz/releases/download/v3.8.4/normaliz-3.8.4.tar.gz
 - PyNormaliz: https://files.pythonhosted.org/packages/a6/4b/43fa5e9a993e683b960ade003918bb5fa2180932fc8ac39daea1364163a8/PyNormaliz-2.10.tar.gz
 
@@ -7,6 +8,3 @@
 
 We also install nauty header and library in order that Normaliz compile with nauty support (for computing automorphism group).
 
-We also patch e-antic so that it finds `arb` on Debian (https://github.com/videlec/e-antic/pull/82).
-
-

Changed dependencies from #28006 to #29380