Opened 3 years ago

Last modified 4 months ago

#27330 new task

Try to use as many system packages as possible — at Version 20

Reported by: embray Owned by:
Priority: major Milestone: sage-9.7
Component: build: configure Keywords: spkg-configure, sd111
Cc: tmonteil, mjo, gh-timokau, fbissey, isuruf, mmezzarobba, thansen, gh-tobiasdiez Merged in:
Authors: Reviewers:
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Status badges

Description (last modified by dimpase)

#24919 implemented a mechanism for checking for checking for sagelib's direct and indirect dependencies at the time of running the main ./configure script. This was already done in an ad-hoc manner for a handful of packages (e.g. gcc, git, yasm, curl), but we wanted to be able to do the same for other packages, especially those that are common on Linux-like systems.

This has now been implemented for many other packages, or is in the process of being implemented. Those packages are listed below. However, there are many others yet to be done, and this ticket will attempt to list them in some rough order of priority. Unfortunately there is still not good documentation for how to implement these configure-time dependency checks. The documentation question is tracked at #26668.

Already Done

The following packages already have spkg-configure.m4 checks that are working on most or all supported platforms:

In Progress

The following packages have in-progress tickets to provide configure-time detection on the system:

Not Started

Have Tickets

The following packages have tickets for their conversions, but don't have working prototypes (i.e. branches) yet, although Dima has listed some sample config scripts for some of them:

ninja-build (#27801)

Don't Have Tickets

These packages are direct build dependencies of sagelib, and should thus take priority (since if these can be found on the system then one can presume that so too can their dependencies). I have listed these roughly in order of the number of other dependent SPKGs these have. Packages with more dependents should generally take higher priority as well:

  • python2/python3: this one is of course a very special case; while it should be possible/desirable to use a system python, any additional Python packages should optionally be installable into a virtualenv instead of the system site-pacakges, including sagelib itself unless the system happens to meet all of sagelib's Python dependencies already. Listing some relevant Python packages below:
    • cysignals
    • cython
    • ipython
    • jinja2
    • jupyter_core
    • numpy
    • scipy
    • sympy
    • pip
    • setuptools
    • six
  • BLAS (openblas / atlas / etc): resolving how to handle finding a usable BLAS should be one of the highest priorities; it faces many of the same issues we faced with MPIR/GMP in #27212, but perhaps with even more complexity)
  • pari + cypari (these two are deeply intwined)
  • singular
  • gsl
  • m4ri + m4rie
  • glpk
  • gap (using the system GAP is obviously desirable, but non-trivial, esp. now that we need a working libgap)
  • zn_poly
  • pkgconfig
  • givaro
  • ecl
  • iml
  • symmetrica
  • rw
  • ppl
  • planarity
  • lrcalc
  • linbox
  • libhomfly
  • libbraiding
  • lcalc
  • eclib
  • brial

Other high priority packages:

  • iconv (common system package)
  • libgd (common system package)
  • r (getting R from the system has been desirable for a long time and will require more than just an spkg-configure.m4; see #25503)
  • boost_cropped / boost (many systems should already have boost headers available)
  • maxima

Change History (20)

comment:1 Changed 3 years ago by embray

Note: The list of packages in the description is not yet exhaustive; please add others that are missing as you see fit and/or reprioritize. This is just a rough sketch.

comment:2 Changed 3 years ago by embray

  • Description modified (diff)

#27271 is the ticket for ecm.

comment:3 Changed 3 years ago by tmonteil

  • Cc tmonteil added

comment:4 Changed 3 years ago by mjo

  • Cc mjo added

comment:5 Changed 3 years ago by gh-timokau

  • Cc gh-timokau added

comment:6 Changed 3 years ago by dimpase

  • Description modified (diff)

comment:7 Changed 3 years ago by dimpase

  • Description modified (diff)

comment:8 Changed 3 years ago by dimpase

  • Description modified (diff)

There is also #27373, which concerns packages that change build/run environment, e.g. mpir/gmp/mpfr, that should be resolved in some way.

comment:9 Changed 3 years ago by dimpase

  • Description modified (diff)

comment:10 Changed 3 years ago by dimpase

  • Description modified (diff)

comment:11 Changed 3 years ago by dimpase

  • Description modified (diff)

comment:12 Changed 3 years ago by dimpase

  • Description modified (diff)

comment:13 Changed 3 years ago by embray

  • Milestone changed from sage-8.7 to sage-pending

Removing most of the rest of my open tickets out of the 8.7 milestone, which should be closed.

comment:14 Changed 3 years ago by dimpase

  • Description modified (diff)

comment:15 Changed 3 years ago by dimpase

  • Description modified (diff)

comment:16 Changed 3 years ago by dimpase

  • Description modified (diff)

comment:17 Changed 3 years ago by dimpase

  • Description modified (diff)

comment:18 Changed 3 years ago by dimpase

  • Description modified (diff)

comment:19 Changed 3 years ago by dimpase

  • Cc fbissey added
  • Description modified (diff)

comment:20 Changed 3 years ago by dimpase

  • Description modified (diff)
Note: See TracTickets for help on using tickets.