-
-
Notifications
You must be signed in to change notification settings - Fork 652
Description
Here's a look at the work I've been doing on top of (albeit not completely dependent on) #21524 in order to better support use of system packages for any of Sage's SPKGs.
This takes the workarounds that are already hard-coded in Sage's configure.ac
for detecting certain packages--notably gcc/gfortran, yasm, git, and and curl--and converts those to a more generic mechanism.
In the new mechanism each SPKG may have a file in its SPKG directory named spkg-configure.m4
. The ./bootstrap
script gathers these all up and includes them into configure
.
Each spkg-configure.m4
should call a macro called SAGE_SPKG_CONFIGURE
which is passed the package name, and some configure-time checks it should perform for that package. See the documentation in spkg-configure.m4
for more details on that macro. Inside these checks, they should set either sage_spkg_install_<pkgname>=yes|no
in order to track whether or not Sage should install that package, or if we can just the version from the system (or we don't require the package at all for the current platform).
We then move the hard-coded bits for yasm, gcc, etc. out of configure.ac
and into their individual spkg-configure.m4
files. The end result is the same in terms of the checks that are performed.
As proof of concept we also add a configure-time check for the system's patch
, demonstrating how this might be used to enable support for more system packages.
See #26286 for a follow-up.
Depends on #21524
Depends on #25011
Depends on #25208
Depends on #25188
Depends on #25198
CC: @mezzarobba @dimpase
Component: build
Author: Erik Bray
Branch: 79de3bd
Reviewer: John Palmieri, Dima Pasechnik
Issue created by migration from https://trac.sagemath.org/ticket/24919