-
-
Notifications
You must be signed in to change notification settings - Fork 655
Description
Various packages can be built with or without the presence of some other packages.
For example, the latte_int
configure script detects lrslib
and lidia
if they are installed, and they provide additional features. lidia
is quite a big package, and so it is not clear whether it should be a dependency. (Linux package managers have the notion of suggested or recommended packages for this situation.)
GNU make's "order-only dependencies" "sound" as if they can do this, but as Jeroen explains, they can't.
Of course, the user can just work around this issue by doing sage -i lidia && sage -i latte_int
(or similar invocations such as make lidia latte_int
, which are sequential from left to right thanks to our top-level Makefile), but we must find a proper solution that ensures reproducible (deterministic) builds when a parallelized make is used. In particular, this is relevant after #21538, which provides ./configure --enable-lidia --enable-latte_int && MAKE=-j12 make
, for which the sequential workaround is not available.
This feature can be implemented by Makefile trickery, of course. See #30560.
Tickets:
-
Make openssl an optional dependency of python3 #30560:
openssl
an optional dependency ofpython3
-
giac
detectscocoa
(which we have added as an experimental package) -
pynac
is able to usegiac
if present (but we currently explicitly disable its use) -
latte_int
is able to uselidia
for one subroutine -- a huge and unmaintained package; currently it is a normal dependency -
polymake
has lots of optional dependencies
Depends on #31017
CC: @tscrim @dimpase @videlec @jhpalmieri @slel
Component: build: configure
Issue created by migration from https://trac.sagemath.org/ticket/21700