sagemath/sage

spkg-configure.m4 for ecm

dimpase opened this issue · 31 comments

it needs gmp, and is not a dependency of anything (besides sagelib)

To get this package on the system:

  • Fedora: gmp-ecm-devel
  • Gentoo: gmp-ecm - (but the version is too old in the main tree. Decent one in the sage-on-gentoo overlay)
  • FreeBSD: gmp-ecm

CC: @embray @kiwifb

Component: build

Author: Dima Pasechnik

Branch/Commit: 96ade1f

Reviewer: Isuru Fernando

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

comment:1

Ticket retargeted after milestone closed (if you don't believe this ticket is appropriate for the Sage 8.8 release please retarget manually)

Commit: 7d1f15e

comment:2

checking the version by grepping the header, duh...


Last 10 new commits:

b80bf72Reworked this a bit more
0ca3f56fix typo
06798caadded a bit more explanation
b592d77correct logic for SAGE_GMP_PREFIX etc
5057680add the AX_ABSOLUTE_HEADER macro
101537biml in particular is very picky about being given an absolute path to the
862ca6aMerge remote-tracking branch 'trac/develop' into HEAD
03dc987Merged trac #27215 in
98c67d3Merge remote-tracking branch 'trac/public/packages/gmp_m4' into ecm-config
7d1f15espkg-configure for ecm
comment:3

Does this really depend on #27212? I ask just because it's not clear to me exactly how, and this might be useful on its own as well.

comment:4

Replying to @embray:

Does this really depend on #27212? I ask just because it's not clear to me exactly how, and this might be useful on its own as well.

gmp/mpir is a dependency of ecm! (and so not using system's gmp/mpir and using the system's gmp/mpir for ecm would lead to a lot of linking/loading "fun" with sagelib)

comment:5

As for the contents of the ecm/spkg-configure.m4 itself, it looks fine to me at first glance, an I trust you've tested it.

A slightly more "sophisticated" approach might be build a test program which prints the value of the version, but in this case it's simple enough that just grepping for it should be good enough.

comment:6

I am going to submit an upstream patch to get a pkg-config configuration for ecm
(more or less the same INRIA upstream accepted such patch for gf2x, so this will make this much easier, once in).

comment:7

Replying to @dimpase:

Replying to @embray:

Does this really depend on #27212? I ask just because it's not clear to me exactly how, and this might be useful on its own as well.

gmp/mpir is a dependency of ecm! (and so not using system's gmp/mpir and using the system's gmp/mpir for ecm would lead to a lot of linking/loading "fun" with sagelib)

I see. In that case (and we still need a generic way to do this but I think it's tricky), the ecm/spkg-configure.m4 should do

AC_REQUIRE([SAGE_SPKG_CONFIGURE_GMP])

and then refuse to use the system package if sage_spkg_install_mpir = yes or sage_spkg_install_gmp = yes.

comment:8

OK, so the latter applies to other tickets that have #27212 as a dependence.

Changed commit from 7d1f15e to cb3a637

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

6253f30spkg-configure for ecm
cb3a637added the check for gmp/mpir presence

Changed dependencies from #27212 to none

comment:10

rebased over 8.8.beta5 and added the missing test. Can be reviewed now.

Description changed:

--- 
+++ 
@@ -1 +1,7 @@
 it needs gmp, and is not a dependency of anything (besides sagelib)
+
+To get this package on the system:
+
+* Fedora: gmp-ecm-devel
+* Gentoo: gmp-ecm  - (but the version is too old, why?)
+* FreeBSD: gmp-ecm

Description changed:

--- 
+++ 
@@ -3,5 +3,5 @@
 To get this package on the system:
 
 * Fedora: gmp-ecm-devel
-* Gentoo: gmp-ecm  - (but the version is too old, why?)
+* Gentoo: gmp-ecm  - (but the version is too old in the main tree. Decent one in the sage-on-gentoo overlay)
 * FreeBSD: gmp-ecm
comment:12

also need to check for ecm executable. Something like

$ echo 121 | ecm  4 | grep "GMP-ECM"
GMP-ECM 7.0.4 [configured with GMP 6.1.2, --enable-asm-redc] [ECM]

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

eaccefdspkg-configure for ecm
6faf068added the check for gmp/mpir presence
54bfb1dcheck for ecm executable, use temp var for version

Changed commit from cb3a637 to 54bfb1d

comment:14

needs review again.

comment:15

Not sure if it's related to this ticket or not (it wouldn't be caused by it as it hasn't had positive_review yet, but I mean it might be relevant), but I'm seeing some problems on Cygwin with the ECM make check test suite, which I don't think I had problems with before (I did not list ECM in #22866).

I think I might still need to go ahead and make building MPIR a requirement on Cygwin for now anyways. I'll try to investigate this once I can to a state where everything else isn't broken :(

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

b52ad46spkg-configure for ecm
b4b099fadded the check for gmp/mpir presence
d9a3747check for ecm executable, use temp var for version

Changed commit from 54bfb1d to d9a3747

comment:17

rebased oved 8.8.rc0

comment:18

Moving tickets from the Sage 8.8 milestone that have been actively worked on in the last six months to the next release milestone (optimistically).

comment:19

Picks up the conda package correctly.

Reviewer: Isuru Fernando

Changed commit from d9a3747 to 96ade1f

Branch pushed to git repo; I updated commit sha1 and set ticket back to needs_review. This was a forced push. New commits:

65edbffspkg-configure for ecm
c6feec7added the check for gmp/mpir presence
96ade1fcheck for ecm executable, use temp var for version
comment:22

rebased over Sage 8.9.beta3, just in case.

Changed branch from u/dimpase/packages/ecmconfig to 96ade1f