-
-
Notifications
You must be signed in to change notification settings - Fork 491
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Meta-ticket: Declare "optional" dependencies of packages (a package manager's suggested/recommended packages) #21700
Comments
Commit: |
Author: Matthias Koeppe |
New commits:
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
Reviewer: Dima Pasechnik |
comment:5
Given that |
comment:6
They are optional for latte_int. This means that one can build latte_int with or without them. |
comment:7
Replying to @mkoeppe:
That is an argument for not adding those dependencies. It's not an argument for adding them as order-only dependencies. |
comment:8
If the user types "make latte_int lidia", then that user should get a latte built with lidia. Hence, an order only dependency. |
comment:9
Replying to @mkoeppe:
That works with a real dependency as well as an order-only dependency, so it's still not an argument for an order-only dependency. |
comment:10
I see what you want now, but what you want doesn't work. There is no way to tell |
comment:11
If the user types "make latte_int" and lidia is not installed, then lidia should not be installed. |
comment:12
I think you may be right, but it's past midnight here, so I can't be sure. |
comment:13
Replying to @mkoeppe:
Like I said in [comment:10], order-only dependencies don't work that way. |
comment:14
Thanks. You are right. I was confused about order-only dependencies. I'll update the ticket description |
Changed author from Matthias Koeppe to none |
This comment has been minimized.
This comment has been minimized.
Changed branch from u/mkoeppe/latte_int__add_order_only_dependencies to none |
comment:17
Why not add |
comment:18
Replying to @jdemeyer:
See #22491 for such an implementation (it does not pretend to address the general issue mentioned in the current ticket). According to Matthias, one reason for not doing that could be that lidia is rather big and long to compile. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Regarding this part of the ticket description: Replying to @mkoeppe:
It is better to do (This isn't questioning the main point, that the order in which these are built is important and not taken care of with the current build system.) |
This comment has been minimized.
This comment has been minimized.
comment:22
Thanks, I have updated the ticket description |
This comment has been minimized.
This comment has been minimized.
comment:24
Setting new milestone based on a cursory review of ticket status, priority, and last modification date. |
comment:25
Setting a new milestone for this ticket based on a cursory review. |
Dependencies: #31017 |
Closing as completed: Several packages already have a |
Various packages can be built with or without the presence of some other packages.
For example, the
latte_int
configure script detectslrslib
andlidia
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 asmake 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 dependencypolymake
has lots of optional dependenciesDepends on #31017
CC: @tscrim @dimpase @videlec @jhpalmieri @slel
Component: build: configure
Issue created by migration from https://trac.sagemath.org/ticket/21700
The text was updated successfully, but these errors were encountered: